up-cc 0.4.3 → 0.4.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.
@@ -21,6 +21,61 @@ Se o prompt contem um bloco `<files_to_read>`, voce DEVE usar a ferramenta `Read
21
21
  - Lidar com planejamento padrao e modo de fechamento de gaps
22
22
  - **Research inline:** Se o dominio for desconhecido, pesquisar usando WebFetch/Context7 DENTRO do processo de planejamento
23
23
  - **Self-check interno:** Apos criar PLAN.md, rodar checklist interno (tarefas especificas? dependencias identificadas? ondas atribuidas? must_haves derivados?)
24
+
25
+ **MODO SONNET-READY (quando `<sonnet_execution>true</sonnet_execution>` no prompt):**
26
+
27
+ O executor sera um modelo Sonnet (mais rapido, mais barato, mas segue instrucoes LITERALMENTE).
28
+ Sonnet NAO infere, NAO decide, NAO improvisa. Ele faz EXATAMENTE o que o plano diz.
29
+ Se o plano e vago, Sonnet entrega vago. Se o plano e preciso, Sonnet entrega preciso.
30
+
31
+ **Regras Sonnet-ready — CADA tarefa DEVE ter:**
32
+
33
+ 1. **Imports exatos** — nao dizer "importar biblioteca de validacao", dizer "import { z } from 'zod'"
34
+ 2. **Nomes de funcoes/componentes** — nao dizer "criar componente de lista", dizer "criar `TransactionList.tsx` com props `{ transactions: Transaction[], onDelete: (id: string) => void }`"
35
+ 3. **Schema/tipos definidos** — nao dizer "criar tipo do usuario", dizer:
36
+ ```typescript
37
+ interface User {
38
+ id: string;
39
+ email: string;
40
+ name: string;
41
+ role: 'admin' | 'user';
42
+ created_at: string;
43
+ }
44
+ ```
45
+ 4. **Endpoints com assinatura completa** — nao dizer "criar endpoint de login", dizer:
46
+ ```
47
+ POST /api/auth/login
48
+ Body: { email: string, password: string }
49
+ Response 200: { user: User, token: string }
50
+ Response 401: { error: "Invalid credentials" }
51
+ Validacao: zod schema z.object({ email: z.string().email(), password: z.string().min(8) })
52
+ ```
53
+ 5. **SQL/migrations literais** — nao dizer "criar tabela de transacoes", dizer:
54
+ ```sql
55
+ CREATE TABLE transactions (
56
+ id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
57
+ user_id UUID REFERENCES users(id) ON DELETE CASCADE,
58
+ amount DECIMAL(12,2) NOT NULL CHECK (amount >= 0),
59
+ description TEXT NOT NULL,
60
+ category TEXT NOT NULL,
61
+ date DATE NOT NULL DEFAULT CURRENT_DATE,
62
+ created_at TIMESTAMPTZ DEFAULT NOW()
63
+ );
64
+ CREATE INDEX idx_transactions_user_id ON transactions(user_id);
65
+ CREATE INDEX idx_transactions_date ON transactions(date);
66
+ ```
67
+ 6. **Logica de negocio explicita** — nao dizer "validar permissao", dizer "checar se `session.user.role === 'admin'`, se nao, retornar 403"
68
+ 7. **Conexoes explicitas** — nao dizer "conectar com o backend", dizer "o componente `TransactionList` deve chamar `fetch('/api/transactions', { headers: { Authorization: 'Bearer ' + token } })` no useEffect, tratar loading/error/empty states"
69
+
70
+ **Self-check Sonnet-ready (apos cada tarefa do plano):**
71
+ - [ ] A tarefa tem imports explicitados?
72
+ - [ ] A tarefa tem nomes de arquivos, funcoes, componentes, tipos?
73
+ - [ ] A tarefa tem schemas/tipos com campos e tipos definidos?
74
+ - [ ] A tarefa tem endpoints com request/response shapes?
75
+ - [ ] A tarefa tem logica de negocio descrita passo a passo?
76
+ - [ ] Um executor que NAO conhece o projeto consegue implementar SEM pensar?
77
+
78
+ Se qualquer check falha: reescrever a tarefa com mais detalhe antes de finalizar o plano.
24
79
  </role>
25
80
 
26
81
  <project_context>
@@ -78,11 +78,14 @@ Em brownfield, convencoes do codebase existente tem prioridade sobre defaults.
78
78
  <process>
79
79
  **Parsear flags primeiro:** Extrair `--light` dos $ARGUMENTS se presente. O restante e o briefing.
80
80
 
81
- **Se `--light`:**
82
- Execute o builder workflow em modo light (ver secao `<light_mode>` no workflow).
83
- Estagios: 1 (Intake simplificado) → 2 (Mini-scan + estrutura inline) → 3 (Build + E2E) → Fim.
81
+ **GUARD: Light mode SOMENTE se `--light` esta presente LITERALMENTE nos argumentos.**
82
+ NAO inferir light baseado no tamanho do briefing. Briefing curto = FULL com poucas fases.
84
83
 
85
- **Se modo full (padrao):**
84
+ **Se `--light` PRESENTE nos argumentos:**
85
+ Execute o builder workflow em modo light (ver secao `<light_process>` no workflow).
86
+ Light ainda verifica (up-verificador), testa (E2E + DCRV 1 ciclo), mas sem polish/delivery.
87
+
88
+ **Se `--light` AUSENTE (default = FULL):**
86
89
  Execute the builder workflow from @~/.claude/up/workflows/builder.md end-to-end.
87
90
 
88
91
  **CRITICO:** A partir do Estagio 2, ZERO interacao com usuario. NAO use AskUserQuestion apos coletar o briefing e respostas criticas. Toda decisao e tomada autonomamente.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "up-cc",
3
- "version": "0.4.3",
3
+ "version": "0.4.5",
4
4
  "description": "Simplified spec-driven development for Claude Code, Gemini and OpenCode.",
5
5
  "bin": {
6
6
  "up-cc": "bin/install.js"
@@ -35,6 +35,27 @@ O usuario customiza uma vez e vale para todos os projetos criados com `/up:modo-
35
35
  - Linter: ESLint + Prettier
