KS
Killer-Skills

vue3-fsd-development — Categories.community

v1.0.0
GitHub

About this Skill

Perfect for Frontend Agents needing advanced Vue 3 development capabilities with Feature-Sliced Design (FSD) architecture. Vue 3 Template

cpvasques cpvasques
[0]
[0]
Updated: 3/4/2026

Quality Score

Top 5%
49
Excellent
Based on code quality & docs
Installation
SYS Universal Install (Auto-Detect)
Cursor IDE Windsurf IDE VS Code IDE
> npx killer-skills add cpvasques/vue-template

Agent Capability Analysis

The vue3-fsd-development MCP Server by cpvasques is an open-source Categories.community integration for Claude and other AI agents, enabling seamless task automation and capability expansion.

Ideal Agent Persona

Perfect for Frontend Agents needing advanced Vue 3 development capabilities with Feature-Sliced Design (FSD) architecture.

Core Value

Empowers agents to develop scalable and maintainable Vue 3 applications using Feature-Sliced Design principles, with built-in support for TypeScript, lazy loading, and code splitting, ensuring performance and type safety.

Capabilities Granted for vue3-fsd-development MCP Server

Building modular and reusable UI components with Vue 3 and FSD
Implementing efficient lazy loading and code splitting strategies
Ensuring type safety and code quality with TypeScript integration

! Prerequisites & Limits

  • Requires knowledge of Vue 3 and Feature-Sliced Design principles
  • TypeScript experience is necessary
  • Limited to Vue 3 ecosystem
Project
SKILL.md
6.1 KB
.cursorrules
1.2 KB
package.json
240 B
Ready
UTF-8

# Tags

[No tags]
SKILL.md
Readonly

Vue 3 FSD Development

Guidelines para desenvolvimento Vue 3 seguindo arquitetura Feature-Sliced Design (FSD) adaptada.

Princípios Fundamentais

  1. Separação de Responsabilidades: Cada camada tem responsabilidade única e bem definida
  2. Isolamento de Features: Features são auto-contidas e independentes
  3. Reutilização Inteligente: Widgets e shared para código reutilizável
  4. Performance First: Lazy loading e code splitting por padrão
  5. Type Safety: TypeScript em todos os arquivos

Arquitetura FSD

Estrutura de camadas (ordem de dependência):

app/ → pages/ → features/ → widgets/ → shared/

Regras de dependência:

  • app/ não depende de nenhuma camada
  • pages/ pode importar de features/, widgets/, shared/
  • features/ pode importar de widgets/, shared/
  • widgets/ pode importar de shared/
  • shared/ não depende de outras camadas

NUNCA:

  • ❌ Features importando de pages/
  • ❌ Widgets importando de features/ ou pages/
  • ❌ Shared importando de qualquer outra camada

Para detalhes completos, veja architecture.md.

Estrutura de Features

Cada feature segue esta estrutura:

features/[feature-name]/
├── index.vue              # Componente principal
├── model/                 # Lógica de negócio
│   ├── [feature]Schema.ts # Schema Zod
│   └── use[Feature].ts    # Composable
├── ui/                    # Componentes UI específicos
│   └── [component]/
│       ├── index.vue
│       └── __tests__/
└── store/                 # Store Pinia (se necessário)

Diretrizes:

  • Uma feature = um domínio de negócio
  • Lógica sempre em model/
  • UI específica em ui/
  • Testes junto ao código em __tests__/

Lazy Loading Obrigatório

Rotas: Sempre usar dynamic imports:

typescript
1component: () => import('@/pages/users/UsersView.vue')

Features pesadas: Lazy load quando possível:

vue
1<script setup> 2const HeavyComponent = defineAsyncComponent(() => 3 import('@/features/heavy-feature/index.vue') 4) 5</script>

Mocks condicionais: Lazy load de MSW:

typescript
1if (import.meta.env.VITE_ENABLE_MOCK_SERVER === 'true') { 2 const { worker } = await import('../shared/mocks/browser.ts') 3 worker.start() 4}

Para otimizações avançadas, veja performance.md.

Padrões de Código

Composables com Vue Query

