adi_dev_workflow 1.0.0 → 1.1.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 (130) hide show
  1. package/bin/index.js +0 -0
  2. package/frameworks/commands/generate-project-profile.md +68 -0
  3. package/frameworks/commands/generate-prompt.md +4 -2
  4. package/frameworks/commands/ministack/README.md +61 -46
  5. package/frameworks/commands/ministack/code-review.md +36 -49
  6. package/frameworks/commands/ministack/generate-intent.md +25 -2
  7. package/frameworks/commands/ministack/generate-scope.md +30 -6
  8. package/frameworks/commands/ministack/generate-tasks.md +191 -6
  9. package/frameworks/commands/ministack/generate-tech-direction.md +43 -0
  10. package/frameworks/commands/ministack/run-ministack-tasks.md +352 -33
  11. package/frameworks/commands/ministack/run-ministack-withlinear.md +23 -22
  12. package/frameworks/commands/ministack/status.md +153 -0
  13. package/frameworks/commands/sdd/code-review.md +10 -10
  14. package/frameworks/commands/sdd/generate-prd.md +32 -2
  15. package/frameworks/commands/sdd/generate-task-plan.md +199 -5
  16. package/frameworks/commands/sdd/generate-tech-direction.md +43 -0
  17. package/frameworks/commands/sdd/generate-tech-spec.md +218 -0
  18. package/frameworks/commands/sdd/generate-tests.md +2 -2
  19. package/frameworks/commands/sdd/run_tasks.md +391 -43
  20. package/frameworks/commands/sdd/run_tasks_withlinear.md +276 -37
  21. package/frameworks/commands/sdd/status.md +160 -0
  22. package/frameworks/commands/sdd/validate-sdd.md +18 -2
  23. package/frameworks/commands/sync-tasks-to-linear.md +588 -588
  24. package/frameworks/commands/taskcard/generate-taskcard.md +42 -25
  25. package/frameworks/commands/taskcard/run-taskcard.md +203 -34
  26. package/frameworks/skills/ministack-intent-expert/SKILL.md +3 -2
  27. package/frameworks/skills/ministack-intent-expert/templates/intent-template.md +1 -1
  28. package/frameworks/skills/ministack-scope-expert/SKILL.md +6 -10
  29. package/frameworks/skills/ministack-scope-expert/templates/scope-template.md +1 -1
  30. package/frameworks/skills/ministack-tasks-expert/SKILL.md +192 -0
  31. package/frameworks/skills/ministack-tasks-expert/templates/task_plan_template.md +78 -0
  32. package/frameworks/skills/ministack-tasks-expert/templates/task_template.md +103 -0
  33. package/frameworks/skills/ministack-tech-direction-expert/SKILL.md +218 -0
  34. package/frameworks/skills/ministack-tech-direction-expert/evals/evals.json +1 -0
  35. package/frameworks/skills/ministack-tech-direction-expert/templates/tech_direction-template.md +17 -0
  36. package/frameworks/skills/sdd-prd-expert/SKILL.md +143 -95
  37. package/frameworks/skills/sdd-prd-expert/evals/evals.json +59 -0
  38. package/frameworks/skills/sdd-prd-expert/templates/prd_template.md +46 -46
  39. package/frameworks/skills/sdd-prd-expert/templates/tech_direction-template.md +23 -0
  40. package/frameworks/skills/sdd-task-plan-expert/SKILL.md +179 -201
  41. package/frameworks/skills/sdd-task-plan-expert/evals/evals.json +109 -0
  42. package/frameworks/skills/sdd-task-plan-expert/templates/task_plan_template.md +33 -33
  43. package/frameworks/skills/sdd-task-plan-expert/templates/task_template.md +58 -32
  44. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/benchmark.json +99 -0
  45. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/benchmark.md +64 -0
  46. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/eval_metadata.json +12 -0
  47. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/grading.json +32 -0
  48. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/outputs/response.md +134 -0
  49. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/outputs/transcript.md +68 -0
  50. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/timing.json +5 -0
  51. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/grading.json +32 -0
  52. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/outputs/response.md +525 -0
  53. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/outputs/transcript.md +30 -0
  54. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/timing.json +5 -0
  55. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/eval_metadata.json +12 -0
  56. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/grading.json +32 -0
  57. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/outputs/response.md +1126 -0
  58. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/outputs/transcript.md +131 -0
  59. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/timing.json +5 -0
  60. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/grading.json +32 -0
  61. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/outputs/response.md +452 -0
  62. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/outputs/transcript.md +78 -0
  63. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/timing.json +5 -0
  64. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/eval_metadata.json +12 -0
  65. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/grading.json +32 -0
  66. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/outputs/response.md +101 -0
  67. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/outputs/transcript.md +133 -0
  68. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/timing.json +5 -0
  69. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/grading.json +32 -0
  70. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/outputs/response.md +248 -0
  71. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/outputs/transcript.md +49 -0
  72. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/timing.json +5 -0
  73. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/review.html +1325 -0
  74. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/benchmark.json +94 -0
  75. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/benchmark.md +67 -0
  76. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/eval_metadata.json +12 -0
  77. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/grading.json +32 -0
  78. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/outputs/response.md +117 -0
  79. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/outputs/transcript.md +91 -0
  80. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/timing.json +1 -0
  81. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/grading.json +32 -0
  82. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/outputs/response.md +694 -0
  83. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/outputs/transcript.md +45 -0
  84. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/timing.json +1 -0
  85. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/eval_metadata.json +12 -0
  86. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/grading.json +32 -0
  87. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/outputs/response.md +1087 -0
  88. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/outputs/transcript.md +124 -0
  89. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/timing.json +1 -0
  90. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/grading.json +32 -0
  91. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/outputs/response.md +458 -0
  92. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/outputs/transcript.md +84 -0
  93. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/timing.json +1 -0
  94. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/eval_metadata.json +12 -0
  95. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/grading.json +32 -0
  96. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/outputs/response.md +70 -0
  97. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/outputs/transcript.md +148 -0
  98. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/timing.json +1 -0
  99. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/grading.json +32 -0
  100. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/outputs/response.md +249 -0
  101. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/outputs/transcript.md +80 -0
  102. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/timing.json +1 -0
  103. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/review.html +1325 -0
  104. package/frameworks/skills/sdd-tech-direction-expert/SKILL.md +223 -0
  105. package/frameworks/skills/sdd-tech-direction-expert/evals/evals.json +1 -0
  106. package/frameworks/skills/sdd-tech-direction-expert/templates/tech_direction-template.md +23 -0
  107. package/frameworks/skills/sdd-tech-spec-expert/SKILL.md +304 -0
  108. package/frameworks/skills/sdd-tech-spec-expert/evals/evals.json +199 -0
  109. package/frameworks/skills/sdd-tech-spec-expert/templates/spec_tech_template.md +290 -0
  110. package/frameworks/skills/sdd-tech-spec-expert/templates/tech_direction-template.md +23 -0
  111. package/frameworks/skills/taskcard-expert/SKILL.md +26 -78
  112. package/frameworks/skills/taskcard-expert/templates/template.md +0 -2
  113. package/package.json +1 -1
  114. package/frameworks/commands/ministack/generate-tests.md +0 -37
  115. package/frameworks/commands/sdd/generate-spec-tech.md +0 -37
  116. package/frameworks/commands/taskcard/generate-tests.md +0 -37
  117. package/frameworks/skills/ministack-expert/SKILL.md +0 -415
  118. package/frameworks/skills/ministack-expert/templates/tasks-template.md +0 -141
  119. package/frameworks/skills/ministack-qa-expert/SKILL.md +0 -273
  120. package/frameworks/skills/ministack-qa-expert/templates/task_tests_template.md +0 -24
  121. package/frameworks/skills/ministack-qa-expert/templates/test_strategy_template.md +0 -75
  122. package/frameworks/skills/sdd-qa-expert/SKILL.md +0 -284
  123. package/frameworks/skills/sdd-qa-expert/templates/task_tests_template.md +0 -24
  124. package/frameworks/skills/sdd-qa-expert/templates/test_strategy_template.md +0 -75
  125. package/frameworks/skills/sdd-spec-tech-expert/SKILL.md +0 -387
  126. package/frameworks/skills/sdd-spec-tech-expert/templates/spec_tech_template.md +0 -246
  127. package/frameworks/skills/sdd-spec-tech-expert/templates/tech_direction-template.md +0 -23
  128. package/frameworks/skills/taskcard-qa-expert/SKILL.md +0 -265
  129. package/frameworks/skills/taskcard-qa-expert/templates/task_tests_template.md +0 -78
  130. package/frameworks/templates/prompt_template.md +0 -164
