@daniel-da-silva-alves/sddk 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/LICENSE +21 -0
  3. package/README.md +260 -0
  4. package/bin/cli.js +430 -0
  5. package/package.json +49 -0
  6. package/sddk/plugin.json +12 -0
  7. package/sddk/skills/code-review/SKILL.md +185 -0
  8. package/sddk/skills/code-review/references/anti-ai-design-patterns.md +185 -0
  9. package/sddk/skills/code-review/references/refactoring-severity-guide.md +96 -0
  10. package/sddk/skills/code-review/references/security-checklist.md +131 -0
  11. package/sddk/skills/fullstack-development/SKILL.md +128 -0
  12. package/sddk/skills/fullstack-development/references/clean-code-rules.md +146 -0
  13. package/sddk/skills/fullstack-development/references/self-review-checklist.md +64 -0
  14. package/sddk/skills/implementation-planning/SKILL.md +102 -0
  15. package/sddk/skills/implementation-planning/references/manual-tests-template.md +95 -0
  16. package/sddk/skills/implementation-planning/references/microtask-template.md +66 -0
  17. package/sddk/skills/software-requirements-specification/SKILL.md +80 -0
  18. package/sddk/skills/software-requirements-specification/references/checklist-template.md +65 -0
  19. package/sddk/skills/software-requirements-specification/references/ieee-830-template.md +151 -0
  20. package/sddk/skills/software-requirements-specification/references/socratic-interview-guide.md +96 -0
  21. package/sddk/skills/system-design-document/SKILL.md +164 -0
  22. package/sddk/skills/system-design-document/references/architecture-patterns.md +105 -0
  23. package/sddk/skills/system-design-document/references/documentation-sources-guide.md +126 -0
  24. package/sddk/skills/system-design-document/references/sdd-template.md +259 -0
  25. package/sddk/skills/system-design-document/references/standards-api-template.md +128 -0
  26. package/sddk/skills/system-design-document/references/standards-architecture-template.md +76 -0
  27. package/sddk/skills/system-design-document/references/standards-coding-template.md +114 -0
  28. package/sddk/skills/system-design-document/references/standards-design-system-template.md +137 -0
  29. package/sddk/skills/system-design-document/references/standards-naming-template.md +96 -0
  30. package/sddk/skills/system-design-document/references/standards-onboarding-guide.md +119 -0
  31. package/sddk/skills/system-design-document/references/tech-stack-analysis.md +84 -0
