adi_dev_workflow 1.3.1 → 1.5.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 (73) hide show
  1. package/frameworks/commands/ministack/generate-tasks.md +212 -212
  2. package/frameworks/commands/sdd/generate-task-plan.md +4 -4
  3. package/frameworks/commands/sdd/generate-tech-direction.md +2 -2
  4. package/frameworks/commands/sdd/generate-tech-spec.md +4 -4
  5. package/frameworks/commands/sdd/generate-tests.md +171 -39
  6. package/frameworks/config/ai-framework-config.yaml +2 -2
  7. package/frameworks/skills/ministack-tasks-expert/SKILL.md +115 -104
  8. package/frameworks/skills/ministack-tech-direction-expert/SKILL.md +21 -6
  9. package/frameworks/skills/prompt-engineer-expert/SKILL.md +10 -7
  10. package/frameworks/skills/sdd-tech-direction-expert/SKILL.md +21 -6
  11. package/frameworks/skills/sdd-tech-spec-expert/SKILL.md +23 -7
  12. package/package.json +1 -1
  13. package/frameworks/agents/qa-validation-expert.md +0 -458
  14. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/benchmark.json +0 -99
  15. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/benchmark.md +0 -64
  16. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/eval_metadata.json +0 -12
  17. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/grading.json +0 -32
  18. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/outputs/response.md +0 -134
  19. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/outputs/transcript.md +0 -68
  20. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/timing.json +0 -5
  21. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/grading.json +0 -32
  22. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/outputs/response.md +0 -525
  23. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/outputs/transcript.md +0 -30
  24. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/timing.json +0 -5
  25. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/eval_metadata.json +0 -12
  26. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/grading.json +0 -32
  27. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/outputs/response.md +0 -1126
  28. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/outputs/transcript.md +0 -131
  29. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/timing.json +0 -5
  30. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/grading.json +0 -32
  31. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/outputs/response.md +0 -452
  32. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/outputs/transcript.md +0 -78
  33. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/timing.json +0 -5
  34. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/eval_metadata.json +0 -12
  35. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/grading.json +0 -32
  36. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/outputs/response.md +0 -101
  37. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/outputs/transcript.md +0 -133
  38. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/timing.json +0 -5
  39. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/grading.json +0 -32
  40. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/outputs/response.md +0 -248
  41. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/outputs/transcript.md +0 -49
  42. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/timing.json +0 -5
  43. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/review.html +0 -1325
  44. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/benchmark.json +0 -94
  45. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/benchmark.md +0 -67
  46. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/eval_metadata.json +0 -12
  47. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/grading.json +0 -32
  48. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/outputs/response.md +0 -117
  49. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/outputs/transcript.md +0 -91
  50. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/timing.json +0 -1
  51. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/grading.json +0 -32
  52. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/outputs/response.md +0 -694
  53. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/outputs/transcript.md +0 -45
  54. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/timing.json +0 -1
  55. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/eval_metadata.json +0 -12
  56. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/grading.json +0 -32
  57. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/outputs/response.md +0 -1087
  58. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/outputs/transcript.md +0 -124
  59. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/timing.json +0 -1
  60. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/grading.json +0 -32
  61. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/outputs/response.md +0 -458
  62. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/outputs/transcript.md +0 -84
  63. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/timing.json +0 -1
  64. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/eval_metadata.json +0 -12
  65. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/grading.json +0 -32
  66. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/outputs/response.md +0 -70
  67. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/outputs/transcript.md +0 -148
  68. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/timing.json +0 -1
  69. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/grading.json +0 -32
  70. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/outputs/response.md +0 -249
  71. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/outputs/transcript.md +0 -80
  72. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/timing.json +0 -1
  73. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/review.html +0 -1325