@@ -1,30 +1,29 @@
1
1
  ---
2
- description: Executa tasks do miniStack com rastreamento no Linear
3
- argument-hint: [caminho da feature] [team no linear] [agente opcional]
2
+ description: "Executa tasks do miniStack com rastreamento no Linear. Params: <task_plan.md> <team-linear> <agent_name>"
3
+ argument-hint: "<caminho task_plan.md ex: docs/carrinho-compra/v1/task_plan.md> <team-linear ex: Backend> <agent_name ex: go-expert>"
4
4
  ---
5
5
 
6
- Use a skill **ministack-expert** para executar as TASKS (ETAPA 5) e use o comando `/sync-tasks-to-linear` para sincronizar com o Linear.
6
+ Voce e um **Coordenador de Sub-agentes** com rastreamento no Linear. Seu papel e **orquestrar**, nao executar diretamente.
7
7
 
8
- ## Contexto
9
-
10
- Voce deve seguir as regras e o processo da **ETAPA 5: EXECUCAO** definida na skill ministack-expert, com rastreamento automatico no Linear.
8
+ Siga **todas as regras, gates e fluxo de validacao** definidos no comando `/ministack:run-ministack-tasks`, com as seguintes adicoes para integracao com Linear.
11
9
 
12
10
  ## Argumentos
