up-cc 0.16.1 → 2.0.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/README.md +87 -577
- package/package.json +5 -3
- package/up/CHANGELOG.md +110 -0
- package/up/agents/up-arquiteto.md +95 -39
- package/up/agents/up-auditor.md +218 -0
- package/up/agents/up-executor.md +94 -31
- package/up/agents/up-mapeador-codigo.md +63 -10
- package/up/agents/up-pesquisador.md +278 -0
- package/up/agents/up-revisor.md +249 -0
- package/up/agents/up-sintetizador.md +156 -179
- package/up/agents/up-tester.md +280 -0
- package/up/agents/up-verificador.md +95 -11
- package/up/bin/install.js +182 -19
- package/up/bin/lib/core.cjs +17 -43
- package/up/bin/lib/github.cjs +495 -0
- package/up/bin/lib/multica.cjs +424 -0
- package/up/bin/up-tools.cjs +167 -46
- package/up/commands/auditar.md +66 -0
- package/up/commands/build.md +54 -43
- package/up/commands/depurar.md +1 -1
- package/up/commands/plan.md +52 -38
- package/up/commands/rapido.md +15 -9
- package/up/commands/testar.md +81 -122
- package/up/commands/up.md +106 -0
- package/up/hooks/up-session-start.js +107 -0
- package/up/references/engineering-principles.md +1 -1
- package/up/references/governance-rules.md +5 -5
- package/up/references/production-requirements.md +1 -1
- package/up/references/severity-levels.md +2 -2
- package/up/references/tdd-evidence-types.md +81 -0
- package/up/skills/up-brainstorm/SKILL.md +54 -0
- package/up/skills/up-brainstorm/visual-companion.md +33 -0
- package/up/skills/up-tdd/SKILL.md +39 -0
- package/up/skills/up-verificar-antes-de-concluir/SKILL.md +49 -0
- package/up/skills/usando-up/SKILL.md +26 -0
- package/up/templates/audit-plan.md +3 -3
- package/up/templates/audit-report.md +2 -2
- package/up/templates/design-tokens.md +2 -2
- package/up/workflows/auditar.md +255 -0
- package/up/workflows/build.md +600 -386
- package/up/workflows/dcrv.md +183 -99
- package/up/workflows/governance.md +112 -220
- package/up/workflows/plan.md +169 -399
- package/up/workflows/rapido.md +7 -1
- package/up/workflows/up.md +447 -0
- package/up/agents/up-analista-codigo.md +0 -446
- package/up/agents/up-api-tester.md +0 -405
- package/up/agents/up-architecture-supervisor.md +0 -126
- package/up/agents/up-audit-supervisor.md +0 -83
- package/up/agents/up-auditor-modernidade.md +0 -378
- package/up/agents/up-auditor-performance.md +0 -426
- package/up/agents/up-auditor-ux.md +0 -396
- package/up/agents/up-backend-specialist.md +0 -175
- package/up/agents/up-blind-validator.md +0 -259
- package/up/agents/up-chief-architect.md +0 -184
- package/up/agents/up-chief-engineer.md +0 -202
- package/up/agents/up-chief-operations.md +0 -123
- package/up/agents/up-chief-product.md +0 -103
- package/up/agents/up-chief-quality.md +0 -211
- package/up/agents/up-clone-crawler.md +0 -234
- package/up/agents/up-clone-design-extractor.md +0 -227
- package/up/agents/up-clone-feature-mapper.md +0 -225
- package/up/agents/up-clone-prd-writer.md +0 -169
- package/up/agents/up-clone-verifier.md +0 -227
- package/up/agents/up-code-reviewer.md +0 -229
- package/up/agents/up-consolidador-ideias.md +0 -493
- package/up/agents/up-database-specialist.md +0 -169
- package/up/agents/up-delivery-auditor.md +0 -247
- package/up/agents/up-devops-agent.md +0 -203
- package/up/agents/up-execution-supervisor.md +0 -315
- package/up/agents/up-exhaustive-tester.md +0 -348
- package/up/agents/up-frontend-specialist.md +0 -152
- package/up/agents/up-operations-supervisor.md +0 -94
- package/up/agents/up-pesquisador-mercado.md +0 -350
- package/up/agents/up-pesquisador-projeto.md +0 -358
- package/up/agents/up-planning-auditor.md +0 -284
- package/up/agents/up-planning-supervisor.md +0 -260
- package/up/agents/up-product-analyst.md +0 -192
- package/up/agents/up-product-supervisor.md +0 -83
- package/up/agents/up-project-ceo.md +0 -352
- package/up/agents/up-qa-agent.md +0 -171
- package/up/agents/up-quality-supervisor.md +0 -178
- package/up/agents/up-requirements-validator.md +0 -230
- package/up/agents/up-security-reviewer.md +0 -137
- package/up/agents/up-sintetizador-melhorias.md +0 -407
- package/up/agents/up-system-designer.md +0 -332
- package/up/agents/up-technical-writer.md +0 -188
- package/up/agents/up-verification-supervisor.md +0 -111
- package/up/agents/up-visual-critic.md +0 -358
- package/up/commands/adicionar-fase.md +0 -47
- package/up/commands/adicionar-testes.md +0 -145
- package/up/commands/ajuda.md +0 -176
- package/up/commands/atualizar.md +0 -103
- package/up/commands/clone-builder.md +0 -67
- package/up/commands/configurar.md +0 -219
- package/up/commands/custos.md +0 -67
- package/up/commands/dashboard.md +0 -48
- package/up/commands/discutir-fase.md +0 -35
- package/up/commands/executar-fase.md +0 -40
- package/up/commands/ideias.md +0 -49
- package/up/commands/iniciar.md +0 -31
- package/up/commands/mapear-codigo.md +0 -63
- package/up/commands/melhorias.md +0 -45
- package/up/commands/mobile-first.md +0 -71
- package/up/commands/modo-builder.md +0 -186
- package/up/commands/novo-projeto.md +0 -40
- package/up/commands/onboard.md +0 -69
- package/up/commands/pausar.md +0 -33
- package/up/commands/planejar-fase.md +0 -45
- package/up/commands/progresso.md +0 -33
- package/up/commands/remover-fase.md +0 -34
- package/up/commands/resetar.md +0 -27
- package/up/commands/retomar.md +0 -35
- package/up/commands/saude.md +0 -103
- package/up/commands/ux-tester.md +0 -63
- package/up/commands/verificar-trabalho.md +0 -35
- package/up/workflows/adicionar-fase.md +0 -112
- package/up/workflows/builder-e2e.md +0 -501
- package/up/workflows/builder.md +0 -3419
- package/up/workflows/ceo-intake.md +0 -305
- package/up/workflows/ceo-updates.md +0 -183
- package/up/workflows/clone-builder.md +0 -320
- package/up/workflows/discutir-fase.md +0 -336
- package/up/workflows/executar-fase.md +0 -358
- package/up/workflows/executar-plano.md +0 -659
- package/up/workflows/ideias.md +0 -381
- package/up/workflows/iniciar.md +0 -235
- package/up/workflows/melhorias.md +0 -409
- package/up/workflows/mobile-first.md +0 -692
- package/up/workflows/novo-projeto.md +0 -778
- package/up/workflows/planejar-fase.md +0 -293
- package/up/workflows/progresso.md +0 -226
- package/up/workflows/retomar.md +0 -231
- package/up/workflows/ux-tester.md +0 -526
- package/up/workflows/verificar-trabalho.md +0 -308
|
@@ -1,320 +0,0 @@
|
|
|
1
|
-
<purpose>
|
|
2
|
-
Clone Builder: analisar app existente via Playwright e recriar com o modo-builder.
|
|
3
|
-
|
|
4
|
-
Pipeline:
|
|
5
|
-
1. Intake (perguntas)
|
|
6
|
-
2. Crawl (navegar e coletar)
|
|
7
|
-
3. Analyze (design + features em paralelo)
|
|
8
|
-
4. PRD (sintetizar)
|
|
9
|
-
5. Builder (recriar — usa pipeline existente do modo-builder)
|
|
10
|
-
6. Clone Verify (verificar fidelidade no quality gate)
|
|
11
|
-
</purpose>
|
|
12
|
-
|
|
13
|
-
<process>
|
|
14
|
-
|
|
15
|
-
## Fase 1: Intake
|
|
16
|
-
|
|
17
|
-
### 1.1 Parsear Argumentos
|
|
18
|
-
|
|
19
|
-
Extrair do $ARGUMENTS:
|
|
20
|
-
- URL do app (obrigatorio)
|
|
21
|
-
- Modo: `--exact` (default), `--improve`, `--inspiration`
|
|
22
|
-
|
|
23
|
-
### 1.2 Perguntas
|
|
24
|
-
|
|
25
|
-
```
|
|
26
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
27
|
-
UP > CLONE BUILDER
|
|
28
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
29
|
-
|
|
30
|
-
App a clonar: {URL}
|
|
31
|
-
Modo: {exact|improve|inspiration}
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
Perguntar via AskUserQuestion:
|
|
35
|
-
|
|
36
|
-
1. **Credenciais do app** (se precisa login):
|
|
37
|
-
- Email e senha de demo/trial
|
|
38
|
-
- Ou "nao precisa" se app e publico
|
|
39
|
-
|
|
40
|
-
2. **Stack desejada** (ou "usar defaults"):
|
|
41
|
-
- Frontend, backend, banco
|
|
42
|
-
- Ou: "usar builder-defaults.md"
|
|
43
|
-
|
|
44
|
-
3. **Credenciais do banco** (para o clone):
|
|
45
|
-
- Supabase URL + anon key + service role key
|
|
46
|
-
- Ou outro banco
|
|
47
|
-
|
|
48
|
-
4. **Se modo improve/inspiration:** O que quer diferente?
|
|
49
|
-
|
|
50
|
-
═══════════════════════════════════════════════════════
|
|
51
|
-
FIM DA INTERACAO
|
|
52
|
-
═══════════════════════════════════════════════════════
|
|
53
|
-
|
|
54
|
-
### 1.3 Setup
|
|
55
|
-
|
|
56
|
-
```bash
|
|
57
|
-
mkdir -p .plano/clone/screenshots/desktop .plano/clone/screenshots/mobile .plano/clone/network .plano/clone/forms .plano/clone/snapshots .plano/clone/verify
|
|
58
|
-
git init 2>/dev/null
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
Salvar `.plano/BRIEFING.md` com URL, credenciais, stack, modo.
|
|
62
|
-
|
|
63
|
-
Iniciar dashboard:
|
|
64
|
-
```bash
|
|
65
|
-
node "$HOME/.claude/up/dashboard/server.js" 4040 "$(pwd)/.plano" &
|
|
66
|
-
DASH_PID=$!
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
---
|
|
70
|
-
|
|
71
|
-
## Fase 2: Crawl
|
|
72
|
-
|
|
73
|
-
```
|
|
74
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
75
|
-
CLONE > NAVEGANDO APP ORIGINAL
|
|
76
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
```
|
|
80
|
-
Task(
|
|
81
|
-
subagent_type="up-clone-crawler",
|
|
82
|
-
prompt="
|
|
83
|
-
<objective>
|
|
84
|
-
Navegar o app em {URL} completamente. Screenshots de todas paginas,
|
|
85
|
-
interceptar APIs, extrair forms, mapear navegacao.
|
|
86
|
-
{Se credenciais: fazer login com {EMAIL}/{PASSWORD}}
|
|
87
|
-
</objective>
|
|
88
|
-
|
|
89
|
-
<credentials>
|
|
90
|
-
URL: {URL}
|
|
91
|
-
Email: {EMAIL ou 'nenhum'}
|
|
92
|
-
Password: {PASSWORD ou 'nenhum'}
|
|
93
|
-
</credentials>
|
|
94
|
-
",
|
|
95
|
-
description="Crawl do app original"
|
|
96
|
-
)
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
```
|
|
100
|
-
Crawl: {N} rotas | {M} screenshots | {X} APIs | {Y} forms
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
---
|
|
104
|
-
|
|
105
|
-
## Fase 3: Analyze (2 agentes em PARALELO)
|
|
106
|
-
|
|
107
|
-
```
|
|
108
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
109
|
-
CLONE > ANALISANDO
|
|
110
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
Spawnar em PARALELO:
|
|
114
|
-
|
|
115
|
-
```
|
|
116
|
-
Task(
|
|
117
|
-
subagent_type="up-clone-design-extractor",
|
|
118
|
-
prompt="
|
|
119
|
-
<objective>
|
|
120
|
-
Analisar screenshots e extrair design system completo do app em {URL}.
|
|
121
|
-
</objective>
|
|
122
|
-
|
|
123
|
-
<files_to_read>
|
|
124
|
-
- .plano/clone/CRAWL-DATA.md
|
|
125
|
-
</files_to_read>
|
|
126
|
-
|
|
127
|
-
<app_url>{URL}</app_url>
|
|
128
|
-
",
|
|
129
|
-
description="Extrair design system"
|
|
130
|
-
)
|
|
131
|
-
|
|
132
|
-
Task(
|
|
133
|
-
subagent_type="up-clone-feature-mapper",
|
|
134
|
-
prompt="
|
|
135
|
-
<objective>
|
|
136
|
-
Mapear modulos, features, roles, data model, fluxos e integracoes do app.
|
|
137
|
-
</objective>
|
|
138
|
-
|
|
139
|
-
<files_to_read>
|
|
140
|
-
- .plano/clone/CRAWL-DATA.md
|
|
141
|
-
- .plano/clone/network/ (ler todos)
|
|
142
|
-
- .plano/clone/forms/ (ler todos)
|
|
143
|
-
</files_to_read>
|
|
144
|
-
",
|
|
145
|
-
description="Mapear features e data model"
|
|
146
|
-
)
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
```
|
|
150
|
-
Design: {N} cores | {M} componentes | Layout: {tipo}
|
|
151
|
-
Features: {N} modulos | {M} features | {X} roles | {Y} entidades
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
---
|
|
155
|
-
|
|
156
|
-
## Fase 4: PRD
|
|
157
|
-
|
|
158
|
-
```
|
|
159
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
160
|
-
CLONE > GERANDO PRD
|
|
161
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
```
|
|
165
|
-
Task(
|
|
166
|
-
subagent_type="up-clone-prd-writer",
|
|
167
|
-
prompt="
|
|
168
|
-
<objective>
|
|
169
|
-
Sintetizar analise em PRD completo para o modo-builder.
|
|
170
|
-
</objective>
|
|
171
|
-
|
|
172
|
-
<files_to_read>
|
|
173
|
-
- .plano/BRIEFING.md (stack e preferencias)
|
|
174
|
-
- .plano/clone/CRAWL-DATA.md
|
|
175
|
-
- .plano/clone/DESIGN-SYSTEM.md
|
|
176
|
-
- .plano/clone/FEATURE-MAP.md
|
|
177
|
-
</files_to_read>
|
|
178
|
-
|
|
179
|
-
<clone_mode>{exact|improve|inspiration}</clone_mode>
|
|
180
|
-
",
|
|
181
|
-
description="Gerar PRD do clone"
|
|
182
|
-
)
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
```
|
|
186
|
-
PRD: {N} modulos | {M} features | {X} fluxos | Modo: {modo}
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
---
|
|
190
|
-
|
|
191
|
-
## Fase 5: Modo Builder
|
|
192
|
-
|
|
193
|
-
```
|
|
194
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
195
|
-
CLONE > CONSTRUINDO COM MODO BUILDER
|
|
196
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
197
|
-
```
|
|
198
|
-
|
|
199
|
-
Alimentar o modo-builder com o CLONE-PRD.md como briefing.
|
|
200
|
-
|
|
201
|
-
**IMPORTANTE:** Configurar builder para modo clone:
|
|
202
|
-
|
|
203
|
-
config.json deve ter:
|
|
204
|
-
```json
|
|
205
|
-
{
|
|
206
|
-
"builder_mode": true,
|
|
207
|
-
"builder_type": "clone",
|
|
208
|
-
"clone_source": "{URL}",
|
|
209
|
-
"clone_mode": "{exact|improve|inspiration}",
|
|
210
|
-
"clone_data": ".plano/clone/"
|
|
211
|
-
}
|
|
212
|
-
```
|
|
213
|
-
|
|
214
|
-
**O builder recebe instrucoes especiais no modo clone:**
|
|
215
|
-
|
|
216
|
-
1. **Product Analyst:** Se modo exact — NAO sugerir mudancas, apenas validar. Se improve — pode sugerir adicoes.
|
|
217
|
-
2. **System Designer:** Usar data model do FEATURE-MAP.md como base. Usar design system do DESIGN-SYSTEM.md.
|
|
218
|
-
3. **Frontend Specialist:** LER screenshots de .plano/clone/screenshots/ e replicar layout/design.
|
|
219
|
-
4. **Code Reviewer:** Verificar fidelidade visual alem de production-requirements.
|
|
220
|
-
5. **Quality Gate:** Incluir dimensao "Fidelidade" com clone-verifier.
|
|
221
|
-
|
|
222
|
-
Executar o pipeline COMPLETO do builder:
|
|
223
|
-
- Estagio 2: Arquitetura (3 agentes + validator)
|
|
224
|
-
- Estagio 3: Build (RARV + specialist routing)
|
|
225
|
-
- Estagio 4: Quality Gate (com clone-verifier como dimensao extra)
|
|
226
|
-
- Estagio 5: Entrega
|
|
227
|
-
|
|
228
|
-
**O builder sabe que e clone** pelo `builder_type: "clone"` no config.json. Cada agente que le config.json adapta seu comportamento.
|
|
229
|
-
|
|
230
|
-
---
|
|
231
|
-
|
|
232
|
-
## Fase 6: Clone Verification (integrado no Quality Gate)
|
|
233
|
-
|
|
234
|
-
O clone-verifier roda como parte do quality gate do builder:
|
|
235
|
-
|
|
236
|
-
```
|
|
237
|
-
Task(
|
|
238
|
-
subagent_type="up-clone-verifier",
|
|
239
|
-
prompt="
|
|
240
|
-
<objective>
|
|
241
|
-
Verificar fidelidade do clone contra o app original.
|
|
242
|
-
Testar feature a feature (funcional) e pagina a pagina (visual).
|
|
243
|
-
</objective>
|
|
244
|
-
|
|
245
|
-
<files_to_read>
|
|
246
|
-
- .plano/clone/FEATURE-MAP.md (lista de features CLONE-*)
|
|
247
|
-
- .plano/clone/CRAWL-DATA.md (rotas do original)
|
|
248
|
-
- .plano/clone/DESIGN-SYSTEM.md (design reference)
|
|
249
|
-
- .plano/config.json (clone_source URL)
|
|
250
|
-
</files_to_read>
|
|
251
|
-
",
|
|
252
|
-
description="Verificar fidelidade do clone"
|
|
253
|
-
)
|
|
254
|
-
```
|
|
255
|
-
|
|
256
|
-
Se fidelidade < 9.0:
|
|
257
|
-
- Features MISSING → criar planos + executar
|
|
258
|
-
- Features BROKEN → debugar + corrigir
|
|
259
|
-
- Visual off → ajustar CSS/componentes
|
|
260
|
-
- Re-verificar
|
|
261
|
-
|
|
262
|
-
---
|
|
263
|
-
|
|
264
|
-
## Fase 7: Entrega
|
|
265
|
-
|
|
266
|
-
O DELIVERY.md do builder inclui secao extra de clone:
|
|
267
|
-
|
|
268
|
-
```markdown
|
|
269
|
-
## Fidelidade ao Original
|
|
270
|
-
|
|
271
|
-
**Score:** {N}/10
|
|
272
|
-
**Funcional:** {N}/10 ({match}/{total} features)
|
|
273
|
-
**Visual:** {N}/10
|
|
274
|
-
|
|
275
|
-
| Status | Quantidade |
|
|
276
|
-
|--------|-----------|
|
|
277
|
-
| MATCH | {N} |
|
|
278
|
-
| IMPROVED | {N} |
|
|
279
|
-
| PARTIAL | {N} |
|
|
280
|
-
| MISSING | {N} |
|
|
281
|
-
| BROKEN | {N} |
|
|
282
|
-
|
|
283
|
-
Screenshots comparativos: .plano/clone/verify/
|
|
284
|
-
```
|
|
285
|
-
|
|
286
|
-
Cleanup:
|
|
287
|
-
```bash
|
|
288
|
-
kill $DASH_PID 2>/dev/null
|
|
289
|
-
```
|
|
290
|
-
|
|
291
|
-
```
|
|
292
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
293
|
-
CLONE BUILDER > COMPLETO
|
|
294
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
295
|
-
|
|
296
|
-
**Original:** {URL}
|
|
297
|
-
**Clone:** http://localhost:{PORT}
|
|
298
|
-
**Fidelidade:** {N}/10
|
|
299
|
-
|
|
300
|
-
Features: {match} MATCH | {partial} PARTIAL | {missing} MISSING | {broken} BROKEN
|
|
301
|
-
Quality Score: {N}/10
|
|
302
|
-
|
|
303
|
-
Relatorio: .plano/DELIVERY.md
|
|
304
|
-
Comparativo: .plano/clone/verify/
|
|
305
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
306
|
-
```
|
|
307
|
-
|
|
308
|
-
</process>
|
|
309
|
-
|
|
310
|
-
<success_criteria>
|
|
311
|
-
- [ ] App original crawled (todas rotas, screenshots, APIs, forms)
|
|
312
|
-
- [ ] Design system extraido
|
|
313
|
-
- [ ] Features mapeadas com IDs CLONE-*
|
|
314
|
-
- [ ] PRD gerado completo
|
|
315
|
-
- [ ] Builder executou com config clone
|
|
316
|
-
- [ ] Clone verificado feature a feature contra original
|
|
317
|
-
- [ ] Clone verificado visualmente contra original
|
|
318
|
-
- [ ] Score de fidelidade >= 9.0 (ou max esforco)
|
|
319
|
-
- [ ] DELIVERY.md com secao de fidelidade
|
|
320
|
-
</success_criteria>
|
|
@@ -1,336 +0,0 @@
|
|
|
1
|
-
<purpose>
|
|
2
|
-
Extrair decisoes de implementacao que agentes downstream precisam. Analisar a fase para identificar areas cinzentas, deixar o usuario escolher o que discutir, entao aprofundar em cada area selecionada ate ficar satisfeito.
|
|
3
|
-
|
|
4
|
-
Voce e um parceiro de pensamento, nao um entrevistador. O usuario e o visionario -- voce e o construtor. Seu trabalho e capturar decisoes que guiarao pesquisa e planejamento.
|
|
5
|
-
</purpose>
|
|
6
|
-
|
|
7
|
-
<scope_guardrail>
|
|
8
|
-
**CRITICO: Sem inflacao de escopo.**
|
|
9
|
-
|
|
10
|
-
O limite da fase vem do ROADMAP.md e e FIXO. Discussao esclarece COMO implementar o que esta no escopo, nunca SE adicionar novas capacidades.
|
|
11
|
-
|
|
12
|
-
**Permitido (esclarecer ambiguidade):**
|
|
13
|
-
- "Como posts devem ser exibidos?" (layout, densidade, info mostrada)
|
|
14
|
-
- "O que acontece no estado vazio?" (dentro da feature)
|
|
15
|
-
|
|
16
|
-
**Nao permitido (inflacao de escopo):**
|
|
17
|
-
- "Devemos tambem adicionar comentarios?" (nova capacidade)
|
|
18
|
-
- "E sobre busca/filtragem?" (nova capacidade)
|
|
19
|
-
|
|
20
|
-
**Quando usuario sugere inflacao de escopo:**
|
|
21
|
-
```
|
|
22
|
-
"[Feature X] seria uma nova capacidade -- e uma fase propria.
|
|
23
|
-
Quer que eu anote para o backlog do roteiro?
|
|
24
|
-
|
|
25
|
-
Por agora, vamos focar em [dominio da fase]."
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
Capturar a ideia em secao "Ideias Adiadas". Nao perca, nao atue sobre ela.
|
|
29
|
-
</scope_guardrail>
|
|
30
|
-
|
|
31
|
-
<process>
|
|
32
|
-
|
|
33
|
-
<step name="initialize" priority="first">
|
|
34
|
-
Numero da fase do argumento (obrigatorio).
|
|
35
|
-
|
|
36
|
-
```bash
|
|
37
|
-
INIT=$(node "$HOME/.claude/up/bin/up-tools.cjs" init operacao-fase "${PHASE}")
|
|
38
|
-
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
Parse JSON: `commit_docs`, `phase_found`, `phase_dir`, `phase_number`, `phase_name`, `phase_slug`, `padded_phase`, `has_research`, `has_context`, `has_plans`, `plan_count`, `roadmap_exists`, `planning_exists`.
|
|
42
|
-
|
|
43
|
-
**Se `phase_found` = false:**
|
|
44
|
-
```
|
|
45
|
-
Fase [X] nao encontrada no roteiro.
|
|
46
|
-
|
|
47
|
-
Use /up:progresso para ver fases disponiveis.
|
|
48
|
-
```
|
|
49
|
-
Sair do workflow.
|
|
50
|
-
|
|
51
|
-
**Se `phase_found` = true:** Continuar para check_existing.
|
|
52
|
-
</step>
|
|
53
|
-
|
|
54
|
-
<step name="check_existing">
|
|
55
|
-
Verificar se CONTEXT.md ja existe usando `has_context` do init.
|
|
56
|
-
|
|
57
|
-
**Se existe:**
|
|
58
|
-
Use AskUserQuestion:
|
|
59
|
-
- header: "Contexto"
|
|
60
|
-
- question: "Fase [X] ja tem contexto. O que voce quer fazer?"
|
|
61
|
-
- options:
|
|
62
|
-
- "Atualizar" -- Revisar e atualizar contexto existente
|
|
63
|
-
- "Ver" -- Mostrar o que tem la
|
|
64
|
-
- "Pular" -- Usar contexto existente como esta
|
|
65
|
-
|
|
66
|
-
Se "Atualizar": Carregar existente, continuar para analyze_phase
|
|
67
|
-
Se "Ver": Exibir CONTEXT.md, depois oferecer atualizar/pular
|
|
68
|
-
Se "Pular": Sair do workflow
|
|
69
|
-
|
|
70
|
-
**Se nao existe:** Continuar para load_prior_context.
|
|
71
|
-
</step>
|
|
72
|
-
|
|
73
|
-
<step name="load_prior_context">
|
|
74
|
-
Ler contexto de nivel de projeto e de fases anteriores para evitar re-perguntar questoes ja decididas.
|
|
75
|
-
|
|
76
|
-
**Passo 1: Ler arquivos do projeto**
|
|
77
|
-
```bash
|
|
78
|
-
cat .plano/PROJECT.md 2>/dev/null
|
|
79
|
-
cat .plano/REQUIREMENTS.md 2>/dev/null
|
|
80
|
-
cat .plano/STATE.md 2>/dev/null
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
Extrair:
|
|
84
|
-
- **PROJECT.md** -- Visao, principios, nao-negociaveis, preferencias do usuario
|
|
85
|
-
- **REQUIREMENTS.md** -- Criterios de aceitacao, restricoes
|
|
86
|
-
- **STATE.md** -- Progresso atual, flags ou notas
|
|
87
|
-
|
|
88
|
-
**Passo 1b: Ler mapeamento do codebase (se brownfield)**
|
|
89
|
-
```bash
|
|
90
|
-
ls .plano/codebase/*.md 2>/dev/null
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
Se `.plano/codebase/` existe (projeto brownfield):
|
|
94
|
-
- Ler `ARCHITECTURE.md` -- entender estrutura do sistema para perguntas de design
|
|
95
|
-
- Ler `CONVENTIONS.md` -- entender padroes existentes para alinhar discussao
|
|
96
|
-
- Ler `CONCERNS.md` -- divida tecnica que pode afetar decisoes da fase
|
|
97
|
-
|
|
98
|
-
**Uso:** Areas cinzentas devem considerar restricoes e padroes do codebase existente. Perguntas como "Essa fase vai mexer em que partes do sistema?" sao informadas pela arquitetura conhecida.
|
|
99
|
-
|
|
100
|
-
**Passo 2: Ler todos CONTEXT.md de fases anteriores**
|
|
101
|
-
```bash
|
|
102
|
-
find .plano/fases -name "*-CONTEXT.md" 2>/dev/null | sort
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
Para cada CONTEXT.md onde numero da fase < fase atual:
|
|
106
|
-
- Ler secao `<decisions>` -- sao preferencias travadas
|
|
107
|
-
- Ler `<specifics>` -- referencias particulares ou momentos "quero como X"
|
|
108
|
-
- Notar padroes
|
|
109
|
-
|
|
110
|
-
**Passo 3: Construir contexto interno `<prior_decisions>`**
|
|
111
|
-
|
|
112
|
-
**Uso nos passos seguintes:**
|
|
113
|
-
- `analyze_phase`: Pular areas cinzentas ja decididas
|
|
114
|
-
- `present_gray_areas`: Anotar opcoes com decisoes anteriores
|
|
115
|
-
- `discuss_areas`: Pre-preencher respostas ou sinalizar conflitos
|
|
116
|
-
</step>
|
|
117
|
-
|
|
118
|
-
<step name="analyze_phase">
|
|
119
|
-
Analisar a fase para identificar areas cinzentas que valem discussao.
|
|
120
|
-
|
|
121
|
-
**Ler descricao da fase do ROADMAP.md e determinar:**
|
|
122
|
-
|
|
123
|
-
1. **Limite do dominio** -- Qual capacidade essa fase entrega? Declarar claramente.
|
|
124
|
-
|
|
125
|
-
2. **Verificar decisoes anteriores** -- Antes de gerar areas cinzentas, verificar se ja foram decididas.
|
|
126
|
-
|
|
127
|
-
3. **Areas cinzentas por categoria** -- Para cada categoria relevante, identificar 1-2 ambiguidades especificas que mudariam implementacao.
|
|
128
|
-
|
|
129
|
-
4. **Avaliacao de pulo** -- Se nao ha areas cinzentas significativas (infraestrutura pura, implementacao clara, ou tudo ja decidido), a fase pode nao precisar de discussao.
|
|
130
|
-
</step>
|
|
131
|
-
|
|
132
|
-
<step name="present_gray_areas">
|
|
133
|
-
Apresentar limite do dominio, decisoes anteriores e areas cinzentas ao usuario.
|
|
134
|
-
|
|
135
|
-
**Primeiro, declarar limite e decisoes anteriores que se aplicam:**
|
|
136
|
-
```
|
|
137
|
-
Fase [X]: [Nome]
|
|
138
|
-
Dominio: [O que esta fase entrega -- da sua analise]
|
|
139
|
-
|
|
140
|
-
Vamos esclarecer COMO implementar isso.
|
|
141
|
-
(Novas capacidades pertencem a outras fases.)
|
|
142
|
-
|
|
143
|
-
[Se decisoes anteriores se aplicam:]
|
|
144
|
-
**Herdado de fases anteriores:**
|
|
145
|
-
- [Decisao da Fase N que se aplica aqui]
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
**Usar AskUserQuestion (multiSelect: true):**
|
|
149
|
-
- header: "Discutir"
|
|
150
|
-
- question: "Quais areas voce quer discutir para [nome da fase]?"
|
|
151
|
-
- options: Gerar 3-4 areas cinzentas especificas da fase
|
|
152
|
-
|
|
153
|
-
**NAO incluir opcao "pular" ou "voce decide".** Usuario executou este comando para discutir.
|
|
154
|
-
</step>
|
|
155
|
-
|
|
156
|
-
<step name="discuss_areas">
|
|
157
|
-
Para cada area selecionada, conduzir loop de discussao focada.
|
|
158
|
-
|
|
159
|
-
**Filosofia: 4 perguntas, depois verificar.**
|
|
160
|
-
|
|
161
|
-
**Para cada area:**
|
|
162
|
-
|
|
163
|
-
1. **Anunciar a area:**
|
|
164
|
-
```
|
|
165
|
-
Vamos falar sobre [Area].
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
2. **Perguntar 4 questoes usando AskUserQuestion:**
|
|
169
|
-
- header: "[Area]" (max 12 chars)
|
|
170
|
-
- question: Decisao especifica para esta area
|
|
171
|
-
- options: 2-3 escolhas concretas, com escolha recomendada destacada
|
|
172
|
-
- Incluir "Voce decide" como opcao quando razoavel
|
|
173
|
-
|
|
174
|
-
3. **Apos 4 perguntas, verificar:**
|
|
175
|
-
- header: "[Area]" (max 12 chars)
|
|
176
|
-
- question: "Mais perguntas sobre [area], ou ir para proxima?"
|
|
177
|
-
- options: "Mais perguntas" / "Proxima area"
|
|
178
|
-
|
|
179
|
-
4. **Apos todas areas selecionadas completarem:**
|
|
180
|
-
- Resumir o que foi capturado
|
|
181
|
-
- AskUserQuestion:
|
|
182
|
-
- header: "Pronto"
|
|
183
|
-
- question: "Discutimos [listar areas]. Quais areas cinzentas permanecem?"
|
|
184
|
-
- options: "Explorar mais areas" / "Pronto para contexto"
|
|
185
|
-
- Se "Explorar mais": identificar 2-4 areas adicionais, voltar ao loop
|
|
186
|
-
- Se "Pronto para contexto": Prosseguir para write_context
|
|
187
|
-
|
|
188
|
-
**Tratamento de inflacao de escopo:**
|
|
189
|
-
Se usuario mencionar algo fora do dominio da fase:
|
|
190
|
-
```
|
|
191
|
-
"[Feature] parece uma nova capacidade -- pertence a propria fase.
|
|
192
|
-
Vou anotar como ideia adiada.
|
|
193
|
-
|
|
194
|
-
Voltando para [area atual]: [retornar a pergunta atual]"
|
|
195
|
-
```
|
|
196
|
-
</step>
|
|
197
|
-
|
|
198
|
-
<step name="write_context">
|
|
199
|
-
Criar CONTEXT.md capturando decisoes tomadas.
|
|
200
|
-
|
|
201
|
-
Usar valores do init: `phase_dir`, `phase_slug`, `padded_phase`.
|
|
202
|
-
|
|
203
|
-
Se `phase_dir` e null:
|
|
204
|
-
```bash
|
|
205
|
-
mkdir -p ".plano/fases/${padded_phase}-${phase_slug}"
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
**Local do arquivo:** `${phase_dir}/${padded_phase}-CONTEXT.md`
|
|
209
|
-
|
|
210
|
-
```markdown
|
|
211
|
-
# Fase [X]: [Nome] - Contexto
|
|
212
|
-
|
|
213
|
-
**Reunido:** [data]
|
|
214
|
-
**Status:** Pronto para planejamento
|
|
215
|
-
|
|
216
|
-
<domain>
|
|
217
|
-
## Limite da Fase
|
|
218
|
-
|
|
219
|
-
[Declaracao clara do que esta fase entrega -- a ancora de escopo]
|
|
220
|
-
|
|
221
|
-
</domain>
|
|
222
|
-
|
|
223
|
-
<decisions>
|
|
224
|
-
## Decisoes de Implementacao
|
|
225
|
-
|
|
226
|
-
### [Categoria 1 discutida]
|
|
227
|
-
- [Decisao ou preferencia capturada]
|
|
228
|
-
|
|
229
|
-
### [Categoria 2 discutida]
|
|
230
|
-
- [Decisao ou preferencia capturada]
|
|
231
|
-
|
|
232
|
-
### Criterio do Claude
|
|
233
|
-
[Areas onde usuario disse "voce decide"]
|
|
234
|
-
|
|
235
|
-
</decisions>
|
|
236
|
-
|
|
237
|
-
<specifics>
|
|
238
|
-
## Ideias Especificas
|
|
239
|
-
|
|
240
|
-
[Referencias particulares, exemplos, ou momentos "quero como X"]
|
|
241
|
-
|
|
242
|
-
[Se nenhum: "Sem requisitos especificos -- aberto a abordagens padrao"]
|
|
243
|
-
|
|
244
|
-
</specifics>
|
|
245
|
-
|
|
246
|
-
<deferred>
|
|
247
|
-
## Ideias Adiadas
|
|
248
|
-
|
|
249
|
-
[Ideias que surgiram mas pertencem a outras fases.]
|
|
250
|
-
|
|
251
|
-
[Se nenhuma: "Nenhuma -- discussao manteve-se no escopo da fase"]
|
|
252
|
-
|
|
253
|
-
</deferred>
|
|
254
|
-
|
|
255
|
-
---
|
|
256
|
-
|
|
257
|
-
*Fase: XX-nome*
|
|
258
|
-
*Contexto reunido: [data]*
|
|
259
|
-
```
|
|
260
|
-
|
|
261
|
-
Escrever arquivo.
|
|
262
|
-
</step>
|
|
263
|
-
|
|
264
|
-
<step name="confirm_creation">
|
|
265
|
-
Apresentar resumo e proximos passos:
|
|
266
|
-
|
|
267
|
-
```
|
|
268
|
-
Criado: .plano/fases/${PADDED_PHASE}-${SLUG}/${PADDED_PHASE}-CONTEXT.md
|
|
269
|
-
|
|
270
|
-
## Decisoes Capturadas
|
|
271
|
-
|
|
272
|
-
### [Categoria]
|
|
273
|
-
- [Decisao-chave]
|
|
274
|
-
|
|
275
|
-
[Se ideias adiadas existem:]
|
|
276
|
-
## Anotado para Depois
|
|
277
|
-
- [Ideia adiada] -- fase futura
|
|
278
|
-
|
|
279
|
-
---
|
|
280
|
-
|
|
281
|
-
## Proximo
|
|
282
|
-
|
|
283
|
-
**Fase ${PHASE}: [Nome]** -- [Objetivo do ROADMAP.md]
|
|
284
|
-
|
|
285
|
-
`/up:planejar-fase ${PHASE}`
|
|
286
|
-
|
|
287
|
-
<sub>`/clear` primeiro -> janela de contexto limpa</sub>
|
|
288
|
-
|
|
289
|
-
---
|
|
290
|
-
|
|
291
|
-
**Tambem disponivel:**
|
|
292
|
-
- Revisar/editar CONTEXT.md antes de continuar
|
|
293
|
-
|
|
294
|
-
---
|
|
295
|
-
```
|
|
296
|
-
</step>
|
|
297
|
-
|
|
298
|
-
<step name="git_commit">
|
|
299
|
-
Commit do contexto da fase:
|
|
300
|
-
|
|
301
|
-
```bash
|
|
302
|
-
node "$HOME/.claude/up/bin/up-tools.cjs" commit "docs(${padded_phase}): capturar contexto da fase" --files "${phase_dir}/${padded_phase}-CONTEXT.md"
|
|
303
|
-
```
|
|
304
|
-
</step>
|
|
305
|
-
|
|
306
|
-
<step name="update_state">
|
|
307
|
-
Atualizar STATE.md com info da sessao:
|
|
308
|
-
|
|
309
|
-
```bash
|
|
310
|
-
node "$HOME/.claude/up/bin/up-tools.cjs" state record-session \
|
|
311
|
-
--stopped-at "Fase ${PHASE} contexto reunido" \
|
|
312
|
-
--resume-file "${phase_dir}/${padded_phase}-CONTEXT.md"
|
|
313
|
-
```
|
|
314
|
-
|
|
315
|
-
Commit STATE.md:
|
|
316
|
-
|
|
317
|
-
```bash
|
|
318
|
-
node "$HOME/.claude/up/bin/up-tools.cjs" commit "docs(state): registrar sessao de contexto fase ${PHASE}" --files .plano/STATE.md
|
|
319
|
-
```
|
|
320
|
-
</step>
|
|
321
|
-
|
|
322
|
-
</process>
|
|
323
|
-
|
|
324
|
-
<success_criteria>
|
|
325
|
-
- Fase validada contra roteiro
|
|
326
|
-
- Contexto anterior carregado (PROJECT.md, REQUIREMENTS.md, STATE.md, CONTEXT.md anteriores)
|
|
327
|
-
- Questoes ja decididas nao re-perguntadas
|
|
328
|
-
- Areas cinzentas identificadas com analise inteligente
|
|
329
|
-
- Usuario selecionou quais areas discutir
|
|
330
|
-
- Cada area explorada ate usuario ficar satisfeito
|
|
331
|
-
- Inflacao de escopo redirecionada para ideias adiadas
|
|
332
|
-
- CONTEXT.md captura decisoes reais, nao visao vaga
|
|
333
|
-
- Ideias adiadas preservadas para fases futuras
|
|
334
|
-
- STATE.md atualizado com info da sessao
|
|
335
|
-
- Usuario sabe proximos passos
|
|
336
|
-
</success_criteria>
|