@@ -0,0 +1,96 @@
1
+ # Guia de Entrevista Socrática para Levantamento de Requisitos
2
+
3
+ ## Princípios do Pensamento Socrático Aplicado
4
+
5
+ A entrevista socrática não busca respostas diretas — busca **clareza de pensamento**. O objetivo é guiar o stakeholder a articular exatamente o que precisa, eliminando suposições implícitas.
6
+
7
+ ### Técnicas Fundamentais
8
+
9
+ #### 1. Pergunta Clarificadora
10
+ Usada quando uma resposta é vaga ou usa termos ambíguos.
11
+
12
+ **Padrão**: "Quando você diz '{termo}', o que exatamente isso significa neste contexto?"
13
+
14
+ **Exemplos**:
15
+ - Usuário: "O login deve ser seguro"
16
+ - Agente: "Quando você diz 'seguro', você está se referindo a: autenticação multifator, criptografia de senhas, proteção contra brute force, ou todas essas?"
17
+
18
+ #### 2. Pergunta de Suposição
19
+ Usada para expor premissas não declaradas.
20
+
21
+ **Padrão**: "Você está assumindo que {premissa}. Essa premissa é válida?"
22
+
23
+ **Exemplos**:
24
+ - Usuário: "O usuário faz login e acessa o dashboard"
25
+ - Agente: "Você está assumindo que existe apenas um tipo de usuário. Existem diferentes papéis (admin, operador, visitante) com acessos diferentes?"
26
+
27
+ #### 3. Pergunta de Contraponto
28
+ Usada para testar a robustez de um requisito propondo cenários contrários.
29
+
30
+ **Padrão**: "E se {cenário oposto ou edge case} acontecer? Como o sistema deve reagir?"
31
+
32
+ **Exemplos**:
33
+ - Usuário: "O sistema envia um email de confirmação"
34
+ - Agente: "E se o email for inválido? E se o servidor de email estiver fora do ar? O usuário fica bloqueado ou pode prosseguir?"
35
+
36
+ #### 4. Pergunta de Consequência
37
+ Usada para explorar impactos de uma decisão.
38
+
39
+ **Padrão**: "Se implementarmos {decisão}, qual seria o impacto em {aspecto relacionado}?"
40
+
41
+ **Exemplos**:
42
+ - Usuário: "Quero que o sistema permita upload de arquivos ilimitados"
43
+ - Agente: "Se permitirmos uploads ilimitados, qual seria o impacto no custo de armazenamento e na performance do sistema? Devemos ter um limite por usuário?"
44
+
45
+ #### 5. Pergunta de Priorização
46
+ Usada para rankear requisitos quando há muitos.
47
+
48
+ **Padrão**: "Se você tivesse que lançar amanhã com apenas 3 funcionalidades, quais seriam?"
49
+
50
+ ---
51
+
52
+ ## Fluxo da Entrevista
53
+
54
+ ### Abertura (1-2 perguntas)
55
+ Objetivo: Entender o contexto geral da feature.
56
+
57
+ - "Descreva em uma frase o que essa feature deve fazer"
58
+ - "Quem são os principais usuários dessa feature?"
59
+ - "Qual problema de negócio essa feature resolve?"
60
+
61
+ ### Aprofundamento (N perguntas por tópico)
62
+ Objetivo: Detalhar cada aspecto do checklist.
63
+
64
+ Para cada tópico do checklist:
65
+ 1. Pergunte abertamente primeiro
66
+ 2. Use perguntas clarificadoras para respostas vagas
67
+ 3. Use perguntas de contraponto para edge cases
68
+ 4. Use perguntas de suposição para premissas implícitas
69
+ 5. Marque como `[x]` quando inequívoco
70
+
71
+ ### Validação (2-3 perguntas finais)
72
+ Objetivo: Garantir completude antes de gerar o documento.
73
+
74
+ - "Revisando tudo que discutimos, há algum cenário que não cobrimos?"
75
+ - "Existe alguma integração com sistema externo que não mencionamos?"
76
+ - "Há alguma restrição regulatória ou de compliance que afeta essa feature?"
77
+
78
+ ---
79
+
80
+ ## Sinais de Alerta (Não Aceitar)
81
+
82
+ | Sinal | Ação |
83
+ |:---|:---|
84
+ | "Depois a gente vê isso" | Insistir — decisão adiada vira bug |
85
+ | "É óbvio que..." | Questionar — o óbvio do stakeholder pode não ser do dev |
86
+ | "Algo parecido com o sistema X" | Pedir detalhes — "parecido" é ambíguo |
87
+ | "O usual" / "O padrão" | Definir explicitamente o que é "padrão" neste contexto |
88
+ | Requisitos contraditórios | Apontar a contradição e pedir resolução |
89
+
90
+ ## Quando Encerrar um Tópico
91
+
92
+ Um tópico está **concluído** quando:
93
+ - A resposta é específica e mensurável
94
+ - Não há interpretação alternativa possível
95
+ - O critério de aceitação é verificável
96
+ - Edge cases foram cobertos
@@ -0,0 +1,164 @@
1
+ ---
2
+ name: system-design-document
3
+ description: "Criação de System Design Document (SDD) por feature com entrevista técnica guiada. ATIVE esta skill quando o usuário mencionar: SDD, system design, design document, arquitetura da feature, decisões técnicas, definir stack, design técnico, planejamento técnico, como implementar tecnicamente, estrutura do código, design de API, modelo de dados, componentes do sistema. Também acione quando o agente completar a skill SRS e o usuário confirmar a transição para o SDD."
4
+ ---
5
+
6
+ # Skill de Criação de System Design Document (SDD)
7
+
8
+ ## Identidade
9
+
10
+ Você é um **Arquiteto de Software Sênior** com experiência em design de sistemas, seleção de stack tecnológica e tomada de decisões arquiteturais fundamentadas.
11
+
12
+ ## Contexto do Pipeline
13
+
14
+ Esta é a **Skill 2 de 5** do pipeline Spec-Driven Development (SDD):
15
+
16
+ ```
17
+ 1. SRS ✅ → ► [2. SDD] → 3. Planejamento → 4. Dev → 5. CodeReview
18
+ ```
19
+
20
+ > [!IMPORTANT]
21
+ > O SRS DEVE ter sido concluído antes desta skill. Se o arquivo `.specs/features/{feature-name}/srs.md` não existir, PARE e instrua o usuário a completar a Skill 1 (SRS) primeiro.
22
+
23
+ ## Pré-condição
24
+
25
+ Antes de iniciar, verificar que existe:
26
+ - `.specs/features/{feature-name}/srs.md` — ler este arquivo completamente para entender os requisitos
27
+
28
+ ## Regras Obrigatórias
29
+
30
+ 1. **SEMPRE ler o SRS.md** como primeiro passo antes de qualquer ação
31
+ 2. **SEMPRE detectar a stack do projeto** — analisar `package.json`, `requirements.txt`, `pyproject.toml`, `Cargo.toml`, etc. Se não houver stack definida, sugerir e validar com o usuário
32
+ 3. **NUNCA tomar decisões de arquitetura sem validar com o usuário** — cada decisão técnica deve ser apresentada e confirmada
33
+ 4. **SEMPRE usar ask_question** para decisões que têm múltiplas opções válidas
34
+ 5. **SEMPRE resolver TODAS as dúvidas técnicas** antes de gerar o documento SDD
35
+ 6. **SEMPRE salvar o SDD.md** em `.specs/features/{feature-name}/sdd.md`
36
+ 7. **SEMPRE atualizar o Implementation Plan** artifact com links para SRS e SDD
37
+ 8. **SEMPRE verificar `.specs/standards/`** — se não existe, conduzir onboarding antes de prosseguir. Se existe, ler e respeitar os padrões definidos
38
+
39
+ ## Fluxo de Execução
40
+
41
+ ### Fase 0: Verificação de Padrões do Projeto (Onboarding)
42
+
43
+ Antes de qualquer análise técnica, verificar se o projeto tem padrões definidos:
44
+
45
+ 1. **Verificar se `.specs/standards/` existe** no projeto do usuário
46
+ 2. **Se NÃO existe** → conduzir onboarding seguindo `references/standards-onboarding-guide.md`:
47
+ - Entrevistar o usuário sobre: Arquitetura, Nomenclatura, Design System, API, Boas Práticas
48
+ - Gerar os 5 arquivos de standards usando os templates em `references/standards-*-template.md`
49
+ - Salvar em `.specs/standards/`
50
+ 3. **Se existe mas incompleto** (faltam arquivos) → perguntar se quer completar agora
51
+ 4. **Se existe e completo** → ler todos os arquivos para ter contexto dos padrões
52
+ 5. Anunciar: "Padrões do projeto carregados. Prosseguindo para análise do SRS."
53
+
54
+ > [!IMPORTANT]
55
+ > Os padrões em `.specs/standards/` são **de projeto, não de feature**. Eles se aplicam a TODAS as features e NUNCA devem ser contrariados pelo SDD de uma feature específica.
56
+
57
+ ### Fase 1: Análise do Contexto
58
+
59
+ 1. **Ler o SRS.md** da feature para entender os requisitos
60
+ 2. **Ler os standards do projeto** em `.specs/standards/` (se existem) para respeitar padrões
61
+ 3. **Analisar o projeto existente** (se houver):
62
+ - Detectar stack/linguagem/framework
63
+ - Identificar padrões já em uso
64
+ - Mapear estrutura de diretórios existente
65
+ 4. **Resumir** para o usuário: "Li o SRS, os standards do projeto e analisei o código. Aqui está o que encontrei: {resumo}"
66
+
67
+ ### Fase 2: Entrevista Técnica
68
+
69
+ Conduzir entrevista técnica guiada — ver `references/tech-stack-analysis.md`:
70
+
71
+ **Decisões a tomar (uma por vez, via `ask_question` quando aplicável):**
72
+
73
+ 1. **Stack tecnológica** (se não definida):
74
+ - Linguagem/runtime
75
+ - Framework principal
76
+ - Banco de dados
77
+ - Ferramentas de build/dev
78
+
79
+ 2. **Arquitetura**:
80
+ - Padrão arquitetural (MVC, Clean Architecture, Hexagonal, etc.)
81
+ - Estrutura de camadas/módulos
82
+ - Padrão de comunicação entre componentes
83
+
84
+ 3. **Modelo de dados**:
85
+ - Entidades e relacionamentos
86
+ - Estratégia de persistência
87
+ - Migrations / schema management
88
+
89
+ 4. **Design de API** (se aplicável):
90
+ - Endpoints / rotas
91
+ - Formato de request/response
92
+ - Autenticação / autorização
93
+
94
+ 5. **Frontend** (se aplicável):
95
+ - Componentização
96
+ - State management
97
+ - Routing
98
+ - Design system / tokens
99
+
100
+ 6. **Integrações externas**:
101
+ - APIs de terceiros
102
+ - Serviços de infraestrutura (email, storage, CDN)
103
+ - Webhooks / eventos
104
+
105
+ 7. **Edge cases e tratamento de erros**:
106
+ - Estratégia de error handling
107
+ - Fallbacks e graceful degradation
108
+ - Logging e monitoramento
109
+
110
+ ### Fase 2.5: Fontes de Documentação Técnica
111
+
112
+ Após definir a stack completa, configurar as fontes de documentação que o agente usará durante o desenvolvimento e code review. Ver `references/documentation-sources-guide.md`:
113
+
114
+ 1. **Para cada tecnologia da stack**, perguntar ao usuário via `ask_question`:
115
+ - Existe um MCP/Skill local para esta tecnologia?
116
+ - Qual é a URL oficial da documentação (pinada na versão)?
117
+ - O projeto tem documentação local (`docs/`, `README.md`)?
118
+
119
+ 2. **Montar a tabela de fontes** com a hierarquia de consulta:
120
+ - Prioridade 1: Documentação local do projeto
121
+ - Prioridade 2: MCP/Skill (se disponível)
122
+ - Prioridade 3: URL oficial (via `read_url_content`)
123
+ - Prioridade 4: Web search (via `search_web`, filtrando por site oficial)
124
+
125
+ 3. **Registrar no SDD** na seção "10. Fontes de Documentação Técnica"
126
+
127
+ ### Fase 3: Validação de Completude
128
+
129
+ Antes de gerar o documento:
130
+
131
+ 1. Apresentar um **resumo de todas as decisões técnicas** tomadas
132
+ 2. Perguntar: "Antes de gerar o SDD, há alguma decisão técnica que gostaria de revisar?"
133
+ 3. Só prosseguir após confirmação
134
+
135
+ ### Fase 4: Geração do SDD
136
+
137
+ 1. Gerar o documento SDD.md seguindo o template em `references/sdd-template.md`
138
+ 2. Salvar em `.specs/features/{feature-name}/sdd.md`
139
+ 3. **Atualizar o Implementation Plan** artifact:
140
+ - Adicionar links para SRS.md e SDD.md
141
+ - Resumo das decisões técnicas principais
142
+ 4. Apresentar ao usuário para revisão
143
+
144
+ ### Fase 5: Transição
145
+
146
+ Após aprovação do SDD pelo usuário:
147
+
148
+ 1. Anunciar: "✅ SDD concluído e salvo em `.specs/features/{feature-name}/sdd.md`. Próxima etapa: **Planejamento de Implementação**. Deseja prosseguir?"
149
+ 2. **AGUARDAR** confirmação explícita antes de ativar a próxima skill
150
+
151
+ ## Routing Table
152
+
153
+ ### References
154
+
155
+ - Se precisar do template de estrutura do documento SDD, leia `references/sdd-template.md`
156
+ - Se precisar de referência sobre padrões arquiteturais para orientar decisões, leia `references/architecture-patterns.md`
157
+ - Se precisar de orientação sobre análise e sugestão de stack tecnológica, leia `references/tech-stack-analysis.md`
158
+ - Se precisar de orientação sobre como configurar fontes de documentação por tecnologia, leia `references/documentation-sources-guide.md`
159
+ - Se precisar do guia de onboarding de padrões do projeto, leia `references/standards-onboarding-guide.md`
160
+ - Se precisar do template de padrões arquiteturais, leia `references/standards-architecture-template.md`
161
+ - Se precisar do template de convenções de nomenclatura, leia `references/standards-naming-template.md`
162
+ - Se precisar do template de design system, leia `references/standards-design-system-template.md`
163
+ - Se precisar do template de convenções de API, leia `references/standards-api-template.md`
164
+ - Se precisar do template de boas práticas de código, leia `references/standards-coding-template.md`
@@ -0,0 +1,105 @@
1
+ # Catálogo de Padrões Arquiteturais
2
+
3
+ Referência para o agente ao conduzir decisões arquiteturais com o usuário. Apresente as opções relevantes e ajude o usuário a escolher com base no contexto do projeto.
4
+
5
+ ---
6
+
7
+ ## Padrões de Arquitetura de Aplicação
8
+
9
+ ### MVC (Model-View-Controller)
10
+ - **Quando usar**: Aplicações web tradicionais, APIs simples, projetos menores
11
+ - **Prós**: Simples, bem documentado, fácil onboarding
12
+ - **Contras**: Pode ficar desorganizado em projetos grandes, acoplamento entre camadas
13
+ - **Exemplos**: Express.js + templates, Ruby on Rails, Django
14
+
15
+ ### Clean Architecture
16
+ - **Quando usar**: Aplicações de médio/grande porte, domínios complexos, quando testabilidade é prioridade
17
+ - **Prós**: Independência de frameworks, alta testabilidade, separação clara de responsabilidades
18
+ - **Contras**: Mais boilerplate, curva de aprendizado, overengineering para projetos simples
19
+ - **Exemplos**: NestJS com módulos, FastAPI com camadas, aplicações enterprise
20
+
21
+ ### Hexagonal (Ports & Adapters)
22
+ - **Quando usar**: Sistemas com múltiplas integrações externas, quando a lógica de negócio precisa ser isolada
23
+ - **Prós**: Facilita troca de dependências externas, excelente para testes
24
+ - **Contras**: Complexidade adicional, muitas interfaces/abstrações
25
+ - **Exemplos**: Sistemas financeiros, aplicações com múltiplos data sources
26
+
27
+ ### Feature-Based (Vertical Slicing)
28
+ - **Quando usar**: Aplicações frontend/fullstack, quando cada feature é relativamente independente
29
+ - **Prós**: Código organizado por funcionalidade (não por tipo), fácil de navegar
30
+ - **Contras**: Pode haver duplicação entre features, difícil quando há muita lógica compartilhada
31
+ - **Exemplos**: Next.js App Router, módulos NestJS, features de app mobile
32
+
33
+ ---
34
+
35
+ ## Padrões de Comunicação
36
+
37
+ ### REST
38
+ - **Quando usar**: APIs públicas, CRUD simples, integração com múltiplos clientes
39
+ - **Prós**: Universal, stateless, cacheable, bem documentado
40
+ - **Contras**: Over/under-fetching, múltiplas requisições para dados relacionados
41
+
42
+ ### GraphQL
43
+ - **Quando usar**: Frontends complexos com dados aninhados, múltiplas views do mesmo dado
44
+ - **Prós**: Fetch exato do necessário, tipagem forte, introspection
45
+ - **Contras**: Complexidade no backend, N+1 queries, caching mais difícil
46
+
47
+ ### tRPC
48
+ - **Quando usar**: Fullstack TypeScript, quando cliente e servidor estão no mesmo repo
49
+ - **Prós**: Type-safety end-to-end sem código gerado, DX excelente
50
+ - **Contras**: Só funciona com TypeScript, acoplamento client-server
51
+
52
+ ---
53
+
54
+ ## Padrões de State Management (Frontend)
55
+
56
+ ### React Context
57
+ - **Quando usar**: Estado simples e pouco frequente (theme, auth, locale)
58
+ - **Prós**: Nativo, zero dependências
59
+ - **Contras**: Re-renders desnecessários, não escala bem
60
+
61
+ ### Zustand
62
+ - **Quando usar**: Estado moderado, performance importa, simplicidade é prioridade
63
+ - **Prós**: API mínima, seletores granulares, sem boilerplate
64
+ - **Contras**: Menos estruturado que Redux, pode virar "bag of state"
65
+
66
+ ### Redux Toolkit
67
+ - **Quando usar**: Estado complexo com muitas interações, quando previsibilidade é crítica
68
+ - **Prós**: DevTools, time-travel debugging, ecosistema maduro
69
+ - **Contras**: Boilerplate, curva de aprendizado, overengineering para projetos simples
70
+
71
+ ### TanStack Query (React Query)
72
+ - **Quando usar**: Estado que vem do servidor (server state), cache de API
73
+ - **Prós**: Cache automático, invalidação, refetch em background, loading states
74
+ - **Contras**: Não substitui client state, curva para cache policies
75
+
76
+ ---
77
+
78
+ ## Padrões de Acesso a Dados
79
+
80
+ ### ORM (Prisma, TypeORM, SQLAlchemy)
81
+ - **Quando usar**: CRUD-heavy, migrations automatizadas, type-safety
82
+ - **Prós**: Produtividade, migrations, tipagem
83
+ - **Contras**: Performance em queries complexas, abstração leaky
84
+
85
+ ### Query Builder (Knex, Drizzle)
86
+ - **Quando usar**: Queries complexas, performance importa, controle fino
87
+ - **Prós**: Flexibilidade, performance, composabilidade
88
+ - **Contras**: Mais verboso que ORM, sem migrations automáticas (alguns)
89
+
90
+ ### Raw SQL
91
+ - **Quando usar**: Queries altamente otimizadas, stored procedures, DBA no time
92
+ - **Prós**: Máxima performance e controle
93
+ - **Contras**: Sem tipagem, vulnerável a SQL injection se mal feito, difícil manutenção
94
+
95
+ ---
96
+
97
+ ## Como Apresentar ao Usuário
98
+
99
+ Ao conduzir a entrevista técnica:
100
+
101
+ 1. Identifique qual **categoria** de decisão está em jogo
102
+ 2. Apresente **2-3 opções relevantes** (não todas) com base no contexto
103
+ 3. Inclua a **recomendação** baseada no projeto
104
+ 4. Use `ask_question` com as opções formatadas
105
+ 5. Registre a decisão com justificativa no SDD
@@ -0,0 +1,126 @@
1
+ # Guia de Configuração de Fontes de Documentação Técnica
2
+
3
+ ## Propósito
4
+
5
+ Durante o desenvolvimento (Skill 4) e code review (Skill 5), o agente precisa consultar documentação técnica das tecnologias da stack. Este guia define como configurar as fontes de documentação para cada tecnologia, garantindo que o agente use **a versão correta** e **a fonte mais confiável**.
6
+
7
+ ## Hierarquia de Consulta
8
+
9
+ Ao precisar de documentação técnica, o agente segue esta ordem de prioridade:
10
+
11
+ ```
12
+ 1. 📁 Docs locais do projeto (docs/, README, ARCHITECTURE.md)
13
+ ↓ se não encontrar
14
+ 2. 🔌 MCP/Skill da tecnologia (se existir e for da versão correta)
15
+ ↓ se não existir
16
+ 3. 🌐 URL oficial pré-configurada (registrada no SDD, pinada à versão)
17
+ ↓ se não cobrir o caso
18
+ 4. 🔍 Web search como fallback (pesquisa direcionada ao site oficial)
19
+ ```
20
+
21
+ ### Por que esta ordem?
22
+
23
+ | Prioridade | Fonte | Justificativa |
24
+ |:---:|:---|:---|
25
+ | 1 | **Docs locais** | Mais específico ao projeto, padrões customizados, convenções internas |
26
+ | 2 | **MCP/Skill** | Curado, confiável, eficiente em tokens, funciona offline |
27
+ | 3 | **URL oficial** | Fonte canônica da tecnologia, pinada à versão correta |
28
+ | 4 | **Web search** | Fallback universal, mas ruidoso e pode trazer versão errada |
29
+
30
+ ---
31
+
32
+ ## Como Conduzir a Entrevista de Fontes
33
+
34
+ Durante a Fase 2.5 do SDD, após definir a stack, perguntar para cada tecnologia:
35
+
36
+ ### Pergunta padrão (via ask_question):
37
+
38
+ ```
39
+ Para a tecnologia {nome} v{versão}, qual fonte de documentação devemos usar?
40
+ ```
41
+
42
+ **Opções:**
43
+ 1. **URL oficial** — informar a URL da documentação oficial pinada na versão
44
+ 2. **MCP disponível** — informar qual MCP server provê docs desta tecnologia
45
+ 3. **Skill local** — o projeto tem uma skill customizada para esta tecnologia
46
+ 4. **Docs no projeto** — existe pasta `docs/` ou wiki com documentação interna
47
+
48
+ ### Tecnologias com MCPs conhecidos:
49
+
50
+ | Tecnologia | MCP Disponível | Notas |
51
+ |:---|:---|:---|
52
+ | Múltiplas libs | Context7 | Cobre muitas bibliotecas populares via `context7` |
53
+ | PostgreSQL | postgres-mcp | Schema awareness |
54
+ | GitHub | github-mcp | Issues, PRs, repos |
55
+ | Filesystem | filesystem-mcp | Nativo do Antigravity |
56
+
57
+ > [!NOTE]
58
+ > A disponibilidade de MCPs muda frequentemente. Pergunte ao usuário se ele tem MCPs configurados no projeto.
59
+
60
+ ---
61
+
62
+ ## Formato da Seção no SDD
63
+
64
+ A seção "10. Fontes de Documentação Técnica" no SDD deve seguir este formato:
65
+
66
+ ```markdown
67
+ ## 10. Fontes de Documentação Técnica
68
+
69
+ ### 10.1 Configuração de Fontes
70
+
71
+ | Tecnologia | Versão | Fonte Primária | URL Oficial | MCP/Skill |
72
+ |:---|:---|:---|:---|:---|
73
+ | Next.js | 15.2 | URL oficial | https://nextjs.org/docs | — |
74
+ | React | 19.1 | URL oficial | https://react.dev/reference | — |
75
+ | Prisma | 6.3 | MCP | https://prisma.io/docs | context7 |
76
+ | Tailwind CSS | 4.0 | URL oficial | https://tailwindcss.com/docs | — |
77
+ | PostgreSQL | 16 | MCP | https://www.postgresql.org/docs/16/ | postgres-mcp |
78
+ | TypeScript | 5.7 | URL oficial | https://www.typescriptlang.org/docs/ | — |
79
+
80
+ ### 10.2 Documentação Local do Projeto
81
+
82
+ | Caminho | Conteúdo |
83
+ |:---|:---|
84
+ | `docs/api.md` | Documentação da API interna |
85
+ | `docs/conventions.md` | Convenções de código do projeto |
86
+ | `ARCHITECTURE.md` | Arquitetura geral do sistema |
87
+
88
+ ### 10.3 Regra de Consulta
89
+
90
+ Ordem de prioridade para consulta de documentação durante o desenvolvimento:
91
+ 1. Documentação local do projeto (caminhos listados em 10.2)
92
+ 2. MCP/Skill (se listado na coluna MCP/Skill em 10.1)
93
+ 3. URL oficial (usar `read_url_content` na URL listada em 10.1)
94
+ 4. Web search (usar `search_web` com query: "{tecnologia} {versão} {tópico} site:{domínio oficial}")
95
+ ```
96
+
97
+ ---
98
+
99
+ ## Instruções para o Agente (Dev e CodeReview)
100
+
101
+ Quando o agente precisar consultar documentação durante o desenvolvimento:
102
+
103
+ ### Passo 1: Ler a seção 10 do SDD
104
+ Abrir `.specs/features/{feature}/sdd.md` e ler a seção "10. Fontes de Documentação Técnica"
105
+
106
+ ### Passo 2: Seguir a hierarquia
107
+ 1. **Docs local?** → `view_file` no caminho listado em 10.2
108
+ 2. **MCP/Skill?** → Usar a ferramenta/skill configurada em 10.1
109
+ 3. **URL oficial?** → `read_url_content("{url-da-tabela-10.1}/topico-especifico")`
110
+ 4. **Nenhum?** → `search_web("{tecnologia} {versão} {tópico} site:{domínio}")`
111
+
112
+ ### Passo 3: Validar a versão
113
+ > [!WARNING]
114
+ > Antes de usar qualquer informação de documentação, verificar se corresponde à versão listada na tabela 10.1. Documentação da versão errada pode gerar código incompatível.
115
+
116
+ ### Exemplo prático de consulta:
117
+
118
+ ```
119
+ Microtask: "Implementar server action de criação de usuário"
120
+ Stack: Next.js 15.2
121
+
122
+ 1. Docs local? → Não tem docs sobre server actions
123
+ 2. MCP/Skill? → Não tem MCP de Next.js
124
+ 3. URL oficial? → read_url_content("https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations")
125
+ 4. Se URL não cobrir → search_web("Next.js 15 server actions mutations site:nextjs.org")
126
+ ```