adi_dev_workflow 1.1.1 → 1.3.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 (98) hide show
  1. package/bin/index.js +8 -8
  2. package/frameworks/agents/qa-staff-engineer.md +311 -311
  3. package/frameworks/agents/qa-validation-expert.md +458 -458
  4. package/frameworks/agents/tech-review-conformance.md +200 -200
  5. package/frameworks/commands/ministack/README.md +2 -0
  6. package/frameworks/commands/ministack/code-review.md +2 -0
  7. package/frameworks/commands/ministack/generate-intent.md +2 -0
  8. package/frameworks/commands/ministack/generate-scope.md +2 -0
  9. package/frameworks/commands/ministack/generate-tasks.md +2 -0
  10. package/frameworks/commands/ministack/generate-tech-direction.md +2 -0
  11. package/frameworks/commands/ministack/run-ministack-tasks.md +3 -0
  12. package/frameworks/commands/ministack/run-ministack-withlinear.md +2 -0
  13. package/frameworks/commands/ministack/status.md +2 -0
  14. package/frameworks/commands/sdd/code-review.md +2 -0
  15. package/frameworks/commands/sdd/generate-prd.md +2 -0
  16. package/frameworks/commands/sdd/generate-task-plan.md +2 -0
  17. package/frameworks/commands/sdd/generate-tech-direction.md +2 -0
  18. package/frameworks/commands/sdd/generate-tech-spec.md +2 -0
  19. package/frameworks/commands/sdd/generate-tests.md +2 -0
  20. package/frameworks/commands/sdd/run_tasks.md +3 -0
  21. package/frameworks/commands/sdd/run_tasks_withlinear.md +2 -0
  22. package/frameworks/commands/sdd/status.md +2 -0
  23. package/frameworks/commands/sdd/validate-sdd.md +2 -0
  24. package/frameworks/commands/sync-tasks-to-linear.md +2 -0
  25. package/frameworks/commands/taskcard/generate-taskcard.md +2 -0
  26. package/frameworks/commands/taskcard/run-taskcard.md +2 -0
  27. package/frameworks/config/ai-framework-config.yaml +112 -0
  28. package/frameworks/skills/ministack-tasks-expert/SKILL.md +204 -204
  29. package/frameworks/skills/ministack-tasks-expert/templates/task_plan_template.md +78 -78
  30. package/frameworks/skills/ministack-tasks-expert/templates/task_template.md +103 -103
  31. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/benchmark.json +99 -99
  32. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/benchmark.md +64 -64
  33. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/eval_metadata.json +12 -12
  34. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/grading.json +32 -32
  35. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/outputs/response.md +134 -134
  36. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/outputs/transcript.md +68 -68
  37. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/timing.json +5 -5
  38. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/grading.json +32 -32
  39. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/outputs/response.md +525 -525
  40. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/outputs/transcript.md +30 -30
  41. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/timing.json +5 -5
  42. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/eval_metadata.json +12 -12
  43. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/grading.json +32 -32
  44. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/outputs/response.md +1126 -1126
  45. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/outputs/transcript.md +131 -131
  46. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/timing.json +5 -5
  47. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/grading.json +32 -32
  48. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/outputs/response.md +452 -452
  49. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/outputs/transcript.md +78 -78
  50. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/timing.json +5 -5
  51. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/eval_metadata.json +12 -12
  52. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/grading.json +32 -32
  53. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/outputs/response.md +101 -101
  54. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/outputs/transcript.md +133 -133
  55. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/timing.json +5 -5
  56. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/grading.json +32 -32
  57. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/outputs/response.md +248 -248
  58. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/outputs/transcript.md +49 -49
  59. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/timing.json +5 -5
  60. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/review.html +1325 -1325
  61. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/benchmark.json +94 -94
  62. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/benchmark.md +67 -67
  63. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/eval_metadata.json +12 -12
  64. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/grading.json +32 -32
  65. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/outputs/response.md +117 -117
  66. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/outputs/transcript.md +91 -91
  67. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/timing.json +1 -1
  68. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/grading.json +32 -32
  69. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/outputs/response.md +694 -694
  70. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/outputs/transcript.md +45 -45
  71. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/timing.json +1 -1
  72. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/eval_metadata.json +12 -12
  73. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/grading.json +32 -32
  74. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/outputs/response.md +1087 -1087
  75. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/outputs/transcript.md +124 -124
  76. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/timing.json +1 -1
  77. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/grading.json +32 -32
  78. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/outputs/response.md +458 -458
  79. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/outputs/transcript.md +84 -84
  80. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/timing.json +1 -1
  81. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/eval_metadata.json +12 -12
  82. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/grading.json +32 -32
  83. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/outputs/response.md +70 -70
  84. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/outputs/transcript.md +148 -148
  85. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/timing.json +1 -1
  86. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/grading.json +32 -32
  87. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/outputs/response.md +249 -249
  88. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/outputs/transcript.md +80 -80
  89. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/timing.json +1 -1
  90. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/review.html +1325 -1325
  91. package/frameworks/skills/sdd-tech-spec-expert/SKILL.md +317 -317
  92. package/frameworks/skills/sdd-tech-spec-expert/evals/evals.json +199 -199
  93. package/frameworks/skills/sdd-tech-spec-expert/templates/spec_tech_template.md +290 -290
  94. package/frameworks/skills/sdd-tech-spec-expert/templates/tech_direction-template.md +23 -23
  95. package/package.json +28 -28
  96. package/src/cli.js +121 -121
  97. package/src/installer.js +155 -136
  98. package/src/transformer.js +86 -86
