adi_dev_workflow 1.0.0 → 1.1.1

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 (135) hide show
  1. package/bin/index.js +0 -0
  2. package/frameworks/agents/qa-staff-engineer.md +311 -0
  3. package/frameworks/agents/qa-validation-expert.md +458 -0
  4. package/frameworks/agents/tech-review-conformance.md +200 -0
  5. package/frameworks/commands/generate-project-profile.md +68 -0
  6. package/frameworks/commands/generate-prompt.md +33 -98
  7. package/frameworks/commands/ministack/README.md +61 -46
  8. package/frameworks/commands/ministack/code-review.md +36 -49
  9. package/frameworks/commands/ministack/generate-intent.md +25 -2
  10. package/frameworks/commands/ministack/generate-scope.md +30 -6
  11. package/frameworks/commands/ministack/generate-tasks.md +191 -6
  12. package/frameworks/commands/ministack/generate-tech-direction.md +43 -0
  13. package/frameworks/commands/ministack/run-ministack-tasks.md +352 -33
  14. package/frameworks/commands/ministack/run-ministack-withlinear.md +23 -22
  15. package/frameworks/commands/ministack/status.md +153 -0
  16. package/frameworks/commands/sdd/code-review.md +10 -10
  17. package/frameworks/commands/sdd/generate-prd.md +32 -2
  18. package/frameworks/commands/sdd/generate-task-plan.md +199 -5
  19. package/frameworks/commands/sdd/generate-tech-direction.md +43 -0
  20. package/frameworks/commands/sdd/generate-tech-spec.md +218 -0
  21. package/frameworks/commands/sdd/generate-tests.md +2 -2
  22. package/frameworks/commands/sdd/run_tasks.md +391 -43
  23. package/frameworks/commands/sdd/run_tasks_withlinear.md +276 -37
  24. package/frameworks/commands/sdd/status.md +160 -0
  25. package/frameworks/commands/sdd/validate-sdd.md +18 -2
  26. package/frameworks/commands/sync-tasks-to-linear.md +588 -588
  27. package/frameworks/commands/taskcard/generate-taskcard.md +113 -25
  28. package/frameworks/commands/taskcard/run-taskcard.md +203 -34
  29. package/frameworks/skills/ministack-intent-expert/SKILL.md +16 -3
  30. package/frameworks/skills/ministack-intent-expert/templates/intent-template.md +1 -1
  31. package/frameworks/skills/ministack-scope-expert/SKILL.md +19 -11
  32. package/frameworks/skills/ministack-scope-expert/templates/scope-template.md +1 -1
  33. package/frameworks/skills/ministack-tasks-expert/SKILL.md +204 -0
  34. package/frameworks/skills/ministack-tasks-expert/templates/task_plan_template.md +78 -0
  35. package/frameworks/skills/ministack-tasks-expert/templates/task_template.md +103 -0
  36. package/frameworks/skills/ministack-tech-direction-expert/SKILL.md +230 -0
  37. package/frameworks/skills/ministack-tech-direction-expert/evals/evals.json +1 -0
  38. package/frameworks/skills/ministack-tech-direction-expert/templates/tech_direction-template.md +17 -0
  39. package/frameworks/skills/prompt-engineer-expert/SKILL.md +232 -0
  40. package/frameworks/skills/prompt-engineer-expert/templates/prompt_template.md +139 -0
  41. package/frameworks/skills/sdd-prd-expert/SKILL.md +155 -95
  42. package/frameworks/skills/sdd-prd-expert/evals/evals.json +59 -0
  43. package/frameworks/skills/sdd-prd-expert/templates/prd_template.md +46 -46
  44. package/frameworks/skills/sdd-prd-expert/templates/tech_direction-template.md +23 -0
  45. package/frameworks/skills/sdd-task-plan-expert/SKILL.md +191 -201
  46. package/frameworks/skills/sdd-task-plan-expert/evals/evals.json +109 -0
  47. package/frameworks/skills/sdd-task-plan-expert/templates/task_plan_template.md +33 -33
  48. package/frameworks/skills/sdd-task-plan-expert/templates/task_template.md +58 -32
  49. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/benchmark.json +99 -0
  50. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/benchmark.md +64 -0
  51. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/eval_metadata.json +12 -0
  52. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/grading.json +32 -0
  53. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/outputs/response.md +134 -0
  54. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/outputs/transcript.md +68 -0
  55. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/timing.json +5 -0
  56. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/grading.json +32 -0
  57. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/outputs/response.md +525 -0
  58. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/outputs/transcript.md +30 -0
  59. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/timing.json +5 -0
  60. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/eval_metadata.json +12 -0
  61. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/grading.json +32 -0
  62. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/outputs/response.md +1126 -0
  63. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/outputs/transcript.md +131 -0
  64. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/timing.json +5 -0
  65. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/grading.json +32 -0
  66. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/outputs/response.md +452 -0
  67. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/outputs/transcript.md +78 -0
  68. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/timing.json +5 -0
  69. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/eval_metadata.json +12 -0
  70. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/grading.json +32 -0
  71. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/outputs/response.md +101 -0
  72. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/outputs/transcript.md +133 -0
  73. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/timing.json +5 -0
  74. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/grading.json +32 -0
  75. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/outputs/response.md +248 -0
  76. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/outputs/transcript.md +49 -0
  77. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/timing.json +5 -0
  78. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/review.html +1325 -0
  79. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/benchmark.json +94 -0
  80. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/benchmark.md +67 -0
  81. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/eval_metadata.json +12 -0
  82. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/grading.json +32 -0
  83. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/outputs/response.md +117 -0
  84. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/outputs/transcript.md +91 -0
  85. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/timing.json +1 -0
  86. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/grading.json +32 -0
  87. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/outputs/response.md +694 -0
  88. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/outputs/transcript.md +45 -0
  89. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/timing.json +1 -0
  90. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/eval_metadata.json +12 -0
  91. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/grading.json +32 -0
  92. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/outputs/response.md +1087 -0
  93. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/outputs/transcript.md +124 -0
  94. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/timing.json +1 -0
  95. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/grading.json +32 -0
  96. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/outputs/response.md +458 -0
  97. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/outputs/transcript.md +84 -0
  98. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/timing.json +1 -0
  99. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/eval_metadata.json +12 -0
  100. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/grading.json +32 -0
  101. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/outputs/response.md +70 -0
  102. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/outputs/transcript.md +148 -0
  103. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/timing.json +1 -0
  104. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/grading.json +32 -0
  105. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/outputs/response.md +249 -0
  106. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/outputs/transcript.md +80 -0
  107. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/timing.json +1 -0
  108. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/review.html +1325 -0
  109. package/frameworks/skills/sdd-tech-direction-expert/SKILL.md +235 -0
  110. package/frameworks/skills/sdd-tech-direction-expert/evals/evals.json +1 -0
  111. package/frameworks/skills/sdd-tech-direction-expert/templates/tech_direction-template.md +23 -0
  112. package/frameworks/skills/sdd-tech-spec-expert/SKILL.md +317 -0
  113. package/frameworks/skills/sdd-tech-spec-expert/evals/evals.json +199 -0
  114. package/frameworks/skills/sdd-tech-spec-expert/templates/spec_tech_template.md +290 -0
  115. package/frameworks/skills/sdd-tech-spec-expert/templates/tech_direction-template.md +23 -0
  116. package/frameworks/skills/taskcard-expert/SKILL.md +40 -77
  117. package/frameworks/skills/taskcard-expert/templates/template.md +0 -2
  118. package/frameworks/templates/prompt_template.md +44 -1
  119. package/package.json +1 -1
  120. package/frameworks/commands/ministack/generate-tests.md +0 -37
  121. package/frameworks/commands/sdd/generate-spec-tech.md +0 -37
  122. package/frameworks/commands/taskcard/generate-tests.md +0 -37
  123. package/frameworks/skills/ministack-expert/SKILL.md +0 -415
  124. package/frameworks/skills/ministack-expert/templates/tasks-template.md +0 -141
  125. package/frameworks/skills/ministack-qa-expert/SKILL.md +0 -273
  126. package/frameworks/skills/ministack-qa-expert/templates/task_tests_template.md +0 -24
  127. package/frameworks/skills/ministack-qa-expert/templates/test_strategy_template.md +0 -75
  128. package/frameworks/skills/sdd-qa-expert/SKILL.md +0 -284
  129. package/frameworks/skills/sdd-qa-expert/templates/task_tests_template.md +0 -24
  130. package/frameworks/skills/sdd-qa-expert/templates/test_strategy_template.md +0 -75
  131. package/frameworks/skills/sdd-spec-tech-expert/SKILL.md +0 -387
  132. package/frameworks/skills/sdd-spec-tech-expert/templates/spec_tech_template.md +0 -246
  133. package/frameworks/skills/sdd-spec-tech-expert/templates/tech_direction-template.md +0 -23
  134. package/frameworks/skills/taskcard-qa-expert/SKILL.md +0 -265
  135. package/frameworks/skills/taskcard-qa-expert/templates/task_tests_template.md +0 -78
