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.
Files changed (44) hide show
  1. package/agents/up-depurador.md +357 -0
  2. package/agents/up-executor.md +409 -0
  3. package/agents/up-pesquisador-projeto.md +358 -0
  4. package/agents/up-planejador.md +390 -0
  5. package/agents/up-roteirista.md +401 -0
  6. package/agents/up-sintetizador.md +232 -0
  7. package/agents/up-verificador.md +357 -0
  8. package/bin/install.js +709 -0
  9. package/bin/lib/core.cjs +270 -0
  10. package/bin/up-tools.cjs +1361 -0
  11. package/commands/adicionar-fase.md +33 -0
  12. package/commands/ajuda.md +131 -0
  13. package/commands/discutir-fase.md +35 -0
  14. package/commands/executar-fase.md +40 -0
  15. package/commands/novo-projeto.md +39 -0
  16. package/commands/pausar.md +33 -0
  17. package/commands/planejar-fase.md +43 -0
  18. package/commands/progresso.md +33 -0
  19. package/commands/rapido.md +40 -0
  20. package/commands/remover-fase.md +34 -0
  21. package/commands/retomar.md +35 -0
  22. package/commands/verificar-trabalho.md +35 -0
  23. package/package.json +32 -0
  24. package/references/checkpoints.md +358 -0
  25. package/references/git-integration.md +208 -0
  26. package/references/questioning.md +156 -0
  27. package/references/ui-brand.md +124 -0
  28. package/templates/config.json +6 -0
  29. package/templates/continue-here.md +78 -0
  30. package/templates/project.md +184 -0
  31. package/templates/requirements.md +129 -0
  32. package/templates/roadmap.md +131 -0
  33. package/templates/state.md +130 -0
  34. package/templates/summary.md +174 -0
  35. package/workflows/discutir-fase.md +324 -0
  36. package/workflows/executar-fase.md +277 -0
  37. package/workflows/executar-plano.md +192 -0
  38. package/workflows/novo-projeto.md +561 -0
  39. package/workflows/pausar.md +111 -0
  40. package/workflows/planejar-fase.md +208 -0
  41. package/workflows/progresso.md +226 -0
  42. package/workflows/rapido.md +209 -0
  43. package/workflows/retomar.md +231 -0
  44. package/workflows/verificar-trabalho.md +261 -0