@@ -1,212 +1,212 @@
1
- ---
2
- description: "Gera TASKS do miniStack a partir de INTENT e SCOPE aprovados. Params: <intent.md> <scope.md>"
3
- argument-hint: "<intent.md ex: docs/carrinho-compra/v1/intent.md> <scope.md ex: docs/carrinho-compra/v1/scope.md>"
4
- ---
5
-
6
- > **Paths**: Leia `.claude/config/ai-framework-config.yaml` secao `ministack` antes de salvar artefatos. Os paths abaixo sao exemplos — o path real vem do config.
7
-
8
- Use a skill **ministack-tasks-expert** para gerar as TASKS.
9
-
10
- ## Contexto
11
-
12
- Voce deve seguir as regras e o processo definidos na skill ministack-tasks-expert.
13
-
14
- O $ARGUMENTS deve conter:
15
- 1. **caminho do intent.md** (obrigatorio)
16
- 2. **caminho do scope.md** (obrigatorio)
17
-
18
- O task_plan.md e as tasks individuais serao gerados no mesmo diretorio dos arquivos de entrada.
19
-
20
- ## Regras Adicionais
21
-
22
- - **Claude Code**: use a ferramenta `AskUserQuestion` para esclarecer duvidas com o usuario
23
- - **NUNCA** deduza escopo ou invente informacoes — na **DUVIDA PERGUNTE AO USUARIO**
24
- - Liste **TODOS** os arquivos envolvidos e as acoes (criar/modificar/remover) em cada task — economiza tokens e scans
25
-
26
- ---
27
-
28
- ## Estrutura de Saida (Formato Modular)
29
-
30
- A skill gera **arquivos individuais** para cada task, nao um arquivo monolitico:
31
-
32
- ```
33
- docs/[nome-feature]/vN/
34
- task_plan.md # Indice: macro-fases, grafo de dependencias, visao consolidada
35
- tasks/
36
- T1.md # Task individual completa
37
- T2.md
38
- T3.md
39
- ...
40
- ```
41
-
42
- ---
43
-
44
- ## Delegacao QA — Secao de Testes de cada Task
45
-
46
- A **secao de Testes** de cada task NAO deve ser preenchida pela skill. Voce DEVE delegar para o agente **qa-staff-engineer** que retorna um JSON estruturado. Depois, voce converte o resultado em markdown na secao de Testes.
47
-
48
- ### Quando executar
49
-
50
- Para **cada task**, apos a skill preencher todas as secoes exceto Testes, **ANTES de salvar os arquivos finais**. Se varias tasks estao sendo criadas, voce pode disparar agentes QA em **paralelo** para maximizar eficiencia.
51
-
52
- ### Passo 1: Preparar a lista de arquivos
53
-
54
- Monte a lista de `arquivos` que o agente deve ler para CADA task. Inclua:
55
-
56
- - **INTENT aprovada**: `docs/[nome-feature]/vN/intent.md`
57
- - **SCOPE aprovado**: `docs/[nome-feature]/vN/scope.md`
58
- - **Testes existentes**: busque arquivos de teste relacionados aos arquivos impactados pela task
59
- - **Codigo-fonte existente**: arquivos listados na task (a criar ou modificar)
60
-
61
- ### Passo 2: Preparar as instrucoes
62
-
63
- Monte o campo `instrucoes` com:
64
-
65
- 1. O conteudo completo da **task parcial** que a skill montou ate o momento
66
- 2. Os **criterios de conclusao** da task
67
- 3. Os **arquivos impactados** pela task — para o QA saber quais camadas testar
68
- 4. O **tipo da task** (cria handler, cria service, cria repository, cria migracao, etc.)
69
-
70
- ### Passo 3: Disparar o agente
71
-
72
- Lance o agente usando a ferramenta `Agent` com:
73
-
74
- - **subagent_type**: `qa-staff-engineer`
75
- - **description**: "QA gerar testes task TN"
76
- - **prompt**: Monte o prompt com os 3 parametros obrigatorios:
77
-
78
- ```
79
- Voce foi invocado com os seguintes parametros:
80
-
81
- 1. **modo**: GERAR_TESTES
82
- 2. **arquivos**: [lista de caminhos dos arquivos preparados no Passo 1]
83
- 3. **instrucoes**: [conteudo preparado no Passo 2]
84
- ```
85
-
86
- ### Passo 4: Converter JSON em formato tabular (secao Testes)
87
-
88
- O agente QA retorna um JSON com `casos_teste[]`. Voce DEVE converter para o formato **tabular** da secao de Testes usando o mapeamento abaixo:
89
-
90
- #### Mapeamento de tipos
91
-
92
- | Campo `tipo` no JSON | Subsecao destino |
93
- |---------------------|-----------------|
94
- | `UNITARIO` | **5.1 Testes Unitarios** |
95
- | `INTEGRACAO` | **5.2 Testes de Integracao** |
96
- | `E2E` | **5.3 Testes E2E** |
97
- | `SEGURANCA` | **5.4 Cenarios de Erro** |
98
- | `PERFORMANCE` | **5.4 Cenarios de Erro** |
99
-
100
- Alem dos testes tipo `SEGURANCA` e `PERFORMANCE`, inclua em 5.4 todos os `casos_teste` com `categoria` igual a: `tratamento_erro`, `caso_extremo`, `fronteira`.
101
-
102
- #### Formato de saida por subsecao
103
-
104
- O formato DEVE seguir o **formato tabular** do template de task individual. Isso garante clareza sobre o objetivo real de cada teste.
105
-
106
- Infira o nome do arquivo de teste a partir do componente testado:
107
- - Handler → `[nome]_handler_test.go`
108
- - Service → `[nome]_service_test.go`
109
- - Repository → `[nome]_repository_test.go`
110
-
111
- Infira o nome da funcao de teste a partir do titulo do CT:
112
- - Use formato `TestNomeMetodo_CenarioDescritivo` (Go convention)
113
-
114
- **5.1 Testes Unitarios** — formato tabular agrupado por componente:
115
-
116
- ```markdown
117
- #### [Camada]: [NomeComponente] (`arquivo_test.go`)
118
-
119
- Mock: [interfaces mockadas]
120
-
121
- | CT | Teste | Objetivo | Input | Expected | Mock |
122
- |----|-------|----------|-------|----------|------|
123
- | CT-XX | TestMetodo_Cenario | Verificar que [comportamento] quando [condicao] | dados entrada | resultado esperado | dependencias mockadas |
124
- ```
125
-
126
- **5.2 Testes de Integracao** — formato tabular com Setup:
127
-
128
- ```markdown
129
- #### [CamadaA + CamadaB] (`arquivo_test.go`)
130
-
131
- Setup: [banco in-memory, migracoes, fixtures]
132
-
133
- | CT | Teste | Objetivo | Fluxo | Validacao |
134
- |----|-------|----------|-------|-----------|
135
- | CT-XX | TestIntegracao_Cenario | Verificar que [comportamento] quando [condicao] | Passos do fluxo | Assertions esperadas |
136
- ```
137
-
138
- **5.3 Testes E2E** — formato descritivo por fluxo:
139
-
140
- ```markdown
141
- #### Fluxo: [Nome do Fluxo] (CT-XX)
142
- - **Objetivo**: (1 frase descrevendo o que este fluxo E2E valida de ponta a ponta)
143
- - **Pre-condicoes**: (estado inicial do sistema)
144
- - **Passos**:
145
- 1. Passo 1
146
- 2. Passo 2
147
- - **Validacoes**: (assertions sobre dados e estado final)
148
- ```
149
-
150
- **5.4 Cenarios de Erro** — formato tabular:
151
-
152
- ```markdown
153
- | Cenario | Objetivo | Trigger | Codigo/Status | Log Esperado |
154
- |---------|----------|---------|---------------|-------------|
155
- | Descricao | Verificar que [constraint] impede [operacao] | Acao trigger | Codigo erro | Mensagem log |
156
- ```
157
-
158
- #### Testes Existentes a Modificar
159
-
160
- Apos as subsecoes 5.1-5.4, adicione a tabela de testes existentes:
161
-
162
- ```markdown
163
- #### Testes Existentes a Modificar
164
- | Arquivo | Motivo da Modificacao |
165
- |---------|----------------------|
166
- ```
167
-
168
- Se nenhum: `> Nenhum teste existente impactado.`
169
-
170
- ### Passo 5: Validar como engenheiro de tarefas
171
-
172
- Antes de integrar a secao de Testes na task:
173
-
174
- 1. Verifique **coerencia** com os arquivos impactados (os componentes testados existem?)
175
- 2. Verifique que os testes cobrem os **criterios de conclusao** da task
176
- 3. Ajuste nomenclatura para seguir padroes do projeto
177
- 4. Para tasks sem codigo (documentacao, configuracao): "N/A — task nao envolve codigo testavel"
178
-
179
- ### Passo 6: Salvar e apresentar
180
-
181
- 1. Salve cada task individual em `docs/[nome-feature]/vN/tasks/T[N].md`
182
- 2. Salve o task plan em `docs/[nome-feature]/vN/task_plan.md`
183
- 3. Apresente ao usuario para aprovacao
184
-
185
- **NAO peca aprovacao isolada da secao de testes** — apresente as tasks completas para validacao.
186
-
187
- ---
188
-
189
- ## Estado do Pipeline (ministack_state.yaml)
190
-
191
- Apos salvar o task_plan.md e todas as tasks com sucesso, atualize o arquivo `ministack_state.yaml` no mesmo diretorio:
192
-
193
- ```yaml
194
- # atualizar apenas estes campos:
195
- current_step: task_plan
196
- steps:
197
- task_plan:
198
- status: completed
199
- summary: "<N tasks>, <M fases>, <P paralelizaveis>"
200
- execution:
201
- status: pending
202
- tasks_total: <N>
203
- tasks_completed: 0
204
- ```
205
-
206
- Se o `ministack_state.yaml` nao existir, nao crie — o generate-intent e responsavel por criar.
207
-
208
- ## Entrada
209
-
210
- Cole a INTENT e SCOPE aprovados:
211
-
212
- $ARGUMENTS
1
+ ---
2
+ description: "Gera TASKS do miniStack a partir de INTENT e SCOPE aprovados. Params: <intent.md> <scope.md>"
3
+ argument-hint: "<intent.md ex: docs/specs/carrinho-compra/v1/intent.md> <scope.md ex: docs/specs/carrinho-compra/v1/scope.md>"
4
+ ---
5
+
6
+ > **Paths**: Leia `.claude/config/ai-framework-config.yaml` seção `ministack` antes de salvar artefatos. Os paths abaixo são exemplos — o path real vem do config.
7
+
8
+ Use a skill **ministack-tasks-expert** para gerar as TASKS.
9
+
10
+ ## Contexto
11
+
12
+ Você deve seguir as regras e o processo definidos na skill ministack-tasks-expert.
13
+
14
+ O $ARGUMENTS deve conter:
15
+ 1. **caminho do intent.md** (obrigatório)
16
+ 2. **caminho do scope.md** (obrigatório)
17
+
18
+ O task_plan.md e as tasks individuais serão gerados no mesmo diretório dos arquivos de entrada.
19
+
20
+ ## Regras Adicionais
21
+
22
+ - **Claude Code**: use a ferramenta `AskUserQuestion` para esclarecer dúvidas com o usuário
23
+ - **NUNCA** deduza escopo ou invente informações — na **DÚVIDA PERGUNTE AO USUÁRIO**
24
+ - Liste **TODOS** os arquivos envolvidos e as ações (criar/modificar/remover) em cada task — economiza tokens e scans
25
+
26
+ ---
27
+
28
+ ## Estrutura de Saída (Formato Modular)
29
+
30
+ A skill gera **arquivos individuais** para cada task, não um arquivo monolítico:
31
+
32
+ ```
33
+ docs/specs/[nome-feature]/[versão]/
34
+ task_plan.md # Índice: macro-fases, grafo de dependências, visão consolidada
35
+ tasks/
36
+ T1.md # Task individual completa
37
+ T2.md
38
+ T3.md
39
+ ...
40
+ ```
41
+
42
+ ---
43
+
44
+ ## Delegação QA — Seção de Testes de cada Task
45
+
46
+ A **seção de Testes** de cada task NÃO deve ser preenchida pela skill. Você (comando orquestrador) DEVE delegar para o agente **qa-staff-engineer** que retorna um JSON estruturado. Depois, você converte o resultado em markdown na seção de Testes.
47
+
48
+ ### Quando executar
49
+
50
+ Para **cada task**, após a skill preencher todas as seções exceto Testes, **ANTES de salvar os arquivos finais**. Se várias tasks estão sendo criadas, você pode disparar agentes QA em **paralelo** para maximizar eficiência.
51
+
52
+ ### Passo 1: Preparar a lista de arquivos
53
+
54
+ Monte a lista de `arquivos` que o agente deve ler para CADA task. Inclua:
55
+
56
+ - **INTENT aprovada**: `docs/specs/[nome-feature]/[versão]/intent.md`
57
+ - **SCOPE aprovado**: `docs/specs/[nome-feature]/[versão]/scope.md`
58
+ - **Testes existentes**: busque arquivos de teste relacionados aos arquivos impactados pela task
59
+ - **Código-fonte existente**: arquivos listados na task (a criar ou modificar)
60
+
61
+ ### Passo 2: Preparar as instruções
62
+
63
+ Monte o campo `instrucoes` com:
64
+
65
+ 1. O conteúdo completo da **task parcial** que a skill montou até o momento
66
+ 2. Os **critérios de conclusão** da task
67
+ 3. Os **arquivos impactados** pela task — para o QA saber quais camadas testar
68
+ 4. O **tipo da task** (cria handler, cria service, cria repository, cria migração, etc.)
69
+
70
+ ### Passo 3: Disparar o agente
71
+
72
+ Lance o agente usando a ferramenta `Agent` com:
73
+
74
+ - **subagent_type**: `qa-staff-engineer`
75
+ - **description**: "QA gerar testes task TN"
76
+ - **prompt**: Monte o prompt com os 3 parâmetros obrigatórios:
77
+
78
+ ```
79
+ Você foi invocado com os seguintes parâmetros:
80
+
81
+ 1. **modo**: GERAR_TESTES
82
+ 2. **arquivos**: [lista de caminhos dos arquivos preparados no Passo 1]
83
+ 3. **instrucoes**: [conteúdo preparado no Passo 2]
84
+ ```
85
+
86
+ ### Passo 4: Converter JSON em formato tabular (seção Testes)
87
+
88
+ O agente QA retorna um JSON com `casos_teste[]`. Você DEVE converter para o formato **tabular** da seção de Testes usando o mapeamento abaixo:
89
+
90
+ #### Mapeamento de tipos
91
+
92
+ | Campo `tipo` no JSON | Subseção destino |
93
+ |---------------------|-----------------|
94
+ | `UNITARIO` | **5.1 Testes Unitários** |
95
+ | `INTEGRACAO` | **5.2 Testes de Integração** |
96
+ | `E2E` | **5.3 Testes E2E** |
97
+ | `SEGURANCA` | **5.4 Cenários de Erro** |
98
+ | `PERFORMANCE` | **5.4 Cenários de Erro** |
99
+
100
+ Além dos testes tipo `SEGURANCA` e `PERFORMANCE`, inclua em 5.4 todos os `casos_teste` com `categoria` igual a: `tratamento_erro`, `caso_extremo`, `fronteira`.
101
+
102
+ #### Formato de saída por subseção
103
+
104
+ O formato DEVE seguir o **formato tabular** do template de task individual. Isso garante clareza sobre o objetivo real de cada teste.
105
+
106
+ Infira o nome do arquivo de teste a partir do componente testado:
107
+ - Handler → `[nome]_handler_test.go`
108
+ - Service → `[nome]_service_test.go`
109
+ - Repository → `[nome]_repository_test.go`
110
+
111
+ Infira o nome da função de teste a partir do título do CT:
112
+ - Use formato `TestNomeMetodo_CenarioDescritivo` (Go convention)
113
+
114
+ **5.1 Testes Unitários** — formato tabular agrupado por componente:
115
+
116
+ ```markdown
117
+ #### [Camada]: [NomeComponente] (`arquivo_test.go`)
118
+
119
+ Mock: [interfaces mockadas]
120
+
121
+ | CT | Teste | Objetivo | Input | Expected | Mock |
122
+ |----|-------|----------|-------|----------|------|
123
+ | CT-XX | TestMetodo_Cenario | Verificar que [comportamento] quando [condição] | dados entrada | resultado esperado | dependências mockadas |
124
+ ```
125
+
126
+ **5.2 Testes de Integração** — formato tabular com Setup:
127
+
128
+ ```markdown
129
+ #### [CamadaA + CamadaB] (`arquivo_test.go`)
130
+
131
+ Setup: [banco in-memory, migrações, fixtures]
132
+
133
+ | CT | Teste | Objetivo | Fluxo | Validação |
134
+ |----|-------|----------|-------|-----------|
135
+ | CT-XX | TestIntegracao_Cenario | Verificar que [comportamento] quando [condição] | Passos do fluxo | Assertions esperadas |
136
+ ```
137
+
138
+ **5.3 Testes E2E** — formato descritivo por fluxo:
139
+
140
+ ```markdown
141
+ #### Fluxo: [Nome do Fluxo] (CT-XX)
142
+ - **Objetivo**: (1 frase descrevendo o que este fluxo E2E valida de ponta a ponta)
143
+ - **Pré-condições**: (estado inicial do sistema)
144
+ - **Passos**:
145
+ 1. Passo 1
146
+ 2. Passo 2
147
+ - **Validações**: (assertions sobre dados e estado final)
148
+ ```
149
+
150
+ **5.4 Cenários de Erro** — formato tabular:
151
+
152
+ ```markdown
153
+ | Cenário | Objetivo | Trigger | Código/Status | Log Esperado |
154
+ |---------|----------|---------|---------------|--------------|
155
+ | Descrição | Verificar que [constraint] impede [operação] | Ação trigger | Código erro | Mensagem log |
156
+ ```
157
+
158
+ #### Testes Existentes a Modificar
159
+
160
+ Após as subseções 5.1-5.4, adicione a tabela de testes existentes:
161
+
162
+ ```markdown
163
+ #### Testes Existentes a Modificar
164
+ | Arquivo | Motivo da Modificação |
165
+ |---------|----------------------|
166
+ ```
167
+
168
+ Se nenhum: `> Nenhum teste existente impactado.`
169
+
170
+ ### Passo 5: Validar como engenheiro de tarefas
171
+
172
+ Antes de integrar a seção de Testes na task:
173
+
174
+ 1. Verifique **coerência** com os arquivos impactados (os componentes testados existem?)
175
+ 2. Verifique que os testes cobrem os **critérios de conclusão** da task
176
+ 3. Ajuste nomenclatura para seguir padrões do projeto
177
+ 4. Para tasks sem código (documentação, configuração): "N/A — task não envolve código testável"
178
+
179
+ ### Passo 6: Salvar e apresentar
180
+
181
+ 1. Salve cada task individual em `docs/specs/[nome-feature]/[versão]/tasks/T[N].md`
182
+ 2. Salve o task plan em `docs/specs/[nome-feature]/[versão]/task_plan.md`
183
+ 3. Apresente ao usuário para aprovação
184
+
185
+ **NÃO peça aprovação isolada da seção de testes** — apresente as tasks completas para validação.
186
+
187
+ ---
188
+
189
+ ## Estado do Pipeline (ministack_state.yaml)
190
+
191
+ Após salvar o task_plan.md e todas as tasks com sucesso, atualize o arquivo `ministack_state.yaml` no mesmo diretório:
192
+
193
+ ```yaml
194
+ # atualizar apenas estes campos:
195
+ current_step: task_plan
196
+ steps:
197
+ task_plan:
198
+ status: completed
199
+ summary: "<N tasks>, <M fases>, <P paralelizáveis>"
200
+ execution:
201
+ status: pending
202
+ tasks_total: <N>
203
+ tasks_completed: 0
204
+ ```
205
+
206
+ Se o `ministack_state.yaml` não existir, não crie — o generate-intent é responsável por criar.
207
+
208
+ ## Entrada
209
+
210
+ Cole a INTENT e SCOPE aprovados:
211
+
212
+ $ARGUMENTS
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: "Gera TASK PLAN + tasks individuais do SDD a partir de SPEC_TECH aprovado. Param: caminho do spec_tech.md"
3
- argument-hint: "<spec_tech.md ex: docs/feature-user/v1/spec_tech.md>"
3
+ argument-hint: "<spec_tech.md ex: docs/specs/feature-user/v1/spec_tech.md>"
4
4
  ---
