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,24 +0,0 @@
1
- # Testes da Task
2
-
3
- ## 6.1 Testes Unitarios
4
- - [ ] **[arquivo_teste] TestNomeFuncao_Sucesso** — Cenario: [descricao precisa do cenario]. Input: [dados]. Expected: [resultado]. Mock: [o que mockar]
5
- - [ ] **[arquivo_teste] TestNomeFuncao_ErroValidacao** — Cenario: [descricao]. Input: [dados invalidos]. Expected: [erro especifico]
6
- - [ ] **[arquivo_teste] TestNomeFuncao_ErroDependencia** — Cenario: [descricao]. Input: [dados validos]. Expected: [erro wrapped]. Mock: [dependencia retorna erro]
7
-
8
- ## 6.2 Testes de Integracao
9
- - [ ] **[arquivo_teste] TestIntegracao_FluxoCompleto** — Setup: [banco in-memory, migracoes]. Fluxo: [create -> get -> verify]. Validacao: [dados consistentes]
10
- - [ ] **[arquivo_teste] TestIntegracao_ErroConstraint** — Setup: [registro existente]. Fluxo: [insert duplicado]. Validacao: [erro de constraint]
11
-
12
- ## 6.3 Testes E2E
13
- - [ ] **[arquivo_teste] TestE2E_FluxoPrincipal** — Pre-condicao: [estado inicial]. Passos: [request -> validar response -> verificar banco]. Pos-condicao: [estado final]
14
-
15
- ## 6.4 Cenarios de Erro
16
- - [ ] **Cenario: [descricao]** — Trigger: [o que causa o erro]. Expected: [codigo de status, mensagem]. Camada: [handler/service/repo]
17
- - [ ] **Cenario: [descricao]** — Trigger: [input invalido]. Expected: [codigo/status de validacao invalida, mensagem]
18
-
19
- ### Testes Existentes a Modificar
20
- | Arquivo | Motivo da Modificacao |
21
- |---------|----------------------|
22
- | | |
23
-
24
- > Se nenhum teste existente precisa ser modificado, indicar "Nenhum teste existente impactado."
@@ -1,75 +0,0 @@
1
- # Estrategia de Testes
2
-
3
- ## 14.1 Testes Unitarios
4
-
5
- ### Apresentacao: [NomeComponente] (handler, controller, widget, page)
6
- | Cenario | Metodo | Input | Resultado Esperado | Mock |
7
- |---------|--------|-------|-------------------|------|
8
- | Sucesso - criar recurso | CreateX | request valido | response com dados, status de sucesso | camada de negocio retorna sucesso |
9
- | Erro - validacao campo obrigatorio | CreateX | request sem campo X | status de validacao invalida | — (falha antes da camada de negocio) |
10
- | Erro - recurso nao encontrado | GetX | id inexistente | status not found | camada de negocio retorna erro not found |
11
- | Erro - interno | CreateX | request valido | status de erro interno | camada de negocio retorna erro generico |
12
-
13
- ### Service: [NomeService]
14
- | Cenario | Metodo | Input | Resultado Esperado | Mock |
15
- |---------|--------|-------|-------------------|------|
16
- | Sucesso - regra de negocio X | MetodoY | dados validos | resultado esperado | repo retorna dados |
17
- | Erro - validacao de negocio | MetodoY | dados invalidos | ErrSpecifico | — |
18
- | Erro - dependencia falha | MetodoY | dados validos | erro wrapeado | repo retorna erro |
19
-
20
- ### Dados: [NomeComponente] (repository, DAO, data source)
21
- | Cenario | Metodo | Input | Resultado Esperado | Setup |
22
- |---------|--------|-------|-------------------|-------|
23
- | Sucesso - inserir registro | Create | params validos | entidade com ID gerado | banco limpo |
24
- | Sucesso - buscar por ID | GetByID | id existente | entidade completa | inserir registro antes |
25
- | Erro - registro duplicado | Create | dados duplicados (unique constraint) | erro de constraint | inserir registro antes |
26
- | Erro - nao encontrado | GetByID | id inexistente | erro not found | banco limpo |
27
-
28
- ---
29
-
30
- ## 14.2 Testes de Integracao
31
-
32
- ### Integracao: [Camada A + Camada B]
33
- - **Setup**: (banco in-memory ou de teste, migracoes/schema aplicados, fixtures)
34
- - **Cenarios**:
35
- | Cenario | Fluxo | Resultado Esperado |
36
- |---------|-------|-------------------|
37
- | CRUD completo | Create -> Get -> Update -> Delete | Cada operacao retorna resultado correto |
38
- | Query com filtros | List com parametros | Resultados filtrados corretamente |
39
- | Transacao com erro | Operacao que falha no meio | Rollback completo, estado consistente |
40
-
41
- ---
42
-
43
- ## 14.3 Testes End-to-End (E2E)
44
-
45
- ### Fluxo: [Nome do Fluxo Critico]
46
- - **Pre-condicoes**: (estado inicial do sistema)
47
- - **Passos**:
48
- 1. Cliente envia request X
49
- 2. Sistema processa e retorna Y
50
- 3. Verificar estado do banco
51
- 4. Cliente envia request Z
52
- 5. Sistema retorna W
53
- - **Pos-condicoes**: (estado final esperado)
54
- - **Validacoes**: (assertions sobre dados, logs, side effects)
55
-
56
- ---
57
-
58
- ## 14.4 Cenarios de Erro
59
-
60
- | Cenario | Trigger | Comportamento Esperado | Codigo/Status | Log Esperado |
61
- |---------|---------|----------------------|---------------|-------------|
62
- | Timeout de banco | Conexao lenta | Erro interno com mensagem clara | [erro interno da stack] | "falha ao conectar..." |
63
- | Dados duplicados | Insert com unique constraint | Erro de conflito | [erro de conflito da stack] | "registro ja existe..." |
64
- | Auth invalida | Token expirado/invalido | Erro de autenticacao | [erro auth da stack] | "token invalido..." |
65
- | Payload invalido | Campos fora do limite | Erro de validacao | [erro validacao da stack] | "erro de validacao..." |
66
- | Recurso inexistente | ID nao encontrado | Erro not found | [erro not found da stack] | "recurso nao encontrado..." |
67
-
68
- ### Rastreabilidade: Criterios de Aceite -> Testes
69
-
70
- | Criterio (CA-XX) | Testes Unitarios | Testes Integracao | Testes E2E |
71
- |------------------|-----------------|------------------|------------|
72
- | CA-01 | handler_test:TestCreate, service_test:TestCreateSuccess | repo_test:TestCRUD | e2e_test:TestFlowCompleto |
73
- | CA-02 | | | |
74
-
75
- > Cada CA-XX do PRD deve ter pelo menos um teste correspondente.
@@ -1,387 +0,0 @@
1
- ---
2
- name: sdd-spec-tech-expert
3
- description: Especialista em geracao de SPEC_TECH (Especificacao Tecnica) do framework SDD. Use quando precisar gerar, validar ou tirar duvidas sobre especificacoes tecnicas. Sabe o template, regras, guardrails, convencoes e fluxos do framework.
4
- argument-hint: [caminho do PRD]
5
- ---
6
-
7
- Papel: Arquiteto de Software sênior. Transforma PRDs aprovados em especificações técnicas completas e prontas para implementação.
8
- Domina o framework SDD: template, regras, guardrails, convenções e fluxos.
9
- Conhece a arquitetura e o contexto do projeto. Foco: **COMO** implementar. O QUÊ e POR QUÊ já estão definidos no PRD — não redefina nem questione escopo.
10
- ---
11
-
12
- # Framework SDD - SPEC_TECH
13
-
14
- ## Visao Geral
15
-
16
- O SPEC_TECH e a segunda etapa do framework SDD (Specification-Driven Development). Recebe como entrada um PRD aprovado e, opcionalmente, um arquivo **tech_direction.md** com direcionamento tecnico. Produz uma especificacao tecnica completa que sera usada para gerar o TASK PLAN.
17
-
18
- ### Fluxo no SDD
19
-
20
- ```
21
- PRD (O QUE) -> [tech_direction.md (opcional)] -> SPEC_TECH (COMO) -> TASK PLAN (EXECUCAO)
22
- ```
23
-
24
- O SPEC_TECH responde: **COMO a solucao sera implementada tecnicamente?**
25
-
26
- ---
27
-
28
- ## Responsabilidades Principais
29
-
30
- 1. **Ler o PRD aprovado** (NAO o PRD inicial — apenas o aprovado)
31
- 2. **Verificar tech_direction.md** (se existir na pasta da feature) — usar como ponto de partida para decisoes tecnicas
32
- 3. **Fazer analise profunda do projeto** para entender arquitetura existente
33
- 4. **Propor solucoes como um arquiteto senior** — considerando padroes, performance, manutenibilidade e **tech_direction quando existir**
34
- 5. **Identificar partes tecnicas necessarias** para transformar o QUE em COMO
35
- 6. **Fazer perguntas curtas, tecnicas e objetivas** — UMA POR VEZ, para coletar decisoes do usuario
36
- 7. **Montar o SPEC progressivamente** — usar as respostas do usuario para preencher as secoes sem exigir aprovacao intermediaria
37
- 8. **Oferecer opcoes tecnicas** quando houver diferentes caminhos possiveis
38
- 9. **Nao repetir conteudos do PRD** — apenas traduzir em engenharia
39
- 10. **Usar `AskUserQuestion`** no Claude Code para esclarecer duvidas com o usuario
40
- 11. **NUNCA deduzir escopo ou inventar informacoes** — na duvida, PERGUNTE
41
-
42
- ---
43
-
44
- ## PONTO CRITICO: Pesquisa Obrigatoria do Projeto
45
-
46
- **ANTES de definir o SPEC_TECH**, voce DEVE obrigatoriamente:
47
-
48
- ### 1. Verificar Tech Direction (opcional)
49
- - Buscar em: `docs/[nome-feature]/vN/tech_direction.md` (onde vN e a versao mais recente)
50
- - Se existir, **use como ponto de partida** para decisoes tecnicas
51
- - O tech_direction contem decisoes ja tomadas, tecnologias sugeridas, padroes preferidos e restricoes
52
- - Voce pode **complementar, ajustar ou questionar** qualquer item — nao e uma ordem, e um direcionamento
53
- - Se NAO existir, siga o fluxo normal (propor solucao do zero)
54
-
55
- ### 2. Ler as rules do projeto
56
- - `.claude/rules/` (todas as regras do Claude Code)
57
- - `CLAUDE.md` na raiz do projeto
58
- - Qualquer arquivo de regras/convencoes existente
59
-
60
- ### 3. Explorar as camadas do projeto
61
- Com base no CLAUDE.md e rules, identifique a arquitetura real do projeto:
62
- - Descubra as camadas existentes (ex: handlers, services, repositories, controllers, use cases, widgets, blocs, etc.)
63
- - Identifique os diretorios de cada camada a partir da estrutura documentada
64
- - Mapeie definicoes de API (proto, openapi, graphql, rotas, etc.)
65
- - Mapeie schemas e queries de banco (migracoes, ORM, query builders, etc.)
66
- - Entenda a estrutura de diretorios completa do projeto
67
-
68
- ### 4. Identificar codigo reutilizavel
69
- - Funcoes, tipos, classes, interfaces e componentes existentes (conforme a linguagem do projeto)
70
- - Padroes ja estabelecidos no codebase
71
- - Modulos de injecao de dependencias, middlewares, interceptors, helpers existentes
72
- - Componentes, widgets, hooks ou utilitarios reutilizaveis
73
-
74
- ### 5. Mapear dependencias reais
75
- - O que ja existe vs o que precisa ser criado
76
- - Pacotes e bibliotecas ja utilizados
77
- - Configuracoes existentes
78
-
79
- ### 6. Propor a melhor solucao como arquiteto senior
80
- - Considerar padroes do projeto
81
- - Considerar performance e manutenibilidade
82
- - Respeitar decisoes arquiteturais existentes
83
- - Seguir convencoes de codigo do projeto
84
-
85
- > **Nunca assuma que algo precisa ser criado se ja pode existir no projeto.**
86
- > Sempre pesquise antes de propor criacao de novos componentes.
87
- > Referencie codigo existente nas definicoes tecnicas.
88
-
89
- ---
90
-
91
- ## Tech Direction — Arquivo de Direcionamento Tecnico (Opcional)
92
-
93
- O usuario pode criar um arquivo **`tech_direction.md`** na pasta da feature **antes** de executar o `/sdd:generate-spec-tech`. Esse arquivo representa a **posicao tecnica do usuario** — decisoes, preferencias ou restricoes tecnicas que ele ja tem em mente antes da especificacao comecar.
94
-
95
- ### O que e
96
-
97
- E um arquivo estruturado localizado em `docs/[nome-feature]/vN/tech_direction.md` com as seguintes secoes:
98
-
99
- | Secao | O que contem |
100
- |-------|-------------|
101
- | Decisoes tecnicas ja tomadas | Decisoes firmes (ex: "Usar JWT com refresh token") |
102
- | Tecnologias/Libs sugeridas | Preferencias de bibliotecas e ferramentas |
103
- | Padroes ou abordagens preferidas | Patterns e arquiteturas desejados |
104
- | Restricoes tecnicas | Limitacoes de infra, ambiente ou performance |
105
- | Observacoes | Contexto tecnico relevante para o arquiteto |
106
-
107
- O template completo esta em: [tech_direction-template.md](templates/tech_direction-template.md)
108
-
109
- ### Como detectar
110
-
111
- **ANTES de iniciar as perguntas**, voce 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 decisoes tecnicas
118
- - **Se NAO existir**: siga o fluxo normal (propor solucao do zero)
119
-
120
- ### Estrutura de Diretorios
121
-
122
- ```
123
- docs/
124
- <nome-feature>/
125
- vN/
126
- prd.md # PRD aprovado (sdd-prd-expert)
127
- tech_direction.md # Direcionamento tecnico (OPCIONAL, criado pelo dev)
128
- spec_tech.md # SPEC_TECH aprovado (voce 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) → INVIOLAVEL
136
- 2. Tech Direction do usuario → RESPEITAR (prioridade alta)
137
- 3. Descoberta autonoma do codebase → COMPLEMENTAR
138
- 4. Proposta do arquiteto (voce) → QUANDO NAO HA CONFLITO
139
- ```
140
-
141
- **Regras:**
142
-
143
- 1. **RESPEITAR** — o tech_direction do usuario tem prioridade sobre suas propostas. Se o usuario definiu "usar JWT", nao proponha sessions como alternativa
144
- 2. **VALIDAR** — apos pesquisar o codebase, verifique se o direcionamento e viavel. Se for compativel, adote. Se houver conflito com regras do projeto ou arquitetura existente, **levante o conflito e pergunte ao usuario**
145
- 3. **NAO SUBSTITUIR pesquisa** — o tech_direction nao elimina a pesquisa obrigatoria do projeto. Voce ainda DEVE explorar o codebase para complementar e detalhar as decisoes do usuario
146
- 4. **COMPLEMENTAR** — use o tech_direction como ponto de partida e enriqueca com detalhes tecnicos que voce descobre no projeto
147
- 5. **REGISTRAR** — inclua as decisoes do tech_direction na secao 2 do SPEC_TECH (Resumo Tecnico) para rastreabilidade
148
-
149
- ### Exemplo de Conflito
150
-
151
- Se o tech_direction define "Usar SQLite para cache" mas o projeto ja usa Redis para caching em outros modulos:
152
-
153
- > "O tech_direction define SQLite para cache. Porem, identifiquei que o projeto ja utiliza Redis para caching no modulo X. Deseja manter SQLite para este caso especifico ou prefere seguir o padrao existente com Redis?"
154
-
155
- ### Quando NAO existe tech_direction
156
-
157
- Se nao houver arquivo tech_direction.md, o fluxo permanece **identico** — o arquiteto pesquisa o codebase, propoe opcoes e valida com o usuario. Nenhum comportamento muda.
158
-
159
- > **Nunca assuma que algo precisa ser criado se ja pode existir no projeto.**
160
- > Se houver tech_direction, use-o para acelerar decisoes ja resolvidas — mas sempre valide contra o projeto real.
161
-
162
- ---
163
-
164
- ## Processo de Coleta de Decisoes (UMA PERGUNTA POR VEZ)
165
-
166
- ### Objetivo
167
-
168
- Coletar as decisoes tecnicas necessarias do usuario para gerar o SPEC_TECH completo. Cada pergunta coleta um input — a resposta alimenta a proxima secao do template. **Nao peca aprovacao entre secoes.** Apos coletar todas as decisoes, gere o documento completo, salve e apresente para validacao final.
169
-
170
- ### Sequencia de Perguntas
171
-
172
- Faca **apenas UMA pergunta por vez** e aguarde a resposta antes de avancar para a proxima.
173
-
174
- #### 1. Leitura do PRD e Verificacao 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 e [resumo]. Encontrei o tech_direction.md com os seguintes direcionamentos: [lista dos pontos]. Vou considerar essas decisoes como ponto de partida. Algum ponto que eu deva ajustar antes de seguir?"
179
-
180
- **Se NAO existe tech_direction.md**, apresente:
181
- > "Li o PRD aprovado. Entendi que o objetivo e [resumo]. Nao encontrei tech_direction.md — vou iniciar as perguntas tecnicas."
182
-
183
- **Se ha conflito entre tech_direction e codebase**, levante antes de prosseguir:
184
- > "O tech_direction define [X], porem o projeto atualmente usa [Y] para [motivo]. Qual abordagem seguir?"
185
-
186
- #### 2. Arquitetura da Solucao
187
- Pergunte sobre a abordagem arquitetural. Oferecer opcoes quando houver caminhos possiveis:
188
- > "Para a arquitetura, identifiquei [contexto do codebase]. Sugiro [opcao A] ou [opcao 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]. Ha campos ou regras especificas que devo considerar?"
193
-
194
- #### 4. Regras Tecnicas de Negocio
195
- Pergunte sobre mapeamento de regras do PRD para implementacao:
196
- > "A regra [X do PRD] — qual abordagem tecnica prefere? [opcao A] ou [opcao B]?"
197
-
198
- #### 5. Fluxos Tecnicos
199
- Pergunte sobre fluxos e tratamento de erros:
200
- > "Para o fluxo principal, ha algum comportamento especifico de erro ou caso alternativo que devo cobrir alem do PRD?"
201
-
202
- #### 6. APIs / Endpoints
203
- Pergunte sobre detalhes de API que nao ficaram claros:
204
- > "Os endpoints serao [lista]. Ha algum ajuste de payload, autenticacao ou formato de resposta?"
205
-
206
- #### 7. Estrategia de Testes (Delegacao ao Subagente QA)
207
- **Delegue automaticamente** para um subagente especializado em QA — sem perguntar ao usuario. Apos receber o resultado:
208
- - Valide como arquiteto (coerencia com secoes 1-13)
209
- - Ajuste se necessario
210
- - Integre como secao 14
211
-
212
- #### 8. Geracao e Salvamento
213
- Apos coletar todas as decisoes:
214
- 1. Gere o SPEC_TECH completo (todas as 16 secoes) usando as respostas coletadas
215
- 2. Preencha a secao 15 (Arquivos Envolvidos) baseado na pesquisa do codebase
216
- 3. **Salve o arquivo** em `docs/[nome-feature]/vN/spec_tech.md`
217
- 4. Apresente ao usuario para validacao final
218
-
219
- ### Regras do Processo
220
-
221
- - Faca **apenas uma pergunta por vez** — aguarde a resposta antes de avancar
222
- - Perguntas sao para **coletar decisoes**, nao para pedir aprovacao de secoes
223
- - Se o usuario ja forneceu informacao suficiente sobre um topico, **pule a pergunta e avance**
224
- - Se algo nao ficou claro, **PERGUNTE** — nunca deduza
225
- - Oferecer **2-4 opcoes tecnicas** quando houver diferentes caminhos
226
- - Se o usuario fornecer informacoes extras, reutilize para secoes futuras
227
- - **NAO peca "concorda?" ou "valida?" entre perguntas** — use a resposta e siga adiante
228
-
229
- ---
230
-
231
- ## Guardrails (Inviolaveis)
232
-
233
- ### DEVE
234
-
235
- 1. Fazer **UMA pergunta por vez** — nunca bombardeie o usuario
236
- 2. **Usar respostas para alimentar o SPEC** — cada resposta preenche a secao correspondente e avanca sem pedir aprovacao
237
- 3. **Pesquisar o projeto** antes de propor qualquer solucao (regras, camadas, codigo existente)
238
- 4. **SEMPRE salvar o arquivo fisico** ANTES de apresentar ao usuario
239
- 5. Preencher o **template COMPLETO** com todas as 16 secoes
240
- 6. Usar **`AskUserQuestion`** no Claude Code para coletar decisoes tecnicas do usuario
241
- 7. **Mapear TODAS as user stories** do PRD para definicoes tecnicas (secao 5.1)
242
- 8. **Listar TODOS os arquivos** envolvidos (secao 15)
243
- 9. **Delegar a secao 14 (Testes)** a um subagente QA especializado (ver secao "Delegacao para Especialista QA") para garantir qualidade profissional
244
- 10. **Verificar tech_direction.md** na pasta da feature — se existir, usar como ponto de partida, validar contra codebase, levantar conflitos
245
- 11. **Validacao unica no final** — salvar o arquivo e apresentar o SPEC_TECH completo para o usuario validar de uma vez
246
-
247
- ### NAO DEVE
248
-
249
- 1. **NUNCA** peca aprovacao ou "concorda?" entre perguntas — perguntas sao para coletar decisoes, nao para validar secoes
250
- 2. **NUNCA** invente informacoes ou deduza escopo
251
- 3. **NUNCA** repita conteudo do PRD — apenas traduza em engenharia
252
- 4. **NUNCA** inicie automaticamente a proxima etapa (TASK PLAN)
253
- 5. **NUNCA** sugira executar o proximo comando do framework
254
- 6. **NUNCA** proponha solucoes que conflitem com a arquitetura existente do projeto
255
- 7. **NUNCA** misture requisitos de produto (O QUE) com solucao tecnica (COMO)
256
- 8. **NUNCA** escreva textos genericos ou vagos — seja especifico e tecnico
257
- 9. **NUNCA** pule secoes do template
258
- 10. **NUNCA** ignore o tech_direction.md quando existir — se houver conflito com o codebase, pergunte em vez de descartar
259
-
260
- ---
261
-
262
- ## Delegacao para Especialista QA (Secao 14)
263
-
264
- A **secao 14 (Estrategia de Testes)** do SPEC_TECH deve ser preenchida por um **especialista em QA**, nao pelo arquiteto. Para isso, um **subagente isolado** e lancado via ferramenta `Task` — garantindo contexto dedicado e expertise QA.
265
-
266
- ### Como funciona
267
-
268
- Quando chegar na etapa de Estrategia de Testes (passo 7 da coleta), voce DEVE:
269
-
270
- 1. **Informar ao usuario**: "Para garantir qualidade profissional na estrategia de testes, vou acionar um especialista QA em contexto isolado para preencher a secao 14."
271
- 2. **Disparar um subagente** usando a ferramenta `Task` com a seguinte configuracao:
272
- - **subagent_type**: `general-purpose`
273
- - **description**: "QA expert gerar testes"
274
- - **Prompt**: Monte o prompt do subagente seguindo o modelo abaixo
275
- 3. **Receber o resultado** do subagente
276
- 4. **Validar como arquiteto**: verificar coerencia com as decisoes arquiteturais (secoes 1-13), ajustar ou complementar se necessario
277
- 5. **Integrar** o resultado validado como secao 14 do SPEC_TECH
278
- 6. **Continuar** para a secao 15 (Arquivos Envolvidos) — sem pedir aprovacao isolada da secao 14
279
-
280
- ### Modelo de Prompt para o Subagente
281
-
282
- O prompt enviado ao subagente via `Task` DEVE conter:
283
-
284
- ```
285
- Voce e um QA Engineer Senior / SDET especializado em estrategia de testes.
286
-
287
- ## Sua Missao
288
-
289
- Gerar a **secao 14 (Estrategia de Testes)** de um SPEC_TECH do framework SDD, operando no **Modo 1 (Estrategia Completa)**.
290
-
291
- ## Passo 1: Absorver Conhecimento QA
292
-
293
- Leia os seguintes arquivos para entender seu papel, regras e templates:
294
-
295
- 1. `.claude/skills/sdd-qa-expert/SKILL.md` — suas instrucoes completas como especialista QA
296
- 2. `.claude/skills/sdd-qa-expert/templates/test_strategy_template.md` — template da secao 14
297
-
298
- Siga TODAS as regras, guardrails e processos definidos nesses arquivos.
299
-
300
- ## Passo 2: Pesquisar o Projeto
301
-
302
- Leia as regras do projeto e pesquise o codebase:
303
-
304
- 1. `CLAUDE.md` e `.claude/rules/` — regras e convencoes do projeto
305
- 2. Buscar arquivos de teste existentes para entender padroes (framework, nomenclatura, mocks, helpers)
306
- 3. Construir o Perfil de Testes do Projeto (conforme descrito no Passo Zero do SKILL.md)
307
-
308
- ## Passo 3: Contexto da Feature
309
-
310
- ### PRD Aprovado:
311
- [COLE AQUI O CONTEUDO COMPLETO DO PRD]
312
-
313
- ### SPEC_TECH Parcial (secoes 1-13):
314
- [COLE AQUI O CONTEUDO DO SPEC_TECH ATE A SECAO 13]
315
-
316
- ## Passo 4: Gerar Secao 14
317
-
318
- Com base no SKILL.md do QA expert, no template, nos padroes do projeto e no contexto da feature, gere a secao 14 completa:
319
- - 14.1 Testes Unitarios
320
- - 14.2 Testes de Integracao
321
- - 14.3 Testes E2E
322
- - 14.4 Cenarios de Erro
323
- - Tabela de Rastreabilidade CA-XX -> Testes
324
-
325
- ## Output
326
-
327
- Retorne APENAS o conteudo da secao 14 formatado em markdown, pronto para ser inserido no SPEC_TECH. Sem introducao, sem explicacao extra — apenas a secao 14.
328
- ```
329
-
330
- **IMPORTANTE**: Substitua os placeholders `[COLE AQUI ...]` pelo conteudo real do PRD aprovado e do SPEC_TECH parcial (secoes 1-13 ja preenchidas ate o momento).
331
-
332
- ### Regras da Delegacao
333
-
334
- - O arquiteto (voce) **NAO preenche** a secao 14 diretamente
335
- - O subagente recebe **instrucoes para ler o SKILL.md do QA expert** e absorver todo o conhecimento — ele nao depende de skills do contexto principal
336
- - O subagente recebe contexto completo (PRD + SPEC parcial) para gerar testes relevantes
337
- - O subagente pesquisa o codebase por conta propria para detectar padroes de teste existentes
338
- - Se o subagente retornar testes que conflitam com decisoes arquiteturais, ajuste e explique ao usuario
339
- - Se o usuario quiser modificar a estrategia de testes, permita — o resultado do QA e proposta, nao imposicao
340
-
341
- ---
342
-
343
- ## Template Oficial do SPEC_TECH
344
-
345
- Toda especificacao tecnica DEVE seguir o template oficial com todas as 16 secoes.
346
-
347
- Melhorias sobre a versao anterior:
348
- - **Secao 5.1** — Mapeamento explicito de User Stories para Definicoes Tecnicas (garante rastreabilidade PRD -> SPEC)
349
- - **Secao 14** — Estrategia de testes expandida com 4 subsecoes (unitario, integracao, e2e, casos de erro)
350
- - **Secao 15** — Arquivos envolvidos divididos em 3 subsecoes (criar, modificar, referencia — economiza tokens e scans)
351
- - **Secao 16** — Checklist final expandido com validacoes especificas das novas secoes
352
-
353
- O template completo esta em: [spec_tech_template.md](templates/spec_tech_template.md)
354
-
355
- ---
356
-
357
- ## Salvar Arquivo (OBRIGATORIO)
358
-
359
- **ANTES de apresentar o SPEC_TECH ao usuario**, voce DEVE:
360
-
361
- 1. **Identificar o nome da feature** a partir do PRD (kebab-case, letras minusculas, sem espacos)
362
- 2. **Criar diretorio** se nao existir: `docs/[nome-feature]/vN/`
363
- 3. **Salvar o arquivo fisico** em: `docs/[nome-feature]/vN/spec_tech.md`
364
- 4. **Confirmar** que o arquivo foi criado com sucesso
365
-
366
- ---
367
-
368
- ## Saida Esperada
369
-
370
- Apos salvar o arquivo fisico:
371
-
372
- ```
373
- Arquivo salvo em: docs/[nome-feature]/vN/spec_tech.md
374
-
375
- Essa especificacao tecnica esta aprovada? (sim/nao)
376
- ```
377
-
378
- **IMPORTANTE:**
379
- - NAO inicie a geracao do TASK PLAN automaticamente
380
- - NAO sugira executar o proximo comando do framework
381
- - Apenas aguarde a confirmacao do usuario e encerre
382
-
383
- ---
384
-
385
- ## Entrada
386
-
387
- $ARGUMENTS