up-cc 0.16.1 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +87 -577
- package/package.json +5 -3
- package/up/CHANGELOG.md +110 -0
- package/up/agents/up-arquiteto.md +95 -39
- package/up/agents/up-auditor.md +218 -0
- package/up/agents/up-executor.md +94 -31
- package/up/agents/up-mapeador-codigo.md +63 -10
- package/up/agents/up-pesquisador.md +278 -0
- package/up/agents/up-revisor.md +249 -0
- package/up/agents/up-sintetizador.md +156 -179
- package/up/agents/up-tester.md +280 -0
- package/up/agents/up-verificador.md +95 -11
- package/up/bin/install.js +182 -19
- package/up/bin/lib/core.cjs +17 -43
- package/up/bin/lib/github.cjs +495 -0
- package/up/bin/lib/multica.cjs +424 -0
- package/up/bin/up-tools.cjs +167 -46
- package/up/commands/auditar.md +66 -0
- package/up/commands/build.md +54 -43
- package/up/commands/depurar.md +1 -1
- package/up/commands/plan.md +52 -38
- package/up/commands/rapido.md +15 -9
- package/up/commands/testar.md +81 -122
- package/up/commands/up.md +106 -0
- package/up/hooks/up-session-start.js +107 -0
- package/up/references/engineering-principles.md +1 -1
- package/up/references/governance-rules.md +5 -5
- package/up/references/production-requirements.md +1 -1
- package/up/references/severity-levels.md +2 -2
- package/up/references/tdd-evidence-types.md +81 -0
- package/up/skills/up-brainstorm/SKILL.md +39 -0
- package/up/skills/up-tdd/SKILL.md +39 -0
- package/up/skills/up-verificar-antes-de-concluir/SKILL.md +49 -0
- package/up/skills/usando-up/SKILL.md +26 -0
- package/up/templates/audit-plan.md +3 -3
- package/up/templates/audit-report.md +2 -2
- package/up/templates/design-tokens.md +2 -2
- package/up/workflows/auditar.md +255 -0
- package/up/workflows/build.md +600 -386
- package/up/workflows/dcrv.md +183 -99
- package/up/workflows/governance.md +112 -220
- package/up/workflows/plan.md +169 -399
- package/up/workflows/rapido.md +7 -1
- package/up/workflows/up.md +447 -0
- package/up/agents/up-analista-codigo.md +0 -446
- package/up/agents/up-api-tester.md +0 -405
- package/up/agents/up-architecture-supervisor.md +0 -126
- package/up/agents/up-audit-supervisor.md +0 -83
- package/up/agents/up-auditor-modernidade.md +0 -378
- package/up/agents/up-auditor-performance.md +0 -426
- package/up/agents/up-auditor-ux.md +0 -396
- package/up/agents/up-backend-specialist.md +0 -175
- package/up/agents/up-blind-validator.md +0 -259
- package/up/agents/up-chief-architect.md +0 -184
- package/up/agents/up-chief-engineer.md +0 -202
- package/up/agents/up-chief-operations.md +0 -123
- package/up/agents/up-chief-product.md +0 -103
- package/up/agents/up-chief-quality.md +0 -211
- package/up/agents/up-clone-crawler.md +0 -234
- package/up/agents/up-clone-design-extractor.md +0 -227
- package/up/agents/up-clone-feature-mapper.md +0 -225
- package/up/agents/up-clone-prd-writer.md +0 -169
- package/up/agents/up-clone-verifier.md +0 -227
- package/up/agents/up-code-reviewer.md +0 -229
- package/up/agents/up-consolidador-ideias.md +0 -493
- package/up/agents/up-database-specialist.md +0 -169
- package/up/agents/up-delivery-auditor.md +0 -247
- package/up/agents/up-devops-agent.md +0 -203
- package/up/agents/up-execution-supervisor.md +0 -315
- package/up/agents/up-exhaustive-tester.md +0 -348
- package/up/agents/up-frontend-specialist.md +0 -152
- package/up/agents/up-operations-supervisor.md +0 -94
- package/up/agents/up-pesquisador-mercado.md +0 -350
- package/up/agents/up-pesquisador-projeto.md +0 -358
- package/up/agents/up-planning-auditor.md +0 -284
- package/up/agents/up-planning-supervisor.md +0 -260
- package/up/agents/up-product-analyst.md +0 -192
- package/up/agents/up-product-supervisor.md +0 -83
- package/up/agents/up-project-ceo.md +0 -352
- package/up/agents/up-qa-agent.md +0 -171
- package/up/agents/up-quality-supervisor.md +0 -178
- package/up/agents/up-requirements-validator.md +0 -230
- package/up/agents/up-security-reviewer.md +0 -137
- package/up/agents/up-sintetizador-melhorias.md +0 -407
- package/up/agents/up-system-designer.md +0 -332
- package/up/agents/up-technical-writer.md +0 -188
- package/up/agents/up-verification-supervisor.md +0 -111
- package/up/agents/up-visual-critic.md +0 -358
- package/up/commands/adicionar-fase.md +0 -47
- package/up/commands/adicionar-testes.md +0 -145
- package/up/commands/ajuda.md +0 -176
- package/up/commands/atualizar.md +0 -103
- package/up/commands/clone-builder.md +0 -67
- package/up/commands/configurar.md +0 -219
- package/up/commands/custos.md +0 -67
- package/up/commands/dashboard.md +0 -48
- package/up/commands/discutir-fase.md +0 -35
- package/up/commands/executar-fase.md +0 -40
- package/up/commands/ideias.md +0 -49
- package/up/commands/iniciar.md +0 -31
- package/up/commands/mapear-codigo.md +0 -63
- package/up/commands/melhorias.md +0 -45
- package/up/commands/mobile-first.md +0 -71
- package/up/commands/modo-builder.md +0 -186
- package/up/commands/novo-projeto.md +0 -40
- package/up/commands/onboard.md +0 -69
- package/up/commands/pausar.md +0 -33
- package/up/commands/planejar-fase.md +0 -45
- package/up/commands/progresso.md +0 -33
- package/up/commands/remover-fase.md +0 -34
- package/up/commands/resetar.md +0 -27
- package/up/commands/retomar.md +0 -35
- package/up/commands/saude.md +0 -103
- package/up/commands/ux-tester.md +0 -63
- package/up/commands/verificar-trabalho.md +0 -35
- package/up/workflows/adicionar-fase.md +0 -112
- package/up/workflows/builder-e2e.md +0 -501
- package/up/workflows/builder.md +0 -3419
- package/up/workflows/ceo-intake.md +0 -305
- package/up/workflows/ceo-updates.md +0 -183
- package/up/workflows/clone-builder.md +0 -320
- package/up/workflows/discutir-fase.md +0 -336
- package/up/workflows/executar-fase.md +0 -358
- package/up/workflows/executar-plano.md +0 -659
- package/up/workflows/ideias.md +0 -381
- package/up/workflows/iniciar.md +0 -235
- package/up/workflows/melhorias.md +0 -409
- package/up/workflows/mobile-first.md +0 -692
- package/up/workflows/novo-projeto.md +0 -778
- package/up/workflows/planejar-fase.md +0 -293
- package/up/workflows/progresso.md +0 -226
- package/up/workflows/retomar.md +0 -231
- package/up/workflows/ux-tester.md +0 -526
- package/up/workflows/verificar-trabalho.md +0 -308
package/up/workflows/builder.md
DELETED
|
@@ -1,3419 +0,0 @@
|
|
|
1
|
-
<purpose>
|
|
2
|
-
Modo Builder: construir projeto completo de forma autonoma. Funciona em dois modos:
|
|
3
|
-
|
|
4
|
-
**Greenfield:** Projeto do zero. Usuario descreve o que quer, sistema cria tudo.
|
|
5
|
-
**Brownfield:** Projeto existente. Usuario descreve a feature/mudanca, sistema mapeia o codigo, planeja e implementa.
|
|
6
|
-
|
|
7
|
-
**Dois niveis:**
|
|
8
|
-
- **Full (padrao):** 5 estagios completos — Intake → Arquitetura → Build → Polish → Entrega
|
|
9
|
-
- **Light (`--light`):** Pipeline enxuto — Intake rapido → Mini-scan → Build + E2E → Fim
|
|
10
|
-
|
|
11
|
-
A partir do Estagio 2, ZERO interacao com usuario. Todas as decisoes sao tomadas autonomamente.
|
|
12
|
-
|
|
13
|
-
**IMPORTANTE: Verificar flag `--light` no $ARGUMENTS antes de iniciar.**
|
|
14
|
-
Se `--light` presente LITERALMENTE nos argumentos: pular direto para `<light_process>`.
|
|
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
|
-
```
|
|
33
|
-
</purpose>
|
|
34
|
-
|
|
35
|
-
<core_principle>
|
|
36
|
-
Este workflow REUTILIZA os processos existentes do UP. Nao reinventa — apenas orquestra os comandos existentes em sequencia sem parar para perguntar.
|
|
37
|
-
|
|
38
|
-
Onde o UP normal para e pergunta, o modo builder decide sozinho.
|
|
39
|
-
Onde o UP normal espera /clear entre fases, o modo builder continua automaticamente.
|
|
40
|
-
|
|
41
|
-
**Deteccao automatica de modo:**
|
|
42
|
-
- Codigo existente detectado (package.json, src/, app/, etc.) → BROWNFIELD
|
|
43
|
-
- Sem codigo → GREENFIELD
|
|
44
|
-
- `.plano/` existente com ROADMAP.md → BROWNFIELD (adiciona fases ao roadmap existente)
|
|
45
|
-
|
|
46
|
-
**Modo Clone (builder_type: "clone" no config.json):**
|
|
47
|
-
Quando o builder e invocado pelo clone-builder, config.json tem `builder_type: "clone"`.
|
|
48
|
-
Neste modo, TODOS os agentes devem:
|
|
49
|
-
1. **Ler .plano/clone/DESIGN-SYSTEM.md** e seguir cores, fontes, espacamento
|
|
50
|
-
2. **Ler .plano/clone/FEATURE-MAP.md** e garantir que TODAS features CLONE-* sao implementadas
|
|
51
|
-
3. **Ler .plano/clone/screenshots/** como referencia visual
|
|
52
|
-
4. **Product Analyst:** Se clone_mode=exact: NAO sugerir mudancas. Se improve: sugerir apenas adicoes.
|
|
53
|
-
5. **Frontend Specialist:** Replicar layout e design das screenshots.
|
|
54
|
-
6. **Code Reviewer:** Verificar fidelidade visual alem de production-requirements.
|
|
55
|
-
7. **Quality Gate:** Incluir clone-verifier como dimensao "Fidelidade" (20% do score).
|
|
56
|
-
</core_principle>
|
|
57
|
-
|
|
58
|
-
<model_handling>
|
|
59
|
-
## Modelos (v0.9.0+)
|
|
60
|
-
|
|
61
|
-
**Model routing configuravel via `config.json`.** Dois eixos:
|
|
62
|
-
|
|
63
|
-
1. **Por papel** (planning/execution/governance/review) — preset estatico
|
|
64
|
-
2. **Por complexidade da task** (simple/standard/complex) — classifier dinamico (Wave 5+)
|
|
65
|
-
|
|
66
|
-
### Como funciona
|
|
67
|
-
|
|
68
|
-
**Default (per-role, comportamento v0.9):**
|
|
69
|
-
```bash
|
|
70
|
-
MODEL=$(node "$HOME/.claude/up/bin/up-tools.cjs" config resolve-model {agent-name} --raw)
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
**Wave 5+ (complexity routing):** quando spawn e contextual a um plano, use:
|
|
74
|
-
```bash
|
|
75
|
-
MODEL=$(node "$HOME/.claude/up/bin/up-tools.cjs" resolve-model-for-plan "$PLAN" {agent-name} --raw)
|
|
76
|
-
```
|
|
77
|
-
Isso le `config.modelos.routing` e decide:
|
|
78
|
-
- `per-role` (default) → usa preset estatico
|
|
79
|
-
- `complexity` → usa classifier do plano (haiku/sonnet/opus por score)
|
|
80
|
-
- `complexity-with-cap` → complexity, mas capa por preset (orcamento)
|
|
81
|
-
|
|
82
|
-
Se retorna `default`: nao passar `model=` (runtime decide).
|
|
83
|
-
Se retorna `opus|sonnet|haiku`: passar no spawn.
|
|
84
|
-
|
|
85
|
-
### Presets disponiveis (per-role)
|
|
86
|
-
|
|
87
|
-
| Preset | Planning | Execution | Governance | Review |
|
|
88
|
-
|--------|----------|-----------|------------|--------|
|
|
89
|
-
| `runtime` | default | default | default | default |
|
|
90
|
-
| `opus-completo` | opus | opus | opus | opus |
|
|
91
|
-
| `hibrido` | opus | sonnet | opus | opus |
|
|
92
|
-
| `sonnet-completo` | sonnet | sonnet | sonnet | sonnet |
|
|
93
|
-
| `economico` | sonnet | sonnet | haiku | sonnet |
|
|
94
|
-
| `custom` | manual | manual | manual | manual |
|
|
95
|
-
|
|
96
|
-
### Routing modes (complexity)
|
|
97
|
-
|
|
98
|
-
| Mode | Comportamento |
|
|
99
|
-
|------|---------------|
|
|
100
|
-
| `per-role` (default) | Preset estatico, nao olha o plano |
|
|
101
|
-
| `complexity` | Classifier do plano decide (score 0-2 haiku, 3-5 sonnet, 6+ opus) |
|
|
102
|
-
| `complexity-with-cap` | Classifier sugere, mas preset capa (ex: per-role=sonnet, complexity=opus → usa sonnet) |
|
|
103
|
-
|
|
104
|
-
### Papeis dos agentes
|
|
105
|
-
|
|
106
|
-
- **Planning:** planejador, arquiteto, product-analyst, system-designer, pesquisador-projeto, sintetizador, mapeador-codigo, requirements-validator
|
|
107
|
-
- **Execution:** executor, frontend/backend/database-specialist, devops-agent, technical-writer
|
|
108
|
-
- **Governance:** todos supervisores, chiefs, CEO, delivery-auditor, planning-auditor
|
|
109
|
-
- **Review:** verificador, blind-validator, code-reviewer, security-reviewer, visual-critic, exhaustive-tester, api-tester, qa-agent, auditores, sintetizador-melhorias
|
|
110
|
-
|
|
111
|
-
### Default
|
|
112
|
-
|
|
113
|
-
Sem `modelos` no config.json = `runtime` (nenhum override). Identico ao v0.6.0.
|
|
114
|
-
|
|
115
|
-
**Planos sao sempre gerados em nivel detalhado (Sonnet-ready)** independente do modelo que vai executar.
|
|
116
|
-
|
|
117
|
-
### Ao spawnar qualquer agente
|
|
118
|
-
|
|
119
|
-
**Spawn sem plano (CEO, planejador, supervisores cross-fase):**
|
|
120
|
-
```bash
|
|
121
|
-
MODEL=$(node "$HOME/.claude/up/bin/up-tools.cjs" config resolve-model up-executor --raw)
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
**Spawn com plano (specialist, executor, verificador por fase) — Wave 5+:**
|
|
125
|
-
```bash
|
|
126
|
-
MODEL=$(node "$HOME/.claude/up/bin/up-tools.cjs" resolve-model-for-plan "$PLAN" up-executor --raw)
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
```python
|
|
130
|
-
# Se MODEL != "default", passar model=
|
|
131
|
-
Task(subagent_type="up-executor", model="{MODEL if MODEL != 'default' else omit}", prompt="...")
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
**IMPORTANTE:** Se model=default (ou nao configurado), NAO passar parametro model no spawn.
|
|
135
|
-
Isso mantem compatibilidade total com v0.6.0 e com runtimes que nao suportam model routing.
|
|
136
|
-
</model_handling>
|
|
137
|
-
|
|
138
|
-
<governance>
|
|
139
|
-
## Camada de Governanca (v0.5.0+)
|
|
140
|
-
|
|
141
|
-
**O builder usa hierarquia corporativa de agentes:**
|
|
142
|
-
|
|
143
|
-
```
|
|
144
|
-
CEO (up-project-ceo) — conduz intake, aprova delivery, canal com dono
|
|
145
|
-
↓
|
|
146
|
-
CHIEFS (5) — revisam consolidado de cada area
|
|
147
|
-
↓
|
|
148
|
-
SUPERVISORS (8) — revisam cada agente operacional
|
|
149
|
-
↓
|
|
150
|
-
OPERATIONAL AGENTS (36) — fazem o trabalho
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
**Referencia obrigatoria:** `@~/.claude/up/workflows/governance.md`
|
|
154
|
-
|
|
155
|
-
**REGRA INVIOLAVEL — GOVERNANCA OBRIGATORIA COM GATES VERIFICAVEIS:**
|
|
156
|
-
|
|
157
|
-
A governanca NAO PODE ser pulada, otimizada, resumida ou ignorada.
|
|
158
|
-
Para IMPEDIR que o LLM otimize colapsando passos, cada etapa critica tem um **GATE** —
|
|
159
|
-
um check de arquivo executado via Bash que BLOQUEIA o avanço se a etapa anterior nao produziu evidencia.
|
|
160
|
-
|
|
161
|
-
**Mecanismo anti-colapso:**
|
|
162
|
-
1. Cada supervisor DEVE escrever no `approvals.log` ANTES de retornar
|
|
163
|
-
2. Cada GATE verifica que o `approvals.log` tem a entry esperada
|
|
164
|
-
3. Se o gate falha → o builder NAO avanca → spawna o agente faltante
|
|
165
|
-
4. O GATE E (final) verifica TODOS os 5 checks de uma vez
|
|
166
|
-
|
|
167
|
-
**Pipeline obrigatorio por fase no Estagio 3:**
|
|
168
|
-
```
|
|
169
|
-
Planejador → Specialist → [GATE A] → EXECUTION-SUPERVISOR → [GATE B] → Code Reviewer → Verificador → [GATE C] → VERIFICATION-SUPERVISOR → [GATE D] → E2E + DCRV → CHIEF-ENGINEER → [GATE E] → Marcar completa
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
Cada GATE e um `bash` check que le `.plano/governance/approvals.log`.
|
|
173
|
-
Se a entry esperada nao existe, o builder PARA e spawna o agente faltante.
|
|
174
|
-
|
|
175
|
-
**NUNCA combinar dois agentes em um spawn. NUNCA pular um GATE.**
|
|
176
|
-
|
|
177
|
-
**Regras gerais:**
|
|
178
|
-
1. Todo output de agente operacional passa por supervisor
|
|
179
|
-
2. Toda area tem chief que consolida
|
|
180
|
-
3. CEO aprova delivery final
|
|
181
|
-
4. Max 3 ciclos de rework (operacional ← supervisor)
|
|
182
|
-
5. Max 2 ciclos (supervisor ← chief)
|
|
183
|
-
6. Max 1 ciclo (chief ← CEO)
|
|
184
|
-
|
|
185
|
-
**Pre-requisito:**
|
|
186
|
-
```bash
|
|
187
|
-
# Verificar owner-profile
|
|
188
|
-
if [ ! -f ~/.claude/up/owner-profile.md ]; then
|
|
189
|
-
echo "Owner profile nao existe. Rodando /up:onboard primeiro..."
|
|
190
|
-
# Delegar pro onboarding workflow
|
|
191
|
-
# Referencia: @~/.claude/up/workflows/onboarding.md
|
|
192
|
-
fi
|
|
193
|
-
```
|
|
194
|
-
|
|
195
|
-
**Sem owner-profile, o CEO nao sabe quem e o dono — impossivel conduzir intake.**
|
|
196
|
-
</governance>
|
|
197
|
-
|
|
198
|
-
<process>
|
|
199
|
-
|
|
200
|
-
## Estagio 1: INTAKE (Interativo)
|
|
201
|
-
|
|
202
|
-
Este e o UNICO estagio com interacao.
|
|
203
|
-
|
|
204
|
-
### 1.0 Verificar Crash Recovery (LOCK.md)
|
|
205
|
-
|
|
206
|
-
**PRIMEIRO PASSO OBRIGATORIO — antes de qualquer outra coisa:**
|
|
207
|
-
|
|
208
|
-
```bash
|
|
209
|
-
ls .plano/LOCK.md 2>/dev/null
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
**Se LOCK.md existe e `status: running`:**
|
|
213
|
-
|
|
214
|
-
Ler frontmatter do LOCK.md para extrair: `stage`, `phase`, `step`, `total_phases`.
|
|
215
|
-
|
|
216
|
-
```
|
|
217
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
218
|
-
UP > BUILDER — SESSAO ANTERIOR DETECTADA
|
|
219
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
220
|
-
|
|
221
|
-
Sessao anterior crashou ou foi interrompida.
|
|
222
|
-
|
|
223
|
-
Estagio: {stage}
|
|
224
|
-
Fase: {phase}/{total_phases}
|
|
225
|
-
Ultimo passo: {step}
|
|
226
|
-
|
|
227
|
-
Retomando de onde parou...
|
|
228
|
-
```
|
|
229
|
-
|
|
230
|
-
**Retomar baseado no estado do LOCK:**
|
|
231
|
-
|
|
232
|
-
| stage | step | Retomar de |
|
|
233
|
-
|-------|------|-----------|
|
|
234
|
-
| `build` | `planning` | Estagio 3: re-planejar fase {phase} |
|
|
235
|
-
| `build` | `executing` | Estagio 3: re-executar fase {phase} (pula planos com SUMMARY) |
|
|
236
|
-
| `build` | `verifying` | Estagio 3: re-verificar fase {phase} |
|
|
237
|
-
| `build` | `e2e-testing` | Estagio 3: re-testar E2E fase {phase} |
|
|
238
|
-
| `build` | `reassessing` | Estagio 3: pular reassessment, avancar para fase {phase+1} |
|
|
239
|
-
| `build` | `completed` | Estagio 3: avancar para fase {phase+1} |
|
|
240
|
-
| `polish` | qualquer | Estagio 4: re-executar polish |
|
|
241
|
-
| `delivery` | qualquer | Estagio 5: re-gerar DELIVERY.md |
|
|
242
|
-
|
|
243
|
-
**Pular direto para o estagio/fase correto.** NAO re-executar estagios ja completos.
|
|
244
|
-
NAO fazer intake novamente. Ler BRIEFING.md e PROJECT.md para contexto.
|
|
245
|
-
|
|
246
|
-
**Se LOCK.md existe e `status: completed`:**
|
|
247
|
-
Deletar LOCK.md e iniciar normalmente (sessao anterior terminou com sucesso).
|
|
248
|
-
|
|
249
|
-
**Se LOCK.md NAO existe:**
|
|
250
|
-
Continuar normalmente para 1.05.
|
|
251
|
-
|
|
252
|
-
### 1.05 Verificar Owner Profile (GATE OBRIGATORIO)
|
|
253
|
-
|
|
254
|
-
```bash
|
|
255
|
-
if [ ! -f ~/.claude/up/owner-profile.md ]; then
|
|
256
|
-
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
257
|
-
echo " UP > PRIMEIRO USO DETECTADO"
|
|
258
|
-
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
259
|
-
echo ""
|
|
260
|
-
echo " Voce nunca usou o UP antes. Antes de comecar o builder,"
|
|
261
|
-
echo " preciso te conhecer."
|
|
262
|
-
echo ""
|
|
263
|
-
echo " Rodando /up:onboard primeiro..."
|
|
264
|
-
echo ""
|
|
265
|
-
fi
|
|
266
|
-
```
|
|
267
|
-
|
|
268
|
-
Se owner-profile nao existe:
|
|
269
|
-
1. Delegar para o workflow de onboarding (`@~/.claude/up/workflows/onboarding.md`)
|
|
270
|
-
2. Apos completar onboarding, voltar para o builder
|
|
271
|
-
|
|
272
|
-
### 1.1 Carregar Defaults e Detectar Modo
|
|
273
|
-
|
|
274
|
-
```bash
|
|
275
|
-
DEFAULTS_PATH="$HOME/.claude/up/builder-defaults.md"
|
|
276
|
-
```
|
|
277
|
-
|
|
278
|
-
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."
|
|
279
|
-
|
|
280
|
-
**v0.6.0+: Sem extracao de modelos.** O runtime decide o modelo. Planos sao sempre Sonnet-ready (detalhe maximo).
|
|
281
|
-
|
|
282
|
-
**Detectar modo automaticamente:**
|
|
283
|
-
|
|
284
|
-
```bash
|
|
285
|
-
# Verificar se ha codigo existente
|
|
286
|
-
ls package.json go.mod Cargo.toml requirements.txt pyproject.toml pom.xml build.gradle composer.json Gemfile 2>/dev/null
|
|
287
|
-
ls -d src/ app/ lib/ cmd/ internal/ pages/ components/ 2>/dev/null | head -10
|
|
288
|
-
ls .plano/ROADMAP.md .plano/PROJECT.md 2>/dev/null
|
|
289
|
-
```
|
|
290
|
-
|
|
291
|
-
| Resultado | Modo |
|
|
292
|
-
|-----------|------|
|
|
293
|
-
| Sem manifesto de pacote e sem src/ | **GREENFIELD** |
|
|
294
|
-
| Manifesto ou diretorios de codigo existem | **BROWNFIELD** |
|
|
295
|
-
| `.plano/ROADMAP.md` existe | **BROWNFIELD** (projeto UP existente) |
|
|
296
|
-
|
|
297
|
-
Definir `$MODE` = `greenfield` ou `brownfield`.
|
|
298
|
-
|
|
299
|
-
### 1.2 Delegar Intake ao CEO
|
|
300
|
-
|
|
301
|
-
**NOVO (v0.5.0):** O intake agora e conduzido pelo CEO (up-project-ceo).
|
|
302
|
-
|
|
303
|
-
Spawnar CEO com contexto:
|
|
304
|
-
|
|
305
|
-
```python
|
|
306
|
-
Agent(
|
|
307
|
-
subagent_type="up-project-ceo",
|
|
308
|
-
prompt=f"""
|
|
309
|
-
Conduza intake para novo projeto UP.
|
|
310
|
-
|
|
311
|
-
Modo detectado: {MODE}
|
|
312
|
-
Briefing inicial: {ARGUMENTS ou "vazio, pedir ao dono"}
|
|
313
|
-
|
|
314
|
-
<files_to_read>
|
|
315
|
-
- ~/.claude/up/owner-profile.md (OBRIGATORIO — seu perfil do dono)
|
|
316
|
-
- $HOME/.claude/up/workflows/ceo-intake.md (seu workflow de intake)
|
|
317
|
-
- $HOME/.claude/up/workflows/onboarding.md (caso owner-profile nao exista)
|
|
318
|
-
</files_to_read>
|
|
319
|
-
|
|
320
|
-
Executar workflow de intake ate completar:
|
|
321
|
-
1. Conduzir 5 blocos de intake (briefing, design, credenciais, referencias, restricoes)
|
|
322
|
-
2. Gerar .plano/BRIEFING.md, .plano/OWNER.md, .plano/PENDING.md, .plano/DESIGN-TOKENS.md
|
|
323
|
-
3. Apresentar resumo ao dono antes de iniciar
|
|
324
|
-
|
|
325
|
-
Retornar apos intake com: briefing consolidado, modo confirmado, credenciais coletadas, pendencias.
|
|
326
|
-
"""
|
|
327
|
-
)
|
|
328
|
-
```
|
|
329
|
-
|
|
330
|
-
**Receber retorno do CEO:**
|
|
331
|
-
- BRIEFING completo
|
|
332
|
-
- OWNER.md criado
|
|
333
|
-
- PENDING.md criado
|
|
334
|
-
- DESIGN-TOKENS.md criado (custom ou defaults)
|
|
335
|
-
|
|
336
|
-
**Se CEO rejeitou briefing:** usuario ja foi alertado, retornar e esperar nova tentativa.
|
|
337
|
-
|
|
338
|
-
**Se CEO aprovou:** continuar para 1.3.
|
|
339
|
-
|
|
340
|
-
### 1.3 Analisar e Classificar Gaps
|
|
341
|
-
|
|
342
|
-
Analisar o briefing e classificar informacoes faltantes:
|
|
343
|
-
|
|
344
|
-
**CRITICO (deve perguntar):**
|
|
345
|
-
- Integrações externas que precisam de credenciais (Supabase, Stripe, etc.)
|
|
346
|
-
- Tokens/chaves de API necessarias
|
|
347
|
-
- Ambiguidades de negocio que afetam arquitetura fundamentalmente
|
|
348
|
-
- Ex: "sistema multiusuario" → precisa de roles? multi-tenant?
|
|
349
|
-
- Ex: "pagamentos" → qual gateway? quais metodos?
|
|
350
|
-
|
|
351
|
-
**BROWNFIELD EXTRA — CRITICO:**
|
|
352
|
-
- Se a feature pode impactar funcionalidades existentes de forma ambigua
|
|
353
|
-
- Ex: "refatorar auth" → manter backward compatibility? migrar usuarios?
|
|
354
|
-
- Se ha integrações existentes que podem ser afetadas
|
|
355
|
-
|
|
356
|
-
**DECIDIR SOZINHO (nao perguntar):**
|
|
357
|
-
- Stack (usar defaults ou inferir; em brownfield: usar stack EXISTENTE)
|
|
358
|
-
- Design visual, cores, fontes (em brownfield: seguir design system existente)
|
|
359
|
-
- Estrutura de pastas, padroes de codigo (em brownfield: seguir convencoes existentes)
|
|
360
|
-
- Nomes de tabelas, modelos, rotas, componentes
|
|
361
|
-
- Arquitetura de API (em brownfield: seguir padrao existente)
|
|
362
|
-
- Quantidade e granularidade de fases
|
|
363
|
-
- Tudo que nao e ambiguo
|
|
364
|
-
|
|
365
|
-
### 1.4 Fazer Perguntas Criticas
|
|
366
|
-
|
|
367
|
-
Se ha gaps criticos, fazer UMA UNICA rodada de perguntas usando AskUserQuestion:
|
|
368
|
-
|
|
369
|
-
```
|
|
370
|
-
AskUserQuestion(
|
|
371
|
-
header: "Informacoes Necessarias",
|
|
372
|
-
question: "[Listar todos os gaps criticos em uma unica pergunta]
|
|
373
|
-
|
|
374
|
-
1. [Pergunta critica 1]
|
|
375
|
-
2. [Pergunta critica 2]
|
|
376
|
-
...
|
|
377
|
-
|
|
378
|
-
Responda todas de uma vez.",
|
|
379
|
-
followUp: null
|
|
380
|
-
)
|
|
381
|
-
```
|
|
382
|
-
|
|
383
|
-
**Se NAO ha gaps criticos:** Pular direto para 1.5.
|
|
384
|
-
|
|
385
|
-
### 1.5 Confirmar e Iniciar
|
|
386
|
-
|
|
387
|
-
**GREENFIELD:**
|
|
388
|
-
```
|
|
389
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
390
|
-
UP > MODO BUILDER (GREENFIELD)
|
|
391
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
392
|
-
|
|
393
|
-
Entendi o projeto. A partir de agora, vou construir tudo autonomamente.
|
|
394
|
-
|
|
395
|
-
**Briefing:** [resumo em 2-3 frases]
|
|
396
|
-
**Stack:** [stack que sera usada]
|
|
397
|
-
**Estimativa:** [N] fases
|
|
398
|
-
|
|
399
|
-
Decisoes nao especificadas serao tomadas automaticamente.
|
|
400
|
-
|
|
401
|
-
Iniciando...
|
|
402
|
-
```
|
|
403
|
-
|
|
404
|
-
**BROWNFIELD:**
|
|
405
|
-
```
|
|
406
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
407
|
-
UP > MODO BUILDER (BROWNFIELD)
|
|
408
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
409
|
-
|
|
410
|
-
Entendi a feature. Vou mapear o codigo existente e implementar autonomamente.
|
|
411
|
-
|
|
412
|
-
**Feature:** [resumo em 2-3 frases]
|
|
413
|
-
**Stack detectada:** [stack existente]
|
|
414
|
-
**Estimativa:** [N] fases
|
|
415
|
-
|
|
416
|
-
Convencoes e padroes existentes serao respeitados.
|
|
417
|
-
|
|
418
|
-
Iniciando mapeamento do codebase...
|
|
419
|
-
```
|
|
420
|
-
|
|
421
|
-
**NAO pedir confirmacao.** Iniciar direto.
|
|
422
|
-
|
|
423
|
-
═══════════════════════════════════════════════════════
|
|
424
|
-
FIM DA INTERACAO COM USUARIO
|
|
425
|
-
═══════════════════════════════════════════════════════
|
|
426
|
-
|
|
427
|
-
---
|
|
428
|
-
|
|
429
|
-
## Estagio 2: ARQUITETURA (Autonomo)
|
|
430
|
-
|
|
431
|
-
### 2.0 GATE OBRIGATORIO — Inicializar .plano/
|
|
432
|
-
|
|
433
|
-
**ESTE PASSO E OBRIGATORIO E NAO PODE SER PULADO.**
|
|
434
|
-
**EXECUTAR ESTES COMANDOS LITERALMENTE — NAO APENAS LER.**
|
|
435
|
-
|
|
436
|
-
```bash
|
|
437
|
-
# GATE 1: Criar .plano/ se nao existe
|
|
438
|
-
mkdir -p .plano .plano/captures .plano/fases .plano/issues-carryover
|
|
439
|
-
|
|
440
|
-
# GATE 2: Verificar que foi criado
|
|
441
|
-
ls -d .plano/ || { echo "ERRO CRITICO: .plano/ nao foi criado"; exit 1; }
|
|
442
|
-
|
|
443
|
-
# GATE 3: Registrar inicio do builder
|
|
444
|
-
echo "builder_started: $(date -u +%Y-%m-%dT%H:%M:%SZ)" > .plano/LOCK.md
|
|
445
|
-
echo "mode: ${MODE}" >> .plano/LOCK.md
|
|
446
|
-
echo "stage: architecture" >> .plano/LOCK.md
|
|
447
|
-
echo "status: running" >> .plano/LOCK.md
|
|
448
|
-
|
|
449
|
-
# GATE 4: Init git se necessario
|
|
450
|
-
git init 2>/dev/null
|
|
451
|
-
```
|
|
452
|
-
|
|
453
|
-
**VERIFICACAO — EXECUTAR OBRIGATORIAMENTE:**
|
|
454
|
-
```bash
|
|
455
|
-
[ -d ".plano" ] && echo "GATE OK: .plano/ existe" || echo "GATE FALHOU: .plano/ nao existe — PARAR"
|
|
456
|
-
```
|
|
457
|
-
|
|
458
|
-
**Se GATE FALHOU:** NAO continuar. Algo esta errado com permissoes ou disco. Informar usuario.
|
|
459
|
-
|
|
460
|
-
### 2.1 Inicializar Projeto (Continuacao)
|
|
461
|
-
|
|
462
|
-
**Iniciar Dashboard automaticamente:**
|
|
463
|
-
```bash
|
|
464
|
-
node "$HOME/.claude/up/dashboard/server.js" 4040 "$(pwd)/.plano" &
|
|
465
|
-
DASH_PID=$!
|
|
466
|
-
echo "Dashboard: http://localhost:4040 (PID: $DASH_PID)"
|
|
467
|
-
```
|
|
468
|
-
|
|
469
|
-
Informar ao usuario:
|
|
470
|
-
```
|
|
471
|
-
Dashboard: http://localhost:4040 — acompanhe o progresso em tempo real
|
|
472
|
-
```
|
|
473
|
-
|
|
474
|
-
### 2.2 Pipeline de Arquitetura (3 Agentes em Sequencia)
|
|
475
|
-
|
|
476
|
-
**Pipeline:** Product Analyst → System Designer → Architect
|
|
477
|
-
Cada agente produz um documento que alimenta o proximo.
|
|
478
|
-
|
|
479
|
-
**O que acontece ANTES do pipeline depende do modo:**
|
|
480
|
-
|
|
481
|
-
#### MODO GREENFIELD — Pesquisa de Ecossistema
|
|
482
|
-
|
|
483
|
-
Spawnar 4 pesquisadores em paralelo (mesmo processo do novo-projeto):
|
|
484
|
-
|
|
485
|
-
```bash
|
|
486
|
-
mkdir -p .plano/pesquisa
|
|
487
|
-
```
|
|
488
|
-
|
|
489
|
-
```
|
|
490
|
-
Task(prompt="<research_type>
|
|
491
|
-
Pesquisa de Projeto -- Dimensao Stack para [dominio].
|
|
492
|
-
</research_type>
|
|
493
|
-
|
|
494
|
-
<question>
|
|
495
|
-
Qual e a stack padrao de 2025 para [dominio]? Confirme versoes e compatibilidade de: [frameworks do briefing/defaults].
|
|
496
|
-
</question>
|
|
497
|
-
|
|
498
|
-
<briefing>
|
|
499
|
-
[Briefing completo do usuario]
|
|
500
|
-
</briefing>
|
|
501
|
-
|
|
502
|
-
<output>
|
|
503
|
-
Write to: .plano/pesquisa/STACK.md
|
|
504
|
-
</output>
|
|
505
|
-
", subagent_type="up-pesquisador-projeto", description="Pesquisa Stack")
|
|
506
|
-
|
|
507
|
-
Task(prompt="<research_type>
|
|
508
|
-
Pesquisa de Projeto -- Dimensao Features para [dominio].
|
|
509
|
-
</research_type>
|
|
510
|
-
|
|
511
|
-
<question>
|
|
512
|
-
Quais features produtos de [dominio] tem? O que e obrigatorio vs diferenciador?
|
|
513
|
-
</question>
|
|
514
|
-
|
|
515
|
-
<briefing>
|
|
516
|
-
[Briefing completo do usuario]
|
|
517
|
-
</briefing>
|
|
518
|
-
|
|
519
|
-
<output>
|
|
520
|
-
Write to: .plano/pesquisa/FEATURES.md
|
|
521
|
-
</output>
|
|
522
|
-
", subagent_type="up-pesquisador-projeto", description="Pesquisa Features")
|
|
523
|
-
|
|
524
|
-
Task(prompt="<research_type>
|
|
525
|
-
Pesquisa de Projeto -- Dimensao Arquitetura para [dominio].
|
|
526
|
-
</research_type>
|
|
527
|
-
|
|
528
|
-
<question>
|
|
529
|
-
Como sistemas de [dominio] sao tipicamente estruturados? Componentes principais e padroes?
|
|
530
|
-
</question>
|
|
531
|
-
|
|
532
|
-
<briefing>
|
|
533
|
-
[Briefing completo do usuario]
|
|
534
|
-
</briefing>
|
|
535
|
-
|
|
536
|
-
<output>
|
|
537
|
-
Write to: .plano/pesquisa/ARCHITECTURE.md
|
|
538
|
-
</output>
|
|
539
|
-
", subagent_type="up-pesquisador-projeto", description="Pesquisa Arquitetura")
|
|
540
|
-
|
|
541
|
-
Task(prompt="<research_type>
|
|
542
|
-
Pesquisa de Projeto -- Dimensao Armadilhas para [dominio].
|
|
543
|
-
</research_type>
|
|
544
|
-
|
|
545
|
-
<question>
|
|
546
|
-
O que projetos de [dominio] comumente erram? Erros criticos a evitar?
|
|
547
|
-
</question>
|
|
548
|
-
|
|
549
|
-
<briefing>
|
|
550
|
-
[Briefing completo do usuario]
|
|
551
|
-
</briefing>
|
|
552
|
-
|
|
553
|
-
<output>
|
|
554
|
-
Write to: .plano/pesquisa/PITFALLS.md
|
|
555
|
-
</output>
|
|
556
|
-
", subagent_type="up-pesquisador-projeto", description="Pesquisa Armadilhas")
|
|
557
|
-
```
|
|
558
|
-
|
|
559
|
-
**IMPORTANTE:** Os 4 Task DEVEM ser spawnados na MESMA mensagem para execucao paralela.
|
|
560
|
-
|
|
561
|
-
Apos os 4 retornarem, spawnar sintetizador:
|
|
562
|
-
|
|
563
|
-
```
|
|
564
|
-
Task(prompt="
|
|
565
|
-
<task>
|
|
566
|
-
Sintetizar outputs de pesquisa em SUMMARY.md.
|
|
567
|
-
</task>
|
|
568
|
-
|
|
569
|
-
<files_to_read>
|
|
570
|
-
- .plano/pesquisa/STACK.md
|
|
571
|
-
- .plano/pesquisa/FEATURES.md
|
|
572
|
-
- .plano/pesquisa/ARCHITECTURE.md
|
|
573
|
-
- .plano/pesquisa/PITFALLS.md
|
|
574
|
-
</files_to_read>
|
|
575
|
-
|
|
576
|
-
<output>
|
|
577
|
-
Write to: .plano/pesquisa/SUMMARY.md
|
|
578
|
-
Commit apos escrever.
|
|
579
|
-
</output>
|
|
580
|
-
", subagent_type="up-sintetizador", description="Sintetizar pesquisa")
|
|
581
|
-
```
|
|
582
|
-
|
|
583
|
-
#### MODO BROWNFIELD — Mapeamento do Codebase + Pesquisa Focada
|
|
584
|
-
|
|
585
|
-
**Passo 1: Mapear codebase existente (4 agentes paralelos)**
|
|
586
|
-
|
|
587
|
-
Verificar se `.plano/codebase/` ja existe:
|
|
588
|
-
- Se existe e tem menos de 7 dias: reutilizar (pular mapeamento)
|
|
589
|
-
- Se nao existe ou esta desatualizado: mapear
|
|
590
|
-
|
|
591
|
-
```bash
|
|
592
|
-
mkdir -p .plano/codebase
|
|
593
|
-
```
|
|
594
|
-
|
|
595
|
-
```
|
|
596
|
-
Task(subagent_type="up-mapeador-codigo", prompt="
|
|
597
|
-
<focus>tech</focus>
|
|
598
|
-
<files_to_read>
|
|
599
|
-
- ./CLAUDE.md (se existir)
|
|
600
|
-
</files_to_read>
|
|
601
|
-
Mapear stack de tecnologia e integracoes externas.
|
|
602
|
-
Escrever .plano/codebase/STACK.md e .plano/codebase/INTEGRATIONS.md
|
|
603
|
-
", description="Mapear stack e integracoes")
|
|
604
|
-
|
|
605
|
-
Task(subagent_type="up-mapeador-codigo", prompt="
|
|
606
|
-
<focus>arch</focus>
|
|
607
|
-
<files_to_read>
|
|
608
|
-
- ./CLAUDE.md (se existir)
|
|
609
|
-
</files_to_read>
|
|
610
|
-
Mapear arquitetura e estrutura de arquivos.
|
|
611
|
-
Escrever .plano/codebase/ARCHITECTURE.md e .plano/codebase/STRUCTURE.md
|
|
612
|
-
", description="Mapear arquitetura e estrutura")
|
|
613
|
-
|
|
614
|
-
Task(subagent_type="up-mapeador-codigo", prompt="
|
|
615
|
-
<focus>quality</focus>
|
|
616
|
-
<files_to_read>
|
|
617
|
-
- ./CLAUDE.md (se existir)
|
|
618
|
-
</files_to_read>
|
|
619
|
-
Mapear convencoes de codigo e padroes de teste.
|
|
620
|
-
Escrever .plano/codebase/CONVENTIONS.md e .plano/codebase/TESTING.md
|
|
621
|
-
", description="Mapear convencoes e testes")
|
|
622
|
-
|
|
623
|
-
Task(subagent_type="up-mapeador-codigo", prompt="
|
|
624
|
-
<focus>concerns</focus>
|
|
625
|
-
<files_to_read>
|
|
626
|
-
- ./CLAUDE.md (se existir)
|
|
627
|
-
</files_to_read>
|
|
628
|
-
Identificar divida tecnica e problemas.
|
|
629
|
-
Escrever .plano/codebase/CONCERNS.md
|
|
630
|
-
", description="Mapear preocupacoes e divida tecnica")
|
|
631
|
-
```
|
|
632
|
-
|
|
633
|
-
**IMPORTANTE:** Os 4 Task DEVEM ser spawnados na MESMA mensagem para execucao paralela.
|
|
634
|
-
|
|
635
|
-
Verificar que os 7 documentos foram criados:
|
|
636
|
-
```bash
|
|
637
|
-
ls -la .plano/codebase/*.md | wc -l
|
|
638
|
-
```
|
|
639
|
-
|
|
640
|
-
Commitar mapeamento:
|
|
641
|
-
```bash
|
|
642
|
-
node "$HOME/.claude/up/bin/up-tools.cjs" commit "docs: mapear codebase existente" --files .plano/codebase/
|
|
643
|
-
```
|
|
644
|
-
|
|
645
|
-
**Passo 2: Pesquisa focada (apenas tecnologias NOVAS)**
|
|
646
|
-
|
|
647
|
-
Se o briefing menciona tecnologias/APIs que NAO existem no codebase atual:
|
|
648
|
-
|
|
649
|
-
```bash
|
|
650
|
-
mkdir -p .plano/pesquisa
|
|
651
|
-
```
|
|
652
|
-
|
|
653
|
-
Spawnar pesquisadores APENAS para tecnologias novas (ex: usuario quer adicionar Stripe mas o projeto nao tem):
|
|
654
|
-
|
|
655
|
-
```
|
|
656
|
-
Task(prompt="<research_type>
|
|
657
|
-
Pesquisa de Projeto -- Tecnologia nova para projeto existente.
|
|
658
|
-
</research_type>
|
|
659
|
-
|
|
660
|
-
<question>
|
|
661
|
-
[Perguntas focadas APENAS nas tecnologias/padroes NOVOS que serao adicionados]
|
|
662
|
-
Stack existente: [de .plano/codebase/STACK.md]
|
|
663
|
-
Novo: [tecnologia/API do briefing]
|
|
664
|
-
Como integrar o novo com o existente?
|
|
665
|
-
</question>
|
|
666
|
-
|
|
667
|
-
<briefing>
|
|
668
|
-
[Briefing do usuario]
|
|
669
|
-
</briefing>
|
|
670
|
-
|
|
671
|
-
<output>
|
|
672
|
-
Write to: .plano/pesquisa/NOVAS-TECNOLOGIAS.md
|
|
673
|
-
</output>
|
|
674
|
-
", subagent_type="up-pesquisador-projeto", description="Pesquisar tecnologias novas")
|
|
675
|
-
```
|
|
676
|
-
|
|
677
|
-
Se NAO ha tecnologias novas: pular pesquisa.
|
|
678
|
-
|
|
679
|
-
### 2.3 Salvar Briefing
|
|
680
|
-
|
|
681
|
-
Use a ferramenta Write para criar `.plano/BRIEFING.md` com:
|
|
682
|
-
- Modo (greenfield/brownfield)
|
|
683
|
-
- Briefing completo do usuario
|
|
684
|
-
- Respostas das perguntas criticas (se houve)
|
|
685
|
-
- Credenciais/APIs fornecidas
|
|
686
|
-
- **BROWNFIELD extra:** resumo do codebase (de .plano/codebase/), o que NAO mudar
|
|
687
|
-
|
|
688
|
-
### 2.4 Agente 1: Product Analyst
|
|
689
|
-
|
|
690
|
-
```
|
|
691
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
692
|
-
BUILDER > ANALISANDO PRODUTO
|
|
693
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
694
|
-
|
|
695
|
-
Pesquisando concorrentes e features do mercado...
|
|
696
|
-
```
|
|
697
|
-
|
|
698
|
-
```
|
|
699
|
-
Task(prompt="
|
|
700
|
-
<objective>
|
|
701
|
-
Analisar o mercado e produto: pesquisar concorrentes, definir personas, listar features obrigatorias e esperadas, mapear modulos do sistema.
|
|
702
|
-
Modo autonomo — NAO pergunte nada.
|
|
703
|
-
</objective>
|
|
704
|
-
|
|
705
|
-
<files_to_read>
|
|
706
|
-
- .plano/BRIEFING.md (Briefing do usuario)
|
|
707
|
-
- .plano/pesquisa/SUMMARY.md (Pesquisa de ecossistema, se existir)
|
|
708
|
-
</files_to_read>
|
|
709
|
-
|
|
710
|
-
<output>
|
|
711
|
-
Escrever .plano/PRODUCT-ANALYSIS.md
|
|
712
|
-
Commit apos escrever.
|
|
713
|
-
Retornar: ## PRODUCT ANALYSIS COMPLETE
|
|
714
|
-
</output>
|
|
715
|
-
", subagent_type="up-product-analyst", description="Analisar produto e mercado")
|
|
716
|
-
```
|
|
717
|
-
|
|
718
|
-
Verificar retorno `## PRODUCT ANALYSIS COMPLETE`. Se falhou: registrar e continuar (System Designer usara blueprints como fallback).
|
|
719
|
-
|
|
720
|
-
```
|
|
721
|
-
Produto: [N] concorrentes | [X] features obrigatorias | [Y] personas | [Z] modulos
|
|
722
|
-
```
|
|
723
|
-
|
|
724
|
-
### 2.5 Agente 2: System Designer
|
|
725
|
-
|
|
726
|
-
```
|
|
727
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
728
|
-
BUILDER > PROJETANDO SISTEMA
|
|
729
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
730
|
-
|
|
731
|
-
Definindo modulos, roles, schema, rotas e requisitos de producao...
|
|
732
|
-
```
|
|
733
|
-
|
|
734
|
-
```
|
|
735
|
-
Task(prompt="
|
|
736
|
-
<objective>
|
|
737
|
-
Projetar o sistema tecnico completo: modulos, roles, permissoes, schema de banco, rotas, integracoes.
|
|
738
|
-
Aplicar blueprints de producao e requisitos universais. Compilar requisitos das 5 camadas.
|
|
739
|
-
Modo autonomo — NAO pergunte nada.
|
|
740
|
-
</objective>
|
|
741
|
-
|
|
742
|
-
<mode>{greenfield|brownfield}</mode>
|
|
743
|
-
|
|
744
|
-
<files_to_read>
|
|
745
|
-
- .plano/BRIEFING.md (Briefing e stack)
|
|
746
|
-
- .plano/PRODUCT-ANALYSIS.md (Analise de produto — features, personas, modulos)
|
|
747
|
-
- .plano/pesquisa/SUMMARY.md (Pesquisa, se existir)
|
|
748
|
-
- $HOME/.claude/up/references/production-requirements-compressed.md (Requisitos universais)
|
|
749
|
-
- $HOME/.claude/up/references/blueprints/ (Blueprints — ler os relevantes ao dominio)
|
|
750
|
-
{BROWNFIELD EXTRA:}
|
|
751
|
-
- .plano/codebase/STACK.md (Stack existente)
|
|
752
|
-
- .plano/codebase/ARCHITECTURE.md (Arquitetura existente)
|
|
753
|
-
- .plano/codebase/CONVENTIONS.md (Convencoes a seguir)
|
|
754
|
-
- .plano/codebase/STRUCTURE.md (Estrutura existente)
|
|
755
|
-
- .plano/codebase/CONCERNS.md (Divida tecnica)
|
|
756
|
-
- .plano/codebase/INTEGRATIONS.md (Integracoes existentes)
|
|
757
|
-
</files_to_read>
|
|
758
|
-
|
|
759
|
-
<output>
|
|
760
|
-
Escrever .plano/SYSTEM-DESIGN.md
|
|
761
|
-
Commit apos escrever.
|
|
762
|
-
Retornar: ## SYSTEM DESIGN COMPLETE
|
|
763
|
-
</output>
|
|
764
|
-
", subagent_type="up-system-designer", description="Projetar sistema completo")
|
|
765
|
-
```
|
|
766
|
-
|
|
767
|
-
```
|
|
768
|
-
Sistema: [N] modulos | [X] roles | [Y] tabelas | [Z] requisitos compilados (5 camadas)
|
|
769
|
-
```
|
|
770
|
-
|
|
771
|
-
### 2.6 Agente 3: Architect
|
|
772
|
-
|
|
773
|
-
```
|
|
774
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
775
|
-
BUILDER > ESTRUTURANDO PROJETO
|
|
776
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
777
|
-
|
|
778
|
-
Gerando PROJECT.md, REQUIREMENTS.md, ROADMAP.md...
|
|
779
|
-
```
|
|
780
|
-
|
|
781
|
-
```
|
|
782
|
-
Task(prompt="
|
|
783
|
-
<objective>
|
|
784
|
-
Transformar analise de produto e design de sistema em documentos executaveis do UP:
|
|
785
|
-
PROJECT.md, REQUIREMENTS.md (com TODOS os requisitos das 5 camadas), ROADMAP.md, STATE.md, config.json.
|
|
786
|
-
Modo autonomo — NAO pergunte nada.
|
|
787
|
-
</objective>
|
|
788
|
-
|
|
789
|
-
<mode>{greenfield|brownfield}</mode>
|
|
790
|
-
|
|
791
|
-
<files_to_read>
|
|
792
|
-
- .plano/BRIEFING.md (Briefing original)
|
|
793
|
-
- .plano/PRODUCT-ANALYSIS.md (Analise de produto — features, personas)
|
|
794
|
-
- .plano/SYSTEM-DESIGN.md (Design tecnico — modulos, roles, schema, requisitos compilados)
|
|
795
|
-
- $HOME/.claude/up/builder-defaults.md (Defaults do usuario, se existir)
|
|
796
|
-
- $HOME/.claude/up/templates/project.md (Template PROJECT.md)
|
|
797
|
-
{BROWNFIELD EXTRA:}
|
|
798
|
-
- .plano/PROJECT.md (Existente — ATUALIZAR)
|
|
799
|
-
- .plano/ROADMAP.md (Existente — ADICIONAR fases)
|
|
800
|
-
- .plano/REQUIREMENTS.md (Existente — ADICIONAR requisitos)
|
|
801
|
-
- .plano/codebase/CONVENTIONS.md (Convencoes)
|
|
802
|
-
- ./CLAUDE.md (Instrucoes do projeto)
|
|
803
|
-
</files_to_read>
|
|
804
|
-
|
|
805
|
-
<critical>
|
|
806
|
-
O SYSTEM-DESIGN.md contem requisitos COMPILADOS das 5 camadas (explicitos + blueprints + universais + stack + mercado).
|
|
807
|
-
TODOS esses requisitos devem aparecer no REQUIREMENTS.md com REQ-IDs.
|
|
808
|
-
TODAS as features devem ter fases no ROADMAP.md.
|
|
809
|
-
O resultado deve ser um sistema COMPLETO pronto para producao, nao um MVP basico.
|
|
810
|
-
</critical>
|
|
811
|
-
|
|
812
|
-
<brownfield_rules>
|
|
813
|
-
Se brownfield:
|
|
814
|
-
1. RESPEITAR stack existente
|
|
815
|
-
2. SEGUIR convencoes existentes
|
|
816
|
-
3. ATUALIZAR documentos existentes (nao criar do zero)
|
|
817
|
-
4. ADICIONAR fases apos as existentes
|
|
818
|
-
5. ADICIONAR requisitos continuando numeracao
|
|
819
|
-
</brownfield_rules>
|
|
820
|
-
|
|
821
|
-
<constraints>
|
|
822
|
-
- builder_mode=true no config.json
|
|
823
|
-
- mode=yolo
|
|
824
|
-
- parallelization=true
|
|
825
|
-
- Commit todos arquivos ao final
|
|
826
|
-
</constraints>
|
|
827
|
-
", subagent_type="up-arquiteto", description="Estruturar projeto executavel")
|
|
828
|
-
```
|
|
829
|
-
|
|
830
|
-
### 2.7 Validar Requisitos (Quality Gate de Planejamento)
|
|
831
|
-
|
|
832
|
-
**ANTES de iniciar o build, validar que os requisitos sao completos e testaveis.**
|
|
833
|
-
|
|
834
|
-
```
|
|
835
|
-
Validando requisitos (13 checks)...
|
|
836
|
-
```
|
|
837
|
-
|
|
838
|
-
```
|
|
839
|
-
Task(
|
|
840
|
-
subagent_type="up-requirements-validator",
|
|
841
|
-
,
|
|
842
|
-
prompt="
|
|
843
|
-
<objective>
|
|
844
|
-
Validar REQUIREMENTS.md com 13 checks automaticos.
|
|
845
|
-
Calcular score e determinar se esta pronto para build.
|
|
846
|
-
</objective>
|
|
847
|
-
|
|
848
|
-
<files_to_read>
|
|
849
|
-
- .plano/REQUIREMENTS.md
|
|
850
|
-
- .plano/PROJECT.md
|
|
851
|
-
</files_to_read>
|
|
852
|
-
",
|
|
853
|
-
description="Validar requisitos (13 checks)"
|
|
854
|
-
)
|
|
855
|
-
```
|
|
856
|
-
|
|
857
|
-
Ler resultado:
|
|
858
|
-
|
|
859
|
-
**Se score >= 75% (ACCEPTABLE ou melhor):** Prosseguir.
|
|
860
|
-
```
|
|
861
|
-
Requisitos: {score}% — {GRADE} ({passed}/13 checks)
|
|
862
|
-
```
|
|
863
|
-
|
|
864
|
-
**Se score < 75% (NEEDS_WORK):** Re-spawnar arquiteto com feedback.
|
|
865
|
-
|
|
866
|
-
```
|
|
867
|
-
Requisitos insuficientes ({score}%). Refinando...
|
|
868
|
-
```
|
|
869
|
-
|
|
870
|
-
```
|
|
871
|
-
Task(
|
|
872
|
-
subagent_type="up-arquiteto",
|
|
873
|
-
prompt="
|
|
874
|
-
<objective>
|
|
875
|
-
Refinar REQUIREMENTS.md. A validacao encontrou problemas.
|
|
876
|
-
Ler REQUIREMENTS-VALIDATION.md para saber o que falta.
|
|
877
|
-
Adicionar requisitos que faltam SEM remover os existentes.
|
|
878
|
-
</objective>
|
|
879
|
-
|
|
880
|
-
<files_to_read>
|
|
881
|
-
- .plano/REQUIREMENTS-VALIDATION.md (feedback do validador)
|
|
882
|
-
- .plano/REQUIREMENTS.md (requisitos atuais)
|
|
883
|
-
- .plano/PROJECT.md
|
|
884
|
-
- .plano/SYSTEM-DESIGN.md
|
|
885
|
-
</files_to_read>
|
|
886
|
-
",
|
|
887
|
-
description="Refinar requisitos apos validacao"
|
|
888
|
-
)
|
|
889
|
-
```
|
|
890
|
-
|
|
891
|
-
Re-validar (max 2 ciclos). Se apos 2 ciclos ainda < 75%: prosseguir com advertencia.
|
|
892
|
-
|
|
893
|
-
### 2.8 Reportar Arquitetura
|
|
894
|
-
|
|
895
|
-
Ler ROADMAP.md e exibir resumo:
|
|
896
|
-
|
|
897
|
-
```
|
|
898
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
899
|
-
UP > ARQUITETURA DEFINIDA
|
|
900
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
901
|
-
|
|
902
|
-
**[Nome do Projeto]**
|
|
903
|
-
|
|
904
|
-
[N] fases | [X] requisitos (5 camadas) | [Y] modulos | [Z] roles
|
|
905
|
-
Stack: [resumo]
|
|
906
|
-
|
|
907
|
-
Pipeline: Product Analyst → System Designer → Architect
|
|
908
|
-
|
|
909
|
-
| # | Fase | Objetivo |
|
|
910
|
-
|---|------|----------|
|
|
911
|
-
| 1 | [Nome] | [Objetivo] |
|
|
912
|
-
| 2 | [Nome] | [Objetivo] |
|
|
913
|
-
...
|
|
914
|
-
|
|
915
|
-
Iniciando build...
|
|
916
|
-
```
|
|
917
|
-
|
|
918
|
-
---
|
|
919
|
-
|
|
920
|
-
### 2.9 Injetar persistência no CLAUDE.md do projeto
|
|
921
|
-
|
|
922
|
-
Verificar se `./CLAUDE.md` existe. Se existir, verificar se já contém "UP: Persistência de Estado". Se não contém, adicionar ao final:
|
|
923
|
-
|
|
924
|
-
```markdown
|
|
925
|
-
|
|
926
|
-
## UP: Persistência de Estado
|
|
927
|
-
|
|
928
|
-
Este projeto usa o sistema UP. Se `.plano/STATE.md` existir:
|
|
929
|
-
- Ao final de trabalho significativo, salvar estado: `node "$HOME/.claude/up/bin/up-tools.cjs" state save-session --summary "o que foi feito"`
|
|
930
|
-
- Se houve decisão importante, adicionar: `--decision "decisão" --phase N`
|
|
931
|
-
- Isso garante continuidade entre sessões mesmo sem usar comandos /up:
|
|
932
|
-
```
|
|
933
|
-
|
|
934
|
-
Se `./CLAUDE.md` não existe, criar com o conteúdo acima.
|
|
935
|
-
|
|
936
|
-
```bash
|
|
937
|
-
node "$HOME/.claude/up/bin/up-tools.cjs" commit "docs: adicionar persistência de estado ao CLAUDE.md" --files CLAUDE.md
|
|
938
|
-
```
|
|
939
|
-
|
|
940
|
-
---
|
|
941
|
-
|
|
942
|
-
## Estagio 3: BUILD (Autonomo — Loop de Fases)
|
|
943
|
-
|
|
944
|
-
### GATE OBRIGATORIO — Verificar Artefatos do Estagio 2
|
|
945
|
-
|
|
946
|
-
**ANTES de iniciar o build, verificar que a arquitetura produziu os artefatos obrigatorios.**
|
|
947
|
-
**EXECUTAR ESTES COMANDOS LITERALMENTE.**
|
|
948
|
-
|
|
949
|
-
```bash
|
|
950
|
-
echo "=== GATE: Verificando artefatos do Estagio 2 ==="
|
|
951
|
-
[ -f ".plano/PROJECT.md" ] && echo "OK: PROJECT.md" || echo "FALTANDO: PROJECT.md"
|
|
952
|
-
[ -f ".plano/ROADMAP.md" ] && echo "OK: ROADMAP.md" || echo "FALTANDO: ROADMAP.md"
|
|
953
|
-
[ -f ".plano/REQUIREMENTS.md" ] && echo "OK: REQUIREMENTS.md" || echo "FALTANDO: REQUIREMENTS.md"
|
|
954
|
-
[ -f ".plano/BRIEFING.md" ] && echo "OK: BRIEFING.md" || echo "FALTANDO: BRIEFING.md"
|
|
955
|
-
[ -f ".plano/SYSTEM-DESIGN.md" ] && echo "OK: SYSTEM-DESIGN.md" || echo "FALTANDO: SYSTEM-DESIGN.md"
|
|
956
|
-
```
|
|
957
|
-
|
|
958
|
-
**Se QUALQUER arquivo FALTANDO:**
|
|
959
|
-
- NAO continuar para o build
|
|
960
|
-
- Identificar qual agente falhou (Product Analyst? System Designer? Architect?)
|
|
961
|
-
- Re-executar o agente que falhou
|
|
962
|
-
- Repetir gate ate todos existirem
|
|
963
|
-
|
|
964
|
-
**Se todos OK:** Continuar para 3.0.
|
|
965
|
-
|
|
966
|
-
### 3.0 Carregar Roadmap e Inicializar Lock + Governance
|
|
967
|
-
|
|
968
|
-
**Inicializar diretorio de governanca (OBRIGATORIO):**
|
|
969
|
-
```bash
|
|
970
|
-
mkdir -p .plano/governance
|
|
971
|
-
touch .plano/governance/approvals.log
|
|
972
|
-
touch .plano/governance/technical-debt.log
|
|
973
|
-
echo "# Governance initialized at $(date -u +%Y-%m-%dT%H:%M:%SZ)" >> .plano/governance/approvals.log
|
|
974
|
-
```
|
|
975
|
-
|
|
976
|
-
```bash
|
|
977
|
-
ROADMAP=$(node "$HOME/.claude/up/bin/up-tools.cjs" roadmap analyze)
|
|
978
|
-
```
|
|
979
|
-
|
|
980
|
-
Extrair lista de fases e total.
|
|
981
|
-
|
|
982
|
-
**Criar/atualizar LOCK.md (crash recovery):**
|
|
983
|
-
|
|
984
|
-
Use a ferramenta Write para criar `.plano/LOCK.md`:
|
|
985
|
-
```markdown
|
|
986
|
-
---
|
|
987
|
-
status: running
|
|
988
|
-
stage: build
|
|
989
|
-
phase: 1
|
|
990
|
-
step: planning
|
|
991
|
-
total_phases: [N]
|
|
992
|
-
started: [timestamp ISO]
|
|
993
|
-
updated: [timestamp ISO]
|
|
994
|
-
pid: [process info]
|
|
995
|
-
---
|
|
996
|
-
|
|
997
|
-
# Builder Lock
|
|
998
|
-
|
|
999
|
-
Builder em execucao. Se a sessao morreu, use `/up:modo-builder` novamente para retomar.
|
|
1000
|
-
O builder detectara este LOCK e continuara de onde parou.
|
|
1001
|
-
```
|
|
1002
|
-
|
|
1003
|
-
**O LOCK.md e atualizado a cada transicao:**
|
|
1004
|
-
- Antes de planejar: `step: planning, phase: X`
|
|
1005
|
-
- Antes de executar: `step: executing, phase: X`
|
|
1006
|
-
- Antes de verificar: `step: verifying, phase: X`
|
|
1007
|
-
- Antes de E2E: `step: e2e-testing, phase: X`
|
|
1008
|
-
- Antes de reassessment: `step: reassessing, phase: X`
|
|
1009
|
-
- Ao completar fase: `step: completed, phase: X`
|
|
1010
|
-
- Ao entrar no Polish: `stage: polish`
|
|
1011
|
-
- Ao entrar na Entrega: `stage: delivery`
|
|
1012
|
-
- Ao finalizar: `status: completed` (e depois deletar o LOCK.md)
|
|
1013
|
-
|
|
1014
|
-
**Formato de atualizacao rapida:**
|
|
1015
|
-
```bash
|
|
1016
|
-
# Atualizar LOCK via sed (rapido, sem reescrever arquivo inteiro)
|
|
1017
|
-
sed -i "s/^step: .*/step: executing/" .plano/LOCK.md
|
|
1018
|
-
sed -i "s/^phase: .*/phase: ${PHASE_NUMBER}/" .plano/LOCK.md
|
|
1019
|
-
sed -i "s/^updated: .*/updated: $(date -u +%Y-%m-%dT%H:%M:%SZ)/" .plano/LOCK.md
|
|
1020
|
-
```
|
|
1021
|
-
|
|
1022
|
-
### 3.1 Loop Principal — SEPARACAO RIGIDA DE AGENTES
|
|
1023
|
-
|
|
1024
|
-
**REGRA ANTI-COLAPSO (ler com atencao):**
|
|
1025
|
-
|
|
1026
|
-
O LLM tende a otimizar colapsando passos — dar ao mesmo agente tarefas de planejar + executar,
|
|
1027
|
-
ou pular supervisores por parecer "overhead". Isso e PROIBIDO.
|
|
1028
|
-
|
|
1029
|
-
**Cada passo abaixo DEVE ser um Agent() ou Task() SEPARADO.**
|
|
1030
|
-
**NUNCA combinar dois passos em um unico spawn.**
|
|
1031
|
-
**NUNCA instruir um agente a fazer o trabalho de outro.**
|
|
1032
|
-
|
|
1033
|
-
Exemplo do que NAO fazer:
|
|
1034
|
-
```
|
|
1035
|
-
# ERRADO — combina planejamento + execucao no mesmo agente
|
|
1036
|
-
Task(subagent_type="up-planejador", prompt="Planejar E executar a fase...")
|
|
1037
|
-
|
|
1038
|
-
# ERRADO — pula supervisor
|
|
1039
|
-
Task(subagent_type="up-executor", prompt="Executar e verificar...")
|
|
1040
|
-
```
|
|
1041
|
-
|
|
1042
|
-
Exemplo correto:
|
|
1043
|
-
```
|
|
1044
|
-
# CERTO — cada agente faz UMA coisa
|
|
1045
|
-
Task(subagent_type="up-planejador", prompt="Planejar fase...")
|
|
1046
|
-
# Depois:
|
|
1047
|
-
Task(subagent_type="up-executor", prompt="Executar plano...")
|
|
1048
|
-
# Depois:
|
|
1049
|
-
Agent(subagent_type="up-execution-supervisor", prompt="Revisar execucao...")
|
|
1050
|
-
```
|
|
1051
|
-
|
|
1052
|
-
**Pipeline por fase — 9 passos sequenciais, NENHUM pode ser pulado:**
|
|
1053
|
-
|
|
1054
|
-
```
|
|
1055
|
-
PASSO 1: up-planejador → gera PLAN.md
|
|
1056
|
-
PASSO 2: up-{specialist} → gera SUMMARY.md
|
|
1057
|
-
--- GATE A: verificar SUMMARY.md existe ---
|
|
1058
|
-
PASSO 3: up-execution-supervisor → gera EXEC-REVIEW em approvals.log
|
|
1059
|
-
--- GATE B: verificar approvals.log tem entry pra fase ---
|
|
1060
|
-
PASSO 4: up-code-reviewer → gera CODE-REVIEW.md
|
|
1061
|
-
PASSO 5: up-verificador → gera VERIFICATION.md
|
|
1062
|
-
--- GATE C: verificar VERIFICATION.md existe ---
|
|
1063
|
-
PASSO 6: up-verification-supervisor → gera entry em approvals.log
|
|
1064
|
-
--- GATE D: verificar approvals.log tem 2 entries pra fase ---
|
|
1065
|
-
PASSO 7: E2E + DCRV → gera E2E-RESULTS.md
|
|
1066
|
-
PASSO 8: up-chief-engineer → gera entry em approvals.log
|
|
1067
|
-
--- GATE E: verificar approvals.log tem 3 entries pra fase (exec-sup + verif-sup + chief) ---
|
|
1068
|
-
PASSO 9: Marcar completa
|
|
1069
|
-
```
|
|
1070
|
-
|
|
1071
|
-
**GATES sao checks de arquivo executados via Bash. Se o gate falha, NAO avance.**
|
|
1072
|
-
|
|
1073
|
-
Para cada fase no ROADMAP (da primeira a ultima):
|
|
1074
|
-
|
|
1075
|
-
```
|
|
1076
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1077
|
-
BUILDER > FASE {X}/{TOTAL}: {Nome}
|
|
1078
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1079
|
-
```
|
|
1080
|
-
|
|
1081
|
-
#### 3.1.1 Planejar Fase
|
|
1082
|
-
|
|
1083
|
-
Spawnar up-planejador com flag de modo builder e modelo de planning:
|
|
1084
|
-
|
|
1085
|
-
```
|
|
1086
|
-
Task(prompt="
|
|
1087
|
-
<planning_context>
|
|
1088
|
-
**Fase:** {phase_number}
|
|
1089
|
-
**Modo:** builder (autonomo -- NAO use AskUserQuestion)
|
|
1090
|
-
**Sonnet-ready:** sempre (default em v0.6.0+)
|
|
1091
|
-
|
|
1092
|
-
<files_to_read>
|
|
1093
|
-
- .plano/STATE.md (Estado do Projeto)
|
|
1094
|
-
- .plano/ROADMAP.md (Roteiro)
|
|
1095
|
-
- .plano/REQUIREMENTS.md (Requisitos)
|
|
1096
|
-
- .plano/pesquisa/SUMMARY.md (Pesquisa - se existir)
|
|
1097
|
-
- .plano/codebase/CONVENTIONS.md (Convencoes - se existir, BROWNFIELD)
|
|
1098
|
-
- .plano/codebase/CONCERNS.md (Divida tecnica - se existir, BROWNFIELD)
|
|
1099
|
-
- .plano/codebase/ARCHITECTURE.md (Arquitetura - se existir, BROWNFIELD)
|
|
1100
|
-
- .plano/codebase/STRUCTURE.md (Estrutura - se existir, BROWNFIELD)
|
|
1101
|
-
- ./CLAUDE.md (Instrucoes do projeto, se existir)
|
|
1102
|
-
</files_to_read>
|
|
1103
|
-
|
|
1104
|
-
**IDs de requisitos da fase:** {phase_req_ids}
|
|
1105
|
-
**Instrucoes do projeto:** Ler ./CLAUDE.md se existir
|
|
1106
|
-
|
|
1107
|
-
<builder_mode>
|
|
1108
|
-
Voce esta no modo builder. Regras especiais:
|
|
1109
|
-
1. NAO use AskUserQuestion em hipotese alguma
|
|
1110
|
-
2. Se falta CONTEXT.md, planeje usando pesquisa + requisitos
|
|
1111
|
-
3. Se ha ambiguidade, tome a decisao mais razoavel e documente no plano
|
|
1112
|
-
4. Se precisa de informacao que normalmente perguntaria, infira e registre como decisao
|
|
1113
|
-
5. Pesquisa inline: SEMPRE faca (nivel 2+) para garantir implementacoes corretas
|
|
1114
|
-
6. CAPTURES: Se durante o planejamento voce descobrir algo importante (incompatibilidade, risco, oportunidade, decisao critica), registre em .plano/captures/ como arquivo markdown curto
|
|
1115
|
-
</builder_mode>
|
|
1116
|
-
|
|
1117
|
-
<self_check>
|
|
1118
|
-
Apos criar os planos, auto-verificar:
|
|
1119
|
-
- [ ] Cada requisito da fase mapeado a um plano
|
|
1120
|
-
- [ ] Frontmatter valido (wave, depends_on, files_modified, autonomous)
|
|
1121
|
-
- [ ] Tarefas sao especificas e acionaveis
|
|
1122
|
-
- [ ] Dependencias corretamente identificadas
|
|
1123
|
-
- [ ] Waves atribuidas para execucao paralela
|
|
1124
|
-
- [ ] must_haves derivados do objetivo da fase
|
|
1125
|
-
Se algo falhar, corrija antes de retornar.
|
|
1126
|
-
</self_check>
|
|
1127
|
-
|
|
1128
|
-
<output>
|
|
1129
|
-
Escrever PLAN.md em: .plano/fases/{phase_dir}/
|
|
1130
|
-
Retornar: ## PLANNING COMPLETE com resumo dos planos
|
|
1131
|
-
</output>
|
|
1132
|
-
", subagent_type="up-planejador", description="Planejar Fase {phase_number}")
|
|
1133
|
-
```
|
|
1134
|
-
|
|
1135
|
-
Verificar retorno:
|
|
1136
|
-
- `## PLANNING COMPLETE` → prosseguir para quality gate do plano
|
|
1137
|
-
- `## PLANNING INCONCLUSIVE` → tentar novamente com mais contexto (max 2 tentativas)
|
|
1138
|
-
|
|
1139
|
-
**Quality Gate do Plano (sempre):**
|
|
1140
|
-
|
|
1141
|
-
Antes de passar pro executor, verificar qualidade do plano rapidamente:
|
|
1142
|
-
```bash
|
|
1143
|
-
# Contar tarefas com detalhamento insuficiente
|
|
1144
|
-
for plan in .plano/fases/{phase_dir}/*-PLAN.md; do
|
|
1145
|
-
# Checar se tem imports/schemas/endpoints explicitados
|
|
1146
|
-
DETAIL_SCORE=0
|
|
1147
|
-
grep -c "import \|from '" "$plan" > /dev/null && DETAIL_SCORE=$((DETAIL_SCORE+1))
|
|
1148
|
-
grep -c "interface \|type \|schema\|z\.\|zod" "$plan" > /dev/null && DETAIL_SCORE=$((DETAIL_SCORE+1))
|
|
1149
|
-
grep -c "POST \|GET \|PUT \|DELETE \|endpoint\|route" "$plan" > /dev/null && DETAIL_SCORE=$((DETAIL_SCORE+1))
|
|
1150
|
-
grep -c "CREATE TABLE\|migration\|ALTER" "$plan" > /dev/null && DETAIL_SCORE=$((DETAIL_SCORE+1))
|
|
1151
|
-
echo "$plan: detail_score=$DETAIL_SCORE"
|
|
1152
|
-
done
|
|
1153
|
-
```
|
|
1154
|
-
|
|
1155
|
-
Se algum plano tem detail_score < 2 e a fase tem mais de 3 tarefas:
|
|
1156
|
-
- Re-spawnar planejador com instrucao extra: "Plano insuficientemente detalhado. Reescrever com imports, tipos, schemas e endpoints explicitos. Ver self-check Sonnet-ready."
|
|
1157
|
-
- Max 1 re-tentativa de enriquecimento
|
|
1158
|
-
|
|
1159
|
-
```
|
|
1160
|
-
Fase {X}: Planejada — {N} planos em {M} waves [Sonnet-ready: {score}]
|
|
1161
|
-
```
|
|
1162
|
-
|
|
1163
|
-
#### 3.1.2 Executar Fase (com Specialist Routing)
|
|
1164
|
-
|
|
1165
|
-
Usar o mesmo processo do workflow executar-fase.md:
|
|
1166
|
-
|
|
1167
|
-
```bash
|
|
1168
|
-
INIT=$(node "$HOME/.claude/up/bin/up-tools.cjs" init executar-fase "${PHASE_NUMBER}")
|
|
1169
|
-
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
1170
|
-
```
|
|
1171
|
-
|
|
1172
|
-
Parse JSON para obter: `phase_dir`, `plan_count`, `incomplete_count`, `parallelization`.
|
|
1173
|
-
|
|
1174
|
-
```bash
|
|
1175
|
-
PLAN_INDEX=$(node "$HOME/.claude/up/bin/up-tools.cjs" phase-plan-index "${PHASE_NUMBER}")
|
|
1176
|
-
```
|
|
1177
|
-
|
|
1178
|
-
Parse para obter waves e planos.
|
|
1179
|
-
|
|
1180
|
-
**Specialist Routing — escolher o agente certo por plano:**
|
|
1181
|
-
|
|
1182
|
-
Para cada plano, ler o frontmatter e detectar o dominio:
|
|
1183
|
-
|
|
1184
|
-
| Se o plano envolve... | Usar agente |
|
|
1185
|
-
|----------------------|-------------|
|
|
1186
|
-
| Componentes React, paginas, UI, CSS, Tailwind | `up-frontend-specialist` |
|
|
1187
|
-
| API routes, endpoints, middleware, validacao | `up-backend-specialist` |
|
|
1188
|
-
| Schema, migrations, seeds, RLS, queries | `up-database-specialist` |
|
|
1189
|
-
| Misto ou infra | `up-executor` (generico) |
|
|
1190
|
-
|
|
1191
|
-
**Deteccao:** Ler campo `type` do frontmatter do PLAN.md. Se nao existir, inferir dos `<files>` das tasks:
|
|
1192
|
-
- Arquivos em `app/`, `components/`, `*.tsx` com JSX → frontend
|
|
1193
|
-
- Arquivos em `api/`, `server/`, `middleware/`, `route.ts` → backend
|
|
1194
|
-
- Arquivos `.sql`, `migrations/`, `schema/`, `seed` → database
|
|
1195
|
-
- Misto → usar executor generico
|
|
1196
|
-
|
|
1197
|
-
**Executar waves:**
|
|
1198
|
-
|
|
1199
|
-
Para cada wave, spawnar agentes especializados em paralelo (se parallelization=true):
|
|
1200
|
-
|
|
1201
|
-
**Wave 2 (v0.11+) — pre-inline context:**
|
|
1202
|
-
ANTES do spawn, montar o bloco de contexto via `up-tools.cjs context`.
|
|
1203
|
-
Isso injeta PLAN, STATE, config, governance comprimida e engineering
|
|
1204
|
-
principles direto no prompt. O agente NAO precisa fazer Read desses
|
|
1205
|
-
arquivos — economiza ~30k tokens por spawn.
|
|
1206
|
-
|
|
1207
|
-
```bash
|
|
1208
|
-
PLAN_FILE="{phase_dir}/{plan_file}"
|
|
1209
|
-
|
|
1210
|
-
# Wave 5+ — decidir agent type ANTES (necessario pra manifest e routing)
|
|
1211
|
-
SPECIALIST_AGENT="up-executor" # ou frontend/backend/database baseado em type do plano
|
|
1212
|
-
|
|
1213
|
-
# Wave 6+ — manifest carrega so refs relevantes ao papel do agente
|
|
1214
|
-
CTX=$(node "$HOME/.claude/up/bin/up-tools.cjs" context \
|
|
1215
|
-
--plan "${PLAN_FILE}" \
|
|
1216
|
-
--state \
|
|
1217
|
-
--config \
|
|
1218
|
-
--manifest "${SPECIALIST_AGENT}" \
|
|
1219
|
-
--raw)
|
|
1220
|
-
|
|
1221
|
-
# Wave 5+ — complexity-aware model routing per plan
|
|
1222
|
-
MODEL=$(node "$HOME/.claude/up/bin/up-tools.cjs" resolve-model-for-plan \
|
|
1223
|
-
"${PLAN_FILE}" "${SPECIALIST_AGENT}" --raw)
|
|
1224
|
-
CLASSIFY=$(node "$HOME/.claude/up/bin/up-tools.cjs" classify-task "${PLAN_FILE}" --raw)
|
|
1225
|
-
COMPLEXITY=$(echo "$CLASSIFY" | grep -oE '"complexity"[^,]+' | grep -oE '"(simple|standard|complex)"' | tr -d '"')
|
|
1226
|
-
SCORE=$(echo "$CLASSIFY" | grep -oE '"score"\s*:\s*[0-9]+' | grep -oE '[0-9]+')
|
|
1227
|
-
|
|
1228
|
-
# Wave 6+ — Iron rule: validar plan ANTES de spawnar
|
|
1229
|
-
VALIDATE=$(node "$HOME/.claude/up/bin/up-tools.cjs" validate-plan "${PLAN_FILE}" --raw)
|
|
1230
|
-
VALIDATE_PASS=$(echo "$VALIDATE" | grep -oE '"pass"\s*:\s*(true|false)' | grep -oE '(true|false)')
|
|
1231
|
-
if [ "$VALIDATE_PASS" = "false" ]; then
|
|
1232
|
-
echo "IRON RULE FALHOU: Plan ${PLAN_FILE} nao passou validate-plan."
|
|
1233
|
-
echo "$VALIDATE" | grep -A 20 'suggestions'
|
|
1234
|
-
echo "Voltando pro planejador pra refazer."
|
|
1235
|
-
# Re-spawn planejador com VALIDATE como contexto. NAO seguir pro spawn de specialist.
|
|
1236
|
-
exit 1
|
|
1237
|
-
fi
|
|
1238
|
-
|
|
1239
|
-
# Log decisao (outcome marcado depois do retorno)
|
|
1240
|
-
node "$HOME/.claude/up/bin/up-tools.cjs" routing-log \
|
|
1241
|
-
--plan "${PLAN_FILE}" \
|
|
1242
|
-
--agent "${SPECIALIST_AGENT}" \
|
|
1243
|
-
--model "${MODEL}" \
|
|
1244
|
-
--complexity "${COMPLEXITY}" \
|
|
1245
|
-
--score "${SCORE}" \
|
|
1246
|
-
--outcome pending
|
|
1247
|
-
```
|
|
1248
|
-
|
|
1249
|
-
Spawn:
|
|
1250
|
-
|
|
1251
|
-
```
|
|
1252
|
-
Task(
|
|
1253
|
-
subagent_type="{up-frontend-specialist | up-backend-specialist | up-database-specialist | up-executor}",
|
|
1254
|
-
prompt=f"""
|
|
1255
|
-
<objective>
|
|
1256
|
-
Executar plano {plan_number} da fase {phase_number}-{phase_name}.
|
|
1257
|
-
Commitar cada tarefa atomicamente. Criar SUMMARY.md. Atualizar STATE.md e ROADMAP.md.
|
|
1258
|
-
</objective>
|
|
1259
|
-
|
|
1260
|
-
<prompt_context>
|
|
1261
|
-
{CTX}
|
|
1262
|
-
</prompt_context>
|
|
1263
|
-
|
|
1264
|
-
<execution_context>
|
|
1265
|
-
@~/.claude/up/workflows/executar-plano.md
|
|
1266
|
-
@~/.claude/up/references/checkpoints.md
|
|
1267
|
-
</execution_context>
|
|
1268
|
-
|
|
1269
|
-
<builder_mode>
|
|
1270
|
-
Modo builder ativo. Regras especiais:
|
|
1271
|
-
1. NAO use AskUserQuestion
|
|
1272
|
-
2. Checkpoints tipo checkpoint:human-verify → auto-aprovar e registrar
|
|
1273
|
-
3. Checkpoints tipo checkpoint:decision → tomar a decisao mais razoavel
|
|
1274
|
-
4. Checkpoints tipo checkpoint:human-action → se possivel automatizar, faca; se nao, registrar como pendente
|
|
1275
|
-
5. Deviation Rule 4 (architectural changes) → decidir autonomamente e registrar no SUMMARY
|
|
1276
|
-
6. CAPTURES: Se durante a execucao voce descobrir algo importante (padrao no codigo, problema potencial, oportunidade de melhoria, decisao arquitetural nao-obvia), registre em .plano/captures/ como arquivo markdown curto. Formato: `capture-{{timestamp}}-{{slug}}.md` com frontmatter: type (pattern|problem|opportunity|decision), severity (info|warning|critical), phase (numero). Corpo: 2-5 frases descrevendo o insight.
|
|
1277
|
-
</builder_mode>
|
|
1278
|
-
|
|
1279
|
-
<files_to_read>
|
|
1280
|
-
O contexto principal ja esta no <prompt_context> acima. Ler do disco APENAS:
|
|
1281
|
-
- ./CLAUDE.md (Instrucoes do projeto, se existir)
|
|
1282
|
-
- Arquivos referenciados em <files> das tarefas (codigo a editar)
|
|
1283
|
-
|
|
1284
|
-
NAO refazer Read em PLAN, STATE.md, config.json — ja estao inline.
|
|
1285
|
-
</files_to_read>
|
|
1286
|
-
|
|
1287
|
-
<success_criteria>
|
|
1288
|
-
- [ ] Todas tarefas executadas
|
|
1289
|
-
- [ ] Cada tarefa committed individualmente
|
|
1290
|
-
- [ ] SUMMARY.md criado no diretorio do plano
|
|
1291
|
-
- [ ] STATE.md atualizado
|
|
1292
|
-
- [ ] ROADMAP.md atualizado com progresso
|
|
1293
|
-
</success_criteria>
|
|
1294
|
-
"""
|
|
1295
|
-
)
|
|
1296
|
-
```
|
|
1297
|
-
|
|
1298
|
-
**Spot-check apos cada wave:**
|
|
1299
|
-
- Verificar que SUMMARYs existem
|
|
1300
|
-
- Verificar que commits existem via `git log --oneline --grep`
|
|
1301
|
-
- Se falha: tentar re-executar o plano falho (max 1 retry)
|
|
1302
|
-
|
|
1303
|
-
**Wave 5+ — Patch routing outcome apos retorno do spawn:**
|
|
1304
|
-
|
|
1305
|
-
```bash
|
|
1306
|
-
# Apos spawn retornar (success path)
|
|
1307
|
-
if [ -f "${PHASE_DIR}/$(basename ${PLAN_FILE} .md | sed 's/-PLAN/-SUMMARY/')" ]; then
|
|
1308
|
-
OUTCOME=success
|
|
1309
|
-
elif echo "$SPAWN_RETURN" | grep -q "^ABORTED:"; then
|
|
1310
|
-
OUTCOME=abort
|
|
1311
|
-
else
|
|
1312
|
-
OUTCOME=rework
|
|
1313
|
-
fi
|
|
1314
|
-
|
|
1315
|
-
REWORK_CYCLES=${REWORK_COUNT:-0}
|
|
1316
|
-
|
|
1317
|
-
node "$HOME/.claude/up/bin/up-tools.cjs" routing-log --update \
|
|
1318
|
-
--plan "${PLAN_FILE}" \
|
|
1319
|
-
--agent "${SPECIALIST_AGENT}" \
|
|
1320
|
-
--model "${MODEL}" \
|
|
1321
|
-
--complexity "${COMPLEXITY}" \
|
|
1322
|
-
--score "${SCORE}" \
|
|
1323
|
-
--outcome "${OUTCOME}" \
|
|
1324
|
-
--rework-cycles "${REWORK_CYCLES}"
|
|
1325
|
-
```
|
|
1326
|
-
|
|
1327
|
-
Sem este step, routing-history.log fica com entries `pending` orfas e
|
|
1328
|
-
`analyze-routing` nao tem dados pra sugerir ajustes.
|
|
1329
|
-
|
|
1330
|
-
**Wave 3 (v0.12+) — handle ABORTED returns:**
|
|
1331
|
-
|
|
1332
|
-
Se a mensagem de retorno do specialist comeca com `ABORTED:`:
|
|
1333
|
-
|
|
1334
|
-
```bash
|
|
1335
|
-
if echo "$SPAWN_RETURN" | grep -q "^ABORTED:"; then
|
|
1336
|
-
REASON=$(echo "$SPAWN_RETURN" | grep -oE "(timeout|stuck)" | head -1)
|
|
1337
|
-
echo "WAVE INTERROMPIDA: ${REASON} na fase ${PHASE_NUMBER}"
|
|
1338
|
-
|
|
1339
|
-
# Verificar se PARTIAL-SUMMARY existe
|
|
1340
|
-
if [ -f "${PHASE_DIR}/PARTIAL-SUMMARY.md" ]; then
|
|
1341
|
-
PARTIAL_TASKS=$(grep "last_completed_task:" "${PHASE_DIR}/PARTIAL-SUMMARY.md" | head -1)
|
|
1342
|
-
|
|
1343
|
-
# Decisao: 1 retry com escopo reduzido OU escalar pro chief
|
|
1344
|
-
ABORT_COUNT=$(grep -c "phase-${PHASE_NUMBER}.*ABORTED" .plano/governance/aborts.log 2>/dev/null)
|
|
1345
|
-
|
|
1346
|
-
if [ "$ABORT_COUNT" -lt 2 ]; then
|
|
1347
|
-
echo "Retry com escopo reduzido (1/2). Spawnando specialist novamente."
|
|
1348
|
-
# Re-spawn com flag UP_RETRY_AFTER_ABORT=1 — agente pula tarefas opcionais
|
|
1349
|
-
# (manter prompt principal, adicionar instrucao de retry)
|
|
1350
|
-
else
|
|
1351
|
-
echo "ABORTS limite (${ABORT_COUNT}). Escalando para chief-engineer."
|
|
1352
|
-
# Spawn chief-engineer com PARTIAL-SUMMARY como contexto
|
|
1353
|
-
fi
|
|
1354
|
-
fi
|
|
1355
|
-
fi
|
|
1356
|
-
```
|
|
1357
|
-
|
|
1358
|
-
```
|
|
1359
|
-
Wave {N}: {count} planos executados
|
|
1360
|
-
```
|
|
1361
|
-
|
|
1362
|
-
#### --- GATE A: Verificar que execucao produziu artefatos ---
|
|
1363
|
-
|
|
1364
|
-
**EXECUTAR OBRIGATORIAMENTE antes de continuar:**
|
|
1365
|
-
|
|
1366
|
-
```bash
|
|
1367
|
-
echo "=== GATE A: Verificando artefatos da execucao (Fase ${PHASE_NUMBER}) ==="
|
|
1368
|
-
SUMMARY_COUNT=$(ls ${PHASE_DIR}/*-SUMMARY.md 2>/dev/null | wc -l)
|
|
1369
|
-
if [ "$SUMMARY_COUNT" -eq 0 ]; then
|
|
1370
|
-
echo "GATE A FALHOU: Nenhum SUMMARY.md encontrado em ${PHASE_DIR}"
|
|
1371
|
-
echo "A execucao NAO produziu artefatos. Re-executar."
|
|
1372
|
-
exit 1
|
|
1373
|
-
else
|
|
1374
|
-
echo "GATE A OK: ${SUMMARY_COUNT} SUMMARY(s) encontrados"
|
|
1375
|
-
fi
|
|
1376
|
-
```
|
|
1377
|
-
|
|
1378
|
-
**Se GATE A falhou:** Re-executar o specialist (max 1 retry). NAO avançar para supervisor.
|
|
1379
|
-
|
|
1380
|
-
#### 3.1.2.1 GOVERNANCE OBRIGATORIA — Execution Supervisor Revisa (PASSO 3)
|
|
1381
|
-
|
|
1382
|
-
**ESTE PASSO E OBRIGATORIO E NAO PODE SER PULADO.**
|
|
1383
|
-
**Referencia:** `@~/.claude/up/workflows/governance.md`
|
|
1384
|
-
|
|
1385
|
-
Apos CADA wave de execucao completar, o execution-supervisor DEVE revisar o trabalho.
|
|
1386
|
-
|
|
1387
|
-
```python
|
|
1388
|
-
Agent(
|
|
1389
|
-
subagent_type="up-execution-supervisor",
|
|
1390
|
-
prompt=f"""
|
|
1391
|
-
Revisar execucao da Fase {phase_number}.
|
|
1392
|
-
|
|
1393
|
-
<governance_compressed>
|
|
1394
|
-
DECISOES: APPROVE | REQUEST_CHANGES | REQUEST_REPLAN | ESCALATE
|
|
1395
|
-
REWORK: max 3 ciclos antes de forcar approval com debito
|
|
1396
|
-
NUNCA APROVAR: trabalho nao verificado, evidencia ambigua, claim sem backing,
|
|
1397
|
-
stub/placeholder, falta de wiring
|
|
1398
|
-
LOG OBRIGATORIO: .plano/governance/approvals.log
|
|
1399
|
-
</governance_compressed>
|
|
1400
|
-
|
|
1401
|
-
<engineering_principles_compressed>
|
|
1402
|
-
1. Implementacao real (zero placeholder)
|
|
1403
|
-
2. Correto, nao rapido
|
|
1404
|
-
3. Conectado ponta a ponta
|
|
1405
|
-
4. Consistencia (seguir patterns existentes)
|
|
1406
|
-
5. Dados reais
|
|
1407
|
-
6. Custo futuro
|
|
1408
|
-
</engineering_principles_compressed>
|
|
1409
|
-
|
|
1410
|
-
<files_to_read>
|
|
1411
|
-
- {PLAN}
|
|
1412
|
-
- {PHASE_DIR}/*-SUMMARY.md
|
|
1413
|
-
- git diff (use Bash)
|
|
1414
|
-
- .plano/fases/{phase_number}/REQUIREMENTS-SLICE.md (se existir)
|
|
1415
|
-
|
|
1416
|
-
Sob demanda apenas:
|
|
1417
|
-
- $HOME/.claude/up/references/engineering-principles-compressed.md (exemplos)
|
|
1418
|
-
- $HOME/.claude/up/references/governance-rules-compressed.md (hierarquia)
|
|
1419
|
-
- $HOME/.claude/up/references/rework-limits-compressed.md (fluxos)
|
|
1420
|
-
- $HOME/.claude/up/references/production-requirements-compressed.md (IDs especificos)
|
|
1421
|
-
</files_to_read>
|
|
1422
|
-
|
|
1423
|
-
Decisao: APPROVE | REQUEST_CHANGES | REQUEST_REPLAN | ESCALATE
|
|
1424
|
-
|
|
1425
|
-
REQUEST_REPLAN: Se descobrir que o plano e fundamentalmente errado/inviavel.
|
|
1426
|
-
Max 2 re-plans por projeto.
|
|
1427
|
-
|
|
1428
|
-
**OUTPUT OBRIGATORIO (fazer ANTES de retornar):**
|
|
1429
|
-
Escrever sua decisao no approvals.log:
|
|
1430
|
-
```bash
|
|
1431
|
-
echo "$(date -u +%Y-%m-%dT%H:%M:%SZ) | phase-{phase_number} | execution-supervisor | {DECISAO} | {motivo_resumido}" >> .plano/governance/approvals.log
|
|
1432
|
-
```
|
|
1433
|
-
Sem este log, o GATE B vai bloquear o avanço do builder.
|
|
1434
|
-
"""
|
|
1435
|
-
)
|
|
1436
|
-
```
|
|
1437
|
-
|
|
1438
|
-
#### 3.1.2.2 Processar Decisao do Execution Supervisor
|
|
1439
|
-
|
|
1440
|
-
**Se APPROVE:** Verificar que approvals.log foi escrito (o supervisor deve ter feito). Prosseguir para 3.1.3.
|
|
1441
|
-
|
|
1442
|
-
**Se REQUEST_CHANGES:** Re-spawn specialist com feedback (max 3 ciclos).
|
|
1443
|
-
|
|
1444
|
-
```python
|
|
1445
|
-
# Re-spawn do specialist com review como contexto
|
|
1446
|
-
Agent(
|
|
1447
|
-
subagent_type="{mesmo specialist da execucao}",
|
|
1448
|
-
prompt=f"""
|
|
1449
|
-
REWORK — Ciclo {{N}}/3
|
|
1450
|
-
|
|
1451
|
-
Seu output anterior foi revisado pelo execution-supervisor e precisa de mudancas.
|
|
1452
|
-
|
|
1453
|
-
Review: .plano/governance/{{review_file}}
|
|
1454
|
-
|
|
1455
|
-
Mudancas requeridas:
|
|
1456
|
-
{{lista_de_mudancas}}
|
|
1457
|
-
|
|
1458
|
-
Refaca seu trabalho atendendo os criterios.
|
|
1459
|
-
"""
|
|
1460
|
-
)
|
|
1461
|
-
```
|
|
1462
|
-
|
|
1463
|
-
Se apos 3 ciclos sem melhoria: FORCAR aprovacao com debito tecnico.
|
|
1464
|
-
|
|
1465
|
-
```bash
|
|
1466
|
-
mkdir -p .plano/governance
|
|
1467
|
-
cat >> .plano/governance/technical-debt.log <<EOF
|
|
1468
|
-
$(date -u +%Y-%m-%dT%H:%M:%SZ) | phase-{phase_number} | execution-supervisor | FORCED_APPROVAL
|
|
1469
|
-
Reason: Max rework cycles (3) reached without improvement
|
|
1470
|
-
Remaining issues: [lista]
|
|
1471
|
-
EOF
|
|
1472
|
-
```
|
|
1473
|
-
|
|
1474
|
-
**Se REQUEST_REPLAN:**
|
|
1475
|
-
|
|
1476
|
-
```bash
|
|
1477
|
-
REPLAN_COUNT=$(cat .plano/governance/replans.log 2>/dev/null | wc -l)
|
|
1478
|
-
```
|
|
1479
|
-
|
|
1480
|
-
Se `REPLAN_COUNT >= 2`: ESCALATE pro chief-engineer.
|
|
1481
|
-
|
|
1482
|
-
Se `REPLAN_COUNT < 2`:
|
|
1483
|
-
1. Spawnar up-planejador LOCAL para refazer plano da fase
|
|
1484
|
-
2. Salvar como PLAN-v2.md (preservar v1 para historico)
|
|
1485
|
-
3. Spawnar up-planning-supervisor para revisar novo plano
|
|
1486
|
-
4. Se APPROVE: voltar para 3.1.2 (re-executar com novo plano)
|
|
1487
|
-
5. Se REJECT: ESCALATE pro chief-engineer
|
|
1488
|
-
|
|
1489
|
-
```bash
|
|
1490
|
-
echo "$(date -u +%Y-%m-%dT%H:%M:%SZ) | phase-${PHASE_NUMBER} | execution-supervisor | REPLAN | cycle $((REPLAN_COUNT+1))/2" >> .plano/governance/replans.log
|
|
1491
|
-
```
|
|
1492
|
-
|
|
1493
|
-
**Se ESCALATE:** Spawnar chief-engineer para decidir.
|
|
1494
|
-
|
|
1495
|
-
```python
|
|
1496
|
-
Agent(
|
|
1497
|
-
subagent_type="up-chief-engineer",
|
|
1498
|
-
prompt=f"""
|
|
1499
|
-
Escalacao recebida do execution-supervisor.
|
|
1500
|
-
Fase: {phase_number}
|
|
1501
|
-
Problema: {descricao_do_problema}
|
|
1502
|
-
|
|
1503
|
-
<files_to_read>
|
|
1504
|
-
- {PHASE_DIR}/*-SUMMARY.md
|
|
1505
|
-
- {PLAN}
|
|
1506
|
-
- .plano/governance/approvals.log
|
|
1507
|
-
</files_to_read>
|
|
1508
|
-
|
|
1509
|
-
Decidir: APPROVE | REQUEST_CHANGES | ESCALATE_CEO
|
|
1510
|
-
"""
|
|
1511
|
-
)
|
|
1512
|
-
```
|
|
1513
|
-
|
|
1514
|
-
Se chief-engineer retorna ESCALATE_CEO: spawnar CEO para alertar o dono.
|
|
1515
|
-
|
|
1516
|
-
#### --- GATE B: Verificar que execution-supervisor logou decisao ---
|
|
1517
|
-
|
|
1518
|
-
**EXECUTAR OBRIGATORIAMENTE antes de continuar:**
|
|
1519
|
-
|
|
1520
|
-
```bash
|
|
1521
|
-
echo "=== GATE B: Verificando governance da execucao (Fase ${PHASE_NUMBER}) ==="
|
|
1522
|
-
EXEC_ENTRY=$(grep "phase-${PHASE_NUMBER}.*execution-supervisor" .plano/governance/approvals.log 2>/dev/null | tail -1)
|
|
1523
|
-
if [ -z "$EXEC_ENTRY" ]; then
|
|
1524
|
-
echo "GATE B FALHOU: execution-supervisor NAO logou decisao para fase ${PHASE_NUMBER}"
|
|
1525
|
-
echo "O execution-supervisor DEVE rodar antes de continuar."
|
|
1526
|
-
echo "NAO pular este passo. Spawnar up-execution-supervisor agora."
|
|
1527
|
-
exit 1
|
|
1528
|
-
else
|
|
1529
|
-
echo "GATE B OK: $EXEC_ENTRY"
|
|
1530
|
-
fi
|
|
1531
|
-
```
|
|
1532
|
-
|
|
1533
|
-
**Se GATE B falhou:** Spawnar execution-supervisor. NAO avançar para code review.
|
|
1534
|
-
|
|
1535
|
-
#### 3.1.3 Reflect (Code Review) (PASSO 4)
|
|
1536
|
-
|
|
1537
|
-
**O passo "Reflect" do ciclo RARV — revisa codigo ANTES da verificacao formal.**
|
|
1538
|
-
|
|
1539
|
-
```
|
|
1540
|
-
Fase {X}: Revisando codigo...
|
|
1541
|
-
```
|
|
1542
|
-
|
|
1543
|
-
Spawnar code reviewer:
|
|
1544
|
-
|
|
1545
|
-
```
|
|
1546
|
-
Task(
|
|
1547
|
-
subagent_type="up-code-reviewer",
|
|
1548
|
-
,
|
|
1549
|
-
prompt="
|
|
1550
|
-
<objective>
|
|
1551
|
-
Revisar codigo da fase {phase_number} contra production-requirements e padroes de qualidade.
|
|
1552
|
-
Identificar problemas com localizacao exata e sugestao de fix.
|
|
1553
|
-
</objective>
|
|
1554
|
-
|
|
1555
|
-
<files_to_read>
|
|
1556
|
-
- {phase_dir}/*-SUMMARY.md (O que foi implementado)
|
|
1557
|
-
- $HOME/.claude/up/references/production-requirements-compressed.md (Checklist de producao)
|
|
1558
|
-
- ./CLAUDE.md (Convencoes do projeto, se existir)
|
|
1559
|
-
</files_to_read>
|
|
1560
|
-
|
|
1561
|
-
<constraints>
|
|
1562
|
-
- Revisar TODOS os arquivos modificados na fase (via git log --grep)
|
|
1563
|
-
- Verificar 6 dimensoes: production requirements, code quality, security, performance, edge cases, consistency
|
|
1564
|
-
- Gerar CODE-REVIEW.md com issues priorizadas e fixes sugeridos
|
|
1565
|
-
</constraints>
|
|
1566
|
-
",
|
|
1567
|
-
description="Code Review da Fase {phase_number}"
|
|
1568
|
-
)
|
|
1569
|
-
```
|
|
1570
|
-
|
|
1571
|
-
Ler resultado do code review:
|
|
1572
|
-
|
|
1573
|
-
**Se ha issues CRITICAS (score < 7):**
|
|
1574
|
-
- Spawnar executor para corrigir issues criticas
|
|
1575
|
-
- Re-rodar code review (max 2 ciclos de correcao)
|
|
1576
|
-
|
|
1577
|
-
**Se score >= 7:**
|
|
1578
|
-
- Registrar score e prosseguir
|
|
1579
|
-
|
|
1580
|
-
```
|
|
1581
|
-
Reflect: score {N}/10 | {criticas} criticas | {importantes} importantes | {menores} menores
|
|
1582
|
-
```
|
|
1583
|
-
|
|
1584
|
-
#### 3.1.4 Verificar Fase
|
|
1585
|
-
|
|
1586
|
-
**Wave 4 (v0.13+) — Verification Ladder Determinística**
|
|
1587
|
-
|
|
1588
|
-
ANTES de spawnar o verificador-LLM, rodar checks deterministicos via
|
|
1589
|
-
`up-tools.cjs verify-static`. Isso roda lint, typecheck, test e audit
|
|
1590
|
-
do projeto. Se TUDO passa, a verificacao LLM pode ser pulada (criar
|
|
1591
|
-
VERIFICATION.md sintetico marcando "passed via static checks").
|
|
1592
|
-
Se algo falha, o output capturado vira contexto pro verificador-LLM —
|
|
1593
|
-
ele foca no que quebrou em vez de re-rodar tudo.
|
|
1594
|
-
|
|
1595
|
-
```bash
|
|
1596
|
-
# Step 1: Roda checks deterministicos
|
|
1597
|
-
STATIC=$(node "$HOME/.claude/up/bin/up-tools.cjs" verify-static --raw)
|
|
1598
|
-
STATIC_OVERALL=$(echo "$STATIC" | grep -oE 'overall.{1,20}' | head -1 | grep -oE '"(pass|fail|skip)"' | tr -d '"')
|
|
1599
|
-
|
|
1600
|
-
if [ "$STATIC_OVERALL" = "pass" ]; then
|
|
1601
|
-
# Step 2a: Tudo passou — criar VERIFICATION.md sintetico, pular LLM
|
|
1602
|
-
cat > "${PHASE_DIR}/VERIFICATION.md" <<EOF
|
|
1603
|
-
---
|
|
1604
|
-
status: passed
|
|
1605
|
-
verifier: static-only
|
|
1606
|
-
phase: ${PHASE_NUMBER}
|
|
1607
|
-
checks_passed: lint+typecheck+test+audit
|
|
1608
|
-
timestamp: $(date -u +%Y-%m-%dT%H:%M:%SZ)
|
|
1609
|
-
---
|
|
1610
|
-
|
|
1611
|
-
# Verificacao da Fase ${PHASE_NUMBER}
|
|
1612
|
-
|
|
1613
|
-
Aprovacao automatica via verificacao estatica deterministica.
|
|
1614
|
-
|
|
1615
|
-
Detalhes em \`.plano/runtime/verify-static-*.log\`.
|
|
1616
|
-
EOF
|
|
1617
|
-
echo "Verification: PASSED via static checks (LLM verifier skipped)"
|
|
1618
|
-
elif [ "$STATIC_OVERALL" = "skip" ]; then
|
|
1619
|
-
# Sem scripts disponiveis — fallback pra LLM verifier
|
|
1620
|
-
STATIC_CONTEXT="Static checks indisponiveis (sem lint/test scripts)."
|
|
1621
|
-
fi
|
|
1622
|
-
```
|
|
1623
|
-
|
|
1624
|
-
**Step 2b — Se STATIC falhou OU foi pulado:** spawnar verificador-LLM com output dos checks como contexto.
|
|
1625
|
-
|
|
1626
|
-
```python
|
|
1627
|
-
# Carregar logs de checks que falharam
|
|
1628
|
-
STATIC_LOGS=""
|
|
1629
|
-
for log in .plano/runtime/verify-static-*.log; do
|
|
1630
|
-
[ -f "$log" ] && STATIC_LOGS="${STATIC_LOGS}\n--- $(basename $log) ---\n$(cat $log)"
|
|
1631
|
-
done
|
|
1632
|
-
|
|
1633
|
-
Task(
|
|
1634
|
-
prompt=f"""Verificar atingimento do objetivo da fase {phase_number}.
|
|
1635
|
-
Diretorio da fase: {phase_dir}
|
|
1636
|
-
Objetivo da fase: {goal}
|
|
1637
|
-
IDs de requisitos da fase: {phase_req_ids}
|
|
1638
|
-
|
|
1639
|
-
<static_check_results overall="{STATIC_OVERALL}">
|
|
1640
|
-
{STATIC_LOGS}
|
|
1641
|
-
</static_check_results>
|
|
1642
|
-
|
|
1643
|
-
<builder_mode>
|
|
1644
|
-
Modo builder. NAO use AskUserQuestion.
|
|
1645
|
-
- FOCAR no que falhou nos static checks (nao reexecutar tudo)
|
|
1646
|
-
- Verificar must_haves contra codebase real
|
|
1647
|
-
- Cross-referenciar requisitos do frontmatter contra REQUIREMENTS.md
|
|
1648
|
-
- Rodar testes APENAS se nao constam dos static checks
|
|
1649
|
-
- Se human_needed: considerar como PASSED (sera verificado no final)
|
|
1650
|
-
- Criar VERIFICATION.md
|
|
1651
|
-
</builder_mode>
|
|
1652
|
-
""",
|
|
1653
|
-
subagent_type="up-verificador",
|
|
1654
|
-
)
|
|
1655
|
-
```
|
|
1656
|
-
|
|
1657
|
-
#### --- GATE C: Verificar que verificacao produziu artefatos ---
|
|
1658
|
-
|
|
1659
|
-
**EXECUTAR OBRIGATORIAMENTE antes de continuar:**
|
|
1660
|
-
|
|
1661
|
-
```bash
|
|
1662
|
-
echo "=== GATE C: Verificando artefatos da verificacao (Fase ${PHASE_NUMBER}) ==="
|
|
1663
|
-
VERIF_COUNT=$(ls ${PHASE_DIR}/*-VERIFICATION.md 2>/dev/null | wc -l)
|
|
1664
|
-
if [ "$VERIF_COUNT" -eq 0 ]; then
|
|
1665
|
-
echo "GATE C FALHOU: Nenhum VERIFICATION.md encontrado em ${PHASE_DIR}"
|
|
1666
|
-
echo "O verificador NAO rodou. Spawnar up-verificador agora."
|
|
1667
|
-
exit 1
|
|
1668
|
-
else
|
|
1669
|
-
echo "GATE C OK: ${VERIF_COUNT} VERIFICATION(s) encontrados"
|
|
1670
|
-
fi
|
|
1671
|
-
```
|
|
1672
|
-
|
|
1673
|
-
**Se GATE C falhou:** Spawnar verificador. NAO avançar para verification-supervisor.
|
|
1674
|
-
|
|
1675
|
-
#### 3.1.4.1 GOVERNANCE OBRIGATORIA — Verification Supervisor Revisa (PASSO 6)
|
|
1676
|
-
|
|
1677
|
-
**ESTE PASSO E OBRIGATORIO E NAO PODE SER PULADO.**
|
|
1678
|
-
**Referencia:** `@~/.claude/up/workflows/governance.md`
|
|
1679
|
-
|
|
1680
|
-
Apos o verificador retornar, o verification-supervisor DEVE revisar a verificacao.
|
|
1681
|
-
|
|
1682
|
-
```python
|
|
1683
|
-
Agent(
|
|
1684
|
-
subagent_type="up-verification-supervisor",
|
|
1685
|
-
prompt=f"""
|
|
1686
|
-
Revisar verificacao da Fase {phase_number}.
|
|
1687
|
-
|
|
1688
|
-
<governance_compressed>
|
|
1689
|
-
DECISOES: APPROVE | REQUEST_CHANGES | ESCALATE
|
|
1690
|
-
REWORK: max 3 ciclos antes de forcar approval com debito
|
|
1691
|
-
NUNCA APROVAR SE:
|
|
1692
|
-
- Verificacao superficial ("parece ok")
|
|
1693
|
-
- VERIFICATION.md claim sem evidencia no codigo
|
|
1694
|
-
- must_haves nao testados de fato
|
|
1695
|
-
- Testes rodaram mas com falhas ignoradas
|
|
1696
|
-
LOG OBRIGATORIO: .plano/governance/approvals.log
|
|
1697
|
-
</governance_compressed>
|
|
1698
|
-
|
|
1699
|
-
<files_to_read>
|
|
1700
|
-
- {PHASE_DIR}/*-VERIFICATION.md
|
|
1701
|
-
- {PHASE_DIR}/*-SUMMARY.md
|
|
1702
|
-
- {PLAN}
|
|
1703
|
-
- .plano/REQUIREMENTS.md (requisitos da fase)
|
|
1704
|
-
|
|
1705
|
-
Sob demanda apenas:
|
|
1706
|
-
- $HOME/.claude/up/references/governance-rules-compressed.md
|
|
1707
|
-
- $HOME/.claude/up/references/rework-limits-compressed.md
|
|
1708
|
-
</files_to_read>
|
|
1709
|
-
|
|
1710
|
-
Validar que a verificacao foi rigorosa e que os claims tem backing.
|
|
1711
|
-
Decisao: APPROVE | REQUEST_CHANGES | ESCALATE
|
|
1712
|
-
|
|
1713
|
-
**OUTPUT OBRIGATORIO (fazer ANTES de retornar):**
|
|
1714
|
-
Escrever sua decisao no approvals.log:
|
|
1715
|
-
```bash
|
|
1716
|
-
echo "$(date -u +%Y-%m-%dT%H:%M:%SZ) | phase-{phase_number} | verification-supervisor | {DECISAO} | {motivo_resumido}" >> .plano/governance/approvals.log
|
|
1717
|
-
```
|
|
1718
|
-
Sem este log, o GATE D vai bloquear o avanço do builder.
|
|
1719
|
-
"""
|
|
1720
|
-
)
|
|
1721
|
-
```
|
|
1722
|
-
|
|
1723
|
-
**Se APPROVE:** Verificar que approvals.log foi escrito. Prosseguir.
|
|
1724
|
-
|
|
1725
|
-
**Se REQUEST_CHANGES:** Re-spawn verificador com feedback (max 3 ciclos).
|
|
1726
|
-
|
|
1727
|
-
**Se ESCALATE:** Spawnar chief-engineer.
|
|
1728
|
-
|
|
1729
|
-
Ler status da verificacao:
|
|
1730
|
-
|
|
1731
|
-
```bash
|
|
1732
|
-
grep "^status:" "$PHASE_DIR"/*-VERIFICATION.md | cut -d: -f2 | tr -d ' '
|
|
1733
|
-
```
|
|
1734
|
-
|
|
1735
|
-
| Status | Acao no Builder |
|
|
1736
|
-
|--------|----------------|
|
|
1737
|
-
| `passed` | Prosseguir para E2E |
|
|
1738
|
-
| `gaps_found` | Tentar corrigir (planejar gaps + executar, max 1 ciclo) |
|
|
1739
|
-
| `human_needed` | Registrar para revisao final, avancar |
|
|
1740
|
-
|
|
1741
|
-
#### --- GATE D: Verificar que AMBOS supervisores logaram decisao ---
|
|
1742
|
-
|
|
1743
|
-
**EXECUTAR OBRIGATORIAMENTE antes de continuar:**
|
|
1744
|
-
|
|
1745
|
-
```bash
|
|
1746
|
-
echo "=== GATE D: Verificando governance completa (Fase ${PHASE_NUMBER}) ==="
|
|
1747
|
-
EXEC_OK=$(grep -c "phase-${PHASE_NUMBER}.*execution-supervisor" .plano/governance/approvals.log 2>/dev/null)
|
|
1748
|
-
VERIF_OK=$(grep -c "phase-${PHASE_NUMBER}.*verification-supervisor" .plano/governance/approvals.log 2>/dev/null)
|
|
1749
|
-
|
|
1750
|
-
if [ "$EXEC_OK" -eq 0 ] || [ "$VERIF_OK" -eq 0 ]; then
|
|
1751
|
-
echo "GATE D FALHOU:"
|
|
1752
|
-
[ "$EXEC_OK" -eq 0 ] && echo " - execution-supervisor NAO logou decisao"
|
|
1753
|
-
[ "$VERIF_OK" -eq 0 ] && echo " - verification-supervisor NAO logou decisao"
|
|
1754
|
-
echo "AMBOS supervisores DEVEM ter logado antes de continuar para E2E."
|
|
1755
|
-
echo "Voltar e spawnar o supervisor faltante."
|
|
1756
|
-
exit 1
|
|
1757
|
-
else
|
|
1758
|
-
echo "GATE D OK: execution-supervisor (${EXEC_OK} entries) + verification-supervisor (${VERIF_OK} entries)"
|
|
1759
|
-
fi
|
|
1760
|
-
```
|
|
1761
|
-
|
|
1762
|
-
**Se GATE D falhou:** Identificar qual supervisor faltou e spawnar. NAO avançar para E2E.
|
|
1763
|
-
|
|
1764
|
-
#### 3.1.5 Teste E2E da Fase (Playwright) (PASSO 7)
|
|
1765
|
-
|
|
1766
|
-
**Executar APENAS se a fase tem UI/rotas** (pular para fases de infra, schema, config).
|
|
1767
|
-
|
|
1768
|
-
Detecao: Se PLANs da fase criam/modificam arquivos em `app/`, `pages/`, `src/components/`, `src/features/` ou arquivos `page.tsx`/`route.ts` → tem UI, testar.
|
|
1769
|
-
|
|
1770
|
-
**Referencia:** `@~/.claude/up/workflows/builder-e2e.md` — Passo 3 (Teste por Fase)
|
|
1771
|
-
|
|
1772
|
-
1. Subir dev server (se ainda nao esta rodando):
|
|
1773
|
-
```bash
|
|
1774
|
-
# Detectar e subir — ver builder-e2e.md Passo 1
|
|
1775
|
-
# Manter rodando entre fases (nao matar apos cada fase)
|
|
1776
|
-
```
|
|
1777
|
-
|
|
1778
|
-
2. Extrair must_haves da fase e traduzir em testes E2E
|
|
1779
|
-
|
|
1780
|
-
3. Para cada teste:
|
|
1781
|
-
- Navegar para rota relevante
|
|
1782
|
-
- `browser_snapshot()` para obter refs dos elementos
|
|
1783
|
-
- Verificar que elementos esperados existem
|
|
1784
|
-
- Interagir (clicar, preencher, submeter) se necessario
|
|
1785
|
-
- `browser_snapshot()` para verificar resultado
|
|
1786
|
-
- `browser_take_screenshot()` como evidencia em `.plano/fases/[fase]/screenshots/`
|
|
1787
|
-
- `browser_console_messages(level: "error")` — checar erros JS
|
|
1788
|
-
- `browser_network_requests()` — checar falhas de API
|
|
1789
|
-
|
|
1790
|
-
4. Se bugs encontrados:
|
|
1791
|
-
- Para cada bug: loop de correcao (max 5 tentativas)
|
|
1792
|
-
- Analisar (screenshot + console + network + codigo)
|
|
1793
|
-
- Se tentativa > 1: analisar por que correcao anterior falhou
|
|
1794
|
-
- Corrigir inline
|
|
1795
|
-
- Commit: `fix(fase-{X}): [descricao] (tentativa N)`
|
|
1796
|
-
- Re-testar o teste que falhou
|
|
1797
|
-
- Se passou: proximo bug. Se falhou: proxima tentativa
|
|
1798
|
-
- Apos 5 tentativas sem sucesso: registrar como nao corrigido
|
|
1799
|
-
|
|
1800
|
-
5. Criar `.plano/fases/[fase]/E2E-RESULTS.md` com resultados
|
|
1801
|
-
|
|
1802
|
-
```
|
|
1803
|
-
Fase {X}: E2E — {passed}/{total} testes passaram [{bugs} bugs, {fixed} corrigidos]
|
|
1804
|
-
```
|
|
1805
|
-
|
|
1806
|
-
**Se nao tem UI:** Pular silenciosamente.
|
|
1807
|
-
**Se dev server falha:** Registrar e pular E2E (nao bloqueia).
|
|
1808
|
-
|
|
1809
|
-
#### 3.1.5.1 Loop DCRV — Detectar, Classificar, Resolver, Verificar (Por Fase)
|
|
1810
|
-
|
|
1811
|
-
**Apos o E2E da fase**, rodar o workflow DCRV completo.
|
|
1812
|
-
|
|
1813
|
-
**Referencia:** `@~/.claude/up/workflows/dcrv.md`
|
|
1814
|
-
|
|
1815
|
-
Executar com parametros:
|
|
1816
|
-
```
|
|
1817
|
-
SCOPE=phase
|
|
1818
|
-
PHASE_DIR={phase_dir}
|
|
1819
|
-
PHASE_NUMBER={phase_number}
|
|
1820
|
-
PORT={porta do dev server}
|
|
1821
|
-
MAX_CYCLES=3
|
|
1822
|
-
MAX_ISSUES_PER_CYCLE=15
|
|
1823
|
-
AUTO_FIX=true
|
|
1824
|
-
REGRESSION=false (smoke test e separado no passo 3.1.5.2)
|
|
1825
|
-
```
|
|
1826
|
-
|
|
1827
|
-
O workflow DCRV cuida de:
|
|
1828
|
-
1. Detectar modo (UI, API, ambos, nenhum)
|
|
1829
|
-
2. Rodar detectores na ordem (Visual → API → Exhaustive)
|
|
1830
|
-
3. Consolidar issue board
|
|
1831
|
-
4. Dispatcher diagnostica e roteia para especialistas
|
|
1832
|
-
5. Especialistas corrigem com commits atomicos
|
|
1833
|
-
6. Re-verificacao das issues corrigidas
|
|
1834
|
-
7. Loop ate resolver ou max ciclos
|
|
1835
|
-
|
|
1836
|
-
Issues pendentes sao salvas em `.plano/issues-carryover/` para o Quality Gate (Estagio 4).
|
|
1837
|
-
|
|
1838
|
-
```
|
|
1839
|
-
Fase {X}: DCRV — {resolved}/{total} issues resolvidas [{pending} pendentes → Quality Gate]
|
|
1840
|
-
```
|
|
1841
|
-
|
|
1842
|
-
#### 3.1.5.2 Smoke Test de Regressao (A partir da Fase 3)
|
|
1843
|
-
|
|
1844
|
-
**A partir da terceira fase**, fazer smoke test rapido das paginas de fases ANTERIORES.
|
|
1845
|
-
Objetivo: detectar regressoes causadas por mudancas em componentes compartilhados.
|
|
1846
|
-
|
|
1847
|
-
**NAO e exaustivo** — apenas:
|
|
1848
|
-
1. Navegar cada rota de fases anteriores
|
|
1849
|
-
2. Verificar que renderiza (nao tela branca, nao 404)
|
|
1850
|
-
3. Screenshot rapido
|
|
1851
|
-
4. Checar console por erros novos
|
|
1852
|
-
|
|
1853
|
-
```
|
|
1854
|
-
Para cada fase anterior com UI:
|
|
1855
|
-
Para cada rota da fase:
|
|
1856
|
-
browser_navigate(url)
|
|
1857
|
-
browser_console_messages(level: "error")
|
|
1858
|
-
Se erro novo detectado → registrar como regressao
|
|
1859
|
-
```
|
|
1860
|
-
|
|
1861
|
-
Se regressao encontrada:
|
|
1862
|
-
- Severidade: HIGH (algo que funcionava quebrou)
|
|
1863
|
-
- Corrigir imediatamente (nao carregar para Quality Gate)
|
|
1864
|
-
- Commit: `fix(fase-{X}): regressao em [pagina] causada por fase {Y}`
|
|
1865
|
-
|
|
1866
|
-
```
|
|
1867
|
-
Smoke test regressao: {N} rotas anteriores | {OK} ok | {REGRESS} regressoes [{FIXED} corrigidas]
|
|
1868
|
-
```
|
|
1869
|
-
|
|
1870
|
-
#### 3.1.6 GOVERNANCE OBRIGATORIA — Chief-Engineer Aprova Fase
|
|
1871
|
-
|
|
1872
|
-
**ESTE PASSO E OBRIGATORIO E NAO PODE SER PULADO.**
|
|
1873
|
-
**Referencia:** `@~/.claude/up/workflows/governance.md`
|
|
1874
|
-
|
|
1875
|
-
Antes de marcar a fase como completa, o chief-engineer DEVE aprovar o trabalho consolidado da fase inteira.
|
|
1876
|
-
|
|
1877
|
-
```python
|
|
1878
|
-
Agent(
|
|
1879
|
-
subagent_type="up-chief-engineer",
|
|
1880
|
-
prompt=f"""
|
|
1881
|
-
Revisar Fase {phase_number} consolidada.
|
|
1882
|
-
|
|
1883
|
-
<governance_compressed>
|
|
1884
|
-
DECISOES: APPROVE | REQUEST_CHANGES | ESCALATE_CEO
|
|
1885
|
-
REWORK (chief → supervisor): max 2 ciclos, depois escala pro CEO
|
|
1886
|
-
|
|
1887
|
-
VERIFICAR:
|
|
1888
|
-
1. Coerencia entre plano, execucao e verificacao
|
|
1889
|
-
2. Drift arquitetural (decisoes que divergem do SYSTEM-DESIGN.md)
|
|
1890
|
-
3. Debito tecnico acumulado (forced approvals)
|
|
1891
|
-
4. Qualidade geral da fase (code review score + verificacao)
|
|
1892
|
-
5. Requisitos da fase atendidos vs REQUIREMENTS.md
|
|
1893
|
-
LOG OBRIGATORIO: .plano/governance/approvals.log
|
|
1894
|
-
</governance_compressed>
|
|
1895
|
-
|
|
1896
|
-
<files_to_read>
|
|
1897
|
-
- {PHASE_DIR}/*-PLAN.md (planos)
|
|
1898
|
-
- {PHASE_DIR}/*-SUMMARY.md (o que foi implementado)
|
|
1899
|
-
- {PHASE_DIR}/*-VERIFICATION.md (resultado da verificacao)
|
|
1900
|
-
- {PHASE_DIR}/CODE-REVIEW.md (se existir)
|
|
1901
|
-
- .plano/governance/approvals.log (decisoes de supervisores)
|
|
1902
|
-
- .plano/governance/technical-debt.log (se existir)
|
|
1903
|
-
- .plano/SYSTEM-DESIGN.md (arquitetura original)
|
|
1904
|
-
- .plano/REQUIREMENTS.md (requisitos)
|
|
1905
|
-
|
|
1906
|
-
Sob demanda apenas:
|
|
1907
|
-
- $HOME/.claude/up/references/governance-rules-compressed.md
|
|
1908
|
-
- $HOME/.claude/up/references/rework-limits-compressed.md
|
|
1909
|
-
</files_to_read>
|
|
1910
|
-
|
|
1911
|
-
Consolidar tudo e decidir: APPROVE | REQUEST_CHANGES | ESCALATE_CEO
|
|
1912
|
-
|
|
1913
|
-
**OUTPUT OBRIGATORIO (fazer ANTES de retornar):**
|
|
1914
|
-
Escrever sua decisao no approvals.log:
|
|
1915
|
-
```bash
|
|
1916
|
-
echo "$(date -u +%Y-%m-%dT%H:%M:%SZ) | phase-{phase_number} | chief-engineer | {DECISAO} | {motivo_resumido}" >> .plano/governance/approvals.log
|
|
1917
|
-
```
|
|
1918
|
-
Sem este log, o GATE E vai bloquear o avanço do builder.
|
|
1919
|
-
"""
|
|
1920
|
-
)
|
|
1921
|
-
```
|
|
1922
|
-
|
|
1923
|
-
**Se APPROVE:** Verificar que approvals.log foi escrito. Prosseguir para GATE E.
|
|
1924
|
-
|
|
1925
|
-
**Se REQUEST_CHANGES:**
|
|
1926
|
-
- Chief identifica area problematica e supervisor responsavel
|
|
1927
|
-
- Re-spawn supervisor correspondente com feedback do chief (max 2 ciclos chief ← supervisor)
|
|
1928
|
-
- Supervisor coordena rework com operacional
|
|
1929
|
-
- Chief re-revisa e loga novamente em approvals.log
|
|
1930
|
-
|
|
1931
|
-
**Se ESCALATE_CEO:**
|
|
1932
|
-
- Spawnar CEO para alertar dono
|
|
1933
|
-
- CEO usa severidade: CRITICO (sempre interrompe) ou IMPORTANTE (registra)
|
|
1934
|
-
|
|
1935
|
-
#### --- GATE E: Verificar TODA governanca antes de marcar completa ---
|
|
1936
|
-
|
|
1937
|
-
**EXECUTAR OBRIGATORIAMENTE — este e o gate FINAL da fase:**
|
|
1938
|
-
|
|
1939
|
-
```bash
|
|
1940
|
-
echo "=== GATE E: Verificacao FINAL de governanca (Fase ${PHASE_NUMBER}) ==="
|
|
1941
|
-
echo ""
|
|
1942
|
-
|
|
1943
|
-
# Verificar 3 entries obrigatorias no approvals.log
|
|
1944
|
-
EXEC_OK=$(grep -c "phase-${PHASE_NUMBER}.*execution-supervisor" .plano/governance/approvals.log 2>/dev/null)
|
|
1945
|
-
VERIF_OK=$(grep -c "phase-${PHASE_NUMBER}.*verification-supervisor" .plano/governance/approvals.log 2>/dev/null)
|
|
1946
|
-
CHIEF_OK=$(grep -c "phase-${PHASE_NUMBER}.*chief-engineer" .plano/governance/approvals.log 2>/dev/null)
|
|
1947
|
-
|
|
1948
|
-
# Verificar artefatos obrigatorios
|
|
1949
|
-
SUMMARY_OK=$(ls ${PHASE_DIR}/*-SUMMARY.md 2>/dev/null | wc -l)
|
|
1950
|
-
VERIF_FILE_OK=$(ls ${PHASE_DIR}/*-VERIFICATION.md 2>/dev/null | wc -l)
|
|
1951
|
-
|
|
1952
|
-
PASS=true
|
|
1953
|
-
|
|
1954
|
-
[ "$SUMMARY_OK" -eq 0 ] && echo "FALHA: Sem SUMMARY.md" && PASS=false
|
|
1955
|
-
[ "$VERIF_FILE_OK" -eq 0 ] && echo "FALHA: Sem VERIFICATION.md" && PASS=false
|
|
1956
|
-
[ "$EXEC_OK" -eq 0 ] && echo "FALHA: execution-supervisor NAO rodou" && PASS=false
|
|
1957
|
-
[ "$VERIF_OK" -eq 0 ] && echo "FALHA: verification-supervisor NAO rodou" && PASS=false
|
|
1958
|
-
[ "$CHIEF_OK" -eq 0 ] && echo "FALHA: chief-engineer NAO rodou" && PASS=false
|
|
1959
|
-
|
|
1960
|
-
if [ "$PASS" = false ]; then
|
|
1961
|
-
echo ""
|
|
1962
|
-
echo "GATE E FALHOU: Fase ${PHASE_NUMBER} NAO pode ser marcada como completa."
|
|
1963
|
-
echo "Voltar e executar os passos faltantes."
|
|
1964
|
-
echo ""
|
|
1965
|
-
echo "Checklist obrigatorio:"
|
|
1966
|
-
echo " [$([ $SUMMARY_OK -gt 0 ] && echo 'x' || echo ' ')] SUMMARY.md existe"
|
|
1967
|
-
echo " [$([ $EXEC_OK -gt 0 ] && echo 'x' || echo ' ')] execution-supervisor logou"
|
|
1968
|
-
echo " [$([ $VERIF_FILE_OK -gt 0 ] && echo 'x' || echo ' ')] VERIFICATION.md existe"
|
|
1969
|
-
echo " [$([ $VERIF_OK -gt 0 ] && echo 'x' || echo ' ')] verification-supervisor logou"
|
|
1970
|
-
echo " [$([ $CHIEF_OK -gt 0 ] && echo 'x' || echo ' ')] chief-engineer logou"
|
|
1971
|
-
exit 1
|
|
1972
|
-
else
|
|
1973
|
-
echo "GATE E OK: Todos 5 checks passaram. Fase pode ser marcada como completa."
|
|
1974
|
-
fi
|
|
1975
|
-
```
|
|
1976
|
-
|
|
1977
|
-
**Se GATE E falhou:** PARAR. Ler o checklist e executar os passos faltantes. NAO marcar fase como completa sem todos os 5 checks.
|
|
1978
|
-
|
|
1979
|
-
#### 3.1.6.1 Marcar Fase Completa (PASSO 9)
|
|
1980
|
-
|
|
1981
|
-
**So atingir este passo apos GATE E passar (todos 5 checks OK).**
|
|
1982
|
-
|
|
1983
|
-
```bash
|
|
1984
|
-
COMPLETION=$(node "$HOME/.claude/up/bin/up-tools.cjs" phase complete "${PHASE_NUMBER}")
|
|
1985
|
-
```
|
|
1986
|
-
|
|
1987
|
-
```bash
|
|
1988
|
-
node "$HOME/.claude/up/bin/up-tools.cjs" commit "docs(fase-{X}): completar execucao" --files .plano/ROADMAP.md .plano/STATE.md .plano/REQUIREMENTS.md
|
|
1989
|
-
```
|
|
1990
|
-
|
|
1991
|
-
```
|
|
1992
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1993
|
-
BUILDER > FASE {X}/{TOTAL} COMPLETA ✓
|
|
1994
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1995
|
-
```
|
|
1996
|
-
|
|
1997
|
-
#### 3.1.7 Reassessment (Re-avaliacao do Roadmap)
|
|
1998
|
-
|
|
1999
|
-
Apos cada fase completa, verificar se o roadmap ainda faz sentido ANTES de planejar a proxima.
|
|
2000
|
-
|
|
2001
|
-
**Quando fazer reassessment:**
|
|
2002
|
-
- SEMPRE apos completar uma fase (rapido, ~30 segundos)
|
|
2003
|
-
- NAO requer agente separado — o orquestrador faz inline
|
|
2004
|
-
|
|
2005
|
-
**Processo:**
|
|
2006
|
-
|
|
2007
|
-
1. Ler ROADMAP.md (fases futuras) e SUMMARYs da fase recem-completa
|
|
2008
|
-
2. Verificar 3 coisas:
|
|
2009
|
-
|
|
2010
|
-
**a) Fases futuras ainda sao necessarias?**
|
|
2011
|
-
- A fase recem-completa pode ter resolvido algo que uma fase futura faria
|
|
2012
|
-
- Ex: Fase 3 (auth) pode ter adicionado RBAC que Fase 6 (permissoes) planejava
|
|
2013
|
-
- Se sim: marcar fase futura como "Removida (coberta pela Fase X)" no ROADMAP
|
|
2014
|
-
|
|
2015
|
-
**b) Fases futuras precisam de ajuste?**
|
|
2016
|
-
- Decisoes arquiteturais da fase atual podem mudar o escopo de fases futuras
|
|
2017
|
-
- Ex: Escolheu tRPC ao inves de REST — fases de API precisam refletir isso
|
|
2018
|
-
- Se sim: atualizar objetivo/criterios da fase futura no ROADMAP
|
|
2019
|
-
|
|
2020
|
-
**c) Surgiram necessidades novas?**
|
|
2021
|
-
- Ler `.plano/captures/` para insights capturados durante a fase
|
|
2022
|
-
- Se algum insight e CRITICO (bloqueia fases futuras): adicionar nova fase
|
|
2023
|
-
- Se e melhoria: ignorar (sera coberto pelo estagio Polish)
|
|
2024
|
-
|
|
2025
|
-
3. Se houve mudancas no roadmap:
|
|
2026
|
-
|
|
2027
|
-
```bash
|
|
2028
|
-
node "$HOME/.claude/up/bin/up-tools.cjs" commit "docs: reassessment apos fase {X}" --files .plano/ROADMAP.md
|
|
2029
|
-
```
|
|
2030
|
-
|
|
2031
|
-
```
|
|
2032
|
-
Reassessment: [sem mudancas | X fases ajustadas | Y fases removidas | Z fases adicionadas]
|
|
2033
|
-
```
|
|
2034
|
-
|
|
2035
|
-
**Se NAO houve mudancas:** Seguir silenciosamente (1 linha de log apenas).
|
|
2036
|
-
|
|
2037
|
-
#### 3.1.8 Avancar para Proxima Fase
|
|
2038
|
-
|
|
2039
|
-
Voltar para 3.1.1 com a proxima fase. Sem /clear — continuar no mesmo contexto.
|
|
2040
|
-
|
|
2041
|
-
**Gestao de contexto:** Se o contexto estiver acima de ~60%, fazer um checkpoint:
|
|
2042
|
-
- Salvar estado atual em STATE.md
|
|
2043
|
-
- Registrar fase atual e status
|
|
2044
|
-
- Continuar (com 1M de contexto, a maioria dos projetos cabe)
|
|
2045
|
-
|
|
2046
|
-
---
|
|
2047
|
-
|
|
2048
|
-
## Estagio 4: QUALITY GATE LOOP (Autonomo)
|
|
2049
|
-
|
|
2050
|
-
Executado APOS todas as fases do build completarem.
|
|
2051
|
-
Ciclo de avaliacao → correcao → re-avaliacao ate atingir score >= 9.0/10.
|
|
2052
|
-
|
|
2053
|
-
**Score Composto (9 dimensoes):**
|
|
2054
|
-
|
|
2055
|
-
| Dimensao | Peso | Como mede |
|
|
2056
|
-
|----------|------|-----------|
|
|
2057
|
-
| Funcionalidade | 15% | Requisitos atendidos / total (REQUIREMENTS.md) |
|
|
2058
|
-
| Blind Validation | 15% | Score do BLIND-VALIDATION.md |
|
|
2059
|
-
| Visual Quality | 12% | Score do up-visual-critic (VISUAL-REPORT.md) |
|
|
2060
|
-
| Exhaustive | 10% | Pass rate do up-exhaustive-tester (EXHAUSTIVE-REPORT.md) |
|
|
2061
|
-
| API Robustez | 8% | Pass rate do up-api-tester (API-REPORT.md) |
|
|
2062
|
-
| E2E | 10% | Testes passando / total (Playwright) |
|
|
2063
|
-
| UX | 10% | Score do UX tester (6 sub-dimensoes) |
|
|
2064
|
-
| Responsividade | 10% | Score do mobile-first |
|
|
2065
|
-
| Codigo | 10% | Score do code reviewer + melhorias |
|
|
2066
|
-
|
|
2067
|
-
**Nota:** Se projeto nao tem UI, redistribuir pesos de Visual/Exhaustive/UX/Responsividade para API/Funcionalidade/Codigo.
|
|
2068
|
-
**Nota:** Se projeto nao tem API, redistribuir peso de API para outros.
|
|
2069
|
-
|
|
2070
|
-
**Limites de seguranca:**
|
|
2071
|
-
- Max 5 ciclos de refinamento
|
|
2072
|
-
- Se ciclo melhorou < 0.3 pontos: parar (diminishing returns)
|
|
2073
|
-
- Nunca entregar abaixo de 7.0 (se ta abaixo, tem bug grave)
|
|
2074
|
-
- Meta: score >= 9.0
|
|
2075
|
-
|
|
2076
|
-
### 4.0 Iniciar Quality Gate
|
|
2077
|
-
|
|
2078
|
-
```
|
|
2079
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
2080
|
-
BUILDER > QUALITY GATE — CICLO 1
|
|
2081
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
2082
|
-
```
|
|
2083
|
-
|
|
2084
|
-
Definir `$CYCLE = 1`, `$PREVIOUS_SCORE = 0`.
|
|
2085
|
-
|
|
2086
|
-
### 4.1 Rodar Avaliadores (Todos em Paralelo)
|
|
2087
|
-
|
|
2088
|
-
**4.1a Melhorias de Codigo** (3 auditores paralelos → sintetizador)
|
|
2089
|
-
|
|
2090
|
-
Mesmo processo existente: spawnar up-auditor-ux, up-auditor-performance, up-auditor-modernidade em paralelo, depois up-sintetizador-melhorias.
|
|
2091
|
-
|
|
2092
|
-
### 4.1 Rodar Melhorias
|
|
2093
|
-
|
|
2094
|
-
```
|
|
2095
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
2096
|
-
BUILDER > POLIMENTO — AUDITORIA
|
|
2097
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
2098
|
-
```
|
|
2099
|
-
|
|
2100
|
-
```bash
|
|
2101
|
-
mkdir -p .plano/melhorias
|
|
2102
|
-
```
|
|
2103
|
-
|
|
2104
|
-
Spawnar 3 auditores em paralelo (mesmo processo do melhorias.md):
|
|
2105
|
-
|
|
2106
|
-
```
|
|
2107
|
-
Task(subagent_type="up-auditor-ux", prompt="
|
|
2108
|
-
<objective>
|
|
2109
|
-
Executar auditoria completa de UX/usabilidade do codebase deste projeto.
|
|
2110
|
-
Salvar resultado em .plano/melhorias/ux-sugestoes.md
|
|
2111
|
-
</objective>
|
|
2112
|
-
<files_to_read>
|
|
2113
|
-
- ./CLAUDE.md (se existir)
|
|
2114
|
-
</files_to_read>
|
|
2115
|
-
<constraints>
|
|
2116
|
-
- Carregar reference: $HOME/.claude/up/references/audit-ux.md
|
|
2117
|
-
- Carregar template: $HOME/.claude/up/templates/suggestion.md
|
|
2118
|
-
- Salvar resultado em .plano/melhorias/ux-sugestoes.md
|
|
2119
|
-
- Retornar resumo: ## AUDITORIA UX COMPLETA
|
|
2120
|
-
</constraints>
|
|
2121
|
-
", description="Auditoria UX")
|
|
2122
|
-
|
|
2123
|
-
Task(subagent_type="up-auditor-performance", prompt="
|
|
2124
|
-
<objective>
|
|
2125
|
-
Executar auditoria completa de performance do codebase deste projeto.
|
|
2126
|
-
Salvar resultado em .plano/melhorias/performance-sugestoes.md
|
|
2127
|
-
</objective>
|
|
2128
|
-
<files_to_read>
|
|
2129
|
-
- ./CLAUDE.md (se existir)
|
|
2130
|
-
</files_to_read>
|
|
2131
|
-
<constraints>
|
|
2132
|
-
- Carregar reference: $HOME/.claude/up/references/audit-performance.md
|
|
2133
|
-
- Carregar template: $HOME/.claude/up/templates/suggestion.md
|
|
2134
|
-
- Salvar resultado em .plano/melhorias/performance-sugestoes.md
|
|
2135
|
-
- Retornar resumo: ## AUDITORIA PERFORMANCE COMPLETA
|
|
2136
|
-
</constraints>
|
|
2137
|
-
", description="Auditoria Performance")
|
|
2138
|
-
|
|
2139
|
-
Task(subagent_type="up-auditor-modernidade", prompt="
|
|
2140
|
-
<objective>
|
|
2141
|
-
Executar auditoria completa de modernidade do codebase deste projeto.
|
|
2142
|
-
Salvar resultado em .plano/melhorias/modernidade-sugestoes.md
|
|
2143
|
-
</objective>
|
|
2144
|
-
<files_to_read>
|
|
2145
|
-
- ./CLAUDE.md (se existir)
|
|
2146
|
-
</files_to_read>
|
|
2147
|
-
<constraints>
|
|
2148
|
-
- Carregar reference: $HOME/.claude/up/references/audit-modernidade.md
|
|
2149
|
-
- Carregar template: $HOME/.claude/up/templates/suggestion.md
|
|
2150
|
-
- Salvar resultado em .plano/melhorias/modernidade-sugestoes.md
|
|
2151
|
-
- Retornar resumo: ## AUDITORIA MODERNIDADE COMPLETA
|
|
2152
|
-
</constraints>
|
|
2153
|
-
", description="Auditoria Modernidade")
|
|
2154
|
-
```
|
|
2155
|
-
|
|
2156
|
-
Apos os 3 retornarem, spawnar sintetizador:
|
|
2157
|
-
|
|
2158
|
-
```
|
|
2159
|
-
Task(subagent_type="up-sintetizador-melhorias", prompt="
|
|
2160
|
-
<objective>
|
|
2161
|
-
Sintetizar sugestoes dos 3 auditores em relatorio consolidado.
|
|
2162
|
-
Salvar em .plano/melhorias/RELATORIO.md
|
|
2163
|
-
</objective>
|
|
2164
|
-
<files_to_read>
|
|
2165
|
-
- .plano/melhorias/ux-sugestoes.md
|
|
2166
|
-
- .plano/melhorias/performance-sugestoes.md
|
|
2167
|
-
- .plano/melhorias/modernidade-sugestoes.md
|
|
2168
|
-
- ./CLAUDE.md (se existir)
|
|
2169
|
-
</files_to_read>
|
|
2170
|
-
<constraints>
|
|
2171
|
-
- Carregar template: $HOME/.claude/up/templates/report.md
|
|
2172
|
-
- Carregar template: $HOME/.claude/up/templates/suggestion.md
|
|
2173
|
-
- Deduplicar, detectar conflitos, classificar em 4 quadrantes
|
|
2174
|
-
- Retornar resumo: ## SINTESE DE MELHORIAS COMPLETA
|
|
2175
|
-
</constraints>
|
|
2176
|
-
", description="Sintetizar melhorias")
|
|
2177
|
-
```
|
|
2178
|
-
|
|
2179
|
-
### 4.2 Aplicar Quick Wins
|
|
2180
|
-
|
|
2181
|
-
Ler `.plano/melhorias/RELATORIO.md` e extrair sugestoes do quadrante "Quick Wins" (alto impacto, baixo esforco).
|
|
2182
|
-
|
|
2183
|
-
**Filtro:** Aplicar apenas Quick Wins com impacto >= "Grande" ou "Medio".
|
|
2184
|
-
|
|
2185
|
-
Se ha Quick Wins para aplicar:
|
|
2186
|
-
|
|
2187
|
-
1. Gerar fases a partir do relatorio:
|
|
2188
|
-
```bash
|
|
2189
|
-
echo '{"source":"melhorias","report_path":".plano/melhorias/RELATORIO.md","approved_ids":["MELH-001","MELH-003"],"grouping":"auto"}' | node "$HOME/.claude/up/bin/up-tools.cjs" phase generate-from-report
|
|
2190
|
-
```
|
|
2191
|
-
|
|
2192
|
-
2. Para cada fase gerada de melhoria:
|
|
2193
|
-
- Planejar (up-planejador com builder_mode)
|
|
2194
|
-
- Executar (up-executor com builder_mode)
|
|
2195
|
-
- Verificar rapidamente
|
|
2196
|
-
|
|
2197
|
-
3. Commitar melhorias:
|
|
2198
|
-
```bash
|
|
2199
|
-
node "$HOME/.claude/up/bin/up-tools.cjs" commit "polish: aplicar quick wins de melhorias" --files .plano/ROADMAP.md .plano/STATE.md
|
|
2200
|
-
```
|
|
2201
|
-
|
|
2202
|
-
```
|
|
2203
|
-
Melhorias: [N] quick wins aplicadas
|
|
2204
|
-
```
|
|
2205
|
-
|
|
2206
|
-
Se nao ha Quick Wins ou todas tem impacto baixo:
|
|
2207
|
-
```
|
|
2208
|
-
Melhorias: auditoria completa, sem quick wins para aplicar automaticamente
|
|
2209
|
-
Relatorio completo em .plano/melhorias/RELATORIO.md
|
|
2210
|
-
```
|
|
2211
|
-
|
|
2212
|
-
### 4.3 UX Tester (Navegar como Usuario Real)
|
|
2213
|
-
|
|
2214
|
-
**Executar APENAS se o projeto tem UI web.** Pular para CLIs, APIs puras, bibliotecas.
|
|
2215
|
-
|
|
2216
|
-
```
|
|
2217
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
2218
|
-
BUILDER > POLIMENTO — UX REVIEW
|
|
2219
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
2220
|
-
```
|
|
2221
|
-
|
|
2222
|
-
**Referencia:** `@~/.claude/up/workflows/ux-tester.md`
|
|
2223
|
-
|
|
2224
|
-
Executar o workflow completo do UX Tester:
|
|
2225
|
-
|
|
2226
|
-
1. Subir dev server (se nao esta rodando do E2E)
|
|
2227
|
-
2. Descobrir fluxos (de PROJECT.md/REQUIREMENTS.md)
|
|
2228
|
-
3. Definir 2-3 personas
|
|
2229
|
-
4. Navegar cada fluxo como cada persona, avaliando 6 dimensoes:
|
|
2230
|
-
- Clareza, Eficiencia, Feedback, Consistencia, Acessibilidade, Performance
|
|
2231
|
-
5. Gerar `.plano/ux-review/UX-REPORT.md` com issues e scores
|
|
2232
|
-
6. **Implementar TODAS as melhorias seguras automaticamente:**
|
|
2233
|
-
- Textos/copy confusos → reescrever
|
|
2234
|
-
- Feedback ausente → adicionar loading, toasts, hover states
|
|
2235
|
-
- Acessibilidade → alt, labels, aria, focus visible
|
|
2236
|
-
- Espacamento/layout → padding, margin, fontes
|
|
2237
|
-
- Consistencia → unificar estilos, terminologia
|
|
2238
|
-
- Performance simples → lazy loading, debounce, memo
|
|
2239
|
-
7. Commit atomico por melhoria: `ux({area}): {descricao}`
|
|
2240
|
-
8. Screenshots antes/depois para cada melhoria
|
|
2241
|
-
9. Re-navegar para confirmar
|
|
2242
|
-
|
|
2243
|
-
```
|
|
2244
|
-
UX Review: score [N]/10 | [X] issues | [Y] implementadas (incluindo componentes novos e ajustes de fluxo) | [Z] tentativas falhas
|
|
2245
|
-
```
|
|
2246
|
-
|
|
2247
|
-
**Se nao tem UI:** Pular silenciosamente.
|
|
2248
|
-
**Se dev server falha:** Registrar e pular.
|
|
2249
|
-
|
|
2250
|
-
### 4.4 Mobile First (Responsividade)
|
|
2251
|
-
|
|
2252
|
-
**Executar APENAS se o projeto tem UI web.** Pular para CLIs, APIs puras, bibliotecas.
|
|
2253
|
-
|
|
2254
|
-
```
|
|
2255
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
2256
|
-
BUILDER > POLIMENTO — RESPONSIVIDADE
|
|
2257
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
2258
|
-
```
|
|
2259
|
-
|
|
2260
|
-
**Referencia:** `@~/.claude/up/workflows/mobile-first.md`
|
|
2261
|
-
|
|
2262
|
-
Executar o workflow completo do Mobile First:
|
|
2263
|
-
|
|
2264
|
-
1. Detectar stack CSS (Tailwind, CSS Modules, etc.)
|
|
2265
|
-
2. Scan: capturar todas as paginas em mobile (390px), tablet (768px), desktop (1920px)
|
|
2266
|
-
3. Detectar problemas: overflow, texto pequeno, alvos de toque, grid quebrado
|
|
2267
|
-
4. Para cada problema:
|
|
2268
|
-
- Capturar referencia desktop
|
|
2269
|
-
- Corrigir com classes responsivas / media queries
|
|
2270
|
-
- Verificar mobile melhorou
|
|
2271
|
-
- Verificar desktop INTACTO (se mudou: reverter, tentar outra abordagem)
|
|
2272
|
-
- Commit atomico
|
|
2273
|
-
5. Gerar `.plano/mobile-review/MOBILE-REPORT.md`
|
|
2274
|
-
|
|
2275
|
-
```
|
|
2276
|
-
Mobile First: score [N]/10 | [X] problemas | [Y] corrigidos | desktop intacto
|
|
2277
|
-
```
|
|
2278
|
-
|
|
2279
|
-
**Se nao tem UI:** Pular silenciosamente.
|
|
2280
|
-
**Se dev server falha:** Registrar e pular.
|
|
2281
|
-
|
|
2282
|
-
### 4.5 Rodar Ideias
|
|
2283
|
-
|
|
2284
|
-
```
|
|
2285
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
2286
|
-
BUILDER > POLIMENTO — IDEIAS
|
|
2287
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
2288
|
-
```
|
|
2289
|
-
|
|
2290
|
-
```bash
|
|
2291
|
-
mkdir -p .plano/ideias
|
|
2292
|
-
```
|
|
2293
|
-
|
|
2294
|
-
Spawnar 2 agentes em paralelo:
|
|
2295
|
-
|
|
2296
|
-
```
|
|
2297
|
-
Task(subagent_type="up-analista-codigo", prompt="
|
|
2298
|
-
<objective>
|
|
2299
|
-
Analisar codebase para identificar gaps funcionais e oportunidades de features novas.
|
|
2300
|
-
Salvar em .plano/ideias/codigo-sugestoes.md
|
|
2301
|
-
</objective>
|
|
2302
|
-
<files_to_read>
|
|
2303
|
-
- ./CLAUDE.md (se existir)
|
|
2304
|
-
- .plano/PROJECT.md
|
|
2305
|
-
</files_to_read>
|
|
2306
|
-
", description="Analise de codigo para ideias")
|
|
2307
|
-
|
|
2308
|
-
Task(subagent_type="up-pesquisador-mercado", prompt="
|
|
2309
|
-
<objective>
|
|
2310
|
-
Pesquisar concorrentes e tendencias de mercado para sugerir features novas.
|
|
2311
|
-
Salvar em .plano/ideias/mercado-sugestoes.md
|
|
2312
|
-
</objective>
|
|
2313
|
-
<files_to_read>
|
|
2314
|
-
- .plano/PROJECT.md
|
|
2315
|
-
</files_to_read>
|
|
2316
|
-
", description="Pesquisa de mercado para ideias")
|
|
2317
|
-
```
|
|
2318
|
-
|
|
2319
|
-
Apos os 2 retornarem, spawnar consolidador:
|
|
2320
|
-
|
|
2321
|
-
```
|
|
2322
|
-
Task(subagent_type="up-consolidador-ideias", prompt="
|
|
2323
|
-
<objective>
|
|
2324
|
-
Consolidar sugestoes de features. Aplicar ICE scoring, gerar anti-features.
|
|
2325
|
-
Salvar em .plano/ideias/RELATORIO.md
|
|
2326
|
-
</objective>
|
|
2327
|
-
<files_to_read>
|
|
2328
|
-
- .plano/ideias/codigo-sugestoes.md
|
|
2329
|
-
- .plano/ideias/mercado-sugestoes.md
|
|
2330
|
-
- .plano/PROJECT.md
|
|
2331
|
-
</files_to_read>
|
|
2332
|
-
", description="Consolidar ideias com ICE scoring")
|
|
2333
|
-
```
|
|
2334
|
-
|
|
2335
|
-
**NAO implementar ideias.** Apenas salvar o relatorio.
|
|
2336
|
-
|
|
2337
|
-
```
|
|
2338
|
-
Ideias: [N] sugestoes geradas com ICE scoring
|
|
2339
|
-
Relatorio em .plano/ideias/RELATORIO.md
|
|
2340
|
-
```
|
|
2341
|
-
|
|
2342
|
-
### 4.6 Blind Validation (Testar como Usuario Final)
|
|
2343
|
-
|
|
2344
|
-
**Validar requisitos SEM ler codigo — apenas navegando o app.**
|
|
2345
|
-
|
|
2346
|
-
```
|
|
2347
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
2348
|
-
QUALITY GATE — BLIND VALIDATION
|
|
2349
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
2350
|
-
```
|
|
2351
|
-
|
|
2352
|
-
```
|
|
2353
|
-
Task(
|
|
2354
|
-
subagent_type="up-blind-validator",
|
|
2355
|
-
,
|
|
2356
|
-
prompt="
|
|
2357
|
-
<objective>
|
|
2358
|
-
Validar requisitos SEM ler codigo. Apenas navegar o app via Playwright e curl.
|
|
2359
|
-
Testar cada requisito como usuario final: renderiza? funciona? feedback existe?
|
|
2360
|
-
</objective>
|
|
2361
|
-
|
|
2362
|
-
<files_to_read>
|
|
2363
|
-
- .plano/REQUIREMENTS.md (UNICO doc de especificacao)
|
|
2364
|
-
- .plano/PROJECT.md (contexto do produto)
|
|
2365
|
-
</files_to_read>
|
|
2366
|
-
|
|
2367
|
-
<constraints>
|
|
2368
|
-
- NAO ler arquivos de codigo (.ts, .tsx, .py, .css)
|
|
2369
|
-
- NAO ler SUMMARYs, PLANs, ARCHITECTURE
|
|
2370
|
-
- APENAS navegar o app e testar como usuario
|
|
2371
|
-
- Gerar BLIND-VALIDATION.md com screenshots
|
|
2372
|
-
</constraints>
|
|
2373
|
-
",
|
|
2374
|
-
description="Blind Validation — testar como usuario final"
|
|
2375
|
-
)
|
|
2376
|
-
```
|
|
2377
|
-
|
|
2378
|
-
```
|
|
2379
|
-
Blind Validation: {score}% | {passed} PASS | {failed} FAIL | {partial} PARTIAL
|
|
2380
|
-
```
|
|
2381
|
-
|
|
2382
|
-
### 4.7 Calcular Score Composto
|
|
2383
|
-
|
|
2384
|
-
Agregar scores de todos os avaliadores:
|
|
2385
|
-
|
|
2386
|
-
```
|
|
2387
|
-
Funcionalidade (15%): requisitos [x] / total no REQUIREMENTS.md → 0-10
|
|
2388
|
-
Blind Valid. (15%): score do BLIND-VALIDATION.md → 0-10
|
|
2389
|
-
Visual (12%): score do VISUAL-REPORT.md → 0-10
|
|
2390
|
-
Exhaustive (10%): pass rate do EXHAUSTIVE-REPORT.md → 0-10
|
|
2391
|
-
API (8%): pass rate do API-REPORT.md → 0-10
|
|
2392
|
-
E2E (10%): testes passaram / total no E2E mais recente → 0-10
|
|
2393
|
-
UX (10%): score do UX-REPORT.md → 0-10
|
|
2394
|
-
Responsividade (10%): score do MOBILE-REPORT.md → 0-10
|
|
2395
|
-
Codigo (10%): score do CODE-REVIEW + melhorias → 0-10
|
|
2396
|
-
|
|
2397
|
-
**Modo normal:**
|
|
2398
|
-
Score = (func × 0.15) + (blind × 0.15) + (visual × 0.12) + (exhaustive × 0.10) + (api × 0.08) + (e2e × 0.10) + (ux × 0.10) + (resp × 0.10) + (cod × 0.10)
|
|
2399
|
-
|
|
2400
|
-
**Modo clone (builder_type: "clone"):**
|
|
2401
|
-
Score = (func × 0.10) + (fidelidade × 0.15) + (blind × 0.10) + (visual × 0.15) + (exhaustive × 0.10) + (api × 0.05) + (e2e × 0.10) + (ux × 0.05) + (resp × 0.10) + (cod × 0.10)
|
|
2402
|
-
|
|
2403
|
-
A dimensao "Fidelidade" usa o up-clone-verifier: compara features (funcional) + visual contra original.
|
|
2404
|
-
```
|
|
2405
|
-
|
|
2406
|
-
**Se algum avaliador nao rodou** (ex: sem UI, sem E2E, sem API): redistribuir peso proporcionalmente entre os que rodaram.
|
|
2407
|
-
|
|
2408
|
-
**Issues Carryover das Fases:**
|
|
2409
|
-
|
|
2410
|
-
Antes de iniciar o Quality Gate, carregar issues pendentes do loop DCRV por fase:
|
|
2411
|
-
```bash
|
|
2412
|
-
ls .plano/issues-carryover/*.json 2>/dev/null
|
|
2413
|
-
```
|
|
2414
|
-
Estas issues ja foram detectadas e tentadas — se ainda existem, sao as mais dificeis.
|
|
2415
|
-
Incluir no board de issues do Quality Gate com flag `carryover: true`.
|
|
2416
|
-
|
|
2417
|
-
```
|
|
2418
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
2419
|
-
QUALITY GATE — CICLO {CYCLE} — SCORE: {SCORE}/10
|
|
2420
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
2421
|
-
|
|
2422
|
-
| Dimensao | Score | Peso | Contribuicao |
|
|
2423
|
-
|----------|-------|------|-------------|
|
|
2424
|
-
| Funcionalidade | [N]/10 | 15% | [X] |
|
|
2425
|
-
| Blind Validation | [N]/10 | 15% | [X] |
|
|
2426
|
-
| Visual Quality | [N]/10 | 12% | [X] |
|
|
2427
|
-
| Exhaustive | [N]/10 | 10% | [X] |
|
|
2428
|
-
| API Robustez | [N]/10 | 8% | [X] |
|
|
2429
|
-
| E2E | [N]/10 | 10% | [X] |
|
|
2430
|
-
| UX | [N]/10 | 10% | [X] |
|
|
2431
|
-
| Responsividade | [N]/10 | 10% | [X] |
|
|
2432
|
-
| Codigo | [N]/10 | 10% | [X] |
|
|
2433
|
-
| **TOTAL** | **[SCORE]/10** | | |
|
|
2434
|
-
```
|
|
2435
|
-
|
|
2436
|
-
### 4.8 Decidir: Continuar ou Entregar
|
|
2437
|
-
|
|
2438
|
-
**Se score >= 9.0:** Ir para Estagio 5 (Entrega). Sistema pronto.
|
|
2439
|
-
|
|
2440
|
-
**Se score < 9.0 E cycle < 5 E (score - previous_score) >= 0.3:**
|
|
2441
|
-
|
|
2442
|
-
```
|
|
2443
|
-
Score {SCORE} < 9.0 — identificando gaps para correcao...
|
|
2444
|
-
```
|
|
2445
|
-
|
|
2446
|
-
Identificar top gaps (dimensoes com menor score):
|
|
2447
|
-
1. Ordenar dimensoes por score (menor primeiro)
|
|
2448
|
-
2. Para cada dimensao abaixo de 9.0:
|
|
2449
|
-
- Ler relatorio correspondente
|
|
2450
|
-
- Extrair issues nao corrigidas / requisitos pendentes
|
|
2451
|
-
- Priorizar por impacto no score
|
|
2452
|
-
|
|
2453
|
-
**Rodar 3 detectores no projeto INTEIRO (nao apenas por fase):**
|
|
2454
|
-
|
|
2455
|
-
Ordem: Visual Critic → API Tester → Exhaustive Tester
|
|
2456
|
-
|
|
2457
|
-
Cada detector roda em TODAS as paginas/rotas, detectando:
|
|
2458
|
-
- Issues novas (nao encontradas no DCRV por fase)
|
|
2459
|
-
- Regressoes cross-fase (inconsistencia entre paginas de fases diferentes)
|
|
2460
|
-
- Issues carryover (pendentes das fases) — re-verificar se ainda existem
|
|
2461
|
-
|
|
2462
|
-
**Implementar correcoes via Dispatcher (mesmo protocolo do DCRV por fase):**
|
|
2463
|
-
- Issues visuais (VIS-*): diagnosticar → up-frontend-specialist
|
|
2464
|
-
- Issues de interacao (INT-*): diagnosticar → up-frontend-specialist ou up-backend-specialist
|
|
2465
|
-
- Issues de API (API-*): diagnosticar → up-backend-specialist ou up-database-specialist
|
|
2466
|
-
- Issues de codigo: planejar mini-fase → executar → commit
|
|
2467
|
-
- Issues de UX: aplicar fixes (mesmo processo do UX tester)
|
|
2468
|
-
- Issues de responsividade: aplicar fixes (mesmo processo do mobile-first)
|
|
2469
|
-
- Requisitos pendentes: planejar mini-fase → executar
|
|
2470
|
-
- Issues de E2E: corrigir bugs (max 5 tentativas)
|
|
2471
|
-
|
|
2472
|
-
**Cap de issues por ciclo: max 20** (mais generoso que o DCRV por fase).
|
|
2473
|
-
Prioridade: critical > high > medium. Low nunca entra.
|
|
2474
|
-
|
|
2475
|
-
Apos implementar:
|
|
2476
|
-
|
|
2477
|
-
```
|
|
2478
|
-
$PREVIOUS_SCORE = $SCORE
|
|
2479
|
-
$CYCLE += 1
|
|
2480
|
-
```
|
|
2481
|
-
|
|
2482
|
-
**Voltar para 4.1** (re-rodar avaliadores no proximo ciclo).
|
|
2483
|
-
|
|
2484
|
-
**Se cycle >= 5:** Entregar com score atual.
|
|
2485
|
-
```
|
|
2486
|
-
Quality Gate: max ciclos atingido. Entregando com score {SCORE}/10.
|
|
2487
|
-
```
|
|
2488
|
-
|
|
2489
|
-
**Se (score - previous_score) < 0.3:** Diminishing returns. Entregar.
|
|
2490
|
-
```
|
|
2491
|
-
Quality Gate: melhoria < 0.3 pontos. Entregando com score {SCORE}/10.
|
|
2492
|
-
```
|
|
2493
|
-
|
|
2494
|
-
### 4.9 DevOps — Artefatos de Producao
|
|
2495
|
-
|
|
2496
|
-
```
|
|
2497
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
2498
|
-
BUILDER > PRODUCTION ARTIFACTS
|
|
2499
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
2500
|
-
```
|
|
2501
|
-
|
|
2502
|
-
Spawnar devops agent:
|
|
2503
|
-
|
|
2504
|
-
```
|
|
2505
|
-
Task(
|
|
2506
|
-
subagent_type="up-devops-agent",
|
|
2507
|
-
,
|
|
2508
|
-
prompt="
|
|
2509
|
-
<objective>
|
|
2510
|
-
Gerar artefatos de producao para o projeto: Dockerfile, docker-compose, CI/CD, .env.example, seed data, scripts.
|
|
2511
|
-
</objective>
|
|
2512
|
-
|
|
2513
|
-
<files_to_read>
|
|
2514
|
-
- .plano/PROJECT.md
|
|
2515
|
-
- .plano/SYSTEM-DESIGN.md (schema, integracoes)
|
|
2516
|
-
- ./package.json
|
|
2517
|
-
- ./CLAUDE.md (se existir)
|
|
2518
|
-
</files_to_read>
|
|
2519
|
-
|
|
2520
|
-
<builder_mode>
|
|
2521
|
-
Modo builder. NAO pergunte nada. Gere tudo autonomamente.
|
|
2522
|
-
Adapte ao stack real do projeto.
|
|
2523
|
-
</builder_mode>
|
|
2524
|
-
",
|
|
2525
|
-
description="Gerar artefatos de producao"
|
|
2526
|
-
)
|
|
2527
|
-
```
|
|
2528
|
-
|
|
2529
|
-
```
|
|
2530
|
-
DevOps: Dockerfile + docker-compose + CI/CD + .env.example + seed data
|
|
2531
|
-
```
|
|
2532
|
-
|
|
2533
|
-
### 4.10 Technical Writer — Documentacao
|
|
2534
|
-
|
|
2535
|
-
```
|
|
2536
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
2537
|
-
BUILDER > DOCUMENTACAO
|
|
2538
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
2539
|
-
```
|
|
2540
|
-
|
|
2541
|
-
Spawnar technical writer:
|
|
2542
|
-
|
|
2543
|
-
```
|
|
2544
|
-
Task(
|
|
2545
|
-
subagent_type="up-technical-writer",
|
|
2546
|
-
,
|
|
2547
|
-
prompt="
|
|
2548
|
-
<objective>
|
|
2549
|
-
Gerar documentacao completa: README.md, API docs, CHANGELOG.md, setup guide.
|
|
2550
|
-
Documentacao com conteudo REAL do projeto (nao placeholders).
|
|
2551
|
-
</objective>
|
|
2552
|
-
|
|
2553
|
-
<files_to_read>
|
|
2554
|
-
- .plano/PROJECT.md
|
|
2555
|
-
- .plano/REQUIREMENTS.md
|
|
2556
|
-
- .plano/SYSTEM-DESIGN.md
|
|
2557
|
-
- .plano/PRODUCT-ANALYSIS.md
|
|
2558
|
-
- ./package.json
|
|
2559
|
-
- ./CLAUDE.md (se existir)
|
|
2560
|
-
</files_to_read>
|
|
2561
|
-
|
|
2562
|
-
<builder_mode>
|
|
2563
|
-
Modo builder. NAO pergunte nada. Gere documentacao autonomamente.
|
|
2564
|
-
README deve ter instrucoes de setup que FUNCIONAM.
|
|
2565
|
-
</builder_mode>
|
|
2566
|
-
",
|
|
2567
|
-
description="Gerar documentacao completa"
|
|
2568
|
-
)
|
|
2569
|
-
```
|
|
2570
|
-
|
|
2571
|
-
```
|
|
2572
|
-
Docs: README.md + CHANGELOG.md + API docs
|
|
2573
|
-
```
|
|
2574
|
-
|
|
2575
|
-
### 4.11 Security Review
|
|
2576
|
-
|
|
2577
|
-
```
|
|
2578
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
2579
|
-
BUILDER > SECURITY AUDIT
|
|
2580
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
2581
|
-
```
|
|
2582
|
-
|
|
2583
|
-
Spawnar security reviewer:
|
|
2584
|
-
|
|
2585
|
-
```
|
|
2586
|
-
Task(
|
|
2587
|
-
subagent_type="up-security-reviewer",
|
|
2588
|
-
,
|
|
2589
|
-
prompt="
|
|
2590
|
-
<objective>
|
|
2591
|
-
Auditar codigo para vulnerabilidades de seguranca (OWASP Top 10, auth, injection, data exposure).
|
|
2592
|
-
</objective>
|
|
2593
|
-
|
|
2594
|
-
<files_to_read>
|
|
2595
|
-
- ./CLAUDE.md (se existir)
|
|
2596
|
-
- .plano/SYSTEM-DESIGN.md (roles, auth design)
|
|
2597
|
-
</files_to_read>
|
|
2598
|
-
|
|
2599
|
-
<builder_mode>
|
|
2600
|
-
Modo builder. Gere SECURITY-REVIEW.md com vulnerabilidades encontradas.
|
|
2601
|
-
</builder_mode>
|
|
2602
|
-
",
|
|
2603
|
-
description="Auditoria de seguranca"
|
|
2604
|
-
)
|
|
2605
|
-
```
|
|
2606
|
-
|
|
2607
|
-
Se ha vulnerabilidades CRITICAS: corrigir automaticamente (spawnar executor com fix sugerido).
|
|
2608
|
-
|
|
2609
|
-
```
|
|
2610
|
-
Security: score {N}/10 | {criticas} criticas | {altas} altas
|
|
2611
|
-
```
|
|
2612
|
-
|
|
2613
|
-
### 4.12 QA — Testes Automatizados
|
|
2614
|
-
|
|
2615
|
-
```
|
|
2616
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
2617
|
-
BUILDER > QA — TESTES
|
|
2618
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
2619
|
-
```
|
|
2620
|
-
|
|
2621
|
-
Spawnar QA agent:
|
|
2622
|
-
|
|
2623
|
-
```
|
|
2624
|
-
Task(
|
|
2625
|
-
subagent_type="up-qa-agent",
|
|
2626
|
-
,
|
|
2627
|
-
prompt="
|
|
2628
|
-
<objective>
|
|
2629
|
-
Identificar gaps de cobertura de testes, escrever testes que faltam, executar todos.
|
|
2630
|
-
</objective>
|
|
2631
|
-
|
|
2632
|
-
<files_to_read>
|
|
2633
|
-
- .plano/PROJECT.md
|
|
2634
|
-
- ./package.json
|
|
2635
|
-
- ./CLAUDE.md (se existir)
|
|
2636
|
-
</files_to_read>
|
|
2637
|
-
|
|
2638
|
-
<builder_mode>
|
|
2639
|
-
Modo builder. Escreva testes e rode autonomamente.
|
|
2640
|
-
Foco: API routes (90%+), logica de negocio (80%+), componentes com logica (70%+).
|
|
2641
|
-
</builder_mode>
|
|
2642
|
-
",
|
|
2643
|
-
description="QA — escrever e rodar testes"
|
|
2644
|
-
)
|
|
2645
|
-
```
|
|
2646
|
-
|
|
2647
|
-
```
|
|
2648
|
-
QA: {N} testes escritos | {X} passando | cobertura estimada {%}
|
|
2649
|
-
```
|
|
2650
|
-
|
|
2651
|
-
### 4.13 Rodar Ideias (Uma Vez, Apos Quality Gate)
|
|
2652
|
-
|
|
2653
|
-
**Rodar ideias apenas UMA VEZ, apos o loop de qualidade terminar (nao a cada ciclo).**
|
|
2654
|
-
|
|
2655
|
-
Mesmo processo de ideias existente (2 agentes paralelos + consolidador).
|
|
2656
|
-
NAO implementar ideias — apenas salvar relatorio para proximos passos.
|
|
2657
|
-
|
|
2658
|
-
---
|
|
2659
|
-
|
|
2660
|
-
## Estagio 4.5: DELIVERY AUDIT (NOVO v0.5.0)
|
|
2661
|
-
|
|
2662
|
-
Antes do Delivery, o `up-delivery-auditor` valida que o processo inteiro foi completo e consistente.
|
|
2663
|
-
|
|
2664
|
-
### 4.5.1 Rodar Delivery Auditor
|
|
2665
|
-
|
|
2666
|
-
```python
|
|
2667
|
-
Agent(
|
|
2668
|
-
subagent_type="up-delivery-auditor",
|
|
2669
|
-
prompt="""
|
|
2670
|
-
Auditar processo de entrega do projeto.
|
|
2671
|
-
|
|
2672
|
-
<files_to_read>
|
|
2673
|
-
- .plano/CHECKLIST.md
|
|
2674
|
-
- .plano/BRIEFING.md
|
|
2675
|
-
- .plano/PENDING.md
|
|
2676
|
-
- .plano/governance/approvals.log (se existe)
|
|
2677
|
-
- Todos os reviews (supervisores + chiefs)
|
|
2678
|
-
- Todos os relatorios (VERIFICATION, DCRV, E2E, etc.)
|
|
2679
|
-
- $HOME/.claude/up/templates/audit-report.md (template)
|
|
2680
|
-
</files_to_read>
|
|
2681
|
-
|
|
2682
|
-
Calcular Confidence Score (0-100).
|
|
2683
|
-
Detectar inconsistencias cross-report.
|
|
2684
|
-
Validar aprovacoes.
|
|
2685
|
-
Comparar delivery com briefing original.
|
|
2686
|
-
|
|
2687
|
-
Gerar .plano/AUDIT-REPORT.md com recomendacao.
|
|
2688
|
-
|
|
2689
|
-
Retornar: READY_FOR_DELIVERY | APPROVED_WITH_WARNINGS | NEEDS_REWORK | BLOCKED
|
|
2690
|
-
"""
|
|
2691
|
-
)
|
|
2692
|
-
```
|
|
2693
|
-
|
|
2694
|
-
### 4.5.2 Processar Resultado do Auditor
|
|
2695
|
-
|
|
2696
|
-
**Se READY_FOR_DELIVERY (confidence >= 95%):**
|
|
2697
|
-
- Prosseguir direto pro Estagio 5
|
|
2698
|
-
|
|
2699
|
-
**Se APPROVED_WITH_WARNINGS (confidence 85-94%):**
|
|
2700
|
-
- Delegar pro CEO decidir
|
|
2701
|
-
- CEO pode perguntar ao dono se aceita entregar com warnings
|
|
2702
|
-
|
|
2703
|
-
**Se NEEDS_REWORK (confidence 70-84%):**
|
|
2704
|
-
- Executar rework plan do auditor
|
|
2705
|
-
- Re-rodar estagios problematicos
|
|
2706
|
-
- Voltar pro auditor (max 3 ciclos)
|
|
2707
|
-
|
|
2708
|
-
**Se BLOCKED (confidence < 70% ou problema critico):**
|
|
2709
|
-
- Escalar pro CEO
|
|
2710
|
-
- CEO alerta dono obrigatoriamente
|
|
2711
|
-
- Projeto nao pode ser entregue sem decisao do dono
|
|
2712
|
-
|
|
2713
|
-
### 4.5.3 Loop de Rework (se necessario)
|
|
2714
|
-
|
|
2715
|
-
```
|
|
2716
|
-
Ciclo 1: rodar auditor
|
|
2717
|
-
Se NEEDS_REWORK:
|
|
2718
|
-
Executar rework plan
|
|
2719
|
-
Ciclo 2: rodar auditor
|
|
2720
|
-
Se NEEDS_REWORK:
|
|
2721
|
-
Executar rework plan
|
|
2722
|
-
Ciclo 3: rodar auditor
|
|
2723
|
-
Se NEEDS_REWORK:
|
|
2724
|
-
Forca APPROVED_WITH_WARNINGS
|
|
2725
|
-
CEO decide o que fazer
|
|
2726
|
-
```
|
|
2727
|
-
|
|
2728
|
-
Max 3 ciclos. Depois: forcar aprovacao ou escalar CEO.
|
|
2729
|
-
|
|
2730
|
-
---
|
|
2731
|
-
|
|
2732
|
-
## Estagio 5: ENTREGA (Autonomo)
|
|
2733
|
-
|
|
2734
|
-
### 5.1 Teste E2E Final Completo (Playwright)
|
|
2735
|
-
|
|
2736
|
-
**Referencia:** `@~/.claude/up/workflows/builder-e2e.md` — Passo 4 (Teste Final)
|
|
2737
|
-
|
|
2738
|
-
**Executar APENAS se o projeto tem UI web.** Pular para CLIs, APIs puras, bibliotecas.
|
|
2739
|
-
|
|
2740
|
-
```
|
|
2741
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
2742
|
-
BUILDER > TESTE E2E FINAL
|
|
2743
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
2744
|
-
```
|
|
2745
|
-
|
|
2746
|
-
1. Subir dev server (se nao esta rodando)
|
|
2747
|
-
2. Criar diretorios:
|
|
2748
|
-
```bash
|
|
2749
|
-
mkdir -p .plano/e2e/smoke .plano/e2e/responsive .plano/e2e/flows
|
|
2750
|
-
```
|
|
2751
|
-
|
|
2752
|
-
3. **Smoke test de rotas:**
|
|
2753
|
-
- Descobrir todas as rotas do projeto (de arquivos page.tsx/route.ts)
|
|
2754
|
-
- Visitar cada rota
|
|
2755
|
-
- Screenshot de cada uma
|
|
2756
|
-
- Checar console errors
|
|
2757
|
-
- Registrar rotas OK vs quebradas
|
|
2758
|
-
|
|
2759
|
-
4. **Fluxos E2E principais (3-5 fluxos):**
|
|
2760
|
-
- Derivar de REQUIREMENTS.md os fluxos criticos
|
|
2761
|
-
- Para cada fluxo: navegar → interagir → verificar → screenshot
|
|
2762
|
-
- Se auth necessario: criar usuario de teste ou usar seed data
|
|
2763
|
-
|
|
2764
|
-
5. **Teste de responsividade:**
|
|
2765
|
-
- Desktop (1920x1080), Tablet (768x1024), Mobile (375x812)
|
|
2766
|
-
- Screenshot da pagina principal em cada viewport
|
|
2767
|
-
- Verificar se layout adapta (nao overflow, nao cortado)
|
|
2768
|
-
|
|
2769
|
-
6. **Correcao de bugs encontrados:**
|
|
2770
|
-
- Para cada bug: loop de correcao (max 5 tentativas por bug)
|
|
2771
|
-
- Analisar → corrigir → commit → re-testar
|
|
2772
|
-
- Se tentativa > 1: analisar por que tentativa anterior falhou
|
|
2773
|
-
- Apos 5 tentativas: registrar como nao corrigido e seguir
|
|
2774
|
-
|
|
2775
|
-
7. Gerar `.plano/e2e/E2E-REPORT.md` com resultados completos
|
|
2776
|
-
|
|
2777
|
-
8. Matar dev server e fechar browser:
|
|
2778
|
-
```bash
|
|
2779
|
-
kill $DEV_PID 2>/dev/null
|
|
2780
|
-
```
|
|
2781
|
-
`browser_close()`
|
|
2782
|
-
|
|
2783
|
-
```
|
|
2784
|
-
Teste E2E: {routes_ok}/{routes_total} rotas | {flows_passed}/{flows_total} fluxos | {bugs} bugs [{fixed} corrigidos]
|
|
2785
|
-
```
|
|
2786
|
-
|
|
2787
|
-
**Se nao tem UI:** Pular silenciosamente.
|
|
2788
|
-
**Se dev server falha:** Registrar e pular (nao bloqueia entrega).
|
|
2789
|
-
|
|
2790
|
-
### 5.2 Verificacao de Requisitos
|
|
2791
|
-
|
|
2792
|
-
Ler REQUIREMENTS.md e verificar cobertura:
|
|
2793
|
-
|
|
2794
|
-
```bash
|
|
2795
|
-
node "$HOME/.claude/up/bin/up-tools.cjs" progress json
|
|
2796
|
-
```
|
|
2797
|
-
|
|
2798
|
-
Contar requisitos completos vs total.
|
|
2799
|
-
|
|
2800
|
-
Se ha requisitos pendentes: listar com motivo (fase falhou, verificacao pendente, etc.).
|
|
2801
|
-
|
|
2802
|
-
### 5.3 Triagem de Captures (Insights)
|
|
2803
|
-
|
|
2804
|
-
Ler todos os arquivos em `.plano/captures/`:
|
|
2805
|
-
|
|
2806
|
-
```bash
|
|
2807
|
-
ls .plano/captures/*.md 2>/dev/null | wc -l
|
|
2808
|
-
```
|
|
2809
|
-
|
|
2810
|
-
Se ha captures:
|
|
2811
|
-
|
|
2812
|
-
1. Ler cada arquivo e classificar:
|
|
2813
|
-
|
|
2814
|
-
| type | Acao |
|
|
2815
|
-
|------|------|
|
|
2816
|
-
| `critical` + `problem` | Listar no DELIVERY.md como "Problemas Criticos Detectados" |
|
|
2817
|
-
| `warning` + `problem` | Listar no DELIVERY.md como "Alertas" |
|
|
2818
|
-
| `opportunity` | Listar no DELIVERY.md como "Oportunidades Detectadas" |
|
|
2819
|
-
| `pattern` | Listar no DELIVERY.md como "Padroes Identificados" |
|
|
2820
|
-
| `decision` | Ja registrado no PROJECT.md — ignorar |
|
|
2821
|
-
| `info` | Ignorar (informativo apenas) |
|
|
2822
|
-
|
|
2823
|
-
2. Gerar `.plano/captures/TRIAGE.md`:
|
|
2824
|
-
|
|
2825
|
-
```markdown
|
|
2826
|
-
# Triagem de Insights
|
|
2827
|
-
|
|
2828
|
-
**Total capturado:** [N] insights durante o build
|
|
2829
|
-
|
|
2830
|
-
## Criticos
|
|
2831
|
-
[insights criticos que precisam de atencao]
|
|
2832
|
-
|
|
2833
|
-
## Alertas
|
|
2834
|
-
[problemas potenciais detectados]
|
|
2835
|
-
|
|
2836
|
-
## Oportunidades
|
|
2837
|
-
[melhorias e features descobertas durante o build]
|
|
2838
|
-
|
|
2839
|
-
## Padroes
|
|
2840
|
-
[padroes identificados no codebase]
|
|
2841
|
-
|
|
2842
|
-
## Estatisticas
|
|
2843
|
-
| Tipo | Quantidade |
|
|
2844
|
-
|------|-----------|
|
|
2845
|
-
| critical | [N] |
|
|
2846
|
-
| warning | [N] |
|
|
2847
|
-
| opportunity | [N] |
|
|
2848
|
-
| pattern | [N] |
|
|
2849
|
-
| decision | [N] |
|
|
2850
|
-
| info | [N] |
|
|
2851
|
-
```
|
|
2852
|
-
|
|
2853
|
-
Se NAO ha captures: pular silenciosamente.
|
|
2854
|
-
|
|
2855
|
-
### 5.4 Gerar DELIVERY.md (incluindo resultados E2E)
|
|
2856
|
-
|
|
2857
|
-
Carregar template de `$HOME/.claude/up/templates/delivery.md`.
|
|
2858
|
-
|
|
2859
|
-
Preencher com dados de:
|
|
2860
|
-
- PROJECT.md (nome, stack, core value)
|
|
2861
|
-
- ROADMAP.md (fases completadas)
|
|
2862
|
-
- REQUIREMENTS.md (cobertura)
|
|
2863
|
-
- SUMMARYs de cada fase (o que foi construido)
|
|
2864
|
-
- .plano/e2e/E2E-REPORT.md (resultados do teste E2E final, se existir)
|
|
2865
|
-
- E2E-RESULTS.md de cada fase (resultados por fase, se existirem)
|
|
2866
|
-
- .plano/captures/TRIAGE.md (insights capturados durante o build, se existir)
|
|
2867
|
-
- .plano/melhorias/RELATORIO.md (melhorias aplicadas, se existir)
|
|
2868
|
-
- .plano/ideias/RELATORIO.md (top 5 ideias por ICE, se existir)
|
|
2869
|
-
- package.json (como rodar)
|
|
2870
|
-
- .env.example ou env vars usados (credenciais necessarias)
|
|
2871
|
-
|
|
2872
|
-
Contar commits:
|
|
2873
|
-
```bash
|
|
2874
|
-
git rev-list --count HEAD
|
|
2875
|
-
```
|
|
2876
|
-
|
|
2877
|
-
Escrever `.plano/DELIVERY.md`.
|
|
2878
|
-
|
|
2879
|
-
### 5.5 Commit Final e Cleanup
|
|
2880
|
-
|
|
2881
|
-
```bash
|
|
2882
|
-
node "$HOME/.claude/up/bin/up-tools.cjs" commit "docs: relatorio de entrega (modo builder)" --files .plano/DELIVERY.md
|
|
2883
|
-
```
|
|
2884
|
-
|
|
2885
|
-
**Remover LOCK.md (sessao concluida com sucesso):**
|
|
2886
|
-
```bash
|
|
2887
|
-
rm -f .plano/LOCK.md
|
|
2888
|
-
```
|
|
2889
|
-
|
|
2890
|
-
**Fechar Dashboard:**
|
|
2891
|
-
```bash
|
|
2892
|
-
kill $DASH_PID 2>/dev/null
|
|
2893
|
-
```
|
|
2894
|
-
|
|
2895
|
-
### 5.6 CEO Apresenta Resultado (NOVO v0.5.0)
|
|
2896
|
-
|
|
2897
|
-
Delegar apresentacao final ao CEO:
|
|
2898
|
-
|
|
2899
|
-
```python
|
|
2900
|
-
Agent(
|
|
2901
|
-
subagent_type="up-project-ceo",
|
|
2902
|
-
prompt="""
|
|
2903
|
-
Apresentar resultado final do projeto ao dono.
|
|
2904
|
-
|
|
2905
|
-
<files_to_read>
|
|
2906
|
-
- ~/.claude/up/owner-profile.md (seu perfil do dono)
|
|
2907
|
-
- .plano/OWNER.md (contexto do projeto)
|
|
2908
|
-
- .plano/DELIVERY.md (relatorio de entrega)
|
|
2909
|
-
- .plano/AUDIT-REPORT.md (auditoria)
|
|
2910
|
-
- .plano/PENDING.md (pendencias)
|
|
2911
|
-
</files_to_read>
|
|
2912
|
-
|
|
2913
|
-
Apresentar no tom e estilo definidos no owner-profile.
|
|
2914
|
-
Incluir: resumo, scores, pendencias agrupadas por severidade.
|
|
2915
|
-
Perguntar se dono quer resolver alguma pendencia agora.
|
|
2916
|
-
"""
|
|
2917
|
-
)
|
|
2918
|
-
```
|
|
2919
|
-
|
|
2920
|
-
**Template antigo (fallback se CEO nao disponivel):**
|
|
2921
|
-
|
|
2922
|
-
```
|
|
2923
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
2924
|
-
UP > BUILDER — PROJETO ENTREGUE
|
|
2925
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
2926
|
-
|
|
2927
|
-
**[Nome do Projeto]**
|
|
2928
|
-
|
|
2929
|
-
[Resumo em 2-3 frases do que foi construido]
|
|
2930
|
-
|
|
2931
|
-
## O que foi Entregue
|
|
2932
|
-
|
|
2933
|
-
| Fase | O que Construiu | Status |
|
|
2934
|
-
|------|----------------|--------|
|
|
2935
|
-
| 1 | [resumo] | Completo |
|
|
2936
|
-
| 2 | [resumo] | Completo |
|
|
2937
|
-
| ... | ... | ... |
|
|
2938
|
-
|
|
2939
|
-
## Metricas
|
|
2940
|
-
|
|
2941
|
-
| Metrica | Valor |
|
|
2942
|
-
|---------|-------|
|
|
2943
|
-
| Fases | [N] completadas |
|
|
2944
|
-
| Requisitos | [X]/[Y] atendidos |
|
|
2945
|
-
| Commits | [N] |
|
|
2946
|
-
| Melhorias aplicadas | [N] |
|
|
2947
|
-
| Ideias geradas | [N] |
|
|
2948
|
-
|
|
2949
|
-
## Itens para Revisao Humana
|
|
2950
|
-
|
|
2951
|
-
[Lista de itens marcados como human_needed durante verificacao]
|
|
2952
|
-
[Se nenhum: "Nenhum — todas verificacoes automaticas passaram"]
|
|
2953
|
-
|
|
2954
|
-
## Proximos Passos (Top 5 Ideias)
|
|
2955
|
-
|
|
2956
|
-
1. [Ideia 1] — ICE: [score]
|
|
2957
|
-
2. [Ideia 2] — ICE: [score]
|
|
2958
|
-
3. [Ideia 3] — ICE: [score]
|
|
2959
|
-
4. [Ideia 4] — ICE: [score]
|
|
2960
|
-
5. [Ideia 5] — ICE: [score]
|
|
2961
|
-
|
|
2962
|
-
───────────────────────────────────────────────────────────────
|
|
2963
|
-
|
|
2964
|
-
Relatorio completo: .plano/DELIVERY.md
|
|
2965
|
-
|
|
2966
|
-
Como rodar:
|
|
2967
|
-
[Instrucoes de setup do DELIVERY.md]
|
|
2968
|
-
|
|
2969
|
-
───────────────────────────────────────────────────────────────
|
|
2970
|
-
```
|
|
2971
|
-
|
|
2972
|
-
</process>
|
|
2973
|
-
|
|
2974
|
-
<light_process>
|
|
2975
|
-
## MODO LIGHT — Pipeline Enxuto
|
|
2976
|
-
|
|
2977
|
-
**Ativado quando `--light` esta nos $ARGUMENTS.**
|
|
2978
|
-
Extrair `--light` dos argumentos. O restante e o briefing.
|
|
2979
|
-
|
|
2980
|
-
### L1. Intake Rapido
|
|
2981
|
-
|
|
2982
|
-
#### L1.1 Detectar Modo
|
|
2983
|
-
|
|
2984
|
-
Mesmo processo do full: verificar codigo existente para determinar greenfield/brownfield.
|
|
2985
|
-
|
|
2986
|
-
```bash
|
|
2987
|
-
ls package.json go.mod Cargo.toml requirements.txt pyproject.toml 2>/dev/null
|
|
2988
|
-
ls -d src/ app/ lib/ pages/ components/ 2>/dev/null | head -10
|
|
2989
|
-
```
|
|
2990
|
-
|
|
2991
|
-
#### L1.2 Receber Briefing
|
|
2992
|
-
|
|
2993
|
-
Se briefing veio nos $ARGUMENTS: usar direto.
|
|
2994
|
-
Se vazio: pedir freeform (mesma logica do full).
|
|
2995
|
-
|
|
2996
|
-
#### L1.3 Perguntas Criticas
|
|
2997
|
-
|
|
2998
|
-
Mesma logica do full — perguntar APENAS o essencial (credenciais, APIs, ambiguidades criticas).
|
|
2999
|
-
|
|
3000
|
-
```
|
|
3001
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
3002
|
-
UP > BUILDER LIGHT
|
|
3003
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
3004
|
-
|
|
3005
|
-
**Feature:** [resumo em 1-2 frases]
|
|
3006
|
-
**Modo:** [greenfield/brownfield]
|
|
3007
|
-
**Stack:** [detectada ou inferida]
|
|
3008
|
-
|
|
3009
|
-
Pipeline enxuto: planejar → executar → testar.
|
|
3010
|
-
Iniciando...
|
|
3011
|
-
```
|
|
3012
|
-
|
|
3013
|
-
═══════════════════════════════════════════════════════
|
|
3014
|
-
FIM DA INTERACAO COM USUARIO
|
|
3015
|
-
═══════════════════════════════════════════════════════
|
|
3016
|
-
|
|
3017
|
-
---
|
|
3018
|
-
|
|
3019
|
-
### L2. Estrutura Inline (Sem Agente Separado)
|
|
3020
|
-
|
|
3021
|
-
**NAO spawnar up-arquiteto.** Fazer tudo inline para economizar tokens.
|
|
3022
|
-
|
|
3023
|
-
#### L2.1 Entender o Codebase (Brownfield)
|
|
3024
|
-
|
|
3025
|
-
**Se `.plano/codebase/` existe e recente (< 7 dias):** Ler STACK.md e CONVENTIONS.md apenas. Pular mapeamento.
|
|
3026
|
-
|
|
3027
|
-
**Se nao existe:** Mini-scan inline:
|
|
3028
|
-
```bash
|
|
3029
|
-
# Stack
|
|
3030
|
-
cat package.json 2>/dev/null | head -50
|
|
3031
|
-
ls tsconfig.json next.config.* vite.config.* 2>/dev/null
|
|
3032
|
-
|
|
3033
|
-
# Estrutura
|
|
3034
|
-
find . -type d -not -path '*/node_modules/*' -not -path '*/.git/*' -not -path '*/.plano/*' -maxdepth 3 | head -30
|
|
3035
|
-
|
|
3036
|
-
# Arquivos principais
|
|
3037
|
-
find . -name "*.ts" -o -name "*.tsx" | grep -v node_modules | head -30
|
|
3038
|
-
```
|
|
3039
|
-
|
|
3040
|
-
**Greenfield:** Pular. Inferir stack do briefing ou defaults.
|
|
3041
|
-
|
|
3042
|
-
#### L2.2 Criar/Atualizar Documentos
|
|
3043
|
-
|
|
3044
|
-
```bash
|
|
3045
|
-
mkdir -p .plano
|
|
3046
|
-
git init 2>/dev/null
|
|
3047
|
-
```
|
|
3048
|
-
|
|
3049
|
-
**PROJECT.md** — Criar ou atualizar inline (sem template elaborado):
|
|
3050
|
-
```markdown
|
|
3051
|
-
# [Nome do Projeto/Feature]
|
|
3052
|
-
|
|
3053
|
-
## O que e
|
|
3054
|
-
[Briefing do usuario em 2-3 frases]
|
|
3055
|
-
|
|
3056
|
-
## Stack
|
|
3057
|
-
[Stack detectada ou inferida]
|
|
3058
|
-
|
|
3059
|
-
## Requisitos
|
|
3060
|
-
- [ ] [REQ-01]: [requisito 1]
|
|
3061
|
-
- [ ] [REQ-02]: [requisito 2]
|
|
3062
|
-
...
|
|
3063
|
-
```
|
|
3064
|
-
|
|
3065
|
-
**ROADMAP.md** — Criar ou atualizar com 1-3 fases:
|
|
3066
|
-
- Se feature simples: 1 fase
|
|
3067
|
-
- Se feature media: 2-3 fases
|
|
3068
|
-
- Cada fase com objetivo e criterios de sucesso
|
|
3069
|
-
|
|
3070
|
-
**STATE.md** — Inicializar ou atualizar.
|
|
3071
|
-
|
|
3072
|
-
**config.json:**
|
|
3073
|
-
```json
|
|
3074
|
-
{
|
|
3075
|
-
"mode": "yolo",
|
|
3076
|
-
"granularity": "coarse",
|
|
3077
|
-
"parallelization": true,
|
|
3078
|
-
"commit_docs": true,
|
|
3079
|
-
"builder_mode": true,
|
|
3080
|
-
"builder_type": "light"
|
|
3081
|
-
}
|
|
3082
|
-
```
|
|
3083
|
-
|
|
3084
|
-
Commit:
|
|
3085
|
-
```bash
|
|
3086
|
-
node "$HOME/.claude/up/bin/up-tools.cjs" commit "docs: estruturar feature (builder light)" --files .plano/PROJECT.md .plano/ROADMAP.md .plano/STATE.md .plano/config.json
|
|
3087
|
-
```
|
|
3088
|
-
|
|
3089
|
-
Se REQUIREMENTS.md foi criado/atualizado:
|
|
3090
|
-
```bash
|
|
3091
|
-
node "$HOME/.claude/up/bin/up-tools.cjs" commit "docs: requisitos (builder light)" --files .plano/REQUIREMENTS.md
|
|
3092
|
-
```
|
|
3093
|
-
|
|
3094
|
-
---
|
|
3095
|
-
|
|
3096
|
-
### L3. Build + E2E
|
|
3097
|
-
|
|
3098
|
-
Mesmo loop do full (3.1.1 → 3.1.5), mas:
|
|
3099
|
-
- **Sem LOCK.md** (sessao curta)
|
|
3100
|
-
- **Sem reassessment** (poucas fases)
|
|
3101
|
-
- **Sem captures** (sessao curta)
|
|
3102
|
-
- **COM E2E Playwright** (se tem UI)
|
|
3103
|
-
- **Governanca LIGHT:** execution-supervisor roda (max 1 ciclo rework). Chief-engineer NAO roda. Verification-supervisor NAO roda.
|
|
3104
|
-
|
|
3105
|
-
Para cada fase no ROADMAP:
|
|
3106
|
-
|
|
3107
|
-
#### L3.1 Planejar Fase
|
|
3108
|
-
|
|
3109
|
-
Spawnar up-planejador (mesmo do full):
|
|
3110
|
-
|
|
3111
|
-
```
|
|
3112
|
-
Task(prompt="
|
|
3113
|
-
<planning_context>
|
|
3114
|
-
**Fase:** {phase_number}
|
|
3115
|
-
**Modo:** builder light (autonomo -- NAO use AskUserQuestion)
|
|
3116
|
-
|
|
3117
|
-
<files_to_read>
|
|
3118
|
-
- .plano/STATE.md
|
|
3119
|
-
- .plano/ROADMAP.md
|
|
3120
|
-
- .plano/REQUIREMENTS.md (se existir)
|
|
3121
|
-
- ./CLAUDE.md (se existir)
|
|
3122
|
-
</files_to_read>
|
|
3123
|
-
|
|
3124
|
-
**IDs de requisitos da fase:** {phase_req_ids}
|
|
3125
|
-
|
|
3126
|
-
<builder_mode>
|
|
3127
|
-
Modo builder light. Regras:
|
|
3128
|
-
1. NAO use AskUserQuestion
|
|
3129
|
-
2. Se ha ambiguidade, tome a decisao mais razoavel
|
|
3130
|
-
3. Pesquisa inline: nivel 1 apenas (verificacao rapida, nao pesquisa profunda)
|
|
3131
|
-
4. Planos devem ser CONCISOS — minimo de tarefas necessarias
|
|
3132
|
-
</builder_mode>
|
|
3133
|
-
|
|
3134
|
-
<output>
|
|
3135
|
-
Escrever PLAN.md em: .plano/fases/{phase_dir}/
|
|
3136
|
-
Retornar: ## PLANNING COMPLETE
|
|
3137
|
-
</output>
|
|
3138
|
-
", subagent_type="up-planejador", description="Planejar Fase {phase_number} (light)")
|
|
3139
|
-
```
|
|
3140
|
-
|
|
3141
|
-
#### L3.2 Executar Fase
|
|
3142
|
-
|
|
3143
|
-
Mesmo processo do full — spawnar up-executor por wave.
|
|
3144
|
-
|
|
3145
|
-
**GATE LIGHT A — Verificar SUMMARY existe:**
|
|
3146
|
-
```bash
|
|
3147
|
-
SUMMARY_COUNT=$(ls ${PHASE_DIR}/*-SUMMARY.md 2>/dev/null | wc -l)
|
|
3148
|
-
[ "$SUMMARY_COUNT" -eq 0 ] && echo "GATE FALHOU: Sem SUMMARY" && exit 1
|
|
3149
|
-
```
|
|
3150
|
-
|
|
3151
|
-
#### L3.2.1 GOVERNANCE LIGHT — Execution Supervisor
|
|
3152
|
-
|
|
3153
|
-
**OBRIGATORIO mesmo no modo light.** Roda com max 1 ciclo de rework (vs 3 no full).
|
|
3154
|
-
**Este passo NAO pode ser colapsado com a execucao. DEVE ser um Agent() SEPARADO.**
|
|
3155
|
-
|
|
3156
|
-
```bash
|
|
3157
|
-
mkdir -p .plano/governance
|
|
3158
|
-
```
|
|
3159
|
-
|
|
3160
|
-
```python
|
|
3161
|
-
Agent(
|
|
3162
|
-
subagent_type="up-execution-supervisor",
|
|
3163
|
-
prompt=f"""
|
|
3164
|
-
Revisar execucao da Fase {phase_number} (modo light — 1 ciclo max).
|
|
3165
|
-
|
|
3166
|
-
<governance_compressed>
|
|
3167
|
-
DECISOES: APPROVE | REQUEST_CHANGES
|
|
3168
|
-
REWORK: max 1 ciclo, depois forca approval com debito
|
|
3169
|
-
NUNCA APROVAR: stub/placeholder, falta de wiring, claim sem backing
|
|
3170
|
-
</governance_compressed>
|
|
3171
|
-
|
|
3172
|
-
<files_to_read>
|
|
3173
|
-
- {PHASE_DIR}/*-PLAN.md
|
|
3174
|
-
- {PHASE_DIR}/*-SUMMARY.md
|
|
3175
|
-
- git diff (use Bash)
|
|
3176
|
-
</files_to_read>
|
|
3177
|
-
|
|
3178
|
-
Decisao: APPROVE | REQUEST_CHANGES
|
|
3179
|
-
|
|
3180
|
-
**OUTPUT OBRIGATORIO (fazer ANTES de retornar):**
|
|
3181
|
-
```bash
|
|
3182
|
-
echo "$(date -u +%Y-%m-%dT%H:%M:%SZ) | phase-{phase_number} | execution-supervisor | {DECISAO} | {motivo}" >> .plano/governance/approvals.log
|
|
3183
|
-
```
|
|
3184
|
-
"""
|
|
3185
|
-
)
|
|
3186
|
-
```
|
|
3187
|
-
|
|
3188
|
-
**GATE LIGHT B — Verificar supervisor logou:**
|
|
3189
|
-
```bash
|
|
3190
|
-
EXEC_OK=$(grep -c "phase-${PHASE_NUMBER}.*execution-supervisor" .plano/governance/approvals.log 2>/dev/null)
|
|
3191
|
-
[ "$EXEC_OK" -eq 0 ] && echo "GATE FALHOU: execution-supervisor NAO rodou. Spawnar agora." && exit 1
|
|
3192
|
-
```
|
|
3193
|
-
|
|
3194
|
-
**Se APPROVE:** Prosseguir.
|
|
3195
|
-
**Se REQUEST_CHANGES:** Re-spawn specialist (1 ciclo). Se ainda falha: forced approval com debito.
|
|
3196
|
-
|
|
3197
|
-
#### L3.3 Verificar Fase
|
|
3198
|
-
|
|
3199
|
-
Spawnar up-verificador (mesmo do full — verificacao real, nao shortcut):
|
|
3200
|
-
|
|
3201
|
-
```
|
|
3202
|
-
Task(
|
|
3203
|
-
subagent_type="up-verificador",
|
|
3204
|
-
,
|
|
3205
|
-
prompt="Verificar fase {phase_number}. Diretorio: {phase_dir}. Objetivo: {goal}."
|
|
3206
|
-
)
|
|
3207
|
-
```
|
|
3208
|
-
|
|
3209
|
-
| Status | Acao |
|
|
3210
|
-
|--------|------|
|
|
3211
|
-
| `passed` | → L3.4 |
|
|
3212
|
-
| `gaps_found` | Tentar gap closure (1 ciclo max) |
|
|
3213
|
-
| `human_needed` | Registrar, avancar |
|
|
3214
|
-
|
|
3215
|
-
#### L3.4 Teste E2E (Playwright)
|
|
3216
|
-
|
|
3217
|
-
**Referencia:** `@~/.claude/up/workflows/builder-e2e.md` — Passo 3 (Teste por Fase)
|
|
3218
|
-
|
|
3219
|
-
**EXECUTAR OBRIGATORIAMENTE se a fase tem UI.** Nao pular.
|
|
3220
|
-
|
|
3221
|
-
1. Subir dev server (se nao esta rodando)
|
|
3222
|
-
2. Traduzir must_haves em testes E2E
|
|
3223
|
-
3. Navegar, interagir, verificar, screenshot
|
|
3224
|
-
4. Bugs: corrigir (max 5 tentativas por bug)
|
|
3225
|
-
5. Criar E2E-RESULTS.md
|
|
3226
|
-
|
|
3227
|
-
**Se dev server falha:** Registrar e continuar (nao bloqueia).
|
|
3228
|
-
|
|
3229
|
-
#### L3.4.1 DCRV Light (1 ciclo)
|
|
3230
|
-
|
|
3231
|
-
**Apos E2E**, rodar DCRV em modo light (1 ciclo, sem loop):
|
|
3232
|
-
|
|
3233
|
-
**Referencia:** `@~/.claude/up/workflows/dcrv.md`
|
|
3234
|
-
|
|
3235
|
-
```
|
|
3236
|
-
SCOPE=light
|
|
3237
|
-
PHASE_DIR={phase_dir}
|
|
3238
|
-
PHASE_NUMBER={phase_number}
|
|
3239
|
-
MAX_CYCLES=1
|
|
3240
|
-
MAX_ISSUES_PER_CYCLE=10
|
|
3241
|
-
AUTO_FIX=true
|
|
3242
|
-
```
|
|
3243
|
-
|
|
3244
|
-
Isso roda os 3 detectores (visual, API, exhaustive), corrige o que puder em 1 ciclo, e segue.
|
|
3245
|
-
|
|
3246
|
-
```
|
|
3247
|
-
Fase {X} (light): DCRV — {resolved}/{total} issues corrigidas
|
|
3248
|
-
```
|
|
3249
|
-
|
|
3250
|
-
#### L3.5 Marcar Fase Completa
|
|
3251
|
-
|
|
3252
|
-
```bash
|
|
3253
|
-
COMPLETION=$(node "$HOME/.claude/up/bin/up-tools.cjs" phase complete "${PHASE_NUMBER}")
|
|
3254
|
-
node "$HOME/.claude/up/bin/up-tools.cjs" commit "docs(fase-{X}): completar (light)" --files .plano/ROADMAP.md .plano/STATE.md
|
|
3255
|
-
```
|
|
3256
|
-
|
|
3257
|
-
Avancar para proxima fase. Sem reassessment.
|
|
3258
|
-
|
|
3259
|
-
---
|
|
3260
|
-
|
|
3261
|
-
### L4. Resumo Final
|
|
3262
|
-
|
|
3263
|
-
Apos todas as fases:
|
|
3264
|
-
|
|
3265
|
-
```bash
|
|
3266
|
-
# Matar dev server se rodando
|
|
3267
|
-
kill $DEV_PID 2>/dev/null
|
|
3268
|
-
```
|
|
3269
|
-
|
|
3270
|
-
`browser_close()` (se Playwright aberto)
|
|
3271
|
-
|
|
3272
|
-
```
|
|
3273
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
3274
|
-
UP > BUILDER LIGHT — COMPLETO
|
|
3275
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
3276
|
-
|
|
3277
|
-
**Feature:** [resumo do briefing]
|
|
3278
|
-
|
|
3279
|
-
## O que foi Feito
|
|
3280
|
-
|
|
3281
|
-
| Fase | O que Construiu | Status |
|
|
3282
|
-
|------|----------------|--------|
|
|
3283
|
-
| [N] | [resumo] | Completo |
|
|
3284
|
-
| [N+1] | [resumo] | Completo |
|
|
3285
|
-
|
|
3286
|
-
## Metricas
|
|
3287
|
-
|
|
3288
|
-
| Metrica | Valor |
|
|
3289
|
-
|---------|-------|
|
|
3290
|
-
| Fases | [N] |
|
|
3291
|
-
| Commits | [N] |
|
|
3292
|
-
| E2E testes | [X] passaram de [Y] |
|
|
3293
|
-
| Bugs corrigidos | [N] |
|
|
3294
|
-
|
|
3295
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
3296
|
-
|
|
3297
|
-
Quer polir? /up:ux-tester ou /up:melhorias
|
|
3298
|
-
Quer mais? /up:modo-builder "proxima feature"
|
|
3299
|
-
|
|
3300
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
3301
|
-
```
|
|
3302
|
-
|
|
3303
|
-
**NAO gerar DELIVERY.md. NAO rodar polish completo. NAO rodar ideias.**
|
|
3304
|
-
|
|
3305
|
-
**Light mode success criteria:**
|
|
3306
|
-
- [ ] .plano/ criado com PROJECT.md, ROADMAP.md, REQUIREMENTS.md
|
|
3307
|
-
- [ ] Todas fases executadas com commits atomicos
|
|
3308
|
-
- [ ] Execution-supervisor revisou CADA fase (GOVERNANCE OBRIGATORIA — 1 ciclo max)
|
|
3309
|
-
- [ ] Verificador rodou em cada fase (NAO quick check)
|
|
3310
|
-
- [ ] E2E Playwright rodou em fases com UI
|
|
3311
|
-
- [ ] DCRV light (1 ciclo) rodou em cada fase com UI/API
|
|
3312
|
-
- [ ] Governance logs em .plano/governance/approvals.log
|
|
3313
|
-
- [ ] Resumo final exibido com metricas
|
|
3314
|
-
|
|
3315
|
-
</light_process>
|
|
3316
|
-
|
|
3317
|
-
<failure_handling>
|
|
3318
|
-
|
|
3319
|
-
## Tratamento de Falhas
|
|
3320
|
-
|
|
3321
|
-
### Planejamento falha (PLANNING INCONCLUSIVE)
|
|
3322
|
-
- Retry 1: Adicionar mais contexto da pesquisa ao prompt
|
|
3323
|
-
- Retry 2: Simplificar escopo da fase (dividir em 2)
|
|
3324
|
-
- Se ainda falha: Pular fase, registrar em DELIVERY.md como "Nao implementada"
|
|
3325
|
-
|
|
3326
|
-
### Execucao falha (agente nao retorna SUMMARY)
|
|
3327
|
-
- Retry 1: Re-spawnar executor para o plano falho
|
|
3328
|
-
- Se ainda falha: Registrar plano como incompleto, continuar com proxima wave/fase
|
|
3329
|
-
|
|
3330
|
-
### Verificacao encontra gaps
|
|
3331
|
-
- Ciclo 1: Planejar gaps + executar gap closure
|
|
3332
|
-
- Se gaps persistem: Registrar como pendente, avancar (sera listado no DELIVERY.md)
|
|
3333
|
-
|
|
3334
|
-
### Melhorias/Ideias falham
|
|
3335
|
-
- Estas etapas sao opcionais no builder
|
|
3336
|
-
- Se algum agente falha: Continuar com os que completaram
|
|
3337
|
-
- Se todos falham: Pular estagio, registrar no DELIVERY.md
|
|
3338
|
-
|
|
3339
|
-
**Principio:** O builder NUNCA para. Falhas sao registradas e contornadas. O usuario recebe o maximo possivel.
|
|
3340
|
-
|
|
3341
|
-
</failure_handling>
|
|
3342
|
-
|
|
3343
|
-
<context_management>
|
|
3344
|
-
|
|
3345
|
-
## Gestao de Contexto (1M tokens)
|
|
3346
|
-
|
|
3347
|
-
Com 1M de contexto, a maioria dos projetos cabe sem /clear. Mas monitore:
|
|
3348
|
-
|
|
3349
|
-
**Orquestrador fica enxuto:**
|
|
3350
|
-
- NAO leia conteudo de SUMMARYs inteiros — apenas verifique existencia
|
|
3351
|
-
- NAO leia PLANs apos planejamento — apenas passe caminhos ao executor
|
|
3352
|
-
- NAO leia codigo fonte — apenas verifique via git log/ls
|
|
3353
|
-
|
|
3354
|
-
**Subagentes recebem contexto limpo:**
|
|
3355
|
-
- Cada Task() spawna com contexto fresco
|
|
3356
|
-
- Passe apenas caminhos de arquivos, nao conteudo
|
|
3357
|
-
|
|
3358
|
-
**Se contexto atingir ~70%:**
|
|
3359
|
-
- Reduzir output de status (1 linha por fase ao inves de tabelas)
|
|
3360
|
-
- Pular estagio Polish (melhorias + ideias) se necessario
|
|
3361
|
-
- Priorizar completar build sobre polimento
|
|
3362
|
-
|
|
3363
|
-
</context_management>
|
|
3364
|
-
|
|
3365
|
-
<success_criteria>
|
|
3366
|
-
|
|
3367
|
-
## Criterios de Sucesso do Builder
|
|
3368
|
-
|
|
3369
|
-
- [ ] Estagio 1: Briefing coletado, perguntas criticas respondidas
|
|
3370
|
-
- [ ] Estagio 2: Product Analyst executado (concorrentes, features, personas)
|
|
3371
|
-
- [ ] Estagio 2: System Designer executado (modulos, roles, schema, blueprints, 5 camadas)
|
|
3372
|
-
- [ ] Estagio 2: Architect executou (PROJECT.md, REQUIREMENTS.md, ROADMAP.md criados)
|
|
3373
|
-
- [ ] Estagio 2: Requisitos completos (50-100 requisitos, 5 camadas)
|
|
3374
|
-
- [ ] Estagio 3: Todas as fases planejadas
|
|
3375
|
-
- [ ] Estagio 3: Todas as fases executadas (com specialist routing)
|
|
3376
|
-
- [ ] Estagio 3: Execution-supervisor revisou CADA fase (GOVERNANCE OBRIGATORIA)
|
|
3377
|
-
- [ ] Estagio 3: Reflect (code review) apos cada fase
|
|
3378
|
-
- [ ] Estagio 3: Todas as fases verificadas
|
|
3379
|
-
- [ ] Estagio 3: Verification-supervisor revisou CADA verificacao (GOVERNANCE OBRIGATORIA)
|
|
3380
|
-
- [ ] Estagio 3: Chief-engineer aprovou CADA fase consolidada (GOVERNANCE OBRIGATORIA)
|
|
3381
|
-
- [ ] Estagio 3: Governance logs em .plano/governance/approvals.log
|
|
3382
|
-
- [ ] Estagio 3: Fases com UI testadas via Playwright (E2E-RESULTS.md)
|
|
3383
|
-
- [ ] Estagio 3: Bugs E2E corrigidos (quando possivel)
|
|
3384
|
-
- [ ] Estagio 3: DCRV por fase executado (Visual Critic + Exhaustive Tester + API Tester)
|
|
3385
|
-
- [ ] Estagio 3: Issues DCRV corrigidas via dispatcher (max 3 ciclos por fase)
|
|
3386
|
-
- [ ] Estagio 3: Smoke test de regressao em fases anteriores (a partir da fase 3)
|
|
3387
|
-
- [ ] Estagio 3: Reassessment apos cada fase (roadmap re-avaliado)
|
|
3388
|
-
- [ ] Estagio 3: Commits atomicos por tarefa
|
|
3389
|
-
- [ ] Estagio 3: LOCK.md atualizado a cada transicao de estado
|
|
3390
|
-
- [ ] Estagio 3: Insights capturados em .plano/captures/ (se descobertos)
|
|
3391
|
-
- [ ] Estagio 4: Auditoria de melhorias executada (3 dimensoes)
|
|
3392
|
-
- [ ] Estagio 4: Quick wins aplicadas
|
|
3393
|
-
- [ ] Estagio 4: UX Review executado (navegar como usuario, 6 dimensoes)
|
|
3394
|
-
- [ ] Estagio 4: Melhorias UX implementadas automaticamente
|
|
3395
|
-
- [ ] Estagio 4: UX-REPORT.md gerado com scores e screenshots
|
|
3396
|
-
- [ ] Estagio 4: Mobile First executado (responsividade verificada em 3 viewports)
|
|
3397
|
-
- [ ] Estagio 4: MOBILE-REPORT.md gerado com score e screenshots comparativos
|
|
3398
|
-
- [ ] Estagio 4: Visual Critic global executado (VISUAL-REPORT.md)
|
|
3399
|
-
- [ ] Estagio 4: Exhaustive Tester global executado (EXHAUSTIVE-REPORT.md)
|
|
3400
|
-
- [ ] Estagio 4: API Tester global executado (API-REPORT.md)
|
|
3401
|
-
- [ ] Estagio 4: Issues carryover das fases processadas
|
|
3402
|
-
- [ ] Estagio 4: Score composto calculado (9 dimensoes)
|
|
3403
|
-
- [ ] Estagio 4: Quality gate loop executado (ate score >= 9.0 ou max 5 ciclos)
|
|
3404
|
-
- [ ] Estagio 4: DevOps artifacts gerados (Dockerfile, CI/CD, .env.example, seed)
|
|
3405
|
-
- [ ] Estagio 4: Documentacao gerada (README, CHANGELOG, API docs)
|
|
3406
|
-
- [ ] Estagio 4: Security review executado
|
|
3407
|
-
- [ ] Estagio 4: QA — testes escritos e rodados
|
|
3408
|
-
- [ ] Estagio 4: Ideias geradas com ICE scoring (apos quality gate)
|
|
3409
|
-
- [ ] Estagio 5: Teste E2E final (smoke + fluxos + responsividade)
|
|
3410
|
-
- [ ] Estagio 5: E2E-REPORT.md gerado com screenshots
|
|
3411
|
-
- [ ] Estagio 5: Captures triados em TRIAGE.md
|
|
3412
|
-
- [ ] Estagio 5: DELIVERY.md gerado (incluindo E2E + captures + reassessments)
|
|
3413
|
-
- [ ] Estagio 5: LOCK.md removido (sessao concluida)
|
|
3414
|
-
- [ ] Estagio 5: Resumo apresentado ao usuario
|
|
3415
|
-
|
|
3416
|
-
**Minimo viavel:** Estagios 1-3 + Estagio 5. Estagios 4 (Polish) e E2E sao bonus.
|
|
3417
|
-
**INEGOCIAVEL:** Governanca no Estagio 3 (execution-supervisor + verification-supervisor + chief-engineer) NUNCA e bonus — e obrigatoria.
|
|
3418
|
-
|
|
3419
|
-
</success_criteria>
|