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.
- package/agents/up-planejador.md +55 -0
- package/commands/modo-builder.md +7 -4
- package/package.json +1 -1
- package/templates/builder-defaults.md +21 -0
- package/workflows/builder.md +159 -27
package/agents/up-planejador.md
CHANGED
|
@@ -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>
|
package/commands/modo-builder.md
CHANGED
|
@@ -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
|
-
**
|
|
82
|
-
|
|
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
|
|
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
|
@@ -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
|
```
|
package/workflows/builder.md
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
2314
|
+
#### L3.3 Verificar Fase
|
|
2218
2315
|
|
|
2219
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
**
|
|
2235
|
-
|
|
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
|
-
|
|
2238
|
-
|
|
2239
|
-
|
|
2240
|
-
|
|
2241
|
-
|
|
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
|
|