@@ -1,6 +1,6 @@
1
1
  ---
2
- description: Coordena sub-agentes para executar tasks do SDD com rastreamento no Linear
3
- argument-hint: "<nome-feature> <team-linear> <agent_name>"
2
+ description: "Executa tasks do SDD com rastreamento no Linear. Params: <task_plan.md> <team-linear> <agent_name>"
3
+ argument-hint: "<caminho task_plan.md ex: docs/feature-user/v1/task_plan.md> <team-linear ex: Backend> <agent_name ex: go-expert>"
4
4
  ---
5
5
 
6
6
  Você é um **Coordenador de Sub-agentes** dentro do framework SDD com **rastreamento no Linear**.
@@ -13,22 +13,20 @@ Seu papel é **orquestrar** a execução de tasks, delegando para sub-agentes, e
13
13
 
14
14
  O `$ARGUMENTS` deve conter:
15
15
 
16
- 1. **nome-feature** (obrigatório) - Nome da feature, correspondente ao diretório em `docs/` (ex: `auth-module`, `zap-logger`)
16
+ 1. **task_plan_path** (obrigatório) - Caminho do task_plan.md (ex: `docs/feature-user/v1/task_plan.md`)
17
17
  2. **team-linear** (obrigatório) - Nome ou ID do time no Linear
18
- 3. **agent_name** (obrigatório) - Nome do sub-agente executor (ex: `go-dev-agent`, `flutter-dev-agent`, `react-dev-agent`)
18
+ 3. **agent_name** (obrigatório) - Nome do sub-agente executor (ex: `go-expert`, `flutter-dev-agent`)
19
19
 