13
11
 
14
12
  O `$ARGUMENTS` deve conter:
15
13
 
16
- 1. **Caminho da feature** (obrigatorio) - Ex: `docs/nome-feature/v1`
14
+ 1. **task_plan_path** (obrigatorio) - Caminho do task_plan.md (ex: `docs/carrinho-compra/v1/task_plan.md`)
17
15
  2. **Team no Linear** (obrigatorio) - Nome ou ID do time no Linear
18
- 3. **Agente/Subagente** (opcional) - Nome do agente a ser usado para execucao
16
+ 3. **Agente executor** (obrigatorio) - Nome do sub-agente executor
19
17
 
20
18
  **Formatos aceitos:**
21
- - `docs/minha-feature/v1 Backend` - Pasta com team
22
- - `docs/minha-feature/v1 Backend go-backend-implementer` - Com agente especifico
19
+ - `docs/minha-feature/v1/task_plan.md Backend go-expert` - task_plan + team + agente
23
20
 
24
21
  ## Fluxo de Execucao
25
22
 
26
23
  ### Fase 1: Descoberta e Validacao
27
- - Ler intent.md, scope.md, tasks.md
24
+ - Ler o task_plan.md fornecido
25
+ - Extrair caminhos de Intent e Scope da secao 1 (Identificacao) do task_plan
26
+ - Ler cada tasks/T[N].md no diretorio-base
28
27
  - Extrair nome da feature e lista de tasks
29
28
  - Validar contexto e dependencias
30
29
 
@@ -45,19 +44,20 @@ O `$ARGUMENTS` deve conter:
45
44
  blockedBy: [dependencias]
