up-cc 0.3.3 → 0.4.1
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/LICENSE +21 -0
- package/README.md +259 -49
- package/agents/up-api-tester.md +405 -0
- package/agents/up-arquiteto.md +461 -0
- package/agents/up-backend-specialist.md +158 -0
- package/agents/up-blind-validator.md +259 -0
- package/agents/up-clone-crawler.md +234 -0
- package/agents/up-clone-design-extractor.md +227 -0
- package/agents/up-clone-feature-mapper.md +225 -0
- package/agents/up-clone-prd-writer.md +169 -0
- package/agents/up-clone-verifier.md +227 -0
- package/agents/up-code-reviewer.md +225 -0
- package/agents/up-database-specialist.md +152 -0
- package/agents/up-devops-agent.md +203 -0
- package/agents/up-executor.md +45 -5
- package/agents/up-exhaustive-tester.md +348 -0
- package/agents/up-frontend-specialist.md +135 -0
- package/agents/up-product-analyst.md +192 -0
- package/agents/up-qa-agent.md +171 -0
- package/agents/up-requirements-validator.md +230 -0
- package/agents/up-security-reviewer.md +137 -0
- package/agents/up-system-designer.md +332 -0
- package/agents/up-technical-writer.md +188 -0
- package/agents/up-visual-critic.md +358 -0
- package/bin/up-tools.cjs +84 -2
- package/commands/clone-builder.md +67 -0
- package/commands/dashboard.md +48 -0
- package/commands/depurar.md +1 -1
- package/commands/mobile-first.md +71 -0
- package/commands/modo-builder.md +178 -0
- package/commands/ux-tester.md +63 -0
- package/package.json +1 -1
- package/references/blueprints/audit.md +29 -0
- package/references/blueprints/booking.md +49 -0
- package/references/blueprints/community.md +48 -0
- package/references/blueprints/crm.md +40 -0
- package/references/blueprints/dashboard.md +48 -0
- package/references/blueprints/data-management.md +42 -0
- package/references/blueprints/ecommerce.md +51 -0
- package/references/blueprints/marketplace.md +48 -0
- package/references/blueprints/notifications.md +32 -0
- package/references/blueprints/saas-users.md +50 -0
- package/references/blueprints/settings.md +31 -0
- package/references/engineering-principles.md +205 -0
- package/references/production-requirements.md +106 -0
- package/references/state-persistence.md +74 -0
- package/templates/builder-defaults.md +73 -0
- package/templates/delivery.md +279 -0
- package/templates/design-tokens.md +151 -0
- package/workflows/builder-e2e.md +501 -0
- package/workflows/builder.md +2248 -0
- package/workflows/clone-builder.md +320 -0
- package/workflows/executar-fase.md +28 -2
- package/workflows/executar-plano.md +404 -6
- package/workflows/mobile-first.md +692 -0
- package/workflows/novo-projeto.md +22 -0
- package/workflows/rapido.md +1 -1
- package/workflows/ux-tester.md +500 -0
|
@@ -0,0 +1,2248 @@
|
|
|
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: pular direto para `<light_process>` no final deste workflow.
|
|
15
|
+
Se ausente: seguir o `<process>` normal (full).
|
|
16
|
+
</purpose>
|
|
17
|
+
|
|
18
|
+
<core_principle>
|
|
19
|
+
Este workflow REUTILIZA os processos existentes do UP. Nao reinventa — apenas orquestra os comandos existentes em sequencia sem parar para perguntar.
|
|
20
|
+
|
|
21
|
+
Onde o UP normal para e pergunta, o modo builder decide sozinho.
|
|
22
|
+
Onde o UP normal espera /clear entre fases, o modo builder continua automaticamente.
|
|
23
|
+
|
|
24
|
+
**Deteccao automatica de modo:**
|
|
25
|
+
- Codigo existente detectado (package.json, src/, app/, etc.) → BROWNFIELD
|
|
26
|
+
- Sem codigo → GREENFIELD
|
|
27
|
+
- `.plano/` existente com ROADMAP.md → BROWNFIELD (adiciona fases ao roadmap existente)
|
|
28
|
+
|
|
29
|
+
**Modo Clone (builder_type: "clone" no config.json):**
|
|
30
|
+
Quando o builder e invocado pelo clone-builder, config.json tem `builder_type: "clone"`.
|
|
31
|
+
Neste modo, TODOS os agentes devem:
|
|
32
|
+
1. **Ler .plano/clone/DESIGN-SYSTEM.md** e seguir cores, fontes, espacamento
|
|
33
|
+
2. **Ler .plano/clone/FEATURE-MAP.md** e garantir que TODAS features CLONE-* sao implementadas
|
|
34
|
+
3. **Ler .plano/clone/screenshots/** como referencia visual
|
|
35
|
+
4. **Product Analyst:** Se clone_mode=exact: NAO sugerir mudancas. Se improve: sugerir apenas adicoes.
|
|
36
|
+
5. **Frontend Specialist:** Replicar layout e design das screenshots.
|
|
37
|
+
6. **Code Reviewer:** Verificar fidelidade visual alem de production-requirements.
|
|
38
|
+
7. **Quality Gate:** Incluir clone-verifier como dimensao "Fidelidade" (20% do score).
|
|
39
|
+
</core_principle>
|
|
40
|
+
|
|
41
|
+
<process>
|
|
42
|
+
|
|
43
|
+
## Estagio 1: INTAKE (Interativo)
|
|
44
|
+
|
|
45
|
+
Este e o UNICO estagio com interacao.
|
|
46
|
+
|
|
47
|
+
### 1.0 Verificar Crash Recovery (LOCK.md)
|
|
48
|
+
|
|
49
|
+
**PRIMEIRO PASSO OBRIGATORIO — antes de qualquer outra coisa:**
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
ls .plano/LOCK.md 2>/dev/null
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**Se LOCK.md existe e `status: running`:**
|
|
56
|
+
|
|
57
|
+
Ler frontmatter do LOCK.md para extrair: `stage`, `phase`, `step`, `total_phases`.
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
61
|
+
UP > BUILDER — SESSAO ANTERIOR DETECTADA
|
|
62
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
63
|
+
|
|
64
|
+
Sessao anterior crashou ou foi interrompida.
|
|
65
|
+
|
|
66
|
+
Estagio: {stage}
|
|
67
|
+
Fase: {phase}/{total_phases}
|
|
68
|
+
Ultimo passo: {step}
|
|
69
|
+
|
|
70
|
+
Retomando de onde parou...
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**Retomar baseado no estado do LOCK:**
|
|
74
|
+
|
|
75
|
+
| stage | step | Retomar de |
|
|
76
|
+
|-------|------|-----------|
|
|
77
|
+
| `build` | `planning` | Estagio 3: re-planejar fase {phase} |
|
|
78
|
+
| `build` | `executing` | Estagio 3: re-executar fase {phase} (pula planos com SUMMARY) |
|
|
79
|
+
| `build` | `verifying` | Estagio 3: re-verificar fase {phase} |
|
|
80
|
+
| `build` | `e2e-testing` | Estagio 3: re-testar E2E fase {phase} |
|
|
81
|
+
| `build` | `reassessing` | Estagio 3: pular reassessment, avancar para fase {phase+1} |
|
|
82
|
+
| `build` | `completed` | Estagio 3: avancar para fase {phase+1} |
|
|
83
|
+
| `polish` | qualquer | Estagio 4: re-executar polish |
|
|
84
|
+
| `delivery` | qualquer | Estagio 5: re-gerar DELIVERY.md |
|
|
85
|
+
|
|
86
|
+
**Pular direto para o estagio/fase correto.** NAO re-executar estagios ja completos.
|
|
87
|
+
NAO fazer intake novamente. Ler BRIEFING.md e PROJECT.md para contexto.
|
|
88
|
+
|
|
89
|
+
**Se LOCK.md existe e `status: completed`:**
|
|
90
|
+
Deletar LOCK.md e iniciar normalmente (sessao anterior terminou com sucesso).
|
|
91
|
+
|
|
92
|
+
**Se LOCK.md NAO existe:**
|
|
93
|
+
Continuar normalmente para 1.1.
|
|
94
|
+
|
|
95
|
+
### 1.1 Carregar Defaults e Detectar Modo
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
DEFAULTS_PATH="$HOME/.claude/up/builder-defaults.md"
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Ler `$DEFAULTS_PATH` se existir. Se nao existir, informar: "Sem builder-defaults.md. Usando inferencia inteligente para decisoes nao especificadas. Crie ~/.claude/up/builder-defaults.md para personalizar."
|
|
102
|
+
|
|
103
|
+
**Detectar modo automaticamente:**
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
# Verificar se ha codigo existente
|
|
107
|
+
ls package.json go.mod Cargo.toml requirements.txt pyproject.toml pom.xml build.gradle composer.json Gemfile 2>/dev/null
|
|
108
|
+
ls -d src/ app/ lib/ cmd/ internal/ pages/ components/ 2>/dev/null | head -10
|
|
109
|
+
ls .plano/ROADMAP.md .plano/PROJECT.md 2>/dev/null
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
| Resultado | Modo |
|
|
113
|
+
|-----------|------|
|
|
114
|
+
| Sem manifesto de pacote e sem src/ | **GREENFIELD** |
|
|
115
|
+
| Manifesto ou diretorios de codigo existem | **BROWNFIELD** |
|
|
116
|
+
| `.plano/ROADMAP.md` existe | **BROWNFIELD** (projeto UP existente) |
|
|
117
|
+
|
|
118
|
+
Definir `$MODE` = `greenfield` ou `brownfield`.
|
|
119
|
+
|
|
120
|
+
### 1.2 Receber Briefing
|
|
121
|
+
|
|
122
|
+
O briefing vem como $ARGUMENTS do comando. Se vazio, pedir freeform adaptado ao modo:
|
|
123
|
+
|
|
124
|
+
**GREENFIELD:**
|
|
125
|
+
"Descreva o que voce quer construir. Inclua: objetivo, publico, features principais, stack (se tiver preferencia), e qualquer contexto relevante."
|
|
126
|
+
|
|
127
|
+
**BROWNFIELD:**
|
|
128
|
+
"Codigo existente detectado. O que voce quer implementar? Descreva a feature, mudanca ou refatoracao. Inclua: o que deve fazer, como se integra com o existente, e qualquer contexto relevante."
|
|
129
|
+
|
|
130
|
+
Esperar resposta.
|
|
131
|
+
|
|
132
|
+
### 1.3 Analisar e Classificar Gaps
|
|
133
|
+
|
|
134
|
+
Analisar o briefing e classificar informacoes faltantes:
|
|
135
|
+
|
|
136
|
+
**CRITICO (deve perguntar):**
|
|
137
|
+
- Integrações externas que precisam de credenciais (Supabase, Stripe, etc.)
|
|
138
|
+
- Tokens/chaves de API necessarias
|
|
139
|
+
- Ambiguidades de negocio que afetam arquitetura fundamentalmente
|
|
140
|
+
- Ex: "sistema multiusuario" → precisa de roles? multi-tenant?
|
|
141
|
+
- Ex: "pagamentos" → qual gateway? quais metodos?
|
|
142
|
+
|
|
143
|
+
**BROWNFIELD EXTRA — CRITICO:**
|
|
144
|
+
- Se a feature pode impactar funcionalidades existentes de forma ambigua
|
|
145
|
+
- Ex: "refatorar auth" → manter backward compatibility? migrar usuarios?
|
|
146
|
+
- Se ha integrações existentes que podem ser afetadas
|
|
147
|
+
|
|
148
|
+
**DECIDIR SOZINHO (nao perguntar):**
|
|
149
|
+
- Stack (usar defaults ou inferir; em brownfield: usar stack EXISTENTE)
|
|
150
|
+
- Design visual, cores, fontes (em brownfield: seguir design system existente)
|
|
151
|
+
- Estrutura de pastas, padroes de codigo (em brownfield: seguir convencoes existentes)
|
|
152
|
+
- Nomes de tabelas, modelos, rotas, componentes
|
|
153
|
+
- Arquitetura de API (em brownfield: seguir padrao existente)
|
|
154
|
+
- Quantidade e granularidade de fases
|
|
155
|
+
- Tudo que nao e ambiguo
|
|
156
|
+
|
|
157
|
+
### 1.4 Fazer Perguntas Criticas
|
|
158
|
+
|
|
159
|
+
Se ha gaps criticos, fazer UMA UNICA rodada de perguntas usando AskUserQuestion:
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
AskUserQuestion(
|
|
163
|
+
header: "Informacoes Necessarias",
|
|
164
|
+
question: "[Listar todos os gaps criticos em uma unica pergunta]
|
|
165
|
+
|
|
166
|
+
1. [Pergunta critica 1]
|
|
167
|
+
2. [Pergunta critica 2]
|
|
168
|
+
...
|
|
169
|
+
|
|
170
|
+
Responda todas de uma vez.",
|
|
171
|
+
followUp: null
|
|
172
|
+
)
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
**Se NAO ha gaps criticos:** Pular direto para 1.5.
|
|
176
|
+
|
|
177
|
+
### 1.5 Confirmar e Iniciar
|
|
178
|
+
|
|
179
|
+
**GREENFIELD:**
|
|
180
|
+
```
|
|
181
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
182
|
+
UP > MODO BUILDER (GREENFIELD)
|
|
183
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
184
|
+
|
|
185
|
+
Entendi o projeto. A partir de agora, vou construir tudo autonomamente.
|
|
186
|
+
|
|
187
|
+
**Briefing:** [resumo em 2-3 frases]
|
|
188
|
+
**Stack:** [stack que sera usada]
|
|
189
|
+
**Estimativa:** [N] fases
|
|
190
|
+
|
|
191
|
+
Decisoes nao especificadas serao tomadas automaticamente.
|
|
192
|
+
|
|
193
|
+
Iniciando...
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
**BROWNFIELD:**
|
|
197
|
+
```
|
|
198
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
199
|
+
UP > MODO BUILDER (BROWNFIELD)
|
|
200
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
201
|
+
|
|
202
|
+
Entendi a feature. Vou mapear o codigo existente e implementar autonomamente.
|
|
203
|
+
|
|
204
|
+
**Feature:** [resumo em 2-3 frases]
|
|
205
|
+
**Stack detectada:** [stack existente]
|
|
206
|
+
**Estimativa:** [N] fases
|
|
207
|
+
|
|
208
|
+
Convencoes e padroes existentes serao respeitados.
|
|
209
|
+
|
|
210
|
+
Iniciando mapeamento do codebase...
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
**NAO pedir confirmacao.** Iniciar direto.
|
|
214
|
+
|
|
215
|
+
═══════════════════════════════════════════════════════
|
|
216
|
+
FIM DA INTERACAO COM USUARIO
|
|
217
|
+
═══════════════════════════════════════════════════════
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## Estagio 2: ARQUITETURA (Autonomo)
|
|
222
|
+
|
|
223
|
+
### 2.1 Inicializar Projeto
|
|
224
|
+
|
|
225
|
+
```bash
|
|
226
|
+
mkdir -p .plano .plano/captures
|
|
227
|
+
git init 2>/dev/null
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
**Iniciar Dashboard automaticamente:**
|
|
231
|
+
```bash
|
|
232
|
+
node "$HOME/.claude/up/dashboard/server.js" 4040 "$(pwd)/.plano" &
|
|
233
|
+
DASH_PID=$!
|
|
234
|
+
echo "Dashboard: http://localhost:4040 (PID: $DASH_PID)"
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
Informar ao usuario:
|
|
238
|
+
```
|
|
239
|
+
Dashboard: http://localhost:4040 — acompanhe o progresso em tempo real
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
### 2.2 Pipeline de Arquitetura (3 Agentes em Sequencia)
|
|
243
|
+
|
|
244
|
+
**Pipeline:** Product Analyst → System Designer → Architect
|
|
245
|
+
Cada agente produz um documento que alimenta o proximo.
|
|
246
|
+
|
|
247
|
+
**O que acontece ANTES do pipeline depende do modo:**
|
|
248
|
+
|
|
249
|
+
#### MODO GREENFIELD — Pesquisa de Ecossistema
|
|
250
|
+
|
|
251
|
+
Spawnar 4 pesquisadores em paralelo (mesmo processo do novo-projeto):
|
|
252
|
+
|
|
253
|
+
```bash
|
|
254
|
+
mkdir -p .plano/pesquisa
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
```
|
|
258
|
+
Task(prompt="<research_type>
|
|
259
|
+
Pesquisa de Projeto -- Dimensao Stack para [dominio].
|
|
260
|
+
</research_type>
|
|
261
|
+
|
|
262
|
+
<question>
|
|
263
|
+
Qual e a stack padrao de 2025 para [dominio]? Confirme versoes e compatibilidade de: [frameworks do briefing/defaults].
|
|
264
|
+
</question>
|
|
265
|
+
|
|
266
|
+
<briefing>
|
|
267
|
+
[Briefing completo do usuario]
|
|
268
|
+
</briefing>
|
|
269
|
+
|
|
270
|
+
<output>
|
|
271
|
+
Write to: .plano/pesquisa/STACK.md
|
|
272
|
+
</output>
|
|
273
|
+
", subagent_type="up-pesquisador-projeto", description="Pesquisa Stack")
|
|
274
|
+
|
|
275
|
+
Task(prompt="<research_type>
|
|
276
|
+
Pesquisa de Projeto -- Dimensao Features para [dominio].
|
|
277
|
+
</research_type>
|
|
278
|
+
|
|
279
|
+
<question>
|
|
280
|
+
Quais features produtos de [dominio] tem? O que e obrigatorio vs diferenciador?
|
|
281
|
+
</question>
|
|
282
|
+
|
|
283
|
+
<briefing>
|
|
284
|
+
[Briefing completo do usuario]
|
|
285
|
+
</briefing>
|
|
286
|
+
|
|
287
|
+
<output>
|
|
288
|
+
Write to: .plano/pesquisa/FEATURES.md
|
|
289
|
+
</output>
|
|
290
|
+
", subagent_type="up-pesquisador-projeto", description="Pesquisa Features")
|
|
291
|
+
|
|
292
|
+
Task(prompt="<research_type>
|
|
293
|
+
Pesquisa de Projeto -- Dimensao Arquitetura para [dominio].
|
|
294
|
+
</research_type>
|
|
295
|
+
|
|
296
|
+
<question>
|
|
297
|
+
Como sistemas de [dominio] sao tipicamente estruturados? Componentes principais e padroes?
|
|
298
|
+
</question>
|
|
299
|
+
|
|
300
|
+
<briefing>
|
|
301
|
+
[Briefing completo do usuario]
|
|
302
|
+
</briefing>
|
|
303
|
+
|
|
304
|
+
<output>
|
|
305
|
+
Write to: .plano/pesquisa/ARCHITECTURE.md
|
|
306
|
+
</output>
|
|
307
|
+
", subagent_type="up-pesquisador-projeto", description="Pesquisa Arquitetura")
|
|
308
|
+
|
|
309
|
+
Task(prompt="<research_type>
|
|
310
|
+
Pesquisa de Projeto -- Dimensao Armadilhas para [dominio].
|
|
311
|
+
</research_type>
|
|
312
|
+
|
|
313
|
+
<question>
|
|
314
|
+
O que projetos de [dominio] comumente erram? Erros criticos a evitar?
|
|
315
|
+
</question>
|
|
316
|
+
|
|
317
|
+
<briefing>
|
|
318
|
+
[Briefing completo do usuario]
|
|
319
|
+
</briefing>
|
|
320
|
+
|
|
321
|
+
<output>
|
|
322
|
+
Write to: .plano/pesquisa/PITFALLS.md
|
|
323
|
+
</output>
|
|
324
|
+
", subagent_type="up-pesquisador-projeto", description="Pesquisa Armadilhas")
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
**IMPORTANTE:** Os 4 Task DEVEM ser spawnados na MESMA mensagem para execucao paralela.
|
|
328
|
+
|
|
329
|
+
Apos os 4 retornarem, spawnar sintetizador:
|
|
330
|
+
|
|
331
|
+
```
|
|
332
|
+
Task(prompt="
|
|
333
|
+
<task>
|
|
334
|
+
Sintetizar outputs de pesquisa em SUMMARY.md.
|
|
335
|
+
</task>
|
|
336
|
+
|
|
337
|
+
<files_to_read>
|
|
338
|
+
- .plano/pesquisa/STACK.md
|
|
339
|
+
- .plano/pesquisa/FEATURES.md
|
|
340
|
+
- .plano/pesquisa/ARCHITECTURE.md
|
|
341
|
+
- .plano/pesquisa/PITFALLS.md
|
|
342
|
+
</files_to_read>
|
|
343
|
+
|
|
344
|
+
<output>
|
|
345
|
+
Write to: .plano/pesquisa/SUMMARY.md
|
|
346
|
+
Commit apos escrever.
|
|
347
|
+
</output>
|
|
348
|
+
", subagent_type="up-sintetizador", description="Sintetizar pesquisa")
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
#### MODO BROWNFIELD — Mapeamento do Codebase + Pesquisa Focada
|
|
352
|
+
|
|
353
|
+
**Passo 1: Mapear codebase existente (4 agentes paralelos)**
|
|
354
|
+
|
|
355
|
+
Verificar se `.plano/codebase/` ja existe:
|
|
356
|
+
- Se existe e tem menos de 7 dias: reutilizar (pular mapeamento)
|
|
357
|
+
- Se nao existe ou esta desatualizado: mapear
|
|
358
|
+
|
|
359
|
+
```bash
|
|
360
|
+
mkdir -p .plano/codebase
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
```
|
|
364
|
+
Task(subagent_type="up-mapeador-codigo", prompt="
|
|
365
|
+
<focus>tech</focus>
|
|
366
|
+
<files_to_read>
|
|
367
|
+
- ./CLAUDE.md (se existir)
|
|
368
|
+
</files_to_read>
|
|
369
|
+
Mapear stack de tecnologia e integracoes externas.
|
|
370
|
+
Escrever .plano/codebase/STACK.md e .plano/codebase/INTEGRATIONS.md
|
|
371
|
+
", description="Mapear stack e integracoes")
|
|
372
|
+
|
|
373
|
+
Task(subagent_type="up-mapeador-codigo", prompt="
|
|
374
|
+
<focus>arch</focus>
|
|
375
|
+
<files_to_read>
|
|
376
|
+
- ./CLAUDE.md (se existir)
|
|
377
|
+
</files_to_read>
|
|
378
|
+
Mapear arquitetura e estrutura de arquivos.
|
|
379
|
+
Escrever .plano/codebase/ARCHITECTURE.md e .plano/codebase/STRUCTURE.md
|
|
380
|
+
", description="Mapear arquitetura e estrutura")
|
|
381
|
+
|
|
382
|
+
Task(subagent_type="up-mapeador-codigo", prompt="
|
|
383
|
+
<focus>quality</focus>
|
|
384
|
+
<files_to_read>
|
|
385
|
+
- ./CLAUDE.md (se existir)
|
|
386
|
+
</files_to_read>
|
|
387
|
+
Mapear convencoes de codigo e padroes de teste.
|
|
388
|
+
Escrever .plano/codebase/CONVENTIONS.md e .plano/codebase/TESTING.md
|
|
389
|
+
", description="Mapear convencoes e testes")
|
|
390
|
+
|
|
391
|
+
Task(subagent_type="up-mapeador-codigo", prompt="
|
|
392
|
+
<focus>concerns</focus>
|
|
393
|
+
<files_to_read>
|
|
394
|
+
- ./CLAUDE.md (se existir)
|
|
395
|
+
</files_to_read>
|
|
396
|
+
Identificar divida tecnica e problemas.
|
|
397
|
+
Escrever .plano/codebase/CONCERNS.md
|
|
398
|
+
", description="Mapear preocupacoes e divida tecnica")
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
**IMPORTANTE:** Os 4 Task DEVEM ser spawnados na MESMA mensagem para execucao paralela.
|
|
402
|
+
|
|
403
|
+
Verificar que os 7 documentos foram criados:
|
|
404
|
+
```bash
|
|
405
|
+
ls -la .plano/codebase/*.md | wc -l
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
Commitar mapeamento:
|
|
409
|
+
```bash
|
|
410
|
+
node "$HOME/.claude/up/bin/up-tools.cjs" commit "docs: mapear codebase existente" --files .plano/codebase/
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
**Passo 2: Pesquisa focada (apenas tecnologias NOVAS)**
|
|
414
|
+
|
|
415
|
+
Se o briefing menciona tecnologias/APIs que NAO existem no codebase atual:
|
|
416
|
+
|
|
417
|
+
```bash
|
|
418
|
+
mkdir -p .plano/pesquisa
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
Spawnar pesquisadores APENAS para tecnologias novas (ex: usuario quer adicionar Stripe mas o projeto nao tem):
|
|
422
|
+
|
|
423
|
+
```
|
|
424
|
+
Task(prompt="<research_type>
|
|
425
|
+
Pesquisa de Projeto -- Tecnologia nova para projeto existente.
|
|
426
|
+
</research_type>
|
|
427
|
+
|
|
428
|
+
<question>
|
|
429
|
+
[Perguntas focadas APENAS nas tecnologias/padroes NOVOS que serao adicionados]
|
|
430
|
+
Stack existente: [de .plano/codebase/STACK.md]
|
|
431
|
+
Novo: [tecnologia/API do briefing]
|
|
432
|
+
Como integrar o novo com o existente?
|
|
433
|
+
</question>
|
|
434
|
+
|
|
435
|
+
<briefing>
|
|
436
|
+
[Briefing do usuario]
|
|
437
|
+
</briefing>
|
|
438
|
+
|
|
439
|
+
<output>
|
|
440
|
+
Write to: .plano/pesquisa/NOVAS-TECNOLOGIAS.md
|
|
441
|
+
</output>
|
|
442
|
+
", subagent_type="up-pesquisador-projeto", description="Pesquisar tecnologias novas")
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
Se NAO ha tecnologias novas: pular pesquisa.
|
|
446
|
+
|
|
447
|
+
### 2.3 Salvar Briefing
|
|
448
|
+
|
|
449
|
+
Use a ferramenta Write para criar `.plano/BRIEFING.md` com:
|
|
450
|
+
- Modo (greenfield/brownfield)
|
|
451
|
+
- Briefing completo do usuario
|
|
452
|
+
- Respostas das perguntas criticas (se houve)
|
|
453
|
+
- Credenciais/APIs fornecidas
|
|
454
|
+
- **BROWNFIELD extra:** resumo do codebase (de .plano/codebase/), o que NAO mudar
|
|
455
|
+
|
|
456
|
+
### 2.4 Agente 1: Product Analyst
|
|
457
|
+
|
|
458
|
+
```
|
|
459
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
460
|
+
BUILDER > ANALISANDO PRODUTO
|
|
461
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
462
|
+
|
|
463
|
+
Pesquisando concorrentes e features do mercado...
|
|
464
|
+
```
|
|
465
|
+
|
|
466
|
+
```
|
|
467
|
+
Task(prompt="
|
|
468
|
+
<objective>
|
|
469
|
+
Analisar o mercado e produto: pesquisar concorrentes, definir personas, listar features obrigatorias e esperadas, mapear modulos do sistema.
|
|
470
|
+
Modo autonomo — NAO pergunte nada.
|
|
471
|
+
</objective>
|
|
472
|
+
|
|
473
|
+
<files_to_read>
|
|
474
|
+
- .plano/BRIEFING.md (Briefing do usuario)
|
|
475
|
+
- .plano/pesquisa/SUMMARY.md (Pesquisa de ecossistema, se existir)
|
|
476
|
+
</files_to_read>
|
|
477
|
+
|
|
478
|
+
<output>
|
|
479
|
+
Escrever .plano/PRODUCT-ANALYSIS.md
|
|
480
|
+
Commit apos escrever.
|
|
481
|
+
Retornar: ## PRODUCT ANALYSIS COMPLETE
|
|
482
|
+
</output>
|
|
483
|
+
", subagent_type="up-product-analyst", description="Analisar produto e mercado")
|
|
484
|
+
```
|
|
485
|
+
|
|
486
|
+
Verificar retorno `## PRODUCT ANALYSIS COMPLETE`. Se falhou: registrar e continuar (System Designer usara blueprints como fallback).
|
|
487
|
+
|
|
488
|
+
```
|
|
489
|
+
Produto: [N] concorrentes | [X] features obrigatorias | [Y] personas | [Z] modulos
|
|
490
|
+
```
|
|
491
|
+
|
|
492
|
+
### 2.5 Agente 2: System Designer
|
|
493
|
+
|
|
494
|
+
```
|
|
495
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
496
|
+
BUILDER > PROJETANDO SISTEMA
|
|
497
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
498
|
+
|
|
499
|
+
Definindo modulos, roles, schema, rotas e requisitos de producao...
|
|
500
|
+
```
|
|
501
|
+
|
|
502
|
+
```
|
|
503
|
+
Task(prompt="
|
|
504
|
+
<objective>
|
|
505
|
+
Projetar o sistema tecnico completo: modulos, roles, permissoes, schema de banco, rotas, integracoes.
|
|
506
|
+
Aplicar blueprints de producao e requisitos universais. Compilar requisitos das 5 camadas.
|
|
507
|
+
Modo autonomo — NAO pergunte nada.
|
|
508
|
+
</objective>
|
|
509
|
+
|
|
510
|
+
<mode>{greenfield|brownfield}</mode>
|
|
511
|
+
|
|
512
|
+
<files_to_read>
|
|
513
|
+
- .plano/BRIEFING.md (Briefing e stack)
|
|
514
|
+
- .plano/PRODUCT-ANALYSIS.md (Analise de produto — features, personas, modulos)
|
|
515
|
+
- .plano/pesquisa/SUMMARY.md (Pesquisa, se existir)
|
|
516
|
+
- $HOME/.claude/up/references/production-requirements.md (Requisitos universais)
|
|
517
|
+
- $HOME/.claude/up/references/blueprints/ (Blueprints — ler os relevantes ao dominio)
|
|
518
|
+
{BROWNFIELD EXTRA:}
|
|
519
|
+
- .plano/codebase/STACK.md (Stack existente)
|
|
520
|
+
- .plano/codebase/ARCHITECTURE.md (Arquitetura existente)
|
|
521
|
+
- .plano/codebase/CONVENTIONS.md (Convencoes a seguir)
|
|
522
|
+
- .plano/codebase/STRUCTURE.md (Estrutura existente)
|
|
523
|
+
- .plano/codebase/CONCERNS.md (Divida tecnica)
|
|
524
|
+
- .plano/codebase/INTEGRATIONS.md (Integracoes existentes)
|
|
525
|
+
</files_to_read>
|
|
526
|
+
|
|
527
|
+
<output>
|
|
528
|
+
Escrever .plano/SYSTEM-DESIGN.md
|
|
529
|
+
Commit apos escrever.
|
|
530
|
+
Retornar: ## SYSTEM DESIGN COMPLETE
|
|
531
|
+
</output>
|
|
532
|
+
", subagent_type="up-system-designer", description="Projetar sistema completo")
|
|
533
|
+
```
|
|
534
|
+
|
|
535
|
+
```
|
|
536
|
+
Sistema: [N] modulos | [X] roles | [Y] tabelas | [Z] requisitos compilados (5 camadas)
|
|
537
|
+
```
|
|
538
|
+
|
|
539
|
+
### 2.6 Agente 3: Architect
|
|
540
|
+
|
|
541
|
+
```
|
|
542
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
543
|
+
BUILDER > ESTRUTURANDO PROJETO
|
|
544
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
545
|
+
|
|
546
|
+
Gerando PROJECT.md, REQUIREMENTS.md, ROADMAP.md...
|
|
547
|
+
```
|
|
548
|
+
|
|
549
|
+
```
|
|
550
|
+
Task(prompt="
|
|
551
|
+
<objective>
|
|
552
|
+
Transformar analise de produto e design de sistema em documentos executaveis do UP:
|
|
553
|
+
PROJECT.md, REQUIREMENTS.md (com TODOS os requisitos das 5 camadas), ROADMAP.md, STATE.md, config.json.
|
|
554
|
+
Modo autonomo — NAO pergunte nada.
|
|
555
|
+
</objective>
|
|
556
|
+
|
|
557
|
+
<mode>{greenfield|brownfield}</mode>
|
|
558
|
+
|
|
559
|
+
<files_to_read>
|
|
560
|
+
- .plano/BRIEFING.md (Briefing original)
|
|
561
|
+
- .plano/PRODUCT-ANALYSIS.md (Analise de produto — features, personas)
|
|
562
|
+
- .plano/SYSTEM-DESIGN.md (Design tecnico — modulos, roles, schema, requisitos compilados)
|
|
563
|
+
- $HOME/.claude/up/builder-defaults.md (Defaults do usuario, se existir)
|
|
564
|
+
- $HOME/.claude/up/templates/project.md (Template PROJECT.md)
|
|
565
|
+
{BROWNFIELD EXTRA:}
|
|
566
|
+
- .plano/PROJECT.md (Existente — ATUALIZAR)
|
|
567
|
+
- .plano/ROADMAP.md (Existente — ADICIONAR fases)
|
|
568
|
+
- .plano/REQUIREMENTS.md (Existente — ADICIONAR requisitos)
|
|
569
|
+
- .plano/codebase/CONVENTIONS.md (Convencoes)
|
|
570
|
+
- ./CLAUDE.md (Instrucoes do projeto)
|
|
571
|
+
</files_to_read>
|
|
572
|
+
|
|
573
|
+
<critical>
|
|
574
|
+
O SYSTEM-DESIGN.md contem requisitos COMPILADOS das 5 camadas (explicitos + blueprints + universais + stack + mercado).
|
|
575
|
+
TODOS esses requisitos devem aparecer no REQUIREMENTS.md com REQ-IDs.
|
|
576
|
+
TODAS as features devem ter fases no ROADMAP.md.
|
|
577
|
+
O resultado deve ser um sistema COMPLETO pronto para producao, nao um MVP basico.
|
|
578
|
+
</critical>
|
|
579
|
+
|
|
580
|
+
<brownfield_rules>
|
|
581
|
+
Se brownfield:
|
|
582
|
+
1. RESPEITAR stack existente
|
|
583
|
+
2. SEGUIR convencoes existentes
|
|
584
|
+
3. ATUALIZAR documentos existentes (nao criar do zero)
|
|
585
|
+
4. ADICIONAR fases apos as existentes
|
|
586
|
+
5. ADICIONAR requisitos continuando numeracao
|
|
587
|
+
</brownfield_rules>
|
|
588
|
+
|
|
589
|
+
<constraints>
|
|
590
|
+
- builder_mode=true no config.json
|
|
591
|
+
- mode=yolo
|
|
592
|
+
- parallelization=true
|
|
593
|
+
- Commit todos arquivos ao final
|
|
594
|
+
</constraints>
|
|
595
|
+
", subagent_type="up-arquiteto", description="Estruturar projeto executavel")
|
|
596
|
+
```
|
|
597
|
+
|
|
598
|
+
### 2.7 Validar Requisitos (Quality Gate de Planejamento)
|
|
599
|
+
|
|
600
|
+
**ANTES de iniciar o build, validar que os requisitos sao completos e testaveis.**
|
|
601
|
+
|
|
602
|
+
```
|
|
603
|
+
Validando requisitos (13 checks)...
|
|
604
|
+
```
|
|
605
|
+
|
|
606
|
+
```
|
|
607
|
+
Task(
|
|
608
|
+
subagent_type="up-requirements-validator",
|
|
609
|
+
prompt="
|
|
610
|
+
<objective>
|
|
611
|
+
Validar REQUIREMENTS.md com 13 checks automaticos.
|
|
612
|
+
Calcular score e determinar se esta pronto para build.
|
|
613
|
+
</objective>
|
|
614
|
+
|
|
615
|
+
<files_to_read>
|
|
616
|
+
- .plano/REQUIREMENTS.md
|
|
617
|
+
- .plano/PROJECT.md
|
|
618
|
+
</files_to_read>
|
|
619
|
+
",
|
|
620
|
+
description="Validar requisitos (13 checks)"
|
|
621
|
+
)
|
|
622
|
+
```
|
|
623
|
+
|
|
624
|
+
Ler resultado:
|
|
625
|
+
|
|
626
|
+
**Se score >= 75% (ACCEPTABLE ou melhor):** Prosseguir.
|
|
627
|
+
```
|
|
628
|
+
Requisitos: {score}% — {GRADE} ({passed}/13 checks)
|
|
629
|
+
```
|
|
630
|
+
|
|
631
|
+
**Se score < 75% (NEEDS_WORK):** Re-spawnar arquiteto com feedback.
|
|
632
|
+
|
|
633
|
+
```
|
|
634
|
+
Requisitos insuficientes ({score}%). Refinando...
|
|
635
|
+
```
|
|
636
|
+
|
|
637
|
+
```
|
|
638
|
+
Task(
|
|
639
|
+
subagent_type="up-arquiteto",
|
|
640
|
+
prompt="
|
|
641
|
+
<objective>
|
|
642
|
+
Refinar REQUIREMENTS.md. A validacao encontrou problemas.
|
|
643
|
+
Ler REQUIREMENTS-VALIDATION.md para saber o que falta.
|
|
644
|
+
Adicionar requisitos que faltam SEM remover os existentes.
|
|
645
|
+
</objective>
|
|
646
|
+
|
|
647
|
+
<files_to_read>
|
|
648
|
+
- .plano/REQUIREMENTS-VALIDATION.md (feedback do validador)
|
|
649
|
+
- .plano/REQUIREMENTS.md (requisitos atuais)
|
|
650
|
+
- .plano/PROJECT.md
|
|
651
|
+
- .plano/SYSTEM-DESIGN.md
|
|
652
|
+
</files_to_read>
|
|
653
|
+
",
|
|
654
|
+
description="Refinar requisitos apos validacao"
|
|
655
|
+
)
|
|
656
|
+
```
|
|
657
|
+
|
|
658
|
+
Re-validar (max 2 ciclos). Se apos 2 ciclos ainda < 75%: prosseguir com advertencia.
|
|
659
|
+
|
|
660
|
+
### 2.8 Reportar Arquitetura
|
|
661
|
+
|
|
662
|
+
Ler ROADMAP.md e exibir resumo:
|
|
663
|
+
|
|
664
|
+
```
|
|
665
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
666
|
+
UP > ARQUITETURA DEFINIDA
|
|
667
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
668
|
+
|
|
669
|
+
**[Nome do Projeto]**
|
|
670
|
+
|
|
671
|
+
[N] fases | [X] requisitos (5 camadas) | [Y] modulos | [Z] roles
|
|
672
|
+
Stack: [resumo]
|
|
673
|
+
|
|
674
|
+
Pipeline: Product Analyst → System Designer → Architect
|
|
675
|
+
|
|
676
|
+
| # | Fase | Objetivo |
|
|
677
|
+
|---|------|----------|
|
|
678
|
+
| 1 | [Nome] | [Objetivo] |
|
|
679
|
+
| 2 | [Nome] | [Objetivo] |
|
|
680
|
+
...
|
|
681
|
+
|
|
682
|
+
Iniciando build...
|
|
683
|
+
```
|
|
684
|
+
|
|
685
|
+
---
|
|
686
|
+
|
|
687
|
+
### 2.9 Injetar persistência no CLAUDE.md do projeto
|
|
688
|
+
|
|
689
|
+
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:
|
|
690
|
+
|
|
691
|
+
```markdown
|
|
692
|
+
|
|
693
|
+
## UP: Persistência de Estado
|
|
694
|
+
|
|
695
|
+
Este projeto usa o sistema UP. Se `.plano/STATE.md` existir:
|
|
696
|
+
- Ao final de trabalho significativo, salvar estado: `node "$HOME/.claude/up/bin/up-tools.cjs" state save-session --summary "o que foi feito"`
|
|
697
|
+
- Se houve decisão importante, adicionar: `--decision "decisão" --phase N`
|
|
698
|
+
- Isso garante continuidade entre sessões mesmo sem usar comandos /up:
|
|
699
|
+
```
|
|
700
|
+
|
|
701
|
+
Se `./CLAUDE.md` não existe, criar com o conteúdo acima.
|
|
702
|
+
|
|
703
|
+
```bash
|
|
704
|
+
node "$HOME/.claude/up/bin/up-tools.cjs" commit "docs: adicionar persistência de estado ao CLAUDE.md" --files CLAUDE.md
|
|
705
|
+
```
|
|
706
|
+
|
|
707
|
+
---
|
|
708
|
+
|
|
709
|
+
## Estagio 3: BUILD (Autonomo — Loop de Fases)
|
|
710
|
+
|
|
711
|
+
### 3.0 Carregar Roadmap e Inicializar Lock
|
|
712
|
+
|
|
713
|
+
```bash
|
|
714
|
+
ROADMAP=$(node "$HOME/.claude/up/bin/up-tools.cjs" roadmap analyze)
|
|
715
|
+
```
|
|
716
|
+
|
|
717
|
+
Extrair lista de fases e total.
|
|
718
|
+
|
|
719
|
+
**Criar/atualizar LOCK.md (crash recovery):**
|
|
720
|
+
|
|
721
|
+
Use a ferramenta Write para criar `.plano/LOCK.md`:
|
|
722
|
+
```markdown
|
|
723
|
+
---
|
|
724
|
+
status: running
|
|
725
|
+
stage: build
|
|
726
|
+
phase: 1
|
|
727
|
+
step: planning
|
|
728
|
+
total_phases: [N]
|
|
729
|
+
started: [timestamp ISO]
|
|
730
|
+
updated: [timestamp ISO]
|
|
731
|
+
pid: [process info]
|
|
732
|
+
---
|
|
733
|
+
|
|
734
|
+
# Builder Lock
|
|
735
|
+
|
|
736
|
+
Builder em execucao. Se a sessao morreu, use `/up:modo-builder` novamente para retomar.
|
|
737
|
+
O builder detectara este LOCK e continuara de onde parou.
|
|
738
|
+
```
|
|
739
|
+
|
|
740
|
+
**O LOCK.md e atualizado a cada transicao:**
|
|
741
|
+
- Antes de planejar: `step: planning, phase: X`
|
|
742
|
+
- Antes de executar: `step: executing, phase: X`
|
|
743
|
+
- Antes de verificar: `step: verifying, phase: X`
|
|
744
|
+
- Antes de E2E: `step: e2e-testing, phase: X`
|
|
745
|
+
- Antes de reassessment: `step: reassessing, phase: X`
|
|
746
|
+
- Ao completar fase: `step: completed, phase: X`
|
|
747
|
+
- Ao entrar no Polish: `stage: polish`
|
|
748
|
+
- Ao entrar na Entrega: `stage: delivery`
|
|
749
|
+
- Ao finalizar: `status: completed` (e depois deletar o LOCK.md)
|
|
750
|
+
|
|
751
|
+
**Formato de atualizacao rapida:**
|
|
752
|
+
```bash
|
|
753
|
+
# Atualizar LOCK via sed (rapido, sem reescrever arquivo inteiro)
|
|
754
|
+
sed -i "s/^step: .*/step: executing/" .plano/LOCK.md
|
|
755
|
+
sed -i "s/^phase: .*/phase: ${PHASE_NUMBER}/" .plano/LOCK.md
|
|
756
|
+
sed -i "s/^updated: .*/updated: $(date -u +%Y-%m-%dT%H:%M:%SZ)/" .plano/LOCK.md
|
|
757
|
+
```
|
|
758
|
+
|
|
759
|
+
### 3.1 Loop Principal
|
|
760
|
+
|
|
761
|
+
Para cada fase no ROADMAP (da primeira a ultima):
|
|
762
|
+
|
|
763
|
+
```
|
|
764
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
765
|
+
BUILDER > FASE {X}/{TOTAL}: {Nome}
|
|
766
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
767
|
+
```
|
|
768
|
+
|
|
769
|
+
#### 3.1.1 Planejar Fase
|
|
770
|
+
|
|
771
|
+
Spawnar up-planejador com flag de modo builder:
|
|
772
|
+
|
|
773
|
+
```
|
|
774
|
+
Task(prompt="
|
|
775
|
+
<planning_context>
|
|
776
|
+
**Fase:** {phase_number}
|
|
777
|
+
**Modo:** builder (autonomo -- NAO use AskUserQuestion)
|
|
778
|
+
|
|
779
|
+
<files_to_read>
|
|
780
|
+
- .plano/STATE.md (Estado do Projeto)
|
|
781
|
+
- .plano/ROADMAP.md (Roteiro)
|
|
782
|
+
- .plano/REQUIREMENTS.md (Requisitos)
|
|
783
|
+
- .plano/pesquisa/SUMMARY.md (Pesquisa - se existir)
|
|
784
|
+
- .plano/codebase/CONVENTIONS.md (Convencoes - se existir, BROWNFIELD)
|
|
785
|
+
- .plano/codebase/CONCERNS.md (Divida tecnica - se existir, BROWNFIELD)
|
|
786
|
+
- .plano/codebase/ARCHITECTURE.md (Arquitetura - se existir, BROWNFIELD)
|
|
787
|
+
- .plano/codebase/STRUCTURE.md (Estrutura - se existir, BROWNFIELD)
|
|
788
|
+
- ./CLAUDE.md (Instrucoes do projeto, se existir)
|
|
789
|
+
</files_to_read>
|
|
790
|
+
|
|
791
|
+
**IDs de requisitos da fase:** {phase_req_ids}
|
|
792
|
+
**Instrucoes do projeto:** Ler ./CLAUDE.md se existir
|
|
793
|
+
|
|
794
|
+
<builder_mode>
|
|
795
|
+
Voce esta no modo builder. Regras especiais:
|
|
796
|
+
1. NAO use AskUserQuestion em hipotese alguma
|
|
797
|
+
2. Se falta CONTEXT.md, planeje usando pesquisa + requisitos
|
|
798
|
+
3. Se ha ambiguidade, tome a decisao mais razoavel e documente no plano
|
|
799
|
+
4. Se precisa de informacao que normalmente perguntaria, infira e registre como decisao
|
|
800
|
+
5. Pesquisa inline: SEMPRE faca (nivel 2+) para garantir implementacoes corretas
|
|
801
|
+
6. CAPTURES: Se durante o planejamento voce descobrir algo importante (incompatibilidade, risco, oportunidade, decisao critica), registre em .plano/captures/ como arquivo markdown curto
|
|
802
|
+
</builder_mode>
|
|
803
|
+
|
|
804
|
+
<self_check>
|
|
805
|
+
Apos criar os planos, auto-verificar:
|
|
806
|
+
- [ ] Cada requisito da fase mapeado a um plano
|
|
807
|
+
- [ ] Frontmatter valido (wave, depends_on, files_modified, autonomous)
|
|
808
|
+
- [ ] Tarefas sao especificas e acionaveis
|
|
809
|
+
- [ ] Dependencias corretamente identificadas
|
|
810
|
+
- [ ] Waves atribuidas para execucao paralela
|
|
811
|
+
- [ ] must_haves derivados do objetivo da fase
|
|
812
|
+
Se algo falhar, corrija antes de retornar.
|
|
813
|
+
</self_check>
|
|
814
|
+
|
|
815
|
+
<output>
|
|
816
|
+
Escrever PLAN.md em: .plano/fases/{phase_dir}/
|
|
817
|
+
Retornar: ## PLANNING COMPLETE com resumo dos planos
|
|
818
|
+
</output>
|
|
819
|
+
", subagent_type="up-planejador", description="Planejar Fase {phase_number}")
|
|
820
|
+
```
|
|
821
|
+
|
|
822
|
+
Verificar retorno:
|
|
823
|
+
- `## PLANNING COMPLETE` → prosseguir para execucao
|
|
824
|
+
- `## PLANNING INCONCLUSIVE` → tentar novamente com mais contexto (max 2 tentativas)
|
|
825
|
+
|
|
826
|
+
```
|
|
827
|
+
Fase {X}: Planejada — {N} planos em {M} waves
|
|
828
|
+
```
|
|
829
|
+
|
|
830
|
+
#### 3.1.2 Executar Fase (com Specialist Routing)
|
|
831
|
+
|
|
832
|
+
Usar o mesmo processo do workflow executar-fase.md:
|
|
833
|
+
|
|
834
|
+
```bash
|
|
835
|
+
INIT=$(node "$HOME/.claude/up/bin/up-tools.cjs" init executar-fase "${PHASE_NUMBER}")
|
|
836
|
+
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
837
|
+
```
|
|
838
|
+
|
|
839
|
+
Parse JSON para obter: `phase_dir`, `plan_count`, `incomplete_count`, `parallelization`.
|
|
840
|
+
|
|
841
|
+
```bash
|
|
842
|
+
PLAN_INDEX=$(node "$HOME/.claude/up/bin/up-tools.cjs" phase-plan-index "${PHASE_NUMBER}")
|
|
843
|
+
```
|
|
844
|
+
|
|
845
|
+
Parse para obter waves e planos.
|
|
846
|
+
|
|
847
|
+
**Specialist Routing — escolher o agente certo por plano:**
|
|
848
|
+
|
|
849
|
+
Para cada plano, ler o frontmatter e detectar o dominio:
|
|
850
|
+
|
|
851
|
+
| Se o plano envolve... | Usar agente |
|
|
852
|
+
|----------------------|-------------|
|
|
853
|
+
| Componentes React, paginas, UI, CSS, Tailwind | `up-frontend-specialist` |
|
|
854
|
+
| API routes, endpoints, middleware, validacao | `up-backend-specialist` |
|
|
855
|
+
| Schema, migrations, seeds, RLS, queries | `up-database-specialist` |
|
|
856
|
+
| Misto ou infra | `up-executor` (generico) |
|
|
857
|
+
|
|
858
|
+
**Deteccao:** Ler campo `type` do frontmatter do PLAN.md. Se nao existir, inferir dos `<files>` das tasks:
|
|
859
|
+
- Arquivos em `app/`, `components/`, `*.tsx` com JSX → frontend
|
|
860
|
+
- Arquivos em `api/`, `server/`, `middleware/`, `route.ts` → backend
|
|
861
|
+
- Arquivos `.sql`, `migrations/`, `schema/`, `seed` → database
|
|
862
|
+
- Misto → usar executor generico
|
|
863
|
+
|
|
864
|
+
**Executar waves:**
|
|
865
|
+
|
|
866
|
+
Para cada wave, spawnar agentes especializados em paralelo (se parallelization=true):
|
|
867
|
+
|
|
868
|
+
```
|
|
869
|
+
Task(
|
|
870
|
+
subagent_type="{up-frontend-specialist | up-backend-specialist | up-database-specialist | up-executor}",
|
|
871
|
+
prompt="
|
|
872
|
+
<objective>
|
|
873
|
+
Executar plano {plan_number} da fase {phase_number}-{phase_name}.
|
|
874
|
+
Commitar cada tarefa atomicamente. Criar SUMMARY.md. Atualizar STATE.md e ROADMAP.md.
|
|
875
|
+
</objective>
|
|
876
|
+
|
|
877
|
+
<execution_context>
|
|
878
|
+
@~/.claude/up/workflows/executar-plano.md
|
|
879
|
+
@~/.claude/up/references/checkpoints.md
|
|
880
|
+
</execution_context>
|
|
881
|
+
|
|
882
|
+
<builder_mode>
|
|
883
|
+
Modo builder ativo. Regras especiais:
|
|
884
|
+
1. NAO use AskUserQuestion
|
|
885
|
+
2. Checkpoints tipo checkpoint:human-verify → auto-aprovar e registrar
|
|
886
|
+
3. Checkpoints tipo checkpoint:decision → tomar a decisao mais razoavel
|
|
887
|
+
4. Checkpoints tipo checkpoint:human-action → se possivel automatizar, faca; se nao, registrar como pendente
|
|
888
|
+
5. Deviation Rule 4 (architectural changes) → decidir autonomamente e registrar no SUMMARY
|
|
889
|
+
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.
|
|
890
|
+
</builder_mode>
|
|
891
|
+
|
|
892
|
+
<files_to_read>
|
|
893
|
+
Ler estes arquivos no inicio da execucao usando a ferramenta Read:
|
|
894
|
+
- {phase_dir}/{plan_file} (Plano)
|
|
895
|
+
- .plano/STATE.md (Estado)
|
|
896
|
+
- .plano/config.json (Config)
|
|
897
|
+
- ./CLAUDE.md (Instrucoes do projeto, se existir)
|
|
898
|
+
</files_to_read>
|
|
899
|
+
|
|
900
|
+
<success_criteria>
|
|
901
|
+
- [ ] Todas tarefas executadas
|
|
902
|
+
- [ ] Cada tarefa committed individualmente
|
|
903
|
+
- [ ] SUMMARY.md criado no diretorio do plano
|
|
904
|
+
- [ ] STATE.md atualizado
|
|
905
|
+
- [ ] ROADMAP.md atualizado com progresso
|
|
906
|
+
</success_criteria>
|
|
907
|
+
"
|
|
908
|
+
)
|
|
909
|
+
```
|
|
910
|
+
|
|
911
|
+
**Spot-check apos cada wave:**
|
|
912
|
+
- Verificar que SUMMARYs existem
|
|
913
|
+
- Verificar que commits existem via `git log --oneline --grep`
|
|
914
|
+
- Se falha: tentar re-executar o plano falho (max 1 retry)
|
|
915
|
+
|
|
916
|
+
```
|
|
917
|
+
Wave {N}: {count} planos executados
|
|
918
|
+
```
|
|
919
|
+
|
|
920
|
+
#### 3.1.3 Reflect (Code Review)
|
|
921
|
+
|
|
922
|
+
**O passo "Reflect" do ciclo RARV — revisa codigo ANTES da verificacao formal.**
|
|
923
|
+
|
|
924
|
+
```
|
|
925
|
+
Fase {X}: Revisando codigo...
|
|
926
|
+
```
|
|
927
|
+
|
|
928
|
+
Spawnar code reviewer:
|
|
929
|
+
|
|
930
|
+
```
|
|
931
|
+
Task(
|
|
932
|
+
subagent_type="up-code-reviewer",
|
|
933
|
+
prompt="
|
|
934
|
+
<objective>
|
|
935
|
+
Revisar codigo da fase {phase_number} contra production-requirements e padroes de qualidade.
|
|
936
|
+
Identificar problemas com localizacao exata e sugestao de fix.
|
|
937
|
+
</objective>
|
|
938
|
+
|
|
939
|
+
<files_to_read>
|
|
940
|
+
- {phase_dir}/*-SUMMARY.md (O que foi implementado)
|
|
941
|
+
- $HOME/.claude/up/references/production-requirements.md (Checklist de producao)
|
|
942
|
+
- ./CLAUDE.md (Convencoes do projeto, se existir)
|
|
943
|
+
</files_to_read>
|
|
944
|
+
|
|
945
|
+
<constraints>
|
|
946
|
+
- Revisar TODOS os arquivos modificados na fase (via git log --grep)
|
|
947
|
+
- Verificar 6 dimensoes: production requirements, code quality, security, performance, edge cases, consistency
|
|
948
|
+
- Gerar CODE-REVIEW.md com issues priorizadas e fixes sugeridos
|
|
949
|
+
</constraints>
|
|
950
|
+
",
|
|
951
|
+
description="Code Review da Fase {phase_number}"
|
|
952
|
+
)
|
|
953
|
+
```
|
|
954
|
+
|
|
955
|
+
Ler resultado do code review:
|
|
956
|
+
|
|
957
|
+
**Se ha issues CRITICAS (score < 7):**
|
|
958
|
+
- Spawnar executor para corrigir issues criticas
|
|
959
|
+
- Re-rodar code review (max 2 ciclos de correcao)
|
|
960
|
+
|
|
961
|
+
**Se score >= 7:**
|
|
962
|
+
- Registrar score e prosseguir
|
|
963
|
+
|
|
964
|
+
```
|
|
965
|
+
Reflect: score {N}/10 | {criticas} criticas | {importantes} importantes | {menores} menores
|
|
966
|
+
```
|
|
967
|
+
|
|
968
|
+
#### 3.1.4 Verificar Fase
|
|
969
|
+
|
|
970
|
+
Spawnar verificador autonomo:
|
|
971
|
+
|
|
972
|
+
```
|
|
973
|
+
Task(
|
|
974
|
+
prompt="Verificar atingimento do objetivo da fase {phase_number}.
|
|
975
|
+
Diretorio da fase: {phase_dir}
|
|
976
|
+
Objetivo da fase: {goal do ROADMAP.md}
|
|
977
|
+
IDs de requisitos da fase: {phase_req_ids}
|
|
978
|
+
|
|
979
|
+
<builder_mode>
|
|
980
|
+
Modo builder. NAO use AskUserQuestion.
|
|
981
|
+
- Verificar must_haves contra codebase real
|
|
982
|
+
- Cross-referenciar requisitos do frontmatter contra REQUIREMENTS.md
|
|
983
|
+
- Rodar testes automatizados se existirem
|
|
984
|
+
- Se human_needed: considerar como PASSED (sera verificado no final)
|
|
985
|
+
- Criar VERIFICATION.md
|
|
986
|
+
</builder_mode>
|
|
987
|
+
",
|
|
988
|
+
subagent_type="up-verificador"
|
|
989
|
+
)
|
|
990
|
+
```
|
|
991
|
+
|
|
992
|
+
Ler status da verificacao:
|
|
993
|
+
|
|
994
|
+
```bash
|
|
995
|
+
grep "^status:" "$PHASE_DIR"/*-VERIFICATION.md | cut -d: -f2 | tr -d ' '
|
|
996
|
+
```
|
|
997
|
+
|
|
998
|
+
| Status | Acao no Builder |
|
|
999
|
+
|--------|----------------|
|
|
1000
|
+
| `passed` | Marcar fase completa, avancar |
|
|
1001
|
+
| `gaps_found` | Tentar corrigir (planejar gaps + executar, max 1 ciclo) |
|
|
1002
|
+
| `human_needed` | Registrar para revisao final, avancar |
|
|
1003
|
+
|
|
1004
|
+
#### 3.1.5 Teste E2E da Fase (Playwright)
|
|
1005
|
+
|
|
1006
|
+
**Executar APENAS se a fase tem UI/rotas** (pular para fases de infra, schema, config).
|
|
1007
|
+
|
|
1008
|
+
Detecao: Se PLANs da fase criam/modificam arquivos em `app/`, `pages/`, `src/components/`, `src/features/` ou arquivos `page.tsx`/`route.ts` → tem UI, testar.
|
|
1009
|
+
|
|
1010
|
+
**Referencia:** `@~/.claude/up/workflows/builder-e2e.md` — Passo 3 (Teste por Fase)
|
|
1011
|
+
|
|
1012
|
+
1. Subir dev server (se ainda nao esta rodando):
|
|
1013
|
+
```bash
|
|
1014
|
+
# Detectar e subir — ver builder-e2e.md Passo 1
|
|
1015
|
+
# Manter rodando entre fases (nao matar apos cada fase)
|
|
1016
|
+
```
|
|
1017
|
+
|
|
1018
|
+
2. Extrair must_haves da fase e traduzir em testes E2E
|
|
1019
|
+
|
|
1020
|
+
3. Para cada teste:
|
|
1021
|
+
- Navegar para rota relevante
|
|
1022
|
+
- `browser_snapshot()` para obter refs dos elementos
|
|
1023
|
+
- Verificar que elementos esperados existem
|
|
1024
|
+
- Interagir (clicar, preencher, submeter) se necessario
|
|
1025
|
+
- `browser_snapshot()` para verificar resultado
|
|
1026
|
+
- `browser_take_screenshot()` como evidencia em `.plano/fases/[fase]/screenshots/`
|
|
1027
|
+
- `browser_console_messages(level: "error")` — checar erros JS
|
|
1028
|
+
- `browser_network_requests()` — checar falhas de API
|
|
1029
|
+
|
|
1030
|
+
4. Se bugs encontrados:
|
|
1031
|
+
- Para cada bug: loop de correcao (max 5 tentativas)
|
|
1032
|
+
- Analisar (screenshot + console + network + codigo)
|
|
1033
|
+
- Se tentativa > 1: analisar por que correcao anterior falhou
|
|
1034
|
+
- Corrigir inline
|
|
1035
|
+
- Commit: `fix(fase-{X}): [descricao] (tentativa N)`
|
|
1036
|
+
- Re-testar o teste que falhou
|
|
1037
|
+
- Se passou: proximo bug. Se falhou: proxima tentativa
|
|
1038
|
+
- Apos 5 tentativas sem sucesso: registrar como nao corrigido
|
|
1039
|
+
|
|
1040
|
+
5. Criar `.plano/fases/[fase]/E2E-RESULTS.md` com resultados
|
|
1041
|
+
|
|
1042
|
+
```
|
|
1043
|
+
Fase {X}: E2E — {passed}/{total} testes passaram [{bugs} bugs, {fixed} corrigidos]
|
|
1044
|
+
```
|
|
1045
|
+
|
|
1046
|
+
**Se nao tem UI:** Pular silenciosamente.
|
|
1047
|
+
**Se dev server falha:** Registrar e pular E2E (nao bloqueia).
|
|
1048
|
+
|
|
1049
|
+
#### 3.1.6 Marcar Fase Completa
|
|
1050
|
+
|
|
1051
|
+
```bash
|
|
1052
|
+
COMPLETION=$(node "$HOME/.claude/up/bin/up-tools.cjs" phase complete "${PHASE_NUMBER}")
|
|
1053
|
+
```
|
|
1054
|
+
|
|
1055
|
+
```bash
|
|
1056
|
+
node "$HOME/.claude/up/bin/up-tools.cjs" commit "docs(fase-{X}): completar execucao" --files .plano/ROADMAP.md .plano/STATE.md .plano/REQUIREMENTS.md
|
|
1057
|
+
```
|
|
1058
|
+
|
|
1059
|
+
```
|
|
1060
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1061
|
+
BUILDER > FASE {X}/{TOTAL} COMPLETA ✓
|
|
1062
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1063
|
+
```
|
|
1064
|
+
|
|
1065
|
+
#### 3.1.7 Reassessment (Re-avaliacao do Roadmap)
|
|
1066
|
+
|
|
1067
|
+
Apos cada fase completa, verificar se o roadmap ainda faz sentido ANTES de planejar a proxima.
|
|
1068
|
+
|
|
1069
|
+
**Quando fazer reassessment:**
|
|
1070
|
+
- SEMPRE apos completar uma fase (rapido, ~30 segundos)
|
|
1071
|
+
- NAO requer agente separado — o orquestrador faz inline
|
|
1072
|
+
|
|
1073
|
+
**Processo:**
|
|
1074
|
+
|
|
1075
|
+
1. Ler ROADMAP.md (fases futuras) e SUMMARYs da fase recem-completa
|
|
1076
|
+
2. Verificar 3 coisas:
|
|
1077
|
+
|
|
1078
|
+
**a) Fases futuras ainda sao necessarias?**
|
|
1079
|
+
- A fase recem-completa pode ter resolvido algo que uma fase futura faria
|
|
1080
|
+
- Ex: Fase 3 (auth) pode ter adicionado RBAC que Fase 6 (permissoes) planejava
|
|
1081
|
+
- Se sim: marcar fase futura como "Removida (coberta pela Fase X)" no ROADMAP
|
|
1082
|
+
|
|
1083
|
+
**b) Fases futuras precisam de ajuste?**
|
|
1084
|
+
- Decisoes arquiteturais da fase atual podem mudar o escopo de fases futuras
|
|
1085
|
+
- Ex: Escolheu tRPC ao inves de REST — fases de API precisam refletir isso
|
|
1086
|
+
- Se sim: atualizar objetivo/criterios da fase futura no ROADMAP
|
|
1087
|
+
|
|
1088
|
+
**c) Surgiram necessidades novas?**
|
|
1089
|
+
- Ler `.plano/captures/` para insights capturados durante a fase
|
|
1090
|
+
- Se algum insight e CRITICO (bloqueia fases futuras): adicionar nova fase
|
|
1091
|
+
- Se e melhoria: ignorar (sera coberto pelo estagio Polish)
|
|
1092
|
+
|
|
1093
|
+
3. Se houve mudancas no roadmap:
|
|
1094
|
+
|
|
1095
|
+
```bash
|
|
1096
|
+
node "$HOME/.claude/up/bin/up-tools.cjs" commit "docs: reassessment apos fase {X}" --files .plano/ROADMAP.md
|
|
1097
|
+
```
|
|
1098
|
+
|
|
1099
|
+
```
|
|
1100
|
+
Reassessment: [sem mudancas | X fases ajustadas | Y fases removidas | Z fases adicionadas]
|
|
1101
|
+
```
|
|
1102
|
+
|
|
1103
|
+
**Se NAO houve mudancas:** Seguir silenciosamente (1 linha de log apenas).
|
|
1104
|
+
|
|
1105
|
+
#### 3.1.8 Avancar para Proxima Fase
|
|
1106
|
+
|
|
1107
|
+
Voltar para 3.1.1 com a proxima fase. Sem /clear — continuar no mesmo contexto.
|
|
1108
|
+
|
|
1109
|
+
**Gestao de contexto:** Se o contexto estiver acima de ~60%, fazer um checkpoint:
|
|
1110
|
+
- Salvar estado atual em STATE.md
|
|
1111
|
+
- Registrar fase atual e status
|
|
1112
|
+
- Continuar (com 1M de contexto, a maioria dos projetos cabe)
|
|
1113
|
+
|
|
1114
|
+
---
|
|
1115
|
+
|
|
1116
|
+
## Estagio 4: QUALITY GATE LOOP (Autonomo)
|
|
1117
|
+
|
|
1118
|
+
Executado APOS todas as fases do build completarem.
|
|
1119
|
+
Ciclo de avaliacao → correcao → re-avaliacao ate atingir score >= 9.0/10.
|
|
1120
|
+
|
|
1121
|
+
**Score Composto (6 dimensoes):**
|
|
1122
|
+
|
|
1123
|
+
| Dimensao | Peso | Como mede |
|
|
1124
|
+
|----------|------|-----------|
|
|
1125
|
+
| Funcionalidade | 25% | Requisitos atendidos / total (REQUIREMENTS.md) |
|
|
1126
|
+
| E2E | 20% | Testes passando / total (Playwright) |
|
|
1127
|
+
| UX | 15% | Score do UX tester (6 sub-dimensoes) |
|
|
1128
|
+
| Responsividade | 15% | Score do mobile-first |
|
|
1129
|
+
| Codigo | 15% | Score do melhorias (UX+perf+modernidade) |
|
|
1130
|
+
| Completude | 10% | Paginas sem erro / total (smoke test) |
|
|
1131
|
+
|
|
1132
|
+
**Limites de seguranca:**
|
|
1133
|
+
- Max 5 ciclos de refinamento
|
|
1134
|
+
- Se ciclo melhorou < 0.3 pontos: parar (diminishing returns)
|
|
1135
|
+
- Nunca entregar abaixo de 7.0 (se ta abaixo, tem bug grave)
|
|
1136
|
+
- Meta: score >= 9.0
|
|
1137
|
+
|
|
1138
|
+
### 4.0 Iniciar Quality Gate
|
|
1139
|
+
|
|
1140
|
+
```
|
|
1141
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1142
|
+
BUILDER > QUALITY GATE — CICLO 1
|
|
1143
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1144
|
+
```
|
|
1145
|
+
|
|
1146
|
+
Definir `$CYCLE = 1`, `$PREVIOUS_SCORE = 0`.
|
|
1147
|
+
|
|
1148
|
+
### 4.1 Rodar Avaliadores (Todos em Paralelo)
|
|
1149
|
+
|
|
1150
|
+
**4.1a Melhorias de Codigo** (3 auditores paralelos → sintetizador)
|
|
1151
|
+
|
|
1152
|
+
Mesmo processo existente: spawnar up-auditor-ux, up-auditor-performance, up-auditor-modernidade em paralelo, depois up-sintetizador-melhorias.
|
|
1153
|
+
|
|
1154
|
+
### 4.1 Rodar Melhorias
|
|
1155
|
+
|
|
1156
|
+
```
|
|
1157
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1158
|
+
BUILDER > POLIMENTO — AUDITORIA
|
|
1159
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1160
|
+
```
|
|
1161
|
+
|
|
1162
|
+
```bash
|
|
1163
|
+
mkdir -p .plano/melhorias
|
|
1164
|
+
```
|
|
1165
|
+
|
|
1166
|
+
Spawnar 3 auditores em paralelo (mesmo processo do melhorias.md):
|
|
1167
|
+
|
|
1168
|
+
```
|
|
1169
|
+
Task(subagent_type="up-auditor-ux", prompt="
|
|
1170
|
+
<objective>
|
|
1171
|
+
Executar auditoria completa de UX/usabilidade do codebase deste projeto.
|
|
1172
|
+
Salvar resultado em .plano/melhorias/ux-sugestoes.md
|
|
1173
|
+
</objective>
|
|
1174
|
+
<files_to_read>
|
|
1175
|
+
- ./CLAUDE.md (se existir)
|
|
1176
|
+
</files_to_read>
|
|
1177
|
+
<constraints>
|
|
1178
|
+
- Carregar reference: $HOME/.claude/up/references/audit-ux.md
|
|
1179
|
+
- Carregar template: $HOME/.claude/up/templates/suggestion.md
|
|
1180
|
+
- Salvar resultado em .plano/melhorias/ux-sugestoes.md
|
|
1181
|
+
- Retornar resumo: ## AUDITORIA UX COMPLETA
|
|
1182
|
+
</constraints>
|
|
1183
|
+
", description="Auditoria UX")
|
|
1184
|
+
|
|
1185
|
+
Task(subagent_type="up-auditor-performance", prompt="
|
|
1186
|
+
<objective>
|
|
1187
|
+
Executar auditoria completa de performance do codebase deste projeto.
|
|
1188
|
+
Salvar resultado em .plano/melhorias/performance-sugestoes.md
|
|
1189
|
+
</objective>
|
|
1190
|
+
<files_to_read>
|
|
1191
|
+
- ./CLAUDE.md (se existir)
|
|
1192
|
+
</files_to_read>
|
|
1193
|
+
<constraints>
|
|
1194
|
+
- Carregar reference: $HOME/.claude/up/references/audit-performance.md
|
|
1195
|
+
- Carregar template: $HOME/.claude/up/templates/suggestion.md
|
|
1196
|
+
- Salvar resultado em .plano/melhorias/performance-sugestoes.md
|
|
1197
|
+
- Retornar resumo: ## AUDITORIA PERFORMANCE COMPLETA
|
|
1198
|
+
</constraints>
|
|
1199
|
+
", description="Auditoria Performance")
|
|
1200
|
+
|
|
1201
|
+
Task(subagent_type="up-auditor-modernidade", prompt="
|
|
1202
|
+
<objective>
|
|
1203
|
+
Executar auditoria completa de modernidade do codebase deste projeto.
|
|
1204
|
+
Salvar resultado em .plano/melhorias/modernidade-sugestoes.md
|
|
1205
|
+
</objective>
|
|
1206
|
+
<files_to_read>
|
|
1207
|
+
- ./CLAUDE.md (se existir)
|
|
1208
|
+
</files_to_read>
|
|
1209
|
+
<constraints>
|
|
1210
|
+
- Carregar reference: $HOME/.claude/up/references/audit-modernidade.md
|
|
1211
|
+
- Carregar template: $HOME/.claude/up/templates/suggestion.md
|
|
1212
|
+
- Salvar resultado em .plano/melhorias/modernidade-sugestoes.md
|
|
1213
|
+
- Retornar resumo: ## AUDITORIA MODERNIDADE COMPLETA
|
|
1214
|
+
</constraints>
|
|
1215
|
+
", description="Auditoria Modernidade")
|
|
1216
|
+
```
|
|
1217
|
+
|
|
1218
|
+
Apos os 3 retornarem, spawnar sintetizador:
|
|
1219
|
+
|
|
1220
|
+
```
|
|
1221
|
+
Task(subagent_type="up-sintetizador-melhorias", prompt="
|
|
1222
|
+
<objective>
|
|
1223
|
+
Sintetizar sugestoes dos 3 auditores em relatorio consolidado.
|
|
1224
|
+
Salvar em .plano/melhorias/RELATORIO.md
|
|
1225
|
+
</objective>
|
|
1226
|
+
<files_to_read>
|
|
1227
|
+
- .plano/melhorias/ux-sugestoes.md
|
|
1228
|
+
- .plano/melhorias/performance-sugestoes.md
|
|
1229
|
+
- .plano/melhorias/modernidade-sugestoes.md
|
|
1230
|
+
- ./CLAUDE.md (se existir)
|
|
1231
|
+
</files_to_read>
|
|
1232
|
+
<constraints>
|
|
1233
|
+
- Carregar template: $HOME/.claude/up/templates/report.md
|
|
1234
|
+
- Carregar template: $HOME/.claude/up/templates/suggestion.md
|
|
1235
|
+
- Deduplicar, detectar conflitos, classificar em 4 quadrantes
|
|
1236
|
+
- Retornar resumo: ## SINTESE DE MELHORIAS COMPLETA
|
|
1237
|
+
</constraints>
|
|
1238
|
+
", description="Sintetizar melhorias")
|
|
1239
|
+
```
|
|
1240
|
+
|
|
1241
|
+
### 4.2 Aplicar Quick Wins
|
|
1242
|
+
|
|
1243
|
+
Ler `.plano/melhorias/RELATORIO.md` e extrair sugestoes do quadrante "Quick Wins" (alto impacto, baixo esforco).
|
|
1244
|
+
|
|
1245
|
+
**Filtro:** Aplicar apenas Quick Wins com impacto >= "Grande" ou "Medio".
|
|
1246
|
+
|
|
1247
|
+
Se ha Quick Wins para aplicar:
|
|
1248
|
+
|
|
1249
|
+
1. Gerar fases a partir do relatorio:
|
|
1250
|
+
```bash
|
|
1251
|
+
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
|
|
1252
|
+
```
|
|
1253
|
+
|
|
1254
|
+
2. Para cada fase gerada de melhoria:
|
|
1255
|
+
- Planejar (up-planejador com builder_mode)
|
|
1256
|
+
- Executar (up-executor com builder_mode)
|
|
1257
|
+
- Verificar rapidamente
|
|
1258
|
+
|
|
1259
|
+
3. Commitar melhorias:
|
|
1260
|
+
```bash
|
|
1261
|
+
node "$HOME/.claude/up/bin/up-tools.cjs" commit "polish: aplicar quick wins de melhorias" --files .plano/ROADMAP.md .plano/STATE.md
|
|
1262
|
+
```
|
|
1263
|
+
|
|
1264
|
+
```
|
|
1265
|
+
Melhorias: [N] quick wins aplicadas
|
|
1266
|
+
```
|
|
1267
|
+
|
|
1268
|
+
Se nao ha Quick Wins ou todas tem impacto baixo:
|
|
1269
|
+
```
|
|
1270
|
+
Melhorias: auditoria completa, sem quick wins para aplicar automaticamente
|
|
1271
|
+
Relatorio completo em .plano/melhorias/RELATORIO.md
|
|
1272
|
+
```
|
|
1273
|
+
|
|
1274
|
+
### 4.3 UX Tester (Navegar como Usuario Real)
|
|
1275
|
+
|
|
1276
|
+
**Executar APENAS se o projeto tem UI web.** Pular para CLIs, APIs puras, bibliotecas.
|
|
1277
|
+
|
|
1278
|
+
```
|
|
1279
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1280
|
+
BUILDER > POLIMENTO — UX REVIEW
|
|
1281
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1282
|
+
```
|
|
1283
|
+
|
|
1284
|
+
**Referencia:** `@~/.claude/up/workflows/ux-tester.md`
|
|
1285
|
+
|
|
1286
|
+
Executar o workflow completo do UX Tester:
|
|
1287
|
+
|
|
1288
|
+
1. Subir dev server (se nao esta rodando do E2E)
|
|
1289
|
+
2. Descobrir fluxos (de PROJECT.md/REQUIREMENTS.md)
|
|
1290
|
+
3. Definir 2-3 personas
|
|
1291
|
+
4. Navegar cada fluxo como cada persona, avaliando 6 dimensoes:
|
|
1292
|
+
- Clareza, Eficiencia, Feedback, Consistencia, Acessibilidade, Performance
|
|
1293
|
+
5. Gerar `.plano/ux-review/UX-REPORT.md` com issues e scores
|
|
1294
|
+
6. **Implementar TODAS as melhorias seguras automaticamente:**
|
|
1295
|
+
- Textos/copy confusos → reescrever
|
|
1296
|
+
- Feedback ausente → adicionar loading, toasts, hover states
|
|
1297
|
+
- Acessibilidade → alt, labels, aria, focus visible
|
|
1298
|
+
- Espacamento/layout → padding, margin, fontes
|
|
1299
|
+
- Consistencia → unificar estilos, terminologia
|
|
1300
|
+
- Performance simples → lazy loading, debounce, memo
|
|
1301
|
+
7. Commit atomico por melhoria: `ux({area}): {descricao}`
|
|
1302
|
+
8. Screenshots antes/depois para cada melhoria
|
|
1303
|
+
9. Re-navegar para confirmar
|
|
1304
|
+
|
|
1305
|
+
```
|
|
1306
|
+
UX Review: score [N]/10 | [X] issues | [Y] implementadas (incluindo componentes novos e ajustes de fluxo) | [Z] tentativas falhas
|
|
1307
|
+
```
|
|
1308
|
+
|
|
1309
|
+
**Se nao tem UI:** Pular silenciosamente.
|
|
1310
|
+
**Se dev server falha:** Registrar e pular.
|
|
1311
|
+
|
|
1312
|
+
### 4.4 Mobile First (Responsividade)
|
|
1313
|
+
|
|
1314
|
+
**Executar APENAS se o projeto tem UI web.** Pular para CLIs, APIs puras, bibliotecas.
|
|
1315
|
+
|
|
1316
|
+
```
|
|
1317
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1318
|
+
BUILDER > POLIMENTO — RESPONSIVIDADE
|
|
1319
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1320
|
+
```
|
|
1321
|
+
|
|
1322
|
+
**Referencia:** `@~/.claude/up/workflows/mobile-first.md`
|
|
1323
|
+
|
|
1324
|
+
Executar o workflow completo do Mobile First:
|
|
1325
|
+
|
|
1326
|
+
1. Detectar stack CSS (Tailwind, CSS Modules, etc.)
|
|
1327
|
+
2. Scan: capturar todas as paginas em mobile (390px), tablet (768px), desktop (1920px)
|
|
1328
|
+
3. Detectar problemas: overflow, texto pequeno, alvos de toque, grid quebrado
|
|
1329
|
+
4. Para cada problema:
|
|
1330
|
+
- Capturar referencia desktop
|
|
1331
|
+
- Corrigir com classes responsivas / media queries
|
|
1332
|
+
- Verificar mobile melhorou
|
|
1333
|
+
- Verificar desktop INTACTO (se mudou: reverter, tentar outra abordagem)
|
|
1334
|
+
- Commit atomico
|
|
1335
|
+
5. Gerar `.plano/mobile-review/MOBILE-REPORT.md`
|
|
1336
|
+
|
|
1337
|
+
```
|
|
1338
|
+
Mobile First: score [N]/10 | [X] problemas | [Y] corrigidos | desktop intacto
|
|
1339
|
+
```
|
|
1340
|
+
|
|
1341
|
+
**Se nao tem UI:** Pular silenciosamente.
|
|
1342
|
+
**Se dev server falha:** Registrar e pular.
|
|
1343
|
+
|
|
1344
|
+
### 4.5 Rodar Ideias
|
|
1345
|
+
|
|
1346
|
+
```
|
|
1347
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1348
|
+
BUILDER > POLIMENTO — IDEIAS
|
|
1349
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1350
|
+
```
|
|
1351
|
+
|
|
1352
|
+
```bash
|
|
1353
|
+
mkdir -p .plano/ideias
|
|
1354
|
+
```
|
|
1355
|
+
|
|
1356
|
+
Spawnar 2 agentes em paralelo:
|
|
1357
|
+
|
|
1358
|
+
```
|
|
1359
|
+
Task(subagent_type="up-analista-codigo", prompt="
|
|
1360
|
+
<objective>
|
|
1361
|
+
Analisar codebase para identificar gaps funcionais e oportunidades de features novas.
|
|
1362
|
+
Salvar em .plano/ideias/codigo-sugestoes.md
|
|
1363
|
+
</objective>
|
|
1364
|
+
<files_to_read>
|
|
1365
|
+
- ./CLAUDE.md (se existir)
|
|
1366
|
+
- .plano/PROJECT.md
|
|
1367
|
+
</files_to_read>
|
|
1368
|
+
", description="Analise de codigo para ideias")
|
|
1369
|
+
|
|
1370
|
+
Task(subagent_type="up-pesquisador-mercado", prompt="
|
|
1371
|
+
<objective>
|
|
1372
|
+
Pesquisar concorrentes e tendencias de mercado para sugerir features novas.
|
|
1373
|
+
Salvar em .plano/ideias/mercado-sugestoes.md
|
|
1374
|
+
</objective>
|
|
1375
|
+
<files_to_read>
|
|
1376
|
+
- .plano/PROJECT.md
|
|
1377
|
+
</files_to_read>
|
|
1378
|
+
", description="Pesquisa de mercado para ideias")
|
|
1379
|
+
```
|
|
1380
|
+
|
|
1381
|
+
Apos os 2 retornarem, spawnar consolidador:
|
|
1382
|
+
|
|
1383
|
+
```
|
|
1384
|
+
Task(subagent_type="up-consolidador-ideias", prompt="
|
|
1385
|
+
<objective>
|
|
1386
|
+
Consolidar sugestoes de features. Aplicar ICE scoring, gerar anti-features.
|
|
1387
|
+
Salvar em .plano/ideias/RELATORIO.md
|
|
1388
|
+
</objective>
|
|
1389
|
+
<files_to_read>
|
|
1390
|
+
- .plano/ideias/codigo-sugestoes.md
|
|
1391
|
+
- .plano/ideias/mercado-sugestoes.md
|
|
1392
|
+
- .plano/PROJECT.md
|
|
1393
|
+
</files_to_read>
|
|
1394
|
+
", description="Consolidar ideias com ICE scoring")
|
|
1395
|
+
```
|
|
1396
|
+
|
|
1397
|
+
**NAO implementar ideias.** Apenas salvar o relatorio.
|
|
1398
|
+
|
|
1399
|
+
```
|
|
1400
|
+
Ideias: [N] sugestoes geradas com ICE scoring
|
|
1401
|
+
Relatorio em .plano/ideias/RELATORIO.md
|
|
1402
|
+
```
|
|
1403
|
+
|
|
1404
|
+
### 4.6 Blind Validation (Testar como Usuario Final)
|
|
1405
|
+
|
|
1406
|
+
**Validar requisitos SEM ler codigo — apenas navegando o app.**
|
|
1407
|
+
|
|
1408
|
+
```
|
|
1409
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1410
|
+
QUALITY GATE — BLIND VALIDATION
|
|
1411
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1412
|
+
```
|
|
1413
|
+
|
|
1414
|
+
```
|
|
1415
|
+
Task(
|
|
1416
|
+
subagent_type="up-blind-validator",
|
|
1417
|
+
prompt="
|
|
1418
|
+
<objective>
|
|
1419
|
+
Validar requisitos SEM ler codigo. Apenas navegar o app via Playwright e curl.
|
|
1420
|
+
Testar cada requisito como usuario final: renderiza? funciona? feedback existe?
|
|
1421
|
+
</objective>
|
|
1422
|
+
|
|
1423
|
+
<files_to_read>
|
|
1424
|
+
- .plano/REQUIREMENTS.md (UNICO doc de especificacao)
|
|
1425
|
+
- .plano/PROJECT.md (contexto do produto)
|
|
1426
|
+
</files_to_read>
|
|
1427
|
+
|
|
1428
|
+
<constraints>
|
|
1429
|
+
- NAO ler arquivos de codigo (.ts, .tsx, .py, .css)
|
|
1430
|
+
- NAO ler SUMMARYs, PLANs, ARCHITECTURE
|
|
1431
|
+
- APENAS navegar o app e testar como usuario
|
|
1432
|
+
- Gerar BLIND-VALIDATION.md com screenshots
|
|
1433
|
+
</constraints>
|
|
1434
|
+
",
|
|
1435
|
+
description="Blind Validation — testar como usuario final"
|
|
1436
|
+
)
|
|
1437
|
+
```
|
|
1438
|
+
|
|
1439
|
+
```
|
|
1440
|
+
Blind Validation: {score}% | {passed} PASS | {failed} FAIL | {partial} PARTIAL
|
|
1441
|
+
```
|
|
1442
|
+
|
|
1443
|
+
### 4.7 Calcular Score Composto
|
|
1444
|
+
|
|
1445
|
+
Agregar scores de todos os avaliadores:
|
|
1446
|
+
|
|
1447
|
+
```
|
|
1448
|
+
Funcionalidade (20%): requisitos [x] / total no REQUIREMENTS.md → 0-10
|
|
1449
|
+
Blind Valid. (20%): score do BLIND-VALIDATION.md → 0-10
|
|
1450
|
+
E2E (15%): testes passaram / total no E2E mais recente → 0-10
|
|
1451
|
+
UX (10%): score do UX-REPORT.md → 0-10
|
|
1452
|
+
Responsividade (10%): score do MOBILE-REPORT.md → 0-10
|
|
1453
|
+
Codigo (15%): (10 - problemas_criticos) do RELATORIO.md melhorias → 0-10
|
|
1454
|
+
Completude (10%): rotas sem erro / total no smoke test → 0-10
|
|
1455
|
+
|
|
1456
|
+
**Modo normal:**
|
|
1457
|
+
Score = (func × 0.20) + (blind × 0.20) + (e2e × 0.15) + (ux × 0.10) + (resp × 0.10) + (cod × 0.15) + (comp × 0.10)
|
|
1458
|
+
|
|
1459
|
+
**Modo clone (builder_type: "clone"):**
|
|
1460
|
+
Score = (func × 0.15) + (fidelidade × 0.20) + (blind × 0.15) + (e2e × 0.10) + (ux × 0.10) + (resp × 0.10) + (cod × 0.10) + (comp × 0.10)
|
|
1461
|
+
|
|
1462
|
+
A dimensao "Fidelidade" usa o up-clone-verifier: compara features (funcional) + visual contra original.
|
|
1463
|
+
```
|
|
1464
|
+
|
|
1465
|
+
**Se algum avaliador nao rodou** (ex: sem UI, sem E2E): redistribuir peso proporcionalmente entre os que rodaram.
|
|
1466
|
+
|
|
1467
|
+
```
|
|
1468
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1469
|
+
QUALITY GATE — CICLO {CYCLE} — SCORE: {SCORE}/10
|
|
1470
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1471
|
+
|
|
1472
|
+
| Dimensao | Score | Peso | Contribuicao |
|
|
1473
|
+
|----------|-------|------|-------------|
|
|
1474
|
+
| Funcionalidade | [N]/10 | 25% | [X] |
|
|
1475
|
+
| E2E | [N]/10 | 20% | [X] |
|
|
1476
|
+
| UX | [N]/10 | 15% | [X] |
|
|
1477
|
+
| Responsividade | [N]/10 | 15% | [X] |
|
|
1478
|
+
| Codigo | [N]/10 | 15% | [X] |
|
|
1479
|
+
| Completude | [N]/10 | 10% | [X] |
|
|
1480
|
+
| **TOTAL** | **[SCORE]/10** | | |
|
|
1481
|
+
```
|
|
1482
|
+
|
|
1483
|
+
### 4.8 Decidir: Continuar ou Entregar
|
|
1484
|
+
|
|
1485
|
+
**Se score >= 9.0:** Ir para Estagio 5 (Entrega). Sistema pronto.
|
|
1486
|
+
|
|
1487
|
+
**Se score < 9.0 E cycle < 5 E (score - previous_score) >= 0.3:**
|
|
1488
|
+
|
|
1489
|
+
```
|
|
1490
|
+
Score {SCORE} < 9.0 — identificando gaps para correcao...
|
|
1491
|
+
```
|
|
1492
|
+
|
|
1493
|
+
Identificar top gaps (dimensoes com menor score):
|
|
1494
|
+
1. Ordenar dimensoes por score (menor primeiro)
|
|
1495
|
+
2. Para cada dimensao abaixo de 9.0:
|
|
1496
|
+
- Ler relatorio correspondente
|
|
1497
|
+
- Extrair issues nao corrigidas / requisitos pendentes
|
|
1498
|
+
- Priorizar por impacto no score
|
|
1499
|
+
|
|
1500
|
+
**Implementar correcoes:**
|
|
1501
|
+
- Issues de codigo: planejar mini-fase → executar → commit
|
|
1502
|
+
- Issues de UX: aplicar fixes (mesmo processo do UX tester)
|
|
1503
|
+
- Issues de responsividade: aplicar fixes (mesmo processo do mobile-first)
|
|
1504
|
+
- Requisitos pendentes: planejar mini-fase → executar
|
|
1505
|
+
- Issues de E2E: corrigir bugs (max 5 tentativas)
|
|
1506
|
+
|
|
1507
|
+
Apos implementar:
|
|
1508
|
+
|
|
1509
|
+
```
|
|
1510
|
+
$PREVIOUS_SCORE = $SCORE
|
|
1511
|
+
$CYCLE += 1
|
|
1512
|
+
```
|
|
1513
|
+
|
|
1514
|
+
**Voltar para 4.1** (re-rodar avaliadores no proximo ciclo).
|
|
1515
|
+
|
|
1516
|
+
**Se cycle >= 5:** Entregar com score atual.
|
|
1517
|
+
```
|
|
1518
|
+
Quality Gate: max ciclos atingido. Entregando com score {SCORE}/10.
|
|
1519
|
+
```
|
|
1520
|
+
|
|
1521
|
+
**Se (score - previous_score) < 0.3:** Diminishing returns. Entregar.
|
|
1522
|
+
```
|
|
1523
|
+
Quality Gate: melhoria < 0.3 pontos. Entregando com score {SCORE}/10.
|
|
1524
|
+
```
|
|
1525
|
+
|
|
1526
|
+
### 4.9 DevOps — Artefatos de Producao
|
|
1527
|
+
|
|
1528
|
+
```
|
|
1529
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1530
|
+
BUILDER > PRODUCTION ARTIFACTS
|
|
1531
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1532
|
+
```
|
|
1533
|
+
|
|
1534
|
+
Spawnar devops agent:
|
|
1535
|
+
|
|
1536
|
+
```
|
|
1537
|
+
Task(
|
|
1538
|
+
subagent_type="up-devops-agent",
|
|
1539
|
+
prompt="
|
|
1540
|
+
<objective>
|
|
1541
|
+
Gerar artefatos de producao para o projeto: Dockerfile, docker-compose, CI/CD, .env.example, seed data, scripts.
|
|
1542
|
+
</objective>
|
|
1543
|
+
|
|
1544
|
+
<files_to_read>
|
|
1545
|
+
- .plano/PROJECT.md
|
|
1546
|
+
- .plano/SYSTEM-DESIGN.md (schema, integracoes)
|
|
1547
|
+
- ./package.json
|
|
1548
|
+
- ./CLAUDE.md (se existir)
|
|
1549
|
+
</files_to_read>
|
|
1550
|
+
|
|
1551
|
+
<builder_mode>
|
|
1552
|
+
Modo builder. NAO pergunte nada. Gere tudo autonomamente.
|
|
1553
|
+
Adapte ao stack real do projeto.
|
|
1554
|
+
</builder_mode>
|
|
1555
|
+
",
|
|
1556
|
+
description="Gerar artefatos de producao"
|
|
1557
|
+
)
|
|
1558
|
+
```
|
|
1559
|
+
|
|
1560
|
+
```
|
|
1561
|
+
DevOps: Dockerfile + docker-compose + CI/CD + .env.example + seed data
|
|
1562
|
+
```
|
|
1563
|
+
|
|
1564
|
+
### 4.10 Technical Writer — Documentacao
|
|
1565
|
+
|
|
1566
|
+
```
|
|
1567
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1568
|
+
BUILDER > DOCUMENTACAO
|
|
1569
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1570
|
+
```
|
|
1571
|
+
|
|
1572
|
+
Spawnar technical writer:
|
|
1573
|
+
|
|
1574
|
+
```
|
|
1575
|
+
Task(
|
|
1576
|
+
subagent_type="up-technical-writer",
|
|
1577
|
+
prompt="
|
|
1578
|
+
<objective>
|
|
1579
|
+
Gerar documentacao completa: README.md, API docs, CHANGELOG.md, setup guide.
|
|
1580
|
+
Documentacao com conteudo REAL do projeto (nao placeholders).
|
|
1581
|
+
</objective>
|
|
1582
|
+
|
|
1583
|
+
<files_to_read>
|
|
1584
|
+
- .plano/PROJECT.md
|
|
1585
|
+
- .plano/REQUIREMENTS.md
|
|
1586
|
+
- .plano/SYSTEM-DESIGN.md
|
|
1587
|
+
- .plano/PRODUCT-ANALYSIS.md
|
|
1588
|
+
- ./package.json
|
|
1589
|
+
- ./CLAUDE.md (se existir)
|
|
1590
|
+
</files_to_read>
|
|
1591
|
+
|
|
1592
|
+
<builder_mode>
|
|
1593
|
+
Modo builder. NAO pergunte nada. Gere documentacao autonomamente.
|
|
1594
|
+
README deve ter instrucoes de setup que FUNCIONAM.
|
|
1595
|
+
</builder_mode>
|
|
1596
|
+
",
|
|
1597
|
+
description="Gerar documentacao completa"
|
|
1598
|
+
)
|
|
1599
|
+
```
|
|
1600
|
+
|
|
1601
|
+
```
|
|
1602
|
+
Docs: README.md + CHANGELOG.md + API docs
|
|
1603
|
+
```
|
|
1604
|
+
|
|
1605
|
+
### 4.11 Security Review
|
|
1606
|
+
|
|
1607
|
+
```
|
|
1608
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1609
|
+
BUILDER > SECURITY AUDIT
|
|
1610
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1611
|
+
```
|
|
1612
|
+
|
|
1613
|
+
Spawnar security reviewer:
|
|
1614
|
+
|
|
1615
|
+
```
|
|
1616
|
+
Task(
|
|
1617
|
+
subagent_type="up-security-reviewer",
|
|
1618
|
+
prompt="
|
|
1619
|
+
<objective>
|
|
1620
|
+
Auditar codigo para vulnerabilidades de seguranca (OWASP Top 10, auth, injection, data exposure).
|
|
1621
|
+
</objective>
|
|
1622
|
+
|
|
1623
|
+
<files_to_read>
|
|
1624
|
+
- ./CLAUDE.md (se existir)
|
|
1625
|
+
- .plano/SYSTEM-DESIGN.md (roles, auth design)
|
|
1626
|
+
</files_to_read>
|
|
1627
|
+
|
|
1628
|
+
<builder_mode>
|
|
1629
|
+
Modo builder. Gere SECURITY-REVIEW.md com vulnerabilidades encontradas.
|
|
1630
|
+
</builder_mode>
|
|
1631
|
+
",
|
|
1632
|
+
description="Auditoria de seguranca"
|
|
1633
|
+
)
|
|
1634
|
+
```
|
|
1635
|
+
|
|
1636
|
+
Se ha vulnerabilidades CRITICAS: corrigir automaticamente (spawnar executor com fix sugerido).
|
|
1637
|
+
|
|
1638
|
+
```
|
|
1639
|
+
Security: score {N}/10 | {criticas} criticas | {altas} altas
|
|
1640
|
+
```
|
|
1641
|
+
|
|
1642
|
+
### 4.12 QA — Testes Automatizados
|
|
1643
|
+
|
|
1644
|
+
```
|
|
1645
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1646
|
+
BUILDER > QA — TESTES
|
|
1647
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1648
|
+
```
|
|
1649
|
+
|
|
1650
|
+
Spawnar QA agent:
|
|
1651
|
+
|
|
1652
|
+
```
|
|
1653
|
+
Task(
|
|
1654
|
+
subagent_type="up-qa-agent",
|
|
1655
|
+
prompt="
|
|
1656
|
+
<objective>
|
|
1657
|
+
Identificar gaps de cobertura de testes, escrever testes que faltam, executar todos.
|
|
1658
|
+
</objective>
|
|
1659
|
+
|
|
1660
|
+
<files_to_read>
|
|
1661
|
+
- .plano/PROJECT.md
|
|
1662
|
+
- ./package.json
|
|
1663
|
+
- ./CLAUDE.md (se existir)
|
|
1664
|
+
</files_to_read>
|
|
1665
|
+
|
|
1666
|
+
<builder_mode>
|
|
1667
|
+
Modo builder. Escreva testes e rode autonomamente.
|
|
1668
|
+
Foco: API routes (90%+), logica de negocio (80%+), componentes com logica (70%+).
|
|
1669
|
+
</builder_mode>
|
|
1670
|
+
",
|
|
1671
|
+
description="QA — escrever e rodar testes"
|
|
1672
|
+
)
|
|
1673
|
+
```
|
|
1674
|
+
|
|
1675
|
+
```
|
|
1676
|
+
QA: {N} testes escritos | {X} passando | cobertura estimada {%}
|
|
1677
|
+
```
|
|
1678
|
+
|
|
1679
|
+
### 4.13 Rodar Ideias (Uma Vez, Apos Quality Gate)
|
|
1680
|
+
|
|
1681
|
+
**Rodar ideias apenas UMA VEZ, apos o loop de qualidade terminar (nao a cada ciclo).**
|
|
1682
|
+
|
|
1683
|
+
Mesmo processo de ideias existente (2 agentes paralelos + consolidador).
|
|
1684
|
+
NAO implementar ideias — apenas salvar relatorio para proximos passos.
|
|
1685
|
+
|
|
1686
|
+
---
|
|
1687
|
+
|
|
1688
|
+
## Estagio 5: ENTREGA (Autonomo)
|
|
1689
|
+
|
|
1690
|
+
### 5.1 Teste E2E Final Completo (Playwright)
|
|
1691
|
+
|
|
1692
|
+
**Referencia:** `@~/.claude/up/workflows/builder-e2e.md` — Passo 4 (Teste Final)
|
|
1693
|
+
|
|
1694
|
+
**Executar APENAS se o projeto tem UI web.** Pular para CLIs, APIs puras, bibliotecas.
|
|
1695
|
+
|
|
1696
|
+
```
|
|
1697
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1698
|
+
BUILDER > TESTE E2E FINAL
|
|
1699
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1700
|
+
```
|
|
1701
|
+
|
|
1702
|
+
1. Subir dev server (se nao esta rodando)
|
|
1703
|
+
2. Criar diretorios:
|
|
1704
|
+
```bash
|
|
1705
|
+
mkdir -p .plano/e2e/smoke .plano/e2e/responsive .plano/e2e/flows
|
|
1706
|
+
```
|
|
1707
|
+
|
|
1708
|
+
3. **Smoke test de rotas:**
|
|
1709
|
+
- Descobrir todas as rotas do projeto (de arquivos page.tsx/route.ts)
|
|
1710
|
+
- Visitar cada rota
|
|
1711
|
+
- Screenshot de cada uma
|
|
1712
|
+
- Checar console errors
|
|
1713
|
+
- Registrar rotas OK vs quebradas
|
|
1714
|
+
|
|
1715
|
+
4. **Fluxos E2E principais (3-5 fluxos):**
|
|
1716
|
+
- Derivar de REQUIREMENTS.md os fluxos criticos
|
|
1717
|
+
- Para cada fluxo: navegar → interagir → verificar → screenshot
|
|
1718
|
+
- Se auth necessario: criar usuario de teste ou usar seed data
|
|
1719
|
+
|
|
1720
|
+
5. **Teste de responsividade:**
|
|
1721
|
+
- Desktop (1920x1080), Tablet (768x1024), Mobile (375x812)
|
|
1722
|
+
- Screenshot da pagina principal em cada viewport
|
|
1723
|
+
- Verificar se layout adapta (nao overflow, nao cortado)
|
|
1724
|
+
|
|
1725
|
+
6. **Correcao de bugs encontrados:**
|
|
1726
|
+
- Para cada bug: loop de correcao (max 5 tentativas por bug)
|
|
1727
|
+
- Analisar → corrigir → commit → re-testar
|
|
1728
|
+
- Se tentativa > 1: analisar por que tentativa anterior falhou
|
|
1729
|
+
- Apos 5 tentativas: registrar como nao corrigido e seguir
|
|
1730
|
+
|
|
1731
|
+
7. Gerar `.plano/e2e/E2E-REPORT.md` com resultados completos
|
|
1732
|
+
|
|
1733
|
+
8. Matar dev server e fechar browser:
|
|
1734
|
+
```bash
|
|
1735
|
+
kill $DEV_PID 2>/dev/null
|
|
1736
|
+
```
|
|
1737
|
+
`browser_close()`
|
|
1738
|
+
|
|
1739
|
+
```
|
|
1740
|
+
Teste E2E: {routes_ok}/{routes_total} rotas | {flows_passed}/{flows_total} fluxos | {bugs} bugs [{fixed} corrigidos]
|
|
1741
|
+
```
|
|
1742
|
+
|
|
1743
|
+
**Se nao tem UI:** Pular silenciosamente.
|
|
1744
|
+
**Se dev server falha:** Registrar e pular (nao bloqueia entrega).
|
|
1745
|
+
|
|
1746
|
+
### 5.2 Verificacao de Requisitos
|
|
1747
|
+
|
|
1748
|
+
Ler REQUIREMENTS.md e verificar cobertura:
|
|
1749
|
+
|
|
1750
|
+
```bash
|
|
1751
|
+
node "$HOME/.claude/up/bin/up-tools.cjs" progress json
|
|
1752
|
+
```
|
|
1753
|
+
|
|
1754
|
+
Contar requisitos completos vs total.
|
|
1755
|
+
|
|
1756
|
+
Se ha requisitos pendentes: listar com motivo (fase falhou, verificacao pendente, etc.).
|
|
1757
|
+
|
|
1758
|
+
### 5.3 Triagem de Captures (Insights)
|
|
1759
|
+
|
|
1760
|
+
Ler todos os arquivos em `.plano/captures/`:
|
|
1761
|
+
|
|
1762
|
+
```bash
|
|
1763
|
+
ls .plano/captures/*.md 2>/dev/null | wc -l
|
|
1764
|
+
```
|
|
1765
|
+
|
|
1766
|
+
Se ha captures:
|
|
1767
|
+
|
|
1768
|
+
1. Ler cada arquivo e classificar:
|
|
1769
|
+
|
|
1770
|
+
| type | Acao |
|
|
1771
|
+
|------|------|
|
|
1772
|
+
| `critical` + `problem` | Listar no DELIVERY.md como "Problemas Criticos Detectados" |
|
|
1773
|
+
| `warning` + `problem` | Listar no DELIVERY.md como "Alertas" |
|
|
1774
|
+
| `opportunity` | Listar no DELIVERY.md como "Oportunidades Detectadas" |
|
|
1775
|
+
| `pattern` | Listar no DELIVERY.md como "Padroes Identificados" |
|
|
1776
|
+
| `decision` | Ja registrado no PROJECT.md — ignorar |
|
|
1777
|
+
| `info` | Ignorar (informativo apenas) |
|
|
1778
|
+
|
|
1779
|
+
2. Gerar `.plano/captures/TRIAGE.md`:
|
|
1780
|
+
|
|
1781
|
+
```markdown
|
|
1782
|
+
# Triagem de Insights
|
|
1783
|
+
|
|
1784
|
+
**Total capturado:** [N] insights durante o build
|
|
1785
|
+
|
|
1786
|
+
## Criticos
|
|
1787
|
+
[insights criticos que precisam de atencao]
|
|
1788
|
+
|
|
1789
|
+
## Alertas
|
|
1790
|
+
[problemas potenciais detectados]
|
|
1791
|
+
|
|
1792
|
+
## Oportunidades
|
|
1793
|
+
[melhorias e features descobertas durante o build]
|
|
1794
|
+
|
|
1795
|
+
## Padroes
|
|
1796
|
+
[padroes identificados no codebase]
|
|
1797
|
+
|
|
1798
|
+
## Estatisticas
|
|
1799
|
+
| Tipo | Quantidade |
|
|
1800
|
+
|------|-----------|
|
|
1801
|
+
| critical | [N] |
|
|
1802
|
+
| warning | [N] |
|
|
1803
|
+
| opportunity | [N] |
|
|
1804
|
+
| pattern | [N] |
|
|
1805
|
+
| decision | [N] |
|
|
1806
|
+
| info | [N] |
|
|
1807
|
+
```
|
|
1808
|
+
|
|
1809
|
+
Se NAO ha captures: pular silenciosamente.
|
|
1810
|
+
|
|
1811
|
+
### 5.4 Gerar DELIVERY.md (incluindo resultados E2E)
|
|
1812
|
+
|
|
1813
|
+
Carregar template de `$HOME/.claude/up/templates/delivery.md`.
|
|
1814
|
+
|
|
1815
|
+
Preencher com dados de:
|
|
1816
|
+
- PROJECT.md (nome, stack, core value)
|
|
1817
|
+
- ROADMAP.md (fases completadas)
|
|
1818
|
+
- REQUIREMENTS.md (cobertura)
|
|
1819
|
+
- SUMMARYs de cada fase (o que foi construido)
|
|
1820
|
+
- .plano/e2e/E2E-REPORT.md (resultados do teste E2E final, se existir)
|
|
1821
|
+
- E2E-RESULTS.md de cada fase (resultados por fase, se existirem)
|
|
1822
|
+
- .plano/captures/TRIAGE.md (insights capturados durante o build, se existir)
|
|
1823
|
+
- .plano/melhorias/RELATORIO.md (melhorias aplicadas, se existir)
|
|
1824
|
+
- .plano/ideias/RELATORIO.md (top 5 ideias por ICE, se existir)
|
|
1825
|
+
- package.json (como rodar)
|
|
1826
|
+
- .env.example ou env vars usados (credenciais necessarias)
|
|
1827
|
+
|
|
1828
|
+
Contar commits:
|
|
1829
|
+
```bash
|
|
1830
|
+
git rev-list --count HEAD
|
|
1831
|
+
```
|
|
1832
|
+
|
|
1833
|
+
Escrever `.plano/DELIVERY.md`.
|
|
1834
|
+
|
|
1835
|
+
### 5.5 Commit Final e Cleanup
|
|
1836
|
+
|
|
1837
|
+
```bash
|
|
1838
|
+
node "$HOME/.claude/up/bin/up-tools.cjs" commit "docs: relatorio de entrega (modo builder)" --files .plano/DELIVERY.md
|
|
1839
|
+
```
|
|
1840
|
+
|
|
1841
|
+
**Remover LOCK.md (sessao concluida com sucesso):**
|
|
1842
|
+
```bash
|
|
1843
|
+
rm -f .plano/LOCK.md
|
|
1844
|
+
```
|
|
1845
|
+
|
|
1846
|
+
**Fechar Dashboard:**
|
|
1847
|
+
```bash
|
|
1848
|
+
kill $DASH_PID 2>/dev/null
|
|
1849
|
+
```
|
|
1850
|
+
|
|
1851
|
+
### 5.6 Apresentar Resultado
|
|
1852
|
+
|
|
1853
|
+
```
|
|
1854
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1855
|
+
UP > BUILDER — PROJETO ENTREGUE
|
|
1856
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1857
|
+
|
|
1858
|
+
**[Nome do Projeto]**
|
|
1859
|
+
|
|
1860
|
+
[Resumo em 2-3 frases do que foi construido]
|
|
1861
|
+
|
|
1862
|
+
## O que foi Entregue
|
|
1863
|
+
|
|
1864
|
+
| Fase | O que Construiu | Status |
|
|
1865
|
+
|------|----------------|--------|
|
|
1866
|
+
| 1 | [resumo] | Completo |
|
|
1867
|
+
| 2 | [resumo] | Completo |
|
|
1868
|
+
| ... | ... | ... |
|
|
1869
|
+
|
|
1870
|
+
## Metricas
|
|
1871
|
+
|
|
1872
|
+
| Metrica | Valor |
|
|
1873
|
+
|---------|-------|
|
|
1874
|
+
| Fases | [N] completadas |
|
|
1875
|
+
| Requisitos | [X]/[Y] atendidos |
|
|
1876
|
+
| Commits | [N] |
|
|
1877
|
+
| Melhorias aplicadas | [N] |
|
|
1878
|
+
| Ideias geradas | [N] |
|
|
1879
|
+
|
|
1880
|
+
## Itens para Revisao Humana
|
|
1881
|
+
|
|
1882
|
+
[Lista de itens marcados como human_needed durante verificacao]
|
|
1883
|
+
[Se nenhum: "Nenhum — todas verificacoes automaticas passaram"]
|
|
1884
|
+
|
|
1885
|
+
## Proximos Passos (Top 5 Ideias)
|
|
1886
|
+
|
|
1887
|
+
1. [Ideia 1] — ICE: [score]
|
|
1888
|
+
2. [Ideia 2] — ICE: [score]
|
|
1889
|
+
3. [Ideia 3] — ICE: [score]
|
|
1890
|
+
4. [Ideia 4] — ICE: [score]
|
|
1891
|
+
5. [Ideia 5] — ICE: [score]
|
|
1892
|
+
|
|
1893
|
+
───────────────────────────────────────────────────────────────
|
|
1894
|
+
|
|
1895
|
+
Relatorio completo: .plano/DELIVERY.md
|
|
1896
|
+
|
|
1897
|
+
Como rodar:
|
|
1898
|
+
[Instrucoes de setup do DELIVERY.md]
|
|
1899
|
+
|
|
1900
|
+
───────────────────────────────────────────────────────────────
|
|
1901
|
+
```
|
|
1902
|
+
|
|
1903
|
+
</process>
|
|
1904
|
+
|
|
1905
|
+
<light_process>
|
|
1906
|
+
## MODO LIGHT — Pipeline Enxuto
|
|
1907
|
+
|
|
1908
|
+
**Ativado quando `--light` esta nos $ARGUMENTS.**
|
|
1909
|
+
Extrair `--light` dos argumentos. O restante e o briefing.
|
|
1910
|
+
|
|
1911
|
+
### L1. Intake Rapido
|
|
1912
|
+
|
|
1913
|
+
#### L1.1 Detectar Modo
|
|
1914
|
+
|
|
1915
|
+
Mesmo processo do full: verificar codigo existente para determinar greenfield/brownfield.
|
|
1916
|
+
|
|
1917
|
+
```bash
|
|
1918
|
+
ls package.json go.mod Cargo.toml requirements.txt pyproject.toml 2>/dev/null
|
|
1919
|
+
ls -d src/ app/ lib/ pages/ components/ 2>/dev/null | head -10
|
|
1920
|
+
```
|
|
1921
|
+
|
|
1922
|
+
#### L1.2 Receber Briefing
|
|
1923
|
+
|
|
1924
|
+
Se briefing veio nos $ARGUMENTS: usar direto.
|
|
1925
|
+
Se vazio: pedir freeform (mesma logica do full).
|
|
1926
|
+
|
|
1927
|
+
#### L1.3 Perguntas Criticas
|
|
1928
|
+
|
|
1929
|
+
Mesma logica do full — perguntar APENAS o essencial (credenciais, APIs, ambiguidades criticas).
|
|
1930
|
+
|
|
1931
|
+
```
|
|
1932
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1933
|
+
UP > BUILDER LIGHT
|
|
1934
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1935
|
+
|
|
1936
|
+
**Feature:** [resumo em 1-2 frases]
|
|
1937
|
+
**Modo:** [greenfield/brownfield]
|
|
1938
|
+
**Stack:** [detectada ou inferida]
|
|
1939
|
+
|
|
1940
|
+
Pipeline enxuto: planejar → executar → testar.
|
|
1941
|
+
Iniciando...
|
|
1942
|
+
```
|
|
1943
|
+
|
|
1944
|
+
═══════════════════════════════════════════════════════
|
|
1945
|
+
FIM DA INTERACAO COM USUARIO
|
|
1946
|
+
═══════════════════════════════════════════════════════
|
|
1947
|
+
|
|
1948
|
+
---
|
|
1949
|
+
|
|
1950
|
+
### L2. Estrutura Inline (Sem Agente Separado)
|
|
1951
|
+
|
|
1952
|
+
**NAO spawnar up-arquiteto.** Fazer tudo inline para economizar tokens.
|
|
1953
|
+
|
|
1954
|
+
#### L2.1 Entender o Codebase (Brownfield)
|
|
1955
|
+
|
|
1956
|
+
**Se `.plano/codebase/` existe e recente (< 7 dias):** Ler STACK.md e CONVENTIONS.md apenas. Pular mapeamento.
|
|
1957
|
+
|
|
1958
|
+
**Se nao existe:** Mini-scan inline:
|
|
1959
|
+
```bash
|
|
1960
|
+
# Stack
|
|
1961
|
+
cat package.json 2>/dev/null | head -50
|
|
1962
|
+
ls tsconfig.json next.config.* vite.config.* 2>/dev/null
|
|
1963
|
+
|
|
1964
|
+
# Estrutura
|
|
1965
|
+
find . -type d -not -path '*/node_modules/*' -not -path '*/.git/*' -not -path '*/.plano/*' -maxdepth 3 | head -30
|
|
1966
|
+
|
|
1967
|
+
# Arquivos principais
|
|
1968
|
+
find . -name "*.ts" -o -name "*.tsx" | grep -v node_modules | head -30
|
|
1969
|
+
```
|
|
1970
|
+
|
|
1971
|
+
**Greenfield:** Pular. Inferir stack do briefing ou defaults.
|
|
1972
|
+
|
|
1973
|
+
#### L2.2 Criar/Atualizar Documentos
|
|
1974
|
+
|
|
1975
|
+
```bash
|
|
1976
|
+
mkdir -p .plano
|
|
1977
|
+
git init 2>/dev/null
|
|
1978
|
+
```
|
|
1979
|
+
|
|
1980
|
+
**PROJECT.md** — Criar ou atualizar inline (sem template elaborado):
|
|
1981
|
+
```markdown
|
|
1982
|
+
# [Nome do Projeto/Feature]
|
|
1983
|
+
|
|
1984
|
+
## O que e
|
|
1985
|
+
[Briefing do usuario em 2-3 frases]
|
|
1986
|
+
|
|
1987
|
+
## Stack
|
|
1988
|
+
[Stack detectada ou inferida]
|
|
1989
|
+
|
|
1990
|
+
## Requisitos
|
|
1991
|
+
- [ ] [REQ-01]: [requisito 1]
|
|
1992
|
+
- [ ] [REQ-02]: [requisito 2]
|
|
1993
|
+
...
|
|
1994
|
+
```
|
|
1995
|
+
|
|
1996
|
+
**ROADMAP.md** — Criar ou atualizar com 1-3 fases:
|
|
1997
|
+
- Se feature simples: 1 fase
|
|
1998
|
+
- Se feature media: 2-3 fases
|
|
1999
|
+
- Cada fase com objetivo e criterios de sucesso
|
|
2000
|
+
|
|
2001
|
+
**STATE.md** — Inicializar ou atualizar.
|
|
2002
|
+
|
|
2003
|
+
**config.json:**
|
|
2004
|
+
```json
|
|
2005
|
+
{
|
|
2006
|
+
"mode": "yolo",
|
|
2007
|
+
"granularity": "coarse",
|
|
2008
|
+
"parallelization": true,
|
|
2009
|
+
"commit_docs": true,
|
|
2010
|
+
"builder_mode": true,
|
|
2011
|
+
"builder_type": "light"
|
|
2012
|
+
}
|
|
2013
|
+
```
|
|
2014
|
+
|
|
2015
|
+
Commit:
|
|
2016
|
+
```bash
|
|
2017
|
+
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
|
|
2018
|
+
```
|
|
2019
|
+
|
|
2020
|
+
Se REQUIREMENTS.md foi criado/atualizado:
|
|
2021
|
+
```bash
|
|
2022
|
+
node "$HOME/.claude/up/bin/up-tools.cjs" commit "docs: requisitos (builder light)" --files .plano/REQUIREMENTS.md
|
|
2023
|
+
```
|
|
2024
|
+
|
|
2025
|
+
---
|
|
2026
|
+
|
|
2027
|
+
### L3. Build + E2E
|
|
2028
|
+
|
|
2029
|
+
Mesmo loop do full (3.1.1 → 3.1.5), mas:
|
|
2030
|
+
- **Sem LOCK.md** (sessao curta)
|
|
2031
|
+
- **Sem reassessment** (poucas fases)
|
|
2032
|
+
- **Sem captures** (sessao curta)
|
|
2033
|
+
- **COM E2E Playwright** (se tem UI)
|
|
2034
|
+
|
|
2035
|
+
Para cada fase no ROADMAP:
|
|
2036
|
+
|
|
2037
|
+
#### L3.1 Planejar Fase
|
|
2038
|
+
|
|
2039
|
+
Spawnar up-planejador (mesmo do full):
|
|
2040
|
+
|
|
2041
|
+
```
|
|
2042
|
+
Task(prompt="
|
|
2043
|
+
<planning_context>
|
|
2044
|
+
**Fase:** {phase_number}
|
|
2045
|
+
**Modo:** builder light (autonomo -- NAO use AskUserQuestion)
|
|
2046
|
+
|
|
2047
|
+
<files_to_read>
|
|
2048
|
+
- .plano/STATE.md
|
|
2049
|
+
- .plano/ROADMAP.md
|
|
2050
|
+
- .plano/REQUIREMENTS.md (se existir)
|
|
2051
|
+
- ./CLAUDE.md (se existir)
|
|
2052
|
+
</files_to_read>
|
|
2053
|
+
|
|
2054
|
+
**IDs de requisitos da fase:** {phase_req_ids}
|
|
2055
|
+
|
|
2056
|
+
<builder_mode>
|
|
2057
|
+
Modo builder light. Regras:
|
|
2058
|
+
1. NAO use AskUserQuestion
|
|
2059
|
+
2. Se ha ambiguidade, tome a decisao mais razoavel
|
|
2060
|
+
3. Pesquisa inline: nivel 1 apenas (verificacao rapida, nao pesquisa profunda)
|
|
2061
|
+
4. Planos devem ser CONCISOS — minimo de tarefas necessarias
|
|
2062
|
+
</builder_mode>
|
|
2063
|
+
|
|
2064
|
+
<output>
|
|
2065
|
+
Escrever PLAN.md em: .plano/fases/{phase_dir}/
|
|
2066
|
+
Retornar: ## PLANNING COMPLETE
|
|
2067
|
+
</output>
|
|
2068
|
+
", subagent_type="up-planejador", description="Planejar Fase {phase_number} (light)")
|
|
2069
|
+
```
|
|
2070
|
+
|
|
2071
|
+
#### L3.2 Executar Fase
|
|
2072
|
+
|
|
2073
|
+
Mesmo processo do full — spawnar up-executor por wave.
|
|
2074
|
+
|
|
2075
|
+
#### L3.3 Verificar Fase (Quick Check)
|
|
2076
|
+
|
|
2077
|
+
**NAO spawnar up-verificador.** Verificacao inline rapida:
|
|
2078
|
+
|
|
2079
|
+
1. Checar que SUMMARYs existem para todos os planos
|
|
2080
|
+
2. Checar que commits existem: `git log --oneline --grep="fase-{X}"`
|
|
2081
|
+
3. Se ha testes automatizados no projeto: rodar
|
|
2082
|
+
```bash
|
|
2083
|
+
# Detectar e rodar testes
|
|
2084
|
+
npm test 2>/dev/null || pnpm test 2>/dev/null || echo "sem testes"
|
|
2085
|
+
```
|
|
2086
|
+
4. Se tudo OK: marcar fase completa
|
|
2087
|
+
|
|
2088
|
+
Se falha: tentar gap closure (1 ciclo max), mesmo do full.
|
|
2089
|
+
|
|
2090
|
+
#### L3.4 Teste E2E (Playwright)
|
|
2091
|
+
|
|
2092
|
+
**Mesmo processo do full** (referencia: builder-e2e.md Passo 3).
|
|
2093
|
+
Executar APENAS se a fase tem UI.
|
|
2094
|
+
|
|
2095
|
+
- Subir dev server (se nao esta rodando)
|
|
2096
|
+
- Traduzir must_haves em testes E2E
|
|
2097
|
+
- Navegar, interagir, verificar, screenshot
|
|
2098
|
+
- Bugs: corrigir (max 5 tentativas por bug)
|
|
2099
|
+
- Criar E2E-RESULTS.md
|
|
2100
|
+
|
|
2101
|
+
#### L3.5 Marcar Fase Completa
|
|
2102
|
+
|
|
2103
|
+
```bash
|
|
2104
|
+
COMPLETION=$(node "$HOME/.claude/up/bin/up-tools.cjs" phase complete "${PHASE_NUMBER}")
|
|
2105
|
+
node "$HOME/.claude/up/bin/up-tools.cjs" commit "docs(fase-{X}): completar (light)" --files .plano/ROADMAP.md .plano/STATE.md
|
|
2106
|
+
```
|
|
2107
|
+
|
|
2108
|
+
Avancar para proxima fase. Sem reassessment.
|
|
2109
|
+
|
|
2110
|
+
---
|
|
2111
|
+
|
|
2112
|
+
### L4. Resumo Final
|
|
2113
|
+
|
|
2114
|
+
Apos todas as fases:
|
|
2115
|
+
|
|
2116
|
+
```bash
|
|
2117
|
+
# Matar dev server se rodando
|
|
2118
|
+
kill $DEV_PID 2>/dev/null
|
|
2119
|
+
```
|
|
2120
|
+
|
|
2121
|
+
`browser_close()` (se Playwright aberto)
|
|
2122
|
+
|
|
2123
|
+
```
|
|
2124
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
2125
|
+
UP > BUILDER LIGHT — COMPLETO
|
|
2126
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
2127
|
+
|
|
2128
|
+
**Feature:** [resumo do briefing]
|
|
2129
|
+
|
|
2130
|
+
## O que foi Feito
|
|
2131
|
+
|
|
2132
|
+
| Fase | O que Construiu | Status |
|
|
2133
|
+
|------|----------------|--------|
|
|
2134
|
+
| [N] | [resumo] | Completo |
|
|
2135
|
+
| [N+1] | [resumo] | Completo |
|
|
2136
|
+
|
|
2137
|
+
## Metricas
|
|
2138
|
+
|
|
2139
|
+
| Metrica | Valor |
|
|
2140
|
+
|---------|-------|
|
|
2141
|
+
| Fases | [N] |
|
|
2142
|
+
| Commits | [N] |
|
|
2143
|
+
| E2E testes | [X] passaram de [Y] |
|
|
2144
|
+
| Bugs corrigidos | [N] |
|
|
2145
|
+
|
|
2146
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
2147
|
+
|
|
2148
|
+
Quer polir? /up:ux-tester ou /up:melhorias
|
|
2149
|
+
Quer mais? /up:modo-builder "proxima feature"
|
|
2150
|
+
|
|
2151
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
2152
|
+
```
|
|
2153
|
+
|
|
2154
|
+
**NAO gerar DELIVERY.md. NAO rodar polish. NAO rodar ideias.**
|
|
2155
|
+
|
|
2156
|
+
</light_process>
|
|
2157
|
+
|
|
2158
|
+
<failure_handling>
|
|
2159
|
+
|
|
2160
|
+
## Tratamento de Falhas
|
|
2161
|
+
|
|
2162
|
+
### Planejamento falha (PLANNING INCONCLUSIVE)
|
|
2163
|
+
- Retry 1: Adicionar mais contexto da pesquisa ao prompt
|
|
2164
|
+
- Retry 2: Simplificar escopo da fase (dividir em 2)
|
|
2165
|
+
- Se ainda falha: Pular fase, registrar em DELIVERY.md como "Nao implementada"
|
|
2166
|
+
|
|
2167
|
+
### Execucao falha (agente nao retorna SUMMARY)
|
|
2168
|
+
- Retry 1: Re-spawnar executor para o plano falho
|
|
2169
|
+
- Se ainda falha: Registrar plano como incompleto, continuar com proxima wave/fase
|
|
2170
|
+
|
|
2171
|
+
### Verificacao encontra gaps
|
|
2172
|
+
- Ciclo 1: Planejar gaps + executar gap closure
|
|
2173
|
+
- Se gaps persistem: Registrar como pendente, avancar (sera listado no DELIVERY.md)
|
|
2174
|
+
|
|
2175
|
+
### Melhorias/Ideias falham
|
|
2176
|
+
- Estas etapas sao opcionais no builder
|
|
2177
|
+
- Se algum agente falha: Continuar com os que completaram
|
|
2178
|
+
- Se todos falham: Pular estagio, registrar no DELIVERY.md
|
|
2179
|
+
|
|
2180
|
+
**Principio:** O builder NUNCA para. Falhas sao registradas e contornadas. O usuario recebe o maximo possivel.
|
|
2181
|
+
|
|
2182
|
+
</failure_handling>
|
|
2183
|
+
|
|
2184
|
+
<context_management>
|
|
2185
|
+
|
|
2186
|
+
## Gestao de Contexto (1M tokens)
|
|
2187
|
+
|
|
2188
|
+
Com 1M de contexto, a maioria dos projetos cabe sem /clear. Mas monitore:
|
|
2189
|
+
|
|
2190
|
+
**Orquestrador fica enxuto:**
|
|
2191
|
+
- NAO leia conteudo de SUMMARYs inteiros — apenas verifique existencia
|
|
2192
|
+
- NAO leia PLANs apos planejamento — apenas passe caminhos ao executor
|
|
2193
|
+
- NAO leia codigo fonte — apenas verifique via git log/ls
|
|
2194
|
+
|
|
2195
|
+
**Subagentes recebem contexto limpo:**
|
|
2196
|
+
- Cada Task() spawna com contexto fresco
|
|
2197
|
+
- Passe apenas caminhos de arquivos, nao conteudo
|
|
2198
|
+
|
|
2199
|
+
**Se contexto atingir ~70%:**
|
|
2200
|
+
- Reduzir output de status (1 linha por fase ao inves de tabelas)
|
|
2201
|
+
- Pular estagio Polish (melhorias + ideias) se necessario
|
|
2202
|
+
- Priorizar completar build sobre polimento
|
|
2203
|
+
|
|
2204
|
+
</context_management>
|
|
2205
|
+
|
|
2206
|
+
<success_criteria>
|
|
2207
|
+
|
|
2208
|
+
## Criterios de Sucesso do Builder
|
|
2209
|
+
|
|
2210
|
+
- [ ] Estagio 1: Briefing coletado, perguntas criticas respondidas
|
|
2211
|
+
- [ ] Estagio 2: Product Analyst executado (concorrentes, features, personas)
|
|
2212
|
+
- [ ] Estagio 2: System Designer executado (modulos, roles, schema, blueprints, 5 camadas)
|
|
2213
|
+
- [ ] Estagio 2: Architect executou (PROJECT.md, REQUIREMENTS.md, ROADMAP.md criados)
|
|
2214
|
+
- [ ] Estagio 2: Requisitos completos (50-100 requisitos, 5 camadas)
|
|
2215
|
+
- [ ] Estagio 3: Todas as fases planejadas
|
|
2216
|
+
- [ ] Estagio 3: Todas as fases executadas (com specialist routing)
|
|
2217
|
+
- [ ] Estagio 3: Reflect (code review) apos cada fase
|
|
2218
|
+
- [ ] Estagio 3: Todas as fases verificadas
|
|
2219
|
+
- [ ] Estagio 3: Fases com UI testadas via Playwright (E2E-RESULTS.md)
|
|
2220
|
+
- [ ] Estagio 3: Bugs E2E corrigidos (quando possivel)
|
|
2221
|
+
- [ ] Estagio 3: Reassessment apos cada fase (roadmap re-avaliado)
|
|
2222
|
+
- [ ] Estagio 3: Commits atomicos por tarefa
|
|
2223
|
+
- [ ] Estagio 3: LOCK.md atualizado a cada transicao de estado
|
|
2224
|
+
- [ ] Estagio 3: Insights capturados em .plano/captures/ (se descobertos)
|
|
2225
|
+
- [ ] Estagio 4: Auditoria de melhorias executada (3 dimensoes)
|
|
2226
|
+
- [ ] Estagio 4: Quick wins aplicadas
|
|
2227
|
+
- [ ] Estagio 4: UX Review executado (navegar como usuario, 6 dimensoes)
|
|
2228
|
+
- [ ] Estagio 4: Melhorias UX implementadas automaticamente
|
|
2229
|
+
- [ ] Estagio 4: UX-REPORT.md gerado com scores e screenshots
|
|
2230
|
+
- [ ] Estagio 4: Mobile First executado (responsividade verificada em 3 viewports)
|
|
2231
|
+
- [ ] Estagio 4: MOBILE-REPORT.md gerado com score e screenshots comparativos
|
|
2232
|
+
- [ ] Estagio 4: Score composto calculado (6 dimensoes)
|
|
2233
|
+
- [ ] Estagio 4: Quality gate loop executado (ate score >= 9.0 ou max 5 ciclos)
|
|
2234
|
+
- [ ] Estagio 4: DevOps artifacts gerados (Dockerfile, CI/CD, .env.example, seed)
|
|
2235
|
+
- [ ] Estagio 4: Documentacao gerada (README, CHANGELOG, API docs)
|
|
2236
|
+
- [ ] Estagio 4: Security review executado
|
|
2237
|
+
- [ ] Estagio 4: QA — testes escritos e rodados
|
|
2238
|
+
- [ ] Estagio 4: Ideias geradas com ICE scoring (apos quality gate)
|
|
2239
|
+
- [ ] Estagio 5: Teste E2E final (smoke + fluxos + responsividade)
|
|
2240
|
+
- [ ] Estagio 5: E2E-REPORT.md gerado com screenshots
|
|
2241
|
+
- [ ] Estagio 5: Captures triados em TRIAGE.md
|
|
2242
|
+
- [ ] Estagio 5: DELIVERY.md gerado (incluindo E2E + captures + reassessments)
|
|
2243
|
+
- [ ] Estagio 5: LOCK.md removido (sessao concluida)
|
|
2244
|
+
- [ ] Estagio 5: Resumo apresentado ao usuario
|
|
2245
|
+
|
|
2246
|
+
**Minimo viavel:** Estagios 1-3 + Estagio 5. Estagios 4 (Polish) e E2E sao bonus.
|
|
2247
|
+
|
|
2248
|
+
</success_criteria>
|