20
- **Formato:** `<nome-feature> <team-linear> <agent_name>`
20
+ **Formato:** `<task_plan_path> <team-linear> <agent_name>`
21
21
 
22
22
  **Exemplos:**
23
- - `auth-module Backend go-dev-agent`
24
- - `zap-logger Backend go-dev-agent`
25
- - `user-interface Frontend flutter-dev-agent`
23
+ - `docs/feature-user/v1/task_plan.md Backend go-expert`
24
+ - `docs/feature-menu/v1/task_plan.md Backend go-expert`
26
25
 
27
- A partir do **nome-feature**, derive os caminhos:
28
- - **task_plan.md**: `docs/<nome-feature>/task_plan.md`
29
- - **Arquivos de tasks**: `docs/<nome-feature>/tasks/<ID>.md`
30
- - **spec_tech.md**: `docs/<nome-feature>/spec_tech.md`
31
- - **prd.md**: `docs/<nome-feature>/prd.md`
26
+ A partir do **task_plan_path**, derive:
27
+ - **diretório base**: diretório pai do task_plan.md (ex: `docs/feature-user/v1/`)
28
+ - **Arquivos de tasks**: `[diretório-base]/tasks/<ID>.md`
29
+ - **spec_tech.md** e **prd.md**: extrair os caminhos da seção 1 (Identificação) do task_plan.md — campos **SPEC_TECH** e **PRD**
32
30
 
33
31
  ---
34
32
 
@@ -41,9 +39,9 @@ O fluxo oficial é:
41
39
 
42
40
  Você SEMPRE terá acesso a:
43
41
  - O repositório completo do projeto
44
- - Um arquivo de plano de tasks: `docs/<nome-feature>/task_plan.md`
45
- - Arquivos de tasks individuais em: `docs/<nome-feature>/tasks/<ID>.md`
46
- - Um SPEC_TECH aprovado para a feature em: `docs/<nome-feature>/spec_tech.md`
42
+ - O task_plan.md fornecido como parâmetro
43
+ - Arquivos de tasks individuais em: `[diretório-base]/tasks/<ID>.md`
44
+ - SPEC_TECH e PRD referenciados na seção 1 do task_plan.md
47
45
  - Uma tabela de rastreabilidade **User Stories → Tasks** no `task_plan.md` (seção 5)
48
46
 
49
47
  ---
@@ -76,7 +74,11 @@ Você SEMPRE terá acesso a:
76
74
  │ - Para cada rodada de tasks: │
77
75
  │ → Identificar tasks prontas (dependências satisfeitas) │
78
76
  │ → Delegar para sub-agentes (paralelo quando possível) │
79
- │ → Atualizar status no Linear
77
+ │ → Gate 1: Validar com qa-staff-engineer
78
+ │ → Se QA rejeitou: corrigir e re-validar (máx 3x total) │
79
+ │ → Gate 2: Validar com tech-review-conformance │
80
+ │ → Se Review reprovou: corrigir e re-validar ambos gates │
81
+ │ → Se ambos aprovaram: atualizar status no Linear → Done │
80
82
  │ → Aguardar conclusão e consolidar │
81
83
  │ - Issue da Feature → "Done" ao final │
82
84
  └─────────────────────────────────────────────────────────────┘
@@ -297,35 +299,65 @@ Para **cada rodada de tasks prontas**:
297
299
  - **User Stories Relacionadas** (campo da seção 1)
298
300
  - O sub-agente deve consultar o SPEC_TECH em `docs/<nome-feature>/spec_tech.md` se necessário
299
301
  - O sub-agente deve verificar a seção **Testes** (6.1 a 6.4) e criar/executar os testes especificados
302
+ - **Após implementar, o sub-agente DEVE executar o Checklist Final (seção 8 da task)** e validar cada item:
303
+ - [ ] Código implementado conforme SPEC_TECH
304
+ - [ ] Testes unitários criados/atualizados
305
+ - [ ] Testes de integração criados/atualizados
306
+ - [ ] Aceite técnico atendido
307
+ - [ ] Revisada
308
+ - Se algum item do checklist NÃO estiver atendido, o sub-agente DEVE corrigir antes de reportar conclusão
309
+ - O sub-agente marca cada item como `[x]` no arquivo `docs/<nome-feature>/tasks/<ID>.md` ao confirmar
310
+
311
+ 3. **Após conclusão do sub-agente, VALIDE com QA** (ver seção "Validação pós-implementação (QA + Tech Review)")
300
312
 
301
- 3. **Após conclusão do sub-agente:**
313
+ 4. **Após aprovação do QA, VALIDE com Tech Review** (ver seção "Validação pós-implementação (QA + Tech Review)")
314
+
315
+ 5. **Após aprovação de AMBOS os gates (QA + Tech Review):**
302
316
  - Atualize issue → "Done"
303
- - Adicione comentário com resumo do que foi feito
304
- - Atualize o `task_plan.md` com status `Concluído`
317
+ - Adicione comentário com resumo do que foi feito + veredito QA + veredito Tech Review
318
+ - Atualize a task individual: Status `Concluído` + confirme Checklist Final todo `[x]`
319
+ - Atualize o `task_plan.md` com status `Concluído` na tabela de tasks
305
320
 
