up-cc 0.1.6 → 0.2.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 ADDED
@@ -0,0 +1,274 @@
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
+
36
+ ## Instalacao
37
+
38
+ ```bash
39
+ npx up-cc@latest --claude --global # Claude Code
40
+ npx up-cc@latest --gemini --global # Gemini CLI
41
+ npx up-cc@latest --opencode --global # OpenCode
42
+ npx up-cc@latest --all --global # Todos
43
+ ```
44
+
45
+ Para instalar localmente no projeto (em vez de global):
46
+
47
+ ```bash
48
+ npx up-cc@latest --claude --local
49
+ ```
50
+
51
+ Desinstalar:
52
+
53
+ ```bash
54
+ npx up-cc@latest --uninstall
55
+ ```
56
+
57
+ Apos instalar, reinicie o Claude Code e digite `/up:ajuda` para ver todos os comandos.
58
+
59
+ ## Inicio Rapido
60
+
61
+ ### Novo projeto (do zero)
62
+
63
+ ```
64
+ /up:novo-projeto # Coleta contexto, cria PROJECT.md e ROADMAP.md
65
+ /up:discutir-fase 1 # Discute requisitos da fase 1
66
+ /up:planejar-fase 1 # Cria planos executaveis
67
+ /up:executar-fase 1 # Executa com commits atomicos
68
+ /up:verificar-trabalho 1 # UAT conversacional
69
+ ```
70
+
71
+ ### Projeto existente (brownfield)
72
+
73
+ ```
74
+ /up:mapear-codigo # Analisa codebase com agentes paralelos
75
+ /up:novo-projeto # Cria PROJECT.md baseado no mapeamento
76
+ /up:discutir-fase 1 # Continua normalmente
77
+ ```
78
+
79
+ ### Continuar trabalho
80
+
81
+ ```
82
+ /up:retomar # Restaura contexto da sessao anterior
83
+ /up:progresso # Status e proxima acao recomendada
84
+ ```
85
+
86
+ ### Tarefa rapida
87
+
88
+ ```
89
+ /up:rapido "Corrigir bug no login" # Executa com garantias UP
90
+ ```
91
+
92
+ ## Comandos
93
+
94
+ ### Inicializacao
95
+
96
+ | Comando | Descricao |
97
+ |---------|-----------|
98
+ | `/up:novo-projeto` | Inicializar projeto com coleta de contexto interativa |
99
+ | `/up:mapear-codigo` | Analisar codebase existente com agentes paralelos |
100
+ | `/up:retomar` | Restaurar contexto da sessao anterior |
101
+
102
+ ### Pipeline de Fase
103
+
104
+ | Comando | Descricao |
105
+ |---------|-----------|
106
+ | `/up:discutir-fase N` | Coletar contexto por questionamento estruturado |
107
+ | `/up:planejar-fase N` | Criar planos executaveis com pesquisa e self-check |
108
+ | `/up:executar-fase N` | Executar planos com paralelizacao por ondas |
109
+ | `/up:verificar-trabalho N` | Validar features via UAT conversacional |
110
+
111
+ ### Gerenciamento
112
+
113
+ | Comando | Descricao |
114
+ |---------|-----------|
115
+ | `/up:progresso` | Dashboard de status e proxima acao |
116
+ | `/up:pausar` | Criar arquivo de handoff `.continue-aqui.md` |
117
+ | `/up:adicionar-fase "desc"` | Adicionar fase ao final do roadmap |
118
+ | `/up:remover-fase N` | Remover fase futura e renumerar |
119
+ | `/up:adicionar-testes N` | Gerar testes para fase completa |
120
+
121
+ ### Utilitarios
122
+
123
+ | Comando | Descricao |
124
+ |---------|-----------|
125
+ | `/up:rapido "tarefa"` | Tarefa rapida com commits atomicos |
126
+ | `/up:depurar` | Depuracao sistematica com metodo cientifico |
127
+ | `/up:configurar` | Configurar opcoes do workflow |
128
+ | `/up:atualizar` | Verificar e instalar atualizacoes |
129
+ | `/up:saude` | Diagnosticar integridade do `.plano/` |
130
+ | `/up:ajuda` | Referencia completa de comandos |
131
+
132
+ ### Flags
133
+
134
+ ```
135
+ # planejar-fase
136
+ --pesquisar Forcar re-pesquisa mesmo com RESEARCH.md existente
137
+ --sem-pesquisa Pular pesquisa, ir direto ao planejamento
138
+ --auto Auto-detectar proxima fase nao planejada
139
+ --gaps Modo fechamento de gaps (le VERIFICATION.md)
140
+
141
+ # executar-fase
142
+ --gaps-only Executar apenas planos de fechamento de gaps
143
+ ```
144
+
145
+ ## Pipeline de Desenvolvimento
146
+
147
+ ```
148
+ ┌──────────────────────────────────────────┐
149
+ │ /up:novo-projeto │
150
+ │ Coleta contexto → PROJECT.md + ROADMAP │
151
+ └────────────────┬─────────────────────────┘
152
+
153
+ ┌────────────────▼─────────────────────────┐
154
+ │ /up:discutir-fase N │
155
+ │ Questionamento → CONTEXT.md │
156
+ └────────────────┬─────────────────────────┘
157
+
158
+ ┌────────────────▼─────────────────────────┐
159
+ │ /up:planejar-fase N │
160
+ │ Pesquisa + Planejamento → PLAN-NNN.md │
161
+ └────────────────┬─────────────────────────┘
162
+
163
+ ┌────────────────▼─────────────────────────┐
164
+ │ /up:executar-fase N │
165
+ │ Execucao paralela → Commits atomicos │
166
+ └────────────────┬─────────────────────────┘
167
+
168
+ ┌────────────────▼─────────────────────────┐
169
+ │ /up:verificar-trabalho N │
170
+ │ UAT conversacional → VERIFICATION.md │
171
+ └────────────────┬─────────────────────────┘
172
+
173
+ Gaps encontrados?
174
+ ├── Sim → /up:planejar-fase N --gaps
175
+ └── Nao → Proxima fase
176
+ ```
177
+
178
+ ## Estrutura do `.plano/`
179
+
180
+ O UP cria e mantém um diretorio `.plano/` na raiz do projeto:
181
+
182
+ ```
183
+ .plano/
184
+ ├── PROJECT.md # O que e o projeto, requisitos, decisoes
185
+ ├── ROADMAP.md # Todas as fases com status
186
+ ├── STATE.md # Posicao atual, progresso, continuidade
187
+ ├── config.json # Configuracoes do workflow
188
+ ├── fases/
189
+ │ ├── 01-autenticacao/
190
+ │ │ ├── CONTEXT.md # Contexto coletado na discussao
191
+ │ │ ├── RESEARCH.md # Pesquisa de dominio/tecnologia
192
+ │ │ ├── PLAN-001.md # Plano executavel
193
+ │ │ ├── PLAN-002.md # Outro plano (se necessario)
194
+ │ │ ├── SUMMARY-001.md # Resultado da execucao
195
+ │ │ └── VERIFICATION.md # Resultado do UAT
196
+ │ ├── 02-dashboard/
197
+ │ │ └── ...
198
+ │ └── ...
199
+ ├── rapido/
200
+ │ ├── TASK-001.md # Tarefa rapida executada
201
+ │ └── ...
202
+ └── debug/
203
+ ├── bug-login.md # Sessao de debug ativa
204
+ └── resolved/ # Sessoes resolvidas
205
+ ```
206
+
207
+ Todos esses arquivos sao texto puro (Markdown/JSON) e podem ser commitados no repositorio.
208
+
209
+ ## Agentes
210
+
211
+ O UP usa 8 agentes especializados que rodam como subprocessos:
212
+
213
+ | Agente | Funcao |
214
+ |--------|--------|
215
+ | **up-pesquisador-projeto** | Pesquisa de dominio e tecnologia para novos projetos |
216
+ | **up-roteirista** | Cria ROADMAP.md com fases e criterios de sucesso |
217
+ | **up-planejador** | Planeja fases com pesquisa inline e self-check |
218
+ | **up-executor** | Executa planos com commits atomicos |
219
+ | **up-verificador** | Verificacao goal-backward de trabalho completado |
220
+ | **up-mapeador-codigo** | Analisa codebases existentes em paralelo |
221
+ | **up-depurador** | Investigacao de bugs com metodo cientifico |
222
+ | **up-sintetizador** | Sintetiza pesquisa em documentos estruturados |
223
+
224
+ ## Hooks
225
+
226
+ Dois hooks sao instalados automaticamente:
227
+
228
+ - **up-statusline** — Barra de status abaixo do input mostrando modelo, diretorio e uso de contexto
229
+ - **up-context-monitor** — Avisa quando o contexto esta ficando cheio (35% warning, 25% critico), sugerindo `/clear` + `/up:retomar`
230
+
231
+ ## Persistencia entre Sessoes
232
+
233
+ O UP sobrevive a `/clear` e reinicializacoes do CLI:
234
+
235
+ 1. **Estado em disco** — `.plano/STATE.md` rastreia posicao, decisoes, bloqueios
236
+ 2. **Handoff** — `/up:pausar` cria `.continue-aqui.md` com contexto para retomada
237
+ 3. **Retomada** — `/up:retomar` le os arquivos de estado e restaura o contexto completo
238
+ 4. **Debug persistente** — Sessoes de debug em `.plano/debug/` sobrevivem entre conversas
239
+
240
+ ## Configuracao
241
+
242
+ ```
243
+ /up:configurar
244
+ ```
245
+
246
+ Opcoes disponiveis:
247
+
248
+ | Opcao | Default | Descricao |
249
+ |-------|---------|-----------|
250
+ | Modo | solo | `solo` (commits diretos) ou `time` (branches por fase) |
251
+ | Paralelizacao | sim | Agentes rodam em paralelo quando independentes |
252
+ | Commit Docs | sim | Commitar documentos de planejamento automaticamente |
253
+ | Auto-Advance | nao | Encadear estagios automaticamente |
254
+
255
+ ## Compatibilidade
256
+
257
+ | Runtime | Status | Formato |
258
+ |---------|--------|---------|
259
+ | Claude Code | Completo | Nativo (Markdown + YAML frontmatter) |
260
+ | Gemini CLI | Completo | Convertido (TOML commands, YAML arrays) |
261
+ | OpenCode | Completo | Convertido (object tools, hex colors) |
262
+
263
+ Requisitos: Node.js >= 16.7.0
264
+
265
+ ## Atualizacao
266
+
267
+ ```
268
+ /up:atualizar # Verifica e instala de dentro do CLI
269
+ npx up-cc@latest --claude --global # Ou via terminal
270
+ ```
271
+
272
+ ## Licenca
273
+
274
+ 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.0",
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>