up-cc 0.1.3 → 0.1.5
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/commands/adicionar-testes.md +145 -0
- package/commands/atualizar.md +103 -0
- package/commands/configurar.md +106 -0
- package/commands/depurar.md +163 -0
- package/commands/saude.md +103 -0
- package/package.json +1 -1
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: up:adicionar-testes
|
|
3
|
+
description: Gerar testes para uma fase completa baseado na implementacao e criterios UAT
|
|
4
|
+
argument-hint: "<fase> [instrucoes adicionais]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- Bash
|
|
10
|
+
- Glob
|
|
11
|
+
- Grep
|
|
12
|
+
- Task
|
|
13
|
+
- AskUserQuestion
|
|
14
|
+
argument-instructions: |
|
|
15
|
+
Parse o argumento como numero de fase (inteiro, decimal ou sufixo-letra), mais texto livre opcional.
|
|
16
|
+
Exemplo: /up:adicionar-testes 3
|
|
17
|
+
Exemplo: /up:adicionar-testes 3 focar em edge cases no modulo de precos
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
<objective>
|
|
21
|
+
Gerar testes unitarios e E2E para uma fase completa, usando SUMMARY.md, CONTEXT.md e VERIFICATION.md como especificacoes.
|
|
22
|
+
|
|
23
|
+
Analisa arquivos de implementacao, classifica em TDD (unitario), E2E (browser) ou Pular, apresenta plano de testes para aprovacao, e gera testes seguindo convencoes RED-GREEN.
|
|
24
|
+
|
|
25
|
+
Output: Arquivos de teste commitados com mensagem `test(fase-{N}): adicionar testes unitarios e E2E`
|
|
26
|
+
</objective>
|
|
27
|
+
|
|
28
|
+
<context>
|
|
29
|
+
Fase: $ARGUMENTS
|
|
30
|
+
|
|
31
|
+
@.plano/STATE.md
|
|
32
|
+
@.plano/ROADMAP.md
|
|
33
|
+
</context>
|
|
34
|
+
|
|
35
|
+
<process>
|
|
36
|
+
|
|
37
|
+
## 1. Carregar Contexto da Fase
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
INIT=$(node "$HOME/.claude/up/bin/up-tools.cjs" init operacao-fase "${FASE_ARG}")
|
|
41
|
+
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Extrair: `phase_dir`, `phase_number`, `phase_name`.
|
|
45
|
+
|
|
46
|
+
Se fase nao existe: erro e sair.
|
|
47
|
+
Se nao ha SUMMARY.md: erro — fase precisa estar completa primeiro.
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
51
|
+
UP > ADICIONAR TESTES — Fase ${phase_number}: ${phase_name}
|
|
52
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Ler artefatos da fase:
|
|
56
|
+
1. `${phase_dir}/*-SUMMARY.md` — o que foi implementado, arquivos modificados
|
|
57
|
+
2. `${phase_dir}/CONTEXT.md` — criterios de aceite, decisoes
|
|
58
|
+
3. `${phase_dir}/*-VERIFICATION.md` — cenarios verificados pelo usuario (se UAT feito)
|
|
59
|
+
|
|
60
|
+
## 2. Analisar e Classificar Arquivos
|
|
61
|
+
|
|
62
|
+
Para cada arquivo modificado pela fase, classificar:
|
|
63
|
+
|
|
64
|
+
| Categoria | Criterio | Tipo de Teste |
|
|
65
|
+
|-----------|----------|---------------|
|
|
66
|
+
| **TDD** | Funcoes puras, logica de negocio, validacoes, parsers, transformacoes | Unitario |
|
|
67
|
+
| **E2E** | Interacoes UI, navegacao, formularios, shortcuts, modais | Browser/E2E |
|
|
68
|
+
| **Pular** | Layout/CSS, config, glue code, migrations, tipos sem logica | Nenhum |
|
|
69
|
+
|
|
70
|
+
Ler cada arquivo para confirmar classificacao — nao classificar so pelo nome.
|
|
71
|
+
|
|
72
|
+
## 3. Aprovar Classificacao
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
AskUserQuestion(
|
|
76
|
+
header: "Classificacao de Testes",
|
|
77
|
+
question: |
|
|
78
|
+
### TDD (Unitarios) — {N} arquivos
|
|
79
|
+
{lista com motivo breve}
|
|
80
|
+
|
|
81
|
+
### E2E (Browser) — {M} arquivos
|
|
82
|
+
{lista com motivo breve}
|
|
83
|
+
|
|
84
|
+
### Pular — {K} arquivos
|
|
85
|
+
{lista com motivo breve}
|
|
86
|
+
|
|
87
|
+
Como prosseguir?
|
|
88
|
+
options:
|
|
89
|
+
- "Aprovar e gerar plano de testes"
|
|
90
|
+
- "Ajustar classificacao"
|
|
91
|
+
- "Cancelar"
|
|
92
|
+
)
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## 4. Descobrir Estrutura de Testes do Projeto
|
|
96
|
+
|
|
97
|
+
Identificar:
|
|
98
|
+
- Diretorios de teste existentes
|
|
99
|
+
- Convencoes de nomeacao (`.test.ts`, `.spec.ts`, etc.)
|
|
100
|
+
- Comandos do test runner
|
|
101
|
+
- Framework de teste
|
|
102
|
+
|
|
103
|
+
## 5. Gerar Plano de Testes
|
|
104
|
+
|
|
105
|
+
Para cada arquivo aprovado, criar plano detalhado:
|
|
106
|
+
- **TDD:** funcoes testaveis, cenarios de input, outputs esperados, edge cases
|
|
107
|
+
- **E2E:** cenarios de usuario, acoes, outcomes, assertions
|
|
108
|
+
|
|
109
|
+
Apresentar plano completo para aprovacao.
|
|
110
|
+
|
|
111
|
+
## 6. Gerar Testes
|
|
112
|
+
|
|
113
|
+
**TDD:** Arrange/Act/Assert. Executar cada teste. Flaggar falhas como possiveis bugs (NAO corrigir implementacao).
|
|
114
|
+
|
|
115
|
+
**E2E:** Criar testes de cenario. Executar. Reportar blockers.
|
|
116
|
+
|
|
117
|
+
## 7. Resumo e Commit
|
|
118
|
+
|
|
119
|
+
```
|
|
120
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
121
|
+
UP > TESTES GERADOS
|
|
122
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
123
|
+
|
|
124
|
+
| Categoria | Gerados | Passando | Falhando | Bloqueados |
|
|
125
|
+
|-----------|---------|----------|----------|------------|
|
|
126
|
+
| Unitario | {N} | {n1} | {n2} | {n3} |
|
|
127
|
+
| E2E | {M} | {m1} | {m2} | {m3} |
|
|
128
|
+
|
|
129
|
+
Arquivos criados: {lista}
|
|
130
|
+
Gaps de cobertura: {areas nao testaveis e motivo}
|
|
131
|
+
Bugs descobertos: {falhas que indicam bugs na implementacao}
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Commitar testes passando:
|
|
135
|
+
```bash
|
|
136
|
+
git add {arquivos de teste}
|
|
137
|
+
git commit -m "test(fase-${phase_number}): adicionar testes unitarios e E2E"
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Proximos passos:
|
|
141
|
+
- Se bugs: `/up:rapido corrigir {N} falhas de teste na fase ${phase_number}`
|
|
142
|
+
- Se blockers: descrever o que falta
|
|
143
|
+
- Se tudo ok: "Todos os testes passando!"
|
|
144
|
+
|
|
145
|
+
</process>
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: up:atualizar
|
|
3
|
+
description: Atualizar up-cc para ultima versao via npm
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Bash
|
|
6
|
+
- AskUserQuestion
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
<objective>
|
|
10
|
+
Verificar atualizacoes do up-cc via npm, mostrar mudancas, e instalar se disponivel.
|
|
11
|
+
</objective>
|
|
12
|
+
|
|
13
|
+
<process>
|
|
14
|
+
|
|
15
|
+
## 1. Detectar Versao Instalada
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
# Verificar versao local
|
|
19
|
+
for dir in .claude .config/opencode .gemini; do
|
|
20
|
+
if [ -f "./$dir/up/package.json" ]; then
|
|
21
|
+
node -e "console.log(require('./$dir/up/package.json').version)" 2>/dev/null
|
|
22
|
+
echo "LOCAL"
|
|
23
|
+
break
|
|
24
|
+
fi
|
|
25
|
+
done
|
|
26
|
+
|
|
27
|
+
# Verificar versao global
|
|
28
|
+
for dir in .claude .config/opencode .gemini; do
|
|
29
|
+
if [ -f "$HOME/$dir/up/package.json" ]; then
|
|
30
|
+
node -e "console.log(require('$HOME/$dir/up/package.json').version)" 2>/dev/null
|
|
31
|
+
echo "GLOBAL"
|
|
32
|
+
break
|
|
33
|
+
fi
|
|
34
|
+
done
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Se versao nao encontrada, tratar como 0.0.0.
|
|
38
|
+
|
|
39
|
+
## 2. Verificar Ultima Versao
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
npm view up-cc version 2>/dev/null
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Se falhar: informar que nao foi possivel verificar (offline ou npm indisponivel). Sair.
|
|
46
|
+
|
|
47
|
+
## 3. Comparar Versoes
|
|
48
|
+
|
|
49
|
+
**Se instalada == ultima:**
|
|
50
|
+
```
|
|
51
|
+
UP > JA ATUALIZADO
|
|
52
|
+
|
|
53
|
+
Instalada: X.Y.Z
|
|
54
|
+
Ultima: X.Y.Z
|
|
55
|
+
```
|
|
56
|
+
Sair.
|
|
57
|
+
|
|
58
|
+
## 4. Confirmar e Atualizar
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
UP > ATUALIZACAO DISPONIVEL
|
|
62
|
+
|
|
63
|
+
Instalada: {old}
|
|
64
|
+
Disponivel: {new}
|
|
65
|
+
|
|
66
|
+
A instalacao limpa substitui:
|
|
67
|
+
- commands/up/ (comandos substituidos)
|
|
68
|
+
- up/ (workflows, agentes, templates substituidos)
|
|
69
|
+
|
|
70
|
+
Seus arquivos customizados sao preservados:
|
|
71
|
+
- Comandos fora de commands/up/ ✓
|
|
72
|
+
- Agentes sem prefixo up- ✓
|
|
73
|
+
- Hooks customizados ✓
|
|
74
|
+
- Seus CLAUDE.md ✓
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Perguntar: "Atualizar agora?" (Sim / Nao)
|
|
78
|
+
|
|
79
|
+
Se nao: sair.
|
|
80
|
+
|
|
81
|
+
Se sim:
|
|
82
|
+
|
|
83
|
+
**Install local:**
|
|
84
|
+
```bash
|
|
85
|
+
npx -y up-cc@latest --local
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Install global:**
|
|
89
|
+
```bash
|
|
90
|
+
npx -y up-cc@latest --global
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## 5. Resultado
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
97
|
+
UP > ATUALIZADO: v{old} -> v{new}
|
|
98
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
99
|
+
|
|
100
|
+
Reinicie o Claude Code para usar os novos comandos.
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
</process>
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: up:configurar
|
|
3
|
+
description: Configurar opcoes do workflow UP para o projeto atual
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Read
|
|
6
|
+
- Write
|
|
7
|
+
- Bash
|
|
8
|
+
- AskUserQuestion
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
<objective>
|
|
12
|
+
Configuracao interativa das opcoes do workflow UP. Atualiza .plano/config.json com preferencias do usuario.
|
|
13
|
+
</objective>
|
|
14
|
+
|
|
15
|
+
<process>
|
|
16
|
+
|
|
17
|
+
## 1. Carregar Configuracao Atual
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
cat .plano/config.json 2>/dev/null || echo "{}"
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Valores default se ausentes:
|
|
24
|
+
- `modo`: "solo"
|
|
25
|
+
- `paralelizacao`: true
|
|
26
|
+
- `commit_docs`: true
|
|
27
|
+
- `auto_advance`: false
|
|
28
|
+
|
|
29
|
+
## 2. Apresentar Opcoes
|
|
30
|
+
|
|
31
|
+
Usar AskUserQuestion com valores atuais pre-selecionados:
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
AskUserQuestion([
|
|
35
|
+
{
|
|
36
|
+
question: "Modo de trabalho?",
|
|
37
|
+
header: "Modo",
|
|
38
|
+
multiSelect: false,
|
|
39
|
+
options: [
|
|
40
|
+
{ label: "Solo (Recomendado)", description: "Desenvolvedor unico, commits diretos" },
|
|
41
|
+
{ label: "Time", description: "Multiplos desenvolvedores, branches por fase" }
|
|
42
|
+
]
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
question: "Paralelizar agentes quando possivel?",
|
|
46
|
+
header: "Paralelizacao",
|
|
47
|
+
multiSelect: false,
|
|
48
|
+
options: [
|
|
49
|
+
{ label: "Sim (Recomendado)", description: "Agentes rodam em paralelo quando independentes" },
|
|
50
|
+
{ label: "Nao", description: "Agentes rodam sequencialmente" }
|
|
51
|
+
]
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
question: "Commitar documentos de planejamento automaticamente?",
|
|
55
|
+
header: "Commit Docs",
|
|
56
|
+
multiSelect: false,
|
|
57
|
+
options: [
|
|
58
|
+
{ label: "Sim (Recomendado)", description: "STATE.md, ROADMAP.md, PLANs commitados automaticamente" },
|
|
59
|
+
{ label: "Nao", description: "Apenas codigo e commitado, docs ficam unstaged" }
|
|
60
|
+
]
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
question: "Avancar pipeline automaticamente? (discutir -> planejar -> executar)",
|
|
64
|
+
header: "Auto-Advance",
|
|
65
|
+
multiSelect: false,
|
|
66
|
+
options: [
|
|
67
|
+
{ label: "Nao (Recomendado)", description: "Manual /clear entre estagios" },
|
|
68
|
+
{ label: "Sim", description: "Encadeia estagios via subagentes" }
|
|
69
|
+
]
|
|
70
|
+
}
|
|
71
|
+
])
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## 3. Atualizar config.json
|
|
75
|
+
|
|
76
|
+
Mapear respostas para valores:
|
|
77
|
+
|
|
78
|
+
```json
|
|
79
|
+
{
|
|
80
|
+
"modo": "solo" | "time",
|
|
81
|
+
"paralelizacao": true | false,
|
|
82
|
+
"commit_docs": true | false,
|
|
83
|
+
"auto_advance": true | false
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Escrever em `.plano/config.json`.
|
|
88
|
+
|
|
89
|
+
## 4. Confirmar
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
93
|
+
UP > CONFIGURACAO ATUALIZADA
|
|
94
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
95
|
+
|
|
96
|
+
| Opcao | Valor |
|
|
97
|
+
|----------------|-------------|
|
|
98
|
+
| Modo | {solo/time} |
|
|
99
|
+
| Paralelizacao | {Sim/Nao} |
|
|
100
|
+
| Commit Docs | {Sim/Nao} |
|
|
101
|
+
| Auto-Advance | {Sim/Nao} |
|
|
102
|
+
|
|
103
|
+
Estas opcoes se aplicam a futuros /up:planejar-fase e /up:executar-fase.
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
</process>
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: up:depurar
|
|
3
|
+
description: Depuracao sistematica com estado persistente entre resets de contexto
|
|
4
|
+
argument-hint: [descricao do problema]
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Bash
|
|
8
|
+
- Task
|
|
9
|
+
- AskUserQuestion
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
<objective>
|
|
13
|
+
Depurar problemas usando metodo cientifico com isolamento em subagente.
|
|
14
|
+
|
|
15
|
+
**Papel do orquestrador:** Coletar sintomas, spawnar agente up-depurador, lidar com checkpoints, spawnar continuacoes.
|
|
16
|
+
|
|
17
|
+
**Por que subagente:** Investigacao consome contexto rapidamente (lendo arquivos, formando hipoteses, testando). Contexto fresco de 200k por investigacao. Contexto principal permanece enxuto para interacao com usuario.
|
|
18
|
+
</objective>
|
|
19
|
+
|
|
20
|
+
<context>
|
|
21
|
+
Problema do usuario: $ARGUMENTS
|
|
22
|
+
|
|
23
|
+
Verificar sessoes ativas:
|
|
24
|
+
```bash
|
|
25
|
+
ls .plano/debug/*.md 2>/dev/null | grep -v resolved | head -5
|
|
26
|
+
```
|
|
27
|
+
</context>
|
|
28
|
+
|
|
29
|
+
<process>
|
|
30
|
+
|
|
31
|
+
## 0. Inicializar Contexto
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
INIT=$(node "$HOME/.claude/up/bin/up-tools.cjs" state load)
|
|
35
|
+
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Extrair `commit_docs` do JSON de init.
|
|
39
|
+
|
|
40
|
+
## 1. Verificar Sessoes Ativas
|
|
41
|
+
|
|
42
|
+
Se sessoes ativas existem E sem $ARGUMENTS:
|
|
43
|
+
- Listar sessoes com status, hipotese, proxima acao
|
|
44
|
+
- Usuario escolhe numero para retomar OU descreve novo problema
|
|
45
|
+
|
|
46
|
+
Se $ARGUMENTS fornecido OU usuario descreve novo problema:
|
|
47
|
+
- Continuar para coleta de sintomas
|
|
48
|
+
|
|
49
|
+
## 2. Coletar Sintomas (se novo problema)
|
|
50
|
+
|
|
51
|
+
Usar AskUserQuestion para cada:
|
|
52
|
+
|
|
53
|
+
1. **Comportamento esperado** - O que deveria acontecer?
|
|
54
|
+
2. **Comportamento real** - O que acontece de fato?
|
|
55
|
+
3. **Mensagens de erro** - Algum erro? (colar ou descrever)
|
|
56
|
+
4. **Timeline** - Quando comecou? Ja funcionou antes?
|
|
57
|
+
5. **Reproducao** - Como reproduzir?
|
|
58
|
+
|
|
59
|
+
Apos coletar tudo, confirmar pronto para investigar.
|
|
60
|
+
|
|
61
|
+
## 3. Spawnar Agente up-depurador
|
|
62
|
+
|
|
63
|
+
Preencher prompt e spawnar:
|
|
64
|
+
|
|
65
|
+
```markdown
|
|
66
|
+
<objective>
|
|
67
|
+
Investigar problema: {slug}
|
|
68
|
+
|
|
69
|
+
**Resumo:** {trigger}
|
|
70
|
+
</objective>
|
|
71
|
+
|
|
72
|
+
<symptoms>
|
|
73
|
+
expected: {expected}
|
|
74
|
+
actual: {actual}
|
|
75
|
+
errors: {errors}
|
|
76
|
+
reproduction: {reproduction}
|
|
77
|
+
timeline: {timeline}
|
|
78
|
+
</symptoms>
|
|
79
|
+
|
|
80
|
+
<mode>
|
|
81
|
+
symptoms_prefilled: true
|
|
82
|
+
goal: find_and_fix
|
|
83
|
+
</mode>
|
|
84
|
+
|
|
85
|
+
<debug_file>
|
|
86
|
+
Criar: .plano/debug/{slug}.md
|
|
87
|
+
</debug_file>
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
Agent(
|
|
92
|
+
prompt=filled_prompt,
|
|
93
|
+
subagent_type="up-depurador",
|
|
94
|
+
description="Depurar {slug}"
|
|
95
|
+
)
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## 4. Lidar com Retorno do Agente
|
|
99
|
+
|
|
100
|
+
**Se `## ROOT CAUSE FOUND`:**
|
|
101
|
+
- Exibir causa raiz e resumo de evidencias
|
|
102
|
+
- Oferecer opcoes:
|
|
103
|
+
- "Corrigir agora" - spawnar subagente de correcao
|
|
104
|
+
- "Planejar correcao" - sugerir /up:planejar-fase
|
|
105
|
+
- "Correcao manual" - encerrar
|
|
106
|
+
|
|
107
|
+
**Se `## CHECKPOINT REACHED`:**
|
|
108
|
+
- Apresentar detalhes do checkpoint ao usuario
|
|
109
|
+
- Obter resposta do usuario
|
|
110
|
+
- Se tipo `human-verify`:
|
|
111
|
+
- Se usuario confirma corrigido: continuar para agente finalizar/resolver/arquivar
|
|
112
|
+
- Se usuario reporta problemas: continuar para agente retomar investigacao/correcao
|
|
113
|
+
- Spawnar agente de continuacao (ver passo 5)
|
|
114
|
+
|
|
115
|
+
**Se `## INVESTIGATION INCONCLUSIVE`:**
|
|
116
|
+
- Mostrar o que foi verificado e eliminado
|
|
117
|
+
- Oferecer opcoes:
|
|
118
|
+
- "Continuar investigando" - spawnar novo agente com contexto adicional
|
|
119
|
+
- "Investigacao manual" - encerrar
|
|
120
|
+
- "Adicionar mais contexto" - coletar mais sintomas, spawnar novamente
|
|
121
|
+
|
|
122
|
+
## 5. Spawnar Agente de Continuacao (Apos Checkpoint)
|
|
123
|
+
|
|
124
|
+
Quando usuario responde ao checkpoint, spawnar agente fresco:
|
|
125
|
+
|
|
126
|
+
```markdown
|
|
127
|
+
<objective>
|
|
128
|
+
Continuar depuracao {slug}. Evidencias estao no arquivo de debug.
|
|
129
|
+
</objective>
|
|
130
|
+
|
|
131
|
+
<prior_state>
|
|
132
|
+
<files_to_read>
|
|
133
|
+
- .plano/debug/{slug}.md (Estado da sessao de debug)
|
|
134
|
+
</files_to_read>
|
|
135
|
+
</prior_state>
|
|
136
|
+
|
|
137
|
+
<checkpoint_response>
|
|
138
|
+
**Type:** {checkpoint_type}
|
|
139
|
+
**Response:** {user_response}
|
|
140
|
+
</checkpoint_response>
|
|
141
|
+
|
|
142
|
+
<mode>
|
|
143
|
+
goal: find_and_fix
|
|
144
|
+
</mode>
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
```
|
|
148
|
+
Agent(
|
|
149
|
+
prompt=continuation_prompt,
|
|
150
|
+
subagent_type="up-depurador",
|
|
151
|
+
description="Continuar depuracao {slug}"
|
|
152
|
+
)
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
</process>
|
|
156
|
+
|
|
157
|
+
<success_criteria>
|
|
158
|
+
- [ ] Sessoes ativas verificadas
|
|
159
|
+
- [ ] Sintomas coletados (se novo)
|
|
160
|
+
- [ ] up-depurador spawnado com contexto
|
|
161
|
+
- [ ] Checkpoints tratados corretamente
|
|
162
|
+
- [ ] Causa raiz confirmada antes de corrigir
|
|
163
|
+
</success_criteria>
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: up:saude
|
|
3
|
+
description: Diagnosticar integridade do diretorio .plano/ e opcionalmente reparar
|
|
4
|
+
argument-hint: [--reparar]
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Bash
|
|
9
|
+
- AskUserQuestion
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
<objective>
|
|
13
|
+
Validar integridade do diretorio `.plano/` e reportar problemas acionaveis. Verifica arquivos ausentes, configuracoes invalidas, estado inconsistente e planos orfaos.
|
|
14
|
+
</objective>
|
|
15
|
+
|
|
16
|
+
<process>
|
|
17
|
+
|
|
18
|
+
## 1. Verificar Flag
|
|
19
|
+
|
|
20
|
+
Checar se `--reparar` esta presente nos argumentos.
|
|
21
|
+
|
|
22
|
+
## 2. Executar Checagens
|
|
23
|
+
|
|
24
|
+
Executar todas as verificacoes e coletar erros, avisos e informacoes:
|
|
25
|
+
|
|
26
|
+
**Erros (criticos):**
|
|
27
|
+
- E001: Diretorio `.plano/` nao existe
|
|
28
|
+
- E002: `PROJECT.md` nao encontrado
|
|
29
|
+
- E003: `ROADMAP.md` nao encontrado
|
|
30
|
+
- E004: `STATE.md` nao encontrado (reparavel — regenerar do ROADMAP)
|
|
31
|
+
- E005: `config.json` com erro de parse (reparavel — recriar com defaults)
|
|
32
|
+
|
|
33
|
+
**Avisos:**
|
|
34
|
+
- W001: `STATE.md` referencia fase que nao existe no disco
|
|
35
|
+
- W002: `config.json` nao encontrado (reparavel — criar com defaults)
|
|
36
|
+
- W003: Diretorio de fase nao segue padrao NN-nome
|
|
37
|
+
- W004: Fase no ROADMAP sem diretorio correspondente
|
|
38
|
+
- W005: Diretorio de fase no disco mas nao no ROADMAP
|
|
39
|
+
|
|
40
|
+
**Info:**
|
|
41
|
+
- I001: Plano sem SUMMARY (pode estar em progresso)
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
# Verificacoes basicas
|
|
45
|
+
ls -la .plano/ 2>/dev/null
|
|
46
|
+
ls .plano/PROJECT.md .plano/ROADMAP.md .plano/STATE.md .plano/config.json 2>/dev/null
|
|
47
|
+
cat .plano/config.json 2>/dev/null | node -e "JSON.parse(require('fs').readFileSync(0,'utf-8'))" 2>&1
|
|
48
|
+
|
|
49
|
+
# Fases no disco
|
|
50
|
+
ls -d .plano/fases/*/ 2>/dev/null
|
|
51
|
+
|
|
52
|
+
# Fases no ROADMAP
|
|
53
|
+
grep -E '#{2,4}\s*Phase\s+\d' .plano/ROADMAP.md 2>/dev/null
|
|
54
|
+
|
|
55
|
+
# Planos sem SUMMARY
|
|
56
|
+
for plan in .plano/fases/*/*-PLAN.md; do
|
|
57
|
+
summary="${plan/-PLAN.md/-SUMMARY.md}"
|
|
58
|
+
[ ! -f "$summary" ] && echo "SEM_SUMMARY: $plan"
|
|
59
|
+
done 2>/dev/null
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## 3. Reparar (se --reparar)
|
|
63
|
+
|
|
64
|
+
| Acao | Efeito |
|
|
65
|
+
|------|--------|
|
|
66
|
+
| Criar config.json | Cria com defaults |
|
|
67
|
+
| Resetar config.json | Deleta e recria |
|
|
68
|
+
| Regenerar STATE.md | Cria do template com dados do ROADMAP |
|
|
69
|
+
|
|
70
|
+
**Nao reparavel (muito arriscado):**
|
|
71
|
+
- PROJECT.md, ROADMAP.md (conteudo do usuario)
|
|
72
|
+
- Renomear diretorios de fase
|
|
73
|
+
- Limpar planos orfaos
|
|
74
|
+
|
|
75
|
+
## 4. Exibir Resultado
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
79
|
+
UP > SAUDE DO PROJETO
|
|
80
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
81
|
+
|
|
82
|
+
Status: SAUDAVEL | DEGRADADO | QUEBRADO
|
|
83
|
+
Erros: N | Avisos: N | Info: N
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Se erros: listar com codigo e sugestao de correcao.
|
|
87
|
+
Se avisos: listar com codigo e sugestao.
|
|
88
|
+
Se info: listar.
|
|
89
|
+
|
|
90
|
+
Se reparos foram feitos: listar acoes executadas.
|
|
91
|
+
|
|
92
|
+
Se ha problemas reparaveis e `--reparar` NAO foi usado:
|
|
93
|
+
```
|
|
94
|
+
---
|
|
95
|
+
N problemas podem ser reparados automaticamente.
|
|
96
|
+
Executar: /up:saude --reparar
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## 5. Verificar Reparos
|
|
100
|
+
|
|
101
|
+
Se reparos foram feitos, re-executar checagens para confirmar resolucao.
|
|
102
|
+
|
|
103
|
+
</process>
|