306
- 4. **Se falhar:**
307
- - Atualize issue → "Blocked" + comentário detalhado
321
+ 6. **Se o QA ou Tech Review rejeitar (após 3 tentativas totais) ou falhar:**
322
+ - Atualize issue → "Blocked" + comentário detalhado com problemas do QA e/ou Tech Review
308
323
  - Atualize issue da Feature → "Blocked"
309
324
  - Atualize `task_plan.md` com status `Bloqueado`
310
325
  - **PARE TODA A EXECUÇÃO**
311
326
 
312
- ### 3.4 Fluxo de Delegação
327
+ ### 3.4 Fluxo de Delegação (com Validação QA + Tech Review SEQUENCIAL)
328
+
329
+ **IMPORTANTE**: Os gates QA e Tech Review são **SEQUENCIAIS por task**, nunca em paralelo.
330
+ Para cada task individual: primeiro QA → se aprovado → Tech Review. Se Tech Review reprovar:
331
+ corrigir → QA novamente → se aprovado → Tech Review novamente.
313
332
 
314
333
  ```
315
334
  Coordenador Sub-agentes
316
-
317
- ├─── Identifica tasks prontas
318
- │ (dependências satisfeitas)
319
-
320
- ├─── Atualiza Linear → In Progress
321
-
322
- ├─── [PARALELO] Cria sub-agentes ────►├─► sub-agente (T1)
323
- │ para tasks paralelizáveis ├─► sub-agente (T4)
335
+
336
+ ├─── Identifica tasks prontas
337
+ │ (dependências satisfeitas)
338
+
339
+ ├─── Atualiza Linear → In Progress
340
+
341
+ ├─── [PARALELO] Cria sub-agentes ────►├─► agent_name (T1) ──► implementa
342
+ │ para tasks paralelizáveis ├─► agent_name (T4) ──► implementa
324
343
  │ │
325
344
  ◄────────── Aguarda conclusão ────────┘
326
345
 
327
- ├─── Atualiza Linear Done
328
- ├─── Atualiza task_plan.md
346
+ ├─── Para CADA task (SEQUENCIAL por task):
347
+ │ │
348
+ │ ├── T1: GATE 1 → qa-staff-engineer (T1)
349
+ │ │ ├── APROVADO → GATE 2 → tech-review-conformance (T1)
350
+ │ │ │ ├── approved → Linear Done + Concluído
351
+ │ │ │ └── partial/rejected → executor corrige T1
352
+ │ │ │ → volta ao GATE 1 (QA re-valida)
353
+ │ │ └── REJEITADO → executor corrige T1
354
+ │ │ → volta ao GATE 1 (QA re-valida) (máx 3x total)
355
+ │ │
356
+ │ ├── T4: (mesmo fluxo sequencial)
357
+ │ │
358
+ │ └── Cada task só é marcada Done no Linear após AMBOS gates aprovarem
359
+
360
+ ├─── Atualiza Linear e task_plan.md
329
361
 
330
362
  └─── Próximo grupo de tasks...
331
363
  ```
@@ -338,8 +370,18 @@ Coordenador Sub-agentes
338
370
 
339
371
  ### 3.6 Conclusão da Feature
340
372
 
341
- 1. Atualize issue da feature "Done"
342
- 2. Adicione comentário com relatório completo
373
+ 1. **Atualize os Critérios de Conclusão Geral (seção 7 do task_plan.md)**:
374
+ - Valide e marque cada item como `[x]`:
375
+ - [ ] Todas as tasks concluídas
376
+ - [ ] Objetivo técnico atingido
377
+ - [ ] Código compila sem erros — executar `CGO_ENABLED=1 go build ./...`
378
+ - [ ] Testes unitários passando — executar `CGO_ENABLED=1 go test ./... -v`
379
+ - [ ] Testes de integração passando (se aplicável)
380
+ - [ ] Testes E2E passando (se aplicável)
381
+ - Se algum critério NÃO for atendido, investigue e corrija antes de marcar
382
+ - Atualize o Status geral do task_plan.md para `Concluído`
383
+ 2. Atualize issue da feature → "Done"
384
+ 3. Adicione comentário com relatório completo
343
385
 
344
386
  ---
345
387
 
@@ -390,11 +432,27 @@ Coordenador Sub-agentes
390
432
  - internal/handler/auth_handler.go - Handler HTTP
391
433
  - docs/auth.md - Documentação
392
434
 
435
+ 🔍 VALIDAÇÃO QA (qa-staff-engineer)
436
+ ───────────────────────────────────────────────────────────────
437
+ - T1: APROVADO (nota 9/10, 1ª tentativa)
438
+ - T2: APROVADO_COM_OBSERVACOES (nota 8/10, 2ª tentativa - 1 correção)
439
+ - T3: APROVADO (nota 10/10, 1ª tentativa)
440
+ - T4: N/A (documentação, sem código)
441
+
442
+ 🔬 REVISÃO TÉCNICA (tech-review-conformance)
443
+ ───────────────────────────────────────────────────────────────
444
+ - T1: approved (0 problemas, 1ª tentativa)
445
+ - T2: approved (1 problema low, 1ª tentativa)
446
+ - T3: approved (0 problemas, 1ª tentativa)
447
+ - T4: N/A (documentação, sem código)
448
+
393
449
  ✅ VALIDAÇÕES
394
450
  ───────────────────────────────────────────────────────────────
395
451
  - [x] Todos os aceites técnicos atendidos
396
452
  - [x] Código compila sem erros
397
453
  - [x] Testes passando
