up-cc 0.5.2 → 0.7.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.
@@ -0,0 +1,431 @@
1
+ <purpose>
2
+ Workflow `/up:build` — Execucao de projeto previamente planejado.
3
+
4
+ Requer `.plano/PLAN-READY.md` (gerado por `/up:plan`).
5
+
6
+ Conduz Estagios 3 (Build) + 4 (Quality Gate) + 4.5 (Delivery Audit) + 5 (Delivery).
7
+
8
+ Pode executar projeto planejado em outro runtime — confia no PLAN-READY.md.
9
+ </purpose>
10
+
11
+ <core_principle>
12
+ Este workflow assume que o projeto foi completamente planejado por `/up:plan`.
13
+
14
+ Diferenca do builder:
15
+ - Builder: planeja + executa em sequencia, no mesmo runtime
16
+ - Build: SO executa, le PLAN-READY.md gerado anteriormente (mesmo runtime ou outro)
17
+
18
+ **Sem model routing** — runtime decide o modelo.
19
+
20
+ **Re-plan local permitido (max 2):**
21
+ Se durante execucao o execution-supervisor detectar que um plano esta inviavel,
22
+ ele pode pedir REQUEST_REPLAN. O planejador local refaz o plano daquela fase.
23
+ NUNCA volta pro runtime que planejou originalmente.
24
+ </core_principle>
25
+
26
+ <process>
27
+
28
+ ## Estagio 0: GATES OBRIGATORIOS
29
+
30
+ ### 0.1 Owner Profile (LOCAL)
31
+
32
+ ```bash
33
+ if [ ! -f ~/.claude/up/owner-profile.md ]; then
34
+ echo "Owner profile nao existe NESTE runtime. Rodando /up:onboard..."
35
+ # Delegar pro workflow onboarding.md
36
+ fi
37
+ ```
38
+
39
+ **IMPORTANTE:** O profile e do RUNTIME ATUAL, nao do runtime que planejou. Cada runtime tem seu profile.
40
+
41
+ ### 0.2 PLAN-READY.md Existe?
42
+
43
+ ```bash
44
+ if [ ! -f .plano/PLAN-READY.md ]; then
45
+ echo "ERRO: Este projeto nao foi planejado."
46
+ echo ""
47
+ echo "Use /up:plan primeiro pra planejar o projeto."
48
+ echo "Ou /up:modo-builder pra planejar e executar de uma vez."
49
+ exit 1
50
+ fi
51
+ ```
52
+
53
+ ### 0.3 Crash Recovery
54
+
55
+ ```bash
56
+ ls .plano/LOCK.md 2>/dev/null
57
+ ```
58
+
59
+ Se LOCK.md existe e `stage: build`: retomar.
60
+
61
+ ## Estagio V: VALIDACAO LIGHT
62
+
63
+ **Confiar no PLAN-READY.md, mas spot-check estrutura.**
64
+
65
+ ### V.1 Parsear PLAN-READY.md
66
+
67
+ ```bash
68
+ # Extrair frontmatter
69
+ PLANNED_RUNTIME=$(grep "runtime:" .plano/PLAN-READY.md | head -1 | awk '{print $2}')
70
+ INTENDED_RUNTIME=$(grep -A1 "intended_execution:" .plano/PLAN-READY.md | tail -1 | awk '{print $2}')
71
+ TOTAL_PHASES=$(grep "total_phases:" .plano/PLAN-READY.md | awk '{print $2}')
72
+ CONFIDENCE=$(grep "planning_confidence:" .plano/PLAN-READY.md | awk '{print $2}')
73
+ ```
74
+
75
+ ### V.2 Validacao de Compatibilidade
76
+
77
+ ```bash
78
+ CURRENT_RUNTIME="claude-code" # detectar
79
+ [ -d ~/.config/opencode ] && CURRENT_RUNTIME="opencode"
80
+ [ -d ~/.gemini ] && CURRENT_RUNTIME="gemini-cli"
81
+
82
+ # Se intended_execution especifica um runtime e nao e o atual, alertar
83
+ if [ "$INTENDED_RUNTIME" != "same" ] && [ "$INTENDED_RUNTIME" != "any" ] && [ "$INTENDED_RUNTIME" != "$CURRENT_RUNTIME" ]; then
84
+ echo "AVISO: Plano gerado pra $INTENDED_RUNTIME, voce esta em $CURRENT_RUNTIME"
85
+ echo "Pode haver incompatibilidades. Continuar mesmo assim?"
86
+ # AskUserQuestion sim/nao
87
+ fi
88
+ ```
89
+
90
+ ### V.3 Validar Artefatos Esperados
91
+
92
+ ```bash
93
+ [ -f .plano/PROJECT.md ] || { echo "FALTANDO: PROJECT.md"; FAIL=1; }
94
+ [ -f .plano/ROADMAP.md ] || { echo "FALTANDO: ROADMAP.md"; FAIL=1; }
95
+ [ -f .plano/REQUIREMENTS.md ] || { echo "FALTANDO: REQUIREMENTS.md"; FAIL=1; }
96
+ [ -f .plano/SYSTEM-DESIGN.md ] || { echo "FALTANDO: SYSTEM-DESIGN.md"; FAIL=1; }
97
+ ```
98
+
99
+ ### V.4 Validar Planos Listados
100
+
101
+ Pra cada plano listado em PLAN-READY.md, checar se arquivo existe:
102
+
103
+ ```bash
104
+ # Extrair lista de planos do PLAN-READY.md
105
+ PLANS=$(grep -oE "fases/[0-9]+-[a-z-]+/[0-9]+-[0-9]+-PLAN.md" .plano/PLAN-READY.md)
106
+
107
+ for plan in $PLANS; do
108
+ if [ ! -f ".plano/$plan" ]; then
109
+ echo "FALTANDO: $plan"
110
+ FAIL=1
111
+ fi
112
+ done
113
+ ```
114
+
115
+ ### V.5 Decidir
116
+
117
+ **Se todos arquivos OK:** prosseguir.
118
+
119
+ **Se algo falta:**
120
+ - Alertar usuario
121
+ - Oferecer: "Posso planejar localmente?" (re-roda /up:plan)
122
+ - Ou abortar
123
+
124
+ ## Estagio C: CEO CONFIRMA
125
+
126
+ Spawnar CEO local:
127
+
128
+ ```python
129
+ Agent(
130
+ subagent_type="up-project-ceo",
131
+ prompt="""
132
+ Confirmar execucao de projeto previamente planejado.
133
+
134
+ <files_to_read>
135
+ - ~/.claude/up/owner-profile.md (perfil LOCAL deste runtime)
136
+ - .plano/BRIEFING.md (briefing original)
137
+ - .plano/PLAN-READY.md (resumo do planejamento)
138
+ - .plano/AUDIT-PLAN.md (audit do planejamento)
139
+ - .plano/PENDING.md
140
+ </files_to_read>
141
+
142
+ Apresentar ao dono:
143
+ - "Detectei projeto planejado em {runtime} por {ceo_name_anterior}"
144
+ - Resumo: N fases, M planos
145
+ - Planning confidence: X/100
146
+ - Pendencias conhecidas
147
+ - "Iniciar execucao? (enter pra continuar)"
148
+
149
+ Se dono confirmar: prosseguir.
150
+ Se recusar: abortar.
151
+ """
152
+ )
153
+ ```
154
+
155
+ ## Estagio 3: BUILD (loop por fase)
156
+
157
+ **Mesmo processo do builder.md secao Estagio 3, mas SEM model routing.**
158
+
159
+ Para cada fase em ROADMAP.md (em ordem):
160
+
161
+ ### 3.1 Carregar Plano da Fase
162
+
163
+ ```bash
164
+ PHASE_DIR=$(ls -d .plano/fases/{phase_number}-* 2>/dev/null)
165
+ PLAN=$(ls "$PHASE_DIR"/*-PLAN.md | head -1)
166
+ ```
167
+
168
+ ### 3.2 Detectar Tipo de Plano (Specialist Routing)
169
+
170
+ Ler o frontmatter do plano pra determinar qual specialist usar:
171
+ - Frontend tasks → up-frontend-specialist
172
+ - Backend tasks → up-backend-specialist
173
+ - Database tasks → up-database-specialist
174
+ - Misto → up-executor
175
+
176
+ ### 3.3 Spawnar Specialist
177
+
178
+ ```python
179
+ Agent(
180
+ subagent_type="{up-specialist}",
181
+ prompt=f"""
182
+ Executar Plano da Fase {phase_number}.
183
+
184
+ <engineering_principles_compressed>
185
+ 1. Implementacao real, nao simulacao (zero placeholder, zero stub)
186
+ 2. Correto, nao rapido (sem `any`, validacao com lib, queries parametrizadas)
187
+ 3. Conectado ponta a ponta (componente → API → DB com dados fluindo)
188
+ 4. Consistencia (grep por pattern existente antes de inventar)
189
+ 5. Dados reais desde o primeiro momento (sem hardcode)
190
+ 6. Cada decisao tem custo futuro (escolher solucao escalavel)
191
+
192
+ Em duvida entre rapido e correto: sempre o correto.
193
+ Sob demanda: Read references/engineering-principles.md para exemplos.
194
+ </engineering_principles_compressed>
195
+
196
+ <production_requirements_compressed>
197
+ Categorias a respeitar (71 requisitos no total):
198
+ - UIST (UI States): loading/error/empty/success em TODA operacao async
199
+ - ERR (Error handling): boundaries, try/catch, sessao expirada, 404
200
+ - PERF: lazy loading, code split, debounce, pagination > 20 items, cache
201
+ - FORM: validacao inline, mensagens especificas, autofocus, mascaras
202
+ - RESP: 375px funcional, touch 44x44, hamburger mobile
203
+ - A11Y: alt, labels, focus visible, keyboard, contraste 4.5:1
204
+ - SEC: rotas protegidas, CSRF, XSS, rate limit, env vars, RLS
205
+ - POLISH: hover, transicoes 150-300ms, design tokens
206
+
207
+ Sob demanda: Read references/production-requirements.md para IDs especificos.
208
+ </production_requirements_compressed>
209
+
210
+ <files_to_read>
211
+ TIER 1 — Sempre:
212
+ - {PLAN}
213
+ - .plano/STATE.md
214
+ - ./CLAUDE.md (se existir)
215
+
216
+ TIER 2 — Se a slice da fase existe (v0.7.0+):
217
+ - .plano/fases/{phase_number}/PHASE.md (objetivo da fase)
218
+ - .plano/fases/{phase_number}/REQUIREMENTS-SLICE.md (REQs APENAS desta fase)
219
+ - .plano/DESIGN-TOKENS.md (se for frontend e existir)
220
+
221
+ TIER 3 — Sob demanda apenas:
222
+ - .plano/PROJECT.md (so se precisar visao geral)
223
+ - .plano/SYSTEM-DESIGN.md (so se decisao de arquitetura aparecer)
224
+ - .plano/REQUIREMENTS.md (so se a slice nao tiver info suficiente)
225
+ </files_to_read>
226
+
227
+ Implementar todas as tarefas. Commitar atomicamente.
228
+ Gerar SUMMARY.md.
229
+ """
230
+ )
231
+ ```
232
+
233
+ ### 3.4 Execution Supervisor Revisa
234
+
235
+ ```python
236
+ Agent(
237
+ subagent_type="up-execution-supervisor",
238
+ prompt=f"""
239
+ Revisar execucao da Fase {phase_number}.
240
+
241
+ <governance_compressed>
242
+ DECISOES: APPROVE | REQUEST_CHANGES | REQUEST_REPLAN | ESCALATE
243
+ REWORK: max 3 ciclos antes de forcar approval com debito
244
+ NUNCA APROVAR: trabalho nao verificado, evidencia ambigua, claim sem backing,
245
+ stub/placeholder, falta de wiring
246
+ </governance_compressed>
247
+
248
+ <engineering_principles_compressed>
249
+ 1. Implementacao real (zero placeholder)
250
+ 2. Correto, nao rapido
251
+ 3. Conectado ponta a ponta
252
+ 4. Consistencia (seguir patterns existentes)
253
+ 5. Dados reais
254
+ 6. Custo futuro
255
+ </engineering_principles_compressed>
256
+
257
+ <files_to_read>
258
+ - {PLAN}
259
+ - {PHASE_DIR}/*-SUMMARY.md
260
+ - git diff (use Bash)
261
+ - .plano/fases/{phase_number}/REQUIREMENTS-SLICE.md (se existir)
262
+
263
+ Sob demanda apenas:
264
+ - $HOME/.claude/up/references/engineering-principles.md (exemplos)
265
+ - $HOME/.claude/up/references/governance-rules.md (hierarquia)
266
+ - $HOME/.claude/up/references/rework-limits.md (fluxos)
267
+ - $HOME/.claude/up/references/production-requirements.md (IDs especificos)
268
+ </files_to_read>
269
+
270
+ Decisao: APPROVE | REQUEST_CHANGES | REQUEST_REPLAN | ESCALATE
271
+
272
+ REQUEST_REPLAN: Se descobrir que o plano e fundamentalmente errado/inviavel.
273
+ Max 2 re-plans por projeto.
274
+ """
275
+ )
276
+ ```
277
+
278
+ ### 3.5 Processar Decisao do Supervisor
279
+
280
+ **Se APPROVE:** prosseguir.
281
+
282
+ **Se REQUEST_CHANGES:** re-spawn specialist com feedback (max 3 ciclos).
283
+
284
+ **Se REQUEST_REPLAN:**
285
+
286
+ ```bash
287
+ REPLAN_COUNT=$(cat .plano/governance/replans.log 2>/dev/null | wc -l)
288
+ if [ "$REPLAN_COUNT" -ge 2 ]; then
289
+ echo "Max re-plans atingido. Escalando pro CEO."
290
+ # ESCALATE
291
+ else
292
+ # Re-planejar fase localmente
293
+ echo "REQUEST_REPLAN aprovado. Re-planejando fase {phase_number} localmente..."
294
+
295
+ # Spawnar planejador LOCAL
296
+ Agent(
297
+ subagent_type="up-planejador",
298
+ prompt=f"""
299
+ RE-PLAN da Fase {phase_number}.
300
+
301
+ Plano original: {PLAN}
302
+ Razao do re-plan: {execution_supervisor_reason}
303
+
304
+ Refaca o plano corrigindo o problema descoberto.
305
+ """
306
+ )
307
+
308
+ # Salvar como -PLAN-v2.md
309
+ mv "$PLAN" "${PLAN%-PLAN.md}-PLAN-v1.md"
310
+ # novo plano vira PLAN principal
311
+
312
+ # Registrar
313
+ echo "$(date -u) | phase-{phase_number} | execution-supervisor | REPLAN | reason: {reason}" >> .plano/governance/replans.log
314
+
315
+ # Planning-supervisor revisa novo plano
316
+ Agent(subagent_type="up-planning-supervisor", ...)
317
+
318
+ # Voltar pro 3.3 (re-spawn specialist)
319
+ fi
320
+ ```
321
+
322
+ **Se ESCALATE:** chief-engineer entra.
323
+
324
+ ### 3.6 Verificacao
325
+
326
+ ```python
327
+ Agent(subagent_type="up-verificador", ...)
328
+ Agent(subagent_type="up-verification-supervisor", ...)
329
+ ```
330
+
331
+ ### 3.7 E2E + DCRV
332
+
333
+ Ver builder.md secao 3.1.5 (E2E) e 3.1.5.1 (DCRV).
334
+
335
+ ### 3.8 Chief-engineer Aprova Fase
336
+
337
+ ```python
338
+ Agent(
339
+ subagent_type="up-chief-engineer",
340
+ prompt="Revisar Fase {phase_number} consolidada."
341
+ )
342
+ ```
343
+
344
+ ### 3.9 Marcar Completa e Avancar
345
+
346
+ ## Estagio 4: QUALITY GATE GLOBAL
347
+
348
+ Mesmo processo do builder.md secao Estagio 4. Sem model routing.
349
+
350
+ ## Estagio 4.5: DELIVERY AUDIT
351
+
352
+ ```python
353
+ Agent(subagent_type="up-delivery-auditor", ...)
354
+ ```
355
+
356
+ ## Estagio 5: DELIVERY
357
+
358
+ Mesmo processo. CEO local apresenta resultado.
359
+
360
+ ### 5.X Marcar Projeto Completo
361
+
362
+ ```bash
363
+ # PLAN-READY.md → PROJECT-COMPLETE.md
364
+ mv .plano/PLAN-READY.md .plano/PROJECT-COMPLETE.md
365
+ ```
366
+
367
+ Adicionar ao frontmatter:
368
+ ```yaml
369
+ status: complete
370
+ completed_at: [timestamp]
371
+ completed_by:
372
+ runtime: [current]
373
+ ceo_name: [local]
374
+ final_confidence: [from audit]
375
+ ```
376
+
377
+ </process>
378
+
379
+ <replans>
380
+
381
+ ## Re-plans Locais (max 2)
382
+
383
+ Quando: execution-supervisor descobre que o plano original esta inviavel.
384
+
385
+ Como funciona:
386
+
387
+ ```
388
+ Execution falha
389
+
390
+ execution-supervisor analisa
391
+
392
+ Decide: REQUEST_REPLAN
393
+
394
+ Verifica replans.log < 2?
395
+ ├─ Sim: prosseguir
396
+ └─ Nao: ESCALATE pro CEO
397
+
398
+ Spawnar planejador LOCAL no runtime atual
399
+
400
+ Refaz plano daquela fase
401
+
402
+ Salva como PLAN-v2.md (preserva v1 pra historico)
403
+
404
+ Planning-supervisor LOCAL revisa
405
+
406
+ Se APPROVE: voltar pro executor com novo plano
407
+ Se REJECT: ESCALATE pro chief-engineer
408
+ ```
409
+
410
+ Registro em `.plano/governance/replans.log`:
411
+ ```
412
+ 2026-04-11T15:30:00Z | phase-3 | execution-supervisor | REPLAN | cycle 1/2
413
+ reason: Library X discontinued, need to use Y instead
414
+ original_plan: 03-01-PLAN-v1.md
415
+ new_plan: 03-01-PLAN.md (was v2)
416
+ ```
417
+
418
+ </replans>
419
+
420
+ <success_criteria>
421
+ - [ ] Owner profile LOCAL validado
422
+ - [ ] PLAN-READY.md existe e parseado
423
+ - [ ] Validacao light passou (artefatos + planos existem)
424
+ - [ ] CEO confirmou execucao
425
+ - [ ] Todas fases executadas com supervisao
426
+ - [ ] Re-plans registrados (se houve)
427
+ - [ ] Quality Gate global passou
428
+ - [ ] Delivery audit aprovou
429
+ - [ ] CEO apresentou resultado
430
+ - [ ] PLAN-READY.md → PROJECT-COMPLETE.md
431
+ </success_criteria>
@@ -55,37 +55,25 @@ Neste modo, TODOS os agentes devem:
55
55
  7. **Quality Gate:** Incluir clone-verifier como dimensao "Fidelidade" (20% do score).