5
5
 
6
6
  > **Paths**: Leia `.claude/config/ai-framework-config.yaml` secao `sdd` antes de salvar artefatos. Os paths abaixo sao exemplos — o path real vem do config.
@@ -12,7 +12,7 @@ Use a skill **sdd-task-plan-expert** para gerar o TASK PLAN e as tasks individua
12
12
  Voce deve atuar como um **Engenheiro de Software Senior** especializado em decomposicao de tarefas e seguir todo o processo interativo definido na skill sdd-task-plan-expert.
13
13
 
14
14
  O $ARGUMENTS deve conter:
15
- 1. **caminho do spec_tech.md** (obrigatorio) — ex: `docs/feature-user/v1/spec_tech.md`
15
+ 1. **caminho do spec_tech.md** (obrigatorio) — ex: `docs/specs/feature-user/v1/spec_tech.md`
16
16
 
17
17
  O task_plan.md e as tasks individuais serao gerados no mesmo diretorio do spec_tech.md. O PRD sera localizado a partir de referencia interna no spec_tech.md.
18
18
 
@@ -39,8 +39,8 @@ Para **cada task**, apos preencher as secoes 1-5 e 7-8, **ANTES de salvar o arqu
39
39
 
40
40
  Monte a lista de `arquivos` que o subagente deve ler para CADA task. Inclua:
41
41
 
42
- - **PRD aprovado**: `docs/[nome-feature]/vN/prd.md`
43
- - **SPEC_TECH aprovado**: `docs/[nome-feature]/vN/spec_tech.md`
42
+ - **PRD aprovado**: `docs/specs/[nome-feature]/[versao]/prd.md`
43
+ - **SPEC_TECH aprovado**: `docs/specs/[nome-feature]/[versao]/spec_tech.md`
44
44
  - **Regras do projeto**: `CLAUDE.md`, `.claude/rules/*.md`
45
45
  - **Migracoes**: `internal/db/migrations/*.sql` (relacionadas a task)
46
46
  - **Queries SQLC**: `internal/db/queries/*.sql` (relacionadas a task)
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: "Gera TECH DIRECTION do SDD a partir de PRD aprovado. Param: caminho do prd.md"
3
- argument-hint: "<prd.md ex: docs/feature-user/v1/prd.md>"
3
+ argument-hint: "<prd.md ex: docs/specs/feature-user/v1/prd.md>"
4
4
  ---
5
5
 
6
6
  > **Paths**: Leia `.claude/config/ai-framework-config.yaml` secao `sdd` antes de salvar artefatos. Os paths abaixo sao exemplos — o path real vem do config.
@@ -23,7 +23,7 @@ Antes de iniciar, verifique se `.claude/rules/project-profile.md` existe. Se NAO
23
23
  - Pesquise o codebase ANTES de fazer perguntas (regras, padroes, libs)
