up-cc 0.3.0 → 0.3.2
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 +45 -30
- package/bin/up-tools.cjs +65 -2
- package/commands/ajuda.md +15 -3
- package/commands/iniciar.md +31 -0
- package/package.json +1 -1
- package/workflows/iniciar.md +235 -0
package/README.md
CHANGED
|
@@ -63,40 +63,56 @@ Apos instalar, reinicie o Claude Code e digite `/up:ajuda` para ver todos os com
|
|
|
63
63
|
|
|
64
64
|
### 1. Inicializando um projeto
|
|
65
65
|
|
|
66
|
-
O UP
|
|
66
|
+
O UP tem duas formas de comecar, dependendo do que voce precisa.
|
|
67
67
|
|
|
68
|
-
####
|
|
68
|
+
#### Adocao leve — `/up:iniciar` (recomendado para projetos existentes)
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
/up:iniciar
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
O UP vai:
|
|
75
|
+
1. Detectar automaticamente a stack, estrutura e features do seu projeto
|
|
76
|
+
2. Criar `PROJECT.md` documentando o que existe — **sem fazer perguntas**
|
|
77
|
+
3. Criar `config.json` com valores padrao
|
|
78
|
+
4. Parar
|
|
79
|
+
|
|
80
|
+
Sem questionario, sem requisitos, sem roadmap. Voce vai construindo incrementalmente conforme precisa:
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
/up:iniciar # Registra projeto, cria PROJECT.md
|
|
84
|
+
/up:mapear-codigo # Analise profunda do codebase (opcional)
|
|
85
|
+
/up:melhorias # Descobre o que melhorar
|
|
86
|
+
/up:planejar-fase 1 # Quando tiver algo para implementar
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Ideal quando voce quer adotar o UP num projeto existente sem definir tudo de cara.
|
|
90
|
+
|
|
91
|
+
#### Pipeline completo — `/up:novo-projeto`
|
|
69
92
|
|
|
70
93
|
```
|
|
71
94
|
/up:novo-projeto
|
|
72
95
|
```
|
|
73
96
|
|
|
74
97
|
O UP vai:
|
|
75
|
-
1. Perguntar "O que voce quer construir?"
|
|
98
|
+
1. Perguntar "O que voce quer construir?" (greenfield) ou "O que voce quer fazer com esse codigo?" (brownfield)
|
|
76
99
|
2. Fazer perguntas de acompanhamento para entender o projeto
|
|
77
100
|
3. Opcionalmente pesquisar o ecossistema do dominio (stack, features, armadilhas)
|
|
78
101
|
4. Definir requisitos interativamente, agrupados por categoria
|
|
79
102
|
5. Gerar ROADMAP.md com fases, criterios de sucesso e rastreabilidade
|
|
80
103
|
6. Criar PROJECT.md, STATE.md e config.json
|
|
81
104
|
|
|
82
|
-
|
|
105
|
+
Ideal quando voce ja sabe o que quer fazer e quer o pipeline completo de cara. Funciona tanto para projetos novos (greenfield) quanto existentes (brownfield) — a deteccao e automatica.
|
|
83
106
|
|
|
84
|
-
####
|
|
107
|
+
#### Mapeamento de codebase
|
|
108
|
+
|
|
109
|
+
Ambos os caminhos se beneficiam do mapeamento profundo do codebase:
|
|
85
110
|
|
|
86
111
|
```
|
|
87
|
-
/up:mapear-codigo
|
|
88
|
-
/up:novo-projeto # Detecta brownfield automaticamente
|
|
112
|
+
/up:mapear-codigo
|
|
89
113
|
```
|
|
90
114
|
|
|
91
|
-
|
|
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/`:
|
|
115
|
+
Produz 7 documentos em `.plano/codebase/`:
|
|
100
116
|
|
|
101
117
|
| Documento | Conteudo |
|
|
102
118
|
|-----------|----------|
|
|
@@ -108,14 +124,7 @@ O `/up:mapear-codigo` produz 7 documentos em `.plano/codebase/`:
|
|
|
108
124
|
| TESTING.md | Infraestrutura de testes, cobertura |
|
|
109
125
|
| CONCERNS.md | Divida tecnica, areas frageis, seguranca |
|
|
110
126
|
|
|
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
|
|
127
|
+
Esses documentos alimentam automaticamente o restante do pipeline (discutir, planejar, executar).
|
|
119
128
|
|
|
120
129
|
### 2. O pipeline de fases
|
|
121
130
|
|
|
@@ -300,7 +309,8 @@ O UP:
|
|
|
300
309
|
|
|
301
310
|
| Comando | Descricao |
|
|
302
311
|
|---------|-----------|
|
|
303
|
-
| `/up:
|
|
312
|
+
| `/up:iniciar` | Registrar projeto existente (leve, sem questionario) |
|
|
313
|
+
| `/up:novo-projeto` | Inicializar projeto completo (questionario + requisitos + roadmap) |
|
|
304
314
|
| `/up:mapear-codigo` | Analisar codebase existente com agentes paralelos |
|
|
305
315
|
| `/up:retomar` | Restaurar contexto da sessao anterior |
|
|
306
316
|
| `/up:discutir-fase N` | Coletar contexto por questionamento estruturado |
|
|
@@ -312,6 +322,8 @@ O UP:
|
|
|
312
322
|
| `/up:adicionar-fase "desc"` | Adicionar fase ao final do roadmap |
|
|
313
323
|
| `/up:remover-fase N` | Remover fase futura e renumerar |
|
|
314
324
|
| `/up:adicionar-testes N` | Gerar testes para fase completa |
|
|
325
|
+
| `/up:melhorias` | Auditoria completa (UX, performance, modernidade) |
|
|
326
|
+
| `/up:ideias` | Sugestoes de features com pesquisa de mercado |
|
|
315
327
|
| `/up:rapido "tarefa"` | Tarefa rapida com commits atomicos |
|
|
316
328
|
| `/up:depurar` | Depuracao sistematica com metodo cientifico |
|
|
317
329
|
| `/up:configurar` | Configurar opcoes do workflow |
|
|
@@ -332,14 +344,17 @@ O UP:
|
|
|
332
344
|
--gaps-only Executar apenas planos de fechamento de gaps
|
|
333
345
|
```
|
|
334
346
|
|
|
335
|
-
###
|
|
347
|
+
### Pipelines
|
|
336
348
|
|
|
337
349
|
```
|
|
350
|
+
Leve (recomendado para projetos existentes):
|
|
351
|
+
/up:iniciar → /up:planejar-fase N → /up:executar-fase N → /up:verificar-trabalho N
|
|
352
|
+
|
|
353
|
+
Completo:
|
|
338
354
|
/up:novo-projeto → /up:discutir-fase N → /up:planejar-fase N → /up:executar-fase N → /up:verificar-trabalho N
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
Nao → Proxima fase
|
|
355
|
+
|
|
356
|
+
Ciclo de gaps:
|
|
357
|
+
/up:verificar-trabalho N → Gaps? → /up:planejar-fase N --gaps → /up:executar-fase N --gaps-only → Re-verificar
|
|
343
358
|
```
|
|
344
359
|
|
|
345
360
|
## Estrutura do `.plano/`
|
package/bin/up-tools.cjs
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* Usage: node up-tools.cjs <command> [args] [--raw] [--cwd <path>]
|
|
9
9
|
*
|
|
10
10
|
* Commands:
|
|
11
|
-
* init planejar-fase|executar-fase|novo-projeto|rapido|retomar|operacao-fase|progresso|verificar-trabalho|melhorias|ideias
|
|
11
|
+
* init planejar-fase|executar-fase|novo-projeto|rapido|retomar|operacao-fase|progresso|verificar-trabalho|melhorias|ideias|iniciar
|
|
12
12
|
* state load|get|update|advance-plan|update-progress|add-decision|record-session|record-metric|snapshot
|
|
13
13
|
* roadmap get-phase|analyze|update-plan-progress
|
|
14
14
|
* phase add|remove|find|complete|generate-from-report
|
|
@@ -206,8 +206,11 @@ function main() {
|
|
|
206
206
|
case 'ideias':
|
|
207
207
|
cmdInitIdeias(cwd, raw);
|
|
208
208
|
break;
|
|
209
|
+
case 'iniciar':
|
|
210
|
+
cmdInitIniciar(cwd, raw);
|
|
211
|
+
break;
|
|
209
212
|
default:
|
|
210
|
-
error(`Unknown init workflow: ${workflow}\nAvailable: planejar-fase, executar-fase, novo-projeto, rapido, retomar, operacao-fase, progresso, verificar-trabalho, melhorias, ideias`);
|
|
213
|
+
error(`Unknown init workflow: ${workflow}\nAvailable: planejar-fase, executar-fase, novo-projeto, rapido, retomar, operacao-fase, progresso, verificar-trabalho, melhorias, ideias, iniciar`);
|
|
211
214
|
}
|
|
212
215
|
break;
|
|
213
216
|
}
|
|
@@ -487,6 +490,66 @@ function cmdInitNovoProjeto(cwd, raw) {
|
|
|
487
490
|
output(result, raw);
|
|
488
491
|
}
|
|
489
492
|
|
|
493
|
+
function cmdInitIniciar(cwd, raw) {
|
|
494
|
+
const config = loadConfig(cwd);
|
|
495
|
+
const { execSync } = require('child_process');
|
|
496
|
+
|
|
497
|
+
let hasCode = false;
|
|
498
|
+
try {
|
|
499
|
+
const files = execSync('find . -maxdepth 3 \\( -name "*.ts" -o -name "*.js" -o -name "*.py" -o -name "*.go" -o -name "*.rs" -o -name "*.swift" -o -name "*.java" \\) 2>/dev/null | grep -v node_modules | grep -v .git | head -5', {
|
|
500
|
+
cwd,
|
|
501
|
+
encoding: 'utf-8',
|
|
502
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
503
|
+
});
|
|
504
|
+
hasCode = files.trim().length > 0;
|
|
505
|
+
} catch {}
|
|
506
|
+
|
|
507
|
+
const hasCodebaseMap = pathExistsInternal(cwd, '.plano/codebase');
|
|
508
|
+
let codebaseFiles = [];
|
|
509
|
+
if (hasCodebaseMap) {
|
|
510
|
+
try {
|
|
511
|
+
codebaseFiles = fs.readdirSync(path.join(cwd, '.plano/codebase'))
|
|
512
|
+
.filter(f => f.endsWith('.md'))
|
|
513
|
+
.map(f => `.plano/codebase/${f}`);
|
|
514
|
+
} catch {}
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
// Stack hints from package.json
|
|
518
|
+
const pkgPath = path.join(cwd, 'package.json');
|
|
519
|
+
let stackHints = {};
|
|
520
|
+
try {
|
|
521
|
+
const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
|
|
522
|
+
const allDeps = Object.assign({}, pkg.dependencies || {}, pkg.devDependencies || {});
|
|
523
|
+
stackHints = {
|
|
524
|
+
has_react: !!allDeps.react,
|
|
525
|
+
has_next: !!allDeps.next,
|
|
526
|
+
has_vue: !!allDeps.vue,
|
|
527
|
+
has_nuxt: !!allDeps.nuxt,
|
|
528
|
+
has_svelte: !!allDeps.svelte,
|
|
529
|
+
has_tailwind: !!allDeps.tailwindcss,
|
|
530
|
+
has_prisma: !!(allDeps['@prisma/client'] || allDeps.prisma),
|
|
531
|
+
has_typescript: !!(allDeps.typescript || pathExistsInternal(cwd, 'tsconfig.json')),
|
|
532
|
+
type_module: pkg.type === 'module',
|
|
533
|
+
};
|
|
534
|
+
} catch {}
|
|
535
|
+
|
|
536
|
+
const result = {
|
|
537
|
+
commit_docs: config.commit_docs,
|
|
538
|
+
project_exists: pathExistsInternal(cwd, '.plano/PROJECT.md'),
|
|
539
|
+
planning_exists: pathExistsInternal(cwd, '.plano'),
|
|
540
|
+
has_existing_code: hasCode,
|
|
541
|
+
has_codebase_map: hasCodebaseMap,
|
|
542
|
+
codebase_files: codebaseFiles,
|
|
543
|
+
has_git: pathExistsInternal(cwd, '.git'),
|
|
544
|
+
has_package_json: pathExistsInternal(cwd, 'package.json'),
|
|
545
|
+
has_readme: pathExistsInternal(cwd, 'README.md') || pathExistsInternal(cwd, 'readme.md'),
|
|
546
|
+
stack_hints: stackHints,
|
|
547
|
+
project_path: '.plano/PROJECT.md',
|
|
548
|
+
};
|
|
549
|
+
|
|
550
|
+
output(result, raw);
|
|
551
|
+
}
|
|
552
|
+
|
|
490
553
|
function cmdInitRapido(cwd, description, raw) {
|
|
491
554
|
const config = loadConfig(cwd);
|
|
492
555
|
const now = new Date();
|
package/commands/ajuda.md
CHANGED
|
@@ -27,7 +27,8 @@ Sistema de desenvolvimento orientado a fases para projetos de software.
|
|
|
27
27
|
|
|
28
28
|
| Comando | Descricao | Uso |
|
|
29
29
|
|---------|-----------|-----|
|
|
30
|
-
| `/up:
|
|
30
|
+
| `/up:iniciar` | Registrar projeto existente (leve, sem questionario) | `/up:iniciar` |
|
|
31
|
+
| `/up:novo-projeto` | Inicializar projeto completo (questionario + requisitos + roadmap) | `/up:novo-projeto` |
|
|
31
32
|
| `/up:mapear-codigo` | Analisar codebase existente com agentes paralelos | `/up:mapear-codigo` |
|
|
32
33
|
| `/up:retomar` | Restaurar contexto da sessao anterior | `/up:retomar` |
|
|
33
34
|
|
|
@@ -96,10 +97,21 @@ Sistema de desenvolvimento orientado a fases para projetos de software.
|
|
|
96
97
|
|
|
97
98
|
## Fluxos de Trabalho Comuns
|
|
98
99
|
|
|
99
|
-
### Projeto
|
|
100
|
+
### Projeto Existente — Adocao Leve (recomendado)
|
|
101
|
+
```
|
|
102
|
+
/up:iniciar # Registra projeto, cria PROJECT.md automaticamente
|
|
103
|
+
/up:mapear-codigo # Analise profunda do codebase (opcional)
|
|
104
|
+
/up:planejar-fase 1 # Quando tiver algo para implementar
|
|
105
|
+
/up:executar-fase 1
|
|
106
|
+
/up:verificar-trabalho 1
|
|
107
|
+
```
|
|
108
|
+
Dica: /up:iniciar nao faz perguntas — documenta o que existe e para.
|
|
109
|
+
Use /up:melhorias ou /up:ideias para descobrir o que fazer.
|
|
110
|
+
|
|
111
|
+
### Projeto Existente — Pipeline Completo
|
|
100
112
|
```
|
|
101
113
|
/up:mapear-codigo # Analisa codebase (stack, arquitetura, concerns)
|
|
102
|
-
/up:novo-projeto #
|
|
114
|
+
/up:novo-projeto # Questionario completo + requisitos + roadmap
|
|
103
115
|
/up:discutir-fase 1 # Discute no contexto do codigo existente
|
|
104
116
|
/up:planejar-fase 1 # Planos respeitam convencoes do codebase
|
|
105
117
|
/up:executar-fase 1
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: up:iniciar
|
|
3
|
+
description: Registrar projeto existente no UP (leve, sem questionario)
|
|
4
|
+
argument-hint: ""
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Bash
|
|
9
|
+
- Glob
|
|
10
|
+
- Grep
|
|
11
|
+
- AskUserQuestion
|
|
12
|
+
---
|
|
13
|
+
<objective>
|
|
14
|
+
Registrar projeto no UP de forma leve. Detecta o que existe, cria PROJECT.md automaticamente sem questionario, e para. Ideal para quem quer adotar UP num projeto existente sem definir roadmap/requisitos de cara.
|
|
15
|
+
|
|
16
|
+
Diferente de /up:novo-projeto que faz questionamento profundo + requisitos + roadmap, este comando apenas documenta o estado atual e configura o minimo necessario.
|
|
17
|
+
</objective>
|
|
18
|
+
|
|
19
|
+
<execution_context>
|
|
20
|
+
@~/.claude/up/workflows/iniciar.md
|
|
21
|
+
</execution_context>
|
|
22
|
+
|
|
23
|
+
<context>
|
|
24
|
+
$ARGUMENTS
|
|
25
|
+
|
|
26
|
+
Modo leve: registra projeto, documenta o que existe, e para. O usuario vai planejando fases incrementalmente depois.
|
|
27
|
+
</context>
|
|
28
|
+
|
|
29
|
+
<process>
|
|
30
|
+
Execute the iniciar workflow from @~/.claude/up/workflows/iniciar.md end-to-end.
|
|
31
|
+
</process>
|
package/package.json
CHANGED
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Registrar projeto no UP de forma leve. Sem questionario, sem requisitos, sem roadmap.
|
|
3
|
+
Detecta o que existe, gera PROJECT.md automaticamente, cria config padrao, para.
|
|
4
|
+
|
|
5
|
+
O PROJECT.md vai crescer conforme o usuario planeja fases com /up:planejar-fase e /up:discutir-fase.
|
|
6
|
+
</purpose>
|
|
7
|
+
|
|
8
|
+
<process>
|
|
9
|
+
|
|
10
|
+
## 1. Setup
|
|
11
|
+
|
|
12
|
+
**PRIMEIRO PASSO OBRIGATORIO -- Execute antes de qualquer interacao:**
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
INIT=$(node "$HOME/.claude/up/bin/up-tools.cjs" init iniciar)
|
|
16
|
+
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Parse JSON: `commit_docs`, `project_exists`, `planning_exists`, `has_existing_code`, `has_codebase_map`, `codebase_files`, `has_git`, `has_package_json`, `has_readme`, `stack_hints`.
|
|
20
|
+
|
|
21
|
+
**Se `project_exists` = true:**
|
|
22
|
+
|
|
23
|
+
Use AskUserQuestion:
|
|
24
|
+
- header: "PROJECT.md existente"
|
|
25
|
+
- question: "Ja existe um PROJECT.md. O que fazer?"
|
|
26
|
+
- options:
|
|
27
|
+
- "Sobrescrever" -- Gerar novamente a partir do codebase
|
|
28
|
+
- "Cancelar" -- Manter como esta
|
|
29
|
+
|
|
30
|
+
Se "Cancelar": Sair. Sugerir `/up:progresso`.
|
|
31
|
+
|
|
32
|
+
**Se `has_git` = false:** Inicializar git:
|
|
33
|
+
```bash
|
|
34
|
+
git init
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## 2. Coletar informacoes do projeto (AUTOMATICO, sem perguntar)
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
41
|
+
UP > REGISTRANDO PROJETO
|
|
42
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Fontes de informacao (ler em paralelo, o que existir):
|
|
46
|
+
|
|
47
|
+
**Sempre ler:**
|
|
48
|
+
```bash
|
|
49
|
+
# package.json (nome, descricao, dependencias)
|
|
50
|
+
cat package.json 2>/dev/null
|
|
51
|
+
|
|
52
|
+
# README (descricao do projeto)
|
|
53
|
+
cat README.md 2>/dev/null || cat readme.md 2>/dev/null
|
|
54
|
+
|
|
55
|
+
# CLAUDE.md do projeto (instrucoes existentes)
|
|
56
|
+
cat CLAUDE.md 2>/dev/null
|
|
57
|
+
|
|
58
|
+
# Estrutura de diretorios (top-level)
|
|
59
|
+
ls -d */ 2>/dev/null | head -20
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**Se `has_codebase_map` = true (mapeamento completo existe):**
|
|
63
|
+
```bash
|
|
64
|
+
cat .plano/codebase/STACK.md 2>/dev/null
|
|
65
|
+
cat .plano/codebase/ARCHITECTURE.md 2>/dev/null
|
|
66
|
+
cat .plano/codebase/CONCERNS.md 2>/dev/null
|
|
67
|
+
cat .plano/codebase/CONVENTIONS.md 2>/dev/null
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**Se `has_codebase_map` = false E `has_existing_code` = true (mini-scan):**
|
|
71
|
+
```bash
|
|
72
|
+
# Detectar stack pelos arquivos de config
|
|
73
|
+
ls package.json go.mod Cargo.toml requirements.txt pyproject.toml pom.xml build.gradle composer.json Gemfile mix.exs 2>/dev/null
|
|
74
|
+
|
|
75
|
+
# Detectar estrutura
|
|
76
|
+
ls -d src/ app/ lib/ cmd/ internal/ pages/ components/ public/ api/ server/ 2>/dev/null | head -15
|
|
77
|
+
|
|
78
|
+
# Detectar frameworks (package.json deps)
|
|
79
|
+
node -e "try{const p=require('./package.json');console.log(JSON.stringify({deps:Object.keys(p.dependencies||{}),devDeps:Object.keys(p.devDependencies||{})}))}catch{}" 2>/dev/null
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Sintetizar informacoes coletadas:
|
|
83
|
+
|
|
84
|
+
A partir das fontes lidas, extrair:
|
|
85
|
+
- **Nome do projeto**: de package.json name, ou nome do diretorio
|
|
86
|
+
- **Descricao**: de package.json description, ou primeiro paragrafo do README, ou inferir do codigo
|
|
87
|
+
- **Stack**: frameworks, linguagens, dependencias principais
|
|
88
|
+
- **Estrutura**: organizacao de diretorios, entry points
|
|
89
|
+
- **Contexto adicional**: do CLAUDE.md, README, ou codebase map
|
|
90
|
+
|
|
91
|
+
## 3. Gerar PROJECT.md (AUTOMATICO)
|
|
92
|
+
|
|
93
|
+
Escrever `.plano/PROJECT.md` sintetizando tudo que foi coletado:
|
|
94
|
+
|
|
95
|
+
```markdown
|
|
96
|
+
# [Nome do Projeto]
|
|
97
|
+
|
|
98
|
+
## O que e Isso
|
|
99
|
+
|
|
100
|
+
[Descricao gerada automaticamente a partir de package.json, README, e/ou analise do codigo.
|
|
101
|
+
2-3 frases descrevendo o que o produto faz e para quem.]
|
|
102
|
+
|
|
103
|
+
## Valor Central
|
|
104
|
+
|
|
105
|
+
[Inferido do codigo/README. Se nao for possivel inferir com confianca, usar:]
|
|
106
|
+
[A definir -- sera refinado conforme o projeto evolui]
|
|
107
|
+
|
|
108
|
+
## Requisitos
|
|
109
|
+
|
|
110
|
+
### Validados
|
|
111
|
+
|
|
112
|
+
<!-- Inferidos do codebase existente -->
|
|
113
|
+
|
|
114
|
+
- [x] [Feature existente 1 detectada no codigo]
|
|
115
|
+
- [x] [Feature existente 2 detectada no codigo]
|
|
116
|
+
- [x] [Feature existente 3 detectada no codigo]
|
|
117
|
+
|
|
118
|
+
### Ativos
|
|
119
|
+
|
|
120
|
+
<!-- Adicione objetivos com /up:planejar-fase ou /up:discutir-fase -->
|
|
121
|
+
|
|
122
|
+
(Nenhum ainda)
|
|
123
|
+
|
|
124
|
+
### Fora do Escopo
|
|
125
|
+
|
|
126
|
+
(A definir)
|
|
127
|
+
|
|
128
|
+
## Contexto
|
|
129
|
+
|
|
130
|
+
**Stack:** [linguagens, frameworks, dependencias principais]
|
|
131
|
+
**Estrutura:** [organizacao do projeto]
|
|
132
|
+
[Se codebase map existe:]
|
|
133
|
+
**Mapeamento detalhado:** .plano/codebase/
|
|
134
|
+
[Se README existe:]
|
|
135
|
+
**Documentacao:** README.md
|
|
136
|
+
[Se CLAUDE.md existe:]
|
|
137
|
+
**Instrucoes de desenvolvimento:** CLAUDE.md
|
|
138
|
+
|
|
139
|
+
## Restricoes
|
|
140
|
+
|
|
141
|
+
- **Stack**: [stack detectada] -- projeto existente
|
|
142
|
+
[Outras restricoes inferidas, ex: se tem TypeScript strict, se tem ESLint, etc.]
|
|
143
|
+
|
|
144
|
+
## Decisoes-Chave
|
|
145
|
+
|
|
146
|
+
| Decisao | Justificativa | Resultado |
|
|
147
|
+
|---------|---------------|-----------|
|
|
148
|
+
| Registrado via /up:iniciar | Adocao incremental do UP | -- |
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
*Ultima atualizacao: [data] apos registro inicial*
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
**IMPORTANTE:** Preencher Requisitos Validados com features REAIS detectadas no codigo. Se tem codebase map, usar ARCHITECTURE.md como fonte. Se nao, inferir das dependencias e estrutura (ex: "Sistema de autenticacao com NextAuth", "API REST com Express", "Interface com React e Tailwind").
|
|
155
|
+
|
|
156
|
+
Nao inventar features. So listar o que e evidente no codigo.
|
|
157
|
+
|
|
158
|
+
**Commit PROJECT.md:**
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
mkdir -p .plano
|
|
162
|
+
node "$HOME/.claude/up/bin/up-tools.cjs" commit "docs: registrar projeto via /up:iniciar" --files .plano/PROJECT.md
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
## 4. Criar config.json padrao
|
|
166
|
+
|
|
167
|
+
Criar `.plano/config.json` com valores padrao (sem perguntar):
|
|
168
|
+
|
|
169
|
+
```json
|
|
170
|
+
{
|
|
171
|
+
"mode": "yolo",
|
|
172
|
+
"granularity": "standard",
|
|
173
|
+
"parallelization": true,
|
|
174
|
+
"commit_docs": true
|
|
175
|
+
}
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
**Commit config.json:**
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
node "$HOME/.claude/up/bin/up-tools.cjs" commit "chore: config padrao do projeto" --files .plano/config.json
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## 5. Finalizar
|
|
185
|
+
|
|
186
|
+
```
|
|
187
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
188
|
+
UP > PROJETO REGISTRADO
|
|
189
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
190
|
+
|
|
191
|
+
**[Nome do Projeto]**
|
|
192
|
+
|
|
193
|
+
[Descricao curta -- 1 linha do "O que e Isso"]
|
|
194
|
+
|
|
195
|
+
| Artefato | Localizacao |
|
|
196
|
+
|-----------|----------------------|
|
|
197
|
+
| Projeto | `.plano/PROJECT.md` |
|
|
198
|
+
| Config | `.plano/config.json` |
|
|
199
|
+
[Se codebase map existe:]
|
|
200
|
+
| Codebase | `.plano/codebase/` |
|
|
201
|
+
|
|
202
|
+
**[N] features existentes documentadas**
|
|
203
|
+
|
|
204
|
+
───────────────────────────────────────────────────────────────
|
|
205
|
+
|
|
206
|
+
## Proximos Passos
|
|
207
|
+
|
|
208
|
+
O UP esta pronto. Use conforme precisar:
|
|
209
|
+
|
|
210
|
+
- `/up:mapear-codigo` -- Analise profunda do codebase (se ainda nao mapeou)
|
|
211
|
+
- `/up:melhorias` -- Auditoria de UX, performance, modernidade
|
|
212
|
+
- `/up:ideias` -- Sugestoes de features novas
|
|
213
|
+
- `/up:planejar-fase` -- Quando tiver algo especifico para implementar
|
|
214
|
+
- `/up:rapido` -- Tarefa rapida sem fase formal
|
|
215
|
+
|
|
216
|
+
PROJECT.md e um documento vivo -- sera atualizado conforme voce planeja e executa fases.
|
|
217
|
+
|
|
218
|
+
<sub>/clear antes do proximo comando -- janela de contexto limpa</sub>
|
|
219
|
+
|
|
220
|
+
───────────────────────────────────────────────────────────────
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
</process>
|
|
224
|
+
|
|
225
|
+
<success_criteria>
|
|
226
|
+
|
|
227
|
+
- [ ] .plano/ diretorio criado
|
|
228
|
+
- [ ] Git repo inicializado (se nao existia)
|
|
229
|
+
- [ ] Informacoes coletadas automaticamente (sem perguntas ao usuario)
|
|
230
|
+
- [ ] PROJECT.md gerado com features existentes documentadas -> **committed**
|
|
231
|
+
- [ ] config.json criado com valores padrao -> **committed**
|
|
232
|
+
- [ ] NENHUM questionario, NENHUM REQUIREMENTS.md, NENHUM ROADMAP.md
|
|
233
|
+
- [ ] Proximos passos apresentados
|
|
234
|
+
|
|
235
|
+
</success_criteria>
|