kakaroto-config 1.0.5 → 1.0.6
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/config/ARCHITECTURE.md +5 -7
- package/config/CLAUDE.md +11 -0
- package/config/agents/code-reviewer.md +66 -230
- package/config/agents/code-simplifier.md +70 -116
- package/config/agents/{visual-validator.md → functional-validator.md} +118 -92
- package/config/agents/memory-sync.md +193 -134
- package/config/commands/debug/02-investigate.md +3 -3
- package/config/commands/debug/03-fix.md +28 -6
- package/config/commands/debug/05-commit.md +1 -1
- package/config/commands/debug/validators/fix-permanence.md +1 -1
- package/config/commands/feature/01-understand.md +217 -0
- package/config/commands/feature/02-analyze.md +168 -0
- package/config/commands/feature/03-strategy.md +300 -0
- package/config/commands/feature/04-red.md +160 -0
- package/config/commands/feature/05-green.md +179 -0
- package/config/commands/feature/06-quality.md +109 -0
- package/config/commands/feature/07-validation.md +168 -0
- package/config/commands/feature/08-delivery.md +86 -0
- package/config/commands/feature/09-evaluate.md +140 -0
- package/config/commands/feature/playbooks/_e2e-base.md +39 -0
- package/config/commands/feature/playbooks/api/analyze.md +20 -0
- package/config/commands/feature/playbooks/api/e2e.md +29 -0
- package/config/commands/feature/playbooks/api/red.md +66 -0
- package/config/commands/feature/playbooks/job/analyze.md +29 -0
- package/config/commands/feature/playbooks/job/e2e.md +30 -0
- package/config/commands/feature/playbooks/job/red.md +77 -0
- package/config/commands/feature/playbooks/service/analyze.md +28 -0
- package/config/commands/feature/playbooks/service/e2e.md +25 -0
- package/config/commands/feature/playbooks/service/red.md +75 -0
- package/config/commands/feature/playbooks/ui/analyze.md +26 -0
- package/config/commands/feature/playbooks/ui/e2e.md +61 -0
- package/config/commands/feature/playbooks/ui/red.md +71 -0
- package/config/commands/feature.md +37 -4
- package/config/commands/gate.md +11 -23
- package/config/templates/spec-template.md +82 -68
- package/package.json +1 -1
- package/config/agents/dry-enforcer.md +0 -227
- package/config/commands/debug/techniques/flow-tracing.md +0 -75
- package/config/commands/debug/techniques/hypothesis-generation.md +0 -30
- package/config/commands/debug/techniques/sequential-thinking-config.md +0 -79
- package/config/commands/feature/01-interview.md +0 -143
- package/config/commands/feature/02-spec.md +0 -98
- package/config/commands/feature/03-planner.md +0 -200
- package/config/commands/feature/04-implement.md +0 -81
- package/config/commands/feature/05-quality.md +0 -140
- package/config/commands/feature/06-commit.md +0 -91
- package/config/commands/feature/07-evaluate.md +0 -129
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
# Tecnica: Geracao de Hipoteses
|
|
2
|
-
|
|
3
|
-
Antes de investigar profundamente, listar MULTIPLAS causas possiveis.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Passo 1: Brainstorm (minimo 3 hipoteses)
|
|
8
|
-
|
|
9
|
-
| # | Hipotese | Probabilidade | Evidencia Inicial |
|
|
10
|
-
|---|----------|---------------|-------------------|
|
|
11
|
-
| 1 | [causa A] | Alta/Media/Baixa | [o que sugere isso] |
|
|
12
|
-
| 2 | [causa B] | Alta/Media/Baixa | [o que sugere isso] |
|
|
13
|
-
| 3 | [causa C] | Alta/Media/Baixa | [o que sugere isso] |
|
|
14
|
-
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
## Passo 2: Ranking
|
|
18
|
-
|
|
19
|
-
Ordenar hipoteses por:
|
|
20
|
-
1. **Evidencia existente** (logs, reproducao, erros)
|
|
21
|
-
2. **Frequencia historica** (bugs similares ja resolvidos)
|
|
22
|
-
3. **Simplicidade** (Navalha de Occam)
|
|
23
|
-
|
|
24
|
-
---
|
|
25
|
-
|
|
26
|
-
## Passo 3: Estrategia de Exploracao
|
|
27
|
-
|
|
28
|
-
- Comecar pela hipotese #1 no Sequential Thinking
|
|
29
|
-
- SE refutada: usar `branchFromThought` para explorar #2
|
|
30
|
-
- Registrar hipoteses descartadas e POR QUE (evita repetir)
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
# Tecnica: Sequential Thinking para Causa Raiz
|
|
2
|
-
|
|
3
|
-
**OBRIGATORIO**: Usar `mcp__sequential-thinking__sequentialthinking` para analise profunda.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Configuracao Inicial
|
|
8
|
-
|
|
9
|
-
```javascript
|
|
10
|
-
mcp__sequential-thinking__sequentialthinking({
|
|
11
|
-
thought: "[hipotese inicial baseada em evidencias]",
|
|
12
|
-
nextThoughtNeeded: true,
|
|
13
|
-
thoughtNumber: 1,
|
|
14
|
-
totalThoughts: 8 // MINIMO 8 thoughts
|
|
15
|
-
})
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
## Regras para Cada Thought
|
|
21
|
-
|
|
22
|
-
Cada thought DEVE conter:
|
|
23
|
-
|
|
24
|
-
1. **Hipotese especifica**: "Acredito que o bug acontece porque..."
|
|
25
|
-
2. **Busca de evidencia**: Usar Grep/Read para encontrar arquivo:linha
|
|
26
|
-
3. **Avaliacao**: A evidencia suporta ou refuta a hipotese?
|
|
27
|
-
4. **Proxima acao**:
|
|
28
|
-
- SE suporta: Ir mais fundo ("Por que isso acontece?")
|
|
29
|
-
- SE refuta: Marcar `isRevision: true` e tentar alternativa
|
|
30
|
-
|
|
31
|
-
---
|
|
32
|
-
|
|
33
|
-
## Parametros Especiais
|
|
34
|
-
|
|
35
|
-
| Parametro | Quando Usar |
|
|
36
|
-
|-----------|-------------|
|
|
37
|
-
| `isRevision: true` | Quando descartando hipotese anterior |
|
|
38
|
-
| `revisesThought: N` | Indicar qual thought esta sendo revisado |
|
|
39
|
-
| `branchFromThought: N` | Quando explorando caminho alternativo |
|
|
40
|
-
| `branchId: "hipotese-2"` | Identificar o branch atual |
|
|
41
|
-
| `needsMoreThoughts: true` | Se precisa ir mais fundo |
|
|
42
|
-
|
|
43
|
-
---
|
|
44
|
-
|
|
45
|
-
## Criterios de Parada
|
|
46
|
-
|
|
47
|
-
Somente definir `nextThoughtNeeded: false` quando:
|
|
48
|
-
|
|
49
|
-
- [ ] Chegou em algo que PODE SER MUDADO no codigo
|
|
50
|
-
- [ ] Tem EVIDENCIA concreta (arquivo:linha + codigo)
|
|
51
|
-
- [ ] Nao ha mais "por que?" logico para perguntar
|
|
52
|
-
- [ ] A causa identificada explica TODOS os sintomas
|
|
53
|
-
|
|
54
|
-
---
|
|
55
|
-
|
|
56
|
-
## Exemplo de Fluxo
|
|
57
|
-
|
|
58
|
-
```
|
|
59
|
-
Thought 1: "Hipotese: erro em validateInput()"
|
|
60
|
-
→ Grep encontra validacao em services/videoService.ts:45
|
|
61
|
-
→ Evidencia: funcao nao valida campo X
|
|
62
|
-
|
|
63
|
-
Thought 2: "Por que nao valida campo X?"
|
|
64
|
-
→ Read services/videoService.ts
|
|
65
|
-
→ Evidencia: schema Zod nao inclui X (linha 12)
|
|
66
|
-
|
|
67
|
-
Thought 3: "Por que schema nao inclui X?"
|
|
68
|
-
→ git log mostra: adicionado em commit abc123
|
|
69
|
-
→ Evidencia: campo X e novo, schema desatualizado
|
|
70
|
-
|
|
71
|
-
Thought 4 (isRevision=true): "Mas wait, X deveria ser opcional..."
|
|
72
|
-
→ Re-analisando: o problema e que X e required no destino
|
|
73
|
-
|
|
74
|
-
Thought 5: "Onde X e required?"
|
|
75
|
-
→ Grep encontra em api/handlers/upload.ts:78
|
|
76
|
-
→ Evidencia: handler espera X mas nao recebe
|
|
77
|
-
|
|
78
|
-
... continua ate causa raiz confirmada ...
|
|
79
|
-
```
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
# Fase 1: Interview
|
|
2
|
-
|
|
3
|
-
## Passo 1: Entender o Request
|
|
4
|
-
|
|
5
|
-
Analisar $ARGUMENTS para identificar:
|
|
6
|
-
- Qual feature está sendo solicitada
|
|
7
|
-
- Termos-chave para busca
|
|
8
|
-
- Área provável do codebase (api/, components/, services/)
|
|
9
|
-
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
## Passo 2: Buscar Contexto Específico
|
|
13
|
-
|
|
14
|
-
Baseado no Passo 1, carregar APENAS o necessário:
|
|
15
|
-
|
|
16
|
-
### 2.1 Memory (se relevante)
|
|
17
|
-
```
|
|
18
|
-
mcp__memory__search_nodes({ query: "<termos-específicos-da-feature>" })
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
### 2.2 Codebase (áreas identificadas)
|
|
22
|
-
```
|
|
23
|
-
Grep: termos em <área-específica>/
|
|
24
|
-
Read: arquivos diretamente relacionados
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
**Evitar:** `Glob: **/*.ts` ou buscas genéricas em todo codebase.
|
|
28
|
-
|
|
29
|
-
---
|
|
30
|
-
|
|
31
|
-
## Passo 3: Identificar Patterns (sob demanda)
|
|
32
|
-
|
|
33
|
-
Após encontrar código relevante, identificar:
|
|
34
|
-
- Como components/services similares funcionam
|
|
35
|
-
- Como erros são tratados nessa área
|
|
36
|
-
- Patterns específicos a seguir
|
|
37
|
-
|
|
38
|
-
---
|
|
39
|
-
|
|
40
|
-
## Passo 4: Reflexão
|
|
41
|
-
|
|
42
|
-
Usar `mcp__sequential-thinking__sequentialthinking`:
|
|
43
|
-
|
|
44
|
-
1. **O que descobri** - Síntese do contexto carregado
|
|
45
|
-
2. **O que ainda posso descobrir** - Gaps que consigo preencher explorando mais
|
|
46
|
-
3. **O que APENAS o user pode responder** - Decisões de produto, preferências UX
|
|
47
|
-
4. **Formular perguntas mínimas** - Só o essencial
|
|
48
|
-
|
|
49
|
-
`totalThoughts`: 4
|
|
50
|
-
|
|
51
|
-
---
|
|
52
|
-
|
|
53
|
-
## Passo 5: Perguntas ao User (APENAS decisões de produto)
|
|
54
|
-
|
|
55
|
-
**Usar AskUserQuestion para todas as perguntas.**
|
|
56
|
-
|
|
57
|
-
### Perguntas típicas (adaptar ao contexto):
|
|
58
|
-
- **Problema**: Qual problema principal resolve? (Eficiência/Funcionalidade/UX)
|
|
59
|
-
- **Escopo**: MVP mínimo ou feature completa?
|
|
60
|
-
- **Design**: Tem referência ou seguir patterns existentes?
|
|
61
|
-
- **Trade-offs**: Se encontrar 2 approaches, qual preferir?
|
|
62
|
-
|
|
63
|
-
Exemplo de uso:
|
|
64
|
-
```javascript
|
|
65
|
-
AskUserQuestion({
|
|
66
|
-
questions: [{
|
|
67
|
-
question: "[pergunta específica]",
|
|
68
|
-
header: "[2-3 palavras]",
|
|
69
|
-
options: [
|
|
70
|
-
{ label: "[opção]", description: "[trade-off]" },
|
|
71
|
-
{ label: "[opção]", description: "[trade-off]" }
|
|
72
|
-
],
|
|
73
|
-
multiSelect: false
|
|
74
|
-
}]
|
|
75
|
-
})
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
---
|
|
79
|
-
|
|
80
|
-
## Passo 6: Apresentar Descobertas
|
|
81
|
-
|
|
82
|
-
Mostrar ao user:
|
|
83
|
-
- Services/patterns encontrados
|
|
84
|
-
- Tabelas relevantes do schema
|
|
85
|
-
- Libs que serão usadas
|
|
86
|
-
- Pattern que será seguido
|
|
87
|
-
|
|
88
|
-
---
|
|
89
|
-
|
|
90
|
-
## Passo 7: Persistir Interview
|
|
91
|
-
|
|
92
|
-
### 7.1 Gerar slug
|
|
93
|
-
Primeira palavra do problema + data. Exemplo: `filtro-2026-01-10.md`
|
|
94
|
-
|
|
95
|
-
### 7.2 Salvar respostas
|
|
96
|
-
```
|
|
97
|
-
Write .claude/interviews/{slug}.md
|
|
98
|
-
Write .claude/interviews/current.md (cópia do conteúdo)
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
### 7.3 Formato do arquivo
|
|
102
|
-
```markdown
|
|
103
|
-
# Interview: {feature-name}
|
|
104
|
-
|
|
105
|
-
## Contexto Descoberto
|
|
106
|
-
- Services encontrados: [lista]
|
|
107
|
-
- Patterns identificados: [lista]
|
|
108
|
-
- Código reutilizável: [arquivos:linhas]
|
|
109
|
-
|
|
110
|
-
## Perguntas e Respostas
|
|
111
|
-
| # | Pergunta | Resposta | Impacto na Implementação |
|
|
112
|
-
|---|----------|----------|--------------------------|
|
|
113
|
-
| 1 | [pergunta] | [resposta] | [como afeta] |
|
|
114
|
-
|
|
115
|
-
## Decisões Implícitas
|
|
116
|
-
- [decisões inferidas do contexto ou defaults do projeto]
|
|
117
|
-
|
|
118
|
-
## Termos-chave para Busca
|
|
119
|
-
- [termos que outras fases podem usar para grep/search]
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
---
|
|
123
|
-
|
|
124
|
-
## Passo 8: Checkpoint
|
|
125
|
-
|
|
126
|
-
Usar TodoWrite para registrar items da fase Interview como "completed".
|
|
127
|
-
Adicionar "Spec: gerar especificacao" como "pending".
|
|
128
|
-
|
|
129
|
-
**Gate:** Todos items de Interview devem estar "completed" E interviews/current.md deve existir.
|
|
130
|
-
|
|
131
|
-
---
|
|
132
|
-
|
|
133
|
-
## Output
|
|
134
|
-
|
|
135
|
-
Resumo estruturado:
|
|
136
|
-
- Problema identificado
|
|
137
|
-
- Escopo definido
|
|
138
|
-
- Decisões de UX
|
|
139
|
-
- Patterns a seguir
|
|
140
|
-
|
|
141
|
-
---
|
|
142
|
-
## PRÓXIMA FASE
|
|
143
|
-
AÇÃO OBRIGATÓRIA: Read ~/.claude/commands/feature/02-spec.md
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
# Fase 2: Spec
|
|
2
|
-
|
|
3
|
-
## Passo 0: Context
|
|
4
|
-
|
|
5
|
-
Contexto de projeto ja carregado em 01-interview (mesma sessao).
|
|
6
|
-
|
|
7
|
-
### 0.1 Carregar Respostas da Interview
|
|
8
|
-
```
|
|
9
|
-
Read .claude/interviews/current.md
|
|
10
|
-
```
|
|
11
|
-
Este arquivo contém: perguntas respondidas, decisões implícitas, termos-chave.
|
|
12
|
-
**Usar como referência** para manter consistência com o que foi acordado.
|
|
13
|
-
|
|
14
|
-
### 0.2 Buscar Patterns (se necessário)
|
|
15
|
-
```
|
|
16
|
-
mcp__memory__search_nodes({ query: "pattern" })
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
### 0.3 SE retomando sessão interrompida
|
|
20
|
-
```
|
|
21
|
-
Read .claude/interviews/current.md (contexto original)
|
|
22
|
-
Read .claude/specs/current.md (spec parcial, se existir)
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
---
|
|
26
|
-
|
|
27
|
-
## Passo 1: Pensamento Estruturado
|
|
28
|
-
|
|
29
|
-
Usar `mcp__sequential-thinking__sequentialthinking` para planejar:
|
|
30
|
-
|
|
31
|
-
1. **Thought 1**: Quais componentes esta feature precisa?
|
|
32
|
-
2. **Thought 2**: Onde código similar existe no codebase?
|
|
33
|
-
3. **Thought 3**: Quais patterns do projeto devo seguir?
|
|
34
|
-
4. **Thought 4**: Quais trade-offs arquiteturais existem?
|
|
35
|
-
5. **Thought 5**: Qual a abordagem mais simples que resolve?
|
|
36
|
-
|
|
37
|
-
`totalThoughts`: 5-8 (ajustar conforme complexidade)
|
|
38
|
-
|
|
39
|
-
---
|
|
40
|
-
|
|
41
|
-
## Passo 2: Análise de Reutilização
|
|
42
|
-
|
|
43
|
-
### 2.1 Buscar Código Existente
|
|
44
|
-
```
|
|
45
|
-
Grep: termos da feature em services/, utils/, lib/
|
|
46
|
-
Glob: arquivos com nomes similares
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
### 2.2 Mapear Reutilização
|
|
50
|
-
| Necessidade | Código Existente | Ação |
|
|
51
|
-
|-------------|------------------|------|
|
|
52
|
-
| [o que precisa] | [arquivo:linha] | Reutilizar/Estender/Criar |
|
|
53
|
-
|
|
54
|
-
**Default = reutilizar. Código novo precisa justificativa.**
|
|
55
|
-
|
|
56
|
-
---
|
|
57
|
-
|
|
58
|
-
## Passo 3: Gerar Spec
|
|
59
|
-
|
|
60
|
-
Carregar template:
|
|
61
|
-
```
|
|
62
|
-
Read ~/.claude/templates/spec-template.md
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
Preencher template com informações coletadas na interview.
|
|
66
|
-
|
|
67
|
-
---
|
|
68
|
-
|
|
69
|
-
## Output
|
|
70
|
-
|
|
71
|
-
1. MOSTRAR spec completa ao user (visibilidade)
|
|
72
|
-
2. Spec = contrato, implementacao deve seguir
|
|
73
|
-
|
|
74
|
-
---
|
|
75
|
-
|
|
76
|
-
## Passo 4: Persistir Spec
|
|
77
|
-
|
|
78
|
-
1. Gerar slug: primeira palavra do problema + data
|
|
79
|
-
Exemplo: `filtro-2026-01-10.md`
|
|
80
|
-
|
|
81
|
-
2. Salvar spec:
|
|
82
|
-
```
|
|
83
|
-
Write .claude/specs/{slug}.md
|
|
84
|
-
Write .claude/specs/current.md (copia do conteudo)
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
3. Confirmar: "Spec salva em .claude/specs/{slug}.md"
|
|
88
|
-
|
|
89
|
-
---
|
|
90
|
-
|
|
91
|
-
## Passo 5: Checkpoint
|
|
92
|
-
|
|
93
|
-
Usar TodoWrite para registrar items da fase Spec como "completed".
|
|
94
|
-
Adicionar "Planner: criar plano de tarefas" como "pending".
|
|
95
|
-
|
|
96
|
-
---
|
|
97
|
-
## PROXIMA FASE
|
|
98
|
-
ACAO OBRIGATORIA: Read ~/.claude/commands/feature/03-planner.md
|
|
@@ -1,200 +0,0 @@
|
|
|
1
|
-
# Fase 3: Planner
|
|
2
|
-
|
|
3
|
-
## Passo 0: Context
|
|
4
|
-
|
|
5
|
-
SE continuacao direta de 02-spec (mesma sessao):
|
|
6
|
-
Contexto ja disponivel, prosseguir
|
|
7
|
-
|
|
8
|
-
### 0.1 Carregar Contexto da Interview (SE necessário)
|
|
9
|
-
```
|
|
10
|
-
Read .claude/interviews/current.md
|
|
11
|
-
```
|
|
12
|
-
Consultar SE surgir dúvida sobre decisões já tomadas na Interview.
|
|
13
|
-
Evita re-perguntar o que já foi respondido.
|
|
14
|
-
|
|
15
|
-
### 0.2 SE retomando sessão interrompida
|
|
16
|
-
```
|
|
17
|
-
Read .claude/interviews/current.md (decisões originais)
|
|
18
|
-
Read .claude/specs/current.md (spec aprovada)
|
|
19
|
-
Read .claude/plans/current.md (plano parcial, se existir)
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
---
|
|
23
|
-
|
|
24
|
-
## Passo 1: Pensamento Estruturado
|
|
25
|
-
|
|
26
|
-
Usar `mcp__sequential-thinking__sequentialthinking` para planejar:
|
|
27
|
-
|
|
28
|
-
1. **Thought 1**: Quais são as dependências entre tarefas?
|
|
29
|
-
2. **Thought 2**: Qual ordem minimiza retrabalho?
|
|
30
|
-
3. **Thought 3**: Quais riscos podem bloquear implementação?
|
|
31
|
-
4. **Thought 4**: Onde reutilizar código vs criar novo?
|
|
32
|
-
5. **Thought 5**: Quais testes preciso para cada tarefa?
|
|
33
|
-
|
|
34
|
-
`totalThoughts`: 5-7
|
|
35
|
-
|
|
36
|
-
---
|
|
37
|
-
|
|
38
|
-
## Passo 2: Análise Anti-Duplicação (OBRIGATÓRIO)
|
|
39
|
-
|
|
40
|
-
### 2.1 Mapeamento de Código Reutilizável
|
|
41
|
-
| Necessidade | Código Existente | Arquivo:Linha | Ação |
|
|
42
|
-
|-------------|------------------|---------------|------|
|
|
43
|
-
| [o que precisa] | [helper/service] | [path:line] | Reutilizar/Estender/Criar |
|
|
44
|
-
|
|
45
|
-
### 2.2 Oportunidades de Abstração
|
|
46
|
-
Se 3+ lugares usam padrão similar, criar abstração:
|
|
47
|
-
| Padrão Repetido | Locais | Proposta |
|
|
48
|
-
|-----------------|--------|----------|
|
|
49
|
-
| [código duplicado] | [arquivos] | [helper/hook] |
|
|
50
|
-
|
|
51
|
-
### 2.3 Checklist
|
|
52
|
-
- [ ] Justifiquei cada arquivo NOVO?
|
|
53
|
-
- [ ] Verifiquei helpers similares existentes?
|
|
54
|
-
- [ ] Código novo pode ser generalizado?
|
|
55
|
-
|
|
56
|
-
---
|
|
57
|
-
|
|
58
|
-
## Passo 3: Breakdown de Tarefas
|
|
59
|
-
|
|
60
|
-
Criar lista ordenada baseada na spec:
|
|
61
|
-
|
|
62
|
-
| # | Tarefa | Arquivos | Depende de |
|
|
63
|
-
|---|--------|----------|------------|
|
|
64
|
-
| 1 | [tarefa] | [arquivos] | - |
|
|
65
|
-
| 1.1 | Testes para tarefa 1 | [*.test.ts] | 1 |
|
|
66
|
-
| 2 | [tarefa] | [arquivos] | 1 |
|
|
67
|
-
| 2.1 | Testes para tarefa 2 | [*.test.ts] | 2 |
|
|
68
|
-
|
|
69
|
-
**Regras:**
|
|
70
|
-
- Tarefas pequenas (< 30 min)
|
|
71
|
-
- Uma responsabilidade por tarefa
|
|
72
|
-
- Toda função nova = teste correspondente
|
|
73
|
-
- Dependências claras
|
|
74
|
-
|
|
75
|
-
---
|
|
76
|
-
|
|
77
|
-
## Passo 4: Resumo de Arquivos
|
|
78
|
-
|
|
79
|
-
**Criar:**
|
|
80
|
-
- [novos arquivos]
|
|
81
|
-
|
|
82
|
-
**Modificar:**
|
|
83
|
-
- [arquivos existentes]
|
|
84
|
-
|
|
85
|
-
**Deletar:**
|
|
86
|
-
- [arquivos a remover]
|
|
87
|
-
|
|
88
|
-
---
|
|
89
|
-
|
|
90
|
-
## Passo 5: Riscos
|
|
91
|
-
|
|
92
|
-
| Risco | Probabilidade | Mitigação |
|
|
93
|
-
|-------|---------------|-----------|
|
|
94
|
-
| [risco] | Alta/Média/Baixa | [como reduzir] |
|
|
95
|
-
|
|
96
|
-
---
|
|
97
|
-
|
|
98
|
-
## Passo 6: Quality Gates
|
|
99
|
-
|
|
100
|
-
Apos implementacao:
|
|
101
|
-
- [ ] `npm test` passa
|
|
102
|
-
- [ ] `npx tsc --noEmit` sem erros
|
|
103
|
-
- [ ] `npm run build` sucesso
|
|
104
|
-
|
|
105
|
-
---
|
|
106
|
-
|
|
107
|
-
## Passo 7: Registro de Decisões
|
|
108
|
-
|
|
109
|
-
### 7.1 Decisões Tomadas
|
|
110
|
-
Documentar decisões feitas autonomamente durante o planejamento:
|
|
111
|
-
|
|
112
|
-
| Decisão | Opções Consideradas | Escolha | Justificativa |
|
|
113
|
-
|---------|---------------------|---------|---------------|
|
|
114
|
-
| [ex: estrutura de dados] | Array / Map | Map | Lookup O(1) necessário |
|
|
115
|
-
| [ex: local do código] | services/ / utils/ | services/ | Segue pattern existente |
|
|
116
|
-
|
|
117
|
-
### 7.2 Decisões Pendentes
|
|
118
|
-
Listar decisões que APENAS o user pode tomar:
|
|
119
|
-
|
|
120
|
-
| Decisão | Opções | Impacto na Feature |
|
|
121
|
-
|---------|--------|-------------------|
|
|
122
|
-
| [ex: formato export] | CSV / JSON / Excel | Afeta UX de download |
|
|
123
|
-
|
|
124
|
-
**Critérios para classificar como "Pendente":**
|
|
125
|
-
1. Impacta comportamento/UX visível ao user final
|
|
126
|
-
2. Não existe default claro no projeto
|
|
127
|
-
3. Não foi respondida na Interview (verificar interviews/current.md)
|
|
128
|
-
|
|
129
|
-
---
|
|
130
|
-
|
|
131
|
-
## Passo 8: Clarificações (CONDICIONAL)
|
|
132
|
-
|
|
133
|
-
**SE "Decisões Pendentes" NÃO estiver vazio:**
|
|
134
|
-
|
|
135
|
-
Usar AskUserQuestion para resolver cada decisão pendente.
|
|
136
|
-
**Limite:** Máximo 5 perguntas por execução.
|
|
137
|
-
|
|
138
|
-
```javascript
|
|
139
|
-
AskUserQuestion({
|
|
140
|
-
questions: [{
|
|
141
|
-
question: "[Decisão pendente como pergunta]",
|
|
142
|
-
header: "[2-3 palavras]",
|
|
143
|
-
options: [
|
|
144
|
-
{ label: "[Opção A]", description: "[trade-off/impacto]" },
|
|
145
|
-
{ label: "[Opção B]", description: "[trade-off/impacto]" }
|
|
146
|
-
],
|
|
147
|
-
multiSelect: false
|
|
148
|
-
}]
|
|
149
|
-
})
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
Após respostas:
|
|
153
|
-
1. Mover decisões de "Pendentes" para "Tomadas"
|
|
154
|
-
2. Adicionar resposta do user na coluna "Escolha"
|
|
155
|
-
3. Atualizar plano se necessário
|
|
156
|
-
|
|
157
|
-
**SE "Decisões Pendentes" estiver vazio:**
|
|
158
|
-
Prosseguir direto para Passo 9.
|
|
159
|
-
|
|
160
|
-
---
|
|
161
|
-
|
|
162
|
-
## Passo 9: Persistir Plano
|
|
163
|
-
|
|
164
|
-
1. Usar mesmo slug da spec (gerado em 02-spec)
|
|
165
|
-
|
|
166
|
-
2. Salvar plano:
|
|
167
|
-
```
|
|
168
|
-
Write .claude/plans/{slug}.md
|
|
169
|
-
Write .claude/plans/current.md (copia do conteudo)
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
---
|
|
173
|
-
|
|
174
|
-
## Passo 10: Checkpoint
|
|
175
|
-
|
|
176
|
-
Usar TodoWrite para registrar items da fase Planner como "completed".
|
|
177
|
-
Adicionar "Implement: executar plano aprovado" como "pending".
|
|
178
|
-
|
|
179
|
-
**Gates:**
|
|
180
|
-
- Plano deve estar salvo
|
|
181
|
-
- "Decisões Pendentes" deve estar vazio (todas resolvidas)
|
|
182
|
-
|
|
183
|
-
---
|
|
184
|
-
|
|
185
|
-
## Output
|
|
186
|
-
|
|
187
|
-
1. Salvar plano (usar TodoWrite para tracking)
|
|
188
|
-
2. Chamar `EnterPlanMode` (não AskUserQuestion para aprovação)
|
|
189
|
-
3. **AGUARDAR aprovacao do user**
|
|
190
|
-
|
|
191
|
-
**Nota:** EnterPlanMode é para aprovar o PLANO. Decisões pendentes devem ser resolvidas ANTES via AskUserQuestion (Passo 8).
|
|
192
|
-
|
|
193
|
-
---
|
|
194
|
-
|
|
195
|
-
## Pos-Aprovacao
|
|
196
|
-
|
|
197
|
-
Apos user aprovar via EnterPlanMode:
|
|
198
|
-
|
|
199
|
-
ACAO OBRIGATORIA: Read ~/.claude/commands/feature/04-implement.md
|
|
200
|
-
Executar implementacao de forma AUTONOMA.
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
# Fase 4: Implement
|
|
2
|
-
|
|
3
|
-
## Contexto
|
|
4
|
-
Plano foi aprovado. Executar de forma AUTÔNOMA até o fim.
|
|
5
|
-
|
|
6
|
-
**Regras desta fase:**
|
|
7
|
-
- Executar sem pedir confirmação ao user
|
|
8
|
-
- Erros devem ser corrigidos, não abandonados
|
|
9
|
-
- Seguir spec aprovada, não modificar escopo
|
|
10
|
-
- Toda função nova precisa de teste
|
|
11
|
-
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
## Passo 1: Setup
|
|
15
|
-
|
|
16
|
-
### 1.1 Carregar Contexto
|
|
17
|
-
```
|
|
18
|
-
Read .claude/specs/current.md (spec e o contrato)
|
|
19
|
-
Read .claude/plans/current.md (plano aprovado)
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
### 1.2 Usar TodoWrite
|
|
23
|
-
Registrar todas as tarefas do plano aprovado.
|
|
24
|
-
Marcar como `in_progress` conforme executa.
|
|
25
|
-
|
|
26
|
-
### 1.3 Relembrar Spec
|
|
27
|
-
A spec e o contrato. Implementacao DEVE seguir a spec.
|
|
28
|
-
|
|
29
|
-
---
|
|
30
|
-
|
|
31
|
-
## Passo 2: Implementação
|
|
32
|
-
|
|
33
|
-
Para cada tarefa do plano:
|
|
34
|
-
|
|
35
|
-
1. **Marcar in_progress** (TodoWrite)
|
|
36
|
-
2. **Implementar** seguindo spec e patterns do projeto
|
|
37
|
-
3. **Criar teste** para cada função nova
|
|
38
|
-
4. **Marcar completed** (TodoWrite)
|
|
39
|
-
|
|
40
|
-
### Regras de Código
|
|
41
|
-
- Funções < 50 linhas
|
|
42
|
-
- Max 2 níveis de nesting
|
|
43
|
-
- Tipos explícitos em exports
|
|
44
|
-
- Reutilizar código existente (mapeado na spec)
|
|
45
|
-
|
|
46
|
-
### Regras de Testes
|
|
47
|
-
- Toda função exportada = teste
|
|
48
|
-
- Happy path + edge cases + erros
|
|
49
|
-
- Seguir pattern de testes existentes no projeto
|
|
50
|
-
|
|
51
|
-
---
|
|
52
|
-
|
|
53
|
-
## Passo 3: Verificação Rápida
|
|
54
|
-
|
|
55
|
-
Após implementar cada módulo:
|
|
56
|
-
```bash
|
|
57
|
-
npm test -- --testPathPattern="[arquivo]"
|
|
58
|
-
npx tsc --noEmit
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
Se falhar: corrigir e continuar (não parar).
|
|
62
|
-
|
|
63
|
-
---
|
|
64
|
-
|
|
65
|
-
## Passo 4: Checkpoint
|
|
66
|
-
|
|
67
|
-
Usar TodoWrite para marcar todas tarefas de implementação como "completed".
|
|
68
|
-
Adicionar "Quality: executar quality gates" como "pending".
|
|
69
|
-
|
|
70
|
-
**Gate:** Todas tarefas do plano devem estar "completed".
|
|
71
|
-
|
|
72
|
-
---
|
|
73
|
-
|
|
74
|
-
## Output
|
|
75
|
-
|
|
76
|
-
Implementação completa.
|
|
77
|
-
|
|
78
|
-
---
|
|
79
|
-
## PRÓXIMA FASE
|
|
80
|
-
AÇÃO OBRIGATÓRIA: Read ~/.claude/commands/feature/05-quality.md
|
|
81
|
-
|