46
45
  ```
47
46
 
48
- ### Fase 3: Execucao (Paralelo/Sequencial)
47
+ ### Fase 3: Execucao com Gates (mesmo fluxo do run-ministack-tasks)
49
48
 
50
- 1. Atualizar issue da feature para "In Progress"
51
- 2. Para cada task:
52
- - Atualizar issue para "In Progress"
53
- - Executar a task
54
- - Validar criterio de conclusao
55
- - Atualizar issue para "Done"
56
- 3. Atualizar issue da feature para "Done"
49
+ Para cada task:
50
+ 1. Atualizar issue para "In Progress"
51
+ 2. Delegar ao executor (agent_name)
52
+ 3. **Gate 1: qa-staff-engineer** (VALIDAR_IMPLEMENTACAO)
53
+ 4. **Gate 2: tech-review-conformance** (apos QA aprovado)
54
+ 5. Se aprovado: atualizar issue para "Done", marcar como `Concluido` em tasks/T[N].md e task_plan.md
55
+ 6. Se rejeitado: loop de correcao (max 3 tentativas)
56
+ 7. Se bloqueado: atualizar issue para "Blocked", marcar como `Bloqueado` em tasks/T[N].md e task_plan.md
57
57
 
58
58
  ### Fase 4: Relatorio Final
59
59
 
60
- Mostrar resumo de tasks executadas, issues no Linear, arquivos modificados e validacoes.
60
+ Mostrar resumo: tasks executadas, issues no Linear, arquivos modificados, vereditos QA e Tech Review.
61
61
 
62
62
  ## Tratamento de Bloqueios
63
63
 
@@ -66,6 +66,7 @@ Se encontrar bloqueio:
66
66
  2. Atualizar issue da task para "Blocked"
67
67
  3. Atualizar issue da feature para "Blocked"
68
68
  4. Gerar relatorio parcial
69
+ 5. Escalar ao usuario
69
70
 
70
71
  ## Comandos Linear MCP Utilizados
71
72
 
@@ -83,12 +84,12 @@ Se encontrar bloqueio:
83
84
  |-----------------|---------------|
84
85
  | Aguardando | Todo / Backlog |
85
86
  | Em execucao | In Progress |
86
- | Concluido | Done / Completed |
87
+ | Concluido (QA + Review aprovados) | Done / Completed |
87
88
  | Bloqueado | Blocked |
88
89
  | Cancelado | Canceled |
89
90
 
90
91
  ## Entrada
91
92
 
92
- **Formato:** `[caminho-feature] [team-linear] [agente-opcional]`
93
+ **Formato:** `[task_plan_path] [team-linear] [agente-executor]`
93
94
 
94
95
  $ARGUMENTS
@@ -0,0 +1,153 @@
1
+ ---
2
+ description: "Mostra o status do pipeline miniStack 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/carrinho-compra/v1)"
4
+ ---
5
+
6
+ # Comando: miniStack Status
7
+
8
+ Você é um **Status Reporter** do framework miniStack. 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 ministack_state.yaml (fonte primária)
19
+
20
+ Verifique se existe `ministack_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 ministack_state.yaml não existir)
27
+
28
+ Verifique a existência dos seguintes arquivos:
29
+
30
+ | Artefato | Arquivo |
31
+ |----------|---------|
32
+ | INTENT | `intent.md` |
33
+ | Tech Direction | `tech_direction.md` |
34
+ | SCOPE | `scope.md` |
35
+ | Task Plan | `task_plan.md` |
36
+ | Tasks | `tasks/T*.md` |
37
+ | Code Review | resultado do code-review |
38
+
39
+ Se for preciso gerar resumo sem o YAML, leia o último artefato gerado e extraia:
40
+
41
+ **INTENT:** nome da feature, objetivo (1 linha), escopo IN/OUT
42
+ **Tech Direction:** decisões técnicas principais
43
+ **SCOPE:** resumo técnico, componentes, tabelas de banco, endpoints
44
+ **Task Plan:** total de tasks, fases, paralelizáveis vs sequenciais
45
+
46
+ ### 4. Apresentar o status
47
+
48
+ ```
49
+ ═══════════════════════════════════════════════
50
+ miniStack STATUS: <nome da feature>
51
+ Pasta: <caminho>
52
+ ═══════════════════════════════════════════════
53
+
54
+ Artefatos:
55
+ INTENT ✓ intent.md
56
+ Tech Direction — (opcional, não gerado)
57
+ SCOPE ✓ scope.md
58
+ Task Plan ✗ pendente
59
+ Tasks ✗ pendente
60
+
61
+ ───────────────────────────────────────────────
62
+ Resumo do último passo: <nome do step>
63
+ ───────────────────────────────────────────────
64
+ <summary do ministack_state.yaml OU resumo extraído do artefato>
65
+
66
+ ───────────────────────────────────────────────
67
+ Próximo passo
68
+ ───────────────────────────────────────────────
69
+ <orientação com comando exato>
70
+
71
+ ═══════════════════════════════════════════════
72
+ ```
73
+
74
+ Símbolos:
75
+ - `✓` artefato existe / step completed
76
+ - `✗` pendente (obrigatório)
77
+ - `—` opcional, não gerado / skipped
78
+ - `⧖` em andamento (in_progress)
79
+
80
+ ### 5. Orientar o próximo passo
81
+
82
+ Com base no `current_step` do YAML (ou artefatos detectados), oriente:
83
+
84
+ **Se nenhum artefato / sem YAML:**
85
+ ```
86
+ Próximo passo: Gerar a INTENT
87
+ /ministack:generate-intent '<breve descrição da feature>'
88
+ ```
89
+
90
+ **Se current_step = intent (completed):**
91
+ ```
92
+ Próximo passo: Você tem duas opções
93
+
94
+ Caminho direto (recomendado):
95
+ /ministack:generate-scope <caminho>/intent.md
96
+
97
+ Caminho com Tech Direction (opcional):
98
+ /ministack:generate-tech-direction <caminho>/intent.md
99
+ ```
100
+
101
+ **Se current_step = tech_direction (completed):**
102
+ ```
103
+ Próximo passo: Gerar o SCOPE
104
+ /ministack:generate-scope <caminho>/intent.md
105
+ (o tech_direction.md será consumido automaticamente)
106
+ ```
107
+
108
+ **Se current_step = scope (completed):**
109
+ ```
110
+ Próximo passo: Gerar as Tasks
111
+ /ministack:generate-tasks <caminho>/intent.md <caminho>/scope.md
112
+ ```
113
+
114
+ **Se current_step = task_plan (completed):**
115
+ ```
116
+ Próximo passo: Executar as tasks
117
+ /ministack:run-ministack-tasks <caminho>/task_plan.md <agent_name>
118
+
119
+ Exemplo:
120
+ /ministack:run-ministack-tasks <caminho>/task_plan.md go-expert
121
+
122
+ Code Review antes de executar (opcional):
123
+ /ministack:code-review <caminho>/task_plan.md
124
+
125
+ Com rastreamento Linear (opcional):
126
+ /ministack:run-ministack-withlinear <caminho>/task_plan.md <team-linear> <agent_name>
127
+ ```
128
+
129
+ **Se current_step = execution (in_progress):**
130
+ ```
131
+ Execução em andamento: <tasks_completed>/<tasks_total> tasks concluídas
132
+
133
+ Para continuar:
134
+ /ministack:run-ministack-tasks <caminho>/task_plan.md <agent_name>
135
+ ```
136
+
137
+ **Se current_step = execution (completed):**
138
+ ```
139
+ Feature concluída!
140
+
141
+ Para revisar o código (recomendado):
142
+ /ministack:code-review <caminho>/task_plan.md
143
+ ```
144
+
145
+ ### 6. Regras
146
+
147
+ - **NÃO** gere nenhum artefato — apenas leia e reporte
148
+ - **NÃO** modifique nenhum arquivo
149
+ - **PRIORIZE** o `ministack_state.yaml` — só leia artefatos se o YAML não existir
150
+ - Resumos devem ser **sucintos** — máximo 5-8 linhas
151
+ - Sempre mostre o **caminho completo** nos comandos sugeridos
152
+ - O Tech Direction é **sempre opcional** — nunca apresente como obrigatório
153
+ - O Code Review é **sempre opcional** — apresente como recomendação
@@ -1,6 +1,6 @@
1
1
  ---