@@ -1,199 +1,199 @@
1
- {
2
- "skill_name": "sdd-tech-spec-expert",
3
- "evals": [
4
- {
5
- "id": 1,
6
- "name": "prd-usuario-existente",
7
- "prompt": "Preciso gerar o SPEC_TECH para a feature de usuario. O PRD aprovado esta em docs/feature-user/v1/prd.md",
8
- "expected_output": "A skill deve: (1) ler o PRD aprovado em docs/feature-user/v1/prd.md, (2) pesquisar o codebase (CLAUDE.md, .claude/rules/, estrutura de diretorios, codigo existente), (3) verificar se existe tech_direction.md na pasta da feature, (4) iniciar o processo de coleta fazendo UMA pergunta por vez ao usuario, (5) NAO bombardear com multiplas perguntas de uma vez",
9
- "files": [
10
- "docs/feature-user/v1/prd.md"
11
- ],
12
- "assertions": [
13
- {
14
- "name": "leu-prd-aprovado",
15
- "type": "tool_usage",
16
- "description": "Deve ler o arquivo PRD aprovado antes de fazer qualquer pergunta",
17
- "check": "A skill usou Read para ler docs/feature-user/v1/prd.md"
18
- },
19
- {
20
- "name": "pesquisou-codebase",
21
- "type": "tool_usage",
22
- "description": "Deve pesquisar regras do projeto e estrutura do codebase",
23
- "check": "A skill leu CLAUDE.md e/ou arquivos em .claude/rules/"
24
- },
25
- {
26
- "name": "verificou-tech-direction",
27
- "type": "tool_usage",
28
- "description": "Deve verificar se existe tech_direction.md na pasta da feature",
29
- "check": "A skill tentou ler ou verificar a existencia de docs/feature-user/v1/tech_direction.md"
30
- },
31
- {
32
- "name": "uma-pergunta-por-vez",
33
- "type": "output_quality",
34
- "description": "Deve fazer apenas UMA pergunta tecnica por vez, nao bombardear o usuario",
35
- "check": "A primeira interacao com o usuario contem no maximo 1 pergunta tecnica clara (pode ter sub-opcoes, mas e 1 topico)"
36
- },
37
- {
38
- "name": "resumo-do-prd",
39
- "type": "output_content",
40
- "description": "Deve apresentar um resumo do que entendeu do PRD antes de iniciar perguntas",
41
- "check": "A skill apresenta um resumo do objetivo da feature (modulo de usuario, cadastro, login, consulta, atualizacao)"
42
- }
43
- ]
44
- },
45
- {
46
- "id": 2,
47
- "name": "spec-tech-completo-16-secoes",
48
- "prompt": "Gere o SPEC_TECH para a feature de usuario. PRD em docs/feature-user/v1/prd.md. Para agilizar, aceite todas as sugestoes padrao sem perguntar — quero ver o documento final completo.",
49
- "expected_output": "A skill deve gerar um SPEC_TECH completo com TODAS as 16 secoes do template, salvar o arquivo fisico em docs/feature-user/v1/spec_tech.md ANTES de apresentar ao usuario, e NAO iniciar o TASK PLAN automaticamente",
50
- "files": [
51
- "docs/feature-user/v1/prd.md"
52
- ],
53
- "assertions": [
54
- {
55
- "name": "todas-16-secoes",
56
- "type": "output_content",
57
- "description": "O SPEC_TECH gerado deve conter todas as 16 secoes do template",
58
- "check": "O documento contem secoes 1 (Identificacao), 2 (Resumo Tecnico), 3 (Arquitetura), 4 (Estruturas de Dados), 5 (Regras Tecnicas), 6 (Fluxos Tecnicos), 7 (APIs/Endpoints), 8 (Frontend/Mobile), 9 (Banco Local/Cache), 10 (Dependencias), 11 (Requisitos Nao Funcionais), 12 (Criterios Tecnicos), 13 (Riscos), 14 (Estrategia de Testes), 15 (Arquivos Envolvidos), 16 (Checklist Final)"
59
- },
60
- {
61
- "name": "arquivo-salvo-antes-de-apresentar",
62
- "type": "tool_usage",
63
- "description": "Deve salvar o arquivo fisico ANTES de apresentar ao usuario",
64
- "check": "A skill usou Write para salvar em docs/feature-user/v1/spec_tech.md antes de mostrar o conteudo ao usuario"
65
- },
66
- {
67
- "name": "nao-iniciou-task-plan",
68
- "type": "output_content",
69
- "description": "NAO deve sugerir ou iniciar a proxima etapa (TASK PLAN) automaticamente",
70
- "check": "A skill NAO menciona executar /sdd:generate-task-plan nem inicia geracao de tasks. Apenas pergunta se o SPEC esta aprovado"
71
- },
72
- {
73
- "name": "mapeamento-user-stories-secao-5-1",
74
- "type": "output_content",
75
- "description": "A secao 5.1 deve mapear TODAS as user stories do PRD para definicoes tecnicas",
76
- "check": "A secao 5.1 contem mapeamento de US-01, US-02, US-03 e US-04 para definicoes tecnicas correspondentes"
77
- },
78
- {
79
- "name": "secao-15-tres-subsecoes",
80
- "type": "output_content",
81
- "description": "A secao 15 deve ter 3 subsecoes: Criar, Modificar e Referencia",
82
- "check": "A secao 15 contem 15.1 (Arquivos a Criar), 15.2 (Arquivos a Modificar) e 15.3 (Arquivos de Referencia)"
83
- },
84
- {
85
- "name": "delegou-secao-14-qa",
86
- "type": "tool_usage",
87
- "description": "A secao 14 (Estrategia de Testes) deve ser delegada a um subagente QA",
88
- "check": "A skill disparou um subagente (Task tool) para gerar a secao 14 com contexto de QA expert"
89
- }
90
- ]
91
- },
92
- {
93
- "id": 3,
94
- "name": "respeita-arquitetura-existente",
95
- "prompt": "Gere o SPEC_TECH para a feature de usuario. O PRD esta em docs/feature-user/v1/prd.md. Quero que a solucao use a arquitetura ja existente no projeto.",
96
- "expected_output": "A skill deve pesquisar profundamente o codebase, identificar a arquitetura existente (gRPC, Clean Architecture, SQLite, Uber FX, SQLC) e propor solucoes que seguem os padroes ja estabelecidos — NAO propor REST quando o projeto usa gRPC, NAO propor PostgreSQL quando o projeto usa SQLite, etc.",
97
- "files": [
98
- "docs/feature-user/v1/prd.md"
99
- ],
100
- "assertions": [
101
- {
102
- "name": "identificou-grpc",
103
- "type": "output_content",
104
- "description": "Deve identificar que o projeto usa gRPC e propor endpoints gRPC (nao REST)",
105
- "check": "O SPEC_TECH propoe endpoints/servicos gRPC, NAO endpoints REST (GET/POST/PUT/DELETE)"
106
- },
107
- {
108
- "name": "identificou-sqlite",
109
- "type": "output_content",
110
- "description": "Deve identificar que o projeto usa SQLite e propor migracoes SQLite",
111
- "check": "O SPEC_TECH referencia SQLite como banco de dados, com migracoes no padrao do projeto"
112
- },
113
- {
114
- "name": "identificou-clean-architecture",
115
- "type": "output_content",
116
- "description": "Deve seguir a Clean Architecture do projeto (handler -> service -> repository)",
117
- "check": "O SPEC_TECH propoe componentes nas camadas handler, service e repository conforme a arquitetura existente"
118
- },
119
- {
120
- "name": "identificou-uber-fx",
121
- "type": "output_content",
122
- "description": "Deve mencionar Uber FX para injecao de dependencias",
123
- "check": "O SPEC_TECH referencia Uber FX ou modulos fx.Module para DI dos novos componentes"
124
- },
125
- {
126
- "name": "convencao-idioma-banco-portugues",
127
- "type": "output_content",
128
- "description": "Deve seguir a convencao do projeto: tabelas/colunas em portugues, codigo em ingles",
129
- "check": "Tabelas e colunas propostas estao em portugues (ex: usuarios, nome, email, senha_hash) e nomes de structs/funcoes em ingles"
130
- }
131
- ]
132
- },
133
- {
134
- "id": 4,
135
- "name": "com-tech-direction-existente",
136
- "prompt": "Preciso do SPEC_TECH para a feature de pedidos (orders). O PRD esta em docs/feature-order/v1/prd.md. Ja criei um tech_direction.md na mesma pasta com decisoes tecnicas que quero que sejam respeitadas.",
137
- "expected_output": "A skill deve detectar o tech_direction.md, apresentar os direcionamentos encontrados, respeitar as decisoes do usuario como ponto de partida, e levantar conflitos se houver incompatibilidade com o codebase existente",
138
- "files": [
139
- "docs/feature-order/v1/prd.md",
140
- "docs/feature-order/v1/tech_direction.md"
141
- ],
142
- "assertions": [
143
- {
144
- "name": "detectou-tech-direction",
145
- "type": "tool_usage",
146
- "description": "Deve buscar e ler o tech_direction.md na pasta da feature",
147
- "check": "A skill leu o arquivo docs/feature-order/v1/tech_direction.md"
148
- },
149
- {
150
- "name": "apresentou-direcionamentos",
151
- "type": "output_content",
152
- "description": "Deve apresentar um resumo dos direcionamentos encontrados no tech_direction",
153
- "check": "A skill lista ou resume as decisoes tecnicas encontradas no tech_direction.md antes de iniciar perguntas"
154
- },
155
- {
156
- "name": "respeitou-decisoes-usuario",
157
- "type": "output_content",
158
- "description": "Deve usar as decisoes do tech_direction como ponto de partida, nao propor alternativas conflitantes",
159
- "check": "As propostas tecnicas da skill sao consistentes com o tech_direction — nao propoe alternativas que contradizem decisoes firmes do usuario"
160
- },
161
- {
162
- "name": "registrou-no-resumo-tecnico",
163
- "type": "output_content",
164
- "description": "Deve incluir as decisoes do tech_direction na secao 2 do SPEC_TECH",
165
- "check": "A secao 2 (Resumo Tecnico) do SPEC_TECH referencia ou incorpora decisoes do tech_direction.md"
166
- }
167
- ]
168
- },
169
- {
170
- "id": 5,
171
- "name": "nao-inventa-nao-deduz",
172
- "prompt": "Gere o SPEC_TECH para a feature de usuario. PRD em docs/feature-user/v1/prd.md. Mas quero que inclua tambem um sistema de notificacoes por email quando o usuario se cadastrar.",
173
- "expected_output": "A skill deve identificar que 'notificacoes por email' NAO esta no PRD aprovado e NAO deve adicionar ao escopo. Deve informar ao usuario que isso esta fora do escopo do PRD e perguntar se deseja prosseguir apenas com o escopo aprovado ou se quer primeiro atualizar o PRD.",
174
- "files": [
175
- "docs/feature-user/v1/prd.md"
176
- ],
177
- "assertions": [
178
- {
179
- "name": "identificou-escopo-fora-prd",
180
- "type": "output_content",
181
- "description": "Deve identificar que notificacoes por email nao esta no PRD aprovado",
182
- "check": "A skill menciona que notificacoes por email nao faz parte do PRD aprovado ou esta fora do escopo definido"
183
- },
184
- {
185
- "name": "nao-adicionou-ao-spec",
186
- "type": "output_content",
187
- "description": "NAO deve adicionar funcionalidade fora do PRD ao SPEC_TECH sem aprovacao",
188
- "check": "A skill NAO inclui notificacoes por email no SPEC_TECH gerado, ou pergunta ao usuario antes de incluir"
189
- },
190
- {
191
- "name": "sugeriu-atualizar-prd",
192
- "type": "output_content",
193
- "description": "Deve sugerir que o usuario atualize o PRD se quiser incluir a funcionalidade",
194
- "check": "A skill sugere atualizar o PRD primeiro ou pergunta ao usuario como deseja proceder com o item fora do escopo"
195
- }
196
- ]
197
- }
198
- ]
199
- }
1
+ {
2
+ "skill_name": "sdd-tech-spec-expert",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "name": "prd-usuario-existente",
7
+ "prompt": "Preciso gerar o SPEC_TECH para a feature de usuario. O PRD aprovado esta em docs/feature-user/v1/prd.md",
8
+ "expected_output": "A skill deve: (1) ler o PRD aprovado em docs/feature-user/v1/prd.md, (2) pesquisar o codebase (CLAUDE.md, .claude/rules/, estrutura de diretorios, codigo existente), (3) verificar se existe tech_direction.md na pasta da feature, (4) iniciar o processo de coleta fazendo UMA pergunta por vez ao usuario, (5) NAO bombardear com multiplas perguntas de uma vez",
9
+ "files": [
10
+ "docs/feature-user/v1/prd.md"
11
+ ],
12
+ "assertions": [
13
+ {
14
+ "name": "leu-prd-aprovado",
15
+ "type": "tool_usage",
16
+ "description": "Deve ler o arquivo PRD aprovado antes de fazer qualquer pergunta",
17
+ "check": "A skill usou Read para ler docs/feature-user/v1/prd.md"
18
+ },
19
+ {
20
+ "name": "pesquisou-codebase",
21
+ "type": "tool_usage",
22
+ "description": "Deve pesquisar regras do projeto e estrutura do codebase",
23
+ "check": "A skill leu CLAUDE.md e/ou arquivos em .claude/rules/"
24
+ },
25
+ {
26
+ "name": "verificou-tech-direction",
27
+ "type": "tool_usage",
28
+ "description": "Deve verificar se existe tech_direction.md na pasta da feature",
29
+ "check": "A skill tentou ler ou verificar a existencia de docs/feature-user/v1/tech_direction.md"
30
+ },
31
+ {
32
+ "name": "uma-pergunta-por-vez",
33
+ "type": "output_quality",
34
+ "description": "Deve fazer apenas UMA pergunta tecnica por vez, nao bombardear o usuario",
35
+ "check": "A primeira interacao com o usuario contem no maximo 1 pergunta tecnica clara (pode ter sub-opcoes, mas e 1 topico)"
36
+ },
37
+ {
38
+ "name": "resumo-do-prd",
39
+ "type": "output_content",
40
+ "description": "Deve apresentar um resumo do que entendeu do PRD antes de iniciar perguntas",
41
+ "check": "A skill apresenta um resumo do objetivo da feature (modulo de usuario, cadastro, login, consulta, atualizacao)"
42
+ }
43
+ ]
44
+ },
45
+ {
46
+ "id": 2,
47
+ "name": "spec-tech-completo-16-secoes",
48
+ "prompt": "Gere o SPEC_TECH para a feature de usuario. PRD em docs/feature-user/v1/prd.md. Para agilizar, aceite todas as sugestoes padrao sem perguntar — quero ver o documento final completo.",
49
+ "expected_output": "A skill deve gerar um SPEC_TECH completo com TODAS as 16 secoes do template, salvar o arquivo fisico em docs/feature-user/v1/spec_tech.md ANTES de apresentar ao usuario, e NAO iniciar o TASK PLAN automaticamente",
50
+ "files": [
51
+ "docs/feature-user/v1/prd.md"
52
+ ],
53
+ "assertions": [
54
+ {
55
+ "name": "todas-16-secoes",
56
+ "type": "output_content",
57
+ "description": "O SPEC_TECH gerado deve conter todas as 16 secoes do template",
58
+ "check": "O documento contem secoes 1 (Identificacao), 2 (Resumo Tecnico), 3 (Arquitetura), 4 (Estruturas de Dados), 5 (Regras Tecnicas), 6 (Fluxos Tecnicos), 7 (APIs/Endpoints), 8 (Frontend/Mobile), 9 (Banco Local/Cache), 10 (Dependencias), 11 (Requisitos Nao Funcionais), 12 (Criterios Tecnicos), 13 (Riscos), 14 (Estrategia de Testes), 15 (Arquivos Envolvidos), 16 (Checklist Final)"
59
+ },
60
+ {
61
+ "name": "arquivo-salvo-antes-de-apresentar",
62
+ "type": "tool_usage",
63
+ "description": "Deve salvar o arquivo fisico ANTES de apresentar ao usuario",
64
+ "check": "A skill usou Write para salvar em docs/feature-user/v1/spec_tech.md antes de mostrar o conteudo ao usuario"
65
+ },
66
+ {
67
+ "name": "nao-iniciou-task-plan",
68
+ "type": "output_content",
69
+ "description": "NAO deve sugerir ou iniciar a proxima etapa (TASK PLAN) automaticamente",
70
+ "check": "A skill NAO menciona executar /sdd:generate-task-plan nem inicia geracao de tasks. Apenas pergunta se o SPEC esta aprovado"
71
+ },
72
+ {
73
+ "name": "mapeamento-user-stories-secao-5-1",
74
+ "type": "output_content",
75
+ "description": "A secao 5.1 deve mapear TODAS as user stories do PRD para definicoes tecnicas",
76
+ "check": "A secao 5.1 contem mapeamento de US-01, US-02, US-03 e US-04 para definicoes tecnicas correspondentes"
77
+ },
78
+ {
79
+ "name": "secao-15-tres-subsecoes",
80
+ "type": "output_content",
81
+ "description": "A secao 15 deve ter 3 subsecoes: Criar, Modificar e Referencia",
82
+ "check": "A secao 15 contem 15.1 (Arquivos a Criar), 15.2 (Arquivos a Modificar) e 15.3 (Arquivos de Referencia)"
83
+ },
84
+ {
85
+ "name": "delegou-secao-14-qa",
86
+ "type": "tool_usage",
87
+ "description": "A secao 14 (Estrategia de Testes) deve ser delegada a um subagente QA",
88
+ "check": "A skill disparou um subagente (Task tool) para gerar a secao 14 com contexto de QA expert"
89
+ }
90
+ ]
91
+ },
92
+ {
93
+ "id": 3,
94
+ "name": "respeita-arquitetura-existente",
95
+ "prompt": "Gere o SPEC_TECH para a feature de usuario. O PRD esta em docs/feature-user/v1/prd.md. Quero que a solucao use a arquitetura ja existente no projeto.",
96
+ "expected_output": "A skill deve pesquisar profundamente o codebase, identificar a arquitetura existente (gRPC, Clean Architecture, SQLite, Uber FX, SQLC) e propor solucoes que seguem os padroes ja estabelecidos — NAO propor REST quando o projeto usa gRPC, NAO propor PostgreSQL quando o projeto usa SQLite, etc.",
97
+ "files": [
98
+ "docs/feature-user/v1/prd.md"
99
+ ],
100
+ "assertions": [
101
+ {
102
+ "name": "identificou-grpc",
103
+ "type": "output_content",
104
+ "description": "Deve identificar que o projeto usa gRPC e propor endpoints gRPC (nao REST)",
105
+ "check": "O SPEC_TECH propoe endpoints/servicos gRPC, NAO endpoints REST (GET/POST/PUT/DELETE)"
106
+ },
107
+ {
108
+ "name": "identificou-sqlite",
109
+ "type": "output_content",
110
+ "description": "Deve identificar que o projeto usa SQLite e propor migracoes SQLite",
111
+ "check": "O SPEC_TECH referencia SQLite como banco de dados, com migracoes no padrao do projeto"
112
+ },
113
+ {
114
+ "name": "identificou-clean-architecture",
115
+ "type": "output_content",
116
+ "description": "Deve seguir a Clean Architecture do projeto (handler -> service -> repository)",
117
+ "check": "O SPEC_TECH propoe componentes nas camadas handler, service e repository conforme a arquitetura existente"
118
+ },
119
+ {
120
+ "name": "identificou-uber-fx",
121
+ "type": "output_content",
122
+ "description": "Deve mencionar Uber FX para injecao de dependencias",
123
+ "check": "O SPEC_TECH referencia Uber FX ou modulos fx.Module para DI dos novos componentes"
124
+ },
125
+ {
126
+ "name": "convencao-idioma-banco-portugues",
127
+ "type": "output_content",
128
+ "description": "Deve seguir a convencao do projeto: tabelas/colunas em portugues, codigo em ingles",
129
+ "check": "Tabelas e colunas propostas estao em portugues (ex: usuarios, nome, email, senha_hash) e nomes de structs/funcoes em ingles"
130
+ }
131
+ ]
132
+ },
133
+ {
134
+ "id": 4,
135
+ "name": "com-tech-direction-existente",
136
+ "prompt": "Preciso do SPEC_TECH para a feature de pedidos (orders). O PRD esta em docs/feature-order/v1/prd.md. Ja criei um tech_direction.md na mesma pasta com decisoes tecnicas que quero que sejam respeitadas.",
137
+ "expected_output": "A skill deve detectar o tech_direction.md, apresentar os direcionamentos encontrados, respeitar as decisoes do usuario como ponto de partida, e levantar conflitos se houver incompatibilidade com o codebase existente",
138
+ "files": [
139
+ "docs/feature-order/v1/prd.md",
140
+ "docs/feature-order/v1/tech_direction.md"
141
+ ],
142
+ "assertions": [
143
+ {
144
+ "name": "detectou-tech-direction",
145
+ "type": "tool_usage",
146
+ "description": "Deve buscar e ler o tech_direction.md na pasta da feature",
147
+ "check": "A skill leu o arquivo docs/feature-order/v1/tech_direction.md"
148
+ },
149
+ {
150
+ "name": "apresentou-direcionamentos",
151
+ "type": "output_content",
152
+ "description": "Deve apresentar um resumo dos direcionamentos encontrados no tech_direction",
153
+ "check": "A skill lista ou resume as decisoes tecnicas encontradas no tech_direction.md antes de iniciar perguntas"
154
+ },
155
+ {
156
+ "name": "respeitou-decisoes-usuario",
157
+ "type": "output_content",
158
+ "description": "Deve usar as decisoes do tech_direction como ponto de partida, nao propor alternativas conflitantes",
159
+ "check": "As propostas tecnicas da skill sao consistentes com o tech_direction — nao propoe alternativas que contradizem decisoes firmes do usuario"
160
+ },
161
+ {
162
+ "name": "registrou-no-resumo-tecnico",
163
+ "type": "output_content",
164
+ "description": "Deve incluir as decisoes do tech_direction na secao 2 do SPEC_TECH",
165
+ "check": "A secao 2 (Resumo Tecnico) do SPEC_TECH referencia ou incorpora decisoes do tech_direction.md"
166
+ }
167
+ ]
168
+ },
169
+ {
170
+ "id": 5,
171
+ "name": "nao-inventa-nao-deduz",
172
+ "prompt": "Gere o SPEC_TECH para a feature de usuario. PRD em docs/feature-user/v1/prd.md. Mas quero que inclua tambem um sistema de notificacoes por email quando o usuario se cadastrar.",
173
+ "expected_output": "A skill deve identificar que 'notificacoes por email' NAO esta no PRD aprovado e NAO deve adicionar ao escopo. Deve informar ao usuario que isso esta fora do escopo do PRD e perguntar se deseja prosseguir apenas com o escopo aprovado ou se quer primeiro atualizar o PRD.",
174
+ "files": [
175
+ "docs/feature-user/v1/prd.md"
176
+ ],
177
+ "assertions": [
178
+ {
179
+ "name": "identificou-escopo-fora-prd",
180
+ "type": "output_content",
181
+ "description": "Deve identificar que notificacoes por email nao esta no PRD aprovado",
182
+ "check": "A skill menciona que notificacoes por email nao faz parte do PRD aprovado ou esta fora do escopo definido"
183
+ },
184
+ {
185
+ "name": "nao-adicionou-ao-spec",
186
+ "type": "output_content",
187
+ "description": "NAO deve adicionar funcionalidade fora do PRD ao SPEC_TECH sem aprovacao",
188
+ "check": "A skill NAO inclui notificacoes por email no SPEC_TECH gerado, ou pergunta ao usuario antes de incluir"
189
+ },
190
+ {
191
+ "name": "sugeriu-atualizar-prd",
192
+ "type": "output_content",
193
+ "description": "Deve sugerir que o usuario atualize o PRD se quiser incluir a funcionalidade",
194
+ "check": "A skill sugere atualizar o PRD primeiro ou pergunta ao usuario como deseja proceder com o item fora do escopo"
195
+ }
196
+ ]
197
+ }
198
+ ]
199
+ }