56
56
  </core_principle>
57
57
 
58
- <model_routing>
59
- ## Roteamento de Modelos por Papel
58
+ <model_handling>
59
+ ## Modelos (v0.6.0+)
60
60
 
61
- **REGRA OBRIGATORIA:** Ao spawnar QUALQUER agente via Task() ou Agent(), incluir o parametro `model` baseado nesta tabela. Usar os valores de $MODEL_* extraidos do builder-defaults.md (Estagio 1.1).
61
+ **O runtime decide o modelo.** O UP nao especifica `model=opus/sonnet/haiku` em nenhum spawn de agente.
62
62
 
63
- | Papel | Variavel | Agentes | Default |
64
- |-------|----------|---------|---------|
65
- | **Planning** | $MODEL_PLANNING | up-arquiteto, up-product-analyst, up-system-designer, up-planejador, up-roteirista | opus |
66
- | **Execution** | $MODEL_EXECUTION | up-executor, up-frontend-specialist, up-backend-specialist, up-database-specialist | sonnet |
67
- | **Verification** | $MODEL_VERIFICATION | up-verificador, up-code-reviewer, up-blind-validator, up-requirements-validator | opus |
68
- | **Detection** | $MODEL_DETECTION | up-visual-critic, up-exhaustive-tester, up-api-tester | sonnet |
69
- | **Research** | $MODEL_RESEARCH | up-pesquisador-projeto, up-pesquisador-mercado, up-mapeador-codigo, up-sintetizador | sonnet |
70
- | **Quality** | $MODEL_QUALITY | up-qa-agent, up-security-reviewer, up-auditor-ux, up-auditor-performance, up-auditor-modernidade, up-sintetizador-melhorias, up-consolidador-ideias, up-devops-agent, up-technical-writer | opus |
63
+ - Em Claude Code, os agentes usam o modelo default (Opus 4.6) ou o que o usuario configurou via `/model`.
64
+ - Em OpenCode, cada agente usa o modelo configurado no `opencode.json`.
65
+ - Em Gemini CLI, usa o modelo do runtime.
71
66
 