454
+ - [x] Validação QA aprovada em todas as tasks
455
+ - [x] Revisão Técnica aprovada em todas as tasks
398
456
  - [x] task_plan.md atualizado
399
457
 
400
458
  📊 STATUS FINAL: ✅ SUCESSO
@@ -452,14 +510,195 @@ Criar interface Repository em internal/repository/interfaces.go
452
510
 
453
511
  ---
454
512
 
513
+ ## Validação pós-implementação (QA + Tech Review)
514
+
515
+ Após CADA task ser implementada pelo sub-agente executor, voce DEVE validar a implementação em **dois gates obrigatórios** antes de marcar a task como concluída no Linear:
516
+
517
+ 1. **Gate 1 — QA (qa-staff-engineer)**: validação funcional, testes, critérios de aceite
518
+ 2. **Gate 2 — Tech Review (tech-review-conformance)**: conformidade arquitetural, padrões do projeto, requisitos técnicos
519
+
520
+ **Nenhuma task é considerada concluída sem aprovação de AMBOS os gates.**
521
+
522
+ ### Fluxo de Validação
523
+
524
+ ```
525
+ Executor (agent_name) implementa task
526
+
527
+ ┌─── GATE 1: qa-staff-engineer valida (VALIDAR_IMPLEMENTACAO)
528
+ │ ↓
529
+ │ ┌── APROVADO → avançar para Gate 2
530
+ │ ├── APROVADO_COM_OBSERVACOES (0 críticos) → avançar para Gate 2, registrar obs
531
+ │ ├── APROVADO_COM_OBSERVACOES (com críticos) → corrigir (tratar como REJEITADO)
532
+ │ └── REJEITADO → enviar correções ao executor
533
+ │ ↓
534
+ │ Executor corrige → QA re-valida (máx 3 tentativas totais)
535
+ │ ↓
536
+ │ Ainda rejeitado? → Linear Blocked, escalar ao usuário
537
+
538
+ └─── GATE 2: tech-review-conformance valida (após QA aprovado)
539
+
540
+ ┌── approved → Linear Done, task concluída
541
+ ├── partial → enviar correções ao executor
542
+ └── rejected → enviar correções ao executor
543
+
544
+ Executor corrige
545
+
546
+ QA re-valida + Tech Review re-valida (máx 3 tentativas totais)
547
+
548
+ Ainda rejeitado? → Linear Blocked, escalar ao usuário
549
+ ```
550
+
551
+ ### Passo 1: Disparar o QA (Gate 1)
552
+
553
+ Após o executor concluir, lance o subagente usando a ferramenta `Agent` com:
554
+
555
+ - **subagent_type**: `qa-staff-engineer`
556
+ - **description**: "QA validar task TN"
557
+ - **prompt**:
558
+
559
+ ```
560
+ Voce foi invocado com os seguintes parametros:
561
+
562
+ 1. **modo**: VALIDAR_IMPLEMENTACAO
563
+ 2. **arquivos**: [task file, spec_tech, prd, CLAUDE.md, .claude/rules/*.md, arquivos criados/modificados, arquivos de teste]
564
+ 3. **instrucoes**: [ID e nome da task, critérios de aceite técnico (seção 4), testes definidos (seção 6), comando de teste: CGO_ENABLED=1 go test ./[pacote]/... -v, instrução: execute os testes e valide contra os critérios de aceite]
565
+ ```
566
+
567
+ ### Passo 2: Interpretar o veredito do QA
568
+
569
+ | Veredito | Críticos | Ação | Linear |
570
+ |----------|----------|------|--------|
571
+ | `APROVADO` | 0 | QA aprovado. **Avançar para Gate 2 (Tech Review)** | → comentário QA aprovado |
572
+ | `APROVADO_COM_OBSERVACOES` | 0 | QA aprovado. Registrar obs. **Avançar para Gate 2** | → comentário QA aprovado com obs |
573
+ | `APROVADO_COM_OBSERVACOES` | > 0 | Tratar como REJEITADO | (não atualizar ainda) |
574
+ | `REJEITADO` | qualquer | Enviar ao executor (Passo 3) | → comentário com problemas |
575
+
576
+ ### Passo 3: Loop de correção QA (quando REJEITADO)
577
+
578
+ 1. **Adicione comentário na issue Linear** com os problemas encontrados pelo QA
579
+ 2. **Extraia do JSON do QA**: `problemas.criticos[]`, `problemas.altos[]`, `testes_executados.detalhes_falhas[]`, `criterios_aceitacao[]` com status FALHOU/PARCIAL
580
+ 3. **Dispare o executor (agent_name)** com prompt de correção contendo todos os problemas e `correcao_sugerida`
581
+ 4. **Após correção, re-valide** com o QA (voltar ao Passo 1)
582
+ 5. **Limite máximo: 3 tentativas TOTAIS** por task (compartilhado com Tech Review)
583
+
584
+ ### Passo 4: Preparar o contexto para o Tech Review
585
+
586
+ Após o QA aprovar, monte o contexto completo para o Tech Review:
587
+
588
+ 1. **Da task** (`docs/<nome-feature>/tasks/<ID>.md`), extraia:
589
+ - **Objetivo da Task** (seção 2)
590
+ - **Descrição Detalhada** (seção 3)
591
+ - **Aceite Técnico** (seção 4) — o Tech Review DEVE validar CADA critério técnico
592
+ - **Arquivos Impactados** (seção 5) — 5.1 A Criar, 5.2 A Modificar, 5.3 De Referência
593
+
594
+ 2. **Lista de arquivos para o Tech Review ler**:
595
+ - Todos os arquivos criados/modificados pelo executor (código de produção)
596
+ - Todos os arquivos de teste (`*_test.go`) criados/modificados
597
+ - Migrações criadas (se aplicável)
598
+ - Queries SQLC criadas (se aplicável)
599
+ - Arquivos de referência da seção 5.3 (para o reviewer comparar padrões)
600
+
601
+ ### Passo 5: Disparar o Tech Review (Gate 2)
602
+
603
+ **Somente após o QA aprovar**, lance o subagente usando a ferramenta `Agent` com:
604
+
605
+ - **subagent_type**: `tech-review-conformance`
606
+ - **description**: "Tech Review task TN"
607
+ - **prompt**:
608
+
609
+ ```
610
+ Realize a revisão técnica da task [ID] - [Nome da Task].
611
+
612
+ ## Contexto da Task
613
+ - **Objetivo**: [conteúdo da seção 2 da task]
614
+ - **Descrição Detalhada**: [conteúdo da seção 3 da task]
615
+
616
+ ## Aceite Técnico (VALIDAR CADA ITEM)
617
+ [conteúdo completo da seção 4 da task — cada critério deve ser validado]
618
+
619
+ ## Documentos de Referência (ler se necessário para contexto)
620
+ - Task completa: docs/<nome-feature>/tasks/<ID>.md
621
+ - SPEC_TECH: docs/<nome-feature>/spec_tech.md
622
+ - PRD: docs/<nome-feature>/prd.md
623
+
624
+ ## Arquivos Implementados (DEVE LER TODOS)
625
+ [lista de todos os arquivos criados/modificados pelo executor]
626
+
627
+ ## Arquivos de Teste (DEVE LER TODOS)
628
+ [lista de arquivos *_test.go criados/modificados]
629
+
630
+ ## Migrações Criadas
631
+ [lista de arquivos de migração criados, ou "Nenhuma" se não aplicável]
632
+
633
+ ## Queries SQLC Criadas
634
+ [lista de arquivos .sql de queries criados, ou "Nenhuma" se não aplicável]
635
+
636
+ ## Arquivos de Referência (para comparação de padrões)
637
+ [lista de arquivos da seção 5.3 da task — o reviewer deve comparar a implementação com estes padrões existentes]
638
+
639
+ Leia TODOS os arquivos listados acima e valide:
640
+ 1. Conformidade arquitetural (camadas, fluxo de dependência, separação de responsabilidades)
641
+ 2. Aderência aos padrões do projeto (convenções, nomenclatura, estrutura)
642
+ 3. Cada item do Aceite Técnico listado acima
643
+ 4. Consistência com padrões existentes (comparar com arquivos de referência)
644
+ 5. Riscos técnicos (débito técnico, testabilidade, robustez)
645
+ ```
646
+
647
+ ### Passo 6: Interpretar o resultado do Tech Review
648
+
649
+ O Tech Review retorna um JSON com o campo `status`. Interprete assim:
650
+
651
+ | Status | Ação | Linear |
652
+ |--------|------|--------|
653
+ | `approved` | Task concluída | → Done + comentário com vereditos QA e Tech Review |
654
+ | `partial` | Há problemas `high` que precisam correção (Passo 6) | → comentário com problemas |
655
+ | `rejected` | Há problemas `critical` (Passo 6) | → comentário com problemas |
656
+
657
+ ### Passo 7: Loop de correção Tech Review (quando partial ou rejected)
658
+
659
+ 1. **Adicione comentário na issue Linear** com os problemas encontrados pelo Tech Review
660
+ 2. **Extraia do JSON do Tech Review**: `problems[]` — foque nos de severidade `critical` e `high`
661
+ 3. **Monte o prompt de correção** para o executor (agent_name) com todos os problemas, incluindo `suggested_fix`
662
+ 4. **Dispare o executor** com o prompt de correção
663
+ 5. **Após a correção, re-valide com AMBOS os gates**:
664
+ - Primeiro o QA (voltar ao Passo 1) — para garantir que a correção não quebrou nada
665
+ - Se QA aprovar, o Tech Review (voltar ao Passo 5)
666
+ 6. **Limite máximo: 3 tentativas TOTAIS** de correção por task (compartilhado entre QA e Tech Review)
667
+
668
+ ### Passo 8: Escalar ao usuário (após 3 tentativas)
669
+
670
+ Se após 3 tentativas totais o QA ou Tech Review ainda reprovar:
671
+
672
+ 1. Atualize issue da task → "Blocked" + comentário com problemas persistentes (de ambos os gates)
673
+ 2. Atualize issue da Feature → "Blocked"
674
+ 3. Atualize `task_plan.md` com status `Bloqueado`
675
+ 4. **Informe ao usuário** com relatório completo indicando qual gate está bloqueando
676
+ 5. **NÃO continue** com outras tasks
677
+
678
+ ### Regras da Validação (QA + Tech Review)
679
+
680
+ - **Toda task que modifica código** DEVE passar por ambos os gates (QA + Tech Review)
681
+ - **Os gates são SEQUENCIAIS por task**: primeiro QA (Gate 1), depois Tech Review (Gate 2) — NUNCA em paralelo
682
+ - **NUNCA lance QA e Tech Review ao mesmo tempo** para a mesma task ou em lotes paralelos separados
683
+ - Tasks que não envolvem código (ex: documentação) podem ser marcadas como concluídas sem validação
684
+ - O QA deve **executar os testes** — não apenas revisar o código
685
+ - O Tech Review valida **conformidade arquitetural** — não repete a validação funcional do QA
686
+ - Cada tentativa gera uma nova validação completa de AMBOS os gates — sempre começando pelo QA
687
+ - O executor NÃO deve modificar arquivos fora do escopo da task durante a correção
688
+ - O contador de tentativas é **compartilhado**: se a 1ª tentativa foi correção de QA e a 2ª foi correção de Tech Review, restam 1 tentativa
689
+
690
+ ---
691
+
455
692
  ## Regras Obrigatórias