2
- description: Executa code review validando PRD, TechSpec e Tasks da feature
3
- argument-hint: [caminho da pasta da feature ex: docs/auth/]
2
+ description: "Code review do SDD validando PRD, SPEC_TECH e Tasks. Param: caminho do task_plan.md"
3
+ argument-hint: "<task_plan.md ex: docs/feature-user/v1/task_plan.md>"
4
4
  ---
5
5
 
6
6
  Voce e um **Engenheiro de Software Senior** com mais de 20 anos de experiencia, atuando tambem como **QA Lead** e **Security Specialist**.
@@ -36,15 +36,15 @@ Voce e **criterioso, meticuloso e implacavel**. Voce nao aceita:
36
36
 
37
37
  ## Fase 1: Coleta de Contexto
38
38
 
39
- 1. **Localize a pasta da feature**:
40
- - O argumento fornecido e o caminho da pasta da feature (ex: `docs/auth/`, `docs/login/`)
41
- - Esta pasta contem todos os documentos relacionados a feature
39
+ 1. **Leia o task_plan.md** fornecido no argumento
40
+ 2. **Extraia os caminhos** de **SPEC_TECH** e **PRD** da secao 1 (Identificacao) do task_plan.md
41
+ 3. **Derive o diretorio-base** a partir do task_plan.md (diretorio pai)
42
42
 
43
- 2. **Identifique os documentos a analisar** (APENAS ESTES):
44
- - **PRD**: `<pasta_feature>/prd.md`
45
- - **TechSpec**: `<pasta_feature>/spec_tech.md`
46
- - **Task Plan**: `<pasta_feature>/task_plan.md`
47
- - **Tasks**: `<pasta_feature>/tasks/*.md` (todos os arquivos da pasta tasks)
43
+ 4. **Identifique os documentos a analisar** (APENAS ESTES):
44
+ - **PRD**: caminho extraido do task_plan (campo PRD)
45
+ - **TechSpec**: caminho extraido do task_plan (campo SPEC_TECH)
46
+ - **Task Plan**: o arquivo fornecido como argumento
47
+ - **Tasks**: `[diretorio-base]/tasks/*.md` (todos os arquivos da pasta tasks)
48
48
 
49
49
  3. **NAO ANALISE outros arquivos**:
50
50
  - NAO leia arquivos de codigo fonte implementados
@@ -1,6 +1,6 @@
1
1
  ---
2
- description: Gera um PRD completo a partir de uma ideia ou rascunho inicial
3
- argument-hint: [descrição da feature ou ideia inicial]
2
+ description: "Gera PRD completo do SDD a partir de uma ideia. Param: descricao da feature (ex: 'modulo de autenticacao com JWT')"
3
+ argument-hint: "<descricao da feature em texto livre>"
4
4
  ---
5
5
 
6
6
  Use a skill **sdd-prd-expert** para gerar o PRD.
@@ -17,6 +17,36 @@ Voce deve atuar como um **Product Owner / Product Manager** especialista e segui
17
17
  - Faca **UMA pergunta por vez**, aguardando a resposta antes de avancar
18
18
  - Numere as User Stories com formato **US-XX** e os Criterios de Aceite com **CA-XX**
19
19
  - **SEMPRE** salve o arquivo fisico antes de apresentar ao usuario
20
+ - Apos o usuario aprovar o PRD, pergunte: **"Voce tem pontos especificos de definicao tecnica que deseja registrar antes do SPEC_TECH?"**
21
+ - Se sim, crie o arquivo `tech_direction.md` na mesma pasta do PRD usando o template da skill (sem preencher) e avise o usuario para preencher
22
+ - Se nao, encerre normalmente
23
+
24
+ ## Estado do Pipeline (sdd_state.yaml)
25
+
26
+ Apos salvar o PRD com sucesso, voce DEVE criar/atualizar o arquivo `sdd_state.yaml` no mesmo diretorio do PRD.
27
+
28
+ Se o arquivo **nao existir**, crie-o com a estrutura completa:
29
+
30
+ ```yaml
31
+ feature: "<nome da feature extraido da secao 1 do PRD>"
32
+ current_step: prd
33
+ steps:
34
+ prd:
35
+ status: completed
36
+ summary: "<US count> US, <CA count> CA. <objetivo em 1 frase curta>"
37
+ tech_direction:
38
+ status: pending
39
+ spec_tech:
40
+ status: pending
41
+ validation:
42
+ status: pending
43
+ task_plan:
44
+ status: pending
45
+ execution:
46
+ status: pending
47
+ ```
48
+
49
+ Se o arquivo **ja existir** (ex: revisao do PRD), atualize apenas o bloco `prd` e resete os steps posteriores para `pending`.
20
50
 
