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.
- package/bin/index.js +8 -8
- package/frameworks/agents/qa-staff-engineer.md +311 -311
- package/frameworks/agents/qa-validation-expert.md +458 -458
- package/frameworks/agents/tech-review-conformance.md +200 -200
- package/frameworks/commands/ministack/README.md +2 -0
- package/frameworks/commands/ministack/code-review.md +2 -0
- package/frameworks/commands/ministack/generate-intent.md +2 -0
- package/frameworks/commands/ministack/generate-scope.md +2 -0
- package/frameworks/commands/ministack/generate-tasks.md +2 -0
- package/frameworks/commands/ministack/generate-tech-direction.md +2 -0
- package/frameworks/commands/ministack/run-ministack-tasks.md +3 -0
- package/frameworks/commands/ministack/run-ministack-withlinear.md +2 -0
- package/frameworks/commands/ministack/status.md +2 -0
- package/frameworks/commands/sdd/code-review.md +2 -0
- package/frameworks/commands/sdd/generate-prd.md +2 -0
- package/frameworks/commands/sdd/generate-task-plan.md +2 -0
- package/frameworks/commands/sdd/generate-tech-direction.md +2 -0
- package/frameworks/commands/sdd/generate-tech-spec.md +2 -0
- package/frameworks/commands/sdd/generate-tests.md +2 -0
- package/frameworks/commands/sdd/run_tasks.md +3 -0
- package/frameworks/commands/sdd/run_tasks_withlinear.md +2 -0
- package/frameworks/commands/sdd/status.md +2 -0
- package/frameworks/commands/sdd/validate-sdd.md +2 -0
- package/frameworks/commands/sync-tasks-to-linear.md +2 -0
- package/frameworks/commands/taskcard/generate-taskcard.md +2 -0
- package/frameworks/commands/taskcard/run-taskcard.md +2 -0
- package/frameworks/config/ai-framework-config.yaml +112 -0
- package/frameworks/skills/ministack-tasks-expert/SKILL.md +204 -204
- package/frameworks/skills/ministack-tasks-expert/templates/task_plan_template.md +78 -78
- package/frameworks/skills/ministack-tasks-expert/templates/task_template.md +103 -103
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/benchmark.json +99 -99
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/benchmark.md +64 -64
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/eval_metadata.json +12 -12
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/grading.json +32 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/outputs/response.md +134 -134
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/outputs/transcript.md +68 -68
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/timing.json +5 -5
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/grading.json +32 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/outputs/response.md +525 -525
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/outputs/transcript.md +30 -30
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/timing.json +5 -5
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/eval_metadata.json +12 -12
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/grading.json +32 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/outputs/response.md +1126 -1126
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/outputs/transcript.md +131 -131
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/timing.json +5 -5
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/grading.json +32 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/outputs/response.md +452 -452
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/outputs/transcript.md +78 -78
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/timing.json +5 -5
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/eval_metadata.json +12 -12
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/grading.json +32 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/outputs/response.md +101 -101
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/outputs/transcript.md +133 -133
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/timing.json +5 -5
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/grading.json +32 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/outputs/response.md +248 -248
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/outputs/transcript.md +49 -49
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/timing.json +5 -5
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/review.html +1325 -1325
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/benchmark.json +94 -94
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/benchmark.md +67 -67
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/eval_metadata.json +12 -12
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/grading.json +32 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/outputs/response.md +117 -117
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/outputs/transcript.md +91 -91
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/timing.json +1 -1
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/grading.json +32 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/outputs/response.md +694 -694
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/outputs/transcript.md +45 -45
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/timing.json +1 -1
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/eval_metadata.json +12 -12
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/grading.json +32 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/outputs/response.md +1087 -1087
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/outputs/transcript.md +124 -124
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/timing.json +1 -1
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/grading.json +32 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/outputs/response.md +458 -458
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/outputs/transcript.md +84 -84
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/timing.json +1 -1
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/eval_metadata.json +12 -12
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/grading.json +32 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/outputs/response.md +70 -70
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/outputs/transcript.md +148 -148
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/timing.json +1 -1
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/grading.json +32 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/outputs/response.md +249 -249
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/outputs/transcript.md +80 -80
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/timing.json +1 -1
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/review.html +1325 -1325
- package/frameworks/skills/sdd-tech-spec-expert/SKILL.md +317 -317
- package/frameworks/skills/sdd-tech-spec-expert/evals/evals.json +199 -199
- package/frameworks/skills/sdd-tech-spec-expert/templates/spec_tech_template.md +290 -290
- package/frameworks/skills/sdd-tech-spec-expert/templates/tech_direction-template.md +23 -23
- package/package.json +28 -28
- package/src/cli.js +121 -121
- package/src/installer.js +155 -136
- 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
|
+
}
|