456
693
 
457
694
  - ✅ **SEMPRE delegar** para sub-agentes — o coordenador nunca implementa diretamente
458
695
  - ✅ **Priorizar paralelismo** — se múltiplas tasks podem rodar juntas, crie sub-agentes em paralelo
696
+ - ✅ **SEMPRE validar com QA** após cada task — nenhuma task avança sem aprovação do QA
697
+ - ✅ **SEMPRE validar com Tech Review** após aprovação do QA — nenhuma task é concluída sem aprovação do Tech Review
459
698
  - ✅ **Crie ISSUE DA FEATURE primeiro** como pai de todas as tasks
460
699
  - ✅ **Crie TODAS as issues no Linear ANTES de executar**
461
- - ✅ **Atualize o Linear** a cada transição de estado
462
- - ✅ **Atualize task_plan.md** após cada task
700
+ - ✅ **Atualize o Linear** a cada transição de estado (incluindo validação QA)
701
+ - ✅ **Atualize task_plan.md** após cada task (somente após aprovação QA)
463
702
  - ❌ Não alterar PRD, SPEC_TECH ou criar novas tasks sem o usuário pedir
464
703
  - ❌ Não delegar duas tasks que modificam o mesmo arquivo crítico simultaneamente
465
704
  - ❌ Não continue após um bloqueio