@@ -0,0 +1,324 @@
1
+ <purpose>
2
+ Extrair decisoes de implementacao que agentes downstream precisam. Analisar a fase para identificar areas cinzentas, deixar o usuario escolher o que discutir, entao aprofundar em cada area selecionada ate ficar satisfeito.
3
+
4
+ Voce e um parceiro de pensamento, nao um entrevistador. O usuario e o visionario -- voce e o construtor. Seu trabalho e capturar decisoes que guiarao pesquisa e planejamento.
5
+ </purpose>
6
+
7
+ <scope_guardrail>
8
+ **CRITICO: Sem inflacao de escopo.**
9
+
10
+ O limite da fase vem do ROADMAP.md e e FIXO. Discussao esclarece COMO implementar o que esta no escopo, nunca SE adicionar novas capacidades.
11
+
12
+ **Permitido (esclarecer ambiguidade):**
13
+ - "Como posts devem ser exibidos?" (layout, densidade, info mostrada)
14
+ - "O que acontece no estado vazio?" (dentro da feature)
15
+
16
+ **Nao permitido (inflacao de escopo):**
17
+ - "Devemos tambem adicionar comentarios?" (nova capacidade)
18
+ - "E sobre busca/filtragem?" (nova capacidade)
19
+
20
+ **Quando usuario sugere inflacao de escopo:**
21
+ ```
22
+ "[Feature X] seria uma nova capacidade -- e uma fase propria.
23
+ Quer que eu anote para o backlog do roteiro?
24
+
25
+ Por agora, vamos focar em [dominio da fase]."
26
+ ```
27
+
28
+ Capturar a ideia em secao "Ideias Adiadas". Nao perca, nao atue sobre ela.
29
+ </scope_guardrail>
30
+
31
+ <process>
32
+
33
+ <step name="initialize" priority="first">
34
+ Numero da fase do argumento (obrigatorio).
35
+
36
+ ```bash
37
+ INIT=$(node "$HOME/.claude/up/bin/up-tools.cjs" init phase-op "${PHASE}")
38
+ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
39
+ ```
40
+
41
+ Parse JSON: `commit_docs`, `phase_found`, `phase_dir`, `phase_number`, `phase_name`, `phase_slug`, `padded_phase`, `has_research`, `has_context`, `has_plans`, `plan_count`, `roadmap_exists`, `planning_exists`.
42
+
43
+ **Se `phase_found` = false:**
44
+ ```
45
+ Fase [X] nao encontrada no roteiro.
46
+
47
+ Use /up:progresso para ver fases disponiveis.
48
+ ```
49
+ Sair do workflow.
50
+
51
+ **Se `phase_found` = true:** Continuar para check_existing.
52
+ </step>
53
+
54
+ <step name="check_existing">
55
+ Verificar se CONTEXT.md ja existe usando `has_context` do init.
56
+
57
+ **Se existe:**
58
+ Use AskUserQuestion:
59
+ - header: "Contexto"
60
+ - question: "Fase [X] ja tem contexto. O que voce quer fazer?"
61
+ - options:
62
+ - "Atualizar" -- Revisar e atualizar contexto existente
63
+ - "Ver" -- Mostrar o que tem la
64
+ - "Pular" -- Usar contexto existente como esta
65
+
66
+ Se "Atualizar": Carregar existente, continuar para analyze_phase
67
+ Se "Ver": Exibir CONTEXT.md, depois oferecer atualizar/pular
68
+ Se "Pular": Sair do workflow
69
+
70
+ **Se nao existe:** Continuar para load_prior_context.
71
+ </step>
72
+
73
+ <step name="load_prior_context">
74
+ Ler contexto de nivel de projeto e de fases anteriores para evitar re-perguntar questoes ja decididas.
75
+
76
+ **Passo 1: Ler arquivos do projeto**
77
+ ```bash
78
+ cat .plano/PROJECT.md 2>/dev/null
79
+ cat .plano/REQUIREMENTS.md 2>/dev/null
80
+ cat .plano/STATE.md 2>/dev/null
81
+ ```
82
+
83
+ Extrair:
84
+ - **PROJECT.md** -- Visao, principios, nao-negociaveis, preferencias do usuario
85
+ - **REQUIREMENTS.md** -- Criterios de aceitacao, restricoes
86
+ - **STATE.md** -- Progresso atual, flags ou notas
87
+
88
+ **Passo 2: Ler todos CONTEXT.md de fases anteriores**
89
+ ```bash
90
+ find .plano/fases -name "*-CONTEXT.md" 2>/dev/null | sort
91
+ ```
92
+
93
+ Para cada CONTEXT.md onde numero da fase < fase atual:
94
+ - Ler secao `<decisions>` -- sao preferencias travadas
95
+ - Ler `<specifics>` -- referencias particulares ou momentos "quero como X"
96
+ - Notar padroes
97
+
98
+ **Passo 3: Construir contexto interno `<prior_decisions>`**
99
+
100
+ **Uso nos passos seguintes:**
101
+ - `analyze_phase`: Pular areas cinzentas ja decididas
102
+ - `present_gray_areas`: Anotar opcoes com decisoes anteriores
103
+ - `discuss_areas`: Pre-preencher respostas ou sinalizar conflitos
104
+ </step>
105
+
106
+ <step name="analyze_phase">
107
+ Analisar a fase para identificar areas cinzentas que valem discussao.
108
+
109
+ **Ler descricao da fase do ROADMAP.md e determinar:**
110
+
111
+ 1. **Limite do dominio** -- Qual capacidade essa fase entrega? Declarar claramente.
112
+
113
+ 2. **Verificar decisoes anteriores** -- Antes de gerar areas cinzentas, verificar se ja foram decididas.
114
+
115
+ 3. **Areas cinzentas por categoria** -- Para cada categoria relevante, identificar 1-2 ambiguidades especificas que mudariam implementacao.
116
+
117
+ 4. **Avaliacao de pulo** -- Se nao ha areas cinzentas significativas (infraestrutura pura, implementacao clara, ou tudo ja decidido), a fase pode nao precisar de discussao.
118
+ </step>
119
+
120
+ <step name="present_gray_areas">
121
+ Apresentar limite do dominio, decisoes anteriores e areas cinzentas ao usuario.
122
+
123
+ **Primeiro, declarar limite e decisoes anteriores que se aplicam:**
124
+ ```
125
+ Fase [X]: [Nome]
126
+ Dominio: [O que esta fase entrega -- da sua analise]
127
+
128
+ Vamos esclarecer COMO implementar isso.
129
+ (Novas capacidades pertencem a outras fases.)
130
+
131
+ [Se decisoes anteriores se aplicam:]
132
+ **Herdado de fases anteriores:**
133
+ - [Decisao da Fase N que se aplica aqui]
134
+ ```
135
+
136
+ **Usar AskUserQuestion (multiSelect: true):**
137
+ - header: "Discutir"
138
+ - question: "Quais areas voce quer discutir para [nome da fase]?"
139
+ - options: Gerar 3-4 areas cinzentas especificas da fase
140
+
141
+ **NAO incluir opcao "pular" ou "voce decide".** Usuario executou este comando para discutir.
142
+ </step>
143
+
144
+ <step name="discuss_areas">
145
+ Para cada area selecionada, conduzir loop de discussao focada.
146
+
147
+ **Filosofia: 4 perguntas, depois verificar.**
148
+
149
+ **Para cada area:**
150
+
151
+ 1. **Anunciar a area:**
152
+ ```
153
+ Vamos falar sobre [Area].
154
+ ```
155
+
156
+ 2. **Perguntar 4 questoes usando AskUserQuestion:**
157
+ - header: "[Area]" (max 12 chars)
158
+ - question: Decisao especifica para esta area
159
+ - options: 2-3 escolhas concretas, com escolha recomendada destacada
160
+ - Incluir "Voce decide" como opcao quando razoavel
161
+
162
+ 3. **Apos 4 perguntas, verificar:**
163
+ - header: "[Area]" (max 12 chars)
164
+ - question: "Mais perguntas sobre [area], ou ir para proxima?"
165
+ - options: "Mais perguntas" / "Proxima area"
166
+
167
+ 4. **Apos todas areas selecionadas completarem:**
168
+ - Resumir o que foi capturado
169
+ - AskUserQuestion:
170
+ - header: "Pronto"
171
+ - question: "Discutimos [listar areas]. Quais areas cinzentas permanecem?"
172
+ - options: "Explorar mais areas" / "Pronto para contexto"
173
+ - Se "Explorar mais": identificar 2-4 areas adicionais, voltar ao loop
174
+ - Se "Pronto para contexto": Prosseguir para write_context
175
+
176
+ **Tratamento de inflacao de escopo:**
177
+ Se usuario mencionar algo fora do dominio da fase:
178
+ ```
179
+ "[Feature] parece uma nova capacidade -- pertence a propria fase.
180
+ Vou anotar como ideia adiada.
181
+
182
+ Voltando para [area atual]: [retornar a pergunta atual]"
183
+ ```
184
+ </step>
185
+
186
+ <step name="write_context">
187
+ Criar CONTEXT.md capturando decisoes tomadas.
188
+
189
+ Usar valores do init: `phase_dir`, `phase_slug`, `padded_phase`.
190
+
191
+ Se `phase_dir` e null:
192
+ ```bash
193
+ mkdir -p ".plano/fases/${padded_phase}-${phase_slug}"
194
+ ```
195
+
196
+ **Local do arquivo:** `${phase_dir}/${padded_phase}-CONTEXT.md`
197
+
198
+ ```markdown
199
+ # Fase [X]: [Nome] - Contexto
200
+
201
+ **Reunido:** [data]
202
+ **Status:** Pronto para planejamento
203
+
204
+ <domain>
205
+ ## Limite da Fase
206
+
207
+ [Declaracao clara do que esta fase entrega -- a ancora de escopo]
208
+
209
+ </domain>
210
+
211
+ <decisions>
212
+ ## Decisoes de Implementacao
213
+
214
+ ### [Categoria 1 discutida]
215
+ - [Decisao ou preferencia capturada]
216
+
217
+ ### [Categoria 2 discutida]
218
+ - [Decisao ou preferencia capturada]
219
+
220
+ ### Criterio do Claude
221
+ [Areas onde usuario disse "voce decide"]
222
+
223
+ </decisions>
224
+
225
+ <specifics>
226
+ ## Ideias Especificas
227
+
228
+ [Referencias particulares, exemplos, ou momentos "quero como X"]
229
+
230
+ [Se nenhum: "Sem requisitos especificos -- aberto a abordagens padrao"]
231
+
232
+ </specifics>
233
+
234
+ <deferred>
235
+ ## Ideias Adiadas
236
+
237
+ [Ideias que surgiram mas pertencem a outras fases.]
238
+
239
+ [Se nenhuma: "Nenhuma -- discussao manteve-se no escopo da fase"]
240
+
241
+ </deferred>
242
+
243
+ ---
244
+
245
+ *Fase: XX-nome*
246
+ *Contexto reunido: [data]*
247
+ ```
248
+
249
+ Escrever arquivo.
250
+ </step>
251
+
252
+ <step name="confirm_creation">
253
+ Apresentar resumo e proximos passos:
254
+
255
+ ```
256
+ Criado: .plano/fases/${PADDED_PHASE}-${SLUG}/${PADDED_PHASE}-CONTEXT.md
257
+
258
+ ## Decisoes Capturadas
259
+
260
+ ### [Categoria]
261
+ - [Decisao-chave]
262
+
263
+ [Se ideias adiadas existem:]
264
+ ## Anotado para Depois
265
+ - [Ideia adiada] -- fase futura
266
+
267
+ ---
268
+
269
+ ## Proximo
270
+
271
+ **Fase ${PHASE}: [Nome]** -- [Objetivo do ROADMAP.md]
272
+
273
+ `/up:planejar-fase ${PHASE}`
274
+
275
+ <sub>`/clear` primeiro -> janela de contexto limpa</sub>
276
+
277
+ ---
278
+
279
+ **Tambem disponivel:**
280
+ - Revisar/editar CONTEXT.md antes de continuar
281
+
282
+ ---
283
+ ```
284
+ </step>
285
+
286
+ <step name="git_commit">
287
+ Commit do contexto da fase:
288
+
289
+ ```bash
290
+ node "$HOME/.claude/up/bin/up-tools.cjs" commit "docs(${padded_phase}): capturar contexto da fase" --files "${phase_dir}/${padded_phase}-CONTEXT.md"
291
+ ```
292
+ </step>
293
+
294
+ <step name="update_state">
295
+ Atualizar STATE.md com info da sessao:
296
+
297
+ ```bash
298
+ node "$HOME/.claude/up/bin/up-tools.cjs" state record-session \
299
+ --stopped-at "Fase ${PHASE} contexto reunido" \
300
+ --resume-file "${phase_dir}/${padded_phase}-CONTEXT.md"
301
+ ```
302
+
303
+ Commit STATE.md:
304
+
305
+ ```bash
306
+ node "$HOME/.claude/up/bin/up-tools.cjs" commit "docs(state): registrar sessao de contexto fase ${PHASE}" --files .plano/STATE.md
307
+ ```
308
+ </step>
309
+
310
+ </process>
311
+
312
+ <success_criteria>
313
+ - Fase validada contra roteiro
314
+ - Contexto anterior carregado (PROJECT.md, REQUIREMENTS.md, STATE.md, CONTEXT.md anteriores)
315
+ - Questoes ja decididas nao re-perguntadas
316
+ - Areas cinzentas identificadas com analise inteligente
317
+ - Usuario selecionou quais areas discutir
318
+ - Cada area explorada ate usuario ficar satisfeito
319
+ - Inflacao de escopo redirecionada para ideias adiadas
320
+ - CONTEXT.md captura decisoes reais, nao visao vaga
321
+ - Ideias adiadas preservadas para fases futuras
322
+ - STATE.md atualizado com info da sessao
323
+ - Usuario sabe proximos passos
324
+ </success_criteria>
@@ -0,0 +1,277 @@
1
+ <purpose>
2
+ Executar todos os planos em uma fase usando execucao paralela baseada em waves. Orquestrador fica enxuto -- delega execucao de planos a subagentes.
3
+ </purpose>
4
+
5
+ <core_principle>
6
+ Orquestrador coordena, nao executa. Cada subagente carrega o contexto completo de execute-plan. Orquestrador: descobrir planos -> analisar deps -> agrupar waves -> spawn agentes -> tratar checkpoints -> coletar resultados.
7
+ </core_principle>
8
+
9
+ <process>
10
+
11
+ <step name="initialize" priority="first">
12
+ Carregar contexto:
13
+
14
+ ```bash
15
+ INIT=$(node "$HOME/.claude/up/bin/up-tools.cjs" init execute-phase "${PHASE_ARG}")
16
+ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
17
+ ```
18
+
19
+ Parse JSON: `executor_model`, `verifier_model`, `commit_docs`, `parallelization`, `phase_found`, `phase_dir`, `phase_number`, `phase_name`, `phase_slug`, `plans`, `incomplete_plans`, `plan_count`, `incomplete_count`, `state_exists`, `roadmap_exists`, `phase_req_ids`.
20
+
21
+ **Se `phase_found` = false:** Erro -- diretorio da fase nao encontrado.
22
+ **Se `plan_count` = 0:** Erro -- sem planos encontrados na fase.
23
+
24
+ Quando `parallelization` = false, planos dentro de uma wave executam sequencialmente.
25
+ </step>
26
+
27
+ <step name="validate_phase">
28
+ Do init JSON: `phase_dir`, `plan_count`, `incomplete_count`.
29
+
30
+ Reportar: "Encontrados {plan_count} planos em {phase_dir} ({incomplete_count} incompletos)"
31
+ </step>
32
+
33
+ <step name="discover_and_group_plans">
34
+ Carregar inventario de planos com agrupamento por wave:
35
+
36
+ ```bash
37
+ PLAN_INDEX=$(node "$HOME/.claude/up/bin/up-tools.cjs" phase-plan-index "${PHASE_NUMBER}")
38
+ ```
39
+
40
+ Parse JSON: `phase`, `plans[]` (cada com `id`, `wave`, `autonomous`, `objective`, `files_modified`, `task_count`, `has_summary`), `waves`, `incomplete`, `has_checkpoints`.
41
+
42
+ **Filtrar:** Pular planos onde `has_summary: true`. Se todos filtrados: "Sem planos incompletos" -> sair.
43
+
44
+ Reportar:
45
+ ```
46
+ ## Plano de Execucao
47
+
48
+ **Fase {X}: {Nome}** -- {total_plans} planos em {wave_count} waves
49
+
50
+ | Wave | Planos | O que constroi |
51
+ |------|--------|----------------|
52
+ | 1 | 01-01, 01-02 | {dos objetivos dos planos, 3-8 palavras} |
53
+ | 2 | 01-03 | ... |
54
+ ```
55
+ </step>
56
+
57
+ <step name="execute_waves">
58
+ Executar cada wave em sequencia. Dentro de uma wave: paralelo se `PARALLELIZATION=true`, sequencial se `false`.
59
+
60
+ **Para cada wave:**
61
+
62
+ 1. **Descrever o que esta sendo construido (ANTES do spawn):**
63
+
64
+ Ler `<objective>` de cada plano. Extrair o que esta sendo construido e por que.
65
+
66
+ ```
67
+ ---
68
+ ## Wave {N}
69
+
70
+ **{Plan ID}: {Nome do Plano}**
71
+ {2-3 sentencas: o que isso constroi, abordagem tecnica, por que importa}
72
+
73
+ Spawning {count} agente(s)...
74
+ ---
75
+ ```
76
+
77
+ 2. **Spawn agentes executores:**
78
+
79
+ Passar apenas caminhos -- executores leem arquivos eles mesmos com contexto limpo de 200k.
80
+
81
+ ```
82
+ Task(
83
+ subagent_type="up-executor",
84
+ prompt="
85
+ <objective>
86
+ Executar plano {plan_number} da fase {phase_number}-{phase_name}.
87
+ Commitar cada tarefa atomicamente. Criar SUMMARY.md. Atualizar STATE.md e ROADMAP.md.
88
+ </objective>
89
+
90
+ <execution_context>
91
+ @~/.claude/up/workflows/executar-plano.md
92
+ @~/.claude/up/references/checkpoints.md
93
+ </execution_context>
94
+
95
+ <files_to_read>
96
+ Ler estes arquivos no inicio da execucao usando a ferramenta Read:
97
+ - {phase_dir}/{plan_file} (Plano)
98
+ - .plano/STATE.md (Estado)
99
+ - .plano/config.json (Config, se existir)
100
+ - ./CLAUDE.md (Instrucoes do projeto, se existir)
101
+ </files_to_read>
102
+
103
+ <success_criteria>
104
+ - [ ] Todas tarefas executadas
105
+ - [ ] Cada tarefa committed individualmente
106
+ - [ ] SUMMARY.md criado no diretorio do plano
107
+ - [ ] STATE.md atualizado com posicao e decisoes
108
+ - [ ] ROADMAP.md atualizado com progresso do plano (via `roadmap update-plan-progress`)
109
+ </success_criteria>
110
+ "
111
+ )
112
+ ```
113
+
114
+ 3. **Esperar todos agentes na wave completarem.**
115
+
116
+ 4. **Reportar conclusao -- spot-check claims primeiro:**
117
+
118
+ Para cada SUMMARY.md:
119
+ - Verificar que primeiros 2 arquivos de `key-files.created` existem no disco
120
+ - Verificar `git log --oneline --all --grep="{phase}-{plan}"` retorna >= 1 commit
121
+ - Verificar marcador `## Self-Check: FAILED`
122
+
123
+ Se algum spot-check falhar: reportar qual plano falhou, perguntar "Tentar novamente?" ou "Continuar com waves restantes?"
124
+
125
+ Se passar:
126
+ ```
127
+ ---
128
+ ## Wave {N} Completa
129
+
130
+ **{Plan ID}: {Nome do Plano}**
131
+ {O que foi construido -- do SUMMARY.md}
132
+
133
+ {Se mais waves: o que isso habilita para proxima wave}
134
+ ---
135
+ ```
136
+
137
+ 5. **Tratar falhas:**
138
+ Para falhas reais: reportar qual plano falhou -> perguntar "Continuar?" ou "Parar?" -> se continuar, planos dependentes podem tambem falhar.
139
+
140
+ 6. **Prosseguir para proxima wave.**
141
+ </step>
142
+
143
+ <step name="aggregate_results">
144
+ Apos todas waves:
145
+
146
+ ```markdown
147
+ ## Fase {X}: {Nome} Execucao Completa
148
+
149
+ **Waves:** {N} | **Planos:** {M}/{total} completos
150
+
151
+ | Wave | Planos | Status |
152
+ |------|--------|--------|
153
+ | 1 | plano-01, plano-02 | Completo |
154
+ | 2 | plano-03 | Completo |
155
+
156
+ ### Detalhes dos Planos
157
+ 1. **03-01**: [resumo do SUMMARY.md]
158
+ 2. **03-02**: [resumo do SUMMARY.md]
159
+
160
+ ### Problemas Encontrados
161
+ [Agregado dos SUMMARYs, ou "Nenhum"]
162
+ ```
163
+ </step>
164
+
165
+ <step name="verify_phase_goal">
166
+ Verificar que fase atingiu seu OBJETIVO, nao apenas completou tarefas.
167
+
168
+ ```
169
+ Task(
170
+ prompt="Verificar atingimento do objetivo da fase {phase_number}.
171
+ Diretorio da fase: {phase_dir}
172
+ Objetivo da fase: {goal do ROADMAP.md}
173
+ IDs de requisitos da fase: {phase_req_ids}
174
+ Verificar must_haves contra codebase real.
175
+ Cross-referenciar IDs de requisitos do frontmatter do PLAN contra REQUIREMENTS.md.
176
+ Criar VERIFICATION.md.",
177
+ subagent_type="up-verificador"
178
+ )
179
+ ```
180
+
181
+ Ler status:
182
+ ```bash
183
+ grep "^status:" "$PHASE_DIR"/*-VERIFICATION.md | cut -d: -f2 | tr -d ' '
184
+ ```
185
+
186
+ | Status | Acao |
187
+ |--------|------|
188
+ | `passed` | -> update_roadmap |
189
+ | `human_needed` | Apresentar itens para teste humano, obter aprovacao |
190
+ | `gaps_found` | Apresentar resumo de lacunas, oferecer `/up:planejar-fase {fase} --gaps` |
191
+ </step>
192
+
193
+ <step name="update_roadmap">
194
+ **Marcar fase completa e atualizar todos arquivos de rastreamento:**
195
+
196
+ ```bash
197
+ COMPLETION=$(node "$HOME/.claude/up/bin/up-tools.cjs" phase complete "${PHASE_NUMBER}")
198
+ ```
199
+
200
+ O CLI trata:
201
+ - Marcar checkbox da fase `[x]` com data de conclusao
202
+ - Atualizar tabela de Progresso
203
+ - Avancar STATE.md para proxima fase
204
+ - Atualizar rastreabilidade do REQUIREMENTS.md
205
+
206
+ Extrair do resultado: `next_phase`, `next_phase_name`, `is_last_phase`.
207
+
208
+ ```bash
209
+ node "$HOME/.claude/up/bin/up-tools.cjs" commit "docs(fase-{X}): completar execucao da fase" --files .plano/ROADMAP.md .plano/STATE.md .plano/REQUIREMENTS.md {phase_dir}/*-VERIFICATION.md
210
+ ```
211
+ </step>
212
+
213
+ <step name="offer_next">
214
+
215
+ **Se verificacao passou:**
216
+
217
+ ```
218
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
219
+ UP > FASE {X} COMPLETA
220
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
221
+
222
+ **Fase {X}: {Nome}** -- todos planos executados e verificados
223
+
224
+ ───────────────────────────────────────────────────────────────
225
+
226
+ ## Proximo
227
+
228
+ **Fase {X+1}: {Nome}** -- [Objetivo do ROADMAP.md]
229
+
230
+ /up:discutir-fase {X+1} -- reunir contexto e esclarecer abordagem
231
+
232
+ <sub>/clear primeiro -> janela de contexto limpa</sub>
233
+
234
+ ───────────────────────────────────────────────────────────────
235
+
236
+ **Tambem disponivel:**
237
+ - /up:planejar-fase {X+1} -- pular discussao, planejar diretamente
238
+ - /up:verificar-trabalho {X} -- teste de aceitacao do usuario
239
+
240
+ ───────────────────────────────────────────────────────────────
241
+ ```
242
+
243
+ **Se lacunas encontradas:**
244
+
245
+ ```
246
+ ## Lacunas Encontradas na Fase {X}: {Nome}
247
+
248
+ **Score:** {N}/{M} must-haves verificados
249
+ **Relatorio:** {phase_dir}/{phase_num}-VERIFICATION.md
250
+
251
+ ### O que Falta
252
+ {Resumo das lacunas}
253
+
254
+ ---
255
+ ## Proximo
256
+
257
+ `/up:planejar-fase {X} --gaps`
258
+
259
+ <sub>`/clear` primeiro -> janela de contexto limpa</sub>
260
+ ```
261
+ </step>
262
+
263
+ </process>
264
+
265
+ <context_efficiency>
266
+ Orquestrador: ~10-15% contexto. Subagentes: 200k limpo cada. Sem polling (Task bloqueia). Sem vazamento de contexto.
267
+ </context_efficiency>
268
+
269
+ <failure_handling>
270
+ - **Agente falha no meio do plano:** SUMMARY.md faltando -> reportar, perguntar usuario como prosseguir
271
+ - **Cadeia de dependencia quebra:** Wave 1 falha -> dependentes da Wave 2 provavelmente falham -> usuario escolhe tentar ou pular
272
+ - **Todos agentes na wave falham:** Problema sistemico -> parar, reportar para investigacao
273
+ </failure_handling>
274
+
275
+ <resumption>
276
+ Re-executar `/up:executar-fase {fase}` -> discover_plans encontra SUMMARYs completos -> pula -> resume do primeiro plano incompleto -> continua execucao por wave.
277
+ </resumption>