up-cc 0.1.6 → 0.2.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 +426 -0
- package/bin/up-tools.cjs +14 -0
- package/commands/ajuda.md +10 -5
- package/commands/novo-projeto.md +7 -6
- package/package.json +1 -1
- package/templates/project.md +32 -18
- package/workflows/discutir-fase.md +12 -0
- package/workflows/novo-projeto.md +198 -7
- package/workflows/planejar-fase.md +9 -0
package/README.md
ADDED
|
@@ -0,0 +1,426 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<pre align="center">
|
|
3
|
+
██╗ ██╗██████╗
|
|
4
|
+
██║ ██║██╔══██╗
|
|
5
|
+
██║ ██║██████╔╝
|
|
6
|
+
██║ ██║██╔═══╝
|
|
7
|
+
╚██████╔╝██║
|
|
8
|
+
╚═════╝ ╚═╝</pre>
|
|
9
|
+
</p>
|
|
10
|
+
|
|
11
|
+
<h3 align="center">Desenvolvimento orientado a especificacao para Claude Code, Gemini CLI e OpenCode</h3>
|
|
12
|
+
|
|
13
|
+
<p align="center">
|
|
14
|
+
<a href="https://www.npmjs.com/package/up-cc"><img src="https://img.shields.io/npm/v/up-cc.svg" alt="npm version"></a>
|
|
15
|
+
<a href="https://www.npmjs.com/package/up-cc"><img src="https://img.shields.io/npm/dm/up-cc.svg" alt="npm downloads"></a>
|
|
16
|
+
<a href="LICENSE"><img src="https://img.shields.io/npm/l/up-cc.svg" alt="license"></a>
|
|
17
|
+
</p>
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
**UP** e um sistema de meta-prompting que transforma seu assistente de IA em um desenvolvedor estruturado. Em vez de pedir "faz X", voce descreve o projeto e o UP cuida do planejamento, execucao, verificacao e rastreamento — tudo via slash commands.
|
|
22
|
+
|
|
23
|
+
Funciona com **Claude Code**, **Gemini CLI** e **OpenCode**.
|
|
24
|
+
|
|
25
|
+
## Por que UP?
|
|
26
|
+
|
|
27
|
+
Sem UP, voce pede algo ao assistente e torce pra dar certo. Com UP:
|
|
28
|
+
|
|
29
|
+
- **Projetos sao divididos em fases** com roadmap, planos executaveis e criterios de aceite
|
|
30
|
+
- **Cada fase passa por um pipeline**: discutir → planejar → executar → verificar
|
|
31
|
+
- **Estado persiste entre sessoes** via arquivos em `.plano/` — sobrevive a `/clear` e troca de contexto
|
|
32
|
+
- **Commits atomicos** rastreiam cada mudanca com mensagens descritivas
|
|
33
|
+
- **Agentes especializados** rodam em paralelo para pesquisa, planejamento, execucao e verificacao
|
|
34
|
+
- **Tarefas rapidas** tem o mesmo rigor sem a cerimonia completa
|
|
35
|
+
- **Detecta projetos existentes** e adapta o fluxo automaticamente (brownfield)
|
|
36
|
+
|
|
37
|
+
## Instalacao
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
npx up-cc@latest --claude --global # Claude Code
|
|
41
|
+
npx up-cc@latest --gemini --global # Gemini CLI
|
|
42
|
+
npx up-cc@latest --opencode --global # OpenCode
|
|
43
|
+
npx up-cc@latest --all --global # Todos
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Para instalar localmente no projeto (em vez de global):
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
npx up-cc@latest --claude --local
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Desinstalar:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
npx up-cc@latest --uninstall
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Apos instalar, reinicie o Claude Code e digite `/up:ajuda` para ver todos os comandos.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Manual de Uso
|
|
63
|
+
|
|
64
|
+
### 1. Inicializando um projeto
|
|
65
|
+
|
|
66
|
+
O UP funciona tanto para projetos novos (greenfield) quanto para codebases existentes (brownfield). A deteccao e automatica.
|
|
67
|
+
|
|
68
|
+
#### Projeto novo (do zero)
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
/up:novo-projeto
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
O UP vai:
|
|
75
|
+
1. Perguntar "O que voce quer construir?"
|
|
76
|
+
2. Fazer perguntas de acompanhamento para entender o projeto
|
|
77
|
+
3. Opcionalmente pesquisar o ecossistema do dominio (stack, features, armadilhas)
|
|
78
|
+
4. Definir requisitos interativamente, agrupados por categoria
|
|
79
|
+
5. Gerar ROADMAP.md com fases, criterios de sucesso e rastreabilidade
|
|
80
|
+
6. Criar PROJECT.md, STATE.md e config.json
|
|
81
|
+
|
|
82
|
+
Ao final voce tera um `.plano/` completo pronto para o pipeline de fases.
|
|
83
|
+
|
|
84
|
+
#### Projeto existente (brownfield)
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
/up:mapear-codigo # Opcional, mas recomendado
|
|
88
|
+
/up:novo-projeto # Detecta brownfield automaticamente
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Se voce tem codigo no diretorio, o UP detecta e adapta:
|
|
92
|
+
- Carrega o mapeamento do codebase (se `/up:mapear-codigo` ja rodou)
|
|
93
|
+
- Pergunta "O que voce quer **fazer** com esse codigo?" em vez de "O que voce quer construir?"
|
|
94
|
+
- Infere requisitos **validados** do codebase existente (features que ja funcionam)
|
|
95
|
+
- Separa seus novos objetivos como requisitos **ativos**
|
|
96
|
+
- Pesquisa foca em tecnologias **novas**, nao nas que voce ja usa
|
|
97
|
+
- Todo o pipeline downstream (discutir, planejar, executar) recebe contexto do codebase
|
|
98
|
+
|
|
99
|
+
O `/up:mapear-codigo` produz 7 documentos em `.plano/codebase/`:
|
|
100
|
+
|
|
101
|
+
| Documento | Conteudo |
|
|
102
|
+
|-----------|----------|
|
|
103
|
+
| STACK.md | Tecnologias, frameworks, dependencias |
|
|
104
|
+
| ARCHITECTURE.md | Design do sistema, fluxo de dados, padroes |
|
|
105
|
+
| STRUCTURE.md | Organizacao de diretorios e arquivos |
|
|
106
|
+
| CONVENTIONS.md | Estilo de codigo, nomeacao, padroes de erro |
|
|
107
|
+
| INTEGRATIONS.md | APIs externas, banco de dados, autenticacao |
|
|
108
|
+
| TESTING.md | Infraestrutura de testes, cobertura |
|
|
109
|
+
| CONCERNS.md | Divida tecnica, areas frageis, seguranca |
|
|
110
|
+
|
|
111
|
+
Esses documentos alimentam automaticamente o restante do pipeline.
|
|
112
|
+
|
|
113
|
+
#### Reinicializando um projeto
|
|
114
|
+
|
|
115
|
+
Se voce ja tem um `.plano/PROJECT.md` e roda `/up:novo-projeto` novamente, o UP oferece:
|
|
116
|
+
- **Revisar e atualizar** — Atualizar com novos objetivos
|
|
117
|
+
- **Recomecar do zero** — Recriar tudo
|
|
118
|
+
- **Cancelar** — Manter como esta
|
|
119
|
+
|
|
120
|
+
### 2. O pipeline de fases
|
|
121
|
+
|
|
122
|
+
Cada fase do roadmap passa por um pipeline de 4 etapas. Voce controla o ritmo — cada etapa e um comando separado.
|
|
123
|
+
|
|
124
|
+
#### Etapa 1: Discutir (`/up:discutir-fase N`)
|
|
125
|
+
|
|
126
|
+
```
|
|
127
|
+
/up:discutir-fase 1
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
O UP analisa a fase e identifica **areas cinzentas** — ambiguidades que mudariam a implementacao. Voce escolhe quais discutir.
|
|
131
|
+
|
|
132
|
+
- Perguntas sao adaptadas ao que ja foi decidido em fases anteriores
|
|
133
|
+
- Se o projeto e brownfield, carrega ARCHITECTURE.md e CONVENTIONS.md para perguntas informadas
|
|
134
|
+
- Ideias fora do escopo sao anotadas como "adiadas", nao perdidas
|
|
135
|
+
- Resultado: `CONTEXT.md` com decisoes capturadas
|
|
136
|
+
|
|
137
|
+
**Quando pular:** Se a fase e infraestrutura pura ou a implementacao e obvia, voce pode ir direto para planejar.
|
|
138
|
+
|
|
139
|
+
#### Etapa 2: Planejar (`/up:planejar-fase N`)
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
/up:planejar-fase 1
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
Spawna o agente **up-planejador** que:
|
|
146
|
+
- Le CONTEXT.md, ROADMAP.md, REQUIREMENTS.md e codebase docs
|
|
147
|
+
- Faz pesquisa inline se necessario (busca docs, verifica APIs)
|
|
148
|
+
- Cria PLAN-001.md, PLAN-002.md, etc. com tarefas especificas
|
|
149
|
+
- Auto-verifica: cobertura de requisitos, dependencias, waves de execucao
|
|
150
|
+
- Resultado: Planos executaveis prontos
|
|
151
|
+
|
|
152
|
+
Flags uteis:
|
|
153
|
+
- `--pesquisar` — Forcar pesquisa profunda antes de planejar
|
|
154
|
+
- `--sem-pesquisa` — Pular pesquisa, ir direto
|
|
155
|
+
- `--gaps` — Replanejar a partir de lacunas do verificar-trabalho
|
|
156
|
+
|
|
157
|
+
#### Etapa 3: Executar (`/up:executar-fase N`)
|
|
158
|
+
|
|
159
|
+
```
|
|
160
|
+
/up:executar-fase 1
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
Spawna agentes **up-executor** que:
|
|
164
|
+
- Executam planos organizados em **waves** (planos independentes rodam em paralelo)
|
|
165
|
+
- Cada plano produz commits atomicos com mensagens descritivas
|
|
166
|
+
- Resultado: Codigo implementado e commitado, SUMMARY.md criado
|
|
167
|
+
|
|
168
|
+
#### Etapa 4: Verificar (`/up:verificar-trabalho N`)
|
|
169
|
+
|
|
170
|
+
```
|
|
171
|
+
/up:verificar-trabalho 1
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
Verificacao goal-backward (parte do resultado desejado e volta):
|
|
175
|
+
- Testa se os criterios de sucesso da fase foram atingidos
|
|
176
|
+
- Se encontra gaps: gera VERIFICATION.md com detalhes
|
|
177
|
+
- Resultado: Fase aprovada ou lista de gaps para corrigir
|
|
178
|
+
|
|
179
|
+
#### Ciclo de correcao de gaps
|
|
180
|
+
|
|
181
|
+
Se a verificacao encontrou problemas:
|
|
182
|
+
|
|
183
|
+
```
|
|
184
|
+
/up:planejar-fase 1 --gaps # Cria planos de correcao baseados no VERIFICATION.md
|
|
185
|
+
/up:executar-fase 1 --gaps-only # Executa apenas os planos de correcao
|
|
186
|
+
/up:verificar-trabalho 1 # Re-verifica
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
### 3. Gerenciamento do projeto
|
|
190
|
+
|
|
191
|
+
#### Ver progresso
|
|
192
|
+
|
|
193
|
+
```
|
|
194
|
+
/up:progresso
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
Mostra dashboard com: fase atual, porcentagem de conclusao, bloqueios, e sugere o proximo comando a rodar.
|
|
198
|
+
|
|
199
|
+
#### Pausar e retomar
|
|
200
|
+
|
|
201
|
+
```
|
|
202
|
+
/up:pausar # Cria .continue-aqui.md com contexto completo
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
Na proxima sessao (ou apos `/clear`):
|
|
206
|
+
|
|
207
|
+
```
|
|
208
|
+
/up:retomar # Le .continue-aqui.md e STATE.md, restaura tudo
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
O UP foi desenhado para sobreviver a `/clear`. Todo estado fica em disco no `.plano/`.
|
|
212
|
+
|
|
213
|
+
#### Adicionar e remover fases
|
|
214
|
+
|
|
215
|
+
```
|
|
216
|
+
/up:adicionar-fase "Implementar sistema de notificacoes" # Adiciona ao final
|
|
217
|
+
/up:remover-fase 5 # Remove e renumera
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
Apenas fases futuras (nao iniciadas) podem ser removidas.
|
|
221
|
+
|
|
222
|
+
### 4. Tarefas rapidas
|
|
223
|
+
|
|
224
|
+
Para tarefas pequenas que nao justificam uma fase inteira:
|
|
225
|
+
|
|
226
|
+
```
|
|
227
|
+
/up:rapido "Corrigir bug no formulario de login"
|
|
228
|
+
/up:rapido "Adicionar favicon"
|
|
229
|
+
/up:rapido "Atualizar dependencias"
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
O `/up:rapido` faz o mesmo pipeline simplificado:
|
|
233
|
+
- Planeja e executa em um unico fluxo
|
|
234
|
+
- Commits atomicos com rastreamento
|
|
235
|
+
- Tarefas ficam em `.plano/rapido/TASK-NNN.md`
|
|
236
|
+
- Nao afeta ROADMAP.md — e separado das fases
|
|
237
|
+
|
|
238
|
+
### 5. Depuracao
|
|
239
|
+
|
|
240
|
+
Para bugs complexos que precisam de investigacao sistematica:
|
|
241
|
+
|
|
242
|
+
```
|
|
243
|
+
/up:depurar "Botao de salvar nao funciona na pagina de perfil"
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
O depurador:
|
|
247
|
+
- Coleta sintomas (comportamento esperado, real, erros, reproducao)
|
|
248
|
+
- Spawna agente **up-depurador** que investiga com metodo cientifico
|
|
249
|
+
- Forma hipoteses falsificaveis, testa uma de cada vez
|
|
250
|
+
- Mantém sessao persistente em `.plano/debug/` (sobrevive a `/clear`)
|
|
251
|
+
- Ao encontrar a causa raiz, oferece corrigir automaticamente
|
|
252
|
+
|
|
253
|
+
Sessoes ativas podem ser retomadas:
|
|
254
|
+
|
|
255
|
+
```
|
|
256
|
+
/up:depurar # Sem argumento: lista sessoes ativas
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
### 6. Testes
|
|
260
|
+
|
|
261
|
+
Apos completar uma fase, gerar testes automaticamente:
|
|
262
|
+
|
|
263
|
+
```
|
|
264
|
+
/up:adicionar-testes 1
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
O UP:
|
|
268
|
+
- Analisa todos os arquivos modificados pela fase
|
|
269
|
+
- Classifica cada um: unitario (TDD), E2E (browser) ou pular
|
|
270
|
+
- Apresenta classificacao para aprovacao
|
|
271
|
+
- Gera testes seguindo convencoes do projeto
|
|
272
|
+
- Reporta: passando, falhando, gaps de cobertura, bugs descobertos
|
|
273
|
+
|
|
274
|
+
### 7. Configuracao
|
|
275
|
+
|
|
276
|
+
```
|
|
277
|
+
/up:configurar
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
| Opcao | Default | Descricao |
|
|
281
|
+
|-------|---------|-----------|
|
|
282
|
+
| Modo | solo | `solo` (commits diretos) ou `time` (branches por fase) |
|
|
283
|
+
| Paralelizacao | sim | Agentes rodam em paralelo quando independentes |
|
|
284
|
+
| Commit Docs | sim | Commitar documentos de planejamento automaticamente |
|
|
285
|
+
| Auto-Advance | nao | Encadear estagios automaticamente |
|
|
286
|
+
|
|
287
|
+
### 8. Manutencao
|
|
288
|
+
|
|
289
|
+
```
|
|
290
|
+
/up:saude # Diagnostica integridade do .plano/
|
|
291
|
+
/up:saude --reparar # Corrige problemas automaticamente
|
|
292
|
+
/up:atualizar # Verifica e instala atualizacoes do UP
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
---
|
|
296
|
+
|
|
297
|
+
## Referencia Rapida
|
|
298
|
+
|
|
299
|
+
### Comandos
|
|
300
|
+
|
|
301
|
+
| Comando | Descricao |
|
|
302
|
+
|---------|-----------|
|
|
303
|
+
| `/up:novo-projeto` | Inicializar projeto (detecta greenfield/brownfield) |
|
|
304
|
+
| `/up:mapear-codigo` | Analisar codebase existente com agentes paralelos |
|
|
305
|
+
| `/up:retomar` | Restaurar contexto da sessao anterior |
|
|
306
|
+
| `/up:discutir-fase N` | Coletar contexto por questionamento estruturado |
|
|
307
|
+
| `/up:planejar-fase N` | Criar planos executaveis com pesquisa e self-check |
|
|
308
|
+
| `/up:executar-fase N` | Executar planos com paralelizacao por ondas |
|
|
309
|
+
| `/up:verificar-trabalho N` | Validar features via UAT conversacional |
|
|
310
|
+
| `/up:progresso` | Dashboard de status e proxima acao |
|
|
311
|
+
| `/up:pausar` | Criar arquivo de handoff `.continue-aqui.md` |
|
|
312
|
+
| `/up:adicionar-fase "desc"` | Adicionar fase ao final do roadmap |
|
|
313
|
+
| `/up:remover-fase N` | Remover fase futura e renumerar |
|
|
314
|
+
| `/up:adicionar-testes N` | Gerar testes para fase completa |
|
|
315
|
+
| `/up:rapido "tarefa"` | Tarefa rapida com commits atomicos |
|
|
316
|
+
| `/up:depurar` | Depuracao sistematica com metodo cientifico |
|
|
317
|
+
| `/up:configurar` | Configurar opcoes do workflow |
|
|
318
|
+
| `/up:atualizar` | Verificar e instalar atualizacoes |
|
|
319
|
+
| `/up:saude` | Diagnosticar integridade do `.plano/` |
|
|
320
|
+
| `/up:ajuda` | Referencia completa de comandos |
|
|
321
|
+
|
|
322
|
+
### Flags
|
|
323
|
+
|
|
324
|
+
```
|
|
325
|
+
# planejar-fase
|
|
326
|
+
--pesquisar Forcar re-pesquisa mesmo com RESEARCH.md existente
|
|
327
|
+
--sem-pesquisa Pular pesquisa, ir direto ao planejamento
|
|
328
|
+
--auto Auto-detectar proxima fase nao planejada
|
|
329
|
+
--gaps Modo fechamento de gaps (le VERIFICATION.md)
|
|
330
|
+
|
|
331
|
+
# executar-fase
|
|
332
|
+
--gaps-only Executar apenas planos de fechamento de gaps
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
### Pipeline
|
|
336
|
+
|
|
337
|
+
```
|
|
338
|
+
/up:novo-projeto → /up:discutir-fase N → /up:planejar-fase N → /up:executar-fase N → /up:verificar-trabalho N
|
|
339
|
+
│
|
|
340
|
+
Gaps? ─┤
|
|
341
|
+
Sim → /up:planejar-fase N --gaps
|
|
342
|
+
Nao → Proxima fase
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
## Estrutura do `.plano/`
|
|
346
|
+
|
|
347
|
+
```
|
|
348
|
+
.plano/
|
|
349
|
+
├── PROJECT.md # O que e o projeto, requisitos, decisoes
|
|
350
|
+
├── ROADMAP.md # Todas as fases com status
|
|
351
|
+
├── STATE.md # Posicao atual, progresso, continuidade
|
|
352
|
+
├── config.json # Configuracoes do workflow
|
|
353
|
+
├── codebase/ # Mapeamento do codebase (brownfield)
|
|
354
|
+
│ ├── STACK.md
|
|
355
|
+
│ ├── ARCHITECTURE.md
|
|
356
|
+
│ ├── CONVENTIONS.md
|
|
357
|
+
│ ├── CONCERNS.md
|
|
358
|
+
│ └── ...
|
|
359
|
+
├── fases/
|
|
360
|
+
│ ├── 01-autenticacao/
|
|
361
|
+
│ │ ├── CONTEXT.md # Contexto coletado na discussao
|
|
362
|
+
│ │ ├── RESEARCH.md # Pesquisa de dominio/tecnologia
|
|
363
|
+
│ │ ├── PLAN-001.md # Plano executavel
|
|
364
|
+
│ │ ├── SUMMARY-001.md # Resultado da execucao
|
|
365
|
+
│ │ └── VERIFICATION.md # Resultado do UAT
|
|
366
|
+
│ └── ...
|
|
367
|
+
├── rapido/
|
|
368
|
+
│ └── TASK-001.md # Tarefa rapida executada
|
|
369
|
+
└── debug/
|
|
370
|
+
├── bug-login.md # Sessao de debug ativa
|
|
371
|
+
└── resolved/ # Sessoes resolvidas
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
Todos esses arquivos sao texto puro (Markdown/JSON) e podem ser commitados no repositorio.
|
|
375
|
+
|
|
376
|
+
## Agentes
|
|
377
|
+
|
|
378
|
+
O UP usa 8 agentes especializados que rodam como subprocessos:
|
|
379
|
+
|
|
380
|
+
| Agente | Funcao |
|
|
381
|
+
|--------|--------|
|
|
382
|
+
| **up-pesquisador-projeto** | Pesquisa de dominio e tecnologia para novos projetos |
|
|
383
|
+
| **up-roteirista** | Cria ROADMAP.md com fases e criterios de sucesso |
|
|
384
|
+
| **up-planejador** | Planeja fases com pesquisa inline e self-check |
|
|
385
|
+
| **up-executor** | Executa planos com commits atomicos |
|
|
386
|
+
| **up-verificador** | Verificacao goal-backward de trabalho completado |
|
|
387
|
+
| **up-mapeador-codigo** | Analisa codebases existentes em paralelo |
|
|
388
|
+
| **up-depurador** | Investigacao de bugs com metodo cientifico |
|
|
389
|
+
| **up-sintetizador** | Sintetiza pesquisa em documentos estruturados |
|
|
390
|
+
|
|
391
|
+
## Hooks
|
|
392
|
+
|
|
393
|
+
Dois hooks sao instalados automaticamente:
|
|
394
|
+
|
|
395
|
+
- **up-statusline** — Barra de status abaixo do input mostrando modelo, diretorio e uso de contexto
|
|
396
|
+
- **up-context-monitor** — Avisa quando o contexto esta ficando cheio (35% warning, 25% critico), sugerindo `/clear` + `/up:retomar`
|
|
397
|
+
|
|
398
|
+
## Persistencia entre Sessoes
|
|
399
|
+
|
|
400
|
+
O UP sobrevive a `/clear` e reinicializacoes do CLI:
|
|
401
|
+
|
|
402
|
+
1. **Estado em disco** — `.plano/STATE.md` rastreia posicao, decisoes, bloqueios
|
|
403
|
+
2. **Handoff** — `/up:pausar` cria `.continue-aqui.md` com contexto para retomada
|
|
404
|
+
3. **Retomada** — `/up:retomar` le os arquivos de estado e restaura o contexto completo
|
|
405
|
+
4. **Debug persistente** — Sessoes de debug em `.plano/debug/` sobrevivem entre conversas
|
|
406
|
+
|
|
407
|
+
## Compatibilidade
|
|
408
|
+
|
|
409
|
+
| Runtime | Status | Formato |
|
|
410
|
+
|---------|--------|---------|
|
|
411
|
+
| Claude Code | Completo | Nativo (Markdown + YAML frontmatter) |
|
|
412
|
+
| Gemini CLI | Completo | Convertido (TOML commands, YAML arrays) |
|
|
413
|
+
| OpenCode | Completo | Convertido (object tools, hex colors) |
|
|
414
|
+
|
|
415
|
+
Requisitos: Node.js >= 16.7.0
|
|
416
|
+
|
|
417
|
+
## Atualizacao
|
|
418
|
+
|
|
419
|
+
```
|
|
420
|
+
/up:atualizar # Verifica e instala de dentro do CLI
|
|
421
|
+
npx up-cc@latest --claude --global # Ou via terminal
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
## Licenca
|
|
425
|
+
|
|
426
|
+
MIT
|
package/bin/up-tools.cjs
CHANGED
|
@@ -453,11 +453,25 @@ function cmdInitNovoProjeto(cwd, raw) {
|
|
|
453
453
|
hasCode = files.trim().length > 0;
|
|
454
454
|
} catch {}
|
|
455
455
|
|
|
456
|
+
// Check if codebase mapping exists
|
|
457
|
+
const hasCodebaseMap = pathExistsInternal(cwd, '.plano/codebase');
|
|
458
|
+
let codebaseFiles = [];
|
|
459
|
+
if (hasCodebaseMap) {
|
|
460
|
+
try {
|
|
461
|
+
const fs = require('fs');
|
|
462
|
+
codebaseFiles = fs.readdirSync(path.join(cwd, '.plano/codebase'))
|
|
463
|
+
.filter(f => f.endsWith('.md'))
|
|
464
|
+
.map(f => `.plano/codebase/${f}`);
|
|
465
|
+
} catch {}
|
|
466
|
+
}
|
|
467
|
+
|
|
456
468
|
const result = {
|
|
457
469
|
commit_docs: config.commit_docs,
|
|
458
470
|
project_exists: pathExistsInternal(cwd, '.plano/PROJECT.md'),
|
|
459
471
|
planning_exists: pathExistsInternal(cwd, '.plano'),
|
|
460
472
|
has_existing_code: hasCode,
|
|
473
|
+
has_codebase_map: hasCodebaseMap,
|
|
474
|
+
codebase_files: codebaseFiles,
|
|
461
475
|
has_git: pathExistsInternal(cwd, '.git'),
|
|
462
476
|
project_path: '.plano/PROJECT.md',
|
|
463
477
|
};
|
package/commands/ajuda.md
CHANGED
|
@@ -88,16 +88,21 @@ Sistema de desenvolvimento orientado a fases para projetos de software.
|
|
|
88
88
|
|
|
89
89
|
## Fluxos de Trabalho Comuns
|
|
90
90
|
|
|
91
|
-
### Projeto com Codigo Existente (
|
|
91
|
+
### Projeto com Codigo Existente (mais comum)
|
|
92
92
|
```
|
|
93
|
-
/up:mapear-codigo
|
|
94
|
-
/up:novo-projeto
|
|
95
|
-
/up:discutir-fase 1
|
|
93
|
+
/up:mapear-codigo # Analisa codebase (stack, arquitetura, concerns)
|
|
94
|
+
/up:novo-projeto # Detecta brownfield automaticamente
|
|
95
|
+
/up:discutir-fase 1 # Discute no contexto do codigo existente
|
|
96
|
+
/up:planejar-fase 1 # Planos respeitam convencoes do codebase
|
|
97
|
+
/up:executar-fase 1
|
|
98
|
+
/up:verificar-trabalho 1
|
|
96
99
|
```
|
|
100
|
+
Dica: /up:novo-projeto detecta codigo existente e adapta as perguntas.
|
|
101
|
+
O mapeamento do codebase alimenta todo o pipeline automaticamente.
|
|
97
102
|
|
|
98
103
|
### Novo Projeto (do zero)
|
|
99
104
|
```
|
|
100
|
-
/up:novo-projeto
|
|
105
|
+
/up:novo-projeto # Detecta greenfield automaticamente
|
|
101
106
|
/up:discutir-fase 1
|
|
102
107
|
/up:planejar-fase 1
|
|
103
108
|
/up:executar-fase 1
|
package/commands/novo-projeto.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: up:novo-projeto
|
|
3
|
-
description: Inicializar
|
|
3
|
+
description: Inicializar projeto (detecta greenfield/brownfield automaticamente)
|
|
4
4
|
argument-hint: ""
|
|
5
5
|
allowed-tools:
|
|
6
6
|
- Read
|
|
@@ -15,11 +15,12 @@ allowed-tools:
|
|
|
15
15
|
- mcp__context7__*
|
|
16
16
|
---
|
|
17
17
|
<objective>
|
|
18
|
-
|
|
18
|
+
Inicializar projeto com coleta de contexto estruturada. Detecta automaticamente se e greenfield (sem codigo) ou brownfield (codigo existente) e adapta questionamento, pesquisa e requisitos.
|
|
19
19
|
|
|
20
|
-
**
|
|
20
|
+
**Greenfield:** Questioning → Research → Requirements → Roadmap → PROJECT.md
|
|
21
|
+
**Brownfield:** Codebase map → Questioning adaptado → Requisitos inferidos + novos → Roadmap → PROJECT.md
|
|
21
22
|
|
|
22
|
-
**Orchestrator role:**
|
|
23
|
+
**Orchestrator role:** Detectar modo, carregar mapeamento do codebase (se brownfield), guiar questionamento adaptado, sintetizar requisitos, gerar roadmap com contexto completo.
|
|
23
24
|
</objective>
|
|
24
25
|
|
|
25
26
|
<execution_context>
|
|
@@ -30,10 +31,10 @@ Initialize a new project through structured context gathering and documentation.
|
|
|
30
31
|
<context>
|
|
31
32
|
$ARGUMENTS
|
|
32
33
|
|
|
33
|
-
|
|
34
|
+
Inicializacao coleta contexto por questionamento interativo. Se codigo existente for detectado, adapta o fluxo para brownfield: carrega mapeamento do codebase, infere requisitos validados, e pergunta sobre novos objetivos.
|
|
34
35
|
</context>
|
|
35
36
|
|
|
36
37
|
<process>
|
|
37
38
|
Execute the novo-projeto workflow from @~/.claude/up/workflows/novo-projeto.md end-to-end.
|
|
38
|
-
Preserve all workflow gates (questioning, research, requirements, roadmap generation, PROJECT.md creation).
|
|
39
|
+
Preserve all workflow gates (mode detection, codebase loading, questioning, research, requirements, roadmap generation, PROJECT.md creation).
|
|
39
40
|
</process>
|
package/package.json
CHANGED
package/templates/project.md
CHANGED
|
@@ -145,24 +145,38 @@ PROJECT.md evolves throughout the project lifecycle.
|
|
|
145
145
|
|
|
146
146
|
<brownfield>
|
|
147
147
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
-
|
|
154
|
-
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
-
|
|
159
|
-
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
-
|
|
163
|
-
-
|
|
164
|
-
-
|
|
165
|
-
|
|
148
|
+
Para codebases existentes (brownfield):
|
|
149
|
+
|
|
150
|
+
O workflow `/up:novo-projeto` detecta brownfield automaticamente e adapta o fluxo.
|
|
151
|
+
|
|
152
|
+
1. **Mapear codebase** via `/up:mapear-codigo` (opcional mas recomendado)
|
|
153
|
+
- Produz 7 documentos em `.plano/codebase/`
|
|
154
|
+
- STACK.md, ARCHITECTURE.md, CONVENTIONS.md, CONCERNS.md, etc.
|
|
155
|
+
|
|
156
|
+
2. **`/up:novo-projeto` detecta brownfield e:**
|
|
157
|
+
- Carrega documentos do mapeamento como contexto
|
|
158
|
+
- Pergunta "O que voce quer fazer com esse codigo?" (nao "O que voce quer construir?")
|
|
159
|
+
- Explora: o que funciona, o que causa dor, divida tecnica, retrocompatibilidade
|
|
160
|
+
|
|
161
|
+
3. **Inferir requisitos Validados** do codebase existente:
|
|
162
|
+
- Features que ja funcionam em producao
|
|
163
|
+
- Padroes e convencoes estabelecidos
|
|
164
|
+
- Integrações e dependencias que devem ser preservadas
|
|
165
|
+
|
|
166
|
+
4. **Coletar requisitos Ativos** do usuario:
|
|
167
|
+
- Apresentar estado atual inferido
|
|
168
|
+
- Perguntar objetivos: novas features, refatoracao, correcoes, migracoes
|
|
169
|
+
|
|
170
|
+
5. **Inicializar PROJECT.md:**
|
|
171
|
+
- Validados = inferidos do codigo existente
|
|
172
|
+
- Ativos = objetivos do usuario para este trabalho
|
|
173
|
+
- Fora do Escopo = fronteiras definidas pelo usuario
|
|
174
|
+
- Contexto = referencia .plano/codebase/ com dados do mapeamento
|
|
175
|
+
|
|
176
|
+
6. **Pipeline downstream usa codebase map:**
|
|
177
|
+
- `/up:discutir-fase` carrega ARCHITECTURE.md e CONVENTIONS.md para perguntas informadas
|
|
178
|
+
- `/up:planejar-fase` passa CONVENTIONS.md e CONCERNS.md ao planejador
|
|
179
|
+
- Roteirista prioriza divida tecnica antes de features dependentes
|
|
166
180
|
|
|
167
181
|
</brownfield>
|
|
168
182
|
|
|
@@ -85,6 +85,18 @@ Extrair:
|
|
|
85
85
|
- **REQUIREMENTS.md** -- Criterios de aceitacao, restricoes
|
|
86
86
|
- **STATE.md** -- Progresso atual, flags ou notas
|
|
87
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
|
+
|
|
88
100
|
**Passo 2: Ler todos CONTEXT.md de fases anteriores**
|
|
89
101
|
```bash
|
|
90
102
|
find .plano/fases -name "*-CONTEXT.md" 2>/dev/null | sort
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
<purpose>
|
|
2
|
-
Inicializar
|
|
2
|
+
Inicializar projeto: questionamento, pesquisa (opcional), requisitos, roteiro. Detecta automaticamente se e greenfield (sem codigo) ou brownfield (codigo existente) e adapta o fluxo.
|
|
3
|
+
|
|
4
|
+
Este e o momento mais importante do projeto -- questionamento profundo aqui significa planos melhores, execucao melhor, resultados melhores.
|
|
3
5
|
</purpose>
|
|
4
6
|
|
|
5
7
|
<process>
|
|
@@ -13,15 +15,31 @@ INIT=$(node "$HOME/.claude/up/bin/up-tools.cjs" init novo-projeto)
|
|
|
13
15
|
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
14
16
|
```
|
|
15
17
|
|
|
16
|
-
Parse JSON: `commit_docs`, `project_exists`, `planning_exists`, `has_existing_code`, `has_git`, `project_path`.
|
|
18
|
+
Parse JSON: `commit_docs`, `project_exists`, `planning_exists`, `has_existing_code`, `has_codebase_map`, `codebase_files`, `has_git`, `project_path`.
|
|
19
|
+
|
|
20
|
+
**Se `project_exists` = true:**
|
|
21
|
+
|
|
22
|
+
Use AskUserQuestion:
|
|
23
|
+
- header: "Projeto existente"
|
|
24
|
+
- question: "Ja existe um PROJECT.md. O que voce quer fazer?"
|
|
25
|
+
- options:
|
|
26
|
+
- "Revisar e atualizar" -- Atualizar projeto existente com novos objetivos
|
|
27
|
+
- "Recomecar do zero" -- Apagar e reinicializar (PROJECT.md sera recriado)
|
|
28
|
+
- "Cancelar" -- Manter como esta
|
|
17
29
|
|
|
18
|
-
|
|
30
|
+
Se "Revisar e atualizar": Ler PROJECT.md existente, pular para passo 2 com contexto carregado.
|
|
31
|
+
Se "Recomecar do zero": Continuar normalmente (sobrescreve).
|
|
32
|
+
Se "Cancelar": Sair. Sugerir `/up:progresso`.
|
|
19
33
|
|
|
20
34
|
**Se `has_git` = false:** Inicializar git:
|
|
21
35
|
```bash
|
|
22
36
|
git init
|
|
23
37
|
```
|
|
24
38
|
|
|
39
|
+
**Determinar modo:**
|
|
40
|
+
- `has_existing_code` = true OU `has_codebase_map` = true → **MODO BROWNFIELD**
|
|
41
|
+
- Caso contrario → **MODO GREENFIELD**
|
|
42
|
+
|
|
25
43
|
## 2. Questionamento Profundo
|
|
26
44
|
|
|
27
45
|
```
|
|
@@ -30,6 +48,8 @@ git init
|
|
|
30
48
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
31
49
|
```
|
|
32
50
|
|
|
51
|
+
### MODO GREENFIELD
|
|
52
|
+
|
|
33
53
|
**Abrir a conversa:**
|
|
34
54
|
|
|
35
55
|
Pergunte inline (freeform, NAO AskUserQuestion):
|
|
@@ -38,7 +58,53 @@ Pergunte inline (freeform, NAO AskUserQuestion):
|
|
|
38
58
|
|
|
39
59
|
Espere a resposta. Isso da o contexto para perguntas inteligentes.
|
|
40
60
|
|
|
41
|
-
|
|
61
|
+
### MODO BROWNFIELD
|
|
62
|
+
|
|
63
|
+
**Carregar contexto do codebase:**
|
|
64
|
+
|
|
65
|
+
Se `has_codebase_map` = true:
|
|
66
|
+
```bash
|
|
67
|
+
# Ler documentos do mapeamento
|
|
68
|
+
cat .plano/codebase/STACK.md 2>/dev/null
|
|
69
|
+
cat .plano/codebase/ARCHITECTURE.md 2>/dev/null
|
|
70
|
+
cat .plano/codebase/CONCERNS.md 2>/dev/null
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Se `has_codebase_map` = false (tem codigo mas nao mapeou):
|
|
74
|
+
```bash
|
|
75
|
+
# Mini-scan: detectar stack e estrutura
|
|
76
|
+
ls package.json go.mod Cargo.toml requirements.txt pyproject.toml pom.xml build.gradle composer.json Gemfile 2>/dev/null
|
|
77
|
+
ls -d src/ app/ lib/ cmd/ internal/ pages/ components/ 2>/dev/null | head -10
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**Apresentar o que ja sabemos:**
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
84
|
+
UP > PROJETO EXISTENTE DETECTADO
|
|
85
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
86
|
+
|
|
87
|
+
[Se mapeamento existe:]
|
|
88
|
+
Stack: [de STACK.md]
|
|
89
|
+
Arquitetura: [resumo de ARCHITECTURE.md]
|
|
90
|
+
Preocupacoes: [de CONCERNS.md]
|
|
91
|
+
|
|
92
|
+
[Se sem mapeamento:]
|
|
93
|
+
Detectado: [stack inferido dos arquivos de config]
|
|
94
|
+
Estrutura: [diretorios encontrados]
|
|
95
|
+
|
|
96
|
+
Dica: /up:mapear-codigo produz analise mais detalhada
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
**Abrir a conversa (brownfield):**
|
|
100
|
+
|
|
101
|
+
Pergunte inline (freeform, NAO AskUserQuestion):
|
|
102
|
+
|
|
103
|
+
"Voce ja tem codigo rodando. O que voce quer fazer com ele? (novas features, refatoracao, correcoes, migracoes...)"
|
|
104
|
+
|
|
105
|
+
Espere a resposta.
|
|
106
|
+
|
|
107
|
+
### AMBOS OS MODOS — Seguir os fios
|
|
42
108
|
|
|
43
109
|
Com base na resposta, faca perguntas de acompanhamento que aprofundem. Use AskUserQuestion com opcoes que investiguem o que mencionaram -- interpretacoes, esclarecimentos, exemplos concretos.
|
|
44
110
|
|
|
@@ -49,6 +115,12 @@ Continue seguindo fios. Cada resposta abre novos fios para explorar. Pergunte so
|
|
|
49
115
|
- Como seria na pratica
|
|
50
116
|
- O que ja esta decidido
|
|
51
117
|
|
|
118
|
+
**Brownfield extra — pergunte tambem:**
|
|
119
|
+
- O que funciona bem e NAO deve mudar
|
|
120
|
+
- O que causa mais dor
|
|
121
|
+
- Se ha divida tecnica urgente
|
|
122
|
+
- Se ha restricoes de retrocompatibilidade
|
|
123
|
+
|
|
52
124
|
Consulte `questioning.md` para tecnicas:
|
|
53
125
|
- Desafie vaguidao
|
|
54
126
|
- Torne o abstrato concreto
|
|
@@ -74,6 +146,8 @@ Loop ate "Criar PROJECT.md" selecionado.
|
|
|
74
146
|
|
|
75
147
|
Sintetize todo o contexto em `.plano/PROJECT.md` usando o template de `templates/project.md`.
|
|
76
148
|
|
|
149
|
+
### MODO GREENFIELD
|
|
150
|
+
|
|
77
151
|
Inicialize requisitos como hipoteses:
|
|
78
152
|
|
|
79
153
|
```markdown
|
|
@@ -95,6 +169,51 @@ Inicialize requisitos como hipoteses:
|
|
|
95
169
|
- [Exclusao 2] -- [por que]
|
|
96
170
|
```
|
|
97
171
|
|
|
172
|
+
### MODO BROWNFIELD
|
|
173
|
+
|
|
174
|
+
Inferir requisitos validados do codebase existente, separar objetivos novos:
|
|
175
|
+
|
|
176
|
+
```markdown
|
|
177
|
+
## Requisitos
|
|
178
|
+
|
|
179
|
+
### Validados
|
|
180
|
+
|
|
181
|
+
<!-- Inferidos do codebase existente -- ja funcionam em producao -->
|
|
182
|
+
|
|
183
|
+
- [x] [Feature existente 1 inferida do codigo]
|
|
184
|
+
- [x] [Feature existente 2 inferida do codigo]
|
|
185
|
+
- [x] [Padrao estabelecido inferido do codigo]
|
|
186
|
+
|
|
187
|
+
### Ativos
|
|
188
|
+
|
|
189
|
+
<!-- Novos objetivos do usuario para este trabalho -->
|
|
190
|
+
|
|
191
|
+
- [ ] [Novo objetivo 1]
|
|
192
|
+
- [ ] [Novo objetivo 2]
|
|
193
|
+
- [ ] [Novo objetivo 3]
|
|
194
|
+
|
|
195
|
+
### Fora do Escopo
|
|
196
|
+
|
|
197
|
+
- [Exclusao 1] -- [por que]
|
|
198
|
+
- [Exclusao 2] -- [por que]
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
Se `has_codebase_map` = true, popular secao Contexto com dados do mapeamento:
|
|
202
|
+
|
|
203
|
+
```markdown
|
|
204
|
+
## Contexto
|
|
205
|
+
|
|
206
|
+
**Codebase existente mapeado em:** .plano/codebase/
|
|
207
|
+
|
|
208
|
+
- **Stack:** [de STACK.md]
|
|
209
|
+
- **Arquitetura:** [de ARCHITECTURE.md]
|
|
210
|
+
- **Convencoes:** Ver .plano/codebase/CONVENTIONS.md
|
|
211
|
+
- **Divida tecnica:** [resumo de CONCERNS.md]
|
|
212
|
+
- **Testes:** [resumo de TESTING.md]
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### AMBOS OS MODOS
|
|
216
|
+
|
|
98
217
|
**Decisoes-Chave:**
|
|
99
218
|
|
|
100
219
|
Inicialize com decisoes tomadas durante questionamento:
|
|
@@ -179,6 +298,35 @@ node "$HOME/.claude/up/bin/up-tools.cjs" commit "chore: adicionar config do proj
|
|
|
179
298
|
|
|
180
299
|
## 5. Decisao de Pesquisa
|
|
181
300
|
|
|
301
|
+
### MODO BROWNFIELD
|
|
302
|
+
|
|
303
|
+
**Se `has_codebase_map` = true:**
|
|
304
|
+
|
|
305
|
+
A pesquisa de stack/arquitetura ja foi feita pelo mapeamento. Oferecer pesquisa focada:
|
|
306
|
+
|
|
307
|
+
Use AskUserQuestion:
|
|
308
|
+
- header: "Pesquisa"
|
|
309
|
+
- question: "O mapeamento do codebase ja cobriu stack e arquitetura. Quer pesquisar algo especifico?"
|
|
310
|
+
- options:
|
|
311
|
+
- "Pesquisar novas tecnologias" -- Pesquisar apenas tecnologias/padroes NOVOS que voce quer adotar
|
|
312
|
+
- "Pular pesquisa" -- Conheco o que preciso, ir para requisitos
|
|
313
|
+
|
|
314
|
+
**Se "Pesquisar novas tecnologias":** Pesquisa focada apenas no que e NOVO (nao re-pesquisar stack existente).
|
|
315
|
+
|
|
316
|
+
**Se `has_codebase_map` = false:**
|
|
317
|
+
|
|
318
|
+
Use AskUserQuestion:
|
|
319
|
+
- header: "Pesquisa"
|
|
320
|
+
- question: "Quer que eu analise o codebase antes de definir requisitos?"
|
|
321
|
+
- options:
|
|
322
|
+
- "Mapear codebase (Recomendado)" -- Analise profunda com /up:mapear-codigo
|
|
323
|
+
- "Pesquisa leve" -- Pesquisa de ecossistema sem mapeamento completo
|
|
324
|
+
- "Pular" -- Conheco bem o projeto
|
|
325
|
+
|
|
326
|
+
Se "Mapear codebase": Sugerir `/up:mapear-codigo` e depois retomar `/up:novo-projeto`. Sair.
|
|
327
|
+
|
|
328
|
+
### MODO GREENFIELD
|
|
329
|
+
|
|
182
330
|
Use AskUserQuestion:
|
|
183
331
|
- header: "Pesquisa"
|
|
184
332
|
- question: "Pesquisar o ecossistema do dominio antes de definir requisitos?"
|
|
@@ -336,6 +484,35 @@ Ler PROJECT.md e extrair:
|
|
|
336
484
|
- Restricoes declaradas (orcamento, timeline, limitacoes tecnicas)
|
|
337
485
|
- Quaisquer fronteiras de escopo explicitas
|
|
338
486
|
|
|
487
|
+
### MODO BROWNFIELD
|
|
488
|
+
|
|
489
|
+
**Carregar requisitos existentes do codebase:**
|
|
490
|
+
|
|
491
|
+
Se `has_codebase_map` = true:
|
|
492
|
+
- Ler `.plano/codebase/ARCHITECTURE.md` para features existentes
|
|
493
|
+
- Ler `.plano/codebase/CONCERNS.md` para divida tecnica
|
|
494
|
+
|
|
495
|
+
Apresentar o que ja existe como requisitos validados:
|
|
496
|
+
|
|
497
|
+
```
|
|
498
|
+
## O que ja existe (inferido do codebase)
|
|
499
|
+
|
|
500
|
+
### Funcionalidades existentes
|
|
501
|
+
- [Feature 1 detectada]
|
|
502
|
+
- [Feature 2 detectada]
|
|
503
|
+
- ...
|
|
504
|
+
|
|
505
|
+
### Divida tecnica identificada
|
|
506
|
+
- [Concern 1 de CONCERNS.md]
|
|
507
|
+
- [Concern 2 de CONCERNS.md]
|
|
508
|
+
```
|
|
509
|
+
|
|
510
|
+
Pergunte: "Quais sao seus objetivos? (novas features, correcoes, refatoracao, migracoes)"
|
|
511
|
+
|
|
512
|
+
Para cada objetivo, usar AskUserQuestion para escopar e priorizar.
|
|
513
|
+
|
|
514
|
+
### MODO GREENFIELD
|
|
515
|
+
|
|
339
516
|
**Se pesquisa existe:** Ler pesquisa/FEATURES.md e extrair categorias de features.
|
|
340
517
|
|
|
341
518
|
**Apresentar features por categoria:**
|
|
@@ -363,6 +540,8 @@ Aqui estao as features para [dominio]:
|
|
|
363
540
|
|
|
364
541
|
Pergunte: "Quais sao as principais coisas que usuarios precisam fazer?"
|
|
365
542
|
|
|
543
|
+
### AMBOS OS MODOS
|
|
544
|
+
|
|
366
545
|
**Escopar cada categoria:**
|
|
367
546
|
|
|
368
547
|
Para cada categoria, use AskUserQuestion:
|
|
@@ -417,6 +596,8 @@ Task(prompt="
|
|
|
417
596
|
- .plano/REQUIREMENTS.md (Requisitos v1)
|
|
418
597
|
- .plano/pesquisa/SUMMARY.md (Achados de pesquisa - se existir)
|
|
419
598
|
- .plano/config.json (Configuracoes de granularidade e modo)
|
|
599
|
+
- .plano/codebase/CONCERNS.md (Divida tecnica - se existir, BROWNFIELD)
|
|
600
|
+
- .plano/codebase/CONVENTIONS.md (Convencoes a seguir - se existir, BROWNFIELD)
|
|
420
601
|
</files_to_read>
|
|
421
602
|
|
|
422
603
|
</planning_context>
|
|
@@ -430,6 +611,11 @@ Criar roteiro:
|
|
|
430
611
|
5. Escrever arquivos imediatamente (ROADMAP.md, STATE.md, atualizar REQUIREMENTS.md rastreabilidade)
|
|
431
612
|
6. Retornar ROADMAP CREATED com resumo
|
|
432
613
|
|
|
614
|
+
**Se projeto brownfield:**
|
|
615
|
+
- Considerar divida tecnica de CONCERNS.md ao priorizar fases
|
|
616
|
+
- Respeitar convencoes existentes de CONVENTIONS.md
|
|
617
|
+
- Fases de refatoracao/correcao devem vir antes de features que dependem delas
|
|
618
|
+
|
|
433
619
|
Escreva arquivos primeiro, depois retorne.
|
|
434
620
|
</instructions>
|
|
435
621
|
", subagent_type="up-roteirista", description="Criar roteiro")
|
|
@@ -498,6 +684,8 @@ node "$HOME/.claude/up/bin/up-tools.cjs" commit "docs: criar roteiro ([N] fases)
|
|
|
498
684
|
| Pesquisa | `.plano/pesquisa/` |
|
|
499
685
|
| Requisitos | `.plano/REQUIREMENTS.md` |
|
|
500
686
|
| Roteiro | `.plano/ROADMAP.md` |
|
|
687
|
+
[Se brownfield:]
|
|
688
|
+
| Codebase | `.plano/codebase/` |
|
|
501
689
|
|
|
502
690
|
**[N] fases** | **[X] requisitos** | Pronto para construir
|
|
503
691
|
|
|
@@ -541,14 +729,17 @@ node "$HOME/.claude/up/bin/up-tools.cjs" commit "docs: criar roteiro ([N] fases)
|
|
|
541
729
|
|
|
542
730
|
- [ ] .plano/ diretorio criado
|
|
543
731
|
- [ ] Git repo inicializado
|
|
732
|
+
- [ ] Modo detectado (greenfield vs brownfield)
|
|
733
|
+
- [ ] Se brownfield: codebase map carregado (ou mini-scan feito)
|
|
734
|
+
- [ ] Se brownfield: requisitos validados inferidos do codebase
|
|
544
735
|
- [ ] Questionamento profundo completo (fios seguidos, nao apressado)
|
|
545
736
|
- [ ] PROJECT.md captura contexto completo -> **committed**
|
|
546
737
|
- [ ] config.json tem modo, granularidade, paralelizacao -> **committed**
|
|
547
|
-
- [ ] Pesquisa completa (se selecionada) --
|
|
548
|
-
- [ ] Requisitos reunidos (de pesquisa ou conversa)
|
|
738
|
+
- [ ] Pesquisa completa (se selecionada) -- adaptada ao modo -> **committed**
|
|
739
|
+
- [ ] Requisitos reunidos (de pesquisa, codebase ou conversa)
|
|
549
740
|
- [ ] Usuario escopo cada categoria (v1/v2/fora do escopo)
|
|
550
741
|
- [ ] REQUIREMENTS.md criado com REQ-IDs -> **committed**
|
|
551
|
-
- [ ] up-roteirista spawned com contexto
|
|
742
|
+
- [ ] up-roteirista spawned com contexto (inclui codebase docs se brownfield)
|
|
552
743
|
- [ ] Arquivos do roteiro escritos imediatamente
|
|
553
744
|
- [ ] Feedback do usuario incorporado (se houver)
|
|
554
745
|
- [ ] ROADMAP.md criado com fases, mapeamentos de requisitos, criterios de sucesso
|
|
@@ -100,6 +100,9 @@ Task(
|
|
|
100
100
|
- {context_path} (DECISOES DO USUARIO de /up:discutir-fase)
|
|
101
101
|
- {research_path} (Pesquisa Tecnica - se existir)
|
|
102
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)
|
|
103
106
|
</files_to_read>
|
|
104
107
|
|
|
105
108
|
**IDs de requisitos da fase (cada ID DEVE aparecer no campo `requirements` de um plano):** {phase_req_ids}
|
|
@@ -110,6 +113,12 @@ Se RESEARCH_INLINE=true:
|
|
|
110
113
|
- Pesquisar o dominio antes de planejar
|
|
111
114
|
- Usar Context7/docs oficiais para verificar versoes e APIs
|
|
112
115
|
- Documentar achados de pesquisa no inicio de cada PLAN.md
|
|
116
|
+
|
|
117
|
+
**Se arquivos de codebase existem (brownfield):**
|
|
118
|
+
- Respeitar padroes e convencoes de CONVENTIONS.md nos planos
|
|
119
|
+
- Considerar divida tecnica de CONCERNS.md ao definir tarefas
|
|
120
|
+
- Alinhar planos com arquitetura existente de ARCHITECTURE.md
|
|
121
|
+
- NAO recriar infraestrutura que ja existe
|
|
113
122
|
</planning_context>
|
|
114
123
|
|
|
115
124
|
<self_check>
|