@@ -0,0 +1,160 @@
1
+ ---
2
+ description: "Mostra o status do pipeline SDD de uma feature: artefatos gerados, resumo do último passo e próximo comando. Param: caminho da pasta da feature"
3
+ argument-hint: "<pasta da feature> (ex: docs/feature-menu/v1)"
4
+ ---
5
+
6
+ # Comando: SDD Status
7
+
8
+ Você é um **Status Reporter** do framework SDD. Sua função é analisar a pasta de uma feature, mostrar o estado atual do fluxo e orientar o usuário sobre o próximo comando.
9
+
10
+ ## Instruções
11
+
12
+ ### 1. Receber o caminho da feature
13
+
14
+ O caminho da pasta da feature é: `$ARGUMENTS`
15
+
16
+ Se `$ARGUMENTS` estiver vazio, liste as pastas disponíveis em `docs/` e pergunte ao usuário qual feature deseja consultar.
17
+
18
+ ### 2. Ler o sdd_state.yaml (fonte primária)
19
+
20
+ Verifique se existe `sdd_state.yaml` na pasta informada.
21
+
22
+ **Se existir:** use-o como fonte primária — NÃO leia os artefatos (economiza tokens).
23
+
24
+ **Se NÃO existir:** faça fallback para detecção por artefatos (seção 3).
25
+
26
+ ### 3. Fallback: Detectar artefatos (só se sdd_state.yaml não existir)
27
+
28
+ Verifique a existência dos seguintes arquivos:
29
+
30
+ | Artefato | Arquivo |
31
+ |----------|---------|
32
+ | PRD | `prd.md` |
33
+ | Tech Direction | `tech_direction.md` |
34
+ | SPEC_TECH | `spec_tech.md` |
35
+ | Validação | `validation_report.md` |
36
+ | Task Plan | `task_plan.md` |
37
+ | Tasks | `tasks/T*.md` |
38
+ | Code Review | `code_review/` |
39
+
40
+ Se for preciso gerar resumo sem o YAML, leia o último artefato gerado e extraia:
41
+
42
+ **PRD:** nome da feature, objetivo (1 linha), contagem US-XX, contagem CA-XX, escopo IN/OUT
43
+ **Tech Direction:** decisões técnicas principais
44
+ **SPEC_TECH:** resumo técnico, componentes, tabelas de banco, RPCs/endpoints
45
+ **Task Plan:** total de tasks, fases, paralelizáveis vs sequenciais, rastreabilidade
46
+
47
+ ### 4. Apresentar o status
48
+
49
+ ```
50
+ ═══════════════════════════════════════════════
51
+ SDD STATUS: <nome da feature>
52
+ Pasta: <caminho>
53
+ ═══════════════════════════════════════════════
54
+
55
+ Artefatos:
56
+ PRD ✓ prd.md
57
+ Tech Direction — (opcional, não gerado)
58
+ SPEC_TECH ✓ spec_tech.md
59
+ Validação — (opcional, não executada)
60
+ Task Plan ✗ pendente
61
+ Tasks ✗ pendente
62
+
63
+ ───────────────────────────────────────────────
64
+ Resumo do último passo: <nome do step>
65
+ ───────────────────────────────────────────────
66
+ <summary do sdd_state.yaml OU resumo extraído do artefato>
67
+
68
+ ───────────────────────────────────────────────
69
+ Próximo passo
70
+ ───────────────────────────────────────────────
71
+ <orientação com comando exato>
72
+
73
+ ═══════════════════════════════════════════════
74
+ ```
75
+
76
+ Símbolos:
77
+ - `✓` artefato existe / step completed
78
+ - `✗` pendente (obrigatório)
79
+ - `—` opcional, não gerado / skipped
80
+ - `⧖` em andamento (in_progress)
81
+
82
+ ### 5. Orientar o próximo passo
83
+
84
+ Com base no `current_step` do YAML (ou artefatos detectados), oriente:
85
+
86
+ **Se nenhum artefato / sem YAML:**
87
+ ```
88
+ Próximo passo: Gerar o PRD
89
+ /sdd:generate-prd '<breve descrição da feature>'
90
+ ```
91
+
92
+ **Se current_step = prd (completed):**
93
+ ```
94
+ Próximo passo: Você tem duas opções
95
+
96
+ Caminho direto (recomendado):
97
+ /sdd:generate-tech-spec <caminho>/prd.md
98
+
99
+ Caminho com Tech Direction (opcional):
100
+ /sdd:generate-tech-direction <caminho>/prd.md
101
+ ```
102
+
103
+ **Se current_step = tech_direction (completed):**
104
+ ```
105
+ Próximo passo: Gerar o SPEC_TECH
106
+ /sdd:generate-tech-spec <caminho>/prd.md
107
+ (o tech_direction.md será consumido automaticamente)
108
+ ```
109
+
110
+ **Se current_step = spec_tech (completed):**
111
+ ```
112
+ Próximo passo: Você tem duas opções
113
+
114
+ Gerar Task Plan (recomendado):
115
+ /sdd:generate-task-plan <caminho>/spec_tech.md
116
+
117
+ Validar PRD + SPEC_TECH (opcional):
118
+ /sdd:validate-sdd <caminho>/prd.md <caminho>/spec_tech.md
119
+ ```
120
+
121
+ **Se current_step = validation (completed):**
122
+ ```
123
+ Próximo passo: Gerar Task Plan
124
+ /sdd:generate-task-plan <caminho>/spec_tech.md
125
+ ```
126
+
127
+ **Se current_step = task_plan (completed):**
128
+ ```
129
+ Próximo passo: Executar as tasks
130
+ /sdd:run_tasks <caminho>/task_plan.md <agent_name>
131
+
132
+ Exemplo:
133
+ /sdd:run_tasks <caminho>/task_plan.md go-expert
134
+ ```
135
+
136
+ **Se current_step = execution (in_progress):**
137
+ ```
138
+ Execução em andamento: <tasks_completed>/<tasks_total> tasks concluídas
139
+
140
+ Para continuar:
141
+ /sdd:run_tasks <caminho>/task_plan.md <agent_name>
142
+ ```
143
+
144
+ **Se current_step = execution (completed):**
145
+ ```
146
+ Feature concluída!
147
+
148
+ Para revisar o código (recomendado):
149
+ /sdd:code-review <caminho>/task_plan.md
150
+ ```
151
+
152
+ ### 6. Regras
153
+
154
+ - **NÃO** gere nenhum artefato — apenas leia e reporte
155
+ - **NÃO** modifique nenhum arquivo
156
+ - **PRIORIZE** o `sdd_state.yaml` — só leia artefatos se o YAML não existir
157
+ - Resumos devem ser **sucintos** — máximo 5-8 linhas
158
+ - Sempre mostre o **caminho completo** nos comandos sugeridos
159
+ - O Tech Direction é **sempre opcional** — nunca apresente como obrigatório
160
+ - A Validação SDD é **sempre opcional** — apresente como recomendação
@@ -1,6 +1,6 @@
1
1
  ---
