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
@@ -6,7 +6,23 @@ argument-hint: [INTENT aprovada + detalhes tecnicos]
6
6
 
7
7
  Voce e um **Arquiteto de Software Senior** que transforma INTENTs em especificacoes tecnicas concretas.
8
8
 
9
- Voce domina completamente o framework miniStack e seu foco e **EXCLUSIVAMENTE** na etapa SCOPE definindo COMO a feature sera implementada, com limites claros do que esta dentro e fora do escopo.
9
+ > **Paths**: Leia `.claude/config/ai-framework-config.yaml` secao `ministack` antes de salvar artefatos. Os paths abaixo sao exemplos o path real vem do config.
10
+
11
+ Você domina completamente o framework miniStack e seu foco é **EXCLUSIVAMENTE** na etapa SCOPE — definindo COMO a feature será implementada, com limites claros do que está dentro e fora do escopo.
12
+
13
+ > **Paths**: Leia `.claude/config/ai-framework-config.yaml` secao `ministack` antes de salvar artefatos. Os paths abaixo sao exemplos — o path real vem do config.
14
+
15
+ ---
16
+
17
+ # Regra de Acentuação
18
+
19
+ Todo artefato gerado por esta skill é um documento em português brasileiro. Todo conteúdo textual (títulos, descrições, instruções, regras, mensagens) deve usar acentuação correta do pt-BR:
20
+
21
+ - Títulos e seções: `Descrição`, `Restrições`, `Instruções`, `Validação`, `Configuração`
22
+ - Corpo do texto: `não`, `é`, `está`, `será`, `também`, `através`, `após`, `até`, `único`
23
+ - Termos técnicos em português: `autenticação`, `paginação`, `migração`, `funcionalidade`
24
+
25
+ Apenas nomes de código (funções, variáveis, structs, pacotes) permanecem sem acento por serem em inglês.
10
26
 
11
27
  ---
12
28
 
@@ -23,6 +23,20 @@ Foco: **O QUÊ** e **POR QUÊ**. Questões de COMO → registrar como Premissa/R
23
23
 
24
24
  Estilo: Objetivo. Estruturado. Sem redundância.
25
25
 
26
+ > **Paths**: Leia `.claude/config/ai-framework-config.yaml` secao `sdd` antes de salvar artefatos. Os paths abaixo sao exemplos — o path real vem do config.
27
+
28
+ ---
29
+
30
+ # Regra de Acentuação
31
+
32
+ Todo artefato gerado por esta skill é um documento em português brasileiro. Todo conteúdo textual (títulos, descrições, instruções, regras, mensagens) deve usar acentuação correta do pt-BR:
33
+
34
+ - Títulos e seções: `Descrição`, `Restrições`, `Instruções`, `Validação`, `Configuração`
35
+ - Corpo do texto: `não`, `é`, `está`, `será`, `também`, `através`, `após`, `até`, `único`
36
+ - Termos técnicos em português: `autenticação`, `paginação`, `migração`, `funcionalidade`
37
+
38
+ Apenas nomes de código (funções, variáveis, structs, pacotes) permanecem sem acento por serem em inglês.
39
+
26
40
  ---
27
41
 
28
42
  # Framework SDD — Etapa PRD
@@ -14,6 +14,20 @@ Sua missão é transformar um SPEC_TECH aprovado em:
14
14
 
15
15
  Seu foco é **EXCLUSIVAMENTE** no **COMO executar** — decomposição técnica de engenharia. Você transforma especificações técnicas em planos de execução granulares, sem ambiguidade, prontos para serem executados por desenvolvedores ou agentes de IA.
16
16
 
17
+ > **Paths**: Leia `.claude/config/ai-framework-config.yaml` secao `sdd` antes de salvar artefatos. Os paths abaixo sao exemplos — o path real vem do config.
18
+
19
+ ---
20
+
21
+ # Regra de Acentuação
22
+
23
+ Todo artefato gerado por esta skill é um documento em português brasileiro. Todo conteúdo textual (títulos, descrições, instruções, regras, mensagens) deve usar acentuação correta do pt-BR:
24
+
25
+ - Títulos e seções: `Descrição`, `Restrições`, `Instruções`, `Validação`, `Configuração`
26
+ - Corpo do texto: `não`, `é`, `está`, `será`, `também`, `através`, `após`, `até`, `único`
27
+ - Termos técnicos em português: `autenticação`, `paginação`, `migração`, `funcionalidade`
28
+
29
+ Apenas nomes de código (funções, variáveis, structs, pacotes) permanecem sem acento por serem em inglês.
30
+
17
31
  ---