24
24
  - Faca **UMA pergunta por vez**, aguardando a resposta antes de avancar
25
25
  - **SEMPRE** salve o arquivo fisico antes de apresentar ao usuario
26
- - O arquivo deve ser salvo no mesmo diretorio do PRD: `docs/[nome-feature]/vN/tech_direction.md`
26
+ - O arquivo deve ser salvo no mesmo diretorio do PRD: `docs/specs/[nome-feature]/[versao]/tech_direction.md`
27
27
 
28
28
  ## Estado do Pipeline (sdd_state.yaml)
29
29
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: "Gera SPEC_TECH completo do SDD a partir de PRD aprovado. Param: caminho do prd.md"
3
- argument-hint: "<prd.md ex: docs/feature-user/v1/prd.md>"
3
+ argument-hint: "<prd.md ex: docs/specs/feature-user/v1/prd.md>"
4
4
  ---
5
5
 
6
6
  > **Paths**: Leia `.claude/config/ai-framework-config.yaml` secao `sdd` antes de salvar artefatos. Os paths abaixo sao exemplos — o path real vem do config.
@@ -12,7 +12,7 @@ Use a skill **sdd-tech-spec-expert** para gerar o SPEC_TECH.
12
12
  Voce deve atuar como um **Arquiteto de Software Senior** e seguir todo o processo interativo definido na skill sdd-tech-spec-expert para transformar o PRD aprovado em uma especificacao tecnica completa.