21
51
  ## Entrada
22
52
 
@@ -1,6 +1,6 @@
1
1
  ---
2
- description: Gera um TASK PLAN completo com tasks individuais a partir de um SPEC_TECH aprovado
3
- argument-hint: [caminho do SPEC_TECH aprovado ou nome da feature]
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>"
4
4
  ---
5
5
 
6
6
  Use a skill **sdd-task-plan-expert** para gerar o TASK PLAN e as tasks individuais.
@@ -10,7 +10,9 @@ Use a skill **sdd-task-plan-expert** para gerar o TASK PLAN e as tasks individua
10
10
  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.
11
11
 
12
12
  O $ARGUMENTS deve conter:
13
- 1. **SPEC_TECH aprovado** ou caminho para o arquivo (obrigatorio)
13
+ 1. **caminho do spec_tech.md** (obrigatorio) — ex: `docs/feature-user/v1/spec_tech.md`
14
+
15
+ 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.
14
16
 
15
17
  ## Regras Adicionais
16
18
 
@@ -18,10 +20,202 @@ O $ARGUMENTS deve conter:
18
20
  - **NUNCA** deduza escopo ou invente informacoes — na **DUVIDA PERGUNTE AO USUARIO**
19
21
  - Somente o **COMO** tecnico — nunca inclua o **O QUE** de produto
20
22
  - Liste **TODOS** os arquivos envolvidos e as acoes (criar/modificar/referencia) em cada task — economiza tokens e scans
21
- - A secao de **testes** (secao 6) de cada task deve ser delegada a um **subagente QA especializado** em contexto isolado, conforme definido na skill
22
- - Preencha a tabela de **rastreabilidade User Stories → Tasks** para garantir cobertura completa
23
+ - Preencha a tabela de **rastreabilidade User Stories -> Tasks** para garantir cobertura completa
23
24
  - Ofereca **2-4 opcoes** de abordagem tecnica quando houver duvida
24
25
 
