up-cc 0.5.2 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,390 @@
1
+ <purpose>
2
+ Workflow `/up:plan` — Planejamento completo de projeto.
3
+
4
+ Conduz Estagios 1 (Intake) + 2 (Arquitetura) + 2.5 (Planejamento exaustivo de TODAS fases) + Planning Audit + PLAN-READY.
5
+
6
+ NAO executa nada. Para apos gerar PLAN-READY.md.
7
+
8
+ Resultado: projeto completamente planejado, pronto para `/up:build` no mesmo runtime ou outro.
9
+ </purpose>
10
+
11
+ <core_principle>
12
+ Este workflow REUTILIZA os agentes existentes do UP. Apenas orquestra Intake → Arquitetura → Planejamento → Audit.
13
+
14
+ Diferenca do builder:
15
+ - Builder planeja UMA fase, executa, planeja proxima, executa, etc. (incremental)
16
+ - Plan planeja TODAS as fases de uma vez antes de qualquer execucao (batch)
17
+
18
+ Por que? Para permitir que o build rode em outro runtime (ex: planeja em Claude Code, executa em OpenCode).
19
+
20
+ **Sem model routing** — runtime decide o modelo.
21
+ **Sonnet-ready obrigatorio** — todos planos em nivel maximo de detalhe.
22
+ </core_principle>
23
+
24
+ <process>
25
+
26
+ ## Estagio 0: GATES OBRIGATORIOS
27
+
28
+ ### 0.1 Owner Profile
29
+
30
+ ```bash
31
+ if [ ! -f ~/.claude/up/owner-profile.md ]; then
32
+ echo "Owner profile nao existe. Rodando /up:onboard primeiro..."
33
+ # Delegar pro workflow onboarding.md
34
+ fi
35
+ ```
36
+
37
+ ### 0.2 Crash Recovery
38
+
39
+ ```bash
40
+ ls .plano/LOCK.md 2>/dev/null
41
+ ```
42
+
43
+ Se LOCK.md existe e `stage: planning`: retomar de onde parou.
44
+
45
+ ## Estagio 1: INTAKE (CEO conduz)
46
+
47
+ **Referencia:** `@~/.claude/up/workflows/ceo-intake.md`
48
+
49
+ Spawnar CEO:
50
+
51
+ ```python
52
+ Agent(
53
+ subagent_type="up-project-ceo",
54
+ prompt="""
55
+ Conduzir intake para novo projeto UP via /up:plan.
56
+
57
+ Briefing: {ARGUMENTS}
58
+ Modo: detectar (greenfield | brownfield)
59
+
60
+ Executar workflow ceo-intake.md ate completar:
61
+ - Briefing coletado
62
+ - Design system (passar pendente se nao tem)
63
+ - Credenciais (passar pendente se nao tem)
64
+ - Referencias
65
+ - Restricoes
66
+
67
+ Gerar BRIEFING.md, OWNER.md, PENDING.md, DESIGN-TOKENS.md.
68
+ """
69
+ )
70
+ ```
71
+
72
+ ## Estagio 2: ARQUITETURA
73
+
74
+ ### 2.0 Gate: Inicializar .plano/
75
+
76
+ ```bash
77
+ mkdir -p .plano .plano/captures .plano/fases .plano/issues-carryover .plano/governance
78
+ git init 2>/dev/null
79
+ ```
80
+
81
+ ### 2.1 Detectar Modo
82
+
83
+ ```bash
84
+ # Brownfield se ha codigo existente
85
+ if ls package.json src/ app/ pages/ components/ 2>/dev/null; then
86
+ MODE=brownfield
87
+ else
88
+ MODE=greenfield
89
+ fi
90
+ ```
91
+
92
+ ### 2.2 Pesquisa OU Mapeamento (paralelo)
93
+
94
+ **Greenfield:** spawnar 4 pesquisadores em paralelo (ver builder.md secao similar).
95
+
96
+ **Brownfield:** spawnar 4 mapeadores em paralelo (ver builder.md secao similar).
97
+
98
+ ### 2.3 Pipeline de Arquitetura
99
+
100
+ Spawnar em sequencia:
101
+
102
+ ```python
103
+ # Product Analyst
104
+ Agent(subagent_type="up-product-analyst", prompt="...")
105
+
106
+ # Product-supervisor revisa
107
+ Agent(subagent_type="up-product-supervisor", prompt="...")
108
+
109
+ # System Designer
110
+ Agent(subagent_type="up-system-designer", prompt="...")
111
+
112
+ # Architecture-supervisor revisa
113
+ Agent(subagent_type="up-architecture-supervisor", prompt="...")
114
+
115
+ # Arquiteto
116
+ Agent(subagent_type="up-arquiteto", prompt="...")
117
+
118
+ # Architecture-supervisor revisa
119
+ Agent(subagent_type="up-architecture-supervisor", prompt="...")
120
+
121
+ # Requirements validator
122
+ Agent(subagent_type="up-requirements-validator", prompt="...")
123
+
124
+ # Chief-architect aprova arquitetura global
125
+ Agent(subagent_type="up-chief-architect", prompt="...")
126
+ ```
127
+
128
+ ### 2.4 Gate Pos-Arquitetura
129
+
130
+ ```bash
131
+ [ -f .plano/PROJECT.md ] || { echo "FALTANDO: PROJECT.md"; exit 1; }
132
+ [ -f .plano/ROADMAP.md ] || { echo "FALTANDO: ROADMAP.md"; exit 1; }
133
+ [ -f .plano/REQUIREMENTS.md ] || { echo "FALTANDO: REQUIREMENTS.md"; exit 1; }
134
+ [ -f .plano/SYSTEM-DESIGN.md ] || { echo "FALTANDO: SYSTEM-DESIGN.md"; exit 1; }
135
+ ```
136
+
137
+ ## Estagio 2.5: PLANEJAMENTO EXAUSTIVO
138
+
139
+ **Para CADA fase do ROADMAP, planejar AGORA (nao incrementalmente).**
140
+
141
+ ```bash
142
+ PHASES=$(node "$HOME/.claude/up/bin/up-tools.cjs" roadmap list-phases)
143
+ ```
144
+
145
+ Para cada fase:
146
+
147
+ ```python
148
+ # Planejador (Sonnet-ready obrigatorio)
149
+ Agent(
150
+ subagent_type="up-planejador",
151
+ prompt=f"""
152
+ Planejar Fase {phase_number}: {phase_name}.
153
+
154
+ Modo: builder (autonomo, sem AskUserQuestion)
155
+ Sonnet-ready: SEMPRE (default v0.6.0+)
156
+
157
+ <files_to_read>
158
+ TIER 1 — Sempre:
159
+ - .plano/STATE.md
160
+ - .plano/fases/{phase_number}/PHASE.md (slice do ROADMAP — v0.7.0+)
161
+ - .plano/fases/{phase_number}/REQUIREMENTS-SLICE.md (REQs APENAS desta fase — v0.7.0+)
162
+
163
+ TIER 2 — Se brownfield apenas:
164
+ - .plano/codebase/CONVENTIONS.md
165
+ - .plano/codebase/CONCERNS.md
166
+ - .plano/codebase/ARCHITECTURE.md
167
+
168
+ TIER 3 — Sob demanda apenas:
169
+ - .plano/SYSTEM-DESIGN.md (so se decisao arquitetural especifica)
170
+ - .plano/PROJECT.md (so se precisar visao geral)
171
+ - .plano/ROADMAP.md (so se precisar entender fases adjacentes)
172
+ - .plano/REQUIREMENTS.md (so se a slice nao tiver info suficiente)
173
+
174
+ FALLBACK: Se as slices nao existem (projeto pre-v0.7.0), carregar
175
+ .plano/ROADMAP.md e .plano/REQUIREMENTS.md completos.
176
+ </files_to_read>
177
+
178
+ REQs da fase: {phase_req_ids}
179
+
180
+ Gerar 5-8 planos com nivel maximo de detalhe.
181
+ """
182
+ )
183
+
184
+ # Planning-supervisor revisa
185
+ Agent(
186
+ subagent_type="up-planning-supervisor",
187
+ prompt=f"""
188
+ Revisar planos da Fase {phase_number}.
189
+
190
+ Decisao: APPROVE | REQUEST_CHANGES | ESCALATE
191
+ Max 3 ciclos de rework.
192
+ """
193
+ )
194
+
195
+ # Se REQUEST_CHANGES: re-spawn planejador com feedback
196
+ # Se ESCALATE: chief-engineer entra
197
+ # Se APPROVE: prosseguir pra proxima fase
198
+ ```
199
+
200
+ Apos todas fases planejadas:
201
+
202
+ ```python
203
+ # Chief-engineer aprova consistencia cross-fase
204
+ Agent(
205
+ subagent_type="up-chief-engineer",
206
+ prompt="""
207
+ Revisar TODOS os planos gerados.
208
+ Validar coerencia cross-fase, dependencies, waves.
209
+ Decisao: APPROVE | REQUEST_CHANGES
210
+ """
211
+ )
212
+ ```
213
+
214
+ ## Estagio P: PLANNING AUDIT
215
+
216
+ ```python
217
+ Agent(
218
+ subagent_type="up-planning-auditor",
219
+ prompt="""
220
+ Auditar planejamento completo.
221
+
222
+ <files_to_read>
223
+ - .plano/CHECKLIST.md
224
+ - .plano/BRIEFING.md
225
+ - .plano/PROJECT.md
226
+ - .plano/ROADMAP.md
227
+ - .plano/REQUIREMENTS.md
228
+ - .plano/SYSTEM-DESIGN.md
229
+ - .plano/PENDING.md
230
+ - .plano/fases/*/*.md
231
+ - .plano/governance/approvals.log
232
+ - $HOME/.claude/up/templates/audit-plan.md
233
+ </files_to_read>
234
+
235
+ Calcular Planning Confidence Score (0-100).
236
+ Validar artefatos, planos, cobertura REQs, Sonnet-readiness, aprovacoes.
237
+
238
+ Gerar .plano/AUDIT-PLAN.md.
239
+
240
+ Decisao: READY_FOR_BUILD | READY_WITH_WARNINGS | NEEDS_REWORK | BLOCKED
241
+ """
242
+ )
243
+ ```
244
+
245
+ ### Processar Decisao
246
+
247
+ **Se READY_FOR_BUILD:** prosseguir pro Estagio PR.
248
+
249
+ **Se READY_WITH_WARNINGS:** CEO confirma com dono se quer prosseguir mesmo assim.
250
+
251
+ **Se NEEDS_REWORK:** executar rework plan, re-rodar auditor (max 3 ciclos).
252
+
253
+ **Se BLOCKED:** escalar pro CEO, que alerta dono.
254
+
255
+ ## Estagio PR: PLAN READY
256
+
257
+ ### PR.1 Gerar PLAN-READY.md
258
+
259
+ Usar template `$HOME/.claude/up/templates/plan-ready.md`.
260
+
261
+ Preencher com:
262
+ - planned_at: timestamp atual
263
+ - planned_by.runtime: detectar (claude-code | opencode | gemini-cli)
264
+ - planned_by.ceo_name: do owner-profile
265
+ - intended_execution.runtime: do flag --execution-runtime ou "same"
266
+ - project_name: do PROJECT.md
267
+ - mode: greenfield | brownfield
268
+ - total_phases, total_plans, total_requirements
269
+ - planning_confidence: do AUDIT-PLAN.md
270
+ - Lista completa de planos
271
+
272
+ ```bash
273
+ # Detectar runtime atual
274
+ if [ -d ~/.claude ]; then RUNTIME="claude-code"
275
+ elif [ -d ~/.config/opencode ]; then RUNTIME="opencode"
276
+ elif [ -d ~/.gemini ]; then RUNTIME="gemini-cli"
277
+ fi
278
+ ```
279
+
280
+ ### PR.2 Commit Final
281
+
282
+ ```bash
283
+ git add .plano/
284
+ node "$HOME/.claude/up/bin/up-tools.cjs" commit "plan: project ready for execution" --files .plano/PLAN-READY.md .plano/AUDIT-PLAN.md
285
+ ```
286
+
287
+ ### PR.3 CEO Apresenta
288
+
289
+ Spawnar CEO:
290
+
291
+ ```python
292
+ Agent(
293
+ subagent_type="up-project-ceo",
294
+ prompt="""
295
+ Apresentar resumo do planejamento ao dono.
296
+
297
+ <files_to_read>
298
+ - ~/.claude/up/owner-profile.md
299
+ - .plano/PLAN-READY.md
300
+ - .plano/AUDIT-PLAN.md
301
+ - .plano/PENDING.md
302
+ </files_to_read>
303
+
304
+ Apresentar:
305
+ - Briefing entendido
306
+ - Stack escolhida
307
+ - N fases planejadas
308
+ - M planos gerados
309
+ - Planning confidence score
310
+ - Pendencias (agrupadas)
311
+
312
+ Informar:
313
+ "Planejamento completo. Para executar, use /up:build neste runtime
314
+ ou em outro (ex: OpenCode mais barato pra rodar)."
315
+ """
316
+ )
317
+ ```
318
+
319
+ ## Sair
320
+
321
+ ```
322
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
323
+ UP > /up:plan COMPLETO
324
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
325
+
326
+ Projeto planejado com sucesso.
327
+
328
+ Confidence: {N}/100
329
+ Fases: {N}
330
+ Planos: {M}
331
+
332
+ Proximo passo:
333
+ /up:build ← executar neste runtime
334
+
335
+ Ou em outro runtime:
336
+ cd <projeto> && /up-build (OpenCode)
337
+ cd <projeto> && /up:build (Gemini CLI)
338
+
339
+ Estado completo em .plano/
340
+
341
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
342
+ ```
343
+
344
+ </process>
345
+
346
+ <flags>
347
+
348
+ ## Flags Suportadas
349
+
350
+ ### --execution-runtime=<runtime>
351
+
352
+ Informa ao planejador qual runtime sera usado pra executar.
353
+
354
+ Valores: `same` | `claude-code` | `opencode` | `gemini-cli` | `any`
355
+
356
+ Default: `same`
357
+
358
+ Efeito:
359
+ - Marca em PLAN-READY.md
360
+ - Se diferente do runtime atual, planejador adapta documentacao
361
+ - Build vai validar se PLAN-READY.md.intended_execution e compativel
362
+
363
+ ```bash
364
+ /up:plan "CRM" --execution-runtime=opencode
365
+ ```
366
+
367
+ ### --no-audit
368
+
369
+ Pula o Planning Audit (estagio P). Util pra desenvolvimento rapido.
370
+ NAO RECOMENDADO em producao.
371
+
372
+ </flags>
373
+
374
+ <success_criteria>
375
+ - [ ] Owner profile validado
376
+ - [ ] CEO conduziu intake
377
+ - [ ] BRIEFING, OWNER, PENDING, DESIGN-TOKENS gerados
378
+ - [ ] Pipeline de arquitetura completo (product-analyst → system-designer → arquiteto)
379
+ - [ ] Architecture supervisor aprovou cada artefato
380
+ - [ ] Chief-architect aprovou arquitetura global
381
+ - [ ] Chief-product aprovou fit
382
+ - [ ] TODAS fases do ROADMAP foram planejadas
383
+ - [ ] Planning-supervisor aprovou cada plano
384
+ - [ ] Chief-engineer aprovou cross-fase
385
+ - [ ] Planning-auditor rodou e gerou AUDIT-PLAN.md
386
+ - [ ] Planning Confidence Score calculado
387
+ - [ ] PLAN-READY.md gerado
388
+ - [ ] CEO apresentou resumo ao dono
389
+ - [ ] Commit final feito
390
+ </success_criteria>
@@ -94,17 +94,35 @@ Task(
94
94
  **Pesquisa inline:** {RESEARCH_INLINE}
95
95
 
96
96
  <files_to_read>
97
- - {state_path} (Estado do Projeto)
98
- - {roadmap_path} (Roteiro)
99
- - {requirements_path} (Requisitos)
100
- - {context_path} (DECISOES DO USUARIO de /up:discutir-fase)
101
- - {research_path} (Pesquisa Tecnica - se existir)
102
- - {verification_path} (Lacunas de Verificacao - se --gaps)
103
- - .plano/codebase/CONVENTIONS.md (Convencoes do codebase - se existir, BROWNFIELD)
104
- - .plano/codebase/CONCERNS.md (Divida tecnica - se existir, BROWNFIELD)
105
- - .plano/codebase/ARCHITECTURE.md (Arquitetura existente - se existir, BROWNFIELD)
97
+ TIER 1 Sempre obrigatorio:
98
+ - {state_path} (Estado do Projeto, ~2k tokens)
99
+ - .plano/fases/{phase_number}/PHASE.md (slice do ROADMAP da fase atual, ~500 tokens — v0.7.0+)
100
+ - .plano/fases/{phase_number}/REQUIREMENTS-SLICE.md (REQs APENAS desta fase, ~1.5k tokens — v0.7.0+)
101
+
102
+ TIER 2 Condicional:
103
+ - {context_path} (DECISOES DO USUARIO de /up:discutir-fase, se existir)
104
+ - {research_path} (Pesquisa Tecnica, se existir)
105
+ - {verification_path} (Lacunas de Verificacao, se --gaps)
106
+ - .plano/codebase/CONVENTIONS.md (BROWNFIELD apenas)
107
+ - .plano/codebase/CONCERNS.md (BROWNFIELD apenas)
108
+ - .plano/codebase/ARCHITECTURE.md (BROWNFIELD apenas)
109
+
110
+ TIER 3 — Sob demanda (NAO carregue por padrao):
111
+ - {roadmap_path} (ROADMAP completo) — so se precisar entender fases adjacentes
112
+ - {requirements_path} (REQUIREMENTS completo) — so se a slice nao tiver info suficiente
113
+ - {project_path} (PROJECT.md) — so se precisar visao geral
114
+
115
+ **FALLBACK:** Se as slices `.plano/fases/{phase_number}/` nao existem (projeto pre-v0.7.0), carregue {roadmap_path} e {requirements_path} completos como antes.
106
116
  </files_to_read>
107
117
 
118
+ **Engineering Principles (compressed) — sempre injetado:**
119
+ 1. Implementacao real, nao simulacao (zero placeholder)
120
+ 2. Correto, nao rapido (sem `any`, validacao com lib)
121
+ 3. Conectado ponta a ponta (componente → API → DB funcionando)
122
+ 4. Consistencia sobre criatividade (grep antes de inventar)
123
+ 5. Dados reais desde o primeiro momento (sem hardcode)
124
+ 6. Cada decisao tem custo futuro (escolher solucao escalavel)
125
+
108
126
  **IDs de requisitos da fase (cada ID DEVE aparecer no campo `requirements` de um plano):** {phase_req_ids}
109
127
 
110
128
  **Instrucoes do projeto:** Ler ./CLAUDE.md se existir