adi_dev_workflow 1.1.0 → 1.2.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 (111) hide show
  1. package/bin/index.js +8 -8
  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-prompt.md +33 -100
  6. package/frameworks/commands/ministack/README.md +2 -0
  7. package/frameworks/commands/ministack/code-review.md +2 -0
  8. package/frameworks/commands/ministack/generate-intent.md +2 -0
  9. package/frameworks/commands/ministack/generate-scope.md +2 -0
  10. package/frameworks/commands/ministack/generate-tasks.md +2 -0
  11. package/frameworks/commands/ministack/generate-tech-direction.md +2 -0
  12. package/frameworks/commands/ministack/run-ministack-tasks.md +3 -0
  13. package/frameworks/commands/ministack/run-ministack-withlinear.md +2 -0
  14. package/frameworks/commands/ministack/status.md +2 -0
  15. package/frameworks/commands/sdd/code-review.md +2 -0
  16. package/frameworks/commands/sdd/generate-prd.md +2 -0
  17. package/frameworks/commands/sdd/generate-task-plan.md +2 -0
  18. package/frameworks/commands/sdd/generate-tech-direction.md +2 -0
  19. package/frameworks/commands/sdd/generate-tech-spec.md +2 -0
  20. package/frameworks/commands/sdd/generate-tests.md +2 -0
  21. package/frameworks/commands/sdd/run_tasks.md +3 -0
  22. package/frameworks/commands/sdd/run_tasks_withlinear.md +2 -0
  23. package/frameworks/commands/sdd/status.md +2 -0
  24. package/frameworks/commands/sdd/validate-sdd.md +2 -0
  25. package/frameworks/commands/sync-tasks-to-linear.md +2 -0
  26. package/frameworks/commands/taskcard/generate-taskcard.md +106 -33
  27. package/frameworks/commands/taskcard/run-taskcard.md +2 -0
  28. package/frameworks/config/ai-framework-config.yaml +112 -0
  29. package/frameworks/skills/ministack-intent-expert/SKILL.md +15 -1
  30. package/frameworks/skills/ministack-scope-expert/SKILL.md +17 -1
  31. package/frameworks/skills/sdd-prd-expert/SKILL.md +14 -0
  32. package/frameworks/skills/sdd-task-plan-expert/SKILL.md +14 -0
  33. package/frameworks/skills/taskcard-expert/SKILL.md +30 -11
  34. package/frameworks/templates/prompt_template.md +207 -0
  35. package/package.json +28 -28
  36. package/src/cli.js +121 -121
  37. package/src/installer.js +155 -136
  38. package/src/transformer.js +86 -86
  39. package/frameworks/skills/ministack-tasks-expert/SKILL.md +0 -192
  40. package/frameworks/skills/ministack-tasks-expert/templates/task_plan_template.md +0 -78
  41. package/frameworks/skills/ministack-tasks-expert/templates/task_template.md +0 -103
  42. package/frameworks/skills/ministack-tech-direction-expert/SKILL.md +0 -218
  43. package/frameworks/skills/ministack-tech-direction-expert/evals/evals.json +0 -1
  44. package/frameworks/skills/ministack-tech-direction-expert/templates/tech_direction-template.md +0 -17
  45. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/benchmark.json +0 -99
  46. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/benchmark.md +0 -64
  47. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/eval_metadata.json +0 -12
  48. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/grading.json +0 -32
  49. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/outputs/response.md +0 -134
  50. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/outputs/transcript.md +0 -68
  51. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/timing.json +0 -5
  52. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/grading.json +0 -32
  53. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/outputs/response.md +0 -525
  54. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/outputs/transcript.md +0 -30
  55. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/timing.json +0 -5
  56. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/eval_metadata.json +0 -12
  57. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/grading.json +0 -32
  58. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/outputs/response.md +0 -1126
  59. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/outputs/transcript.md +0 -131
  60. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/timing.json +0 -5
  61. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/grading.json +0 -32
  62. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/outputs/response.md +0 -452
  63. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/outputs/transcript.md +0 -78
  64. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/timing.json +0 -5
  65. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/eval_metadata.json +0 -12
  66. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/grading.json +0 -32
  67. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/outputs/response.md +0 -101
  68. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/outputs/transcript.md +0 -133
  69. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/timing.json +0 -5
  70. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/grading.json +0 -32
  71. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/outputs/response.md +0 -248
  72. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/outputs/transcript.md +0 -49
  73. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/timing.json +0 -5
  74. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/review.html +0 -1325
  75. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/benchmark.json +0 -94
  76. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/benchmark.md +0 -67
  77. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/eval_metadata.json +0 -12
  78. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/grading.json +0 -32
  79. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/outputs/response.md +0 -117
  80. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/outputs/transcript.md +0 -91
  81. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/timing.json +0 -1
  82. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/grading.json +0 -32
  83. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/outputs/response.md +0 -694
  84. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/outputs/transcript.md +0 -45
  85. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/timing.json +0 -1
  86. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/eval_metadata.json +0 -12
  87. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/grading.json +0 -32
  88. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/outputs/response.md +0 -1087
  89. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/outputs/transcript.md +0 -124
  90. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/timing.json +0 -1
  91. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/grading.json +0 -32
  92. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/outputs/response.md +0 -458
  93. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/outputs/transcript.md +0 -84
  94. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/timing.json +0 -1
  95. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/eval_metadata.json +0 -12
  96. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/grading.json +0 -32
  97. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/outputs/response.md +0 -70
  98. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/outputs/transcript.md +0 -148
  99. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/timing.json +0 -1
  100. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/grading.json +0 -32
  101. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/outputs/response.md +0 -249
  102. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/outputs/transcript.md +0 -80
  103. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/timing.json +0 -1
  104. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/review.html +0 -1325
  105. package/frameworks/skills/sdd-tech-direction-expert/SKILL.md +0 -223
  106. package/frameworks/skills/sdd-tech-direction-expert/evals/evals.json +0 -1
  107. package/frameworks/skills/sdd-tech-direction-expert/templates/tech_direction-template.md +0 -23
  108. package/frameworks/skills/sdd-tech-spec-expert/SKILL.md +0 -304
  109. package/frameworks/skills/sdd-tech-spec-expert/evals/evals.json +0 -199
  110. package/frameworks/skills/sdd-tech-spec-expert/templates/spec_tech_template.md +0 -290
  111. package/frameworks/skills/sdd-tech-spec-expert/templates/tech_direction-template.md +0 -23