72
- **Exemplo de aplicacao:**
73
- ```python
74
- # ANTES (sem model routing):
75
- Task(subagent_type="up-executor", prompt="...")
67
+ Antes v0.5.x tinha routing por papel (planning=opus, execution=sonnet). Isso foi removido em v0.6.0 para simplicidade e portabilidade entre runtimes.
76
68
 
77
- # DEPOIS (com model routing):
78
- Task(subagent_type="up-executor", model="$MODEL_EXECUTION", prompt="...")
69
+ **Planos sao sempre gerados em nivel detalhado (Sonnet-ready)** independente do modelo que vai executar. Assim funcionam em qualquer runtime.
79
70
 
80
- # Equivale a (com defaults):
81
- Task(subagent_type="up-executor", model="sonnet", prompt="...")
71
+ **Ao spawnar qualquer agente:**
72
+ ```python
73
+ Task(subagent_type="up-executor", prompt="...")
82
74
  ```
83
-
84
- **Ao spawnar qualquer agente, SEMPRE:**
85
- 1. Identificar o papel do agente na tabela acima
86
- 2. Usar a variavel $MODEL_* correspondente como parametro model
87
- 3. Se a variavel nao foi definida (sem builder-defaults), usar o default da tabela
88
- </model_routing>
75
+ Sem parametro `model`.
76
+ </model_handling>
89
77
 
90
78
  <governance>
91
79
  ## Camada de Governanca (v0.5.0+)
@@ -207,23 +195,7 @@ DEFAULTS_PATH="$HOME/.claude/up/builder-defaults.md"
207
195
 
208
196
  Ler `$DEFAULTS_PATH` se existir. Se nao existir, informar: "Sem builder-defaults.md. Usando inferencia inteligente para decisoes nao especificadas. Crie ~/.claude/up/builder-defaults.md para personalizar."
209
197
 
210
- **Extrair configuracao de modelos:**
211
-
212
- Se builder-defaults.md existe, procurar secao "## Modelos por Papel" e extrair mapeamento:
213
- ```
214
- $MODEL_PLANNING = modelo para planning (default: opus)
215
- $MODEL_EXECUTION = modelo para execution (default: sonnet)
216
- $MODEL_VERIFICATION = modelo para verification (default: opus)
217
- $MODEL_DETECTION = modelo para detection (default: sonnet)
218
- $MODEL_RESEARCH = modelo para research (default: sonnet)
219
- $MODEL_QUALITY = modelo para quality (default: opus)
220
- ```
221
-
222
- Se secao nao existe: usar defaults acima (opus planeja, sonnet executa, opus verifica).
223
-
224
- **IMPORTANTE — Sonnet-ready planning:**
225
- Se `$MODEL_EXECUTION = sonnet`, setar flag `$SONNET_EXECUTION = true`.
226
- Isso ativa nivel extra de detalhe nos planos (ver planejador Sonnet-ready mode).
198
+ **v0.6.0+: Sem extracao de modelos.** O runtime decide o modelo. Planos sao sempre Sonnet-ready (detalhe maximo).
227
199
 
228
200
  **Detectar modo automaticamente:**
229
201
 
@@ -659,7 +631,7 @@ Escrever .plano/PRODUCT-ANALYSIS.md
659
631
  Commit apos escrever.
660
632
  Retornar: ## PRODUCT ANALYSIS COMPLETE
661
633
  </output>
662
- ", subagent_type="up-product-analyst", model="$MODEL_PLANNING", description="Analisar produto e mercado")
634
+ ", subagent_type="up-product-analyst", description="Analisar produto e mercado")
663
635
  ```
