adi_dev_workflow 1.2.0 → 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/frameworks/skills/ministack-intent-expert/SKILL.md +0 -2
- package/frameworks/skills/ministack-scope-expert/SKILL.md +0 -4
- package/frameworks/skills/ministack-tasks-expert/SKILL.md +204 -0
- package/frameworks/skills/ministack-tasks-expert/templates/task_plan_template.md +78 -0
- package/frameworks/skills/ministack-tasks-expert/templates/task_template.md +103 -0
- package/frameworks/skills/ministack-tech-direction-expert/SKILL.md +230 -0
- package/frameworks/skills/ministack-tech-direction-expert/evals/evals.json +1 -0
- package/frameworks/skills/ministack-tech-direction-expert/templates/tech_direction-template.md +17 -0
- package/frameworks/skills/prompt-engineer-expert/SKILL.md +232 -0
- package/frameworks/skills/prompt-engineer-expert/templates/prompt_template.md +139 -0
- package/frameworks/skills/sdd-prd-expert/SKILL.md +0 -2
- package/frameworks/skills/sdd-task-plan-expert/SKILL.md +0 -2
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/benchmark.json +99 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/benchmark.md +64 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/eval_metadata.json +12 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/outputs/response.md +134 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/outputs/transcript.md +68 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/timing.json +5 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/outputs/response.md +525 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/outputs/transcript.md +30 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/timing.json +5 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/eval_metadata.json +12 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/outputs/response.md +1126 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/outputs/transcript.md +131 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/timing.json +5 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/outputs/response.md +452 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/outputs/transcript.md +78 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/timing.json +5 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/eval_metadata.json +12 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/outputs/response.md +101 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/outputs/transcript.md +133 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/timing.json +5 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/outputs/response.md +248 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/outputs/transcript.md +49 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/timing.json +5 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/review.html +1325 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/benchmark.json +94 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/benchmark.md +67 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/eval_metadata.json +12 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/outputs/response.md +117 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/outputs/transcript.md +91 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/timing.json +1 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/outputs/response.md +694 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/outputs/transcript.md +45 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/timing.json +1 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/eval_metadata.json +12 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/outputs/response.md +1087 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/outputs/transcript.md +124 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/timing.json +1 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/outputs/response.md +458 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/outputs/transcript.md +84 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/timing.json +1 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/eval_metadata.json +12 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/outputs/response.md +70 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/outputs/transcript.md +148 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/timing.json +1 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/outputs/response.md +249 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/outputs/transcript.md +80 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/timing.json +1 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/review.html +1325 -0
- package/frameworks/skills/sdd-tech-direction-expert/SKILL.md +235 -0
- package/frameworks/skills/sdd-tech-direction-expert/evals/evals.json +1 -0
- package/frameworks/skills/sdd-tech-direction-expert/templates/tech_direction-template.md +23 -0
- package/frameworks/skills/sdd-tech-spec-expert/SKILL.md +317 -0
- package/frameworks/skills/sdd-tech-spec-expert/evals/evals.json +199 -0
- package/frameworks/skills/sdd-tech-spec-expert/templates/spec_tech_template.md +290 -0
- package/frameworks/skills/sdd-tech-spec-expert/templates/tech_direction-template.md +23 -0
- package/frameworks/skills/taskcard-expert/SKILL.md +0 -4
- package/package.json +1 -1
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: prompt-engineer-expert
|
|
3
|
+
description: "Gera prompts 5 estrelas completos a partir de um resumo da tarefa. Use esta skill sempre que o usuário quiser criar, gerar ou estruturar um prompt para IA, transformar uma ideia vaga em instruções claras, ou quando mencionar 'prompt', 'gerar prompt', 'criar prompt', 'prompt engineering'. Também acione quando o usuário descrever uma tarefa e pedir para transformar em prompt estruturado."
|
|
4
|
+
argument-hint: [resumo ou descrição da tarefa]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Você é um **Especialista em Prompt Engineering e Agentic Engineering**, membro de um Framework de Desenvolvimento Assistido por IA.
|
|
8
|
+
|
|
9
|
+
Sua missão é transformar um resumo de tarefa em um **prompt completo, estruturado e otimizado**, maximizando a inferência automática a partir do codebase e minimizando perguntas ao usuário.
|
|
10
|
+
|
|
11
|
+
Princípios:
|
|
12
|
+
- **Inferir antes de perguntar**: analise o projeto antes de fazer qualquer pergunta
|
|
13
|
+
- **Perguntas inteligentes**: só pergunte o que não pode ser derivado do código
|
|
14
|
+
- **Qualidade sobre quantidade**: menos perguntas, mais contexto real
|
|
15
|
+
- **Prompt validado**: nunca salve sem verificar completude
|
|
16
|
+
- **Acentuação correta**: todo texto em português no prompt gerado deve ter acentuação correta (não, é, está, seção, validação, geração, descrição, instrução, restrição, padrão, etc.)
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Regra de Acentuação
|
|
21
|
+
|
|
22
|
+
O prompt gerado é um documento em português brasileiro. Todo o conteúdo textual (títulos, descrições, instruções, regras, mensagens) deve usar acentuação correta do pt-BR. Isso inclui:
|
|
23
|
+
|
|
24
|
+
- Títulos de seções: `Instruções Específicas`, `Restrições`, `Descrição`, `Validação`
|
|
25
|
+
- Corpo do texto: `não`, `é`, `está`, `será`, `também`, `através`, `após`, `até`
|
|
26
|
+
- Termos técnicos em português: `autenticação`, `paginação`, `configuração`, `migração`
|
|
27
|
+
|
|
28
|
+
Apenas nomes de código (funções, variáveis, structs, pacotes) permanecem sem acento por serem em inglês.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
# Fluxo de Geração de Prompt
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
Resumo da tarefa (usuário)
|
|
36
|
+
|
|
|
37
|
+
FASE 1: Análise do Codebase (automática, sem perguntas)
|
|
38
|
+
|
|
|
39
|
+
FASE 2: Coleta de Objetivo (1-2 perguntas essenciais)
|
|
40
|
+
|
|
|
41
|
+
FASE 3: Refinamento (perguntas específicas, se necessário)
|
|
42
|
+
|
|
|
43
|
+
FASE 4: Rascunho do Prompt (apresentar ao usuário)
|
|
44
|
+
|
|
|
45
|
+
FASE 5: Feedback e Ajuste (iterativo)
|
|
46
|
+
|
|
|
47
|
+
FASE 6: Validação e Salvamento
|
|
48
|
+
|
|
|
49
|
+
Prompt Final (docs/prompts/[slug]/[slug]_prompt.md)
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Fase 1: Análise Automática do Codebase
|
|
55
|
+
|
|
56
|
+
Antes de qualquer pergunta, analise o projeto para extrair o máximo de contexto possível. O objetivo é pré-preencher as seções de Contexto, Arquitetura e Padrões sem incomodar o usuário.
|
|
57
|
+
|
|
58
|
+
### O que analisar
|
|
59
|
+
|
|
60
|
+
| Item | Onde procurar | Para preencher |
|
|
61
|
+
|------|--------------|----------------|
|
|
62
|
+
| Linguagem e framework | `go.mod`, `package.json`, `requirements.txt`, `Cargo.toml` | Seção Contexto |
|
|
63
|
+
| Arquitetura | `CLAUDE.md`, `.claude/rules/`, estrutura de pastas | Seção Contexto |
|
|
64
|
+
| Padrões de teste | Arquivos `*_test.go`, `*.test.ts`, `*.spec.js` | Seção Testes |
|
|
65
|
+
| Convenções de código | `.claude/rules/`, linters, formatters | Seção DEVE/NÃO DEVE |
|
|
66
|
+
| Perfil do projeto | `project-profile.md`, `.claude/rules/project-profile.md` | Tudo |
|
|
67
|
+
| Dependências e ferramentas | Makefiles, docker-compose, buf.yaml, sqlc.yaml | Seção Contexto |
|
|
68
|
+
|
|
69
|
+
### Como analisar
|
|
70
|
+
|
|
71
|
+
1. Leia `CLAUDE.md` e arquivos em `.claude/rules/` — eles já carregam no contexto, use-os diretamente
|
|
72
|
+
2. Se `project-profile.md` existir, use como fonte primária
|
|
73
|
+
3. Examine a estrutura de diretórios para entender a organização do projeto
|
|
74
|
+
4. Identifique padrões de teste existentes (framework, convenções, localização)
|
|
75
|
+
5. Verifique se há convenções de idioma (código em inglês, banco em português, etc.)
|
|
76
|
+
|
|
77
|
+
### Output da Fase 1
|
|
78
|
+
|
|
79
|
+
Apresente ao usuário um resumo compacto do que foi inferido:
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
**Contexto inferido do codebase:**
|
|
83
|
+
- Linguagem: [detectado]
|
|
84
|
+
- Framework: [detectado]
|
|
85
|
+
- Arquitetura: [detectado]
|
|
86
|
+
- Padrões de teste: [detectado]
|
|
87
|
+
- Convenções: [detectado]
|
|
88
|
+
|
|
89
|
+
Está correto? Posso prosseguir com base nisso?
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Se o usuário corrigir algo, ajuste antes de avançar.
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Fase 2: Coleta de Objetivo
|
|
97
|
+
|
|
98
|
+
Esta é a parte que **não pode** ser inferida do codebase — o que o usuário quer fazer e por quê.
|
|
99
|
+
|
|
100
|
+
Pergunte de forma direta e objetiva. Use `AskUserQuestion` oferecendo opções concretas baseadas na análise do codebase quando possível.
|
|
101
|
+
|
|
102
|
+
### Perguntas essenciais (obrigatórias)
|
|
103
|
+
|
|
104
|
+
1. **O que precisa ser entregue?** — Descreva o entregável principal
|
|
105
|
+
2. **Por que essa tarefa é necessária?** — Qual problema resolve ou valor agrega
|
|
106
|
+
|
|
107
|
+
### Perguntas contextuais (somente se não inferíveis)
|
|
108
|
+
|
|
109
|
+
Só faça estas perguntas se a análise do codebase não forneceu resposta clara:
|
|
110
|
+
|
|
111
|
+
- **Público-alvo**: se não for óbvio pelo tipo de projeto
|
|
112
|
+
- **Limitações específicas**: se houver restrições não documentadas
|
|
113
|
+
- **Resultado esperado**: se o resumo inicial for vago (código? documentação? plano?)
|
|
114
|
+
|
|
115
|
+
Agrupe perguntas relacionadas quando fizer sentido — não é necessário ser uma por vez se o contexto já está claro. O objetivo é ser eficiente, não burocrático.
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Fase 3: Refinamento Técnico
|
|
120
|
+
|
|
121
|
+
Com o objetivo claro, refine os detalhes técnicos. Aqui, combine inferência do codebase com perguntas pontuais.
|
|
122
|
+
|
|
123
|
+
### O que inferir automaticamente
|
|
124
|
+
|
|
125
|
+
- **Estrutura lógica**: baseada na arquitetura do projeto (ex: handler → service → repository)
|
|
126
|
+
- **Convenções DEVE/NÃO DEVE**: extrair de `.claude/rules/`, `CLAUDE.md`, linters
|
|
127
|
+
- **Formato de resposta**: inferir do tipo de tarefa (código = markdown com blocos de código, documentação = markdown estruturado)
|
|
128
|
+
- **Persona/Tom**: inferir do contexto (tarefa técnica = tom técnico e direto)
|
|
129
|
+
|
|
130
|
+
### O que perguntar (somente se necessário)
|
|
131
|
+
|
|
132
|
+
- **Detalhes técnicos específicos** que não estão documentados
|
|
133
|
+
- **Restrições de implementação** além das convenções do projeto
|
|
134
|
+
- **Critérios de aceite** se a tarefa for complexa
|
|
135
|
+
- **Arquivos envolvidos** se o resumo não mencionar
|
|
136
|
+
|
|
137
|
+
Use múltipla escolha quando possível, baseada em padrões reais do projeto:
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
Quais camadas devem ser implementadas?
|
|
141
|
+
A) Handler + Service + Repository (CRUD completo)
|
|
142
|
+
B) Apenas Service + Repository (sem endpoint)
|
|
143
|
+
C) Apenas Handler (endpoint para lógica existente)
|
|
144
|
+
D) Outro (descreva)
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## Fase 4: Rascunho do Prompt
|
|
150
|
+
|
|
151
|
+
Gere o prompt usando o template oficial. Preencha todas as seções obrigatórias com as informações coletadas e inferidas.
|
|
152
|
+
|
|
153
|
+
### Template
|
|
154
|
+
|
|
155
|
+
O template completo está em: [prompt_template.md](templates/prompt_template.md)
|
|
156
|
+
|
|
157
|
+
### Seções obrigatórias (1-6)
|
|
158
|
+
|
|
159
|
+
| Seção | Fonte primária |
|
|
160
|
+
|-------|---------------|
|
|
161
|
+
| 1. Contexto | Fase 1 (inferência automática) |
|
|
162
|
+
| 2. Objetivo | Fase 2 (perguntas ao usuário) |
|
|
163
|
+
| 3. Instruções Específicas | Fase 3 (inferência + perguntas) |
|
|
164
|
+
| 4. DEVE / NÃO DEVE | Fase 1 (convenções) + Fase 3 (específicas) |
|
|
165
|
+
| 5. Formato da Resposta | Inferido do tipo de tarefa |
|
|
166
|
+
| 6. Persona / Tom | Inferido do contexto |
|
|
167
|
+
|
|
168
|
+
### Seções opcionais (7-10)
|
|
169
|
+
|
|
170
|
+
| Seção | Quando incluir |
|
|
171
|
+
|-------|---------------|
|
|
172
|
+
| 7. Critérios de Aceite | Tarefas complexas ou com requisitos mensuráveis |
|
|
173
|
+
| 8. Exemplos | Quando houver padrões claros de entrada/saída |
|
|
174
|
+
| 9. Arquivos Envolvidos | Quando a tarefa envolve criar/modificar arquivos específicos |
|
|
175
|
+
| 10. Testes de Unidade | Quando o usuário solicitar (preenchida pelo comando, não pela skill) |
|
|
176
|
+
|
|
177
|
+
### Apresentação ao usuário
|
|
178
|
+
|
|
179
|
+
Apresente o rascunho completo e pergunte:
|
|
180
|
+
|
|
181
|
+
```
|
|
182
|
+
Aqui está o rascunho do prompt. Revise e me diga:
|
|
183
|
+
- Algo está incorreto ou faltando?
|
|
184
|
+
- Alguma seção precisa de mais detalhe?
|
|
185
|
+
- Deseja adicionar seções opcionais (Critérios de Aceite, Exemplos, Arquivos, Testes)?
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## Fase 5: Feedback e Ajuste
|
|
191
|
+
|
|
192
|
+
Itere com o usuário até que o prompt esteja satisfatório.
|
|
193
|
+
|
|
194
|
+
- Aceite feedback livre e aplique as correções
|
|
195
|
+
- Não limite o número de iterações — o prompt precisa estar bom
|
|
196
|
+
- A seção 10 (Testes de Unidade) **não é responsabilidade desta skill** — ela é tratada pelo comando `/generate-prompt` após a skill concluir
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## Fase 6: Validação e Salvamento
|
|
201
|
+
|
|
202
|
+
### Guardrails de validação
|
|
203
|
+
|
|
204
|
+
Antes de salvar, verifique que o prompt gerado atende a TODOS estes critérios:
|
|
205
|
+
|
|
206
|
+
- [ ] Seções 1-6 preenchidas (Contexto, Objetivo, Instruções, DEVE/NÃO DEVE, Formato, Persona)
|
|
207
|
+
- [ ] Nenhuma seção contém placeholders genéricos (ex: `[Ex: ...]`, `[Descreva...]`)
|
|
208
|
+
- [ ] Seção DEVE tem no mínimo 3 itens
|
|
209
|
+
- [ ] Seção NÃO DEVE tem no mínimo 3 itens
|
|
210
|
+
- [ ] Contexto técnico é específico (linguagem, framework, arquitetura reais — não genéricos)
|
|
211
|
+
- [ ] Objetivo é claro e mensurável
|
|
212
|
+
- [ ] Se seções opcionais foram incluídas, estão preenchidas completamente
|
|
213
|
+
- [ ] Todo texto em português usa acentuação correta (Instruções, Restrições, Descrição, não, é, está, será, etc.)
|
|
214
|
+
|
|
215
|
+
Se algum guardrail falhar, corrija antes de salvar — não peça ao usuário para corrigir o que você pode resolver sozinho.
|
|
216
|
+
|
|
217
|
+
### Salvamento
|
|
218
|
+
|
|
219
|
+
1. Derive o slug da tarefa a partir do objetivo (ex: `autenticacao-jwt`, `crud-produtos`)
|
|
220
|
+
2. Crie o diretório: `docs/prompts/[slug]/`
|
|
221
|
+
3. Salve o prompt: `docs/prompts/[slug]/[slug]_prompt.md`
|
|
222
|
+
4. Informe o caminho ao usuário
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## Princípios-Chave
|
|
227
|
+
|
|
228
|
+
- **Inferir > Perguntar**: cada pergunta feita ao usuário é um custo — minimize perguntas extraindo o máximo do codebase
|
|
229
|
+
- **Específico > Genérico**: prompts com `Go 1.24 com gRPC e SQLite` são melhores que `linguagem backend`
|
|
230
|
+
- **Validar > Confiar**: sempre rode os guardrails antes de salvar
|
|
231
|
+
- **Iterar > Acertar de primeira**: apresente o rascunho cedo e refine com feedback
|
|
232
|
+
- **Contexto real > Exemplos fictícios**: use dados do projeto real, não placeholders genéricos
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
# Prompt 5 Estrelas
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## 1. Contexto
|
|
6
|
+
|
|
7
|
+
**Linguagem/Framework:**
|
|
8
|
+
[linguagem e versão, frameworks principais]
|
|
9
|
+
|
|
10
|
+
**Arquitetura/Padrão:**
|
|
11
|
+
[padrão arquitetural do projeto]
|
|
12
|
+
|
|
13
|
+
**Público-alvo:**
|
|
14
|
+
[quem vai consumir o resultado]
|
|
15
|
+
|
|
16
|
+
**Limitações/Restrições:**
|
|
17
|
+
[restrições de ambiente, dependências, compatibilidade]
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 2. Objetivo
|
|
22
|
+
|
|
23
|
+
**O que precisa ser entregue:**
|
|
24
|
+
[entregável principal da tarefa]
|
|
25
|
+
|
|
26
|
+
**Propósito da tarefa:**
|
|
27
|
+
[problema que resolve ou valor que agrega]
|
|
28
|
+
|
|
29
|
+
**Resultado esperado:**
|
|
30
|
+
[forma do resultado: código funcional, documentação, plano, etc.]
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## 3. Instruções Específicas
|
|
35
|
+
|
|
36
|
+
**Detalhes técnicos:**
|
|
37
|
+
- [detalhe 1]
|
|
38
|
+
- [detalhe 2]
|
|
39
|
+
- [detalhe 3]
|
|
40
|
+
|
|
41
|
+
**Restrições:**
|
|
42
|
+
- [restrição 1]
|
|
43
|
+
- [restrição 2]
|
|
44
|
+
|
|
45
|
+
**Estrutura lógica:**
|
|
46
|
+
- [passo ou camada 1]
|
|
47
|
+
- [passo ou camada 2]
|
|
48
|
+
- [passo ou camada 3]
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## 4. Regras: DEVE / NÃO DEVE
|
|
53
|
+
|
|
54
|
+
### DEVE:
|
|
55
|
+
- [regra obrigatória 1]
|
|
56
|
+
- [regra obrigatória 2]
|
|
57
|
+
- [regra obrigatória 3]
|
|
58
|
+
|
|
59
|
+
### NÃO DEVE:
|
|
60
|
+
- [proibição 1]
|
|
61
|
+
- [proibição 2]
|
|
62
|
+
- [proibição 3]
|
|
63
|
+
|
|
64
|
+
### ATENÇÃO ESPECIAL:
|
|
65
|
+
- [ponto crítico, se houver]
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## 5. Formato da Resposta
|
|
70
|
+
|
|
71
|
+
**Estrutura desejada:**
|
|
72
|
+
[formato do output: código com comentários, tópicos, tabela, etc.]
|
|
73
|
+
|
|
74
|
+
**Limites:**
|
|
75
|
+
[restrições de tamanho ou escopo do output]
|
|
76
|
+
|
|
77
|
+
**Estilo:**
|
|
78
|
+
[idioma, formatação, nível de detalhe]
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## 6. Persona / Tom
|
|
83
|
+
|
|
84
|
+
**Perspectiva:**
|
|
85
|
+
[papel que a IA deve assumir]
|
|
86
|
+
|
|
87
|
+
**Tom da explicação:**
|
|
88
|
+
[técnico, didático, consultivo, direto]
|
|
89
|
+
|
|
90
|
+
**Nível de profundidade:**
|
|
91
|
+
[básico, intermediário, aprofundado com edge cases]
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## 7. Critérios de Aceite *(opcional)*
|
|
96
|
+
|
|
97
|
+
- [ ] [critério 1]
|
|
98
|
+
- [ ] [critério 2]
|
|
99
|
+
- [ ] [critério 3]
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## 8. Exemplos *(opcional)*
|
|
104
|
+
|
|
105
|
+
**Exemplo 1:**
|
|
106
|
+
```
|
|
107
|
+
Entrada: [entrada]
|
|
108
|
+
Saída esperada: [saída]
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## 9. Arquivos Envolvidos *(opcional)*
|
|
114
|
+
|
|
115
|
+
**Arquivos a criar:**
|
|
116
|
+
- [caminho — descrição]
|
|
117
|
+
|
|
118
|
+
**Arquivos a modificar:**
|
|
119
|
+
- [caminho — descrição]
|
|
120
|
+
|
|
121
|
+
**Arquivos de referência (não alterar):**
|
|
122
|
+
- [caminho — descrição]
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## 10. Testes de Unidade *(opcional)*
|
|
127
|
+
|
|
128
|
+
**Escopo dos testes:**
|
|
129
|
+
- [camadas e tipos de teste]
|
|
130
|
+
|
|
131
|
+
**Cenários obrigatórios:**
|
|
132
|
+
- [cenário 1: descrição → resultado esperado]
|
|
133
|
+
- [cenário 2: descrição → resultado esperado]
|
|
134
|
+
|
|
135
|
+
**Padrão de testes:**
|
|
136
|
+
- [framework, convenções, nomenclatura]
|
|
137
|
+
|
|
138
|
+
**Arquivo de referência:**
|
|
139
|
+
- [caminho do teste existente a seguir como modelo]
|
|
@@ -23,8 +23,6 @@ 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
26
|
---
|
|
29
27
|
|
|
30
28
|
# Regra de Acentuação
|
|
@@ -14,8 +14,6 @@ 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
17
|
---
|
|
20
18
|
|
|
21
19
|
# Regra de Acentuação
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill_name": "sdd-task-plan-expert",
|
|
3
|
+
"iteration": 1,
|
|
4
|
+
"configurations": [
|
|
5
|
+
{
|
|
6
|
+
"name": "with_skill",
|
|
7
|
+
"pass_rate": 0.933,
|
|
8
|
+
"mean_tokens": 55027,
|
|
9
|
+
"stddev_tokens": 10217,
|
|
10
|
+
"mean_duration_seconds": 184.9,
|
|
11
|
+
"stddev_duration_seconds": 85.7,
|
|
12
|
+
"evals": [
|
|
13
|
+
{
|
|
14
|
+
"eval_name": "happy-path-spec-tech-usuario",
|
|
15
|
+
"pass_rate": 0.8,
|
|
16
|
+
"passed": 4,
|
|
17
|
+
"total": 5,
|
|
18
|
+
"tokens": 61221,
|
|
19
|
+
"duration_seconds": 138.2,
|
|
20
|
+
"failed_assertions": ["Le as rules do projeto (.claude/rules/ e CLAUDE.md) ANTES de gerar tasks"]
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"eval_name": "spec-tech-simples-alteracao-pontual",
|
|
24
|
+
"pass_rate": 1.0,
|
|
25
|
+
"passed": 5,
|
|
26
|
+
"total": 5,
|
|
27
|
+
"tokens": 60596,
|
|
28
|
+
"duration_seconds": 286.6,
|
|
29
|
+
"failed_assertions": []
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"eval_name": "spec-tech-sem-user-stories-explicitas",
|
|
33
|
+
"pass_rate": 1.0,
|
|
34
|
+
"passed": 5,
|
|
35
|
+
"total": 5,
|
|
36
|
+
"tokens": 43263,
|
|
37
|
+
"duration_seconds": 130.0,
|
|
38
|
+
"failed_assertions": []
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"name": "without_skill",
|
|
44
|
+
"pass_rate": 0.333,
|
|
45
|
+
"mean_tokens": 38834,
|
|
46
|
+
"stddev_tokens": 3912,
|
|
47
|
+
"mean_duration_seconds": 151.2,
|
|
48
|
+
"stddev_duration_seconds": 14.5,
|
|
49
|
+
"evals": [
|
|
50
|
+
{
|
|
51
|
+
"eval_name": "happy-path-spec-tech-usuario",
|
|
52
|
+
"pass_rate": 0.2,
|
|
53
|
+
"passed": 1,
|
|
54
|
+
"total": 5,
|
|
55
|
+
"tokens": 40363,
|
|
56
|
+
"duration_seconds": 141.3,
|
|
57
|
+
"failed_assertions": [
|
|
58
|
+
"Extrai o nome da feature do SPEC_TECH e confirma com o usuario antes de prosseguir",
|
|
59
|
+
"Faz apenas UMA pergunta por vez",
|
|
60
|
+
"Propoe macro-fases de alto nivel e aguarda validacao antes de criar tasks",
|
|
61
|
+
"Le as rules do projeto (.claude/rules/ e CLAUDE.md) ANTES de gerar tasks"
|
|
62
|
+
]
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"eval_name": "spec-tech-simples-alteracao-pontual",
|
|
66
|
+
"pass_rate": 0.2,
|
|
67
|
+
"passed": 1,
|
|
68
|
+
"total": 5,
|
|
69
|
+
"tokens": 41818,
|
|
70
|
+
"duration_seconds": 167.6,
|
|
71
|
+
"failed_assertions": [
|
|
72
|
+
"Gera um numero proporcional de tasks (entre 3 e 6)",
|
|
73
|
+
"Mapeia a US-10 na tabela de rastreabilidade do task_plan",
|
|
74
|
+
"Cada task segue o template completo (secoes 1-8)",
|
|
75
|
+
"Salva task_plan.md como documento de REFERENCIA"
|
|
76
|
+
]
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"eval_name": "spec-tech-sem-user-stories-explicitas",
|
|
80
|
+
"pass_rate": 0.4,
|
|
81
|
+
"passed": 2,
|
|
82
|
+
"total": 5,
|
|
83
|
+
"tokens": 34322,
|
|
84
|
+
"duration_seconds": 144.7,
|
|
85
|
+
"failed_assertions": [
|
|
86
|
+
"PERGUNTA ao usuario sobre User Stories / PRD em vez de inventar ou ignorar",
|
|
87
|
+
"Extrai corretamente o nome da feature em kebab-case",
|
|
88
|
+
"Segue o processo interativo (uma pergunta por vez)"
|
|
89
|
+
]
|
|
90
|
+
}
|
|
91
|
+
]
|
|
92
|
+
}
|
|
93
|
+
],
|
|
94
|
+
"delta": {
|
|
95
|
+
"pass_rate_improvement": "+60.0pp",
|
|
96
|
+
"tokens_overhead": "+41.7%",
|
|
97
|
+
"duration_overhead": "+22.3%"
|
|
98
|
+
}
|
|
99
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Benchmark — sdd-task-plan-expert (Iteration 1)
|
|
2
|
+
|
|
3
|
+
## Resumo
|
|
4
|
+
|
|
5
|
+
| Metrica | With Skill | Without Skill (Baseline) | Delta |
|
|
6
|
+
|---------|-----------|-------------------------|-------|
|
|
7
|
+
| **Pass Rate** | **93.3%** (14/15) | 33.3% (5/15) | **+60.0pp** |
|
|
8
|
+
| **Tokens (media)** | 55,027 | 38,834 | +41.7% |
|
|
9
|
+
| **Duracao (media)** | 184.9s | 151.2s | +22.3% |
|
|
10
|
+
|
|
11
|
+
## Resultados por Eval
|
|
12
|
+
|
|
13
|
+
### Eval 1: Happy Path (SPEC_TECH real do modulo de usuario)
|
|
14
|
+
|
|
15
|
+
| Assertion | With Skill | Without Skill |
|
|
16
|
+
|-----------|:---------:|:------------:|
|
|
17
|
+
| Extrai nome e confirma com usuario | PASS | FAIL |
|
|
18
|
+
| Uma pergunta por vez | PASS | FAIL |
|
|
19
|
+
| Propoe fases antes de tasks | PASS | FAIL |
|
|
20
|
+
| Le rules do projeto antes | FAIL | FAIL |
|
|
21
|
+
| Nao inicia execucao automatica | PASS | PASS |
|
|
22
|
+
|
|
23
|
+
### Eval 2: Feature Simples (adicionar telefone)
|
|
24
|
+
|
|
25
|
+
| Assertion | With Skill | Without Skill |
|
|
26
|
+
|-----------|:---------:|:------------:|
|
|
27
|
+
| Numero proporcional de tasks (3-6) | PASS (6) | FAIL (12) |
|
|
28
|
+
| Ordem de dependencias correta | PASS | PASS |
|
|
29
|
+
| Rastreabilidade US-10 | PASS | FAIL |
|
|
30
|
+
| Template completo (secoes 1-8) | PASS | FAIL |
|
|
31
|
+
| task_plan como referencia | PASS | FAIL |
|
|
32
|
+
|
|
33
|
+
### Eval 3: Sem User Stories
|
|
34
|
+
|
|
35
|
+
| Assertion | With Skill | Without Skill |
|
|
36
|
+
|-----------|:---------:|:------------:|
|
|
37
|
+
| Detecta ausencia de US/PRD | PASS | PASS |
|
|
38
|
+
| Pergunta ao usuario | PASS | FAIL |
|
|
39
|
+
| Nao inventa US ficticias | PASS | PASS |
|
|
40
|
+
| Nome em kebab-case | PASS | FAIL |
|
|
41
|
+
| Processo interativo | PASS | FAIL |
|
|
42
|
+
|
|
43
|
+
## Analise
|
|
44
|
+
|
|
45
|
+
### Pontos Fortes da Skill
|
|
46
|
+
1. **Processo interativo**: A skill garante interacao step-by-step (93% vs 33% pass rate)
|
|
47
|
+
2. **Proporcionalidade**: 6 tasks para feature simples vs 12 sem skill
|
|
48
|
+
3. **Guardrails**: Detectou e perguntou sobre US/PRD ausentes em vez de ignorar
|
|
49
|
+
4. **Template e rastreabilidade**: Segue template oficial e mapeia User Stories
|
|
50
|
+
5. **Separacao de documentos**: task_plan como referencia, tasks em arquivos individuais
|
|
51
|
+
|
|
52
|
+
### Ponto de Melhoria Identificado
|
|
53
|
+
1. **Leitura de rules do projeto (a4)**: A skill instrui "Ler as rules do projeto", mas o agente leu extensivamente o codebase sem ler `.claude/rules/` e `CLAUDE.md` explicitamente. Sugestao: reforcar na skill que a leitura de rules e o PRIMEIRO passo, antes de explorar o codebase.
|
|
54
|
+
|
|
55
|
+
### Custo da Skill
|
|
56
|
+
- **+41.7% tokens**: Esperado — a skill faz mais trabalho (leitura de templates, processo interativo, exploração de codebase mais detalhada)
|
|
57
|
+
- **+22.3% duracao**: Overhead moderado, aceitavel dado o ganho de qualidade
|
|
58
|
+
|
|
59
|
+
### Assertions Nao-Discriminantes
|
|
60
|
+
- "Nao inventa US ficticias" passou em ambas as configuracoes (with/without skill) — o modelo base ja respeita isso
|
|
61
|
+
- "Nao inicia execucao automatica" tambem passou em ambas
|
|
62
|
+
|
|
63
|
+
### Conclusao
|
|
64
|
+
A skill melhora drasticamente a qualidade do output (+60pp pass rate). O unico ponto de falha (leitura de rules) e um refinamento menor. O custo adicional em tokens/tempo e justificado pelo ganho em estrutura, interatividade e conformidade com o framework SDD.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"eval_id": 1,
|
|
3
|
+
"eval_name": "happy-path-spec-tech-usuario",
|
|
4
|
+
"prompt": "Gere o TASK PLAN para a feature de usuario. O SPEC_TECH aprovado esta em docs/feature-user/v1/spec_tech.md",
|
|
5
|
+
"assertions": [
|
|
6
|
+
{"id": "a1", "text": "Extrai o nome da feature do SPEC_TECH e confirma com o usuario antes de prosseguir", "type": "llm_judge"},
|
|
7
|
+
{"id": "a2", "text": "Faz apenas UMA pergunta por vez (nao bombardeia com multiplas perguntas no mesmo turno)", "type": "llm_judge"},
|
|
8
|
+
{"id": "a3", "text": "Propoe macro-fases de alto nivel e aguarda validacao antes de criar tasks", "type": "llm_judge"},
|
|
9
|
+
{"id": "a4", "text": "Le as rules do projeto (.claude/rules/ e CLAUDE.md) ANTES de gerar tasks", "type": "llm_judge"},
|
|
10
|
+
{"id": "a5", "text": "NAO inicia execucao automatica de tasks — apenas apresenta o plano e aguarda", "type": "llm_judge"}
|
|
11
|
+
]
|
|
12
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"eval_id": 1,
|
|
3
|
+
"eval_name": "happy-path-spec-tech-usuario",
|
|
4
|
+
"configuration": "with_skill",
|
|
5
|
+
"expectations": [
|
|
6
|
+
{
|
|
7
|
+
"text": "Extrai o nome da feature do SPEC_TECH e confirma com o usuario antes de prosseguir",
|
|
8
|
+
"passed": true,
|
|
9
|
+
"evidence": "Extraiu 'Modulo de Usuario -- Vakinha Burger', normalizou para 'feature-user' em kebab-case, e perguntou: 'Podemos iniciar a definicao macro das fases? Voce concorda com esta estrutura de 5 fases?'"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"text": "Faz apenas UMA pergunta por vez (nao bombardeia com multiplas perguntas no mesmo turno)",
|
|
13
|
+
"passed": true,
|
|
14
|
+
"evidence": "Fez apenas uma pergunta ao final: 'Podemos iniciar a definicao macro das fases?' Nao bombardeou com multiplas perguntas."
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"text": "Propoe macro-fases de alto nivel e aguarda validacao antes de criar tasks",
|
|
18
|
+
"passed": true,
|
|
19
|
+
"evidence": "Propos 5 fases (Fundacao, Contratos/Dados, Logica de Negocio, Apresentacao, Testes) com justificativa para cada uma, e aguardou validacao antes de criar tasks detalhadas."
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"text": "Le as rules do projeto (.claude/rules/ e CLAUDE.md) ANTES de gerar tasks",
|
|
23
|
+
"passed": false,
|
|
24
|
+
"evidence": "O transcript mostra leitura extensiva do codebase (13 arquivos Go, proto, config, PRD), mas NAO ha leitura explicita de .claude/rules/ nem CLAUDE.md. O agente explorou o codebase mas nao leu as rules do projeto."
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"text": "NAO inicia execucao automatica de tasks — apenas apresenta o plano e aguarda",
|
|
28
|
+
"passed": true,
|
|
29
|
+
"evidence": "Encerrou com 'Este e o primeiro turno de interacao' e explicou que o proximo passo seria destrinchar tasks da Fase 1. Nao iniciou execucao automatica."
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
}
|