adi_dev_workflow 1.1.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/frameworks/agents/qa-staff-engineer.md +311 -0
- package/frameworks/agents/qa-validation-expert.md +458 -0
- package/frameworks/agents/tech-review-conformance.md +200 -0
- package/frameworks/commands/generate-prompt.md +33 -100
- package/frameworks/commands/taskcard/generate-taskcard.md +104 -33
- package/frameworks/skills/ministack-intent-expert/SKILL.md +13 -1
- package/frameworks/skills/ministack-scope-expert/SKILL.md +13 -1
- package/frameworks/skills/ministack-tasks-expert/SKILL.md +13 -1
- package/frameworks/skills/ministack-tech-direction-expert/SKILL.md +13 -1
- 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 +12 -0
- package/frameworks/skills/sdd-task-plan-expert/SKILL.md +12 -0
- package/frameworks/skills/sdd-tech-direction-expert/SKILL.md +13 -1
- package/frameworks/skills/sdd-tech-spec-expert/SKILL.md +13 -0
- package/frameworks/skills/taskcard-expert/SKILL.md +26 -11
- package/frameworks/templates/prompt_template.md +207 -0
- package/package.json +1 -1
|
@@ -1,100 +1,33 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Gera um prompt 5 estrelas completo a partir de um resumo da tarefa
|
|
3
|
-
argument-hint: [resumo ou descrição da tarefa]
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
- **
|
|
29
|
-
- **
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
---
|
|
35
|
-
|
|
36
|
-
# 🚫 O que você NÃO deve fazer
|
|
37
|
-
|
|
38
|
-
1. Nunca pular diretamente para o prompt final sem coletar as informações.
|
|
39
|
-
2. Nunca assumir informações que o usuário não forneceu.
|
|
40
|
-
3. Nunca fazer múltiplas perguntas de uma vez.
|
|
41
|
-
4. Nunca gerar um prompt incompleto ou genérico.
|
|
42
|
-
|
|
43
|
-
---
|
|
44
|
-
|
|
45
|
-
# 📋 Fluxo de Perguntas
|
|
46
|
-
|
|
47
|
-
## Seção 1 - Contexto
|
|
48
|
-
Pergunte uma por vez:
|
|
49
|
-
- Qual linguagem/framework está sendo utilizado?
|
|
50
|
-
- Qual arquitetura/padrão o projeto segue?
|
|
51
|
-
- Quem é o público-alvo da entrega?
|
|
52
|
-
- Existem limitações ou restrições importantes?
|
|
53
|
-
|
|
54
|
-
## Seção 2 - Objetivo
|
|
55
|
-
Pergunte uma por vez:
|
|
56
|
-
- O que exatamente precisa ser entregue?
|
|
57
|
-
- Por que essa tarefa é necessária?
|
|
58
|
-
- Qual o resultado esperado?
|
|
59
|
-
|
|
60
|
-
## Seção 3 - Instruções Específicas
|
|
61
|
-
Pergunte uma por vez:
|
|
62
|
-
- Quais são os detalhes técnicos importantes?
|
|
63
|
-
- Existem restrições de implementação?
|
|
64
|
-
- Qual deve ser a estrutura lógica da solução?
|
|
65
|
-
|
|
66
|
-
## Seção 4 - DEVE / NÃO DEVE
|
|
67
|
-
Pergunte uma por vez:
|
|
68
|
-
- O que a IA DEVE fazer obrigatoriamente? (pelo menos 3 itens)
|
|
69
|
-
- O que a IA NÃO DEVE fazer de jeito nenhum? (pelo menos 3 itens)
|
|
70
|
-
- Existe alguma atenção especial crítica?
|
|
71
|
-
|
|
72
|
-
## Seção 5 - Formato da Resposta
|
|
73
|
-
Pergunte uma por vez:
|
|
74
|
-
- Qual estrutura você prefere para a resposta?
|
|
75
|
-
- Existem limites de tamanho ou escopo?
|
|
76
|
-
- Qual estilo deve ser usado?
|
|
77
|
-
|
|
78
|
-
## Seção 6 - Persona / Tom
|
|
79
|
-
Pergunte uma por vez:
|
|
80
|
-
- Qual perspectiva a IA deve assumir?
|
|
81
|
-
- Qual tom deve ter a explicação?
|
|
82
|
-
- Qual nível de profundidade?
|
|
83
|
-
|
|
84
|
-
## Seção 7 - Critérios de Aceite (opcional)
|
|
85
|
-
- Quais critérios objetivos determinam se a resposta está correta?
|
|
86
|
-
|
|
87
|
-
## Seção 8 - Exemplos (opcional)
|
|
88
|
-
- Você tem exemplos de entrada/saída esperada?
|
|
89
|
-
|
|
90
|
-
---
|
|
91
|
-
|
|
92
|
-
# 🧱 Template oficial do Prompt (sempre use)
|
|
93
|
-
|
|
94
|
-
@.claude/templates/prompt_template.md
|
|
95
|
-
|
|
96
|
-
---
|
|
97
|
-
|
|
98
|
-
# 📝 Resumo da tarefa do usuário
|
|
99
|
-
|
|
100
|
-
$ARGUMENTS
|
|
1
|
+
---
|
|
2
|
+
description: Gera um prompt 5 estrelas completo a partir de um resumo da tarefa
|
|
3
|
+
argument-hint: [resumo ou descrição da tarefa]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Acione a skill `prompt-engineer-expert` para gerar o prompt.
|
|
7
|
+
|
|
8
|
+
Contexto da tarefa do usuário: $ARGUMENTS
|
|
9
|
+
|
|
10
|
+
## Pós-geração: Seção de Testes (opcional)
|
|
11
|
+
|
|
12
|
+
Após o prompt ser gerado e salvo pela skill, pergunte ao usuário:
|
|
13
|
+
|
|
14
|
+
> Deseja que eu gere a seção de testes de unidade para este prompt? Isso aciona um agente especialista em QA que analisa o codebase e produz cenários de teste específicos.
|
|
15
|
+
|
|
16
|
+
Se o usuário responder **SIM**:
|
|
17
|
+
|
|
18
|
+
1. Use a ferramenta `Agent` com `subagent_type="qa-staff-engineer"` para delegar a geração.
|
|
19
|
+
2. No prompt do subagente, envie todas as informações do prompt gerado:
|
|
20
|
+
- Contexto técnico (linguagem, framework, arquitetura)
|
|
21
|
+
- Objetivo da tarefa
|
|
22
|
+
- Instruções específicas e restrições
|
|
23
|
+
- Regras DEVE / NÃO DEVE
|
|
24
|
+
- Arquivos envolvidos (se coletados)
|
|
25
|
+
- Padrões de teste do projeto (disponíveis no CLAUDE.md e project-profile)
|
|
26
|
+
3. Instrua o subagente a retornar no formato da Seção 10 do template:
|
|
27
|
+
- **Escopo dos testes**: camadas a testar
|
|
28
|
+
- **Cenários obrigatórios**: sucesso, erro, edge cases
|
|
29
|
+
- **Padrão de testes**: convenções (table-driven, mocks, nomenclatura)
|
|
30
|
+
- **Arquivo de referência**: testes existentes como modelo
|
|
31
|
+
4. Incorpore o resultado na Seção 10 do prompt final já salvo.
|
|
32
|
+
|
|
33
|
+
Se o usuário responder **NÃO**, encerre normalmente.
|
|
@@ -3,39 +3,110 @@ description: Gera uma TaskCard individual clara e executável para uma task espe
|
|
|
3
3
|
argument-hint: [contexto da tarefa ou Intent + Scope]
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
Seu papel: **Gerador de TaskCard**.
|
|
7
|
-
|
|
8
|
-
Carregue a skill **taskcard-expert** para obter o framework completo (template, regras, guardrails,
|
|
9
|
-
Toda a
|
|
10
|
-
|
|
11
|
-
##
|
|
12
|
-
|
|
13
|
-
1. Leia o contexto fornecido pelo
|
|
14
|
-
2. Identifique lacunas —
|
|
15
|
-
- **Claude Code**: use a ferramenta `AskUserQuestion` para fazer as perguntas. Ofereça
|
|
16
|
-
3. Preencha o **template oficial** (
|
|
17
|
-
4. Salve imediatamente em `docs/<nome-feature>/task-<numero>-<slug>.md` — **
|
|
18
|
-
5. **Delegue a
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
6
|
+
Seu papel: **Gerador de TaskCard**. Você NÃO executa — apenas gera o documento.
|
|
7
|
+
|
|
8
|
+
Carregue a skill **taskcard-expert** para obter o framework completo (template, regras, guardrails, convenções).
|
|
9
|
+
Toda a inteligência do framework está centralizada nessa skill — siga-a integralmente.
|
|
10
|
+
|
|
11
|
+
## Instruções
|
|
12
|
+
|
|
13
|
+
1. Leia o contexto fornecido pelo usuário
|
|
14
|
+
2. Identifique lacunas — faça **uma pergunta por vez** até ter tudo
|
|
15
|
+
- **Claude Code**: use a ferramenta `AskUserQuestion` para fazer as perguntas. Ofereça opções concretas baseadas na análise do codebase (o usuário sempre pode escolher "Other" para texto livre)
|
|
16
|
+
3. Preencha o **template oficial** (seções 1-9 e 11) conforme a skill taskcard-expert
|
|
17
|
+
4. Salve imediatamente em `docs/<nome-feature>/task-<numero>-<slug>.md` — **NÃO peça aprovação antes de salvar**
|
|
18
|
+
5. **Delegue a seção 10 (Testes) ao agente `qa-staff-engineer`** (ver seção abaixo)
|
|
19
|
+
6. **Receba o JSON do agente e formate a seção 10** no arquivo da TaskCard (ver seção abaixo)
|
|
20
|
+
7. Apresente um **resumo curto** do que foi criado (ID, nome, arquivos gerados, escopo resumido)
|
|
21
|
+
8. Se trabalho for grande, quebre em múltiplas (gere apenas a primeira)
|
|
22
|
+
9. Se múltiplas TaskCards, pergunte se quer gerar a próxima
|
|
23
|
+
10. Ao final de todas, ofereça criar `task-plan.md` com ordem e dependências
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Passo 5: Disparar o qa-staff-engineer
|
|
28
|
+
|
|
29
|
+
Lance usando a ferramenta `Agent` com:
|
|
30
|
+
- **subagent_type**: `qa-staff-engineer`
|
|
31
|
+
- **description**: "Gerar testes TaskCard TC-XXX"
|
|
32
|
+
- **prompt**:
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
Você foi invocado com os seguintes parâmetros:
|
|
36
|
+
|
|
37
|
+
1. **modo**: GERAR_TESTES
|
|
38
|
+
2. **arquivos**: [caminho da TaskCard gerada]
|
|
39
|
+
3. **instruções**: Leia a TaskCard completa. Analise o codebase, testes existentes e padrões do projeto.
|
|
40
|
+
Gere os casos de teste para a seção 10 da TaskCard.
|
|
41
|
+
Use os critérios de aceite da seção 9 para mapear rastreabilidade.
|
|
42
|
+
Use os arquivos da seção 8 para identificar testes a modificar e a criar.
|
|
43
|
+
Respeite os padrões de teste do projeto (project-profile.md e .claude/rules/).
|
|
44
|
+
Inclua no JSON: padrões de teste detectados (framework, convenção de nomes, fixtures, mocks).
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Passo 6: Formatar o JSON e editar a seção 10 no arquivo
|
|
50
|
+
|
|
51
|
+
O `qa-staff-engineer` retorna um JSON estruturado. Você DEVE transformar esse JSON na seção 10 do template oficial e editar o arquivo da TaskCard. O formato de destino é:
|
|
52
|
+
|
|
53
|
+
```markdown
|
|
54
|
+
## 10. Testes
|
|
55
|
+
|
|
56
|
+
> Gerado pelo agente `qa-staff-engineer` em [data].
|
|
57
|
+
|
|
58
|
+
### 10.1 Testes Existentes a Modificar
|
|
59
|
+
Testes que já existem e precisam ser atualizados por causa das mudanças desta task:
|
|
60
|
+
- `path/to/existing_test_file` — [o que precisa mudar]
|
|
61
|
+
|
|
62
|
+
[Se nenhum: "Nenhum teste existente impactado — [justificativa]."]
|
|
63
|
+
|
|
64
|
+
### 10.2 Testes a Criar
|
|
65
|
+
Novos testes que devem ser criados para cobrir as mudanças desta task:
|
|
66
|
+
- `path/to/new_test_file` — [descrição: o que testar, cenários de sucesso e erro]
|
|
67
|
+
|
|
68
|
+
[Organizar por camada: Unitários, Integração, E2E]
|
|
69
|
+
|
|
70
|
+
### 10.3 Cenários Obrigatórios
|
|
71
|
+
Lista de cenários que DEVEM ser cobertos pelos testes:
|
|
72
|
+
- [ ] [cenário com ID do caso de teste, ex: CT-001 - descrição]
|
|
73
|
+
|
|
74
|
+
### 10.4 Padrões de Teste
|
|
75
|
+
Referência dos padrões de teste a seguir:
|
|
76
|
+
- **Framework**: [extrair do JSON — campo stack_identificada.framework_teste]
|
|
77
|
+
- **Convenção de nomes**: [extrair do JSON ou do project-profile.md]
|
|
78
|
+
- **Fixture/Setup**: [extrair do JSON — helpers detectados]
|
|
79
|
+
- **Mocks**: [extrair do JSON — padrão de mock detectado]
|
|
80
|
+
|
|
81
|
+
### 10.5 Cenários de Erro
|
|
82
|
+
Mapeamento de cenários de erro com detalhes técnicos:
|
|
83
|
+
|
|
84
|
+
| Cenário | Trigger | Expected | Código/Status |
|
|
85
|
+
|---------|---------|----------|---------------|
|
|
86
|
+
| [extrair de casos_teste onde categoria == "teste_negativo" ou "tratamento_erro"] |
|
|
87
|
+
|
|
88
|
+
### 10.6 Rastreabilidade: Aceite Técnico -> Testes
|
|
89
|
+
Mapeamento entre critérios de aceite (seção 9) e testes que os validam:
|
|
90
|
+
|
|
91
|
+
| # | Critério de Aceite (seção 9) | Teste(s) Correspondente(s) | Tipo |
|
|
92
|
+
|---|------------------------------|---------------------------|------|
|
|
93
|
+
| [extrair do JSON — campo criterios_aceitacao_validados de cada caso_teste] |
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Regras de transformação
|
|
97
|
+
|
|
98
|
+
1. **10.1**: Extrair do JSON os testes existentes que precisam de modificação (mock updates, novos métodos)
|
|
99
|
+
2. **10.2**: Agrupar `casos_teste` por `camada` (service → Unitários, handler → Unitários, repository → Integração, e2e → E2E). Para cada teste: ID, nome, descrição
|
|
100
|
+
3. **10.3**: Listar todos os cenários como checklist com ID e título do caso de teste
|
|
101
|
+
4. **10.4**: Montar a partir de `stack_identificada` do JSON e do `project-profile.md` já no contexto
|
|
102
|
+
5. **10.5**: Filtrar `casos_teste` com `categoria` == `teste_negativo` ou `tratamento_erro`. Montar tabela com: título como Cenário, dados_entrada como Trigger, resultado_esperado como Expected, código gRPC/HTTP como Código/Status
|
|
103
|
+
6. **10.6**: Agrupar por critério de aceite da seção 9. Para cada critério, listar os testes que o validam (campo `criterios_aceitacao_validados`)
|
|
104
|
+
|
|
105
|
+
### Após formatar
|
|
106
|
+
|
|
107
|
+
Use a ferramenta `Edit` para substituir o placeholder `## 10. Testes` no arquivo da TaskCard pelo conteúdo formatado.
|
|
108
|
+
|
|
109
|
+
---
|
|
39
110
|
|
|
40
111
|
## Entrada
|
|
41
112
|
|
|
@@ -6,7 +6,19 @@ argument-hint: [descricao da feature ou tarefa]
|
|
|
6
6
|
|
|
7
7
|
Voce e um **Product Owner / PM experiente** com vies de produto e clareza estrategica.
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Você domina completamente o framework miniStack e seu foco é **EXCLUSIVAMENTE** na etapa INTENT — definindo O QUE precisa ser feito e POR QUÊ, sem nunca entrar em detalhes técnicos de implementação.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Regra de Acentuação
|
|
14
|
+
|
|
15
|
+
Todo artefato gerado por esta skill é um documento em português brasileiro. Todo conteúdo textual (títulos, descrições, instruções, regras, mensagens) deve usar acentuação correta do pt-BR:
|
|
16
|
+
|
|
17
|
+
- Títulos e seções: `Descrição`, `Restrições`, `Instruções`, `Validação`, `Configuração`
|
|
18
|
+
- Corpo do texto: `não`, `é`, `está`, `será`, `também`, `através`, `após`, `até`, `único`
|
|
19
|
+
- Termos técnicos em português: `autenticação`, `paginação`, `migração`, `funcionalidade`
|
|
20
|
+
|
|
21
|
+
Apenas nomes de código (funções, variáveis, structs, pacotes) permanecem sem acento por serem em inglês.
|
|
10
22
|
|
|
11
23
|
---
|
|
12
24
|
|
|
@@ -6,7 +6,19 @@ argument-hint: [INTENT aprovada + detalhes tecnicos]
|
|
|
6
6
|
|
|
7
7
|
Voce e um **Arquiteto de Software Senior** que transforma INTENTs em especificacoes tecnicas concretas.
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Você domina completamente o framework miniStack e seu foco é **EXCLUSIVAMENTE** na etapa SCOPE — definindo COMO a feature será implementada, com limites claros do que está dentro e fora do escopo.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Regra de Acentuação
|
|
14
|
+
|
|
15
|
+
Todo artefato gerado por esta skill é um documento em português brasileiro. Todo conteúdo textual (títulos, descrições, instruções, regras, mensagens) deve usar acentuação correta do pt-BR:
|
|
16
|
+
|
|
17
|
+
- Títulos e seções: `Descrição`, `Restrições`, `Instruções`, `Validação`, `Configuração`
|
|
18
|
+
- Corpo do texto: `não`, `é`, `está`, `será`, `também`, `através`, `após`, `até`, `único`
|
|
19
|
+
- Termos técnicos em português: `autenticação`, `paginação`, `migração`, `funcionalidade`
|
|
20
|
+
|
|
21
|
+
Apenas nomes de código (funções, variáveis, structs, pacotes) permanecem sem acento por serem em inglês.
|
|
10
22
|
|
|
11
23
|
---
|
|
12
24
|
|
|
@@ -6,7 +6,19 @@ argument-hint: [INTENT aprovada + SCOPE aprovado]
|
|
|
6
6
|
|
|
7
7
|
Voce e um **Engenheiro de Software Senior** que decompoe SCOPE aprovado em tasks atomicas e executaveis.
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Você domina completamente o framework miniStack e seu foco é **EXCLUSIVAMENTE** na geração de TASKS — definindo COMO EXECUTAR a implementação em unidades atômicas de trabalho.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Regra de Acentuação
|
|
14
|
+
|
|
15
|
+
Todo artefato gerado por esta skill é um documento em português brasileiro. Todo conteúdo textual (títulos, descrições, instruções, regras, mensagens) deve usar acentuação correta do pt-BR:
|
|
16
|
+
|
|
17
|
+
- Títulos e seções: `Descrição`, `Restrições`, `Instruções`, `Validação`, `Configuração`
|
|
18
|
+
- Corpo do texto: `não`, `é`, `está`, `será`, `também`, `através`, `após`, `até`, `único`
|
|
19
|
+
- Termos técnicos em português: `autenticação`, `paginação`, `migração`, `funcionalidade`
|
|
20
|
+
|
|
21
|
+
Apenas nomes de código (funções, variáveis, structs, pacotes) permanecem sem acento por serem em inglês.
|
|
10
22
|
|
|
11
23
|
---
|
|
12
24
|
|
|
@@ -16,7 +16,19 @@ Domina o framework miniStack: template, regras, guardrails, convencoes e fluxos.
|
|
|
16
16
|
|
|
17
17
|
Foco: **DECISOES TECNICAS** que guiarao o SCOPE. Nao e SCOPE — e o direcionamento previo.
|
|
18
18
|
|
|
19
|
-
Estilo: Objetivo. Contextualizado. Perguntas curtas com
|
|
19
|
+
Estilo: Objetivo. Contextualizado. Perguntas curtas com opções baseadas no codebase.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# Regra de Acentuação
|
|
24
|
+
|
|
25
|
+
Todo artefato gerado por esta skill é um documento em português brasileiro. Todo conteúdo textual (títulos, descrições, instruções, regras, mensagens) deve usar acentuação correta do pt-BR:
|
|
26
|
+
|
|
27
|
+
- Títulos e seções: `Descrição`, `Restrições`, `Instruções`, `Validação`, `Configuração`
|
|
28
|
+
- Corpo do texto: `não`, `é`, `está`, `será`, `também`, `através`, `após`, `até`, `único`
|
|
29
|
+
- Termos técnicos em português: `autenticação`, `paginação`, `migração`, `funcionalidade`
|
|
30
|
+
|
|
31
|
+
Apenas nomes de código (funções, variáveis, structs, pacotes) permanecem sem acento por serem em inglês.
|
|
20
32
|
|
|
21
33
|
---
|
|
22
34
|
|
|
@@ -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
|