26
+ ---
27
+
28
+ ## Delegacao QA — Secao 6 de cada Task (Testes)
29
+
30
+ A **secao 6 (Testes)** de cada task NAO deve ser preenchida pelo engenheiro de tarefas. Voce DEVE delegar para o subagente **qa-staff-engineer** que retorna um JSON estruturado. Depois, voce converte o JSON em markdown no formato checklist da secao 6.
31
+
32
+ ### Quando executar
33
+
34
+ Para **cada task**, apos preencher as secoes 1-5 e 7-8, **ANTES de salvar o arquivo da task**. Se varias tasks estao sendo criadas, voce pode disparar subagentes QA em **paralelo** para maximizar eficiencia.
35
+
36
+ ### Passo 1: Preparar a lista de arquivos
37
+
38
+ Monte a lista de `arquivos` que o subagente deve ler para CADA task. Inclua:
39
+
40
+ - **PRD aprovado**: `docs/[nome-feature]/vN/prd.md`
41
+ - **SPEC_TECH aprovado**: `docs/[nome-feature]/vN/spec_tech.md`
42
+ - **Regras do projeto**: `CLAUDE.md`, `.claude/rules/*.md`
43
+ - **Migracoes**: `internal/db/migrations/*.sql` (relacionadas a task)
44
+ - **Queries SQLC**: `internal/db/queries/*.sql` (relacionadas a task)
45
+ - **Testes existentes**: busque arquivos `*_test.go` relacionados aos arquivos impactados pela task
46
+ - **Codigo-fonte existente**: arquivos listados na secao 5 da task (a criar ou modificar)
47
+
48
+ ### Passo 2: Preparar as instrucoes
49
+
50
+ Monte o campo `instrucoes` com:
51
+
52
+ 1. O conteudo completo da **task parcial (secoes 1-5)** que voce montou ate o momento
53
+ 2. Os **criterios de aceite tecnico** da task (secao 4)
54
+ 3. Os **arquivos impactados** pela task (secao 5) — para o QA saber quais camadas testar
55
+ 4. O **tipo da task** (cria handler, cria service, cria repository, cria migracao, etc.)
56
+ 5. Qualquer contexto adicional relevante para o QA
57
+
58
+ ### Passo 3: Disparar o subagente
59
+
60
+ Lance o subagente usando a ferramenta `Agent` com:
61
+
62
+ - **subagent_type**: `qa-staff-engineer`
63
+ - **description**: "QA gerar testes task TN"
64
+ - **prompt**: Monte o prompt com os 3 parametros obrigatorios:
65
+
66
+ ```
67
+ Voce foi invocado com os seguintes parametros:
68
+
69
+ 1. **modo**: GERAR_TESTES
70
+ 2. **arquivos**: [lista de caminhos dos arquivos preparados no Passo 1]
71
+ 3. **instrucoes**: [conteudo preparado no Passo 2]
72
+ ```
73
+
74
+ ### Passo 4: Converter JSON em Markdown (secao 6)
75
+
76
+ O subagente retorna um JSON com `casos_teste[]`. Voce DEVE converter para o formato **checklist** da secao 6 usando o mapeamento abaixo:
77
+
78
+ #### Mapeamento de tipos
79
+
80
+ | Campo `tipo` no JSON | Subsecao destino |
81
+ |---------------------|-----------------|
82
+ | `UNITARIO` | **6.1 Testes Unitarios** |
83
+ | `INTEGRACAO` | **6.2 Testes de Integracao** |
84
+ | `E2E` | **6.3 Testes E2E** |
85
+ | `SEGURANCA` | **6.4 Cenarios de Erro** |
86
+ | `PERFORMANCE` | **6.4 Cenarios de Erro** |
87
+
88
+ #### Mapeamento de categorias para 6.4
89
+
90
+ Alem dos testes tipo `SEGURANCA` e `PERFORMANCE`, inclua em 6.4 todos os `casos_teste` com `categoria` igual a:
91
+ - `tratamento_erro`
92
+ - `caso_extremo`
93
+ - `fronteira` (quando o teste foca em comportamento de erro)
94
+
95
+ #### Formato de saida por subsecao
96
+
97
+ O formato de saida DEVE seguir o **formato tabular** identico ao da secao 14 do SPEC_TECH. Isso garante consistencia entre os dois documentos e facilita a validacao visual.
98
+
99
+ Infira o nome do arquivo de teste a partir do componente testado:
100
+ - Handler → `[nome]_handler_test.go`
101
+ - Service → `[nome]_service_test.go`
102
+ - Repository → `[nome]_repository_test.go`
103
+
104
+ Infira o nome da funcao de teste a partir do titulo do CT:
105
+ - Use formato `TestNomeMetodo_CenarioDescritivo` (Go convention)
106
+
107
+ **6.1 Testes Unitarios** — formato tabular agrupado por componente:
108
+
109
+ ```markdown
110
+ #### [Camada]: [NomeComponente] (`arquivo_test.go`)
111
+
112
+ Mock: [interfaces mockadas]
113
+
114
+ | CT | Teste | CA | Objetivo | Input | Expected | Mock |
115
+ |----|-------|----|----------|-------|----------|------|
116
+ | CT-XX | TestMetodo_Cenario | CA-XX | Verificar que [comportamento] quando [condicao] | dados entrada | resultado esperado | dependencias mockadas |
117
+ ```
118
+
119
+ **6.2 Testes de Integracao** — formato tabular com Setup acima:
120
+
121
+ ```markdown
122
+ #### [CamadaA + CamadaB] (`arquivo_test.go`)
123
+
124
+ Setup: [banco in-memory, migracoes, fixtures]
125
+
126
+ | CT | Teste | CA | Objetivo | Fluxo | Validacao |
127
+ |----|-------|----|----------|-------|-----------|
128
+ | CT-XX | TestIntegracao_Cenario | CA-XX | Verificar que [comportamento] quando [condicao] | Passos do fluxo | Assertions esperadas |
129
+ ```
130
+
131
+ **6.3 Testes E2E** — formato descritivo por fluxo:
132
+
133
+ ```markdown
134
+ #### Fluxo: [Nome do Fluxo] (CT-XX)
135
+ - **CA**: CA-XX, CA-YY
136
+ - **Objetivo**: (1 frase descrevendo o que este fluxo E2E valida de ponta a ponta)
137
+ - **Pre-condicoes**: (estado inicial do sistema)
138
+ - **Passos**:
139
+ 1. Passo 1
140
+ 2. Passo 2
141
+ - **Validacoes**: (assertions sobre dados e estado final)
142
+ ```
143
+
144
+ **6.4 Cenarios de Erro** — formato tabular:
145
+
146
+ ```markdown
147
+ | Cenario | CA | Objetivo | Trigger | Codigo/Status | Log Esperado |
148
+ |---------|----|----------|---------|---------------|-------------|
149
+ | Descricao do cenario | CA-XX | Verificar que [constraint] impede [operacao] | Acao trigger | Codigo erro | Mensagem log |
150
+ ```
151
+
152
+ #### Testes Existentes a Modificar
153
+
154
+ Apos as subsecoes 6.1-6.4, adicione a tabela de testes existentes. Infira a partir de:
155
+ - Campo `recomendacoes` do JSON (se mencionar testes existentes)
156
+ - Arquivos de teste ja existentes para os componentes impactados pela task (secao 5.2 - Arquivos a Modificar)
157
+
158
+ ```markdown
159
+ ### Testes Existentes a Modificar
160
+ | Arquivo | Motivo da Modificacao |
161
+ |---------|----------------------|
162
+ | [arquivo] | [motivo] |
163
+ ```
164
+
165
+ Se nenhum teste existente precisa ser modificado: `> Nenhum teste existente impactado.`
166
+
167
+ #### Informacoes adicionais do JSON
168
+
169
+ - **`cenarios_nao_cobertos`**: adicione como nota apos a secao 6.4
170
+ - **`recomendacoes`**: use para complementar testes ou identificar testes existentes a modificar
171
+ - **`erros_leitura`**: se houver, mencione quais arquivos nao puderam ser lidos
172
+
173
+ ### Passo 5: Validar como engenheiro de tarefas
174
+
175
+ Antes de integrar a secao 6 na task:
176
+
177
+ 1. Verifique **coerencia** com as secoes 1-5 da task (os componentes testados existem na secao 5?)
178
+ 2. Verifique que os testes cobrem os **criterios de aceite tecnico** da secao 4
179
+ 3. Ajuste nomenclatura de arquivos e funcoes de teste para seguir os padroes do projeto
180
+ 4. Para tasks que NAO envolvem codigo (ex: documentacao, configuracao), preencha "N/A — task nao envolve codigo testavel"
181
+
182
+ ### Passo 6: Integrar e salvar
183
+
184
+ 1. Insira a secao 6 convertida na task
185
+ 2. Salve o arquivo `tasks/TN.md`
186
+ 3. Apresente ao usuario para aprovacao
187
+
188
+ **NAO peca aprovacao isolada da secao 6** — apresente a task completa para validacao.
189
+
190
+ ---
191
+
192
+ ## Estado do Pipeline (sdd_state.yaml)
193
+
194
+ Apos salvar o task_plan.md e todas as tasks com sucesso, atualize o arquivo `sdd_state.yaml` no mesmo diretorio:
195
+
196
+ ```yaml
197
+ # atualizar apenas estes campos:
198
+ current_step: task_plan
199
+ steps:
200
+ task_plan:
201
+ status: completed
202
+ summary: "<N tasks>, <M fases>, <P paralelizaveis>. US cobertas: <X/Y>"
203
+ execution:
204
+ status: pending
205
+ tasks_total: <N>
206
+ tasks_completed: 0
207
+ ```
208
+
209
+ Se a validacao SDD nao foi executada, marque-a como `skipped`:
210
+
211
+ ```yaml
212
+ steps:
213
+ validation:
214
+ status: skipped
215
+ ```
216
+
217
+ Se o `sdd_state.yaml` nao existir, nao crie — o generate-prd e responsavel por criar.
218
+
25
219
  ## Entrada