13
13
 
14
14
  O $ARGUMENTS deve conter:
15
- 1. **caminho do prd.md** (obrigatorio) — ex: `docs/feature-user/v1/prd.md`
15
+ 1. **caminho do prd.md** (obrigatorio) — ex: `docs/specs/feature-user/v1/prd.md`
16
16
 
17
17
  O spec_tech.md sera gerado no mesmo diretorio do prd.md.
18
18
 
@@ -35,7 +35,7 @@ Antes de iniciar, verifique se existe um arquivo `tech_direction.md` no mesmo di
35
35
  - Liste **TODOS** os arquivos envolvidos e as acoes (criar/modificar/referencia) — economiza tokens e scans
36
36
  - Mapeie cada **User Story do PRD** para definicoes tecnicas correspondentes
37
37
 
38
- O arquivo deve ser salvo no diretorio `docs/[nome-feature]/vN/spec_tech.md`
38
+ O arquivo deve ser salvo no diretorio `docs/specs/[nome-feature]/[versao]/spec_tech.md`
39
39
 
40
40
  ---
41
41
 
@@ -51,7 +51,7 @@ Apos coletar todas as decisoes tecnicas e preencher as secoes 1-13 do SPEC_TECH,
51
51
 
52
52
  Monte a lista de `arquivos` que o subagente deve ler. Inclua TODOS os caminhos relevantes:
53
53
 
54
- - **PRD aprovado**: `docs/[nome-feature]/vN/prd.md`
54
+ - **PRD aprovado**: `docs/specs/[nome-feature]/[versao]/prd.md`
55
55
  - **Regras do projeto**: `CLAUDE.md`, `.claude/rules/*.md`
56
56
  - **Migracoes**: `internal/db/migrations/*.sql` (relacionadas a feature)
57
57
  - **Queries SQLC**: `internal/db/queries/*.sql` (relacionadas a feature)