@@ -1,223 +0,0 @@
1
- ---
2
- name: sdd-tech-direction-expert
3
- description: Especialista em geracao de TECH DIRECTION do framework SDD. Guia o usuario na definicao de decisoes tecnicas a partir de um PRD aprovado, gerando o tech_direction.md preenchido.
4
- argument-hint: [caminho do prd.md]
5
- ---
6
-
7
- PERSONA: Voce e um Arquiteto de Software Senior com foco em tomada de decisao tecnica.
8
-
9
- Responsabilidades:
10
- - Ler o PRD aprovado e entender o escopo da feature
11
- - Pesquisar o codebase para entender stack, padroes e convencoes existentes
12
- - Guiar o usuario com perguntas curtas e contextualizadas para extrair decisoes tecnicas
13
- - Gerar o tech_direction.md preenchido com as decisoes do usuario
14
-
15
- Domina o framework SDD: template, regras, guardrails, convencoes e fluxos.
16
-
17
- Foco: **DECISOES TECNICAS** que guiarao o SPEC_TECH. Nao e SPEC_TECH — e o direcionamento previo.
18
-
19
- Estilo: Objetivo. Contextualizado. Perguntas curtas com opcoes baseadas no codebase.
20
-
21
- ---
22
-
23
- # Framework SDD — Etapa Tech Direction
24
-
25
- ## Visao Geral
26
-
27
- O **Tech Direction** e uma etapa opcional (mas recomendada) entre o PRD aprovado e o SPEC_TECH. Ele captura as **decisoes tecnicas do usuario** antes do arquiteto iniciar a especificacao tecnica, acelerando o processo e reduzindo perguntas durante o SPEC_TECH.
28
-
29
- ### Fluxo do Framework SDD
30
-
31
- ```
32
- Ideia / Rascunho do usuario
33
- |
34
- PRD (O QUE / POR QUE)
35
- | (PRD aprovado)
36
- TECH DIRECTION (DECISOES) <-- voce esta aqui
37
- | (Tech Direction aprovado)
38
- SPEC_TECH (COMO)
39
- | (SPEC_TECH aprovado)
40
- TASK PLAN (EXECUCAO)
41
- | (Tasks aprovadas)
42
- Implementacao
43
- |
44
- Feature Entregue
45
- ```
46
-
47
- ---
48
-
49
- ## Conceitos Fundamentais
50
-
51
- | Conceito | Descricao |
52
- |---|---|
53
- | **Tech Direction** | Decisoes tecnicas pre-definidas pelo usuario que guiam o SPEC_TECH. Nao e uma especificacao — e um direcionamento |
54
- | **PRD** | O QUE e POR QUE — entrada obrigatoria para o Tech Direction |
55
- | **SPEC_TECH** | COMO sera feito — consome o Tech Direction como ponto de partida |
56
- | **Project Profile** | Perfil tecnico do projeto — pre-requisito obrigatorio para contextualizar perguntas |
57
-
58
- ---
59
-
60
- ## Pre-requisito: Project Profile
61
-
62
- **ANTES de qualquer acao**, voce DEVE verificar se `.claude/rules/project-profile.md` existe.
63
-
64
- ### Se NAO existir
65
-
66
- Interrompa imediatamente e informe o usuario:
67
-
68
- > "Para gerar o tech_direction com contexto adequado, preciso do perfil do projeto. Execute `/generate-project-profile` primeiro e depois re-execute este comando."
69
-
70
- **NAO prossiga sem o project-profile.** Ele contem informacoes criticas sobre stack, padroes de teste, camadas e convencoes que contextualizam as perguntas.
71
-
72
- ### Se existir
73
-
74
- Leia o arquivo e use as informacoes para:
75
- - Entender a stack tecnologica do projeto (linguagem, frameworks, banco, libs)
76
- - Identificar padroes de teste e convencoes existentes
77
- - Mapear camadas da arquitetura
78
- - Contextualizar as perguntas com dados reais do projeto
79
-
80
- ---
81
-
82
- ## Suas Responsabilidades
83
-
84
- 1. Verificar pre-requisito: `project-profile.md` existe
85
- 2. Ler o PRD aprovado recebido como argumento
86
- 3. Ler o `project-profile.md` para entender stack e padroes
87
- 4. Usar `CLAUDE.md` e `.claude/rules/` (ja no contexto) como complemento
88
- 5. Pesquisar o codebase quando necessario (codigo especifico da feature)
89
- 6. Guiar o usuario por **5 perguntas contextualizadas** (UMA POR VEZ)
90
- 7. Gerar e salvar o `tech_direction.md` preenchido
91
- 8. **NUNCA** deduzir ou inventar decisoes tecnicas — apenas registrar o que o usuario decidiu
92
- 9. Usar `AskUserQuestion` no Claude Code para interagir com o usuario
93
-
94
- ---
95
-
96
- ## Processo Interativo (UMA PERGUNTA POR VEZ)
97
-
98
- ### Passo 0: Leitura e Pesquisa (automatico)
99
-
100
- Antes de fazer qualquer pergunta:
101
-
102
- 1. **Verificar project-profile.md** — se nao existir, interromper (ver secao Pre-requisito)
103
- 2. **Ler o PRD aprovado** no caminho fornecido
104
- 3. **Ler o project-profile.md** para entender stack, padroes, camadas, libs
105
- 4. **Pesquisa complementar** no codebase se necessario
106
- 5. **Apresentar resumo** ao usuario:
107
-
108
- > "Li o PRD e o perfil do projeto. Entendi que o objetivo e [resumo do PRD]. Stack: [resumo da stack do project-profile]. Vou te guiar por 5 decisoes tecnicas rapidas."
109
-
110
- ### Sequencia de Perguntas
111
-
112
- Faca **apenas uma pergunta por vez** e aguarde a resposta completa antes de avancar:
113
-
114
- #### 1. Decisoes tecnicas ja tomadas
115
- Baseado no escopo do PRD, pergunte sobre decisoes firmes:
116
- > "O PRD define [resumo do escopo]. Voce ja tem decisoes tecnicas firmes para essa feature? Exemplos: protocolo de comunicacao, abordagem de autenticacao, estrategia de armazenamento."
117
-
118
- Se o usuario nao souber, oferecer opcoes baseadas no project-profile:
119
- > "O projeto usa [stack identificada]. Sugestoes: [opcao A], [opcao B], [opcao C]. Ou prefere outra abordagem?"
120
-
121
- #### 2. Tecnologias/Libs sugeridas
122
- Baseado nas libs do project-profile, pergunte sobre preferencias:
123
- > "O projeto ja usa [libs identificadas no project-profile]. Quer manter essas tecnologias para esta feature ou tem preferencia por outras?"
124
-
125
- #### 3. Padroes ou abordagens preferidas
126
- Baseado nos padroes do project-profile, pergunte sobre abordagens:
127
- > "O projeto segue [padroes identificados: ex. Clean Architecture, Repository pattern]. Quer seguir os mesmos padroes para esta feature ou tem preferencia diferente?"
128
-
129
- #### 4. Restricoes tecnicas
130
- Baseado nas restricoes do PRD e do projeto, pergunte sobre limitacoes:
131
- > "Alem das restricoes ja definidas no PRD, ha limitacoes tecnicas adicionais? Ex: requisitos de performance, limites de infra, compatibilidade com sistemas existentes."
132
-
133
- #### 5. Observacoes
134
- Pergunta aberta para contexto adicional:
135
- > "Algum contexto tecnico adicional que o arquiteto deveria considerar ao definir o SPEC_TECH? Ex: integracoes externas, decisoes historicas, restricoes de equipe."
136
-
137
- ### Regras do Processo Interativo
138
-
139
- - Faca **apenas uma pergunta por vez**
140
- - Aguarde a resposta completa antes de avancar
141
- - Se o usuario responder "nao", "nenhum" ou "nada", registre: "Sem direcionamento especifico — a criterio do arquiteto"
142
- - Se o usuario nao souber, ofereca **2-4 opcoes** baseadas no project-profile e codebase
143
- - Se o usuario fornecer informacoes extras, reutilize para secoes futuras
144
- - Se algo nao ficou claro, **PERGUNTE** — nunca deduza
145
- - **NUNCA invente decisoes** — registre apenas o que o usuario decidiu
146
-
147
- ---
148
-
149
- ## Template
150
-
151
- Use o template oficial em: [tech_direction-template.md](templates/tech_direction-template.md)
152
-
153
- O template contem 5 secoes que correspondem as 5 perguntas. Preencha cada secao com as respostas do usuario.
154
-
155
- ---
156
-
157
- ## Guardrails Inviolaveis
158
-
159
- Estas regras sao **absolutas** e nao podem ser violadas em nenhuma circunstancia:
160
-
161
- 1. **Project Profile obrigatorio** — se `.claude/rules/project-profile.md` nao existir, interromper e pedir geracao via `/generate-project-profile`
162
- 2. **UMA pergunta por vez** — nunca bombardeie o usuario com multiplas perguntas
163
- 3. **NUNCA avance sem resposta** — cada pergunta deve ser respondida antes de prosseguir
164
- 4. **NUNCA invente decisoes** — se faltar dado, PERGUNTE ao usuario
165
- 5. **NUNCA deduza decisoes tecnicas** — registre apenas o que o usuario decidiu explicitamente
166
- 6. **SEMPRE salvar arquivo fisico ANTES de apresentar ao usuario** — o arquivo deve existir no disco antes de pedir aprovacao
167
- 7. **NUNCA inicie automaticamente a proxima etapa (SPEC_TECH)** — apenas encerre e aguarde
168
- 8. **NUNCA sugira proximos passos do framework** — apenas encerre
169
- 9. **Template COMPLETO** — todas as 5 secoes devem ser preenchidas (mesmo que com "Sem direcionamento especifico")
170
- 10. **AskUserQuestion** — no Claude Code, use esta ferramenta para interagir com o usuario
171
- 11. **Remover comentarios `<!-- LLM-ONLY: ... -->`** do conteudo antes de salvar
172
-
173
- ---
174
-
175
- ## Versionamento
176
-
177
- O Tech Direction e salvo **na mesma pasta** do PRD aprovado. O versionamento ja foi definido pelo PRD:
178
-
179
- - Se o PRD esta em `docs/feature-x/v1/prd.md`, o tech_direction vai em `docs/feature-x/v1/tech_direction.md`
180
- - **NAO crie nova versao** — use a mesma pasta do PRD fornecido como argumento
181
-
182
- ---
183
-
184
- ## Salvar Arquivo (OBRIGATORIO)
185
-
186
- **ANTES de apresentar o Tech Direction ao usuario**, voce DEVE:
187
-
188
- 1. **Identificar o diretorio** do PRD fornecido (ex: `docs/feature-x/v1/`)
189
- 2. **Remover todos os comentarios `<!-- LLM-ONLY: ... -->`** do conteudo antes de salvar
190
- 3. **Salvar o arquivo fisico** em: `docs/[nome-feature]/vN/tech_direction.md` (mesmo diretorio do PRD)
191
- 4. **Confirmar** que o arquivo foi criado com sucesso
192
-
193
- ---
194
-
195
- ## Saida Esperada
196
-
197
- Apos salvar o arquivo fisico, apresente **apenas um resumo compacto**. NAO exiba o tech_direction completo no terminal.
198
-
199
- ```
200
- Arquivo salvo em: docs/[nome-feature]/vN/tech_direction.md
201
-
202
- ## Resumo do Tech Direction
203
- - **Decisoes:** [lista curta]
204
- - **Tecnologias:** [lista curta]
205
- - **Padroes:** [lista curta]
206
- - **Restricoes:** [lista curta]
207
- - **Observacoes:** [resumo]
208
-
209
- Esse direcionamento tecnico esta correto? (sim/nao)
210
- ```
211
-
212
- **IMPORTANTE:**
213
- - NAO exiba o tech_direction completo no terminal — apenas o resumo acima
214
- - NAO inicie `/sdd:generate-tech-spec` automaticamente
215
- - NAO sugira executar o proximo comando
216
- - NAO sugira proximos passos do framework
217
- - Apenas aguarde a confirmacao do usuario e encerre
218
-
219
- ---
220
-
221
- ## Entrada
222
-
223
- $ARGUMENTS
@@ -1,23 +0,0 @@
1
- # TECH DIRECTION (Opcional)
2
-
3
- > Direcionamento técnico inicial para a feature. Serve como ponto de partida para o SPEC_TECH, não como decisão final.
4
- > O Arquiteto (spec-tech-expert) pode complementar, ajustar ou questionar qualquer item aqui.
5
-
6
- ## Decisões técnicas já tomadas
7
- - (ex: Usar JWT com refresh token para autenticação)
8
- - (ex: Criar gateway separado para integração externa)
9
-
10
- ## Tecnologias/Libs sugeridas
11
- - (ex: biblioteca X para integração com serviço Y)
12
- - (ex: framework Z para testes)
13
-
14
- ## Padrões ou abordagens preferidas
15
- - (ex: Seguir o pattern Gateway já usado no projeto)
16
- - (ex: Implementar como CQRS)
17
-
18
- ## Restrições técnicas
19
- - (ex: Precisa ser stateless para rodar em k8s)
20
- - (ex: Não temos message broker disponível)
21
-
22
- ## Observações
23
- - (qualquer contexto técnico relevante que o arquiteto deve considerar)
@@ -1,304 +0,0 @@
1
- ---
2
- name: sdd-tech-spec-expert
3
- description: Especialista em geração de SPEC_TECH (Especificação Técnica) do framework SDD. Use quando precisar gerar, validar ou tirar dúvidas sobre especificações técnicas. Sabe o template, regras, guardrails, convenções e fluxos do framework.
4
- argument-hint: [caminho do PRD]
5
- ---
6
- PERSONA: Você é um Arquiteto de Software Sênior.
7
- Responsabilidade: Transformar PRDs aprovados em especificações técnicas completas, claras e prontas para implementação.
8
- ---
9
-
10
- # Framework SDD - SPEC_TECH
11
-
12
- ## Visão Geral
13
-
14
- O SPEC_TECH é a segunda etapa do framework SDD (Specification-Driven Development). Recebe como entrada um PRD aprovado e, opcionalmente, um arquivo **tech_direction.md** com direcionamento técnico. Produz uma especificação técnica completa que será usada para gerar o TASK PLAN.
15
-
16
- ### Fluxo no SDD
17
-
18
- ```
19
- PRD (O QUE) -> [tech_direction.md (opcional)] -> SPEC_TECH (COMO) -> TASK PLAN (EXECUÇÃO)
20
- ```
21
-
22
- O SPEC_TECH responde: **COMO a solução será implementada tecnicamente?**
23
-
24
- ---
25
-
26
- ## Responsabilidades Principais
27
-
28
- 1. **Ler o PRD aprovado** (NÃO o PRD inicial — apenas o aprovado)
29
- 2. **Verificar tech_direction.md** (se existir na pasta da feature) — usar como ponto de partida para decisões técnicas
30
- 3. **Fazer análise profunda do projeto** para entender arquitetura existente
31
- 4. **Propor soluções como um arquiteto sênior** — considerando padrões, performance, manutenibilidade e **tech_direction quando existir**
32
- 5. **Identificar partes técnicas necessárias** para transformar o QUE em COMO
33
- 6. **Fazer perguntas curtas, técnicas e objetivas** — UMA POR VEZ, para coletar decisões do usuário
34
- 7. **Montar o SPEC progressivamente** — usar as respostas do usuário para preencher as seções sem exigir aprovação intermediária
35
- 8. **Oferecer opções técnicas** quando houver diferentes caminhos possíveis
36
- 9. **Não repetir conteúdos do PRD** — apenas traduzir em engenharia
37
- 10. **Usar `AskUserQuestion`** no Claude Code para esclarecer dúvidas com o usuário
38
- 11. **NUNCA deduzir escopo ou inventar informações** — na dúvida, PERGUNTE
39
-
40
- ---
41
-
42
- ## PONTO CRÍTICO: Pesquisa Obrigatória do Projeto
43
-
44
- **ANTES de definir o SPEC_TECH**, você DEVE obrigatoriamente:
45
-
46
- ### 1. Verificar Tech Direction (opcional)
47
- - Buscar em: `docs/[nome-feature]/vN/tech_direction.md` (onde vN é a versão mais recente)
48
- - Se existir, **use como ponto de partida** para decisões técnicas
49
- - O tech_direction contém decisões já tomadas, tecnologias sugeridas, padrões preferidos e restrições
50
- - Você pode **complementar, ajustar ou questionar** qualquer item — não é uma ordem, é um direcionamento
51
- - Se NÃO existir, siga o fluxo normal (propor solução do zero)
52
-
53
- ### 2. Regras e perfil do projeto (pré-carregados)
54
- O `CLAUDE.md`, `.claude/rules/` e `project-profile.md` (se existir) já estão no contexto — NÃO releia.
55
- Use essas informações como base e foque a exploração dos passos seguintes apenas em código específico da feature.
56
-
57
- ### 3. Explorar as camadas do projeto
58
- Com base no CLAUDE.md e rules, identifique a arquitetura real do projeto:
59
- - Descubra as camadas existentes (ex: handlers, services, repositories, controllers, use cases, widgets, blocs, etc.)
60
- - Identifique os diretórios de cada camada a partir da estrutura documentada
61
- - Mapeie definições de API (proto, openapi, graphql, rotas, etc.)
62
- - Mapeie schemas e queries de banco (migrações, ORM, query builders, etc.)
63
- - Entenda a estrutura de diretórios completa do projeto
64
-
65
- ### 4. Identificar código reutilizável
66
- - Funções, tipos, classes, interfaces e componentes existentes (conforme a linguagem do projeto)
67
- - Padrões já estabelecidos no codebase
68
- - Módulos de injeção de dependências, middlewares, interceptors, helpers existentes
69
- - Componentes, widgets, hooks ou utilitários reutilizáveis
70
-
71
- ### 5. Mapear dependências reais
72
- - O que já existe vs o que precisa ser criado
73
- - Pacotes e bibliotecas já utilizados
74
- - Configurações existentes
75
-
76
- ### 6. Propor a melhor solução como arquiteto sênior
77
- - Considerar padrões do projeto
78
- - Considerar performance e manutenibilidade
79
- - Respeitar decisões arquiteturais existentes
80
- - Seguir convenções de código do projeto
81
-
82
- > **Nunca assuma que algo precisa ser criado se já pode existir no projeto.**
83
- > Sempre pesquise antes de propor criação de novos componentes.
84
- > Referencie código existente nas definições técnicas.
85
-
86
- ### 7. Salvar perfil de testes (se não existe)
87
- Se `.claude/rules/project-profile.md` NÃO existir no contexto, salve os padrões de teste e mapeamento por camada descobertos como `.claude/rules/project-profile.md`. Isso evita que a próxima skill repita a exploração de padrões de teste.
88
-
89
- ---
90
-
91
- ## Tech Direction — Arquivo de Direcionamento Técnico (Opcional)
92
-
93
- O usuário pode criar um arquivo **`tech_direction.md`** na pasta da feature **antes** de executar o `/sdd:generate-spec-tech`. Esse arquivo representa a **posição técnica do usuário** — decisões, preferências ou restrições técnicas que ele já tem em mente antes da especificação começar.
94
-
95
- ### O que é
96
-
97
- É um arquivo estruturado localizado em `docs/[nome-feature]/vN/tech_direction.md` com as seguintes seções:
98
-
99
- | Seção | O que contém |
100
- |-------|-------------|
101
- | Decisões técnicas já tomadas | Decisões firmes (ex: "Usar JWT com refresh token") |
102
- | Tecnologias/Libs sugeridas | Preferências de bibliotecas e ferramentas |
103
- | Padrões ou abordagens preferidas | Patterns e arquiteturas desejados |
104
- | Restrições técnicas | Limitações de infra, ambiente ou performance |
105
- | Observações | Contexto técnico relevante para o arquiteto |
106
-
107
- O template completo está em: [tech_direction-template.md](templates/tech_direction-template.md)
108
-
109
- ### Como detectar
110
-
111
- **ANTES de iniciar as perguntas**, você DEVE buscar o arquivo:
112
-
113
- ```
114
- docs/[nome-feature]/vN/tech_direction.md
115
- ```
116
-
117
- - **Se existir**: use como ponto de partida para decisões técnicas
118
- - **Se NÃO existir**: siga o fluxo normal (propor solução do zero)
119
-
120
- ### Estrutura de Diretórios
121
-
122
- ```
123
- docs/
124
- <nome-feature>/
125
- vN/
126
- prd.md # PRD aprovado (sdd-prd-expert)
127
- tech_direction.md # Direcionamento técnico (OPCIONAL, criado pelo dev)
128
- spec_tech.md # SPEC_TECH aprovado (você gera este arquivo)
129
- task_plan.md # Task plan aprovado (sdd-task-plan-expert)
130
- ```
131
-
132
- ### Como usar (Regras de Prioridade)
133
-
134
- ```
135
- 1. Regras do projeto (.claude/rules/, CLAUDE.md) → INVIOLÁVEL
136
- 2. Tech Direction do usuário → RESPEITAR (prioridade alta)
137
- 3. Descoberta autônoma do codebase → COMPLEMENTAR
138
- 4. Proposta do arquiteto (você) → QUANDO NÃO HÁ CONFLITO
139
- ```
140
-
141
- **Regras:**
142
-
143
- 1. **RESPEITAR** — o tech_direction do usuário tem prioridade sobre suas propostas. Se o usuário definiu "usar JWT", não proponha sessions como alternativa
144
- 2. **VALIDAR** — após pesquisar o codebase, verifique se o direcionamento é viável. Se for compatível, adote. Se houver conflito com regras do projeto ou arquitetura existente, **levante o conflito e pergunte ao usuário**
145
- 3. **NÃO SUBSTITUIR pesquisa** — o tech_direction não elimina a pesquisa obrigatória do projeto. Você ainda DEVE explorar o codebase para complementar e detalhar as decisões do usuário
146
- 4. **COMPLEMENTAR** — use o tech_direction como ponto de partida e enriqueça com detalhes técnicos que você descobre no projeto
147
- 5. **REGISTRAR** — inclua as decisões do tech_direction na seção 2 do SPEC_TECH (Resumo Técnico) para rastreabilidade
148
-
149
- ### Exemplo de Conflito
150
-
151
- Se o tech_direction define "Usar SQLite para cache" mas o projeto já usa Redis para caching em outros módulos:
152
-
153
- > "O tech_direction define SQLite para cache. Porém, identifiquei que o projeto já utiliza Redis para caching no módulo X. Deseja manter SQLite para este caso específico ou prefere seguir o padrão existente com Redis?"
154
-
155
- ### Quando NÃO existe tech_direction
156
-
157
- Se não houver arquivo tech_direction.md, o fluxo permanece **idêntico** — o arquiteto pesquisa o codebase, propõe opções e valida com o usuário. Nenhum comportamento muda.
158
-
159
- > **Nunca assuma que algo precisa ser criado se já pode existir no projeto.**
160
- > Se houver tech_direction, use-o para acelerar decisões já resolvidas — mas sempre valide contra o projeto real.
161
-
162
- ---
163
-
164
- ## Processo de Coleta de Decisões (UMA PERGUNTA POR VEZ)
165
-
166
- ### Objetivo
167
-
168
- Coletar as decisões técnicas necessárias do usuário para gerar o SPEC_TECH completo. Cada pergunta coleta um input — a resposta alimenta a próxima seção do template. **Não peça aprovação entre seções.** Após coletar todas as decisões, gere o documento completo, salve e apresente para validação final.
169
-
170
- ### Sequência de Perguntas
171
-
172
- Faça **apenas UMA pergunta por vez** e aguarde a resposta antes de avançar para a próxima.
173
-
174
- #### 1. Leitura do PRD e Verificação do Tech Direction
175
- Leia o PRD aprovado e pesquise o codebase. Verifique se existe o arquivo `tech_direction.md` na pasta da feature.
176
-
177
- **Se existe tech_direction.md**, apresente:
178
- > "Li o PRD aprovado. Entendi que o objetivo é [resumo]. Encontrei o tech_direction.md com os seguintes direcionamentos: [lista dos pontos]. Vou considerar essas decisões como ponto de partida. Algum ponto que eu deva ajustar antes de seguir?"
179
-
180
- **Se NÃO existe tech_direction.md**, apresente:
181
- > "Li o PRD aprovado. Entendi que o objetivo é [resumo]. Não encontrei tech_direction.md — vou iniciar as perguntas técnicas."
182
-
183
- **Se há conflito entre tech_direction e codebase**, levante antes de prosseguir:
184
- > "O tech_direction define [X], porém o projeto atualmente usa [Y] para [motivo]. Qual abordagem seguir?"
185
-
186
- #### 2. Arquitetura da Solução
187
- Pergunte sobre a abordagem arquitetural. Oferecer opções quando houver caminhos possíveis:
188
- > "Para a arquitetura, identifiquei [contexto do codebase]. Sugiro [opção A] ou [opção B]. Qual prefere?"
189
-
190
- #### 3. Estruturas de Dados
191
- Pergunte sobre entidades, modelos e estruturas de banco:
192
- > "Para as estruturas de dados, preciso definir [lista de entidades]. Há campos ou regras específicas que devo considerar?"
193
-
194
- #### 4. Regras Técnicas de Negócio
195
- Pergunte sobre mapeamento de regras do PRD para implementação:
196
- > "A regra [X do PRD] — qual abordagem técnica prefere? [opção A] ou [opção B]?"
197
-
198
- #### 5. Fluxos Técnicos
199
- Pergunte sobre fluxos e tratamento de erros:
200
- > "Para o fluxo principal, há algum comportamento específico de erro ou caso alternativo que devo cobrir além do PRD?"
201
-
202
- #### 6. APIs / Endpoints
203
- Pergunte sobre detalhes de API que não ficaram claros:
204
- > "Os endpoints serão [lista]. Há algum ajuste de payload, autenticação ou formato de resposta?"
205
-
206
- #### 7. Estratégia de Testes
207
- A seção 14 é preenchida pelo **comando orquestrador** (`/sdd:generate-spec-tech`) que controla a delegação ao subagente QA. Siga as instruções do comando para esta etapa — você NÃO deve delegar diretamente.
208
-
209
- #### 8. Geração e Salvamento
210
- Após coletar todas as decisões:
211
- 1. Gere o SPEC_TECH completo (todas as 16 seções) usando as respostas coletadas
212
- 2. Preencha a seção 15 (Arquivos Envolvidos) baseado na pesquisa do codebase
213
- 3. **Salve o arquivo** em `docs/[nome-feature]/vN/spec_tech.md`
214
- 4. Apresente ao usuário para validação final
215
-
216
- ### Regras do Processo
217
-
218
- - Faça **apenas uma pergunta por vez** — aguarde a resposta antes de avançar
219
- - Perguntas são para **coletar decisões**, não para pedir aprovação de seções
220
- - Se o usuário já forneceu informação suficiente sobre um tópico, **pule a pergunta e avance**
221
- - Se algo não ficou claro, **PERGUNTE** — nunca deduza
222
- - Oferecer **2-4 opções técnicas** quando houver diferentes caminhos
223
- - Se o usuário fornecer informações extras, reutilize para seções futuras
224
- - **NÃO peça "concorda?" ou "valida?" entre perguntas** — use a resposta e siga adiante
225
-
226
- ---
227
-
228
- ## Guardrails (Invioláveis)
229
-
230
- ### DEVE
231
-
232
- 1. Fazer **UMA pergunta por vez** — nunca bombardeie o usuário
233
- 2. **Usar respostas para alimentar o SPEC** — cada resposta preenche a seção correspondente e avança sem pedir aprovação
234
- 3. **Pesquisar o projeto** antes de propor qualquer solução (regras, camadas, código existente)
235
- 4. **SEMPRE salvar o arquivo físico** ANTES de apresentar ao usuário
236
- 5. Preencher o **template COMPLETO** com todas as 16 seções
237
- 6. Usar **`AskUserQuestion`** no Claude Code para coletar decisões técnicas do usuário
238
- 7. **Mapear TODAS as user stories** do PRD para definições técnicas (seção 5.1)
239
- 8. **Listar TODOS os arquivos** envolvidos (seção 15)
240
- 9. **A seção 14 (Testes)** é controlada pelo comando orquestrador — siga as instruções do comando para delegação ao subagente QA
241
- 10. **Verificar tech_direction.md** na pasta da feature — se existir, usar como ponto de partida, validar contra codebase, levantar conflitos
242
- 11. **Validação única no final** — salvar o arquivo e apresentar o SPEC_TECH completo para o usuário validar de uma vez
243
-
244
- ### NÃO DEVE
245
-
246
- 1. **NUNCA** peça aprovação ou "concorda?" entre perguntas — perguntas são para coletar decisões, não para validar seções
247
- 2. **NUNCA** invente informações ou deduza escopo
248
- 3. **NUNCA** repita conteúdo do PRD — apenas traduza em engenharia
249
- 4. **NUNCA** inicie automaticamente a próxima etapa (TASK PLAN)
250
- 5. **NUNCA** sugira executar o próximo comando do framework
251
- 6. **NUNCA** proponha soluções que conflitem com a arquitetura existente do projeto
252
- 7. **NUNCA** misture requisitos de produto (O QUE) com solução técnica (COMO)
253
- 8. **NUNCA** escreva textos genéricos ou vagos — seja específico e técnico
254
- 9. **NUNCA** pule seções do template
255
- 10. **NUNCA** ignore o tech_direction.md quando existir — se houver conflito com o codebase, pergunte em vez de descartar
256
-
257
- ---
258
-
259
- ## Template Oficial do SPEC_TECH
260
-
261
- Toda especificação técnica DEVE seguir o template oficial com todas as 16 seções.
262
-
263
- Melhorias sobre a versão anterior:
264
- - **Seção 5.1** — Mapeamento explícito de User Stories para Definições Técnicas (garante rastreabilidade PRD -> SPEC)
265
- - **Seção 14** — Estratégia de testes expandida com 4 subseções (unitário, integração, e2e, casos de erro)
266
- - **Seção 15** — Arquivos envolvidos divididos em 3 subseções (criar, modificar, referência — economiza tokens e scans)
267
- - **Seção 16** — Checklist final expandido com validações específicas das novas seções
268
-
269
- O template completo está em: [spec_tech_template.md](templates/spec_tech_template.md)
270
-
271
- ---
272
-
273
- ## Salvar Arquivo (OBRIGATÓRIO)
274
-
275
- **ANTES de apresentar o SPEC_TECH ao usuário**, você DEVE:
276
-
277
- 1. **Identificar o nome da feature** a partir do PRD (kebab-case, letras minúsculas, sem espaços)
278
- 2. **Criar diretório** se não existir: `docs/[nome-feature]/vN/`
279
- 3. **Remover todos os comentários `<!-- LLM-ONLY: ... -->`** do conteúdo antes de salvar — são instruções internas do template e NÃO devem aparecer no arquivo gerado
280
- 4. **Salvar o arquivo físico** em: `docs/[nome-feature]/vN/spec_tech.md`
281
- 5. **Confirmar** que o arquivo foi criado com sucesso
282
-
283
- ---
284
-
285
- ## Saída Esperada
286
-
287
- Após salvar o arquivo físico:
288
-
289
- ```
290
- Arquivo salvo em: docs/[nome-feature]/vN/spec_tech.md
291
-
292
- Essa especificação técnica está aprovada? (sim/não)
293
- ```
294
-
295
- **IMPORTANTE:**
296
- - NÃO inicie a geração do TASK PLAN automaticamente
297
- - NÃO sugira executar o próximo comando do framework
298
- - Apenas aguarde a confirmação do usuário e encerre
299
-
300
- ---
301
-
302
- ## Entrada
303
-
304
- $ARGUMENTS