664
636
 
665
637
  Verificar retorno `## PRODUCT ANALYSIS COMPLETE`. Se falhou: registrar e continuar (System Designer usara blueprints como fallback).
@@ -708,7 +680,7 @@ Escrever .plano/SYSTEM-DESIGN.md
708
680
  Commit apos escrever.
709
681
  Retornar: ## SYSTEM DESIGN COMPLETE
710
682
  </output>
711
- ", subagent_type="up-system-designer", model="$MODEL_PLANNING", description="Projetar sistema completo")
683
+ ", subagent_type="up-system-designer", description="Projetar sistema completo")
712
684
  ```
713
685
 
714
686
  ```
@@ -771,7 +743,7 @@ Se brownfield:
771
743
  - parallelization=true
772
744
  - Commit todos arquivos ao final
773
745
  </constraints>
774
- ", subagent_type="up-arquiteto", model="$MODEL_PLANNING", description="Estruturar projeto executavel")
746
+ ", subagent_type="up-arquiteto", description="Estruturar projeto executavel")
775
747
  ```
776
748
 
777
749
  ### 2.7 Validar Requisitos (Quality Gate de Planejamento)
@@ -785,7 +757,7 @@ Validando requisitos (13 checks)...
785
757
  ```
786
758
  Task(
787
759
  subagent_type="up-requirements-validator",
788
- model="$MODEL_VERIFICATION",
760
+ ,
789
761
  prompt="
790
762
  <objective>
791
763
  Validar REQUIREMENTS.md com 13 checks automaticos.
@@ -977,7 +949,7 @@ Task(prompt="
977
949
  <planning_context>
978
950
  **Fase:** {phase_number}
979
951
  **Modo:** builder (autonomo -- NAO use AskUserQuestion)
980
- <sonnet_execution>{$SONNET_EXECUTION}</sonnet_execution>
952
+ **Sonnet-ready:** sempre (default em v0.6.0+)
981
953
 
982
954
  <files_to_read>
983
955
  - .plano/STATE.md (Estado do Projeto)
@@ -1019,14 +991,14 @@ Se algo falhar, corrija antes de retornar.
1019
991
  Escrever PLAN.md em: .plano/fases/{phase_dir}/
1020
992
  Retornar: ## PLANNING COMPLETE com resumo dos planos
1021
993
  </output>
1022
- ", subagent_type="up-planejador", model="$MODEL_PLANNING", description="Planejar Fase {phase_number}")
994
+ ", subagent_type="up-planejador", description="Planejar Fase {phase_number}")
1023
995
  ```
1024
996
 
1025
997
  Verificar retorno:
1026
998
  - `## PLANNING COMPLETE` → prosseguir para quality gate do plano
1027
999
  - `## PLANNING INCONCLUSIVE` → tentar novamente com mais contexto (max 2 tentativas)
1028
1000
 
1029
- **Quality Gate do Plano (se $SONNET_EXECUTION = true):**
1001
+ **Quality Gate do Plano (sempre):**
1030
1002
 
1031
1003
  Antes de passar pro executor, verificar qualidade do plano rapidamente:
1032
1004
  ```bash
@@ -1043,7 +1015,7 @@ done
1043
1015
  ```
1044
1016
 
1045
1017
  Se algum plano tem detail_score < 2 e a fase tem mais de 3 tarefas:
1046
- - Re-spawnar planejador com instrucao extra: "Plano insuficientemente detalhado para executor Sonnet. Reescrever com imports, tipos, schemas e endpoints explicitos. Ver self-check Sonnet-ready."
1018
+ - Re-spawnar planejador com instrucao extra: "Plano insuficientemente detalhado. Reescrever com imports, tipos, schemas e endpoints explicitos. Ver self-check Sonnet-ready."
1047
1019
  - Max 1 re-tentativa de enriquecimento
1048
1020
 
1049
1021
  ```
@@ -1091,7 +1063,7 @@ Para cada wave, spawnar agentes especializados em paralelo (se parallelization=t
1091
1063
  ```
1092
1064
  Task(
1093
1065
  subagent_type="{up-frontend-specialist | up-backend-specialist | up-database-specialist | up-executor}",
1094
- model="$MODEL_EXECUTION",
1066
+ ,
1095
1067
  prompt="
1096
1068
  <objective>
1097
1069
  Executar plano {plan_number} da fase {phase_number}-{phase_name}.
@@ -1154,7 +1126,7 @@ Spawnar code reviewer:
1154
1126
  ```
1155
1127
  Task(
1156
1128
  subagent_type="up-code-reviewer",
1157
- model="$MODEL_VERIFICATION",
1129
+ ,
1158
1130
  prompt="
1159
1131
  <objective>
1160
1132
  Revisar codigo da fase {phase_number} contra production-requirements e padroes de qualidade.
@@ -1211,7 +1183,7 @@ Modo builder. NAO use AskUserQuestion.
1211
1183
  </builder_mode>
1212
1184
  ",
1213
1185
  subagent_type="up-verificador",
1214
- model="$MODEL_VERIFICATION"
1186
+
1215
1187
  )
1216
1188
  ```
1217
1189
 
@@ -1707,7 +1679,7 @@ Relatorio em .plano/ideias/RELATORIO.md
1707
1679
  ```
1708
1680
  Task(
1709
1681
  subagent_type="up-blind-validator",
1710
- model="$MODEL_VERIFICATION",
1682
+ ,
1711
1683
  prompt="
1712
1684
  <objective>
1713
1685
  Validar requisitos SEM ler codigo. Apenas navegar o app via Playwright e curl.
@@ -1859,7 +1831,7 @@ Spawnar devops agent:
1859
1831
  ```
1860
1832
  Task(
1861
1833
  subagent_type="up-devops-agent",
1862
- model="$MODEL_QUALITY",
1834
+ ,
1863
1835
  prompt="
1864
1836
  <objective>
1865
1837
  Gerar artefatos de producao para o projeto: Dockerfile, docker-compose, CI/CD, .env.example, seed data, scripts.
@@ -1898,7 +1870,7 @@ Spawnar technical writer:
1898
1870
  ```
1899
1871
  Task(
1900
1872
  subagent_type="up-technical-writer",
1901
- model="$MODEL_QUALITY",
1873
+ ,
1902
1874
  prompt="
1903
1875
  <objective>
1904
1876
  Gerar documentacao completa: README.md, API docs, CHANGELOG.md, setup guide.
@@ -1940,7 +1912,7 @@ Spawnar security reviewer:
1940
1912
  ```
1941
1913
  Task(
1942
1914
  subagent_type="up-security-reviewer",
1943
- model="$MODEL_QUALITY",
1915
+ ,
1944
1916
  prompt="
1945
1917
  <objective>
1946
1918
  Auditar codigo para vulnerabilidades de seguranca (OWASP Top 10, auth, injection, data exposure).
@@ -1978,7 +1950,7 @@ Spawnar QA agent:
1978
1950
  ```
1979
1951
  Task(
1980
1952
  subagent_type="up-qa-agent",
1981
- model="$MODEL_QUALITY",
1953
+ ,
1982
1954
  prompt="
1983
1955
  <objective>
1984
1956
  Identificar gaps de cobertura de testes, escrever testes que faltam, executar todos.
@@ -2505,7 +2477,7 @@ Spawnar up-verificador (mesmo do full — verificacao real, nao shortcut):
2505
2477
  ```
2506
2478
  Task(
2507
2479
  subagent_type="up-verificador",
2508
- model="$MODEL_VERIFICATION",
2480
+ ,
2509
2481
  prompt="Verificar fase {phase_number}. Diretorio: {phase_dir}. Objetivo: {goal}."
2510
2482
  )
2511
2483
  ```
@@ -32,17 +32,39 @@ Spawnar o supervisor:
32
32
  ```python
33
33
  Agent(
34
34
  subagent_type="up-{supervisor_name}",
35
- model="opus",
36
35
  prompt="""
37
36
  Revisar output de {operacional_name} para {context}.
38
37
 
38
+ <governance_compressed>
39
+ DECISOES:
40
+ - APPROVE — criterios atendidos, sem issues criticas, evidencia clara
41
+ - REQUEST_CHANGES — 1+ criterio falhou, feedback especifico e acionavel
42
+ - ESCALATE — fora do escopo, decisao arquitetural ou conflito → chief
43
+
44
+ REWORK LIMITS:
45
+ - Operacional ← Supervisor: max 3 ciclos, depois forca approval com debito tecnico
46
+ - Supervisor ← Chief: max 2 ciclos, depois escala pro CEO
47
+
48
+ NUNCA APROVAR SE:
49
+ - Trabalho nao foi de fato verificado ("parece ok")
50
+ - Evidencia faltando ou ambigua
51
+ - SUMMARY claim sem backing no codigo
52
+ - Stub/placeholder em vez de implementacao real
53
+ - Falta de wiring (componente criado mas nao conectado)
54
+
55
+ LOG OBRIGATORIO: .plano/governance/approvals.log
56
+ </governance_compressed>
57
+
39
58
  <files_to_read>
40
- - $HOME/.claude/up/references/governance-rules.md
41
- - $HOME/.claude/up/references/rework-limits.md
42
59
  - [arquivos do output do operacional]
43
- - [arquivos de contexto]
60
+ - [arquivos de contexto da fase — preferir slices em .plano/fases/{N}/]
44
61
  </files_to_read>
45
62
 
63
+ Versoes COMPLETAS (so se decisao precisa de detalhe):
64
+ - Read $HOME/.claude/up/references/governance-rules.md
65
+ - Read $HOME/.claude/up/references/rework-limits.md
66
+ - Read $HOME/.claude/up/references/engineering-principles.md
67
+
46
68
  Avaliar contra criterios objetivos.
47
69
  Retornar: APPROVE | REQUEST_CHANGES | ESCALATE
48
70
  """