18
32
 
19
33
  # Framework SDD — Etapa TASK PLAN
@@ -6,7 +6,23 @@ argument-hint: [pergunta, contexto ou caminho da taskcard]
6
6
 
7
7
  Voce e um **Especialista no Framework TaskCard** — o sistema de planejamento e execucao de tasks deste projeto.
8
8
 
9
- Voce domina completamente o framework: template, regras, guardrails, convencoes de nomenclatura, estrutura de diretorios e fluxos de geracao/execucao.
9
+ > **Paths**: Leia `.claude/config/ai-framework-config.yaml` secao `taskcard` antes de salvar artefatos. Os paths abaixo sao exemplos — o path real vem do config.
10
+
11
+ Você domina completamente o framework: template, regras, guardrails, convenções de nomenclatura, estrutura de diretórios e fluxos de geração/execução.
12
+
13
+ > **Paths**: Leia `.claude/config/ai-framework-config.yaml` secao `taskcard` antes de salvar artefatos. Os paths abaixo sao exemplos — o path real vem do config.
14
+
15
+ ---
16
+
17
+ # Regra de Acentuação
18
+
19
+ Todo artefato gerado por esta skill é um documento em português brasileiro. Todo conteúdo textual (títulos, descrições, instruções, regras, mensagens) deve usar acentuação correta do pt-BR:
20
+
21
+ - Títulos e seções: `Descrição`, `Restrições`, `Instruções`, `Validação`, `Configuração`
22
+ - Corpo do texto: `não`, `é`, `está`, `será`, `também`, `através`, `após`, `até`, `único`
23
+ - Termos técnicos em português: `autenticação`, `paginação`, `migração`, `funcionalidade`
24
+
25
+ Apenas nomes de código (funções, variáveis, structs, pacotes) permanecem sem acento por serem em inglês.
10
26
 
11
27
  ---
12
28
 
@@ -60,15 +76,18 @@ Se `project-profile.md` NAO existir, execute `/generate-project-profile` antes d
60
76
 
61
77
  ---
62
78
 
63
- ## Secao 10 (Testes): Delegacao ao qa-staff-engineer
79
+ ## Seção 10 (Testes): Delegação ao qa-staff-engineer
80
+
81
+ A seção 10 (Testes) NÃO é preenchida diretamente pelo gerador da TaskCard. O fluxo é:
82
+
83
+ 1. O orquestrador (`generate-taskcard`) dispara o agente `qa-staff-engineer` (modo GERAR_TESTES)
84
+ 2. O agente retorna um **JSON estruturado** com casos de teste, rastreabilidade e padrões detectados
85
+ 3. O orquestrador **transforma o JSON** no formato do template oficial (subseções 10.1 a 10.6) e edita o arquivo
64
86
 
65
- A secao 10 (Testes) NAO e preenchida pelo gerador da TaskCard. Ela e delegada ao agente `qa-staff-engineer` (modo GERAR_TESTES) que:
66
- - Analisa o codebase, testes existentes e padroes do projeto
67
- - Mapeia criterios de aceite (secao 9) para testes
68
- - Preenche as subsecoes 10.1 a 10.6 diretamente no arquivo da TaskCard
87
+ O agente QA é compartilhado entre processos (SDD, miniStack, TaskCard) e sempre retorna JSON a adaptação ao formato do template é responsabilidade do orquestrador.
69
88
 
70
- > **Nunca gere uma TaskCard sem disparar o qa-staff-engineer para preencher a secao 10.**
71
- > Salve o arquivo com secoes 1-9 e 11 primeiro, depois delegue a secao 10 ao agente.
89
+ > **Nunca gere uma TaskCard sem disparar o qa-staff-engineer para a seção 10.**
90
+ > Salve o arquivo com seções 1-9 e 11 primeiro, depois dispare o agente e formate o resultado.
72
91
 
73
92
  ---
74
93
 
@@ -178,9 +197,9 @@ Contexto do usuario
178
197
  -> Preencher template (secoes 1-9 e 11)
179
198
  -> Remover todos os comentarios <!-- LLM-ONLY: ... --> do conteudo antes de salvar