typescript
1import { useMutation } from '@tanstack/vue-query' 2import { toast } from 'vue-sonner' 3import { postLogin as postLoginService } from '@/shared/api/auth-api/postLogin' 4import type { Payload } from '@/shared/api/auth-api/types/postLogin.types' 5 6const postLogin = () => { 7 const { isPending, isError, error, isSuccess, mutate } = useMutation({ 8 mutationFn: (payload: Payload) => 9 postLoginService(payload).catch((error) => 10 toast.error(error?.response?.data?.message || 'Erro desconhecido.'), 11 ), 12 }) 13 14 return { isPending, isError, error, isSuccess, mutate } 15} 16 17export function useLogin() { 18 return { postLogin } 19}

APIs

typescript
1import { axiosClient } from '../config/http-client' 2import type { Payload, Response } from './types/postLogin.types' 3 4export async function postLogin(payload: Payload): Promise<Response> { 5 const response = await axiosClient.request<Response>({ 6 endpoint: 'login', 7 method: 'POST', 8 body: payload, 9 }) 10 return response.data 11}

Validação Zod

typescript
1import { z } from 'zod' 2 3const loginSchema = z.object({ 4 email: z.string().email('Email inválido'), 5 password: z.string().min(6, 'Senha deve ter no mínimo 6 caracteres'), 6}) 7 8export type LoginFormData = z.infer<typeof loginSchema>

Para mais padrões, veja patterns.md.

Boas Práticas

✅ FAZER

  • Usar Composition API com <script setup>
  • Tipar tudo com TypeScript
  • Separar tipos em arquivos types/
  • Usar cn() para merge de classes Tailwind
  • Implementar error handling em composables
  • Usar Vue Query para estado servidor
  • Usar Pinia apenas para estado cliente global
  • Testar features junto com o código

❌ NÃO FAZER

  • Misturar lógica de negócio com UI
  • Criar dependências circulares entre camadas
  • Importar features em widgets
  • Usar any em TypeScript
  • Hardcode de valores (usar env vars)
  • Lógica complexa em templates
  • Mutar props diretamente
  • Criar stores Pinia para estado local

Para lista completa, veja best-practices.md.

Performance

Code Splitting

  • Rotas sempre lazy loaded
  • Features pesadas com defineAsyncComponent
  • Bibliotecas grandes importadas dinamicamente

Vue Query

  • Configurar staleTime e gcTime apropriadamente
  • Usar queryKey reativo para invalidação automática
  • Implementar paginação com currentPage e perPage

Renderização

  • Usar v-show para toggle frequente
  • Usar v-if para renderização condicional pesada
  • Evitar watchers desnecessários
  • Usar computed para valores derivados

Para otimizações avançadas, veja performance.md.

Nomenclatura

  • Componentes: PascalCase (LoginView.vue, UserDialog.vue)
  • Composables: camelCase com use (useLogin.ts, useListUsers.ts)
  • Stores: camelCase com use (useAuthStore)
  • APIs: camelCase com verbo (postLogin.ts, getAllUsers.ts)
  • Features: kebab-case (login-auth/, handle-users/)
  • Tipos: PascalCase (Payload, Response, User)

Imports

  • Sempre usar alias @/ para src/
  • Ordenação automática via ESLint simple-import-sort
  • Agrupar: externos → internos → tipos
typescript
1import { useMutation } from '@tanstack/vue-query' 2import { toast } from 'vue-sonner' 3 4import { postLogin as postLoginService } from '@/shared/api/auth-api/postLogin' 5import type { Payload } from '@/shared/api/auth-api/types/postLogin.types'

Recursos Adicionais

Related Skills

Looking for an alternative to vue3-fsd-development or building a Categories.community AI Agent? Explore these related open-source MCP Servers.

View All

widget-generator

Logo of f
f

widget-generator is an open-source AI agent skill for creating widget plugins that are injected into prompt feeds on prompts.chat. It supports two rendering modes: standard prompt widgets using default PromptCard styling and custom render widgets built as full React components.

149.6k
0
Design

chat-sdk

Logo of lobehub
lobehub

chat-sdk is a unified TypeScript SDK for building chat bots across multiple platforms, providing a single interface for deploying bot logic.

73.0k
0
Communication

zustand

Logo of lobehub
lobehub

The ultimate space for work and life — to find, build, and collaborate with agent teammates that grow with you. We are taking agent harness to the next level — enabling multi-agent collaboration, effortless agent team design, and introducing agents as the unit of work interaction.

72.8k
0
Communication

data-fetching

Logo of lobehub
lobehub

The ultimate space for work and life — to find, build, and collaborate with agent teammates that grow with you. We are taking agent harness to the next level — enabling multi-agent collaboration, effortless agent team design, and introducing agents as the unit of work interaction.

72.8k
0
Communication