36
36
  - Git: branch main, commits diretos
37
37
 
38
+ ## Modelos por Papel
39
+
40
+ Configurar qual modelo de IA usar para cada tipo de trabalho.
41
+ Modelos disponiveis: opus, sonnet, haiku
42
+
43
+ | Papel | Modelo | Agentes |
44
+ |-------|--------|---------|
45
+ | planning | opus | arquiteto, product-analyst, system-designer, planejador, roteirista |
46
+ | execution | sonnet | executor, frontend-specialist, backend-specialist, database-specialist |
47
+ | verification | opus | verificador, code-reviewer, blind-validator, requirements-validator |
48
+ | detection | sonnet | visual-critic, exhaustive-tester, api-tester |
49
+ | research | sonnet | pesquisador-projeto, pesquisador-mercado, mapeador-codigo |
50
+ | quality | opus | qa-agent, security-reviewer, auditor-ux, auditor-performance |
51
+
52
+ Notas:
53
+ - Opus: raciocinio profundo, decisoes arquiteturais, verificacao critica. Mais lento, mais caro.
54
+ - Sonnet: execucao rapida, seguir instrucoes, volume de codigo. Mais rapido, mais barato.
55
+ - Haiku: tarefas simples. NAO recomendado para codigo de producao.
56
+ - Opus e Sonnet ambos suportam 1M de contexto.
57
+ - Se execution=sonnet, planos serao gerados com nivel extra de detalhe (Sonnet-ready).
58
+
38
59
  ## Nao usar
39
60
  - (liste aqui tecnologias que voce NAO quer em nenhum projeto)
