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 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 (brownfield)
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
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: up:novo-projeto
3
- description: Inicializar novo projeto com coleta de contexto e PROJECT.md
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
- Initialize a new project through structured context gathering and documentation.
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
- **Default flow:** Questioning -> Research -> Requirements -> Roadmap -> PROJECT.md
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:** Guide user through project discovery questions, research domain and technologies, synthesize requirements, generate phased roadmap, create PROJECT.md with all gathered context.
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
- Project initialization collects context through interactive questioning before any planning or coding begins.
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "up-cc",
3
- "version": "0.1.6",
3
+ "version": "0.2.1",
4
4
  "description": "Simplified spec-driven development for Claude Code, Gemini and OpenCode.",
5
5
  "bin": {
6
6
  "up-cc": "bin/install.js"
@@ -145,24 +145,38 @@ PROJECT.md evolves throughout the project lifecycle.
145
145
 
146
146
  <brownfield>
147
147
 
148
- For existing codebases:
149
-
150
- 1. **Map codebase first** via `/up:mapear`
151
-
152
- 2. **Infer Validated requirements** from existing code:
153
- - What does the codebase actually do?
154
- - What patterns are established?
155
- - What's clearly working and relied upon?
156
-
157
- 3. **Gather Active requirements** from user:
158
- - Present inferred current state
159
- - Ask what they want to build next
160
-
161
- 4. **Initialize:**
162
- - Validated = inferred from existing code
163
- - Active = user's goals for this work
164
- - Out of Scope = boundaries user specifies
165
- - Context = includes current codebase state
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 um novo projeto: questionamento, pesquisa (opcional), requisitos, roteiro. Este e o momento mais importante do projeto -- questionamento profundo aqui significa planos melhores, execucao melhor, resultados melhores.
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
- **Se `project_exists` = true:** Erro -- projeto ja inicializado. Use `/up:progresso`.
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
- **Seguir os fios:**
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) -- 4 agentes paralelos spawned -> **committed**
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>