26
220
 
27
221
  $ARGUMENTS
@@ -0,0 +1,43 @@
1
+ ---
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>"
4
+ ---
5
+
6
+ Use a skill **sdd-tech-direction-expert** para gerar o tech_direction.md.
7
+
8
+ ## Contexto
9
+
10
+ Voce deve atuar como um **Arquiteto de Software Senior** especializado em tomada de decisao tecnica e seguir todo o processo interativo definido na skill sdd-tech-direction-expert para construir um tech_direction completo.
11
+
12
+ ## Pre-requisito
13
+
14
+ Antes de iniciar, verifique se `.claude/rules/project-profile.md` existe. Se NAO existir, interrompa e peca ao usuario para executar `/generate-project-profile` primeiro.
15
+
16
+ ## Regras Adicionais
17
+
18
+ - **Claude Code**: use a ferramenta `AskUserQuestion` para esclarecer duvidas com o usuario
19
+ - **NUNCA** deduza decisoes ou invente informacoes — na **DUVIDA PERGUNTE AO USUARIO**
20
+ - Leia o **project-profile.md** para entender stack, padroes e convencoes do projeto
21
+ - Pesquise o codebase ANTES de fazer perguntas (regras, padroes, libs)
22
+ - Faca **UMA pergunta por vez**, aguardando a resposta antes de avancar
23
+ - **SEMPRE** salve o arquivo fisico antes de apresentar ao usuario
24
+ - O arquivo deve ser salvo no mesmo diretorio do PRD: `docs/[nome-feature]/vN/tech_direction.md`
25
+
26
+ ## Estado do Pipeline (sdd_state.yaml)
27
+
28
+ Apos salvar o tech_direction.md com sucesso, atualize o arquivo `sdd_state.yaml` no mesmo diretorio:
29
+
30
+ ```yaml
31
+ # atualizar apenas estes campos:
32
+ current_step: tech_direction
33
+ steps:
34
+ tech_direction:
35
+ status: completed
36
+ summary: "<listar as principais decisoes tecnicas em 1 frase>"
37
+ ```
38
+
39
+ Se o `sdd_state.yaml` nao existir, nao crie — o generate-prd e responsavel por criar.
40
+
41
+ ## Entrada
42
+
43
+ $ARGUMENTS