40
61
  ```
@@ -11,8 +11,25 @@ Modo Builder: construir projeto completo de forma autonoma. Funciona em dois mod
11
11
  A partir do Estagio 2, ZERO interacao com usuario. Todas as decisoes sao tomadas autonomamente.
12
12
 
13
13
  **IMPORTANTE: Verificar flag `--light` no $ARGUMENTS antes de iniciar.**
14
- Se `--light` presente: pular direto para `<light_process>` no final deste workflow.
14
+ Se `--light` presente LITERALMENTE nos argumentos: pular direto para `<light_process>`.
15
15
  Se ausente: seguir o `<process>` normal (full).
16
+
17
+ **GUARD CONTRA ATIVACAO ACIDENTAL DO LIGHT:**
18
+ - O modo light so e ativado se o usuario escreveu `--light` explicitamente.
19
+ - NAO inferir light baseado no tamanho do briefing ou complexidade.
20
+ - NAO ativar light porque "parece uma feature simples".
21
+ - Briefing curto = modo FULL com poucas fases, NAO modo light.
22
+ - Se em duvida: FULL. Sempre FULL como default.
23
+
24
+ **LOG OBRIGATORIO no inicio (EXECUTAR SEMPRE):**
25
+ ```
26
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
27
+ UP > MODO BUILDER — {FULL | LIGHT}
28
+ Versao: $(cat $HOME/.claude/up/VERSION 2>/dev/null || echo "dev")
29
+ Argumentos: $ARGUMENTS
30
+ Flag --light: {SIM | NAO}
31
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
32
+ ```
16
33
  </purpose>
17
34
 
18
35
  <core_principle>
@@ -38,6 +55,38 @@ Neste modo, TODOS os agentes devem:
38
55
  7. **Quality Gate:** Incluir clone-verifier como dimensao "Fidelidade" (20% do score).
39
56
  </core_principle>
40
57
 
58
+ <model_routing>
59
+ ## Roteamento de Modelos por Papel
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).
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 |
71
+
72
+ **Exemplo de aplicacao:**
73
+ ```python
74
+ # ANTES (sem model routing):
75
+ Task(subagent_type="up-executor", prompt="...")
76
+
77
+ # DEPOIS (com model routing):
78
+ Task(subagent_type="up-executor", model="$MODEL_EXECUTION", prompt="...")
79
+
80
+ # Equivale a (com defaults):
81
+ Task(subagent_type="up-executor", model="sonnet", prompt="...")
82
+ ```
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>
89
+
41
90
  <process>
42
91
 
43
92
  ## Estagio 1: INTAKE (Interativo)
@@ -100,6 +149,24 @@ DEFAULTS_PATH="$HOME/.claude/up/builder-defaults.md"
100
149
 
101
150
  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."
102
151
 
152
+ **Extrair configuracao de modelos:**
153
+
154
+ Se builder-defaults.md existe, procurar secao "## Modelos por Papel" e extrair mapeamento:
155
+ ```
156
+ $MODEL_PLANNING = modelo para planning (default: opus)
157
+ $MODEL_EXECUTION = modelo para execution (default: sonnet)
158
+ $MODEL_VERIFICATION = modelo para verification (default: opus)
159
+ $MODEL_DETECTION = modelo para detection (default: sonnet)
160
+ $MODEL_RESEARCH = modelo para research (default: sonnet)
161
+ $MODEL_QUALITY = modelo para quality (default: opus)
162
+ ```
163
+
164
+ Se secao nao existe: usar defaults acima (opus planeja, sonnet executa, opus verifica).
165
+
166
+ **IMPORTANTE — Sonnet-ready planning:**
167
+ Se `$MODEL_EXECUTION = sonnet`, setar flag `$SONNET_EXECUTION = true`.
168
+ Isso ativa nivel extra de detalhe nos planos (ver planejador Sonnet-ready mode).
169
+
103
170
  **Detectar modo automaticamente:**
104
171
 
105
172
  ```bash
@@ -504,7 +571,7 @@ Escrever .plano/PRODUCT-ANALYSIS.md
504
571
  Commit apos escrever.
505
572
  Retornar: ## PRODUCT ANALYSIS COMPLETE
506
573
  </output>
507
- ", subagent_type="up-product-analyst", description="Analisar produto e mercado")
574
+ ", subagent_type="up-product-analyst", model="$MODEL_PLANNING", description="Analisar produto e mercado")
508
575
  ```
509
576
 
510
577
  Verificar retorno `## PRODUCT ANALYSIS COMPLETE`. Se falhou: registrar e continuar (System Designer usara blueprints como fallback).
@@ -553,7 +620,7 @@ Escrever .plano/SYSTEM-DESIGN.md
553
620
  Commit apos escrever.
554
621
  Retornar: ## SYSTEM DESIGN COMPLETE
555
622
  </output>
