up-cc 0.1.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/agents/up-depurador.md +357 -0
- package/agents/up-executor.md +409 -0
- package/agents/up-pesquisador-projeto.md +358 -0
- package/agents/up-planejador.md +390 -0
- package/agents/up-roteirista.md +401 -0
- package/agents/up-sintetizador.md +232 -0
- package/agents/up-verificador.md +357 -0
- package/bin/install.js +709 -0
- package/bin/lib/core.cjs +270 -0
- package/bin/up-tools.cjs +1361 -0
- package/commands/adicionar-fase.md +33 -0
- package/commands/ajuda.md +131 -0
- package/commands/discutir-fase.md +35 -0
- package/commands/executar-fase.md +40 -0
- package/commands/novo-projeto.md +39 -0
- package/commands/pausar.md +33 -0
- package/commands/planejar-fase.md +43 -0
- package/commands/progresso.md +33 -0
- package/commands/rapido.md +40 -0
- package/commands/remover-fase.md +34 -0
- package/commands/retomar.md +35 -0
- package/commands/verificar-trabalho.md +35 -0
- package/package.json +32 -0
- package/references/checkpoints.md +358 -0
- package/references/git-integration.md +208 -0
- package/references/questioning.md +156 -0
- package/references/ui-brand.md +124 -0
- package/templates/config.json +6 -0
- package/templates/continue-here.md +78 -0
- package/templates/project.md +184 -0
- package/templates/requirements.md +129 -0
- package/templates/roadmap.md +131 -0
- package/templates/state.md +130 -0
- package/templates/summary.md +174 -0
- package/workflows/discutir-fase.md +324 -0
- package/workflows/executar-fase.md +277 -0
- package/workflows/executar-plano.md +192 -0
- package/workflows/novo-projeto.md +561 -0
- package/workflows/pausar.md +111 -0
- package/workflows/planejar-fase.md +208 -0
- package/workflows/progresso.md +226 -0
- package/workflows/rapido.md +209 -0
- package/workflows/retomar.md +231 -0
- package/workflows/verificar-trabalho.md +261 -0
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Criar prompts executaveis (PLAN.md) para uma fase do roteiro. Fluxo simplificado: um unico up-planejador faz pesquisa inline (se necessario), cria planos e auto-verifica. Sem loop planner-checker separado.
|
|
3
|
+
|
|
4
|
+
Flags: --pesquisar (pesquisa profunda), --sem-pesquisa (pular), --auto (encadear executar+verificar), --gaps (replanejar a partir de lacunas).
|
|
5
|
+
</purpose>
|
|
6
|
+
|
|
7
|
+
<process>
|
|
8
|
+
|
|
9
|
+
## 1. Inicializar
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
INIT=$(node "$HOME/.claude/up/bin/up-tools.cjs" init plan-phase "$PHASE")
|
|
13
|
+
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Parse JSON: `commit_docs`, `phase_found`, `phase_dir`, `phase_number`, `phase_name`, `phase_slug`, `padded_phase`, `has_research`, `has_context`, `has_plans`, `plan_count`, `planning_exists`, `roadmap_exists`, `phase_req_ids`.
|
|
17
|
+
|
|
18
|
+
**Caminhos de arquivo:** `state_path`, `roadmap_path`, `requirements_path`, `context_path`, `research_path`, `verification_path`.
|
|
19
|
+
|
|
20
|
+
**Se `planning_exists` = false:** Erro -- executar `/up:novo-projeto` primeiro.
|
|
21
|
+
|
|
22
|
+
## 2. Parsear Argumentos
|
|
23
|
+
|
|
24
|
+
Extrair do $ARGUMENTS: numero da fase, flags (`--pesquisar`, `--sem-pesquisa`, `--gaps`, `--auto`).
|
|
25
|
+
|
|
26
|
+
**Se sem numero da fase:** Detectar proxima fase nao planejada do roteiro.
|
|
27
|
+
|
|
28
|
+
**Se `phase_found` = false:** Validar fase existe no ROADMAP.md. Se valida, criar diretorio:
|
|
29
|
+
```bash
|
|
30
|
+
mkdir -p ".plano/fases/${padded_phase}-${phase_slug}"
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## 3. Validar Fase
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
PHASE_INFO=$(node "$HOME/.claude/up/bin/up-tools.cjs" roadmap get-phase "${PHASE}")
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
**Se `found` = false:** Erro com fases disponiveis.
|
|
40
|
+
**Se `found` = true:** Extrair `phase_number`, `phase_name`, `goal`.
|
|
41
|
+
|
|
42
|
+
## 4. Carregar CONTEXT.md
|
|
43
|
+
|
|
44
|
+
Verificar `context_path` do init JSON.
|
|
45
|
+
|
|
46
|
+
Se `context_path` nao e null, exibir: `Usando contexto da fase: ${context_path}`
|
|
47
|
+
|
|
48
|
+
**Se `context_path` e null (sem CONTEXT.md):**
|
|
49
|
+
|
|
50
|
+
Use AskUserQuestion:
|
|
51
|
+
- header: "Sem contexto"
|
|
52
|
+
- question: "Sem CONTEXT.md para Fase {X}. Planos usarao pesquisa e requisitos apenas. Continuar ou capturar contexto primeiro?"
|
|
53
|
+
- options:
|
|
54
|
+
- "Continuar sem contexto" -- Planejar usando pesquisa + requisitos apenas
|
|
55
|
+
- "Executar discutir-fase primeiro" -- Capturar decisoes de design antes de planejar
|
|
56
|
+
|
|
57
|
+
Se "Continuar sem contexto": Prosseguir para passo 5.
|
|
58
|
+
Se "Executar discutir-fase primeiro": Exibir `/up:discutir-fase {X}` e sair.
|
|
59
|
+
|
|
60
|
+
## 5. Tratar Pesquisa
|
|
61
|
+
|
|
62
|
+
**Pular se:** flag `--gaps`, flag `--sem-pesquisa`.
|
|
63
|
+
|
|
64
|
+
**Se `has_research` = true (do init) E sem flag `--pesquisar`:** Usar existente, pular para passo 6.
|
|
65
|
+
|
|
66
|
+
**Se RESEARCH.md faltando OU flag `--pesquisar`:**
|
|
67
|
+
|
|
68
|
+
O up-planejador fara a pesquisa inline como parte do planejamento. Definir `RESEARCH_INLINE=true`.
|
|
69
|
+
|
|
70
|
+
## 6. Verificar Planos Existentes
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
ls "${PHASE_DIR}"/*-PLAN.md 2>/dev/null
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
**Se existem:** Oferecer: 1) Adicionar mais planos, 2) Ver existentes, 3) Replanejar do zero.
|
|
77
|
+
|
|
78
|
+
## 7. Spawn up-planejador
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
82
|
+
UP > PLANEJANDO FASE {X}
|
|
83
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
84
|
+
|
|
85
|
+
Spawning planejador...
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
Task(
|
|
90
|
+
prompt="
|
|
91
|
+
<planning_context>
|
|
92
|
+
**Fase:** {phase_number}
|
|
93
|
+
**Modo:** {standard | gap_closure}
|
|
94
|
+
**Pesquisa inline:** {RESEARCH_INLINE}
|
|
95
|
+
|
|
96
|
+
<files_to_read>
|
|
97
|
+
- {state_path} (Estado do Projeto)
|
|
98
|
+
- {roadmap_path} (Roteiro)
|
|
99
|
+
- {requirements_path} (Requisitos)
|
|
100
|
+
- {context_path} (DECISOES DO USUARIO de /up:discutir-fase)
|
|
101
|
+
- {research_path} (Pesquisa Tecnica - se existir)
|
|
102
|
+
- {verification_path} (Lacunas de Verificacao - se --gaps)
|
|
103
|
+
</files_to_read>
|
|
104
|
+
|
|
105
|
+
**IDs de requisitos da fase (cada ID DEVE aparecer no campo `requirements` de um plano):** {phase_req_ids}
|
|
106
|
+
|
|
107
|
+
**Instrucoes do projeto:** Ler ./CLAUDE.md se existir
|
|
108
|
+
|
|
109
|
+
Se RESEARCH_INLINE=true:
|
|
110
|
+
- Pesquisar o dominio antes de planejar
|
|
111
|
+
- Usar Context7/docs oficiais para verificar versoes e APIs
|
|
112
|
+
- Documentar achados de pesquisa no inicio de cada PLAN.md
|
|
113
|
+
</planning_context>
|
|
114
|
+
|
|
115
|
+
<self_check>
|
|
116
|
+
Apos criar os planos, auto-verificar:
|
|
117
|
+
- [ ] Cada requisito da fase mapeado a um plano
|
|
118
|
+
- [ ] Frontmatter valido (wave, depends_on, files_modified, autonomous)
|
|
119
|
+
- [ ] Tarefas sao especificas e acionaveis
|
|
120
|
+
- [ ] Dependencias corretamente identificadas
|
|
121
|
+
- [ ] Waves atribuidas para execucao paralela
|
|
122
|
+
- [ ] must_haves derivados do objetivo da fase
|
|
123
|
+
Se algo falhar na verificacao, corrija antes de retornar.
|
|
124
|
+
</self_check>
|
|
125
|
+
|
|
126
|
+
<output>
|
|
127
|
+
Escrever PLAN.md em: {phase_dir}/
|
|
128
|
+
Retornar: ## PLANNING COMPLETE com resumo dos planos
|
|
129
|
+
</output>
|
|
130
|
+
",
|
|
131
|
+
subagent_type="up-planejador",
|
|
132
|
+
description="Planejar Fase {phase}"
|
|
133
|
+
)
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## 8. Tratar Retorno do Planejador
|
|
137
|
+
|
|
138
|
+
- **`## PLANNING COMPLETE`:** Exibir contagem de planos. Prosseguir para passo 9.
|
|
139
|
+
- **`## CHECKPOINT REACHED`:** Apresentar ao usuario, obter resposta, spawn continuacao.
|
|
140
|
+
- **`## PLANNING INCONCLUSIVE`:** Mostrar tentativas, oferecer: Adicionar contexto / Tentar novamente / Manual.
|
|
141
|
+
|
|
142
|
+
## 9. Apresentar Status Final
|
|
143
|
+
|
|
144
|
+
```
|
|
145
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
146
|
+
UP > FASE {X} PLANEJADA
|
|
147
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
148
|
+
|
|
149
|
+
**Fase {X}: {Nome}** -- {N} plano(s) em {M} wave(s)
|
|
150
|
+
|
|
151
|
+
| Wave | Planos | O que constroi |
|
|
152
|
+
|------|--------|----------------|
|
|
153
|
+
| 1 | 01, 02 | [objetivos] |
|
|
154
|
+
| 2 | 03 | [objetivo] |
|
|
155
|
+
|
|
156
|
+
Pesquisa: {Completa | Usou existente | Pulada | Inline}
|
|
157
|
+
|
|
158
|
+
───────────────────────────────────────────────────────────────
|
|
159
|
+
|
|
160
|
+
## Proximo
|
|
161
|
+
|
|
162
|
+
**Executar Fase {X}** -- rodar todos {N} planos
|
|
163
|
+
|
|
164
|
+
/up:executar-fase {X}
|
|
165
|
+
|
|
166
|
+
<sub>/clear primeiro -> janela de contexto limpa</sub>
|
|
167
|
+
|
|
168
|
+
───────────────────────────────────────────────────────────────
|
|
169
|
+
|
|
170
|
+
**Tambem disponivel:**
|
|
171
|
+
- cat .plano/fases/{fase-dir}/*-PLAN.md -- revisar planos
|
|
172
|
+
- /up:planejar-fase {X} --pesquisar -- re-pesquisar primeiro
|
|
173
|
+
|
|
174
|
+
───────────────────────────────────────────────────────────────
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
## 10. Auto-Advance (se --auto)
|
|
178
|
+
|
|
179
|
+
**Se flag `--auto` presente:**
|
|
180
|
+
|
|
181
|
+
```
|
|
182
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
183
|
+
UP > AUTO-AVANCANDO PARA EXECUTAR
|
|
184
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
185
|
+
|
|
186
|
+
Planos prontos. Lancando executar-fase...
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
Lancar executar-fase:
|
|
190
|
+
```
|
|
191
|
+
Skill(skill="up:executar-fase", args="${PHASE}")
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
</process>
|
|
195
|
+
|
|
196
|
+
<success_criteria>
|
|
197
|
+
- [ ] .plano/ diretorio validado
|
|
198
|
+
- [ ] Fase validada contra roteiro
|
|
199
|
+
- [ ] Diretorio da fase criado se necessario
|
|
200
|
+
- [ ] CONTEXT.md carregado e passado ao planejador
|
|
201
|
+
- [ ] Pesquisa tratada (inline, existente ou pulada)
|
|
202
|
+
- [ ] Planos existentes verificados
|
|
203
|
+
- [ ] up-planejador spawned com contexto completo
|
|
204
|
+
- [ ] Planejador auto-verificou os planos
|
|
205
|
+
- [ ] Planos criados (PLANNING COMPLETE ou CHECKPOINT tratado)
|
|
206
|
+
- [ ] Usuario ve status entre spawns de agentes
|
|
207
|
+
- [ ] Usuario sabe proximos passos
|
|
208
|
+
</success_criteria>
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Verificar progresso do projeto, resumir trabalho recente e o que vem a seguir, entao rotear inteligentemente para a proxima acao -- seja executar um plano existente ou criar o proximo.
|
|
3
|
+
</purpose>
|
|
4
|
+
|
|
5
|
+
<process>
|
|
6
|
+
|
|
7
|
+
<step name="init_context">
|
|
8
|
+
**Carregar contexto de progresso:**
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
INIT=$(node "$HOME/.claude/up/bin/up-tools.cjs" init progress)
|
|
12
|
+
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Extrair do init JSON: `project_exists`, `roadmap_exists`, `state_exists`, `phases`, `current_phase`, `next_phase`, `completed_count`, `phase_count`, `paused_at`, `state_path`, `roadmap_path`, `project_path`, `config_path`.
|
|
16
|
+
|
|
17
|
+
Se `project_exists` = false (sem diretorio `.plano/`):
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
Sem estrutura de planejamento encontrada.
|
|
21
|
+
|
|
22
|
+
Execute /up:novo-projeto para iniciar um novo projeto.
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Sair.
|
|
26
|
+
|
|
27
|
+
Se STATE.md faltando: sugerir `/up:novo-projeto`.
|
|
28
|
+
Se ROADMAP.md faltando mas PROJECT.md existe: sugerir `/up:novo-projeto`.
|
|
29
|
+
</step>
|
|
30
|
+
|
|
31
|
+
<step name="load">
|
|
32
|
+
**Usar extracao estruturada:**
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
ROADMAP=$(node "$HOME/.claude/up/bin/up-tools.cjs" roadmap analyze)
|
|
36
|
+
STATE=$(node "$HOME/.claude/up/bin/up-tools.cjs" state-snapshot)
|
|
37
|
+
```
|
|
38
|
+
</step>
|
|
39
|
+
|
|
40
|
+
<step name="recent">
|
|
41
|
+
**Reunir contexto de trabalho recente:**
|
|
42
|
+
|
|
43
|
+
Encontrar os 2-3 SUMMARY.md mais recentes:
|
|
44
|
+
```bash
|
|
45
|
+
node "$HOME/.claude/up/bin/up-tools.cjs" summary-extract <caminho> --fields one_liner
|
|
46
|
+
```
|
|
47
|
+
</step>
|
|
48
|
+
|
|
49
|
+
<step name="report">
|
|
50
|
+
**Gerar barra de progresso e apresentar relatorio:**
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
PROGRESS_BAR=$(node "$HOME/.claude/up/bin/up-tools.cjs" progress bar --raw)
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
# [Nome do Projeto]
|
|
58
|
+
|
|
59
|
+
**Progresso:** {PROGRESS_BAR}
|
|
60
|
+
|
|
61
|
+
## Trabalho Recente
|
|
62
|
+
- [Fase X, Plano Y]: [o que foi realizado - 1 linha]
|
|
63
|
+
- [Fase X, Plano Z]: [o que foi realizado - 1 linha]
|
|
64
|
+
|
|
65
|
+
## Posicao Atual
|
|
66
|
+
Fase [N] de [total]: [nome-da-fase]
|
|
67
|
+
Plano [M] de [total-fase]: [status]
|
|
68
|
+
CONTEXTO: [ok se has_context | - se nao]
|
|
69
|
+
|
|
70
|
+
## Decisoes-Chave Tomadas
|
|
71
|
+
- [extrair de $STATE.decisions[]]
|
|
72
|
+
|
|
73
|
+
## Bloqueios/Preocupacoes
|
|
74
|
+
- [extrair de $STATE.blockers[]]
|
|
75
|
+
|
|
76
|
+
## Proximo
|
|
77
|
+
[Proximo objetivo fase/plano do roadmap analyze]
|
|
78
|
+
```
|
|
79
|
+
</step>
|
|
80
|
+
|
|
81
|
+
<step name="route">
|
|
82
|
+
**Determinar proxima acao baseada em contagens verificadas.**
|
|
83
|
+
|
|
84
|
+
**Passo 1: Contar planos e summaries na fase atual**
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
ls -1 .plano/fases/[dir-fase-atual]/*-PLAN.md 2>/dev/null | wc -l
|
|
88
|
+
ls -1 .plano/fases/[dir-fase-atual]/*-SUMMARY.md 2>/dev/null | wc -l
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
**Passo 2: Rotear baseado em contagens**
|
|
92
|
+
|
|
93
|
+
| Condicao | Significado | Acao |
|
|
94
|
+
|----------|-------------|------|
|
|
95
|
+
| summaries < plans | Planos nao executados existem | Ir para **Rota A** |
|
|
96
|
+
| summaries = plans E plans > 0 | Fase completa | Ir para Passo 3 |
|
|
97
|
+
| plans = 0 | Fase ainda nao planejada | Ir para **Rota B** |
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
**Rota A: Plano nao executado existe**
|
|
102
|
+
|
|
103
|
+
Encontrar primeiro PLAN.md sem SUMMARY.md correspondente.
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Proximo
|
|
109
|
+
|
|
110
|
+
**{fase}-{plano}: [Nome do Plano]** -- [resumo do objetivo]
|
|
111
|
+
|
|
112
|
+
`/up:executar-fase {fase}`
|
|
113
|
+
|
|
114
|
+
<sub>`/clear` primeiro -> janela de contexto limpa</sub>
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
**Rota B: Fase precisa planejamento**
|
|
122
|
+
|
|
123
|
+
Verificar se `{fase_num}-CONTEXT.md` existe no diretorio da fase.
|
|
124
|
+
|
|
125
|
+
**Se CONTEXT.md existe:**
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Proximo
|
|
131
|
+
|
|
132
|
+
**Fase {N}: {Nome}** -- {Objetivo do ROADMAP.md}
|
|
133
|
+
<sub>Contexto reunido, pronto para planejar</sub>
|
|
134
|
+
|
|
135
|
+
`/up:planejar-fase {numero-fase}`
|
|
136
|
+
|
|
137
|
+
<sub>`/clear` primeiro -> janela de contexto limpa</sub>
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
**Se CONTEXT.md NAO existe:**
|
|
143
|
+
|
|
144
|
+
```
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Proximo
|
|
148
|
+
|
|
149
|
+
**Fase {N}: {Nome}** -- {Objetivo do ROADMAP.md}
|
|
150
|
+
|
|
151
|
+
`/up:discutir-fase {fase}` -- reunir contexto e esclarecer abordagem
|
|
152
|
+
|
|
153
|
+
<sub>`/clear` primeiro -> janela de contexto limpa</sub>
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
**Tambem disponivel:**
|
|
158
|
+
- `/up:planejar-fase {fase}` -- pular discussao, planejar diretamente
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
**Passo 3: Verificar status do projeto (apenas quando fase completa)**
|
|
166
|
+
|
|
167
|
+
| Condicao | Significado | Acao |
|
|
168
|
+
|----------|-------------|------|
|
|
169
|
+
| fase atual < maior fase | Mais fases restam | **Rota C** |
|
|
170
|
+
| fase atual = maior fase | Projeto completo | **Rota D** |
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
**Rota C: Fase completa, mais fases restam**
|
|
175
|
+
|
|
176
|
+
```
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## Fase {Z} Completa
|
|
180
|
+
|
|
181
|
+
## Proximo
|
|
182
|
+
|
|
183
|
+
**Fase {Z+1}: {Nome}** -- {Objetivo do ROADMAP.md}
|
|
184
|
+
|
|
185
|
+
`/up:discutir-fase {Z+1}` -- reunir contexto e esclarecer abordagem
|
|
186
|
+
|
|
187
|
+
<sub>`/clear` primeiro -> janela de contexto limpa</sub>
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
**Tambem disponivel:**
|
|
192
|
+
- `/up:planejar-fase {Z+1}` -- pular discussao, planejar diretamente
|
|
193
|
+
- `/up:verificar-trabalho {Z}` -- teste de aceitacao antes de continuar
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
**Rota D: Projeto completo**
|
|
201
|
+
|
|
202
|
+
```
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## Projeto Completo!
|
|
206
|
+
|
|
207
|
+
Todas {N} fases finalizadas!
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
**Tambem disponivel:**
|
|
212
|
+
- `/up:verificar-trabalho` -- teste de aceitacao antes de encerrar
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
```
|
|
216
|
+
</step>
|
|
217
|
+
|
|
218
|
+
</process>
|
|
219
|
+
|
|
220
|
+
<success_criteria>
|
|
221
|
+
- [ ] Contexto rico fornecido (trabalho recente, decisoes, problemas)
|
|
222
|
+
- [ ] Posicao atual clara com progresso visual
|
|
223
|
+
- [ ] Proximo passo claramente explicado
|
|
224
|
+
- [ ] Roteamento inteligente: /up:executar-fase se planos existem, /up:planejar-fase se nao
|
|
225
|
+
- [ ] Handoff seamless para comando up apropriado
|
|
226
|
+
</success_criteria>
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Executar tarefas pequenas e ad-hoc com garantias UP (commits atomicos, rastreamento STATE.md). Modo rapido spawna up-planejador (modo rapido) + up-executor(s), rastreia tarefas em `.plano/rapido/`, e atualiza tabela "Tarefas Rapidas Completadas" do STATE.md.
|
|
3
|
+
</purpose>
|
|
4
|
+
|
|
5
|
+
<process>
|
|
6
|
+
**Passo 1: Parsear argumentos e obter descricao da tarefa**
|
|
7
|
+
|
|
8
|
+
Parsear `$ARGUMENTS` para:
|
|
9
|
+
- Texto restante -> usar como `$DESCRIPTION` se nao-vazio
|
|
10
|
+
|
|
11
|
+
Se `$DESCRIPTION` esta vazio, promptar usuario interativamente:
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
AskUserQuestion(
|
|
15
|
+
header: "Tarefa Rapida",
|
|
16
|
+
question: "O que voce quer fazer?",
|
|
17
|
+
followUp: null
|
|
18
|
+
)
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Guardar resposta como `$DESCRIPTION`.
|
|
22
|
+
|
|
23
|
+
Se ainda vazio, re-promptar: "Por favor forneca descricao da tarefa."
|
|
24
|
+
|
|
25
|
+
Exibir banner:
|
|
26
|
+
```
|
|
27
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
28
|
+
UP > TAREFA RAPIDA
|
|
29
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
**Passo 2: Inicializar**
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
INIT=$(node "$HOME/.claude/up/bin/up-tools.cjs" init quick "$DESCRIPTION")
|
|
38
|
+
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Parse JSON: `commit_docs`, `next_num`, `slug`, `date`, `timestamp`, `quick_dir`, `task_dir`, `roadmap_exists`, `planning_exists`.
|
|
42
|
+
|
|
43
|
+
**Se `roadmap_exists` = false:** Erro -- Modo rapido requer projeto ativo com ROADMAP.md. Execute `/up:novo-projeto` primeiro.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
**Passo 3: Criar diretorio da tarefa**
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
QUICK_DIR=".plano/rapido/${next_num}-${slug}"
|
|
51
|
+
mkdir -p "$QUICK_DIR"
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Reportar:
|
|
55
|
+
```
|
|
56
|
+
Criando tarefa rapida ${next_num}: ${DESCRIPTION}
|
|
57
|
+
Diretorio: ${QUICK_DIR}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
**Passo 4: Spawn planejador (modo rapido)**
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
Task(
|
|
66
|
+
prompt="
|
|
67
|
+
<planning_context>
|
|
68
|
+
|
|
69
|
+
**Modo:** quick
|
|
70
|
+
**Diretorio:** ${QUICK_DIR}
|
|
71
|
+
**Descricao:** ${DESCRIPTION}
|
|
72
|
+
|
|
73
|
+
<files_to_read>
|
|
74
|
+
- .plano/STATE.md (Estado do Projeto)
|
|
75
|
+
- ./CLAUDE.md (se existir -- seguir diretrizes do projeto)
|
|
76
|
+
</files_to_read>
|
|
77
|
+
|
|
78
|
+
</planning_context>
|
|
79
|
+
|
|
80
|
+
<constraints>
|
|
81
|
+
- Criar UM UNICO plano com 1-3 tarefas focadas
|
|
82
|
+
- Tarefas rapidas devem ser atomicas e autocontidas
|
|
83
|
+
- Sem fase de pesquisa
|
|
84
|
+
- Alvo ~30% uso de contexto (simples, focado)
|
|
85
|
+
</constraints>
|
|
86
|
+
|
|
87
|
+
<output>
|
|
88
|
+
Escrever plano em: ${QUICK_DIR}/${next_num}-PLAN.md
|
|
89
|
+
Retornar: ## PLANNING COMPLETE com caminho do plano
|
|
90
|
+
</output>
|
|
91
|
+
",
|
|
92
|
+
subagent_type="up-planejador",
|
|
93
|
+
description="Plano rapido: ${DESCRIPTION}"
|
|
94
|
+
)
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Apos planejador retornar:
|
|
98
|
+
1. Verificar plano existe em `${QUICK_DIR}/${next_num}-PLAN.md`
|
|
99
|
+
2. Reportar: "Plano criado: ${QUICK_DIR}/${next_num}-PLAN.md"
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
**Passo 5: Spawn executor**
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
Task(
|
|
107
|
+
prompt="
|
|
108
|
+
Executar tarefa rapida ${next_num}.
|
|
109
|
+
|
|
110
|
+
<files_to_read>
|
|
111
|
+
- ${QUICK_DIR}/${next_num}-PLAN.md (Plano)
|
|
112
|
+
- .plano/STATE.md (Estado do projeto)
|
|
113
|
+
- ./CLAUDE.md (Instrucoes do projeto, se existir)
|
|
114
|
+
</files_to_read>
|
|
115
|
+
|
|
116
|
+
<constraints>
|
|
117
|
+
- Executar todas tarefas do plano
|
|
118
|
+
- Commitar cada tarefa atomicamente
|
|
119
|
+
- Criar summary em: ${QUICK_DIR}/${next_num}-SUMMARY.md
|
|
120
|
+
- NAO atualizar ROADMAP.md (tarefas rapidas sao separadas de fases planejadas)
|
|
121
|
+
</constraints>
|
|
122
|
+
",
|
|
123
|
+
subagent_type="up-executor",
|
|
124
|
+
description="Executar: ${DESCRIPTION}"
|
|
125
|
+
)
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Apos executor retornar:
|
|
129
|
+
1. Verificar summary existe em `${QUICK_DIR}/${next_num}-SUMMARY.md`
|
|
130
|
+
2. Se summary nao encontrado, erro: "Executor falhou ao criar ${next_num}-SUMMARY.md"
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
**Passo 6: Atualizar STATE.md**
|
|
135
|
+
|
|
136
|
+
**6a. Verificar se secao "Tarefas Rapidas Completadas" existe:**
|
|
137
|
+
|
|
138
|
+
Ler STATE.md e verificar secao `### Tarefas Rapidas Completadas`.
|
|
139
|
+
|
|
140
|
+
**6b. Se secao nao existe, criar:**
|
|
141
|
+
|
|
142
|
+
Inserir apos secao `### Bloqueios/Preocupacoes`:
|
|
143
|
+
|
|
144
|
+
```markdown
|
|
145
|
+
### Tarefas Rapidas Completadas
|
|
146
|
+
|
|
147
|
+
| # | Descricao | Data | Commit | Diretorio |
|
|
148
|
+
|---|-----------|------|--------|-----------|
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
**6c. Adicionar nova linha a tabela:**
|
|
152
|
+
|
|
153
|
+
```markdown
|
|
154
|
+
| ${next_num} | ${DESCRIPTION} | ${date} | ${commit_hash} | [${next_num}-${slug}](./rapido/${next_num}-${slug}/) |
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
**6d. Atualizar linha "Ultima atividade":**
|
|
158
|
+
|
|
159
|
+
```
|
|
160
|
+
Ultima atividade: ${date} - Completou tarefa rapida ${next_num}: ${DESCRIPTION}
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
Usar ferramenta Edit para fazer mudancas atomicamente.
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
**Passo 7: Commit final e conclusao**
|
|
168
|
+
|
|
169
|
+
Stagear e commitar artefatos da tarefa rapida:
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
node "$HOME/.claude/up/bin/up-tools.cjs" commit "docs(rapido-${next_num}): ${DESCRIPTION}" --files ${QUICK_DIR}/${next_num}-PLAN.md ${QUICK_DIR}/${next_num}-SUMMARY.md .plano/STATE.md
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
Obter hash do commit final:
|
|
176
|
+
```bash
|
|
177
|
+
commit_hash=$(git rev-parse --short HEAD)
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
Exibir saida de conclusao:
|
|
181
|
+
|
|
182
|
+
```
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
UP > TAREFA RAPIDA COMPLETA
|
|
186
|
+
|
|
187
|
+
Tarefa Rapida ${next_num}: ${DESCRIPTION}
|
|
188
|
+
|
|
189
|
+
Summary: ${QUICK_DIR}/${next_num}-SUMMARY.md
|
|
190
|
+
Commit: ${commit_hash}
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
Pronto para proxima tarefa: /up:rapido
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
</process>
|
|
198
|
+
|
|
199
|
+
<success_criteria>
|
|
200
|
+
- [ ] Validacao ROADMAP.md passa
|
|
201
|
+
- [ ] Usuario forneceu descricao da tarefa
|
|
202
|
+
- [ ] Slug gerado (minusculo, hifens, max 40 chars)
|
|
203
|
+
- [ ] Proximo numero calculado (001, 002, 003...)
|
|
204
|
+
- [ ] Diretorio criado em `.plano/rapido/NNN-slug/`
|
|
205
|
+
- [ ] `${next_num}-PLAN.md` criado pelo planejador
|
|
206
|
+
- [ ] `${next_num}-SUMMARY.md` criado pelo executor
|
|
207
|
+
- [ ] STATE.md atualizado com linha da tarefa rapida
|
|
208
|
+
- [ ] Artefatos committed
|
|
209
|
+
</success_criteria>
|