up-cc 0.16.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +87 -577
- package/package.json +5 -3
- package/up/CHANGELOG.md +110 -0
- package/up/agents/up-arquiteto.md +95 -39
- package/up/agents/up-auditor.md +218 -0
- package/up/agents/up-executor.md +94 -31
- package/up/agents/up-mapeador-codigo.md +63 -10
- package/up/agents/up-pesquisador.md +278 -0
- package/up/agents/up-revisor.md +249 -0
- package/up/agents/up-sintetizador.md +156 -179
- package/up/agents/up-tester.md +280 -0
- package/up/agents/up-verificador.md +95 -11
- package/up/bin/install.js +190 -21
- package/up/bin/lib/core.cjs +17 -43
- package/up/bin/lib/github.cjs +495 -0
- package/up/bin/lib/multica.cjs +424 -0
- package/up/bin/up-tools.cjs +167 -46
- package/up/commands/auditar.md +66 -0
- package/up/commands/build.md +54 -43
- package/up/commands/depurar.md +1 -1
- package/up/commands/plan.md +52 -38
- package/up/commands/rapido.md +15 -9
- package/up/commands/testar.md +81 -122
- package/up/commands/up.md +106 -0
- package/up/hooks/up-session-start.js +107 -0
- package/up/references/engineering-principles.md +1 -1
- package/up/references/governance-rules.md +5 -5
- package/up/references/production-requirements.md +1 -1
- package/up/references/severity-levels.md +2 -2
- package/up/references/tdd-evidence-types.md +81 -0
- package/up/skills/up-brainstorm/SKILL.md +39 -0
- package/up/skills/up-tdd/SKILL.md +39 -0
- package/up/skills/up-verificar-antes-de-concluir/SKILL.md +49 -0
- package/up/skills/usando-up/SKILL.md +26 -0
- package/up/templates/audit-plan.md +3 -3
- package/up/templates/audit-report.md +2 -2
- package/up/templates/design-tokens.md +2 -2
- package/up/workflows/auditar.md +255 -0
- package/up/workflows/build.md +600 -386
- package/up/workflows/dcrv.md +183 -99
- package/up/workflows/governance.md +112 -220
- package/up/workflows/plan.md +169 -399
- package/up/workflows/rapido.md +7 -1
- package/up/workflows/up.md +447 -0
- package/up/agents/up-analista-codigo.md +0 -446
- package/up/agents/up-api-tester.md +0 -405
- package/up/agents/up-architecture-supervisor.md +0 -126
- package/up/agents/up-audit-supervisor.md +0 -83
- package/up/agents/up-auditor-modernidade.md +0 -378
- package/up/agents/up-auditor-performance.md +0 -426
- package/up/agents/up-auditor-ux.md +0 -396
- package/up/agents/up-backend-specialist.md +0 -175
- package/up/agents/up-blind-validator.md +0 -259
- package/up/agents/up-chief-architect.md +0 -184
- package/up/agents/up-chief-engineer.md +0 -202
- package/up/agents/up-chief-operations.md +0 -123
- package/up/agents/up-chief-product.md +0 -103
- package/up/agents/up-chief-quality.md +0 -211
- package/up/agents/up-clone-crawler.md +0 -234
- package/up/agents/up-clone-design-extractor.md +0 -227
- package/up/agents/up-clone-feature-mapper.md +0 -225
- package/up/agents/up-clone-prd-writer.md +0 -169
- package/up/agents/up-clone-verifier.md +0 -227
- package/up/agents/up-code-reviewer.md +0 -229
- package/up/agents/up-consolidador-ideias.md +0 -493
- package/up/agents/up-database-specialist.md +0 -169
- package/up/agents/up-delivery-auditor.md +0 -247
- package/up/agents/up-devops-agent.md +0 -203
- package/up/agents/up-execution-supervisor.md +0 -315
- package/up/agents/up-exhaustive-tester.md +0 -348
- package/up/agents/up-frontend-specialist.md +0 -152
- package/up/agents/up-operations-supervisor.md +0 -94
- package/up/agents/up-pesquisador-mercado.md +0 -350
- package/up/agents/up-pesquisador-projeto.md +0 -358
- package/up/agents/up-planning-auditor.md +0 -284
- package/up/agents/up-planning-supervisor.md +0 -260
- package/up/agents/up-product-analyst.md +0 -192
- package/up/agents/up-product-supervisor.md +0 -83
- package/up/agents/up-project-ceo.md +0 -352
- package/up/agents/up-qa-agent.md +0 -171
- package/up/agents/up-quality-supervisor.md +0 -178
- package/up/agents/up-requirements-validator.md +0 -230
- package/up/agents/up-security-reviewer.md +0 -137
- package/up/agents/up-sintetizador-melhorias.md +0 -407
- package/up/agents/up-system-designer.md +0 -332
- package/up/agents/up-technical-writer.md +0 -188
- package/up/agents/up-verification-supervisor.md +0 -111
- package/up/agents/up-visual-critic.md +0 -358
- package/up/commands/adicionar-fase.md +0 -47
- package/up/commands/adicionar-testes.md +0 -145
- package/up/commands/ajuda.md +0 -176
- package/up/commands/atualizar.md +0 -103
- package/up/commands/clone-builder.md +0 -67
- package/up/commands/configurar.md +0 -219
- package/up/commands/custos.md +0 -67
- package/up/commands/dashboard.md +0 -48
- package/up/commands/discutir-fase.md +0 -35
- package/up/commands/executar-fase.md +0 -40
- package/up/commands/ideias.md +0 -49
- package/up/commands/iniciar.md +0 -31
- package/up/commands/mapear-codigo.md +0 -63
- package/up/commands/melhorias.md +0 -45
- package/up/commands/mobile-first.md +0 -71
- package/up/commands/modo-builder.md +0 -186
- package/up/commands/novo-projeto.md +0 -40
- package/up/commands/onboard.md +0 -69
- package/up/commands/pausar.md +0 -33
- package/up/commands/planejar-fase.md +0 -45
- package/up/commands/progresso.md +0 -33
- package/up/commands/remover-fase.md +0 -34
- package/up/commands/resetar.md +0 -27
- package/up/commands/retomar.md +0 -35
- package/up/commands/saude.md +0 -103
- package/up/commands/ux-tester.md +0 -63
- package/up/commands/verificar-trabalho.md +0 -35
- package/up/workflows/adicionar-fase.md +0 -112
- package/up/workflows/builder-e2e.md +0 -501
- package/up/workflows/builder.md +0 -3419
- package/up/workflows/ceo-intake.md +0 -305
- package/up/workflows/ceo-updates.md +0 -183
- package/up/workflows/clone-builder.md +0 -320
- package/up/workflows/discutir-fase.md +0 -336
- package/up/workflows/executar-fase.md +0 -358
- package/up/workflows/executar-plano.md +0 -659
- package/up/workflows/ideias.md +0 -381
- package/up/workflows/iniciar.md +0 -235
- package/up/workflows/melhorias.md +0 -409
- package/up/workflows/mobile-first.md +0 -692
- package/up/workflows/novo-projeto.md +0 -778
- package/up/workflows/planejar-fase.md +0 -293
- package/up/workflows/progresso.md +0 -226
- package/up/workflows/retomar.md +0 -231
- package/up/workflows/ux-tester.md +0 -526
- package/up/workflows/verificar-trabalho.md +0 -308
package/up/workflows/rapido.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
<purpose>
|
|
2
2
|
Executar tarefas pequenas e ad-hoc com garantias UP (commits atomicos, rastreamento STATE.md). Modo rapido spawna up-planejador (modo rapido) + up-executor(s), rastreia tarefas em `.plano/rapido/`, e atualiza tabela "Tarefas Rapidas Completadas" do STATE.md.
|
|
3
|
+
|
|
4
|
+
**ESCAPE HATCH PURO (sem cerimonia GitHub).** Diferente de `/up:build` (GitHub-nativo por DEFAULT:
|
|
5
|
+
worktree -> branch `up/fase-NN` -> issue -> PR -> menu), o modo rapido NUNCA cria worktree, NUNCA cria
|
|
6
|
+
issue do GitHub, NUNCA abre PR e NAO toca em `.plano/git-map.json`. Todo o trabalho e committado
|
|
7
|
+
atomicamente na branch ATUAL (mesmo semantica do `--solo` do build). E o caminho quente para
|
|
8
|
+
"so faz e commita". Quem quer worktree/issue/PR usa `/up:build`.
|
|
3
9
|
</purpose>
|
|
4
10
|
|
|
5
11
|
<process>
|
|
@@ -233,5 +239,5 @@ Pronto para proxima tarefa: /up:rapido
|
|
|
233
239
|
- [ ] `${next_num}-PLAN.md` criado pelo planejador
|
|
234
240
|
- [ ] `${next_num}-SUMMARY.md` criado pelo executor
|
|
235
241
|
- [ ] STATE.md atualizado com linha da tarefa rapida
|
|
236
|
-
- [ ] Artefatos committed
|
|
242
|
+
- [ ] Artefatos committed na branch ATUAL (sem worktree, sem issue, sem PR, sem git-map.json)
|
|
237
243
|
</success_criteria>
|
|
@@ -0,0 +1,447 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Workflow `/up` — Roteador da porta unica do UP.
|
|
3
|
+
|
|
4
|
+
Sem argumento: le `.plano/STATE.md` e continua de onde parou.
|
|
5
|
+
Com descricao: classifica a tarefa (classify-task), escala o brainstorm/intake inline e roteia
|
|
6
|
+
para greenfield, brownfield ou clone.
|
|
7
|
+
Subverbos: `estado` (status/saude/pausar/resetar/custos/remover-fase) e `config` (configurar/onboard/atualizar).
|
|
8
|
+
|
|
9
|
+
Este workflow ABSORVE: novo-projeto.md, clone-builder.md, iniciar.md, progresso.md, retomar.md,
|
|
10
|
+
pausar.md e o intake de ceo-intake.md (que vira prompt inline do orquestrador, SEM CEO).
|
|
11
|
+
|
|
12
|
+
A maquinaria GitHub-nativa (worktree/issue/PR, Fase 4) e Multica (`--board`, Fase 5) vive no `/up:build`
|
|
13
|
+
e `/up:plan`. Este roteador so a referencia (subverbo `estado board` abre a URL do board). A execucao
|
|
14
|
+
real acontece no build/plan; aqui o foco e roteamento + intake.
|
|
15
|
+
</purpose>
|
|
16
|
+
|
|
17
|
+
<core_principle>
|
|
18
|
+
O orquestrador (voce) conduz tudo. NAO existe mais CEO: intake, confirmacao do dono e apresentacao
|
|
19
|
+
viram prompts inline (AskUserQuestion). A personalidade/perfil do dono vem de `~/.claude/up/owner-profile.md`.
|
|
20
|
+
|
|
21
|
+
Profundidade do brainstorm = funcao do `classify-task`, NAO do humor do dia:
|
|
22
|
+
- trivial (score 0-2): 0 perguntas, anuncia em 1 linha, executa.
|
|
23
|
+
- pequena (score 3-5): 1 pergunta (a decisao-chave) via AskUserQuestion + design em 3 frases.
|
|
24
|
+
- media/grande (score 6+): brainstorm full, perguntas iterativas (1 por vez), aprovacao por secao.
|
|
25
|
+
|
|
26
|
+
O ouro e intocavel: STATE.md/ROADMAP.md, commits atomicos (sempre via `up-tools.cjs commit`),
|
|
27
|
+
classify-task, approvals.log. Este workflow nao reimplementa nada disso, so chama.
|
|
28
|
+
</core_principle>
|
|
29
|
+
|
|
30
|
+
<process>
|
|
31
|
+
|
|
32
|
+
## Passo 0: Carregar contexto
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
INIT=$(node "$HOME/.claude/up/bin/up-tools.cjs" init up)
|
|
36
|
+
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Parse JSON: `project_exists`, `planning_exists`, `state_exists`, `roadmap_exists`,
|
|
40
|
+
`has_existing_code`, `has_codebase_map`, `has_git`, `project_path`.
|
|
41
|
+
|
|
42
|
+
**Determinar o branch de roteamento pelo $ARGUMENTS:**
|
|
43
|
+
|
|
44
|
+
| $ARGUMENTS | Branch |
|
|
45
|
+
|------------|--------|
|
|
46
|
+
| vazio | **CONTINUAR** (Passo 1) |
|
|
47
|
+
| comeca com `estado` | **ESTADO** (Passo 5) |
|
|
48
|
+
| comeca com `config` | **CONFIG** (Passo 6) |
|
|
49
|
+
| URL http(s) (clonar app) ou `--clone <url>` | **CLONE** (Passo 4) |
|
|
50
|
+
| qualquer outra descricao | **NOVO/BROWNFIELD** (Passo 2-3) |
|
|
51
|
+
|
|
52
|
+
## Passo 1: CONTINUAR (sem argumento)
|
|
53
|
+
|
|
54
|
+
Restaura contexto e roteia pra proxima acao. Absorve progresso.md + retomar.md.
|
|
55
|
+
|
|
56
|
+
**Se `planning_exists` = false:** Nao ha projeto registrado.
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
Sem estrutura de planejamento (.plano/) encontrada.
|
|
60
|
+
|
|
61
|
+
Para comecar:
|
|
62
|
+
/up "descreva o que quer construir" -> novo projeto / feature
|
|
63
|
+
/up <url> -> clonar um app existente
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Sair.
|
|
67
|
+
|
|
68
|
+
**Se `state_exists` = false mas `project_exists` ou `roadmap_exists` = true:**
|
|
69
|
+
Reconstruir STATE.md a partir dos artefatos (PROJECT.md -> "O que e Isso"; ROADMAP.md -> fases;
|
|
70
|
+
*-SUMMARY.md -> decisoes/preocupacoes; .continue-aqui -> continuidade), entao prosseguir.
|
|
71
|
+
|
|
72
|
+
**Carregar estado estruturado:**
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
ROADMAP=$(node "$HOME/.claude/up/bin/up-tools.cjs" roadmap analyze)
|
|
76
|
+
STATE=$(node "$HOME/.claude/up/bin/up-tools.cjs" state-snapshot)
|
|
77
|
+
PROGRESS_BAR=$(node "$HOME/.claude/up/bin/up-tools.cjs" progress bar --raw)
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**Detectar trabalho incompleto:**
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
# Checkpoint mid-plano (handoff de pausa)
|
|
84
|
+
ls .plano/fases/*/.continue-aqui.md 2>/dev/null
|
|
85
|
+
|
|
86
|
+
# Planos sem SUMMARY (execucao incompleta)
|
|
87
|
+
for plan in .plano/fases/*/*-PLAN.md; do
|
|
88
|
+
summary="${plan/PLAN/SUMMARY}"
|
|
89
|
+
[ ! -f "$summary" ] && echo "Incompleto: $plan"
|
|
90
|
+
done 2>/dev/null
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**Apresentar status (output direto do orquestrador, sem CEO):**
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
==============================================================
|
|
97
|
+
STATUS DO PROJETO
|
|
98
|
+
==============================================================
|
|
99
|
+
Construindo: [one-liner do PROJECT.md "O que e Isso"]
|
|
100
|
+
Progresso: {PROGRESS_BAR}
|
|
101
|
+
|
|
102
|
+
Fase: [X] de [Y] - [nome da fase]
|
|
103
|
+
Plano: [A] de [B] - [status]
|
|
104
|
+
|
|
105
|
+
Ultima atividade: [data] - [o que aconteceu]
|
|
106
|
+
==============================================================
|
|
107
|
+
|
|
108
|
+
## Trabalho Recente
|
|
109
|
+
- [Fase X, Plano Y]: [1 linha de summary-extract --fields one_liner]
|
|
110
|
+
|
|
111
|
+
## Decisoes-Chave
|
|
112
|
+
- [de STATE.decisions[]]
|
|
113
|
+
|
|
114
|
+
## Bloqueios
|
|
115
|
+
- [de STATE.blockers[]]
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
**Rotear (contagens verificadas, mesma logica de progresso.md):**
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
PLANS=$(ls -1 .plano/fases/[dir-fase-atual]/*-PLAN.md 2>/dev/null | wc -l)
|
|
122
|
+
SUMS=$(ls -1 .plano/fases/[dir-fase-atual]/*-SUMMARY.md 2>/dev/null | wc -l)
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
| Condicao | Significado | Proximo |
|
|
126
|
+
|----------|-------------|---------|
|
|
127
|
+
| `.continue-aqui.md` existe | Checkpoint mid-plano | Retomar do checkpoint (ler arquivo) ou recomecar o plano |
|
|
128
|
+
| SUMS < PLANS | Planos pendentes | `/up:build` (executa o que falta) |
|
|
129
|
+
| PLANS = 0 | Fase nao planejada | `/up:plan` (planeja a fase) |
|
|
130
|
+
| SUMS = PLANS > 0, ha mais fases | Fase completa | `/up:plan` (proxima fase) ou `/up:testar` (UAT antes de seguir) |
|
|
131
|
+
| SUMS = PLANS > 0, ultima fase | Projeto completo | `/up:testar` (aceitacao) ou `/up:auditar` |
|
|
132
|
+
|
|
133
|
+
**Apresentar a proxima acao recomendada:**
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## Proximo
|
|
139
|
+
|
|
140
|
+
**{fase}-{plano}: [Nome]** -- [objetivo]
|
|
141
|
+
|
|
142
|
+
`/up:build` ← executar o que falta
|
|
143
|
+
ou
|
|
144
|
+
`/up:plan {N}` ← planejar a proxima fase
|
|
145
|
+
|
|
146
|
+
<sub>`/clear` primeiro -> janela de contexto limpa</sub>
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
**Quick resume:** se o usuario disse literalmente "continuar" / "vai", pular a apresentacao de opcoes,
|
|
152
|
+
carregar estado em silencio e seguir direto pra acao primaria, anunciando "Continuando de [estado]...".
|
|
153
|
+
|
|
154
|
+
## Passo 2: NOVO / BROWNFIELD (descricao recebida)
|
|
155
|
+
|
|
156
|
+
Absorve novo-projeto.md + iniciar.md + o intake de ceo-intake.md (inline, sem CEO).
|
|
157
|
+
|
|
158
|
+
### 2.1 Gate de owner-profile
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
if [ ! -f ~/.claude/up/owner-profile.md ]; then
|
|
162
|
+
echo "Primeiro uso. Rodando onboarding..."
|
|
163
|
+
# Delegar pro workflow @~/.claude/up/workflows/onboarding.md, depois voltar aqui.
|
|
164
|
+
fi
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Ler owner-profile pra pegar nome preferido, tom e stack preferida (defaults do intake).
|
|
168
|
+
|
|
169
|
+
### 2.2 Detectar modo
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
[ "$has_git" = "false" ] && git init
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
| Sinal | Modo |
|
|
176
|
+
|-------|------|
|
|
177
|
+
| `has_existing_code` = true OU `has_codebase_map` = true OU `.plano/ROADMAP.md` existe | **BROWNFIELD** |
|
|
178
|
+
| caso contrario | **GREENFIELD** |
|
|
179
|
+
|
|
180
|
+
**Brownfield sem mapa:** sugerir (nao obrigar) `/up:mapear-codigo` para analise profunda. Se o
|
|
181
|
+
usuario topar, delegar a `@~/.claude/up/workflows/mapear-codigo.md` e retomar. Senao, mini-scan inline:
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
ls package.json go.mod Cargo.toml requirements.txt pyproject.toml pom.xml build.gradle composer.json Gemfile 2>/dev/null
|
|
185
|
+
ls -d src/ app/ lib/ cmd/ internal/ pages/ components/ 2>/dev/null | head -15
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### 2.3 Classificar a tarefa e escalar o brainstorm/intake
|
|
189
|
+
|
|
190
|
+
Escrever um plano-rascunho minimo do briefing em arquivo temporario pra classificar
|
|
191
|
+
(classify-task le frontmatter + padroes de conteudo):
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
mkdir -p .plano
|
|
195
|
+
cat > /tmp/up-brief-classify.md <<EOF
|
|
196
|
+
---
|
|
197
|
+
type: feature
|
|
198
|
+
brownfield: ${BROWNFIELD:-false}
|
|
199
|
+
---
|
|
200
|
+
${ARGUMENTS}
|
|
201
|
+
EOF
|
|
202
|
+
CLASSIFY=$(node "$HOME/.claude/up/bin/up-tools.cjs" classify-task /tmp/up-brief-classify.md --raw)
|
|
203
|
+
COMPLEXITY=$(echo "$CLASSIFY" | grep -oE '"complexity"\s*:\s*"[a-z]+"' | grep -oE '(simple|standard|complex)')
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
**Profundidade do intake/brainstorm conforme COMPLEXITY:**
|
|
207
|
+
|
|
208
|
+
- **simple (trivial):** ZERO perguntas. Anunciar em 1 linha o que vai construir e seguir.
|
|
209
|
+
Ex: "Vou criar [X]. Indo." Pular direto pro 2.5 (estruturar) com defaults.
|
|
210
|
+
|
|
211
|
+
- **standard (pequena):** 1 pergunta (a decisao-chave) via AskUserQuestion + descrever a abordagem
|
|
212
|
+
em 3 frases. Para UI, oferecer companion visual (Jonathan e visual).
|
|
213
|
+
|
|
214
|
+
- **complex (media/grande):** brainstorm/intake full. Perguntar inline (freeform pra abrir, depois
|
|
215
|
+
AskUserQuestion seguindo os fios). Cobrir os 5 blocos do intake antigo, AGORA inline e opcionais:
|
|
216
|
+
1. Briefing (o que construir; ja temos $ARGUMENTS, aprofundar so se vago).
|
|
217
|
+
2. Design system (cores/tipografia/componentes ou link; se nao tem, gerar placeholder shadcn neutro
|
|
218
|
+
em `.plano/DESIGN-TOKENS.md` e registrar pendencia em `.plano/PENDING.md`).
|
|
219
|
+
3. Credenciais de API (Supabase/email/pagamentos/WhatsApp; salvar em `.env.local` SEM commitar;
|
|
220
|
+
o que faltar vira pendencia blocker/non_blocker em PENDING.md).
|
|
221
|
+
4. Referencias ("igual ao Linear", screenshots, brand book). Se URL + intencao de clonar -> Passo 4.
|
|
222
|
+
5. Restricoes (features/tecnologias banidas). Tudo opcional, enter pula.
|
|
223
|
+
|
|
224
|
+
**Validacao de briefing:** se vago/inviavel, repergunte (max 2 vezes). Apos isso, o orquestrador
|
|
225
|
+
assume escopo minimo razoavel e segue. Brownfield: perguntar tambem o que NAO deve mudar e a dor maior.
|
|
226
|
+
|
|
227
|
+
### 2.4 Pesquisa inline (so greenfield, so se util)
|
|
228
|
+
|
|
229
|
+
Migrado de novo-projeto.md (4 pesquisadores) e do research-inline do builder.md.
|
|
230
|
+
|
|
231
|
+
**Brownfield com mapa de codebase:** pular (stack/arquitetura ja conhecidas). Pesquisar so o que e NOVO.
|
|
232
|
+
|
|
233
|
+
**Greenfield + dominio desconhecido (ou usuario pediu):** spawnar 4 `up-pesquisador` em PARALELO
|
|
234
|
+
(modo dominio). Para tarefa trivial/pequena, pular a pesquisa.
|
|
235
|
+
|
|
236
|
+
```bash
|
|
237
|
+
mkdir -p .plano/pesquisa
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
```
|
|
241
|
+
# Os 4 Task na MESMA mensagem (paralelo). modo=dominio.
|
|
242
|
+
Task(subagent_type="up-pesquisador", description="Pesquisa de Stack", prompt="
|
|
243
|
+
<modo>dominio</modo>
|
|
244
|
+
<dimensao>Stack</dimensao>
|
|
245
|
+
<question>Qual a stack padrao atual para [dominio]?</question>
|
|
246
|
+
<output>Write to: .plano/pesquisa/STACK.md</output>
|
|
247
|
+
")
|
|
248
|
+
Task(subagent_type="up-pesquisador", description="Pesquisa de Features", prompt="
|
|
249
|
+
<modo>dominio</modo>
|
|
250
|
+
<dimensao>Features</dimensao>
|
|
251
|
+
<question>Quais features produtos de [dominio] tem? Obrigatorio vs diferenciador?</question>
|
|
252
|
+
<output>Write to: .plano/pesquisa/FEATURES.md</output>
|
|
253
|
+
")
|
|
254
|
+
Task(subagent_type="up-pesquisador", description="Pesquisa de Arquitetura", prompt="
|
|
255
|
+
<modo>dominio</modo>
|
|
256
|
+
<dimensao>Arquitetura</dimensao>
|
|
257
|
+
<question>Como sistemas de [dominio] sao estruturados? Componentes principais?</question>
|
|
258
|
+
<output>Write to: .plano/pesquisa/ARCHITECTURE.md</output>
|
|
259
|
+
")
|
|
260
|
+
Task(subagent_type="up-pesquisador", description="Pesquisa de Armadilhas", prompt="
|
|
261
|
+
<modo>dominio</modo>
|
|
262
|
+
<dimensao>Armadilhas</dimensao>
|
|
263
|
+
<question>O que projetos de [dominio] comumente erram? Erros criticos?</question>
|
|
264
|
+
<output>Write to: .plano/pesquisa/PITFALLS.md</output>
|
|
265
|
+
")
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
Apos os 4 retornarem, spawnar o sintetizador (modo research) para consolidar:
|
|
269
|
+
|
|
270
|
+
```
|
|
271
|
+
Task(subagent_type="up-sintetizador", description="Sintetizar pesquisa", prompt="
|
|
272
|
+
<modo>research</modo>
|
|
273
|
+
<files_to_read>
|
|
274
|
+
- .plano/pesquisa/STACK.md
|
|
275
|
+
- .plano/pesquisa/FEATURES.md
|
|
276
|
+
- .plano/pesquisa/ARCHITECTURE.md
|
|
277
|
+
- .plano/pesquisa/PITFALLS.md
|
|
278
|
+
</files_to_read>
|
|
279
|
+
<output>Write to: .plano/pesquisa/SUMMARY.md. Commit apos escrever.</output>
|
|
280
|
+
")
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
### 2.5 Estruturar o projeto (BRIEFING + PROJECT + config)
|
|
284
|
+
|
|
285
|
+
Escrever inline (sem CEO):
|
|
286
|
+
|
|
287
|
+
**`.plano/BRIEFING.md`** — briefing consolidado + decisoes iniciais (stack, design, modo).
|
|
288
|
+
**`.plano/PROJECT.md`** — usar template `templates/project.md`. Greenfield: requisitos como hipoteses
|
|
289
|
+
(Ativos). Brownfield: inferir requisitos Validados do codebase, separar objetivos novos em Ativos.
|
|
290
|
+
**`.plano/config.json`** — defaults (perguntar so na complex):
|
|
291
|
+
|
|
292
|
+
```json
|
|
293
|
+
{ "mode": "yolo", "granularity": "standard", "parallelization": true, "commit_docs": true }
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
Commits atomicos:
|
|
297
|
+
|
|
298
|
+
```bash
|
|
299
|
+
node "$HOME/.claude/up/bin/up-tools.cjs" commit "docs: briefing e projeto" --files .plano/BRIEFING.md .plano/PROJECT.md
|
|
300
|
+
node "$HOME/.claude/up/bin/up-tools.cjs" commit "chore: config do projeto" --files .plano/config.json
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
### 2.6 Injetar persistencia no CLAUDE.md do projeto
|
|
304
|
+
|
|
305
|
+
Se `./CLAUDE.md` nao tem a secao "UP: Persistencia de Estado", anexar (ou criar o arquivo):
|
|
306
|
+
|
|
307
|
+
```markdown
|
|
308
|
+
|
|
309
|
+
## UP: Persistencia de Estado
|
|
310
|
+
|
|
311
|
+
Este projeto usa o sistema UP. Se `.plano/STATE.md` existir:
|
|
312
|
+
- Ao final de trabalho significativo, salvar estado: `node "$HOME/.claude/up/bin/up-tools.cjs" state save-session --summary "o que foi feito"`
|
|
313
|
+
- Se houve decisao importante, adicionar: `--decision "decisao" --phase N`
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
```bash
|
|
317
|
+
node "$HOME/.claude/up/bin/up-tools.cjs" commit "docs: persistencia de estado no CLAUDE.md" --files CLAUDE.md
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
## Passo 3: Rotear para planejamento
|
|
321
|
+
|
|
322
|
+
Apos estruturar, o `/up` NAO planeja nem executa fases sozinho. Ele entrega o handoff:
|
|
323
|
+
|
|
324
|
+
```
|
|
325
|
+
---
|
|
326
|
+
|
|
327
|
+
## Projeto registrado
|
|
328
|
+
|
|
329
|
+
**[Nome]** | modo: [greenfield|brownfield]
|
|
330
|
+
|
|
331
|
+
| Artefato | Local |
|
|
332
|
+
|------------|------------------------|
|
|
333
|
+
| Briefing | `.plano/BRIEFING.md` |
|
|
334
|
+
| Projeto | `.plano/PROJECT.md` |
|
|
335
|
+
| Config | `.plano/config.json` |
|
|
336
|
+
[se pesquisa] | Pesquisa | `.plano/pesquisa/` |
|
|
337
|
+
[se brownfield e mapeado] | Codebase | `.plano/codebase/` |
|
|
338
|
+
|
|
339
|
+
## Proximo
|
|
340
|
+
|
|
341
|
+
`/up:plan` ← planeja todas as fases (gera PLAN-READY.md)
|
|
342
|
+
|
|
343
|
+
<sub>`/clear` primeiro -> janela de contexto limpa</sub>
|
|
344
|
+
|
|
345
|
+
---
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
> `/up:build` aceita `--solo` (default, commit na branch atual), `--pr` (worktree+issue+PR),
|
|
349
|
+
> `--board` (espelho de status no Multica, batched, fail-open) e `--auto` (merge se verde). Para ver o
|
|
350
|
+
> board depois: `/up estado board` (abre a URL no Multica). Aqui so roteamos pro /up:plan.
|
|
351
|
+
|
|
352
|
+
## Passo 4: CLONE (URL recebida)
|
|
353
|
+
|
|
354
|
+
Absorve clone-builder.md. A maquinaria de clone agora e MODO do `up-mapeador-codigo` (crawl + design +
|
|
355
|
+
features + PRD num passe) + `up-verificador` modo clone-fidelity. NAO ha mais 5 agentes clone-*.
|
|
356
|
+
|
|
357
|
+
### 4.1 Intake do clone (inline)
|
|
358
|
+
|
|
359
|
+
Extrair do $ARGUMENTS: URL (obrigatorio) e modo (`--exact` default | `--improve` | `--inspiration`).
|
|
360
|
+
Perguntar via AskUserQuestion (so o essencial): credenciais de login do app original (se precisar),
|
|
361
|
+
stack desejada do clone, credenciais do banco do clone, e (se improve/inspiration) o que mudar.
|
|
362
|
+
|
|
363
|
+
```bash
|
|
364
|
+
mkdir -p .plano/clone
|
|
365
|
+
git init 2>/dev/null
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
Salvar `.plano/BRIEFING.md` com URL, credenciais (NAO commitar segredos), stack, modo.
|
|
369
|
+
|
|
370
|
+
### 4.2 Mapear o app original (modo clone, passe unico)
|
|
371
|
+
|
|
372
|
+
```
|
|
373
|
+
Task(subagent_type="up-mapeador-codigo", description="Clonar app original", prompt="
|
|
374
|
+
<modo>clone</modo>
|
|
375
|
+
<objective>
|
|
376
|
+
Num passe unico: crawl do app em {URL} (todas as rotas, screenshots desktop+mobile, intercepta APIs,
|
|
377
|
+
extrai forms), extrai o design system completo, mapeia modulos/features/roles/data-model/fluxos e
|
|
378
|
+
escreve o PRD pronto pro planejamento.
|
|
379
|
+
</objective>
|
|
380
|
+
<credentials>URL: {URL} | Email: {EMAIL ou nenhum} | Senha: {PASSWORD ou nenhum}</credentials>
|
|
381
|
+
<clone_mode>{exact|improve|inspiration}</clone_mode>
|
|
382
|
+
<output>
|
|
383
|
+
- .plano/clone/CRAWL-DATA.md
|
|
384
|
+
- .plano/clone/DESIGN-SYSTEM.md
|
|
385
|
+
- .plano/clone/FEATURE-MAP.md (features com IDs CLONE-*)
|
|
386
|
+
- .plano/clone/CLONE-PRD.md (briefing pro /up:plan)
|
|
387
|
+
</output>
|
|
388
|
+
")
|
|
389
|
+
```
|
|
390
|
+
|
|
391
|
+
### 4.3 Configurar e rotear pro planejamento
|
|
392
|
+
|
|
393
|
+
`config.json` marca o modo clone (cada agente que le config adapta comportamento):
|
|
394
|
+
|
|
395
|
+
```json
|
|
396
|
+
{ "mode": "yolo", "granularity": "standard", "parallelization": true, "commit_docs": true,
|
|
397
|
+
"builder_type": "clone", "clone_source": "{URL}", "clone_mode": "{exact|improve|inspiration}",
|
|
398
|
+
"clone_data": ".plano/clone/" }
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
Usar `.plano/clone/CLONE-PRD.md` como briefing. Entregar handoff pro `/up:plan` (mesmo do Passo 3).
|
|
402
|
+
|
|
403
|
+
> A verificacao de fidelidade (comparar clone vs original) roda depois, no `/up:testar`/quality gate,
|
|
404
|
+
> via `up-verificador` modo clone-fidelity. Nao e responsabilidade deste roteador.
|
|
405
|
+
|
|
406
|
+
## Passo 5: ESTADO (subverbo)
|
|
407
|
+
|
|
408
|
+
`/up estado [status|saude|board|pausar|resetar|custos|remover-fase N]`. Max 3 conceitos visiveis; o resto
|
|
409
|
+
e detectado por contexto. Operacoes:
|
|
410
|
+
|
|
411
|
+
| Pedido | Acao |
|
|
412
|
+
|--------|------|
|
|
413
|
+
| status (default) | Mesmo relatorio do Passo 1 (sem rotear execucao) |
|
|
414
|
+
| saude | Diagnostico de integridade do `.plano/` (rodar `up-tools.cjs` saude se disponivel) |
|
|
415
|
+
| board | Abre/imprime a URL do board no Multica (substitui o antigo dashboard local :4040). Roda `node "$HOME/.claude/up/bin/up-tools.cjs" multica board --raw` (deteccao `uname -s`, fail-open: se nao houver board `--board`/`multica` indisponivel, avisa que nao ha board e segue). NAO ha dashboard local nem stream ao vivo: o board mostra so status (todo/in_progress/in_review/done). |
|
|
416
|
+
| pausar | Criar handoff `.continue-aqui.md` — delegar a `@~/.claude/up/workflows/pausar.md` |
|
|
417
|
+
| resetar | Limpeza destrutiva do `.plano/` — delegar a `@~/.claude/up/workflows/resetar.md` |
|
|
418
|
+
| custos | Estimativa de tokens dos agentes UP usados (Claude Code only) |
|
|
419
|
+
| remover-fase N | Remove e renumera fase futura — delegar a `@~/.claude/up/workflows/remover-fase.md` |
|
|
420
|
+
|
|
421
|
+
## Passo 6: CONFIG (subverbo)
|
|
422
|
+
|
|
423
|
+
`/up config [configurar|onboard|atualizar]`:
|
|
424
|
+
|
|
425
|
+
| Pedido | Acao |
|
|
426
|
+
|--------|------|
|
|
427
|
+
| configurar | Editar `.plano/config.json` (mode/granularity/parallelization) interativamente |
|
|
428
|
+
| onboard | (Re)criar perfil do dono — delegar a `@~/.claude/up/workflows/onboarding.md` |
|
|
429
|
+
| atualizar | `npm update -g up-cc` (ou instrucao equivalente) e reinstalar |
|
|
430
|
+
|
|
431
|
+
</process>
|
|
432
|
+
|
|
433
|
+
<success_criteria>
|
|
434
|
+
- [ ] Branch de roteamento escolhido corretamente pelo $ARGUMENTS
|
|
435
|
+
- [ ] Sem arg: STATE.md carregado (ou reconstruido), trabalho incompleto detectado, proxima acao clara
|
|
436
|
+
- [ ] Com descricao: modo detectado, classify-task rodou, brainstorm escalado (0/1/full)
|
|
437
|
+
- [ ] Intake inline cobriu briefing + (design/credenciais/refs/restricoes na complex), SEM CEO
|
|
438
|
+
- [ ] Greenfield: pesquisa inline com 4x up-pesquisador (modo dominio) + up-sintetizador (quando util)
|
|
439
|
+
- [ ] BRIEFING/PROJECT/config gerados e committados atomicamente
|
|
440
|
+
- [ ] Persistencia injetada no CLAUDE.md do projeto
|
|
441
|
+
- [ ] Clone: up-mapeador-codigo modo clone gerou CLONE-PRD; roteado pro /up:plan
|
|
442
|
+
- [ ] Handoff claro pro /up:plan ou /up:build
|
|
443
|
+
- [ ] Subverbos estado/config delegam aos workflows corretos
|
|
444
|
+
- [ ] Subverbo `estado board` abre a URL do Multica (via `up-tools.cjs multica board`, fail-open); NAO ha dashboard local :4040 nem stream ao vivo
|
|
445
|
+
- [ ] Nenhuma referencia a CEO, chiefs, supervisores ou agentes clone-*
|
|
446
|
+
</success_criteria>
|
|
447
|
+
</output>
|