556
- ", subagent_type="up-system-designer", description="Projetar sistema completo")
623
+ ", subagent_type="up-system-designer", model="$MODEL_PLANNING", description="Projetar sistema completo")
557
624
  ```
558
625
 
559
626
  ```
@@ -616,7 +683,7 @@ Se brownfield:
616
683
  - parallelization=true
617
684
  - Commit todos arquivos ao final
618
685
  </constraints>
619
- ", subagent_type="up-arquiteto", description="Estruturar projeto executavel")
686
+ ", subagent_type="up-arquiteto", model="$MODEL_PLANNING", description="Estruturar projeto executavel")
620
687
  ```
621
688
 
622
689
  ### 2.7 Validar Requisitos (Quality Gate de Planejamento)
@@ -630,6 +697,7 @@ Validando requisitos (13 checks)...
630
697
  ```
631
698
  Task(
632
699
  subagent_type="up-requirements-validator",
700
+ model="$MODEL_VERIFICATION",
633
701
  prompt="
634
702
  <objective>
635
703
  Validar REQUIREMENTS.md com 13 checks automaticos.
@@ -814,13 +882,14 @@ Para cada fase no ROADMAP (da primeira a ultima):
814
882
 
815
883
  #### 3.1.1 Planejar Fase
816
884
 
817
- Spawnar up-planejador com flag de modo builder:
885
+ Spawnar up-planejador com flag de modo builder e modelo de planning:
818
886
 
819
887
  ```
820
888
  Task(prompt="
821
889
  <planning_context>
822
890
  **Fase:** {phase_number}
823
891
  **Modo:** builder (autonomo -- NAO use AskUserQuestion)
892
+ <sonnet_execution>{$SONNET_EXECUTION}</sonnet_execution>
824
893
 
825
894
  <files_to_read>
826
895
  - .plano/STATE.md (Estado do Projeto)
@@ -862,15 +931,35 @@ Se algo falhar, corrija antes de retornar.
862
931
  Escrever PLAN.md em: .plano/fases/{phase_dir}/
863
932
  Retornar: ## PLANNING COMPLETE com resumo dos planos
864
933
  </output>
865
- ", subagent_type="up-planejador", description="Planejar Fase {phase_number}")
934
+ ", subagent_type="up-planejador", model="$MODEL_PLANNING", description="Planejar Fase {phase_number}")
866
935
  ```
867
936
 
868
937
  Verificar retorno:
869
- - `## PLANNING COMPLETE` → prosseguir para execucao
938
+ - `## PLANNING COMPLETE` → prosseguir para quality gate do plano
870
939
  - `## PLANNING INCONCLUSIVE` → tentar novamente com mais contexto (max 2 tentativas)
871
940
 
941
+ **Quality Gate do Plano (se $SONNET_EXECUTION = true):**
942
+
943
+ Antes de passar pro executor, verificar qualidade do plano rapidamente:
944
+ ```bash
945
+ # Contar tarefas com detalhamento insuficiente
946
+ for plan in .plano/fases/{phase_dir}/*-PLAN.md; do
947
+ # Checar se tem imports/schemas/endpoints explicitados
948
+ DETAIL_SCORE=0
949
+ grep -c "import \|from '" "$plan" > /dev/null && DETAIL_SCORE=$((DETAIL_SCORE+1))
950
+ grep -c "interface \|type \|schema\|z\.\|zod" "$plan" > /dev/null && DETAIL_SCORE=$((DETAIL_SCORE+1))
951
+ grep -c "POST \|GET \|PUT \|DELETE \|endpoint\|route" "$plan" > /dev/null && DETAIL_SCORE=$((DETAIL_SCORE+1))
952
+ grep -c "CREATE TABLE\|migration\|ALTER" "$plan" > /dev/null && DETAIL_SCORE=$((DETAIL_SCORE+1))
953
+ echo "$plan: detail_score=$DETAIL_SCORE"
954
+ done
955
+ ```
956
+
957
+ Se algum plano tem detail_score < 2 e a fase tem mais de 3 tarefas:
958
+ - 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."
959
+ - Max 1 re-tentativa de enriquecimento
960
+
872
961
  ```
873
- Fase {X}: Planejada — {N} planos em {M} waves
962
+ Fase {X}: Planejada — {N} planos em {M} waves [Sonnet-ready: {score}]
874
963
  ```
875
964
 
876
965
  #### 3.1.2 Executar Fase (com Specialist Routing)
@@ -914,6 +1003,7 @@ Para cada wave, spawnar agentes especializados em paralelo (se parallelization=t
914
1003
  ```
915
1004
  Task(
916
1005
  subagent_type="{up-frontend-specialist | up-backend-specialist | up-database-specialist | up-executor}",
1006
+ model="$MODEL_EXECUTION",
917
1007
  prompt="
918
1008
  <objective>
919
1009
  Executar plano {plan_number} da fase {phase_number}-{phase_name}.
@@ -976,6 +1066,7 @@ Spawnar code reviewer:
976
1066
  ```
977
1067
  Task(
978
1068
  subagent_type="up-code-reviewer",
1069
+ model="$MODEL_VERIFICATION",
979
1070
  prompt="
980
1071
  <objective>
981
1072
  Revisar codigo da fase {phase_number} contra production-requirements e padroes de qualidade.
@@ -1031,7 +1122,8 @@ Modo builder. NAO use AskUserQuestion.
1031
1122
  - Criar VERIFICATION.md
1032
1123
  </builder_mode>
1033
1124
  ",
1034
- subagent_type="up-verificador"
1125
+ subagent_type="up-verificador",
1126
+ model="$MODEL_VERIFICATION"
1035
1127
  )
1036
1128
  ```
1037
1129
 
@@ -1527,6 +1619,7 @@ Relatorio em .plano/ideias/RELATORIO.md
1527
1619
  ```
1528
1620
  Task(
1529
1621
  subagent_type="up-blind-validator",
1622
+ model="$MODEL_VERIFICATION",
1530
1623
  prompt="
1531
1624
  <objective>
1532
1625
  Validar requisitos SEM ler codigo. Apenas navegar o app via Playwright e curl.
@@ -1678,6 +1771,7 @@ Spawnar devops agent:
1678
1771
  ```
1679
1772
  Task(
1680
1773
  subagent_type="up-devops-agent",
1774
+ model="$MODEL_QUALITY",
1681
1775
  prompt="
1682
1776
  <objective>
1683
1777
  Gerar artefatos de producao para o projeto: Dockerfile, docker-compose, CI/CD, .env.example, seed data, scripts.
@@ -1716,6 +1810,7 @@ Spawnar technical writer:
1716
1810
  ```
1717
1811
  Task(
1718
1812
  subagent_type="up-technical-writer",
1813
+ model="$MODEL_QUALITY",
1719
1814
  prompt="
1720
1815
  <objective>
1721
1816
  Gerar documentacao completa: README.md, API docs, CHANGELOG.md, setup guide.
@@ -1757,6 +1852,7 @@ Spawnar security reviewer:
1757
1852
  ```
1758
1853
  Task(
1759
1854
  subagent_type="up-security-reviewer",
1855
+ model="$MODEL_QUALITY",
1760
1856
  prompt="
1761
1857
  <objective>
1762
1858
  Auditar codigo para vulnerabilidades de seguranca (OWASP Top 10, auth, injection, data exposure).
@@ -1794,6 +1890,7 @@ Spawnar QA agent:
1794
1890
  ```
1795
1891
  Task(
1796
1892
  subagent_type="up-qa-agent",
1893
+ model="$MODEL_QUALITY",
1797
1894
  prompt="
1798
1895
  <objective>
1799
1896
  Identificar gaps de cobertura de testes, escrever testes que faltam, executar todos.
@@ -2214,31 +2311,58 @@ Retornar: ## PLANNING COMPLETE
2214
2311
 
2215
2312
  Mesmo processo do full — spawnar up-executor por wave.
2216
2313
 
2217
- #### L3.3 Verificar Fase (Quick Check)
2314
+ #### L3.3 Verificar Fase
2218
2315
 
2219
- **NAO spawnar up-verificador.** Verificacao inline rapida:
2316
+ Spawnar up-verificador (mesmo do full — verificacao real, nao shortcut):
2220
2317
 
2221
- 1. Checar que SUMMARYs existem para todos os planos
2222
- 2. Checar que commits existem: `git log --oneline --grep="fase-{X}"`
2223
- 3. Se ha testes automatizados no projeto: rodar
2224
- ```bash
2225
- # Detectar e rodar testes
2226
- npm test 2>/dev/null || pnpm test 2>/dev/null || echo "sem testes"
2227
2318
  ```
2228
- 4. Se tudo OK: marcar fase completa
2319
+ Task(
2320
+ subagent_type="up-verificador",
2321
+ model="$MODEL_VERIFICATION",
2322
+ prompt="Verificar fase {phase_number}. Diretorio: {phase_dir}. Objetivo: {goal}."
2323
+ )
2324
+ ```
2229
2325
 
2230
- Se falha: tentar gap closure (1 ciclo max), mesmo do full.
2326
+ | Status | Acao |
2327
+ |--------|------|
2328
+ | `passed` | → L3.4 |
2329
+ | `gaps_found` | Tentar gap closure (1 ciclo max) |
2330
+ | `human_needed` | Registrar, avancar |
2231
2331
 
2232
2332
  #### L3.4 Teste E2E (Playwright)
2233
2333
 
2234
- **Mesmo processo do full** (referencia: builder-e2e.md Passo 3).
2235
- Executar APENAS se a fase tem UI.
2334
+ **Referencia:** `@~/.claude/up/workflows/builder-e2e.md` Passo 3 (Teste por Fase)
2335
+
2336
+ **EXECUTAR OBRIGATORIAMENTE se a fase tem UI.** Nao pular.
2337
+
2338
+ 1. Subir dev server (se nao esta rodando)
2339
+ 2. Traduzir must_haves em testes E2E
2340
+ 3. Navegar, interagir, verificar, screenshot
2341
+ 4. Bugs: corrigir (max 5 tentativas por bug)
2342
+ 5. Criar E2E-RESULTS.md
2343
+
2344
+ **Se dev server falha:** Registrar e continuar (nao bloqueia).
2345
+
2346
+ #### L3.4.1 DCRV Light (1 ciclo)
2347
+
2348
+ **Apos E2E**, rodar DCRV em modo light (1 ciclo, sem loop):
2236
2349
 
2237
- - Subir dev server (se nao esta rodando)
2238
- - Traduzir must_haves em testes E2E
2239
- - Navegar, interagir, verificar, screenshot
2240
- - Bugs: corrigir (max 5 tentativas por bug)
2241
- - Criar E2E-RESULTS.md
2350
+ **Referencia:** `@~/.claude/up/workflows/dcrv.md`
2351
+
2352
+ ```
2353
+ SCOPE=light
2354
+ PHASE_DIR={phase_dir}
2355
+ PHASE_NUMBER={phase_number}
2356
+ MAX_CYCLES=1
2357
+ MAX_ISSUES_PER_CYCLE=10
2358
+ AUTO_FIX=true
2359
+ ```
2360
+
2361
+ Isso roda os 3 detectores (visual, API, exhaustive), corrige o que puder em 1 ciclo, e segue.
2362
+
2363
+ ```
2364
+ Fase {X} (light): DCRV — {resolved}/{total} issues corrigidas
2365
+ ```
2242
2366
 
2243
2367
  #### L3.5 Marcar Fase Completa
2244
2368
 
@@ -2293,7 +2417,15 @@ Quer mais? /up:modo-builder "proxima feature"
2293
2417
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
2294
2418
  ```
2295
2419
 
2296
- **NAO gerar DELIVERY.md. NAO rodar polish. NAO rodar ideias.**
2420
+ **NAO gerar DELIVERY.md. NAO rodar polish completo. NAO rodar ideias.**
2421
+
2422
+ **Light mode success criteria:**
2423
+ - [ ] .plano/ criado com PROJECT.md, ROADMAP.md, REQUIREMENTS.md
2424
+ - [ ] Todas fases executadas com commits atomicos
2425
+ - [ ] Verificador rodou em cada fase (NAO quick check)
2426
+ - [ ] E2E Playwright rodou em fases com UI
2427
+ - [ ] DCRV light (1 ciclo) rodou em cada fase com UI/API
2428
+ - [ ] Resumo final exibido com metricas
2297
2429
 
2298
2430
  </light_process>
2299
2431