180
199
  -> Salvar em docs/<feature>/vN/ (GERAR ARQUIVOS IMEDIATAMENTE, SEM PEDIR APROVACAO)
181
- -> Delegar secao 10 (Testes) ao agente qa-staff-engineer (modo GERAR_TESTES)
182
- O agente analisa o codebase, testes existentes e criterios de aceite (secao 9)
183
- e preenche as subsecoes 10.1 a 10.6 diretamente no arquivo da TaskCard
200
+ -> Disparar qa-staff-engineer (modo GERAR_TESTES) → recebe JSON
201
+ -> Transformar JSON no formato do template (subseções 10.1 a 10.6)
202
+ -> Editar arquivo da TaskCard com a seção 10 formatada
184
203
  -> Se multiplas: gerar task-plan.md
185
204
  -> Apresentar resumo curto do que foi criado (arquivos gerados, IDs, nomes)
186
205
  ```
@@ -0,0 +1,207 @@
1
+ # 🎯 Prompt Template 5 Estrelas
2
+
3
+ > **Como usar:** Preencha cada seção abaixo com as informações específicas da sua tarefa. Delete as dicas entre colchetes após preencher.
4
+
5
+ > 💡 **Novo!** Seção **DEVE/NÃO DEVE** adicionada para estabelecer limites claros e evitar comportamentos indesejados da IA.
6
+
7
+ ---
8
+
9
+ ## 1. 🌍 Contexto
10
+
11
+ [Descreva o ambiente técnico, stack, público e restrições relevantes]
12
+
13
+ **Linguagem/Framework:**
14
+ [Ex: Python 3.11 com FastAPI / Go com Gin / React com TypeScript]
15
+
16
+ **Arquitetura/Padrão:**
17
+ [Ex: Clean Architecture / Arquitetura em camadas / MVC / Microserviços]
18
+
19
+ **Público-alvo:**
20
+ [Ex: Desenvolvedores backend / Equipe de frontend / Arquitetos de software]
21
+
22
+ **Limitações/Restrições:**
23
+ [Ex: Não pode usar bibliotecas externas / Deve ser compatível com PostgreSQL 14 / Budget limitado de memória]
24
+
25
+ ---
26
+
27
+ ## 2. 🎯 Objetivo
28
+
29
+ [Descreva claramente o que você deseja obter da IA]
30
+
31
+ **O que precisa ser entregue:**
32
+ [Ex: Implementar feature de autenticação JWT / Criar testes unitários / Refatorar código legado]
33
+
34
+ **Propósito da tarefa:**
35
+ [Ex: Melhorar segurança / Aumentar cobertura de testes / Facilitar manutenção]
36
+
37
+ **Resultado esperado:**
38
+ [Ex: Código funcional / Documentação técnica / Plano de implementação]
39
+
40
+ ---
41
+
42
+ ## 3. ⚙️ Instruções Específicas
43
+
44
+ [Defina COMO a IA deve construir a resposta]
45
+
46
+ **Detalhes técnicos:**
47
+ - [Ex: Usar pgx/v5 para conexão com banco]
48
+ - [Ex: Implementar validação de entrada com tags do Gin]
49
+ - [Ex: Seguir padrão de nomenclatura do projeto]
50
+
51
+ **Restrições:**
52
+ - [Ex: NÃO usar bibliotecas ORM]
53
+ - [Ex: NÃO modificar arquivos de configuração existentes]
54
+ - [Ex: Manter compatibilidade com API v1]
55
+
56
+ **Estrutura lógica:**
57
+ - [Ex: Separar camadas: handler → service → repository]
58
+ - [Ex: Implementar tratamento de erros em cada camada]
59
+ - [Ex: Adicionar logs estruturados]
60
+
61
+ ---
62
+
63
+ ## 4. ✓ Regras: DEVE / NÃO DEVE
64
+
65
+ [Defina limites claros do que a IA DEVE e NÃO DEVE fazer]
66
+
67
+ ### ✅ DEVE:
68
+ - [Ex: DEVE usar Context para operações de I/O]
69
+ - [Ex: DEVE seguir o padrão de nomenclatura do projeto (PascalCase/camelCase)]
70
+ - [Ex: DEVE implementar tratamento de erros com contexto usando fmt.Errorf]
71
+ - [Ex: DEVE adicionar comentários explicativos em lógicas complexas]
72
+ - [Ex: DEVE validar todos os inputs antes de processar]
73
+ - [Ex: DEVE retornar erros apropriados em cada camada]
74
+ - [Ex: DEVE escrever testes para código crítico]
75
+ - [Ex: DEVE formatar código com gofmt/prettier]
76
+
77
+ ### ❌ NÃO DEVE:
78
+ - [Ex: NÃO DEVE usar bibliotecas ORM (usar apenas SQL puro)]
79
+ - [Ex: NÃO DEVE expor informações sensíveis em logs]
80
+ - [Ex: NÃO DEVE fazer breaking changes na API pública]
81
+ - [Ex: NÃO DEVE ignorar erros silenciosamente]
82
+ - [Ex: NÃO DEVE criar código duplicado (DRY - Don't Repeat Yourself)]
83
+ - [Ex: NÃO DEVE usar hardcoded values (usar variáveis de ambiente)]
84
+ - [Ex: NÃO DEVE modificar arquivos de migração já aplicados]
85
+ - [Ex: NÃO DEVE pular validações de segurança]
86
+
87
+ ### ⚠️ ATENÇÃO ESPECIAL:
88
+ - [Ex: Ao manipular senhas, SEMPRE usar hashing (bcrypt)]
89
+ - [Ex: Ao fazer queries SQL, SEMPRE usar prepared statements]
90
+ - [Ex: Ao lidar com datas, SEMPRE usar UTC]
91
+
92
+ ---
93
+
94
+ ## 5. 📋 Formato da Resposta
95
+ [Ex: Se a resposta for longa, use subtítulos (##) e listas numeradas para facilitar leitura.]
96
+
97
+ [Especifique COMO você quer receber o resultado]
98
+
99
+ **Estrutura desejada:**
100
+ [Ex: Código completo com comentários / Plano em tópicos / Tabela comparativa / Diagrama + explicação]
101
+
102
+ **Limites:**
103
+ [Ex: Máximo 200 linhas de código / Resposta em até 3 parágrafos / Sem dependências externas]
104
+
105
+ **Estilo:**
106
+ [Ex: Responder em português / Usar markdown / Incluir exemplos de uso / Formato técnico e direto]
107
+
108
+ ---
109
+
110
+ ## 6. 👤 Persona / Tom
111
+
112
+ [Defina a perspectiva e forma de comunicação da IA]
113
+
114
+ **Perspectiva:**
115
+ [Ex: Desenvolvedor sênior / Arquiteto de software / Instrutor técnico / Consultor especializado]
116
+
117
+ **Tom da explicação:**
118
+ [Ex: Técnico e objetivo / Didático e detalhado / Consultivo e estratégico]
119
+
120
+ **Nível de profundidade:**
121
+ [Ex: Explicações básicas / Aprofundado com edge cases / Foco em performance / Visão de alto nível]
122
+
123
+ ---
124
+
125
+ ## 7. ✅ Critérios de Aceite
126
+ [Liste condições objetivas que determinam se o resultado está correto]
127
+
128
+ - [ ] [Ex: O código compila sem erros]
129
+ - [ ] [Ex: Segue o padrão de arquitetura em camadas]
130
+ - [ ] [Ex: Inclui tratamento de erros]
131
+ - [ ] [Ex: Possui testes unitários com 80%+ de cobertura]
132
+ - [ ] [Ex: Documentação atualizada]
133
+ - [ ] [Ex: Performance < 100ms por requisição]
134
+
135
+ ---
136
+
137
+ ## 8. 💬 Exemplos *(opcional)*
138
+
139
+ [Forneça exemplos de entrada e saída esperada se achar necessário]
140
+
141
+ **Exemplo 1:**
142
+ ```
143
+ Entrada: [Descreva a entrada]
144
+ Saída esperada: [Descreva a saída]
145
+ ```
146
+
147
+ **Exemplo 2:**
148
+ ```
149
+ Entrada: [Descreva a entrada]
150
+ Saída esperada: [Descreva a saída]
151
+ ```
152
+
153
+ ---
154
+
155
+ ## 9. 📂 Arquivos Envolvidos *(opcional)*
156
+
157
+ [Liste os arquivos que devem ser criados, modificados ou consultados durante a tarefa]
158
+
159
+ **Arquivos a criar:**
160
+ - [Ex: `internal/service/order_service.go` — lógica de negócio de pedidos]
161
+ - [Ex: `internal/handler/grpc/order_handler.go` — handler gRPC de pedidos]
162
+
163
+ **Arquivos a modificar:**
164
+ - [Ex: `internal/infra/di/fx.go` — registrar novos módulos no DI]
165
+ - [Ex: `api/proto/v1/order.proto` — definir mensagens e RPCs de pedidos]
166
+
167
+ **Arquivos de referência (consultar, não alterar):**
168
+ - [Ex: `internal/service/user_service.go` — seguir mesmo padrão de implementação]
169
+ - [Ex: `internal/handler/grpc/user_handler.go` — referência de como mapear DTOs]
170
+
171
+ ---
172
+
173
+ ## 10. 🧪 Testes de Unidade *(opcional)*
174
+
175
+ [Defina expectativas sobre testes que devem acompanhar a implementação]
176
+
177
+ **Escopo dos testes:**
178
+ - [Ex: Testar apenas a camada de service]
179
+ - [Ex: Cobrir fluxos de sucesso e erro]
180
+ - [Ex: Incluir testes de integração com banco real]
181
+
182
+ **Cenários obrigatórios:**
183
+ - [Ex: Criação com dados válidos → sucesso]
184
+ - [Ex: Criação com email duplicado → erro de conflito]
185
+ - [Ex: Busca por ID inexistente → erro not found]
186
+ - [Ex: Atualização sem permissão → erro de autorização]
187
+
188
+ **Padrão de testes:**
189
+ - [Ex: Table-driven tests com `testify`]
190
+ - [Ex: Mocks para dependências externas]
191
+ - [Ex: Nomenclatura: `TestNomeDoService_MetodoTestado_Cenario`]
192
+
193
+ **Arquivo de referência:**
194
+ - [Ex: `internal/service/user_service_test.go` — seguir mesmo padrão]
195
+
196
+ ---
197
+
198
+ ## 💡 Dicas de Uso
199
+
200
+ * ✅ **Mínimo obrigatório:** Seções 1–6 (Contexto + Objetivo + Instruções + DEVE/NÃO DEVE + Formato + Persona)
201
+ * ⭐ **Para 6 estrelas:** Adicione seções 7–10 (Critérios de Aceite + Exemplos + Arquivos + Testes)
202
+ * 🎯 **Seja específico:** Quanto mais detalhes relevantes, melhor a resposta
203
+ * 🎭 **Use DEVE/NÃO DEVE:** Esta seção é crucial para evitar comportamentos indesejados
204
+ * 🔄 **Itere:** Ajuste o prompt baseado nos resultados obtidos
205
+ * 📏 **Balanceie:** Detalhes suficientes sem ser verboso demais
206
+
207
+ ---
package/package.json CHANGED
@@ -1,28 +1,28 @@
1
- {
2
- "name": "adi_dev_workflow",
3
- "version": "1.1.0",
4
- "description": "Install SDD, miniStack and TaskCard development frameworks for Claude Code and Cursor",
5
- "type": "module",
6
- "bin": {
7
- "adi_dev_workflow": "./bin/index.js"
8
- },
9
- "files": [
10
- "bin/",
11
- "src/",
12
- "frameworks/"
13
- ],
14
- "keywords": [
15
- "claude-code",
16
- "cursor",
17
- "sdd",
18
- "ministack",
19
- "taskcard",
20
- "dev-workflow",
21
- "ai-frameworks"
22
- ],
23
- "author": "",
24
- "license": "MIT",
25
- "dependencies": {
26
- "prompts": "^2.4.2"
27
- }
28
- }
1
+ {
2
+ "name": "adi_dev_workflow",
3
+ "version": "1.2.0",
4
+ "description": "Install SDD, miniStack and TaskCard development frameworks for Claude Code and Cursor",
5
+ "type": "module",
6
+ "bin": {
7
+ "adi_dev_workflow": "bin/index.js"
8
+ },
9
+ "files": [
10
+ "bin/",
11
+ "src/",
12
+ "frameworks/"
13
+ ],
14
+ "keywords": [
15
+ "claude-code",
16
+ "cursor",
17
+ "sdd",
18
+ "ministack",
19
+ "taskcard",
20
+ "dev-workflow",
21
+ "ai-frameworks"
22
+ ],
23
+ "author": "",
24
+ "license": "MIT",
25
+ "dependencies": {
26
+ "prompts": "^2.4.2"
27
+ }
28
+ }
package/src/cli.js CHANGED
@@ -1,121 +1,121 @@
1
- import prompts from 'prompts';
2
- import { install } from './installer.js';
3
-
4
- const BANNER = `
5
- ╔══════════════════════════════════════╗
6
- ║ adi_dev_workflow v1.0 ║
7
- ║ SDD · miniStack · TaskCard ║
8
- ╚══════════════════════════════════════╝
9
- `;
10
-
11
- function parseArgs(argv) {
12
- const args = { ide: null, all: false };
13
- for (let i = 0; i < argv.length; i++) {
14
- if (argv[i] === '--all') args.all = true;
15
- if (argv[i] === '--ide' && argv[i + 1]) {
16
- args.ide = argv[++i];
17
- }
18
- }
19
- return args;
20
- }
21
-
22
- export async function run(argv) {
23
- console.log(BANNER);
24
-
25
- const args = parseArgs(argv);
26
- let target = args.ide;
27
- let frameworks;
28
-
29
- // IDE selection
30
- if (!target || !['claude', 'cursor'].includes(target)) {
31
- const res = await prompts({
32
- type: 'select',
33
- name: 'target',
34
- message: 'Which IDE are you using?',
35
- choices: [
36
- { title: 'Claude Code (.claude/)', value: 'claude' },
37
- { title: 'Cursor (.cursor/)', value: 'cursor' },
38
- ],
39
- });
40
- if (!res.target) {
41
- console.log('Cancelled.');
42
- return;
43
- }
44
- target = res.target;
45
- }
46
-
47
- // Framework selection
48
- if (args.all) {
49
- frameworks = ['sdd', 'ministack', 'taskcard', 'shared'];
50
- } else {
51
- const res = await prompts({
52
- type: 'multiselect',
53
- name: 'frameworks',
54
- message: 'Which frameworks do you want to install?',
55
- choices: [
56
- {
57
- title: 'SDD - Specification-Driven Development',
58
- description: 'PRD -> Spec Tech -> Task Plan -> Code',
59
- value: 'sdd',
60
- selected: true,
61
- },
62
- {
63
- title: 'miniStack - Minimal Feature Stack',
64
- description: 'Intent -> Scope -> Tasks -> Code',
65
- value: 'ministack',
66
- selected: true,
67
- },
68
- {
69
- title: 'TaskCard - Atomic Work Units',
70
- description: 'Description -> Card -> Code',
71
- value: 'taskcard',
72
- selected: true,
73
- },
74
- {
75
- title: 'Shared tools',
76
- description: 'Prompt generator, Linear sync',
77
- value: 'shared',
78
- selected: true,
79
- },
80
- ],
81
- hint: '- Space to toggle. Return to submit',
82
- });
83
- if (!res.frameworks || res.frameworks.length === 0) {
84
- console.log('No frameworks selected. Cancelled.');
85
- return;
86
- }
87
- frameworks = res.frameworks;
88
- }
89
-
90
- const cwd = process.cwd();
91
- const ideLabel = target === 'claude' ? '.claude/' : '.cursor/';
92
-
93
- console.log(`\nInstalling to ${ideLabel} ...\n`);
94
-
95
- const summary = await install({ cwd, target, frameworks });
96
-
97
- console.log(` Done!\n`);
98
- console.log(` ${summary.skills} skills + ${summary.commands} commands + ${summary.templates} templates installed.\n`);
99
-
100
- // Usage hints
101
- const hints = [];
102
- if (frameworks.includes('sdd')) {
103
- hints.push(' /sdd:generate-prd Start a new feature with SDD');
104
- }
105
- if (frameworks.includes('ministack')) {
106
- hints.push(' /ministack:generate-intent Start with miniStack');
107
- }
108
- if (frameworks.includes('taskcard')) {
109
- hints.push(' /taskcard:generate-taskcard Create a task card');
110
- }
111
- if (frameworks.includes('shared')) {
112
- hints.push(' /generate-prompt Generate an optimized prompt');
113
- hints.push(' /sync-tasks-to-linear Sync tasks to Linear');
114
- }
115
-
116
- if (hints.length > 0) {
117
- console.log(' Usage:\n');
118
- for (const h of hints) console.log(h);
119
- console.log('');
120
- }
121
- }
1
+ import prompts from 'prompts';
2
+ import { install } from './installer.js';
3
+
4
+ const BANNER = `
5
+ ╔══════════════════════════════════════╗
6
+ ║ adi_dev_workflow v1.0 ║
7
+ ║ SDD · miniStack · TaskCard ║
8
+ ╚══════════════════════════════════════╝
9
+ `;
10
+
11
+ function parseArgs(argv) {
12
+ const args = { ide: null, all: false };
13
+ for (let i = 0; i < argv.length; i++) {
14
+ if (argv[i] === '--all') args.all = true;
15
+ if (argv[i] === '--ide' && argv[i + 1]) {
16
+ args.ide = argv[++i];
17
+ }
18
+ }
19
+ return args;
20
+ }
21
+
22
+ export async function run(argv) {
23
+ console.log(BANNER);
24
+
25
+ const args = parseArgs(argv);
26
+ let target = args.ide;
27
+ let frameworks;
28
+
29
+ // IDE selection
30
+ if (!target || !['claude', 'cursor'].includes(target)) {
31
+ const res = await prompts({
32
+ type: 'select',
33
+ name: 'target',
34
+ message: 'Which IDE are you using?',
35
+ choices: [
36
+ { title: 'Claude Code (.claude/)', value: 'claude' },
37
+ { title: 'Cursor (.cursor/)', value: 'cursor' },
38
+ ],
39
+ });
40
+ if (!res.target) {
41
+ console.log('Cancelled.');
42
+ return;
43
+ }
44
+ target = res.target;
45
+ }
46
+
47
+ // Framework selection
48
+ if (args.all) {
49
+ frameworks = ['sdd', 'ministack', 'taskcard', 'shared'];
50
+ } else {
51
+ const res = await prompts({
52
+ type: 'multiselect',
53
+ name: 'frameworks',
54
+ message: 'Which frameworks do you want to install?',
55
+ choices: [
56
+ {
57
+ title: 'SDD - Specification-Driven Development',
58
+ description: 'PRD -> Spec Tech -> Task Plan -> Code',
59
+ value: 'sdd',
60
+ selected: true,
61
+ },
62
+ {
63
+ title: 'miniStack - Minimal Feature Stack',
64
+ description: 'Intent -> Scope -> Tasks -> Code',
65
+ value: 'ministack',
66
+ selected: true,
67
+ },
68
+ {
69
+ title: 'TaskCard - Atomic Work Units',
70
+ description: 'Description -> Card -> Code',
71
+ value: 'taskcard',
72
+ selected: true,
73
+ },
74
+ {
75
+ title: 'Shared tools',
76
+ description: 'Prompt generator, Linear sync',
77
+ value: 'shared',
78
+ selected: true,
79
+ },
80
+ ],
81
+ hint: '- Space to toggle. Return to submit',
82
+ });
83
+ if (!res.frameworks || res.frameworks.length === 0) {
84
+ console.log('No frameworks selected. Cancelled.');
85
+ return;
86
+ }
87
+ frameworks = res.frameworks;
88
+ }
89
+
90
+ const cwd = process.cwd();
91
+ const ideLabel = target === 'claude' ? '.claude/' : '.cursor/';
92
+
93
+ console.log(`\nInstalling to ${ideLabel} ...\n`);
94
+
95
+ const summary = await install({ cwd, target, frameworks });
96
+
97
+ console.log(` Done!\n`);
98
+ console.log(` ${summary.skills} skills + ${summary.commands} commands + ${summary.templates} templates + ${summary.agents} agents + ${summary.config} config installed.\n`);
99
+
100
+ // Usage hints
101
+ const hints = [];
102
+ if (frameworks.includes('sdd')) {
103
+ hints.push(' /sdd:generate-prd Start a new feature with SDD');
104
+ }
105
+ if (frameworks.includes('ministack')) {
106
+ hints.push(' /ministack:generate-intent Start with miniStack');
107
+ }
108
+ if (frameworks.includes('taskcard')) {
109
+ hints.push(' /taskcard:generate-taskcard Create a task card');
110
+ }
111
+ if (frameworks.includes('shared')) {
112
+ hints.push(' /generate-prompt Generate an optimized prompt');
113
+ hints.push(' /sync-tasks-to-linear Sync tasks to Linear');
114
+ }
115
+
116
+ if (hints.length > 0) {
117
+ console.log(' Usage:\n');
118
+ for (const h of hints) console.log(h);
119
+ console.log('');
120
+ }
121
+ }