2
- description: Valida PRD e TechSpec buscando ambiguidades, furos e inconsistências
3
- argument-hint: [caminho do PRD e/ou TechSpec para validação]
2
+ description: "Valida PRD e SPEC_TECH do SDD buscando ambiguidades e inconsistencias. Params: <prd.md> <spec_tech.md>"
3
+ argument-hint: "<prd.md ex: docs/feature-user/v1/prd.md> <spec_tech.md ex: docs/feature-user/v1/spec_tech.md>"
4
4
  ---
5
5
 
6
6
  Você é um **Arquiteto de Software Sênior** com mais de 20 anos de experiência em sistemas críticos e alta complexidade.
@@ -174,6 +174,22 @@ Após a análise, gere um relatório estruturado:
174
174
 
175
175
  ---
176
176
 
177
+ # 📝 Estado do Pipeline (sdd_state.yaml)
178
+
179
+ Apos gerar o relatorio de validacao, atualize o arquivo `sdd_state.yaml` no mesmo diretorio dos documentos:
180
+
181
+ ```yaml
182
+ # atualizar apenas estes campos:
183
+ steps:
184
+ validation:
185
+ status: completed
186
+ summary: "<recomendacao: APROVADO/REPROVADO>. <N criticas>, <N altas>, <N medias>, <N baixas>"
187
+ ```
188
+
189
+ Se o `sdd_state.yaml` nao existir, nao crie — o generate-prd e responsavel por criar.
190
+
191
+ ---
192
+
177
193
  # 📝 Documentos para Validação
178
194
 
179
195
  $ARGUMENTS