up-cc 0.14.0 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +9 -9
- package/{agents → up/agents}/up-architecture-supervisor.md +1 -1
- package/{agents → up/agents}/up-audit-supervisor.md +1 -1
- package/{agents → up/agents}/up-backend-specialist.md +13 -3
- package/{agents → up/agents}/up-chief-architect.md +1 -1
- package/{agents → up/agents}/up-chief-engineer.md +1 -1
- package/{agents → up/agents}/up-chief-operations.md +2 -2
- package/{agents → up/agents}/up-chief-product.md +1 -1
- package/{agents → up/agents}/up-chief-quality.md +1 -1
- package/{agents → up/agents}/up-code-reviewer.md +2 -2
- package/{agents → up/agents}/up-database-specialist.md +13 -3
- package/{agents → up/agents}/up-execution-supervisor.md +4 -4
- package/{agents → up/agents}/up-executor.md +107 -9
- package/{agents → up/agents}/up-frontend-specialist.md +13 -3
- package/{agents → up/agents}/up-operations-supervisor.md +1 -1
- package/{agents → up/agents}/up-planejador.md +17 -1
- package/{agents → up/agents}/up-planning-supervisor.md +3 -3
- package/{agents → up/agents}/up-product-supervisor.md +1 -1
- package/{agents → up/agents}/up-project-ceo.md +2 -2
- package/{agents → up/agents}/up-quality-supervisor.md +1 -1
- package/{agents → up/agents}/up-system-designer.md +2 -2
- package/{agents → up/agents}/up-verification-supervisor.md +1 -1
- package/{agents → up/agents}/up-visual-critic.md +1 -1
- package/{bin → up/bin}/lib/core.cjs +132 -0
- package/{bin → up/bin}/up-tools.cjs +1341 -3
- package/up/commands/adicionar-fase.md +47 -0
- package/up/commands/configurar.md +219 -0
- package/{commands → up/commands}/depurar.md +1 -1
- package/{commands → up/commands}/planejar-fase.md +4 -2
- package/up/templates/config.json +8 -0
- package/up/workflows/build.md +650 -0
- package/{workflows → up/workflows}/builder.md +766 -35
- package/{workflows → up/workflows}/executar-plano.md +69 -0
- package/{workflows → up/workflows}/governance.md +3 -3
- package/{workflows → up/workflows}/plan.md +214 -29
- package/{workflows → up/workflows}/planejar-fase.md +63 -5
- package/commands/adicionar-fase.md +0 -33
- package/commands/configurar.md +0 -106
- package/templates/config.json +0 -6
- package/workflows/build.md +0 -431
- /package/{agents → up/agents}/up-analista-codigo.md +0 -0
- /package/{agents → up/agents}/up-api-tester.md +0 -0
- /package/{agents → up/agents}/up-arquiteto.md +0 -0
- /package/{agents → up/agents}/up-auditor-modernidade.md +0 -0
- /package/{agents → up/agents}/up-auditor-performance.md +0 -0
- /package/{agents → up/agents}/up-auditor-ux.md +0 -0
- /package/{agents → up/agents}/up-blind-validator.md +0 -0
- /package/{agents → up/agents}/up-clone-crawler.md +0 -0
- /package/{agents → up/agents}/up-clone-design-extractor.md +0 -0
- /package/{agents → up/agents}/up-clone-feature-mapper.md +0 -0
- /package/{agents → up/agents}/up-clone-prd-writer.md +0 -0
- /package/{agents → up/agents}/up-clone-verifier.md +0 -0
- /package/{agents → up/agents}/up-consolidador-ideias.md +0 -0
- /package/{agents → up/agents}/up-delivery-auditor.md +0 -0
- /package/{agents → up/agents}/up-depurador.md +0 -0
- /package/{agents → up/agents}/up-devops-agent.md +0 -0
- /package/{agents → up/agents}/up-exhaustive-tester.md +0 -0
- /package/{agents → up/agents}/up-mapeador-codigo.md +0 -0
- /package/{agents → up/agents}/up-pesquisador-mercado.md +0 -0
- /package/{agents → up/agents}/up-pesquisador-projeto.md +0 -0
- /package/{agents → up/agents}/up-planning-auditor.md +0 -0
- /package/{agents → up/agents}/up-product-analyst.md +0 -0
- /package/{agents → up/agents}/up-qa-agent.md +0 -0
- /package/{agents → up/agents}/up-requirements-validator.md +0 -0
- /package/{agents → up/agents}/up-roteirista.md +0 -0
- /package/{agents → up/agents}/up-security-reviewer.md +0 -0
- /package/{agents → up/agents}/up-sintetizador-melhorias.md +0 -0
- /package/{agents → up/agents}/up-sintetizador.md +0 -0
- /package/{agents → up/agents}/up-technical-writer.md +0 -0
- /package/{agents → up/agents}/up-verificador.md +0 -0
- /package/{bin → up/bin}/install.js +0 -0
- /package/{bin → up/bin}/up-instrument.cjs +0 -0
- /package/{commands → up/commands}/adicionar-testes.md +0 -0
- /package/{commands → up/commands}/ajuda.md +0 -0
- /package/{commands → up/commands}/atualizar.md +0 -0
- /package/{commands → up/commands}/build.md +0 -0
- /package/{commands → up/commands}/clone-builder.md +0 -0
- /package/{commands → up/commands}/custos.md +0 -0
- /package/{commands → up/commands}/dashboard.md +0 -0
- /package/{commands → up/commands}/discutir-fase.md +0 -0
- /package/{commands → up/commands}/executar-fase.md +0 -0
- /package/{commands → up/commands}/ideias.md +0 -0
- /package/{commands → up/commands}/iniciar.md +0 -0
- /package/{commands → up/commands}/mapear-codigo.md +0 -0
- /package/{commands → up/commands}/melhorias.md +0 -0
- /package/{commands → up/commands}/mobile-first.md +0 -0
- /package/{commands → up/commands}/modo-builder.md +0 -0
- /package/{commands → up/commands}/novo-projeto.md +0 -0
- /package/{commands → up/commands}/onboard.md +0 -0
- /package/{commands → up/commands}/pausar.md +0 -0
- /package/{commands → up/commands}/plan.md +0 -0
- /package/{commands → up/commands}/progresso.md +0 -0
- /package/{commands → up/commands}/rapido.md +0 -0
- /package/{commands → up/commands}/remover-fase.md +0 -0
- /package/{commands → up/commands}/resetar.md +0 -0
- /package/{commands → up/commands}/retomar.md +0 -0
- /package/{commands → up/commands}/saude.md +0 -0
- /package/{commands → up/commands}/testar.md +0 -0
- /package/{commands → up/commands}/ux-tester.md +0 -0
- /package/{commands → up/commands}/verificar-trabalho.md +0 -0
- /package/{hooks → up/hooks}/up-context-monitor.js +0 -0
- /package/{hooks → up/hooks}/up-statusline.js +0 -0
- /package/{references → up/references}/audit-modernidade.md +0 -0
- /package/{references → up/references}/audit-performance.md +0 -0
- /package/{references → up/references}/audit-ux.md +0 -0
- /package/{references → up/references}/blueprints/audit.md +0 -0
- /package/{references → up/references}/blueprints/booking.md +0 -0
- /package/{references → up/references}/blueprints/community.md +0 -0
- /package/{references → up/references}/blueprints/crm.md +0 -0
- /package/{references → up/references}/blueprints/dashboard.md +0 -0
- /package/{references → up/references}/blueprints/data-management.md +0 -0
- /package/{references → up/references}/blueprints/ecommerce.md +0 -0
- /package/{references → up/references}/blueprints/marketplace.md +0 -0
- /package/{references → up/references}/blueprints/notifications.md +0 -0
- /package/{references → up/references}/blueprints/saas-users.md +0 -0
- /package/{references → up/references}/blueprints/settings.md +0 -0
- /package/{references → up/references}/checkpoints.md +0 -0
- /package/{references → up/references}/engineering-principles-compressed.md +0 -0
- /package/{references → up/references}/engineering-principles.md +0 -0
- /package/{references → up/references}/git-integration.md +0 -0
- /package/{references → up/references}/governance-rules-compressed.md +0 -0
- /package/{references → up/references}/governance-rules.md +0 -0
- /package/{references → up/references}/production-requirements-compressed.md +0 -0
- /package/{references → up/references}/production-requirements.md +0 -0
- /package/{references → up/references}/questioning.md +0 -0
- /package/{references → up/references}/rework-limits-compressed.md +0 -0
- /package/{references → up/references}/rework-limits.md +0 -0
- /package/{references → up/references}/severity-levels.md +0 -0
- /package/{references → up/references}/state-persistence.md +0 -0
- /package/{references → up/references}/ui-brand.md +0 -0
- /package/{templates → up/templates}/audit-plan.md +0 -0
- /package/{templates → up/templates}/audit-report.md +0 -0
- /package/{templates → up/templates}/builder-defaults.md +0 -0
- /package/{templates → up/templates}/checklist.md +0 -0
- /package/{templates → up/templates}/continue-here.md +0 -0
- /package/{templates → up/templates}/delivery.md +0 -0
- /package/{templates → up/templates}/design-tokens.md +0 -0
- /package/{templates → up/templates}/owner-profile.md +0 -0
- /package/{templates → up/templates}/owner.md +0 -0
- /package/{templates → up/templates}/pending.md +0 -0
- /package/{templates → up/templates}/plan-ready.md +0 -0
- /package/{templates → up/templates}/project.md +0 -0
- /package/{templates → up/templates}/report.md +0 -0
- /package/{templates → up/templates}/requirements.md +0 -0
- /package/{templates → up/templates}/roadmap.md +0 -0
- /package/{templates → up/templates}/state.md +0 -0
- /package/{templates → up/templates}/suggestion.md +0 -0
- /package/{templates → up/templates}/summary.md +0 -0
- /package/{workflows → up/workflows}/adicionar-fase.md +0 -0
- /package/{workflows → up/workflows}/builder-e2e.md +0 -0
- /package/{workflows → up/workflows}/ceo-intake.md +0 -0
- /package/{workflows → up/workflows}/ceo-updates.md +0 -0
- /package/{workflows → up/workflows}/clone-builder.md +0 -0
- /package/{workflows → up/workflows}/dcrv.md +0 -0
- /package/{workflows → up/workflows}/discutir-fase.md +0 -0
- /package/{workflows → up/workflows}/executar-fase.md +0 -0
- /package/{workflows → up/workflows}/ideias.md +0 -0
- /package/{workflows → up/workflows}/iniciar.md +0 -0
- /package/{workflows → up/workflows}/mapear-codigo.md +0 -0
- /package/{workflows → up/workflows}/melhorias.md +0 -0
- /package/{workflows → up/workflows}/mobile-first.md +0 -0
- /package/{workflows → up/workflows}/novo-projeto.md +0 -0
- /package/{workflows → up/workflows}/onboarding.md +0 -0
- /package/{workflows → up/workflows}/pausar.md +0 -0
- /package/{workflows → up/workflows}/progresso.md +0 -0
- /package/{workflows → up/workflows}/rapido.md +0 -0
- /package/{workflows → up/workflows}/remover-fase.md +0 -0
- /package/{workflows → up/workflows}/resetar.md +0 -0
- /package/{workflows → up/workflows}/retomar.md +0 -0
- /package/{workflows → up/workflows}/ux-tester.md +0 -0
- /package/{workflows → up/workflows}/verificar-trabalho.md +0 -0
|
@@ -165,9 +165,78 @@ Apresentar identificacao do plano, esperar confirmacao.
|
|
|
165
165
|
```bash
|
|
166
166
|
PLAN_START_TIME=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
|
|
167
167
|
PLAN_START_EPOCH=$(date +%s)
|
|
168
|
+
|
|
169
|
+
# Wave 3 (v0.12+) — timeout supervisor + stuck detector
|
|
170
|
+
mkdir -p .plano/runtime
|
|
171
|
+
ACTIVITY_LOG=".plano/runtime/agent-activity-${PHASE:-current}.log"
|
|
172
|
+
echo "${PLAN_START_TIME}|start|${PHASE:-current}" >> "$ACTIVITY_LOG"
|
|
173
|
+
LAST_ACTIVITY_EPOCH=$PLAN_START_EPOCH
|
|
174
|
+
|
|
175
|
+
TIMEOUT_SOFT=${UP_TIMEOUT_SOFT:-1200} # 20m
|
|
176
|
+
TIMEOUT_HARD=${UP_TIMEOUT_HARD:-1800} # 30m
|
|
177
|
+
TIMEOUT_IDLE=${UP_TIMEOUT_IDLE:-600} # 10m
|
|
168
178
|
```
|
|
169
179
|
</step>
|
|
170
180
|
|
|
181
|
+
<step name="timeout_check_protocol">
|
|
182
|
+
**Wave 3 — Timeout & Stuck Detection (executar entre tarefas)**
|
|
183
|
+
|
|
184
|
+
Apos COMPLETAR cada tarefa do plano:
|
|
185
|
+
|
|
186
|
+
1. Append activity log:
|
|
187
|
+
```bash
|
|
188
|
+
echo "$(date -u +%Y-%m-%dT%H:%M:%SZ)|task_complete|task_${TASK_NUMBER}" >> "$ACTIVITY_LOG"
|
|
189
|
+
LAST_ACTIVITY_EPOCH=$(date +%s)
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
2. Run timeout + stuck check:
|
|
193
|
+
```bash
|
|
194
|
+
TIMEOUT=$(node "$HOME/.claude/up/bin/up-tools.cjs" timeout \
|
|
195
|
+
--start $PLAN_START_EPOCH \
|
|
196
|
+
--soft $TIMEOUT_SOFT \
|
|
197
|
+
--hard $TIMEOUT_HARD \
|
|
198
|
+
--idle-since $LAST_ACTIVITY_EPOCH \
|
|
199
|
+
--idle $TIMEOUT_IDLE)
|
|
200
|
+
STUCK=$(node "$HOME/.claude/up/bin/up-tools.cjs" stuck-check \
|
|
201
|
+
--log "$ACTIVITY_LOG" --window 10 --threshold 3)
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
3. Decisao por status:
|
|
205
|
+
|
|
206
|
+
| Status | Acao |
|
|
207
|
+
|--------|------|
|
|
208
|
+
| `ok` | Continuar normal |
|
|
209
|
+
| `soft_warning` | Acelerar — pular tarefas opcionais, simplificar |
|
|
210
|
+
| `idle_warning` | Tentar destravar; se proxima tarefa nao avanca, abortar |
|
|
211
|
+
| `hard_abort` | PARAR e retornar ABORTED_TIMEOUT |
|
|
212
|
+
| stuck=true | PARAR e retornar ABORTED_STUCK |
|
|
213
|
+
|
|
214
|
+
4. Se hard_abort ou stuck:
|
|
215
|
+
```bash
|
|
216
|
+
mkdir -p .plano/governance
|
|
217
|
+
echo "$(date -u +%Y-%m-%dT%H:%M:%SZ)|phase-${PHASE}|executor|ABORTED|${TIMEOUT_STATUS:-stuck}|elapsed=$(($(date +%s) - PLAN_START_EPOCH))s" >> .plano/governance/aborts.log
|
|
218
|
+
|
|
219
|
+
# Salvar PARTIAL-SUMMARY.md com tarefas completas
|
|
220
|
+
cat > "${PHASE_DIR}/PARTIAL-SUMMARY.md" <<'EOF'
|
|
221
|
+
---
|
|
222
|
+
phase: ${PHASE}
|
|
223
|
+
status: aborted
|
|
224
|
+
reason: ${TIMEOUT_STATUS:-stuck}
|
|
225
|
+
last_completed_task: ${TASK_NUMBER}
|
|
226
|
+
EOF
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
Retornar mensagem estruturada:
|
|
230
|
+
```
|
|
231
|
+
ABORTED: Fase {phase} por {timeout|stuck}
|
|
232
|
+
Tarefas: {N}/{TOTAL} completas
|
|
233
|
+
Decorrido: {elapsed}s
|
|
234
|
+
Estado parcial: .plano/fases/{phase}/PARTIAL-SUMMARY.md
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
NAO continuar trabalho apos abort. Orquestrador decide proximo passo (retry com escopo reduzido, escalar pro chief, etc).
|
|
238
|
+
</step>
|
|
239
|
+
|
|
171
240
|
<step name="load_prompt">
|
|
172
241
|
```bash
|
|
173
242
|
cat .plano/fases/XX-nome/{fase}-{plano}-PLAN.md
|
|
@@ -61,9 +61,9 @@ Agent(
|
|
|
61
61
|
</files_to_read>
|
|
62
62
|
|
|
63
63
|
Versoes COMPLETAS (so se decisao precisa de detalhe):
|
|
64
|
-
- Read $HOME/.claude/up/references/governance-rules.md
|
|
65
|
-
- Read $HOME/.claude/up/references/rework-limits.md
|
|
66
|
-
- Read $HOME/.claude/up/references/engineering-principles.md
|
|
64
|
+
- Read $HOME/.claude/up/references/governance-rules-compressed.md
|
|
65
|
+
- Read $HOME/.claude/up/references/rework-limits-compressed.md
|
|
66
|
+
- Read $HOME/.claude/up/references/engineering-principles-compressed.md
|
|
67
67
|
|
|
68
68
|
Avaliar contra criterios objetivos.
|
|
69
69
|
Retornar: APPROVE | REQUEST_CHANGES | ESCALATE
|
|
@@ -17,8 +17,39 @@ Diferenca do builder:
|
|
|
17
17
|
|
|
18
18
|
Por que? Para permitir que o build rode em outro runtime (ex: planeja em Claude Code, executa em OpenCode).
|
|
19
19
|
|
|
20
|
-
**
|
|
20
|
+
**Model routing configuravel (v0.9.0+):**
|
|
21
|
+
Antes de spawnar qualquer agente, resolver o modelo:
|
|
22
|
+
```bash
|
|
23
|
+
MODEL=$(node "$HOME/.claude/up/bin/up-tools.cjs" config resolve-model {agent-name} --raw)
|
|
24
|
+
```
|
|
25
|
+
Se `default`: nao passar `model=`. Se `opus/sonnet/haiku`: passar `model="{MODEL}"` no spawn.
|
|
26
|
+
Isso permite que o usuario configure via `/up:configurar` quais agentes usam qual modelo.
|
|
27
|
+
Sem configuracao, todos usam o modelo do runtime (comportamento v0.6.0).
|
|
28
|
+
|
|
21
29
|
**Sonnet-ready obrigatorio** — todos planos em nivel maximo de detalhe.
|
|
30
|
+
|
|
31
|
+
**REGRA ANTI-COLAPSO — SEPARACAO RIGIDA DE AGENTES:**
|
|
32
|
+
|
|
33
|
+
O LLM tende a otimizar colapsando passos — dar ao mesmo agente tarefas de analisar + projetar,
|
|
34
|
+
ou pular supervisores por parecer "overhead". Isso e PROIBIDO.
|
|
35
|
+
|
|
36
|
+
**Cada passo abaixo DEVE ser um Agent() SEPARADO.**
|
|
37
|
+
**NUNCA combinar dois passos em um unico spawn.**
|
|
38
|
+
**NUNCA instruir um agente a fazer o trabalho de outro.**
|
|
39
|
+
|
|
40
|
+
Exemplo do que NAO fazer:
|
|
41
|
+
```
|
|
42
|
+
# ERRADO — combina product-analyst + system-designer
|
|
43
|
+
Agent(subagent_type="up-product-analyst", prompt="Analisar produto E projetar sistema...")
|
|
44
|
+
|
|
45
|
+
# ERRADO — pula supervisor
|
|
46
|
+
Agent(subagent_type="up-arquiteto", prompt="Estruturar e validar...")
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**Mecanismo de enforcement: GATES verificaveis.**
|
|
50
|
+
Cada supervisor DEVE escrever no `.plano/governance/approvals.log`.
|
|
51
|
+
Cada GATE verifica que o log tem a entry esperada.
|
|
52
|
+
Se o gate falha, NAO avance — spawne o agente faltante.
|
|
22
53
|
</core_principle>
|
|
23
54
|
|
|
24
55
|
<process>
|
|
@@ -95,34 +126,112 @@ fi
|
|
|
95
126
|
|
|
96
127
|
**Brownfield:** spawnar 4 mapeadores em paralelo (ver builder.md secao similar).
|
|
97
128
|
|
|
98
|
-
### 2.3 Pipeline de Arquitetura
|
|
129
|
+
### 2.3 Pipeline de Arquitetura (com GATES verificaveis)
|
|
130
|
+
|
|
131
|
+
**Inicializar governance:**
|
|
132
|
+
```bash
|
|
133
|
+
mkdir -p .plano/governance
|
|
134
|
+
touch .plano/governance/approvals.log
|
|
135
|
+
echo "# Governance initialized at $(date -u +%Y-%m-%dT%H:%M:%SZ)" >> .plano/governance/approvals.log
|
|
136
|
+
```
|
|
99
137
|
|
|
100
|
-
Spawnar em sequencia:
|
|
138
|
+
Spawnar em sequencia — CADA UM e um Agent() SEPARADO:
|
|
101
139
|
|
|
102
140
|
```python
|
|
103
|
-
# Product Analyst
|
|
141
|
+
# PASSO 1: Product Analyst
|
|
104
142
|
Agent(subagent_type="up-product-analyst", prompt="...")
|
|
143
|
+
```
|
|
105
144
|
|
|
106
|
-
|
|
107
|
-
|
|
145
|
+
```bash
|
|
146
|
+
# GATE: PRODUCT-ANALYSIS.md existe?
|
|
147
|
+
[ -f .plano/PRODUCT-ANALYSIS.md ] && echo "OK" || { echo "FALHOU: re-spawnar product-analyst"; exit 1; }
|
|
148
|
+
```
|
|
108
149
|
|
|
109
|
-
|
|
150
|
+
```python
|
|
151
|
+
# PASSO 2: Product-supervisor revisa
|
|
152
|
+
Agent(subagent_type="up-product-supervisor", prompt="""
|
|
153
|
+
...
|
|
154
|
+
**OUTPUT OBRIGATORIO (fazer ANTES de retornar):**
|
|
155
|
+
```bash
|
|
156
|
+
echo "$(date -u +%Y-%m-%dT%H:%M:%SZ) | architecture | product-supervisor | {DECISAO} | {motivo}" >> .plano/governance/approvals.log
|
|
157
|
+
```
|
|
158
|
+
""")
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
# GATE: product-supervisor logou?
|
|
163
|
+
grep -q "product-supervisor" .plano/governance/approvals.log || { echo "FALHOU: spawnar product-supervisor"; exit 1; }
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
```python
|
|
167
|
+
# PASSO 3: System Designer
|
|
110
168
|
Agent(subagent_type="up-system-designer", prompt="...")
|
|
169
|
+
```
|
|
111
170
|
|
|
112
|
-
|
|
113
|
-
|
|
171
|
+
```bash
|
|
172
|
+
# GATE: SYSTEM-DESIGN.md existe?
|
|
173
|
+
[ -f .plano/SYSTEM-DESIGN.md ] && echo "OK" || { echo "FALHOU: re-spawnar system-designer"; exit 1; }
|
|
174
|
+
```
|
|
114
175
|
|
|
115
|
-
|
|
176
|
+
```python
|
|
177
|
+
# PASSO 4: Architecture-supervisor revisa system design
|
|
178
|
+
Agent(subagent_type="up-architecture-supervisor", prompt="""
|
|
179
|
+
...
|
|
180
|
+
**OUTPUT OBRIGATORIO (fazer ANTES de retornar):**
|
|
181
|
+
```bash
|
|
182
|
+
echo "$(date -u +%Y-%m-%dT%H:%M:%SZ) | architecture | architecture-supervisor | {DECISAO} | system-design" >> .plano/governance/approvals.log
|
|
183
|
+
```
|
|
184
|
+
""")
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
# GATE: architecture-supervisor logou para system-design?
|
|
189
|
+
grep -q "architecture-supervisor.*system-design" .plano/governance/approvals.log || { echo "FALHOU: spawnar architecture-supervisor"; exit 1; }
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
```python
|
|
193
|
+
# PASSO 5: Arquiteto
|
|
116
194
|
Agent(subagent_type="up-arquiteto", prompt="...")
|
|
195
|
+
```
|
|
117
196
|
|
|
118
|
-
|
|
119
|
-
|
|
197
|
+
```bash
|
|
198
|
+
# GATE: PROJECT.md + ROADMAP.md + REQUIREMENTS.md existem?
|
|
199
|
+
[ -f .plano/PROJECT.md ] && [ -f .plano/ROADMAP.md ] && [ -f .plano/REQUIREMENTS.md ] && echo "OK" || { echo "FALHOU: re-spawnar arquiteto"; exit 1; }
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
```python
|
|
203
|
+
# PASSO 6: Architecture-supervisor revisa artefatos do arquiteto
|
|
204
|
+
Agent(subagent_type="up-architecture-supervisor", prompt="""
|
|
205
|
+
...
|
|
206
|
+
**OUTPUT OBRIGATORIO (fazer ANTES de retornar):**
|
|
207
|
+
```bash
|
|
208
|
+
echo "$(date -u +%Y-%m-%dT%H:%M:%SZ) | architecture | architecture-supervisor | {DECISAO} | architect-artifacts" >> .plano/governance/approvals.log
|
|
209
|
+
```
|
|
210
|
+
""")
|
|
211
|
+
```
|
|
120
212
|
|
|
121
|
-
|
|
213
|
+
```bash
|
|
214
|
+
# GATE: architecture-supervisor logou para architect-artifacts?
|
|
215
|
+
grep -q "architecture-supervisor.*architect-artifacts" .plano/governance/approvals.log || { echo "FALHOU: spawnar architecture-supervisor"; exit 1; }
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
```python
|
|
219
|
+
# PASSO 7: Requirements validator
|
|
122
220
|
Agent(subagent_type="up-requirements-validator", prompt="...")
|
|
123
221
|
|
|
124
|
-
# Chief-architect aprova arquitetura global
|
|
125
|
-
Agent(subagent_type="up-chief-architect", prompt="
|
|
222
|
+
# PASSO 8: Chief-architect aprova arquitetura global
|
|
223
|
+
Agent(subagent_type="up-chief-architect", prompt="""
|
|
224
|
+
...
|
|
225
|
+
**OUTPUT OBRIGATORIO (fazer ANTES de retornar):**
|
|
226
|
+
```bash
|
|
227
|
+
echo "$(date -u +%Y-%m-%dT%H:%M:%SZ) | architecture | chief-architect | {DECISAO} | global-architecture" >> .plano/governance/approvals.log
|
|
228
|
+
```
|
|
229
|
+
""")
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
```bash
|
|
233
|
+
# GATE FINAL DE ARQUITETURA: chief-architect logou?
|
|
234
|
+
grep -q "chief-architect.*global-architecture" .plano/governance/approvals.log || { echo "FALHOU: spawnar chief-architect"; exit 1; }
|
|
126
235
|
```
|
|
127
236
|
|
|
128
237
|
### 2.4 Gate Pos-Arquitetura
|
|
@@ -142,10 +251,10 @@ Agent(subagent_type="up-chief-architect", prompt="...")
|
|
|
142
251
|
PHASES=$(node "$HOME/.claude/up/bin/up-tools.cjs" roadmap list-phases)
|
|
143
252
|
```
|
|
144
253
|
|
|
145
|
-
Para cada fase
|
|
254
|
+
Para cada fase — **planejador e supervisor sao SEMPRE agentes SEPARADOS:**
|
|
146
255
|
|
|
147
256
|
```python
|
|
148
|
-
# Planejador (Sonnet-ready obrigatorio)
|
|
257
|
+
# PASSO A: Planejador (Sonnet-ready obrigatorio)
|
|
149
258
|
Agent(
|
|
150
259
|
subagent_type="up-planejador",
|
|
151
260
|
prompt=f"""
|
|
@@ -180,8 +289,17 @@ Agent(
|
|
|
180
289
|
Gerar 5-8 planos com nivel maximo de detalhe.
|
|
181
290
|
"""
|
|
182
291
|
)
|
|
292
|
+
```
|
|
183
293
|
|
|
184
|
-
|
|
294
|
+
```bash
|
|
295
|
+
# GATE: Planos da fase existem?
|
|
296
|
+
PLAN_COUNT=$(ls .plano/fases/${PHASE_DIR}/*-PLAN.md 2>/dev/null | wc -l)
|
|
297
|
+
[ "$PLAN_COUNT" -eq 0 ] && echo "GATE FALHOU: Nenhum PLAN.md para fase ${phase_number}. Re-spawnar planejador." && exit 1
|
|
298
|
+
echo "OK: ${PLAN_COUNT} planos gerados para fase ${phase_number}"
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
```python
|
|
302
|
+
# PASSO B: Planning-supervisor revisa (SEPARADO do planejador)
|
|
185
303
|
Agent(
|
|
186
304
|
subagent_type="up-planning-supervisor",
|
|
187
305
|
prompt=f"""
|
|
@@ -189,30 +307,88 @@ Agent(
|
|
|
189
307
|
|
|
190
308
|
Decisao: APPROVE | REQUEST_CHANGES | ESCALATE
|
|
191
309
|
Max 3 ciclos de rework.
|
|
310
|
+
|
|
311
|
+
**OUTPUT OBRIGATORIO (fazer ANTES de retornar):**
|
|
312
|
+
```bash
|
|
313
|
+
echo "$(date -u +%Y-%m-%dT%H:%M:%SZ) | phase-{phase_number} | planning-supervisor | {{DECISAO}} | {{motivo}}" >> .plano/governance/approvals.log
|
|
314
|
+
```
|
|
192
315
|
"""
|
|
193
316
|
)
|
|
317
|
+
```
|
|
194
318
|
|
|
195
|
-
|
|
196
|
-
#
|
|
197
|
-
|
|
319
|
+
```bash
|
|
320
|
+
# GATE: planning-supervisor logou para esta fase?
|
|
321
|
+
grep -q "phase-${PHASE_NUMBER}.*planning-supervisor" .plano/governance/approvals.log || { echo "GATE FALHOU: planning-supervisor NAO rodou para fase ${PHASE_NUMBER}. Spawnar agora."; exit 1; }
|
|
198
322
|
```
|
|
199
323
|
|
|
200
|
-
|
|
324
|
+
Se REQUEST_CHANGES: re-spawn planejador com feedback (max 3 ciclos).
|
|
325
|
+
Se ESCALATE: chief-engineer entra.
|
|
326
|
+
Se APPROVE: prosseguir pra proxima fase.
|
|
327
|
+
|
|
328
|
+
**Repetir para cada fase do ROADMAP.**
|
|
329
|
+
|
|
330
|
+
Apos TODAS fases planejadas:
|
|
201
331
|
|
|
202
332
|
```python
|
|
203
|
-
# Chief-engineer aprova consistencia cross-fase
|
|
333
|
+
# PASSO FINAL: Chief-engineer aprova consistencia cross-fase
|
|
204
334
|
Agent(
|
|
205
335
|
subagent_type="up-chief-engineer",
|
|
206
336
|
prompt="""
|
|
207
337
|
Revisar TODOS os planos gerados.
|
|
208
338
|
Validar coerencia cross-fase, dependencies, waves.
|
|
209
339
|
Decisao: APPROVE | REQUEST_CHANGES
|
|
340
|
+
|
|
341
|
+
**OUTPUT OBRIGATORIO (fazer ANTES de retornar):**
|
|
342
|
+
```bash
|
|
343
|
+
echo "$(date -u +%Y-%m-%dT%H:%M:%SZ) | planning | chief-engineer | {DECISAO} | cross-phase-review" >> .plano/governance/approvals.log
|
|
344
|
+
```
|
|
210
345
|
"""
|
|
211
346
|
)
|
|
212
347
|
```
|
|
213
348
|
|
|
349
|
+
```bash
|
|
350
|
+
# GATE FINAL DE PLANEJAMENTO: chief-engineer logou cross-phase review?
|
|
351
|
+
grep -q "chief-engineer.*cross-phase-review" .plano/governance/approvals.log || { echo "GATE FALHOU: chief-engineer NAO aprovou cross-fase. Spawnar agora."; exit 1; }
|
|
352
|
+
```
|
|
353
|
+
|
|
214
354
|
## Estagio P: PLANNING AUDIT
|
|
215
355
|
|
|
356
|
+
### GATE PRE-AUDIT: Verificar que TODA governanca do planejamento rodou
|
|
357
|
+
|
|
358
|
+
```bash
|
|
359
|
+
echo "=== GATE PRE-AUDIT: Verificando governanca completa ==="
|
|
360
|
+
|
|
361
|
+
# Contar entries esperadas
|
|
362
|
+
PHASES=$(node "$HOME/.claude/up/bin/up-tools.cjs" roadmap list-phases 2>/dev/null | grep -c "phase" || echo "0")
|
|
363
|
+
PLAN_SUP_COUNT=$(grep -c "planning-supervisor" .plano/governance/approvals.log 2>/dev/null)
|
|
364
|
+
CHIEF_ENG=$(grep -c "chief-engineer.*cross-phase" .plano/governance/approvals.log 2>/dev/null)
|
|
365
|
+
CHIEF_ARCH=$(grep -c "chief-architect" .plano/governance/approvals.log 2>/dev/null)
|
|
366
|
+
PROD_SUP=$(grep -c "product-supervisor" .plano/governance/approvals.log 2>/dev/null)
|
|
367
|
+
ARCH_SUP=$(grep -c "architecture-supervisor" .plano/governance/approvals.log 2>/dev/null)
|
|
368
|
+
|
|
369
|
+
echo "Planning-supervisor entries: ${PLAN_SUP_COUNT} (esperado: >= ${PHASES})"
|
|
370
|
+
echo "Chief-engineer cross-phase: ${CHIEF_ENG} (esperado: >= 1)"
|
|
371
|
+
echo "Chief-architect: ${CHIEF_ARCH} (esperado: >= 1)"
|
|
372
|
+
echo "Product-supervisor: ${PROD_SUP} (esperado: >= 1)"
|
|
373
|
+
echo "Architecture-supervisor: ${ARCH_SUP} (esperado: >= 1)"
|
|
374
|
+
|
|
375
|
+
FAIL=false
|
|
376
|
+
[ "$CHIEF_ENG" -eq 0 ] && echo "FALHA: chief-engineer NAO aprovou cross-fase" && FAIL=true
|
|
377
|
+
[ "$CHIEF_ARCH" -eq 0 ] && echo "FALHA: chief-architect NAO aprovou arquitetura" && FAIL=true
|
|
378
|
+
[ "$PROD_SUP" -eq 0 ] && echo "FALHA: product-supervisor NAO revisou" && FAIL=true
|
|
379
|
+
[ "$ARCH_SUP" -eq 0 ] && echo "FALHA: architecture-supervisor NAO revisou" && FAIL=true
|
|
380
|
+
|
|
381
|
+
if [ "$FAIL" = true ]; then
|
|
382
|
+
echo ""
|
|
383
|
+
echo "GATE PRE-AUDIT FALHOU: Voltar e spawnar os agentes faltantes."
|
|
384
|
+
exit 1
|
|
385
|
+
else
|
|
386
|
+
echo "GATE PRE-AUDIT OK: Toda governanca logada."
|
|
387
|
+
fi
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
### Rodar Auditor
|
|
391
|
+
|
|
216
392
|
```python
|
|
217
393
|
Agent(
|
|
218
394
|
subagent_type="up-planning-auditor",
|
|
@@ -228,13 +404,20 @@ Agent(
|
|
|
228
404
|
- .plano/SYSTEM-DESIGN.md
|
|
229
405
|
- .plano/PENDING.md
|
|
230
406
|
- .plano/fases/*/*.md
|
|
231
|
-
- .plano/governance/approvals.log
|
|
407
|
+
- .plano/governance/approvals.log (VERIFICAR que supervisores e chiefs logaram)
|
|
232
408
|
- $HOME/.claude/up/templates/audit-plan.md
|
|
233
409
|
</files_to_read>
|
|
234
410
|
|
|
235
411
|
Calcular Planning Confidence Score (0-100).
|
|
236
412
|
Validar artefatos, planos, cobertura REQs, Sonnet-readiness, aprovacoes.
|
|
237
413
|
|
|
414
|
+
**VERIFICAR no approvals.log:**
|
|
415
|
+
- product-supervisor logou? Se nao: penalizar score
|
|
416
|
+
- architecture-supervisor logou 2x (system-design + architect-artifacts)? Se nao: penalizar
|
|
417
|
+
- planning-supervisor logou para CADA fase? Se nao: penalizar
|
|
418
|
+
- chief-architect logou? Se nao: penalizar
|
|
419
|
+
- chief-engineer logou cross-phase? Se nao: penalizar
|
|
420
|
+
|
|
238
421
|
Gerar .plano/AUDIT-PLAN.md.
|
|
239
422
|
|
|
240
423
|
Decisao: READY_FOR_BUILD | READY_WITH_WARNINGS | NEEDS_REWORK | BLOCKED
|
|
@@ -376,15 +559,17 @@ NAO RECOMENDADO em producao.
|
|
|
376
559
|
- [ ] CEO conduziu intake
|
|
377
560
|
- [ ] BRIEFING, OWNER, PENDING, DESIGN-TOKENS gerados
|
|
378
561
|
- [ ] Pipeline de arquitetura completo (product-analyst → system-designer → arquiteto)
|
|
379
|
-
- [ ] Architecture supervisor aprovou cada artefato
|
|
380
|
-
- [ ] Chief-architect aprovou arquitetura global
|
|
562
|
+
- [ ] Architecture supervisor aprovou cada artefato (LOGOU em approvals.log)
|
|
563
|
+
- [ ] Chief-architect aprovou arquitetura global (LOGOU em approvals.log)
|
|
381
564
|
- [ ] Chief-product aprovou fit
|
|
382
|
-
- [ ] TODAS fases do ROADMAP foram planejadas
|
|
383
|
-
- [ ] Planning-supervisor aprovou cada plano
|
|
384
|
-
- [ ] Chief-engineer aprovou cross-fase
|
|
565
|
+
- [ ] TODAS fases do ROADMAP foram planejadas (PLAN.md por fase)
|
|
566
|
+
- [ ] Planning-supervisor aprovou cada plano (LOGOU em approvals.log POR FASE)
|
|
567
|
+
- [ ] Chief-engineer aprovou cross-fase (LOGOU em approvals.log)
|
|
568
|
+
- [ ] GATE PRE-AUDIT passou (todos 5+ governance entries verificados)
|
|
385
569
|
- [ ] Planning-auditor rodou e gerou AUDIT-PLAN.md
|
|
386
570
|
- [ ] Planning Confidence Score calculado
|
|
387
571
|
- [ ] PLAN-READY.md gerado
|
|
388
572
|
- [ ] CEO apresentou resumo ao dono
|
|
389
573
|
- [ ] Commit final feito
|
|
574
|
+
- [ ] .plano/governance/approvals.log tem entries de TODOS supervisores e chiefs
|
|
390
575
|
</success_criteria>
|
|
@@ -21,23 +21,81 @@ Parse JSON: `commit_docs`, `phase_found`, `phase_dir`, `phase_number`, `phase_na
|
|
|
21
21
|
|
|
22
22
|
## 2. Parsear Argumentos
|
|
23
23
|
|
|
24
|
-
Extrair do $ARGUMENTS: numero
|
|
24
|
+
Extrair do $ARGUMENTS: fase (numero OU descricao), flags (`--pesquisar`, `--sem-pesquisa`, `--gaps`, `--auto`).
|
|
25
25
|
|
|
26
|
-
**
|
|
26
|
+
**Deteccao numero vs descricao:**
|
|
27
|
+
- Se o argumento (sem flags) e um numero inteiro (ex: "3", "12"): tratar como numero de fase
|
|
28
|
+
- Se o argumento contem letras (ex: "sistema de auth", "Adicionar pagamentos"): tratar como descricao de fase nova
|
|
29
|
+
- Se vazio: detectar proxima fase nao planejada do roteiro
|
|
27
30
|
|
|
28
|
-
**Se
|
|
31
|
+
**Se sem numero/descricao:** Detectar proxima fase nao planejada do roteiro.
|
|
32
|
+
|
|
33
|
+
**Se `phase_found` = false E argumento e numero:** Validar fase existe no ROADMAP.md. Se valida, criar diretorio:
|
|
29
34
|
```bash
|
|
30
35
|
mkdir -p ".plano/fases/${padded_phase}-${phase_slug}"
|
|
31
36
|
```
|
|
32
37
|
|
|
38
|
+
**Se argumento e descricao:** Prosseguir para passo 3 (que tratara a criacao se necessario).
|
|
39
|
+
|
|
33
40
|
## 3. Validar Fase
|
|
34
41
|
|
|
35
42
|
```bash
|
|
36
43
|
PHASE_INFO=$(node "$HOME/.claude/up/bin/up-tools.cjs" roadmap get-phase "${PHASE}")
|
|
37
44
|
```
|
|
38
45
|
|
|
39
|
-
**Se `found` =
|
|
40
|
-
|
|
46
|
+
**Se `found` = true:** Extrair `phase_number`, `phase_name`, `goal`. Prosseguir para passo 4.
|
|
47
|
+
|
|
48
|
+
**Se `found` = false:** A fase nao existe no ROADMAP. Duas situacoes:
|
|
49
|
+
|
|
50
|
+
**3a. O argumento e um NUMERO (ex: `/up:planejar-fase 5`):**
|
|
51
|
+
|
|
52
|
+
Erro --- fase numerica que nao existe no roadmap indica engano do usuario.
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
ERRO: Fase {N} nao existe no roadmap.
|
|
56
|
+
Fases disponiveis: [listar]
|
|
57
|
+
Para adicionar fase nova: /up:planejar-fase "descricao da fase"
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
**3b. O argumento e uma DESCRICAO (ex: `/up:planejar-fase "sistema de notificacoes"`):**
|
|
61
|
+
|
|
62
|
+
Perguntar se quer adicionar ao roadmap:
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
AskUserQuestion(
|
|
66
|
+
header: "Fase nao existe no roadmap",
|
|
67
|
+
question: "A fase \"{descricao}\" nao existe no roadmap. Quer adicionar e ja planejar?",
|
|
68
|
+
options: [
|
|
69
|
+
{ label: "Sim, adicionar e planejar", description: "Cria a fase no ROADMAP.md e ja gera os planos" },
|
|
70
|
+
{ label: "Nao", description: "Cancelar" }
|
|
71
|
+
]
|
|
72
|
+
)
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Se "Sim": criar a fase via up-tools e continuar:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
RESULT=$(node "$HOME/.claude/up/bin/up-tools.cjs" phase add "${descricao}")
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Extrair `phase_number`, `phase_name`, `slug`, `directory` do resultado.
|
|
82
|
+
Atualizar STATE.md (mesma logica do antigo adicionar-fase):
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
Em "## Contexto Acumulado" → "### Evolucao do Roadmap" adicionar:
|
|
86
|
+
- Fase {N} adicionada: {descricao}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Re-rodar init para obter paths corretos:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
INIT=$(node "$HOME/.claude/up/bin/up-tools.cjs" init planejar-fase "${phase_number}")
|
|
93
|
+
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Prosseguir para passo 4 com a fase recem-criada.
|
|
97
|
+
|
|
98
|
+
Se "Nao": sair.
|
|
41
99
|
|
|
42
100
|
## 4. Carregar CONTEXT.md
|
|
43
101
|
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: up:adicionar-fase
|
|
3
|
-
description: Adicionar fase ao final do roadmap
|
|
4
|
-
argument-hint: "<descricao>"
|
|
5
|
-
allowed-tools:
|
|
6
|
-
- Read
|
|
7
|
-
- Write
|
|
8
|
-
- Edit
|
|
9
|
-
- Bash
|
|
10
|
-
- Glob
|
|
11
|
-
---
|
|
12
|
-
<objective>
|
|
13
|
-
Add a new phase to the end of the project roadmap.
|
|
14
|
-
|
|
15
|
-
**Flow:** Parse description -> Call `up-tools.cjs phase add` -> Update STATE.md -> Present result
|
|
16
|
-
</objective>
|
|
17
|
-
|
|
18
|
-
<execution_context>
|
|
19
|
-
@~/.claude/up/workflows/adicionar-fase.md
|
|
20
|
-
</execution_context>
|
|
21
|
-
|
|
22
|
-
<context>
|
|
23
|
-
Phase description: $ARGUMENTS
|
|
24
|
-
|
|
25
|
-
Adds a new phase to ROADMAP.md at the end of the existing phase list.
|
|
26
|
-
</context>
|
|
27
|
-
|
|
28
|
-
<process>
|
|
29
|
-
1. Parse the phase description from arguments.
|
|
30
|
-
2. Call `up-tools.cjs phase add` with the description.
|
|
31
|
-
3. Update STATE.md to reflect the new phase.
|
|
32
|
-
4. Present the result showing the new roadmap state.
|
|
33
|
-
</process>
|
package/commands/configurar.md
DELETED
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: up:configurar
|
|
3
|
-
description: Configurar opcoes do workflow UP para o projeto atual
|
|
4
|
-
allowed-tools:
|
|
5
|
-
- Read
|
|
6
|
-
- Write
|
|
7
|
-
- Bash
|
|
8
|
-
- AskUserQuestion
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
<objective>
|
|
12
|
-
Configuracao interativa das opcoes do workflow UP. Atualiza .plano/config.json com preferencias do usuario.
|
|
13
|
-
</objective>
|
|
14
|
-
|
|
15
|
-
<process>
|
|
16
|
-
|
|
17
|
-
## 1. Carregar Configuracao Atual
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
cat .plano/config.json 2>/dev/null || echo "{}"
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
Valores default se ausentes:
|
|
24
|
-
- `modo`: "solo"
|
|
25
|
-
- `paralelizacao`: true
|
|
26
|
-
- `commit_docs`: true
|
|
27
|
-
- `auto_advance`: false
|
|
28
|
-
|
|
29
|
-
## 2. Apresentar Opcoes
|
|
30
|
-
|
|
31
|
-
Usar AskUserQuestion com valores atuais pre-selecionados:
|
|
32
|
-
|
|
33
|
-
```
|
|
34
|
-
AskUserQuestion([
|
|
35
|
-
{
|
|
36
|
-
question: "Modo de trabalho?",
|
|
37
|
-
header: "Modo",
|
|
38
|
-
multiSelect: false,
|
|
39
|
-
options: [
|
|
40
|
-
{ label: "Solo (Recomendado)", description: "Desenvolvedor unico, commits diretos" },
|
|
41
|
-
{ label: "Time", description: "Multiplos desenvolvedores, branches por fase" }
|
|
42
|
-
]
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
question: "Paralelizar agentes quando possivel?",
|
|
46
|
-
header: "Paralelizacao",
|
|
47
|
-
multiSelect: false,
|
|
48
|
-
options: [
|
|
49
|
-
{ label: "Sim (Recomendado)", description: "Agentes rodam em paralelo quando independentes" },
|
|
50
|
-
{ label: "Nao", description: "Agentes rodam sequencialmente" }
|
|
51
|
-
]
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
question: "Commitar documentos de planejamento automaticamente?",
|
|
55
|
-
header: "Commit Docs",
|
|
56
|
-
multiSelect: false,
|
|
57
|
-
options: [
|
|
58
|
-
{ label: "Sim (Recomendado)", description: "STATE.md, ROADMAP.md, PLANs commitados automaticamente" },
|
|
59
|
-
{ label: "Nao", description: "Apenas codigo e commitado, docs ficam unstaged" }
|
|
60
|
-
]
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
question: "Avancar pipeline automaticamente? (discutir -> planejar -> executar)",
|
|
64
|
-
header: "Auto-Advance",
|
|
65
|
-
multiSelect: false,
|
|
66
|
-
options: [
|
|
67
|
-
{ label: "Nao (Recomendado)", description: "Manual /clear entre estagios" },
|
|
68
|
-
{ label: "Sim", description: "Encadeia estagios via subagentes" }
|
|
69
|
-
]
|
|
70
|
-
}
|
|
71
|
-
])
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
## 3. Atualizar config.json
|
|
75
|
-
|
|
76
|
-
Mapear respostas para valores:
|
|
77
|
-
|
|
78
|
-
```json
|
|
79
|
-
{
|
|
80
|
-
"modo": "solo" | "time",
|
|
81
|
-
"paralelizacao": true | false,
|
|
82
|
-
"commit_docs": true | false,
|
|
83
|
-
"auto_advance": true | false
|
|
84
|
-
}
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
Escrever em `.plano/config.json`.
|
|
88
|
-
|
|
89
|
-
## 4. Confirmar
|
|
90
|
-
|
|
91
|
-
```
|
|
92
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
93
|
-
UP > CONFIGURACAO ATUALIZADA
|
|
94
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
95
|
-
|
|
96
|
-
| Opcao | Valor |
|
|
97
|
-
|----------------|-------------|
|
|
98
|
-
| Modo | {solo/time} |
|
|
99
|
-
| Paralelizacao | {Sim/Nao} |
|
|
100
|
-
| Commit Docs | {Sim/Nao} |
|
|
101
|
-
| Auto-Advance | {Sim/Nao} |
|
|
102
|
-
|
|
103
|
-
Estas opcoes se aplicam a futuros /up:planejar-fase e /up:executar-fase.
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
</process>
|