up-cc 0.1.5 → 0.1.6

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "up-cc",
3
- "version": "0.1.5",
3
+ "version": "0.1.6",
4
4
  "description": "Simplified spec-driven development for Claude Code, Gemini and OpenCode.",
5
5
  "bin": {
6
6
  "up-cc": "bin/install.js"
@@ -0,0 +1,112 @@
1
+ <purpose>
2
+ Adicionar nova fase inteira ao final do milestone atual no roadmap. Calcula automaticamente proximo numero de fase, cria diretorio de fase e atualiza estrutura do roadmap.
3
+ </purpose>
4
+
5
+ <required_reading>
6
+ Ler todos os arquivos referenciados pelo execution_context do prompt invocador antes de comecar.
7
+ </required_reading>
8
+
9
+ <process>
10
+
11
+ <step name="parse_arguments">
12
+ Parsear argumentos do comando:
13
+ - Todos os argumentos viram a descricao da fase
14
+ - Exemplo: `/up:adicionar-fase Adicionar autenticacao` → descricao = "Adicionar autenticacao"
15
+ - Exemplo: `/up:adicionar-fase Corrigir problemas criticos de performance` → descricao = "Corrigir problemas criticos de performance"
16
+
17
+ Se nenhum argumento fornecido:
18
+
19
+ ```
20
+ ERRO: Descricao da fase obrigatoria
21
+ Uso: /up:adicionar-fase <descricao>
22
+ Exemplo: /up:adicionar-fase Adicionar sistema de autenticacao
23
+ ```
24
+
25
+ Sair.
26
+ </step>
27
+
28
+ <step name="init_context">
29
+ Carregar contexto de operacao de fase:
30
+
31
+ ```bash
32
+ INIT=$(node "$HOME/.claude/up/bin/up-tools.cjs" init operacao-fase "0")
33
+ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
34
+ ```
35
+
36
+ Verificar `roadmap_exists` do JSON de init. Se false:
37
+ ```
38
+ ERRO: Nenhum roadmap encontrado (.plano/ROADMAP.md)
39
+ Execute /up:novo-projeto para inicializar.
40
+ ```
41
+ Sair.
42
+ </step>
43
+
44
+ <step name="add_phase">
45
+ **Delegar adicao da fase ao up-tools:**
46
+
47
+ ```bash
48
+ RESULT=$(node "$HOME/.claude/up/bin/up-tools.cjs" phase add "${descricao}")
49
+ ```
50
+
51
+ O CLI faz:
52
+ - Encontrar o maior numero de fase inteiro existente
53
+ - Calcular proximo numero (max + 1)
54
+ - Gerar slug da descricao
55
+ - Criar diretorio da fase (`.plano/fases/{NN}-{slug}/`)
56
+ - Inserir entrada da fase no ROADMAP.md com secoes Objetivo, Depende de e Planos
57
+
58
+ Extrair do resultado: `phase_number`, `padded`, `name`, `slug`, `directory`.
59
+ </step>
60
+
61
+ <step name="update_project_state">
62
+ Atualizar STATE.md para refletir nova fase:
63
+
64
+ 1. Ler `.plano/STATE.md`
65
+ 2. Em "## Contexto Acumulado" → "### Evolucao do Roadmap" adicionar:
66
+ ```
67
+ - Fase {N} adicionada: {descricao}
68
+ ```
69
+
70
+ Se secao "Evolucao do Roadmap" nao existe, criar.
71
+ </step>
72
+
73
+ <step name="completion">
74
+ Apresentar resumo:
75
+
76
+ ```
77
+ Fase {N} adicionada ao milestone atual:
78
+ - Descricao: {descricao}
79
+ - Diretorio: .plano/fases/{fase-num}-{slug}/
80
+ - Status: Ainda nao planejada
81
+
82
+ Roadmap atualizado: .plano/ROADMAP.md
83
+
84
+ ---
85
+
86
+ ## Proximo
87
+
88
+ **Fase {N}: {descricao}**
89
+
90
+ `/up:planejar-fase {N}`
91
+
92
+ <sub>`/clear` primeiro → janela de contexto limpa</sub>
93
+
94
+ ---
95
+
96
+ **Tambem disponivel:**
97
+ - `/up:adicionar-fase <descricao>` — adicionar outra fase
98
+ - Revisar roadmap
99
+
100
+ ---
101
+ ```
102
+ </step>
103
+
104
+ </process>
105
+
106
+ <success_criteria>
107
+ - [ ] `up-tools phase add` executado com sucesso
108
+ - [ ] Diretorio da fase criado
109
+ - [ ] Roadmap atualizado com nova entrada
110
+ - [ ] STATE.md atualizado com nota de evolucao do roadmap
111
+ - [ ] Usuario informado dos proximos passos
112
+ </success_criteria>
@@ -0,0 +1,155 @@
1
+ <purpose>
2
+ Remover fase futura nao iniciada do roadmap do projeto, deletar seu diretorio, renumerar todas as fases subsequentes para manter sequencia linear limpa e commitar a mudanca. O commit git serve como registro historico da remocao.
3
+ </purpose>
4
+
5
+ <required_reading>
6
+ Ler todos os arquivos referenciados pelo execution_context do prompt invocador antes de comecar.
7
+ </required_reading>
8
+
9
+ <process>
10
+
11
+ <step name="parse_arguments">
12
+ Parsear argumentos do comando:
13
+ - Argumento e o numero da fase a remover (inteiro ou decimal)
14
+ - Exemplo: `/up:remover-fase 17` → fase = 17
15
+ - Exemplo: `/up:remover-fase 16.1` → fase = 16.1
16
+
17
+ Se nenhum argumento fornecido:
18
+
19
+ ```
20
+ ERRO: Numero da fase obrigatorio
21
+ Uso: /up:remover-fase <numero-fase>
22
+ Exemplo: /up:remover-fase 17
23
+ ```
24
+
25
+ Sair.
26
+ </step>
27
+
28
+ <step name="init_context">
29
+ Carregar contexto de operacao de fase:
30
+
31
+ ```bash
32
+ INIT=$(node "$HOME/.claude/up/bin/up-tools.cjs" init operacao-fase "${target}")
33
+ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
34
+ ```
35
+
36
+ Extrair: `phase_found`, `phase_dir`, `phase_number`, `commit_docs`, `roadmap_exists`.
37
+
38
+ Tambem ler STATE.md e ROADMAP.md para parsear posicao atual.
39
+ </step>
40
+
41
+ <step name="validate_future_phase">
42
+ Verificar que a fase e futura (nao iniciada):
43
+
44
+ 1. Comparar fase alvo com fase atual do STATE.md
45
+ 2. Alvo deve ser > numero da fase atual
46
+
47
+ Se alvo <= fase atual:
48
+
49
+ ```
50
+ ERRO: Nao e possivel remover Fase {alvo}
51
+
52
+ Apenas fases futuras podem ser removidas:
53
+ - Fase atual: {atual}
54
+ - Fase {alvo} e atual ou concluida
55
+
56
+ Para abandonar trabalho atual, use /up:pausar.
57
+ ```
58
+
59
+ Sair.
60
+ </step>
61
+
62
+ <step name="confirm_removal">
63
+ Apresentar resumo da remocao e confirmar:
64
+
65
+ ```
66
+ Removendo Fase {alvo}: {Nome}
67
+
68
+ Isso vai:
69
+ - Deletar: .plano/fases/{alvo}-{slug}/
70
+ - Renumerar todas as fases subsequentes
71
+ - Atualizar: ROADMAP.md, STATE.md
72
+
73
+ Prosseguir? (s/n)
74
+ ```
75
+
76
+ Aguardar confirmacao.
77
+ </step>
78
+
79
+ <step name="execute_removal">
80
+ **Delegar operacao completa de remocao ao up-tools:**
81
+
82
+ ```bash
83
+ RESULT=$(node "$HOME/.claude/up/bin/up-tools.cjs" phase remove "${target}")
84
+ ```
85
+
86
+ Se a fase tem planos executados (arquivos SUMMARY.md), up-tools vai retornar erro. Usar `--force` apenas se usuario confirmar:
87
+
88
+ ```bash
89
+ RESULT=$(node "$HOME/.claude/up/bin/up-tools.cjs" phase remove "${target}" --force)
90
+ ```
91
+
92
+ O CLI faz:
93
+ - Deletar diretorio da fase
94
+ - Renumerar todos os diretorios subsequentes (em ordem reversa para evitar conflitos)
95
+ - Renomear todos os arquivos dentro dos diretorios renumerados (PLAN.md, SUMMARY.md, etc.)
96
+ - Atualizar ROADMAP.md (removendo secao, renumerando todas as referencias de fase, atualizando dependencias)
97
+ - Atualizar STATE.md (decrementando contagem de fases)
98
+
99
+ Extrair do resultado: `removed`, `directory_deleted`, `renamed_directories`, `renamed_files`, `roadmap_updated`, `state_updated`.
100
+ </step>
101
+
102
+ <step name="commit">
103
+ Preparar e commitar a remocao:
104
+
105
+ ```bash
106
+ node "$HOME/.claude/up/bin/up-tools.cjs" commit "chore: remover fase {alvo} ({nome-original-fase})" --files .plano/
107
+ ```
108
+
109
+ A mensagem de commit preserva o registro historico do que foi removido.
110
+ </step>
111
+
112
+ <step name="completion">
113
+ Apresentar resumo:
114
+
115
+ ```
116
+ Fase {alvo} ({nome-original}) removida.
117
+
118
+ Mudancas:
119
+ - Deletado: .plano/fases/{alvo}-{slug}/
120
+ - Renumerados: {N} diretorios e {M} arquivos
121
+ - Atualizado: ROADMAP.md, STATE.md
122
+ - Commitado: chore: remover fase {alvo} ({nome-original})
123
+
124
+ ---
125
+
126
+ ## Proximo
127
+
128
+ Gostaria de:
129
+ - `/up:progresso` — ver status atualizado do roadmap
130
+ - Continuar com fase atual
131
+ - Revisar roadmap
132
+
133
+ ---
134
+ ```
135
+ </step>
136
+
137
+ </process>
138
+
139
+ <anti_patterns>
140
+
141
+ - Nao remover fases concluidas (com arquivos SUMMARY.md) sem --force
142
+ - Nao remover fases atuais ou passadas
143
+ - Nao renumerar manualmente — usar `up-tools phase remove` que cuida de toda renumeracao
144
+ - Nao adicionar notas "fase removida" ao STATE.md — commit git e o registro
145
+ - Nao modificar diretorios de fases concluidas
146
+ </anti_patterns>
147
+
148
+ <success_criteria>
149
+ Remocao de fase esta completa quando:
150
+
151
+ - [ ] Fase alvo validada como futura/nao iniciada
152
+ - [ ] `up-tools phase remove` executado com sucesso
153
+ - [ ] Mudancas commitadas com mensagem descritiva
154
+ - [ ] Usuario informado das mudancas
155
+ </success_criteria>