@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,64 @@
1
+ # Checklist de Auto-Review (Self-Review)
2
+
3
+ Aplique este checklist após implementar cada microtask. Se qualquer item falhar, corrija ANTES de marcar a microtask como concluída.
4
+
5
+ ---
6
+
7
+ ## Checklist
8
+
9
+ ### 1. Aderência ao SDD
10
+
11
+ - [ ] O código implementa exatamente o que está especificado na seção referenciada do SDD?
12
+ - [ ] A estrutura de pastas/arquivos segue o definido no SDD?
13
+ - [ ] O modelo de dados corresponde ao schema do SDD (campos, tipos, constraints)?
14
+ - [ ] Os endpoints/rotas seguem o design de API do SDD (paths, methods, bodies)?
15
+ - [ ] As camadas de responsabilidade estão separadas conforme arquitetura do SDD?
16
+
17
+ ### 2. Clean Code
18
+
19
+ - [ ] Todas as variáveis e funções têm nomes descritivos e específicos?
20
+ - [ ] Não há comentários que apenas descrevem o que o código faz (óbvios)?
21
+ - [ ] Não há código repetido que deveria ser abstraído?
22
+ - [ ] Cada arquivo/componente tem responsabilidade única (≤ 150 linhas significativas)?
23
+ - [ ] O tratamento de erros é específico (não genérico catch-all)?
24
+
25
+ ### 3. Naming Conventions (conforme `.specs/standards/naming-conventions.md`)
26
+
27
+ - [ ] As conventions de nome seguem o definido nos **standards do projeto**?
28
+ - [ ] Variáveis e funções seguem a convenção do projeto (verificar `naming-conventions.md`)?
29
+ - [ ] Nomes de tabelas/colunas seguem a convenção do banco (verificar `naming-conventions.md#banco-de-dados`)?
30
+ - [ ] Componentes usam a convenção definida para frontend (verificar `naming-conventions.md#componentes`)?
31
+ - [ ] Variáveis booleanas usam o prefixo definido nos standards (`is`, `has`, `can`, `should`)?
32
+ - [ ] Constantes usam a convenção definida nos standards?
33
+
34
+ ### 4. Anti-Design de IA
35
+
36
+ - [ ] Não há emojis em textos de interface (botões, labels, headings)?
37
+ - [ ] CSS/Tailwind usa design tokens do SDD/`design-system.md` (não valores hardcoded genéricos)?
38
+ - [ ] Não há textos placeholder genéricos ('Lorem ipsum', 'Click here', 'Submit')?
39
+ - [ ] A UI não tem aparência de "tutorial de YouTube" (sombras e gradientes sem propósito)?
40
+ - [ ] Componentes estão devidamente separados (não monolíticos)?
41
+ - [ ] Não há código boilerplate repetitivo sem abstração?
42
+
43
+ ### 5. Conformidade com Standards do Projeto
44
+
45
+ - [ ] A arquitetura segue as camadas e regras de dependência de `.specs/standards/architecture.md`?
46
+ - [ ] Design tokens do `.specs/standards/design-system.md` estão sendo usados (se frontend)?
47
+ - [ ] API segue as convenções de `.specs/standards/api-conventions.md` (format de response, status codes)?
48
+ - [ ] Boas práticas de `.specs/standards/coding-standards.md` estão sendo respeitadas?
49
+ - [ ] Tratamento de erros segue a estratégia definida nos standards?
50
+
51
+ ### 6. Funcionalidade
52
+
53
+ - [ ] O código compila/executa sem erros?
54
+ - [ ] O critério de "done" da microtask foi atendido?
55
+ - [ ] Não foi adicionada funcionalidade não especificada no SRS/SDD?
56
+
57
+ ---
58
+
59
+ ## Como Usar
60
+
61
+ 1. Após implementar uma microtask, percorra cada item do checklist mentalmente
62
+ 2. Se qualquer item estiver ❌, corrija o código
63
+ 3. Só marque a microtask como `[x]` quando todos os itens estiverem ✅
64
+ 4. Não é necessário listar o checklist ao usuário — é um processo interno do agente
@@ -0,0 +1,102 @@
1
+ ---
2
+ name: implementation-planning
3
+ description: "Planejamento de implementação com microtasks faseadas e referências ao SRS/SDD. ATIVE esta skill quando o usuário mencionar: planejar implementação, criar plano de desenvolvimento, microtasks, checklist de desenvolvimento, fases de implementação, quebrar em tarefas, task breakdown, sprint planning, planejamento técnico de dev. Também acione quando o agente completar a skill SDD e o usuário confirmar a transição para o Planejamento."
4
+ ---
5
+
6
+ # Skill de Planejamento de Implementação
7
+
8
+ ## Identidade
9
+
10
+ Você é um **Tech Lead Sênior** especializado em decomposição de tarefas, planejamento de sprints e definição de dependências entre entregas de software.
11
+
12
+ ## Contexto do Pipeline
13
+
14
+ Esta é a **Skill 3 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 e o SDD DEVEM ter sido concluídos antes desta skill. Se os arquivos `.specs/features/{feature-name}/srs.md` e `.specs/features/{feature-name}/sdd.md` não existirem, PARE e instrua o usuário a completar as skills anteriores.
22
+
23
+ ## Pré-condição
24
+
25
+ Antes de iniciar, verificar que existem:
26
+ - `.specs/features/{feature-name}/srs.md` — ler completamente
27
+ - `.specs/features/{feature-name}/sdd.md` — ler completamente
28
+
29
+ ## Regras Obrigatórias
30
+
31
+ 1. **SEMPRE ler SRS.md e SDD.md** como primeiro passo
32
+ 2. **SEMPRE ler `.specs/standards/`** para garantir consistência com padrões do projeto
33
+ 3. **SEMPRE criar microtasks faseadas** onde cada tarefa depende da anterior
34
+ 4. **SEMPRE incluir referências (ponteiros)** para seções específicas do SRS/SDD e standards em cada microtask
35
+ 5. **SEMPRE especificar quais arquivos** serão criados/modificados em cada microtask
36
+ 6. **SEMPRE definir critério de "done"** para cada microtask
37
+ 7. **SEMPRE gerar o manual-tests.md** com cenários de teste manual
38
+ 8. **NUNCA criar microtasks genéricas** como "implementar backend" — devem ser granulares e específicas
39
+
40
+ ## Fluxo de Execução
41
+
42
+ ### Fase 1: Análise dos Documentos
43
+
44
+ 1. **Ler SRS.md** — identificar todos os requisitos funcionais (RF-xxx)
45
+ 2. **Ler SDD.md** — identificar a arquitetura, modelo de dados, endpoints, componentes
46
+ 3. **Ler `.specs/standards/`** — carregar padrões de nomenclatura, arquitetura, design system, API e coding
47
+ 4. **Mapear dependências** — quais componentes dependem de quais
48
+
49
+ ### Fase 2: Decomposição em Microtasks
50
+
51
+ Criar o **Implementation Plan artifact** com microtasks faseadas.
52
+
53
+ #### Regras de Decomposição:
54
+
55
+ 1. **Ordenar por camada de dependência**:
56
+ - Fase 1: Configuração e setup (se necessário)
57
+ - Fase 2: Modelo de dados / migrations
58
+ - Fase 3: Camada de acesso a dados (repositories)
59
+ - Fase 4: Lógica de negócio (services)
60
+ - Fase 5: API / endpoints (se backend)
61
+ - Fase 6: Componentes de UI (se frontend)
62
+ - Fase 7: Integração entre camadas
63
+ - Fase 8: Polish e edge cases
64
+
65
+ 2. **Cada microtask DEVE conter** — use o template em `references/microtask-template.md`:
66
+ - Descrição clara da tarefa
67
+ - 📎 Referência(s) ao SDD (seção + linhas) — ex: `[SDD#3.1](file:///.specs/features/{feature}/sdd.md#L45-L78)`
68
+ - 📎 Referência(s) ao SRS (requisito) — ex: `[SRS RF-001](file:///.specs/features/{feature}/srs.md#L120-L135)`
69
+ - 📎 Referência(s) a Standards (quando aplicável) — ex: `[Naming DB](file:///.specs/standards/naming-conventions.md#banco-de-dados)`
70
+ - 📁 Arquivos a criar/modificar
71
+ - ✅ Critério de done
72
+
73
+ 3. **Encadeamento obrigatório**: cada microtask só faz sentido se a anterior estiver concluída
74
+
75
+ ### Fase 3: Geração de Testes Manuais
76
+
77
+ 1. Gerar `manual-tests.md` usando template em `references/manual-tests-template.md`
78
+ 2. Cada cenário de teste DEVE:
79
+ - Referenciar o requisito funcional testado (RF-xxx)
80
+ - Ter passos claros e reproduzíveis
81
+ - Ter resultado esperado específico
82
+ 3. Salvar em `.specs/features/{feature-name}/manual-tests.md`
83
+
84
+ ### Fase 4: Revisão com o Usuário
85
+
86
+ 1. Apresentar o plano completo de microtasks ao usuário
87
+ 2. Perguntar: "O plano de implementação está adequado? Gostaria de ajustar a ordem, granularidade ou adicionar/remover tarefas?"
88
+ 3. Ajustar conforme feedback
89
+
90
+ ### Fase 5: Transição
91
+
92
+ Após aprovação do planejamento:
93
+
94
+ 1. Anunciar: "✅ Planejamento concluído. Testes manuais salvos em `.specs/features/{feature-name}/manual-tests.md`. Próxima etapa: **Desenvolvimento Fullstack**. Deseja prosseguir?"
95
+ 2. **AGUARDAR** confirmação explícita antes de ativar a próxima skill
96
+
97
+ ## Routing Table
98
+
99
+ ### References
100
+
101
+ - Se precisar do template de formato de microtask com campos obrigatórios, leia `references/microtask-template.md`
102
+ - Se precisar do template de cenários de teste manual, leia `references/manual-tests-template.md`
@@ -0,0 +1,95 @@
1
+ # Template de Testes Manuais
2
+
3
+ Use este template para gerar o `manual-tests.md` de cada feature. Cada cenário de teste deve ser claro, reproduzível e vinculado a um requisito funcional.
4
+
5
+ ## Estrutura do Documento
6
+
7
+ ```markdown
8
+ # Testes Manuais — {Nome da Feature}
9
+
10
+ **Feature**: {nome da feature}
11
+ **Data**: {data de geração}
12
+ **SRS Referência**: [srs.md](.specs/features/{feature}/srs.md)
13
+ **SDD Referência**: [sdd.md](.specs/features/{feature}/sdd.md)
14
+
15
+ ---
16
+
17
+ ## Instruções para o Desenvolvedor
18
+
19
+ 1. Execute cada cenário de teste **na ordem listada**
20
+ 2. Marque `[x]` nos cenários que passaram
21
+ 3. Para cenários que falharam, anote o comportamento observado na coluna "Resultado Real"
22
+ 4. Todos os cenários DEVEM passar antes de considerar a feature completa
23
+
24
+ ---
25
+
26
+ ## Cenários de Teste
27
+
28
+ ### CT-001: {Nome descritivo do cenário}
29
+
30
+ | Campo | Valor |
31
+ |:---|:---|
32
+ | **Requisito** | RF-{xxx} — {nome do requisito} |
33
+ | **Prioridade** | Alta / Média / Baixa |
34
+ | **Pré-condição** | {estado inicial necessário} |
35
+
36
+ **Passos:**
37
+ 1. {ação específica 1}
38
+ 2. {ação específica 2}
39
+ 3. {ação específica 3}
40
+
41
+ **Resultado Esperado:**
42
+ {descrição precisa do que deve acontecer}
43
+
44
+ **Resultado Real:**
45
+ - [ ] ✅ Passou
46
+ - [ ] ❌ Falhou — Observação: ___
47
+
48
+ ---
49
+
50
+ ### CT-002: {Nome descritivo do cenário}
51
+
52
+ (repetir formato)
53
+
54
+ ---
55
+
56
+ ## Cenários de Edge Case
57
+
58
+ ### EC-001: {Nome do edge case}
59
+
60
+ | Campo | Valor |
61
+ |:---|:---|
62
+ | **Requisito** | RF-{xxx} |
63
+ | **Tipo** | Input inválido / Erro de rede / Concorrência / Limite |
64
+
65
+ **Passos:**
66
+ 1. {ação que provoca o edge case}
67
+
68
+ **Resultado Esperado:**
69
+ {como o sistema deve se comportar neste caso}
70
+
71
+ **Resultado Real:**
72
+ - [ ] ✅ Passou
73
+ - [ ] ❌ Falhou — Observação: ___
74
+
75
+ ---
76
+
77
+ ## Resumo de Execução
78
+
79
+ | Total | Passou | Falhou | Pendente |
80
+ |:---:|:---:|:---:|:---:|
81
+ | {n} | {n} | {n} | {n} |
82
+
83
+ **Executor**: ___
84
+ **Data de execução**: ___
85
+ **Aprovado para deploy**: [ ] Sim / [ ] Não
86
+ ```
87
+
88
+ ## Regras de Geração
89
+
90
+ 1. **Cada requisito funcional (RF-xxx) DEVE ter pelo menos 1 cenário de teste**
91
+ 2. **Cada regra de negócio (RN-xxx) DEVE ter pelo menos 1 cenário que a valida**
92
+ 3. **Incluir pelo menos 2 edge cases** por feature (inputs inválidos, limites, erros)
93
+ 4. **Passos DEVEM ser reproduzíveis** — "clicar no botão X" e não "testar a funcionalidade"
94
+ 5. **Resultado esperado DEVE ser específico** — "exibir toast verde com texto 'Salvo com sucesso'" e não "funcionar"
95
+ 6. **Prioridade dos cenários** corresponde à prioridade do requisito que testam
@@ -0,0 +1,66 @@
1
+ # Template de Microtask
2
+
3
+ Cada microtask no Implementation Plan DEVE seguir este formato:
4
+
5
+ ## Formato Obrigatório
6
+
7
+ ```markdown
8
+ - [ ] **{Fase}.{Número}: {Título descritivo da tarefa}**
9
+ - 📎 Ref SDD: [{seção}](.specs/features/{feature}/sdd.md#L{inicio}-L{fim})
10
+ - 📎 Ref SRS: [{requisito}](.specs/features/{feature}/srs.md#L{inicio}-L{fim})
11
+ - 📎 Ref Standards: [{padrão}](.specs/standards/{arquivo}.md#{seção}) ← quando aplicável
12
+ - 📁 Arquivos:
13
+ - `{caminho/do/arquivo.ext}` — {criar | modificar} — {breve descrição}
14
+ - ✅ Done: {critério mensurável de conclusão}
15
+ ```
16
+
17
+ ## Exemplo Completo
18
+
19
+ ```markdown
20
+ # Implementation Plan — Feature: Autenticação de Usuários
21
+
22
+ ## Fase 1: Setup e Configuração
23
+
24
+ - [ ] **1.1: Configurar dependências de autenticação**
25
+ - 📎 Ref SDD: [SDD#1.2 Stack Tecnológica](.specs/features/user-auth/sdd.md#L15-L28)
26
+ - 📎 Ref SRS: [SRS#2.4 Restrições](.specs/features/user-auth/srs.md#L60-L65)
27
+ - 📁 Arquivos:
28
+ - `package.json` — modificar — adicionar bcrypt, jsonwebtoken
29
+ - `src/config/auth.ts` — criar — constantes de autenticação (jwt secret, expiration)
30
+ - ✅ Done: Dependências instaladas, config de auth exportando constantes tipadas
31
+
32
+ ## Fase 2: Modelo de Dados
33
+
34
+ - [ ] **2.1: Criar migration da tabela users**
35
+ - 📎 Ref SDD: [SDD#3.1 Entidade User](.specs/features/user-auth/sdd.md#L45-L62)
36
+ - 📎 Ref SRS: [SRS RF-001 Cadastro de Usuário](.specs/features/user-auth/srs.md#L80-L95)
37
+ - 📎 Ref Standards: [Naming DB](.specs/standards/naming-conventions.md#banco-de-dados)
38
+ - 📁 Arquivos:
39
+ - `prisma/schema.prisma` — modificar — adicionar model User
40
+ - `prisma/migrations/001_create_users/` — criar — migration auto-gerada
41
+ - ✅ Done: Migration executada, tabela users criada com todos os campos do SDD e nomenclatura conforme standards
42
+
43
+ - [ ] **2.2: Criar repository de User**
44
+ - 📎 Ref SDD: [SDD#2.3 Camada Repository](.specs/features/user-auth/sdd.md#L35-L42)
45
+ - 📎 Ref SRS: [SRS RF-001](.specs/features/user-auth/srs.md#L80-L95)
46
+ - 📁 Arquivos:
47
+ - `src/repositories/user.repository.ts` — criar — CRUD operations para User
48
+ - ✅ Done: Repository com findById, findByEmail, create, update, delete implementados e tipados
49
+
50
+ ## Fase 3: Lógica de Negócio
51
+
52
+ - [ ] **3.1: Implementar service de registro**
53
+ - 📎 Ref SDD: [SDD#4.1 POST /api/auth/register](.specs/features/user-auth/sdd.md#L70-L85)
54
+ - 📎 Ref SRS: [SRS RF-001 + RN-001](.specs/features/user-auth/srs.md#L80-L110)
55
+ - 📁 Arquivos:
56
+ - `src/services/auth.service.ts` — criar — register(), hashPassword()
57
+ - ✅ Done: Service registra user com senha hasheada, valida email único, retorna user sem senha
58
+ ```
59
+
60
+ ## Regras
61
+
62
+ 1. **Numeração por fase**: `{Fase}.{Número}` — ex: 1.1, 1.2, 2.1, 3.1
63
+ 2. **Referências DEVEM apontar para linhas específicas** — não para o documento inteiro
64
+ 3. **Arquivos DEVEM ter ação clara** — "criar" ou "modificar"
65
+ 4. **Critério de done DEVE ser verificável** — não "funcionar bem" mas "endpoint retorna 200 com body tipado"
66
+ 5. **Cada microtask DEVE ser completável em 1 iteração** do agente — se for muito grande, quebre em sub-tarefas
@@ -0,0 +1,80 @@
1
+ ---
2
+ name: software-requirements-specification
3
+ description: "Especificação de Requisitos de Software por feature usando entrevista socrática. ATIVE esta skill quando o usuário mencionar: especificar feature, requisitos de software, SRS, spec, especificação, levantar requisitos, definir funcionalidade, documentar requisitos, IEEE 830, criar spec de feature, o que o sistema deve fazer, regras de negócio, casos de uso, critérios de aceitação. Também acione quando o usuário disser 'quero criar uma feature', 'vamos especificar', 'preciso documentar os requisitos' ou 'quero começar o pipeline SDD'."
4
+ ---
5
+
6
+ # Skill de Especificação de Requisitos de Software (SRS)
7
+
8
+ ## Identidade
9
+
10
+ Você é um **Engenheiro de Requisitos de Software Sênior** com experiência em condução de entrevistas técnicas e documentação formal de requisitos seguindo normas IEEE 830 / ISO/IEC/IEEE 29148:2018.
11
+
12
+ ## Contexto do Pipeline
13
+
14
+ Esta é a **Skill 1 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
+ > Esta skill DEVE ser completada integralmente antes de avançar para a Skill 2 (System Design Document). Você NUNCA avança sem confirmação explícita do usuário.
22
+
23
+ ## Regras Obrigatórias
24
+
25
+ 1. **SEMPRE criar um Task artifact** como primeiro passo, com o checklist de tópicos a cobrir na entrevista
26
+ 2. **SEMPRE conduzir entrevista socrática** — pergunta a pergunta, usando a ferramenta `ask_question` para cada decisão
27
+ 3. **NUNCA escrever o SRS antes** de validar que todas as perguntas foram respondidas sem ambiguidade
28
+ 4. **SEMPRE seguir o padrão IEEE 830** / ISO/IEC/IEEE 29148:2018 na estrutura do documento final
29
+ 5. **SEMPRE salvar o SRS.md** no caminho `.specs/features/{feature-name}/srs.md` dentro do projeto do usuário
30
+ 6. **NUNCA assumir requisitos** — se algo não foi dito explicitamente pelo usuário, pergunte
31
+
32
+ ## Fluxo de Execução
33
+
34
+ ### Fase 1: Inicialização
35
+
36
+ Ao receber a descrição da feature do usuário:
37
+
38
+ 1. Criar o diretório `.specs/features/{feature-name}/` se não existir
39
+ 2. Criar um **Task artifact** com o checklist de tópicos da entrevista. Use o template em `references/checklist-template.md`
40
+ 3. Anunciar ao usuário: "Vou conduzir uma entrevista para especificar completamente esta feature. Vamos tópico por tópico."
41
+
42
+ ### Fase 2: Entrevista Socrática
43
+
44
+ Conduzir a entrevista seguindo o guia em `references/socratic-interview-guide.md`:
45
+
46
+ 1. **Uma pergunta por vez** — use `ask_question` quando houver opções claras, ou pergunte abertamente para respostas livres
47
+ 2. **Questione respostas vagas** — se o usuário disser "o sistema deve ser rápido", pergunte "rápido como? Qual tempo de resposta aceitável em ms?"
48
+ 3. **Detecte ambiguidades** — se uma resposta pode ter múltiplas interpretações, apresente-as e peça esclarecimento
49
+ 4. **Marque tópicos no Task** como `[x]` conforme forem concluídos
50
+ 5. **Cubra todos os tópicos** do checklist antes de prosseguir
51
+
52
+ ### Fase 3: Validação de Completude
53
+
54
+ Antes de gerar o documento:
55
+
56
+ 1. Revisar o checklist — todos os itens devem estar `[x]`
57
+ 2. Apresentar um **resumo consolidado** de tudo que foi levantado
58
+ 3. Perguntar ao usuário: "Antes de gerar o SRS, há algo que gostaria de adicionar ou modificar?"
59
+ 4. Só prosseguir após confirmação
60
+
61
+ ### Fase 4: Geração do SRS
62
+
63
+ 1. Gerar o documento SRS.md seguindo o template em `references/ieee-830-template.md`
64
+ 2. Salvar em `.specs/features/{feature-name}/srs.md`
65
+ 3. Apresentar ao usuário para revisão
66
+
67
+ ### Fase 5: Transição
68
+
69
+ Após aprovação do SRS pelo usuário:
70
+
71
+ 1. Anunciar: "✅ SRS concluído e salvo em `.specs/features/{feature-name}/srs.md`. Próxima etapa: **System Design Document (SDD)**. Deseja prosseguir?"
72
+ 2. **AGUARDAR** confirmação explícita antes de ativar a próxima skill
73
+
74
+ ## Routing Table
75
+
76
+ ### References
77
+
78
+ - Se precisar do template de estrutura do documento SRS, leia `references/ieee-830-template.md`
79
+ - Se precisar de orientações sobre como conduzir a entrevista socrática, leia `references/socratic-interview-guide.md`
80
+ - Se precisar do template de checklist de tópicos da entrevista, leia `references/checklist-template.md`
@@ -0,0 +1,65 @@
1
+ # Template de Checklist para Entrevista de Especificação
2
+
3
+ Use este template para criar o Task artifact no início da entrevista. Adapte os tópicos conforme a natureza da feature (nem todos serão aplicáveis).
4
+
5
+ ## Checklist Padrão
6
+
7
+ ```markdown
8
+ # Checklist de Especificação — {Nome da Feature}
9
+
10
+ ## Contexto Geral
11
+ - [ ] Objetivo e propósito da feature
12
+ - [ ] Problema de negócio que resolve
13
+ - [ ] Escopo (o que está DENTRO e FORA)
14
+
15
+ ## Atores e Personas
16
+ - [ ] Usuários primários (quem usa diretamente)
17
+ - [ ] Usuários secundários (afetados indiretamente)
18
+ - [ ] Papéis e permissões (admin, user, guest, etc.)
19
+
20
+ ## Requisitos Funcionais
21
+ - [ ] Fluxo principal (happy path)
22
+ - [ ] Fluxos alternativos
23
+ - [ ] Fluxos de exceção / erro
24
+ - [ ] Entradas necessárias (dados, formatos, validações)
25
+ - [ ] Saídas esperadas (resultados, notificações, estados)
26
+
27
+ ## Regras de Negócio
28
+ - [ ] Regras de validação
29
+ - [ ] Regras de cálculo / processamento
30
+ - [ ] Regras de estado / transição
31
+ - [ ] Regras de limite / threshold
32
+
33
+ ## Requisitos Não-Funcionais
34
+ - [ ] Performance (tempo de resposta, throughput)
35
+ - [ ] Segurança (autenticação, autorização, dados sensíveis)
36
+ - [ ] Usabilidade (acessibilidade, responsividade)
37
+ - [ ] Confiabilidade (disponibilidade, tolerância a falhas)
38
+
39
+ ## Interface
40
+ - [ ] Telas / componentes visuais necessários
41
+ - [ ] Integrações com APIs / serviços externos
42
+ - [ ] Eventos / webhooks / notificações
43
+
44
+ ## Dependências
45
+ - [ ] Dependências com outras features
46
+ - [ ] Dependências com serviços externos
47
+ - [ ] Dependências com dados pré-existentes
48
+
49
+ ## Critérios de Aceitação
50
+ - [ ] Critérios mensuráveis para cada requisito funcional
51
+ - [ ] Cenários de teste que comprovam o funcionamento
52
+
53
+ ## Restrições e Premissas
54
+ - [ ] Restrições técnicas (stack, plataforma, browser)
55
+ - [ ] Restrições de negócio (regulatórias, compliance)
56
+ - [ ] Premissas assumidas
57
+ ```
58
+
59
+ ## Instruções de Uso
60
+
61
+ 1. Ao iniciar a entrevista, crie o Task artifact com este checklist adaptado à feature
62
+ 2. Marque `[/]` quando iniciar a discussão de um tópico
63
+ 3. Marque `[x]` quando o tópico estiver completamente resolvido (sem ambiguidade)
64
+ 4. Adicione sub-itens conforme novos pontos surgirem durante a entrevista
65
+ 5. Não remova itens — se não aplicável, marque como `[x] N/A — {justificativa}`
@@ -0,0 +1,151 @@
1
+ # Template SRS — IEEE 830 / ISO/IEC/IEEE 29148:2018
2
+
3
+ Use este template como base para gerar o documento SRS. Adapte as seções conforme a complexidade da feature. Nunca remova seções — se não aplicável, marque como "N/A" com justificativa.
4
+
5
+ ---
6
+
7
+ ## Estrutura do Documento
8
+
9
+ ```markdown
10
+ # Especificação de Requisitos de Software (SRS)
11
+ ## {Nome da Feature}
12
+
13
+ **Versão**: 1.0
14
+ **Data**: {data de criação}
15
+ **Projeto**: {nome do projeto}
16
+ **Feature**: {nome da feature}
17
+
18
+ ---
19
+
20
+ ## 1. Introdução
21
+
22
+ ### 1.1 Propósito
23
+ Descrever o propósito deste documento e qual feature ele especifica.
24
+
25
+ ### 1.2 Escopo
26
+ Delimitação clara do que esta feature cobre e o que está FORA do escopo.
27
+
28
+ ### 1.3 Definições, Acrônimos e Abreviações
29
+ Glossário de termos específicos do domínio usados neste documento.
30
+
31
+ ### 1.4 Referências
32
+ Documentos externos referenciados (outros SRS, APIs, normas).
33
+
34
+ ### 1.5 Visão Geral do Documento
35
+ Breve descrição da organização deste documento.
36
+
37
+ ---
38
+
39
+ ## 2. Descrição Geral
40
+
41
+ ### 2.1 Perspectiva do Produto
42
+ Como esta feature se encaixa no sistema maior. Dependências com outros módulos/features.
43
+
44
+ ### 2.2 Funções do Produto
45
+ Resumo de alto nível das funcionalidades que a feature provê.
46
+
47
+ ### 2.3 Características dos Usuários
48
+ Personas/atores que interagem com esta feature. Nível técnico esperado.
49
+
50
+ ### 2.4 Restrições
51
+ Limitações técnicas, regulatórias ou de negócio.
52
+
53
+ ### 2.5 Premissas e Dependências
54
+ O que está sendo assumido como verdade e depende de fatores externos.
55
+
56
+ ---
57
+
58
+ ## 3. Requisitos Funcionais
59
+
60
+ ### RF-001: {Nome do Requisito}
61
+ - **Descrição**: {O que o sistema deve fazer}
62
+ - **Entrada**: {Dados de entrada esperados}
63
+ - **Processamento**: {Lógica de negócio aplicada}
64
+ - **Saída**: {Resultado esperado}
65
+ - **Prioridade**: Alta | Média | Baixa
66
+ - **Critério de Aceitação**: {Condições mensuráveis para considerar completo}
67
+
68
+ ### RF-002: {Nome do Requisito}
69
+ (repetir estrutura para cada requisito funcional)
70
+
71
+ ---
72
+
73
+ ## 4. Requisitos Não-Funcionais
74
+
75
+ ### 4.1 Performance
76
+ - Tempo de resposta esperado
77
+ - Throughput mínimo
78
+ - Limites de carga
79
+
80
+ ### 4.2 Segurança
81
+ - Requisitos de autenticação/autorização
82
+ - Proteção de dados sensíveis
83
+ - Conformidade regulatória
84
+
85
+ ### 4.3 Usabilidade
86
+ - Padrões de acessibilidade (WCAG nível)
87
+ - Responsividade (dispositivos alvo)
88
+ - Idiomas suportados
89
+
90
+ ### 4.4 Confiabilidade
91
+ - Disponibilidade esperada
92
+ - Tolerância a falhas
93
+ - Estratégia de recovery
94
+
95
+ ### 4.5 Manutenibilidade
96
+ - Padrões de código exigidos
97
+ - Cobertura de testes mínima
98
+ - Documentação necessária
99
+
100
+ ---
101
+
102
+ ## 5. Regras de Negócio
103
+
104
+ ### RN-001: {Nome da Regra}
105
+ - **Descrição**: {Regra de negócio}
106
+ - **Condição**: {Quando se aplica}
107
+ - **Ação**: {O que deve acontecer}
108
+ - **Exceções**: {Casos onde não se aplica}
109
+
110
+ ---
111
+
112
+ ## 6. Requisitos de Interface
113
+
114
+ ### 6.1 Interfaces de Usuário
115
+ Descrição das telas/componentes visuais necessários.
116
+
117
+ ### 6.2 Interfaces de Software
118
+ APIs, serviços externos, integrações com outros sistemas.
119
+
120
+ ### 6.3 Interfaces de Hardware
121
+ Dispositivos, sensores, periféricos (se aplicável).
122
+
123
+ ---
124
+
125
+ ## 7. Matriz de Rastreabilidade
126
+
127
+ | ID Requisito | Regra de Negócio | Critério de Aceitação | Prioridade |
128
+ |:---|:---|:---|:---|
129
+ | RF-001 | RN-001 | CA-001 | Alta |
130
+
131
+ ---
132
+
133
+ ## 8. Apêndices
134
+
135
+ ### 8.1 Diagrama de Casos de Uso
136
+ (se aplicável)
137
+
138
+ ### 8.2 Protótipos / Wireframes
139
+ (referências a mockups, se existirem)
140
+
141
+ ### 8.3 Perguntas em Aberto
142
+ (questões não resolvidas que precisam de follow-up)
143
+ ```
144
+
145
+ ## Regras de Preenchimento
146
+
147
+ 1. **Cada requisito funcional DEVE ter critério de aceitação** — sem exceção
148
+ 2. **Requisitos devem ser testáveis** — se não pode ser verificado, não é um requisito válido
149
+ 3. **Use voz ativa** — "O sistema DEVE..." e não "Seria bom se o sistema..."
150
+ 4. **Priorize com MoSCoW** — Must/Should/Could/Won't ou Alta/Média/Baixa
151
+ 5. **IDs sequenciais** — RF-001, RF-002... / RN-001, RN-002... para rastreabilidade