up-cc 0.1.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/agents/up-depurador.md +357 -0
- package/agents/up-executor.md +409 -0
- package/agents/up-pesquisador-projeto.md +358 -0
- package/agents/up-planejador.md +390 -0
- package/agents/up-roteirista.md +401 -0
- package/agents/up-sintetizador.md +232 -0
- package/agents/up-verificador.md +357 -0
- package/bin/install.js +709 -0
- package/bin/lib/core.cjs +270 -0
- package/bin/up-tools.cjs +1361 -0
- package/commands/adicionar-fase.md +33 -0
- package/commands/ajuda.md +131 -0
- package/commands/discutir-fase.md +35 -0
- package/commands/executar-fase.md +40 -0
- package/commands/novo-projeto.md +39 -0
- package/commands/pausar.md +33 -0
- package/commands/planejar-fase.md +43 -0
- package/commands/progresso.md +33 -0
- package/commands/rapido.md +40 -0
- package/commands/remover-fase.md +34 -0
- package/commands/retomar.md +35 -0
- package/commands/verificar-trabalho.md +35 -0
- package/package.json +32 -0
- package/references/checkpoints.md +358 -0
- package/references/git-integration.md +208 -0
- package/references/questioning.md +156 -0
- package/references/ui-brand.md +124 -0
- package/templates/config.json +6 -0
- package/templates/continue-here.md +78 -0
- package/templates/project.md +184 -0
- package/templates/requirements.md +129 -0
- package/templates/roadmap.md +131 -0
- package/templates/state.md +130 -0
- package/templates/summary.md +174 -0
- package/workflows/discutir-fase.md +324 -0
- package/workflows/executar-fase.md +277 -0
- package/workflows/executar-plano.md +192 -0
- package/workflows/novo-projeto.md +561 -0
- package/workflows/pausar.md +111 -0
- package/workflows/planejar-fase.md +208 -0
- package/workflows/progresso.md +226 -0
- package/workflows/rapido.md +209 -0
- package/workflows/retomar.md +231 -0
- package/workflows/verificar-trabalho.md +261 -0
|
@@ -0,0 +1,561 @@
|
|
|
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.
|
|
3
|
+
</purpose>
|
|
4
|
+
|
|
5
|
+
<process>
|
|
6
|
+
|
|
7
|
+
## 1. Setup
|
|
8
|
+
|
|
9
|
+
**PRIMEIRO PASSO OBRIGATORIO -- Execute antes de qualquer interacao:**
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
INIT=$(node "$HOME/.claude/up/bin/up-tools.cjs" init new-project)
|
|
13
|
+
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Parse JSON: `commit_docs`, `project_exists`, `planning_exists`, `has_existing_code`, `has_git`, `project_path`.
|
|
17
|
+
|
|
18
|
+
**Se `project_exists` = true:** Erro -- projeto ja inicializado. Use `/up:progresso`.
|
|
19
|
+
|
|
20
|
+
**Se `has_git` = false:** Inicializar git:
|
|
21
|
+
```bash
|
|
22
|
+
git init
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## 2. Questionamento Profundo
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
29
|
+
UP > QUESTIONAMENTO
|
|
30
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
**Abrir a conversa:**
|
|
34
|
+
|
|
35
|
+
Pergunte inline (freeform, NAO AskUserQuestion):
|
|
36
|
+
|
|
37
|
+
"O que voce quer construir?"
|
|
38
|
+
|
|
39
|
+
Espere a resposta. Isso da o contexto para perguntas inteligentes.
|
|
40
|
+
|
|
41
|
+
**Seguir os fios:**
|
|
42
|
+
|
|
43
|
+
Com base na resposta, faca perguntas de acompanhamento que aprofundem. Use AskUserQuestion com opcoes que investiguem o que mencionaram -- interpretacoes, esclarecimentos, exemplos concretos.
|
|
44
|
+
|
|
45
|
+
Continue seguindo fios. Cada resposta abre novos fios para explorar. Pergunte sobre:
|
|
46
|
+
- O que os empolgou
|
|
47
|
+
- Qual problema gerou isso
|
|
48
|
+
- O que significam termos vagos
|
|
49
|
+
- Como seria na pratica
|
|
50
|
+
- O que ja esta decidido
|
|
51
|
+
|
|
52
|
+
Consulte `questioning.md` para tecnicas:
|
|
53
|
+
- Desafie vaguidao
|
|
54
|
+
- Torne o abstrato concreto
|
|
55
|
+
- Exponha suposicoes
|
|
56
|
+
- Encontre bordas
|
|
57
|
+
- Revele motivacao
|
|
58
|
+
|
|
59
|
+
**Portao de decisao:**
|
|
60
|
+
|
|
61
|
+
Quando puder escrever um PROJECT.md claro, use AskUserQuestion:
|
|
62
|
+
|
|
63
|
+
- header: "Pronto?"
|
|
64
|
+
- question: "Acho que entendi o que voce quer. Pronto para criar o PROJECT.md?"
|
|
65
|
+
- options:
|
|
66
|
+
- "Criar PROJECT.md" -- Vamos em frente
|
|
67
|
+
- "Continuar explorando" -- Quero compartilhar mais / me pergunte mais
|
|
68
|
+
|
|
69
|
+
Se "Continuar explorando" -- pergunte o que querem adicionar, ou identifique lacunas e investigue naturalmente.
|
|
70
|
+
|
|
71
|
+
Loop ate "Criar PROJECT.md" selecionado.
|
|
72
|
+
|
|
73
|
+
## 3. Escrever PROJECT.md
|
|
74
|
+
|
|
75
|
+
Sintetize todo o contexto em `.plano/PROJECT.md` usando o template de `templates/project.md`.
|
|
76
|
+
|
|
77
|
+
Inicialize requisitos como hipoteses:
|
|
78
|
+
|
|
79
|
+
```markdown
|
|
80
|
+
## Requisitos
|
|
81
|
+
|
|
82
|
+
### Validados
|
|
83
|
+
|
|
84
|
+
(Nenhum ainda -- lance para validar)
|
|
85
|
+
|
|
86
|
+
### Ativos
|
|
87
|
+
|
|
88
|
+
- [ ] [Requisito 1]
|
|
89
|
+
- [ ] [Requisito 2]
|
|
90
|
+
- [ ] [Requisito 3]
|
|
91
|
+
|
|
92
|
+
### Fora do Escopo
|
|
93
|
+
|
|
94
|
+
- [Exclusao 1] -- [por que]
|
|
95
|
+
- [Exclusao 2] -- [por que]
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
**Decisoes-Chave:**
|
|
99
|
+
|
|
100
|
+
Inicialize com decisoes tomadas durante questionamento:
|
|
101
|
+
|
|
102
|
+
```markdown
|
|
103
|
+
## Decisoes-Chave
|
|
104
|
+
|
|
105
|
+
| Decisao | Justificativa | Resultado |
|
|
106
|
+
|---------|---------------|-----------|
|
|
107
|
+
| [Escolha do questionamento] | [Por que] | -- Pendente |
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
**Rodape de ultima atualizacao:**
|
|
111
|
+
|
|
112
|
+
```markdown
|
|
113
|
+
---
|
|
114
|
+
*Ultima atualizacao: [data] apos inicializacao*
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Nao comprima. Capture tudo que foi reunido.
|
|
118
|
+
|
|
119
|
+
**Commit PROJECT.md:**
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
mkdir -p .plano
|
|
123
|
+
node "$HOME/.claude/up/bin/up-tools.cjs" commit "docs: inicializar projeto" --files .plano/PROJECT.md
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## 4. Preferencias de Workflow
|
|
127
|
+
|
|
128
|
+
**Round 1 -- Configuracoes principais (3 perguntas):**
|
|
129
|
+
|
|
130
|
+
```
|
|
131
|
+
questions: [
|
|
132
|
+
{
|
|
133
|
+
header: "Modo",
|
|
134
|
+
question: "Como voce quer trabalhar?",
|
|
135
|
+
multiSelect: false,
|
|
136
|
+
options: [
|
|
137
|
+
{ label: "YOLO (Recomendado)", description: "Auto-aprovar, apenas executar" },
|
|
138
|
+
{ label: "Interativo", description: "Confirmar a cada passo" }
|
|
139
|
+
]
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
header: "Granularidade",
|
|
143
|
+
question: "Quao finamente o escopo deve ser dividido em fases?",
|
|
144
|
+
multiSelect: false,
|
|
145
|
+
options: [
|
|
146
|
+
{ label: "Grosso", description: "Menos fases, mais amplas (3-5 fases, 1-3 planos cada)" },
|
|
147
|
+
{ label: "Padrao", description: "Tamanho de fase equilibrado (5-8 fases, 3-5 planos cada)" },
|
|
148
|
+
{ label: "Fino", description: "Muitas fases focadas (8-12 fases, 5-10 planos cada)" }
|
|
149
|
+
]
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
header: "Execucao",
|
|
153
|
+
question: "Executar planos em paralelo?",
|
|
154
|
+
multiSelect: false,
|
|
155
|
+
options: [
|
|
156
|
+
{ label: "Paralelo (Recomendado)", description: "Planos independentes rodam simultaneamente" },
|
|
157
|
+
{ label: "Sequencial", description: "Um plano por vez" }
|
|
158
|
+
]
|
|
159
|
+
}
|
|
160
|
+
]
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
Criar `.plano/config.json`:
|
|
164
|
+
|
|
165
|
+
```json
|
|
166
|
+
{
|
|
167
|
+
"mode": "yolo|interactive",
|
|
168
|
+
"granularity": "coarse|standard|fine",
|
|
169
|
+
"parallelization": true|false,
|
|
170
|
+
"commit_docs": true
|
|
171
|
+
}
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**Commit config.json:**
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
node "$HOME/.claude/up/bin/up-tools.cjs" commit "chore: adicionar config do projeto" --files .plano/config.json
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## 5. Decisao de Pesquisa
|
|
181
|
+
|
|
182
|
+
Use AskUserQuestion:
|
|
183
|
+
- header: "Pesquisa"
|
|
184
|
+
- question: "Pesquisar o ecossistema do dominio antes de definir requisitos?"
|
|
185
|
+
- options:
|
|
186
|
+
- "Pesquisar primeiro (Recomendado)" -- Descobrir stacks padrao, features esperadas, padroes de arquitetura
|
|
187
|
+
- "Pular pesquisa" -- Conheco bem esse dominio, ir direto para requisitos
|
|
188
|
+
|
|
189
|
+
**Se "Pesquisar primeiro":**
|
|
190
|
+
|
|
191
|
+
```
|
|
192
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
193
|
+
UP > PESQUISANDO
|
|
194
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
195
|
+
|
|
196
|
+
Pesquisando ecossistema de [dominio]...
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
Criar diretorio de pesquisa:
|
|
200
|
+
```bash
|
|
201
|
+
mkdir -p .plano/pesquisa
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
Exibir indicador de spawn:
|
|
205
|
+
```
|
|
206
|
+
Spawning 4 pesquisadores em paralelo...
|
|
207
|
+
-> Pesquisa de Stack
|
|
208
|
+
-> Pesquisa de Features
|
|
209
|
+
-> Pesquisa de Arquitetura
|
|
210
|
+
-> Pesquisa de Armadilhas
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
Spawn 4 agentes up-pesquisador-projeto em paralelo:
|
|
214
|
+
|
|
215
|
+
```
|
|
216
|
+
Task(prompt="<research_type>
|
|
217
|
+
Pesquisa de Projeto -- Dimensao Stack para [dominio].
|
|
218
|
+
</research_type>
|
|
219
|
+
|
|
220
|
+
<question>
|
|
221
|
+
Qual e a stack padrao de 2025 para [dominio]?
|
|
222
|
+
</question>
|
|
223
|
+
|
|
224
|
+
<files_to_read>
|
|
225
|
+
- {project_path} (Contexto e objetivos do projeto)
|
|
226
|
+
</files_to_read>
|
|
227
|
+
|
|
228
|
+
<output>
|
|
229
|
+
Write to: .plano/pesquisa/STACK.md
|
|
230
|
+
</output>
|
|
231
|
+
", subagent_type="up-pesquisador-projeto", description="Pesquisa de Stack")
|
|
232
|
+
|
|
233
|
+
Task(prompt="<research_type>
|
|
234
|
+
Pesquisa de Projeto -- Dimensao Features para [dominio].
|
|
235
|
+
</research_type>
|
|
236
|
+
|
|
237
|
+
<question>
|
|
238
|
+
Quais features produtos de [dominio] tem? O que e obrigatorio vs diferenciador?
|
|
239
|
+
</question>
|
|
240
|
+
|
|
241
|
+
<files_to_read>
|
|
242
|
+
- {project_path} (Contexto do projeto)
|
|
243
|
+
</files_to_read>
|
|
244
|
+
|
|
245
|
+
<output>
|
|
246
|
+
Write to: .plano/pesquisa/FEATURES.md
|
|
247
|
+
</output>
|
|
248
|
+
", subagent_type="up-pesquisador-projeto", description="Pesquisa de Features")
|
|
249
|
+
|
|
250
|
+
Task(prompt="<research_type>
|
|
251
|
+
Pesquisa de Projeto -- Dimensao Arquitetura para [dominio].
|
|
252
|
+
</research_type>
|
|
253
|
+
|
|
254
|
+
<question>
|
|
255
|
+
Como sistemas de [dominio] sao tipicamente estruturados? Quais os componentes principais?
|
|
256
|
+
</question>
|
|
257
|
+
|
|
258
|
+
<files_to_read>
|
|
259
|
+
- {project_path} (Contexto do projeto)
|
|
260
|
+
</files_to_read>
|
|
261
|
+
|
|
262
|
+
<output>
|
|
263
|
+
Write to: .plano/pesquisa/ARCHITECTURE.md
|
|
264
|
+
</output>
|
|
265
|
+
", subagent_type="up-pesquisador-projeto", description="Pesquisa de Arquitetura")
|
|
266
|
+
|
|
267
|
+
Task(prompt="<research_type>
|
|
268
|
+
Pesquisa de Projeto -- Dimensao Armadilhas para [dominio].
|
|
269
|
+
</research_type>
|
|
270
|
+
|
|
271
|
+
<question>
|
|
272
|
+
O que projetos de [dominio] comumente erram? Erros criticos?
|
|
273
|
+
</question>
|
|
274
|
+
|
|
275
|
+
<files_to_read>
|
|
276
|
+
- {project_path} (Contexto do projeto)
|
|
277
|
+
</files_to_read>
|
|
278
|
+
|
|
279
|
+
<output>
|
|
280
|
+
Write to: .plano/pesquisa/PITFALLS.md
|
|
281
|
+
</output>
|
|
282
|
+
", subagent_type="up-pesquisador-projeto", description="Pesquisa de Armadilhas")
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
Apos os 4 agentes completarem, spawn sintetizador para criar SUMMARY.md:
|
|
286
|
+
|
|
287
|
+
```
|
|
288
|
+
Task(prompt="
|
|
289
|
+
<task>
|
|
290
|
+
Sintetizar outputs de pesquisa em SUMMARY.md.
|
|
291
|
+
</task>
|
|
292
|
+
|
|
293
|
+
<files_to_read>
|
|
294
|
+
- .plano/pesquisa/STACK.md
|
|
295
|
+
- .plano/pesquisa/FEATURES.md
|
|
296
|
+
- .plano/pesquisa/ARCHITECTURE.md
|
|
297
|
+
- .plano/pesquisa/PITFALLS.md
|
|
298
|
+
</files_to_read>
|
|
299
|
+
|
|
300
|
+
<output>
|
|
301
|
+
Write to: .plano/pesquisa/SUMMARY.md
|
|
302
|
+
Commit apos escrever.
|
|
303
|
+
</output>
|
|
304
|
+
", subagent_type="up-sintetizador", description="Sintetizar pesquisa")
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
Exibir banner de pesquisa completa e achados-chave:
|
|
308
|
+
```
|
|
309
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
310
|
+
UP > PESQUISA COMPLETA
|
|
311
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
312
|
+
|
|
313
|
+
## Achados-Chave
|
|
314
|
+
|
|
315
|
+
**Stack:** [de SUMMARY.md]
|
|
316
|
+
**Obrigatorio:** [de SUMMARY.md]
|
|
317
|
+
**Cuidado com:** [de SUMMARY.md]
|
|
318
|
+
|
|
319
|
+
Arquivos: `.plano/pesquisa/`
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
**Se "Pular pesquisa":** Continue para Passo 6.
|
|
323
|
+
|
|
324
|
+
## 6. Definir Requisitos
|
|
325
|
+
|
|
326
|
+
```
|
|
327
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
328
|
+
UP > DEFININDO REQUISITOS
|
|
329
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
**Carregar contexto:**
|
|
333
|
+
|
|
334
|
+
Ler PROJECT.md e extrair:
|
|
335
|
+
- Valor central (a UNICA coisa que deve funcionar)
|
|
336
|
+
- Restricoes declaradas (orcamento, timeline, limitacoes tecnicas)
|
|
337
|
+
- Quaisquer fronteiras de escopo explicitas
|
|
338
|
+
|
|
339
|
+
**Se pesquisa existe:** Ler pesquisa/FEATURES.md e extrair categorias de features.
|
|
340
|
+
|
|
341
|
+
**Apresentar features por categoria:**
|
|
342
|
+
|
|
343
|
+
```
|
|
344
|
+
Aqui estao as features para [dominio]:
|
|
345
|
+
|
|
346
|
+
## Autenticacao
|
|
347
|
+
**Obrigatorio:**
|
|
348
|
+
- Cadastro com email/senha
|
|
349
|
+
- Verificacao de email
|
|
350
|
+
- Reset de senha
|
|
351
|
+
|
|
352
|
+
**Diferenciadores:**
|
|
353
|
+
- Login com magic link
|
|
354
|
+
- OAuth (Google, GitHub)
|
|
355
|
+
|
|
356
|
+
---
|
|
357
|
+
|
|
358
|
+
## [Proxima Categoria]
|
|
359
|
+
...
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
**Se nao ha pesquisa:** Reunir requisitos por conversa.
|
|
363
|
+
|
|
364
|
+
Pergunte: "Quais sao as principais coisas que usuarios precisam fazer?"
|
|
365
|
+
|
|
366
|
+
**Escopar cada categoria:**
|
|
367
|
+
|
|
368
|
+
Para cada categoria, use AskUserQuestion:
|
|
369
|
+
|
|
370
|
+
- header: "[Categoria]" (max 12 chars)
|
|
371
|
+
- question: "Quais features de [categoria] estao no v1?"
|
|
372
|
+
- multiSelect: true
|
|
373
|
+
- options:
|
|
374
|
+
- "[Feature 1]" -- [descricao breve]
|
|
375
|
+
- "[Feature 2]" -- [descricao breve]
|
|
376
|
+
- "Nenhuma para v1" -- Adiar categoria inteira
|
|
377
|
+
|
|
378
|
+
**Gerar REQUIREMENTS.md:**
|
|
379
|
+
|
|
380
|
+
Criar `.plano/REQUIREMENTS.md` com:
|
|
381
|
+
- Requisitos v1 agrupados por categoria (checkboxes, REQ-IDs)
|
|
382
|
+
- Requisitos v2 (adiados)
|
|
383
|
+
- Fora do Escopo (exclusoes explicitas com raciocinio)
|
|
384
|
+
|
|
385
|
+
**Formato REQ-ID:** `[CATEGORIA]-[NUMERO]` (AUTH-01, CONTENT-02)
|
|
386
|
+
|
|
387
|
+
**Apresentar lista completa de requisitos:**
|
|
388
|
+
|
|
389
|
+
Mostrar cada requisito para confirmacao do usuario.
|
|
390
|
+
|
|
391
|
+
Se "ajustar": Retornar ao escopo.
|
|
392
|
+
|
|
393
|
+
**Commit requisitos:**
|
|
394
|
+
|
|
395
|
+
```bash
|
|
396
|
+
node "$HOME/.claude/up/bin/up-tools.cjs" commit "docs: definir requisitos v1" --files .plano/REQUIREMENTS.md
|
|
397
|
+
```
|
|
398
|
+
|
|
399
|
+
## 7. Criar Roteiro
|
|
400
|
+
|
|
401
|
+
```
|
|
402
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
403
|
+
UP > CRIANDO ROTEIRO
|
|
404
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
405
|
+
|
|
406
|
+
Spawning roteirista...
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
Spawn agente up-roteirista:
|
|
410
|
+
|
|
411
|
+
```
|
|
412
|
+
Task(prompt="
|
|
413
|
+
<planning_context>
|
|
414
|
+
|
|
415
|
+
<files_to_read>
|
|
416
|
+
- .plano/PROJECT.md (Contexto do projeto)
|
|
417
|
+
- .plano/REQUIREMENTS.md (Requisitos v1)
|
|
418
|
+
- .plano/pesquisa/SUMMARY.md (Achados de pesquisa - se existir)
|
|
419
|
+
- .plano/config.json (Configuracoes de granularidade e modo)
|
|
420
|
+
</files_to_read>
|
|
421
|
+
|
|
422
|
+
</planning_context>
|
|
423
|
+
|
|
424
|
+
<instructions>
|
|
425
|
+
Criar roteiro:
|
|
426
|
+
1. Derivar fases dos requisitos (nao impor estrutura)
|
|
427
|
+
2. Mapear cada requisito v1 a exatamente uma fase
|
|
428
|
+
3. Derivar 2-5 criterios de sucesso por fase (comportamentos observaveis do usuario)
|
|
429
|
+
4. Validar 100% de cobertura
|
|
430
|
+
5. Escrever arquivos imediatamente (ROADMAP.md, STATE.md, atualizar REQUIREMENTS.md rastreabilidade)
|
|
431
|
+
6. Retornar ROADMAP CREATED com resumo
|
|
432
|
+
|
|
433
|
+
Escreva arquivos primeiro, depois retorne.
|
|
434
|
+
</instructions>
|
|
435
|
+
", subagent_type="up-roteirista", description="Criar roteiro")
|
|
436
|
+
```
|
|
437
|
+
|
|
438
|
+
**Tratar retorno do roteirista:**
|
|
439
|
+
|
|
440
|
+
**Se `## ROADMAP BLOCKED`:**
|
|
441
|
+
- Apresentar informacao do bloqueio
|
|
442
|
+
- Trabalhar com usuario para resolver
|
|
443
|
+
- Re-spawn quando resolvido
|
|
444
|
+
|
|
445
|
+
**Se `## ROADMAP CREATED`:**
|
|
446
|
+
|
|
447
|
+
Ler ROADMAP.md criado e apresentar inline:
|
|
448
|
+
|
|
449
|
+
```
|
|
450
|
+
---
|
|
451
|
+
|
|
452
|
+
## Roteiro Proposto
|
|
453
|
+
|
|
454
|
+
**[N] fases** | **[X] requisitos mapeados** | Todos requisitos v1 cobertos
|
|
455
|
+
|
|
456
|
+
| # | Fase | Objetivo | Requisitos | Criterios |
|
|
457
|
+
|---|------|----------|------------|-----------|
|
|
458
|
+
| 1 | [Nome] | [Objetivo] | [REQ-IDs] | [contagem] |
|
|
459
|
+
| 2 | [Nome] | [Objetivo] | [REQ-IDs] | [contagem] |
|
|
460
|
+
```
|
|
461
|
+
|
|
462
|
+
**Pedir aprovacao antes de commitar:**
|
|
463
|
+
|
|
464
|
+
Use AskUserQuestion:
|
|
465
|
+
- header: "Roteiro"
|
|
466
|
+
- question: "Essa estrutura de roteiro funciona para voce?"
|
|
467
|
+
- options:
|
|
468
|
+
- "Aprovar" -- Commitar e continuar
|
|
469
|
+
- "Ajustar fases" -- Me diga o que mudar
|
|
470
|
+
- "Revisar arquivo completo" -- Mostrar ROADMAP.md bruto
|
|
471
|
+
|
|
472
|
+
**Se "Aprovar":** Continuar para commit.
|
|
473
|
+
|
|
474
|
+
**Se "Ajustar fases":**
|
|
475
|
+
- Pegar notas de ajuste do usuario
|
|
476
|
+
- Re-spawn roteirista com contexto de revisao
|
|
477
|
+
- Loop ate usuario aprovar
|
|
478
|
+
|
|
479
|
+
**Commit roteiro (apos aprovacao):**
|
|
480
|
+
|
|
481
|
+
```bash
|
|
482
|
+
node "$HOME/.claude/up/bin/up-tools.cjs" commit "docs: criar roteiro ([N] fases)" --files .plano/ROADMAP.md .plano/STATE.md .plano/REQUIREMENTS.md
|
|
483
|
+
```
|
|
484
|
+
|
|
485
|
+
## 8. Finalizado
|
|
486
|
+
|
|
487
|
+
```
|
|
488
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
489
|
+
UP > PROJETO INICIALIZADO
|
|
490
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
491
|
+
|
|
492
|
+
**[Nome do Projeto]**
|
|
493
|
+
|
|
494
|
+
| Artefato | Localizacao |
|
|
495
|
+
|----------------|---------------------------|
|
|
496
|
+
| Projeto | `.plano/PROJECT.md` |
|
|
497
|
+
| Config | `.plano/config.json` |
|
|
498
|
+
| Pesquisa | `.plano/pesquisa/` |
|
|
499
|
+
| Requisitos | `.plano/REQUIREMENTS.md` |
|
|
500
|
+
| Roteiro | `.plano/ROADMAP.md` |
|
|
501
|
+
|
|
502
|
+
**[N] fases** | **[X] requisitos** | Pronto para construir
|
|
503
|
+
|
|
504
|
+
───────────────────────────────────────────────────────────────
|
|
505
|
+
|
|
506
|
+
## Proximo
|
|
507
|
+
|
|
508
|
+
**Fase 1: [Nome da Fase]** -- [Objetivo do ROADMAP.md]
|
|
509
|
+
|
|
510
|
+
/up:discutir-fase 1 -- reunir contexto e esclarecer abordagem
|
|
511
|
+
|
|
512
|
+
<sub>/clear primeiro -> janela de contexto limpa</sub>
|
|
513
|
+
|
|
514
|
+
---
|
|
515
|
+
|
|
516
|
+
**Tambem disponivel:**
|
|
517
|
+
- /up:planejar-fase 1 -- pular discussao, planejar diretamente
|
|
518
|
+
|
|
519
|
+
───────────────────────────────────────────────────────────────
|
|
520
|
+
```
|
|
521
|
+
|
|
522
|
+
</process>
|
|
523
|
+
|
|
524
|
+
<output>
|
|
525
|
+
|
|
526
|
+
- `.plano/PROJECT.md`
|
|
527
|
+
- `.plano/config.json`
|
|
528
|
+
- `.plano/pesquisa/` (se pesquisa selecionada)
|
|
529
|
+
- `STACK.md`
|
|
530
|
+
- `FEATURES.md`
|
|
531
|
+
- `ARCHITECTURE.md`
|
|
532
|
+
- `PITFALLS.md`
|
|
533
|
+
- `SUMMARY.md`
|
|
534
|
+
- `.plano/REQUIREMENTS.md`
|
|
535
|
+
- `.plano/ROADMAP.md`
|
|
536
|
+
- `.plano/STATE.md`
|
|
537
|
+
|
|
538
|
+
</output>
|
|
539
|
+
|
|
540
|
+
<success_criteria>
|
|
541
|
+
|
|
542
|
+
- [ ] .plano/ diretorio criado
|
|
543
|
+
- [ ] Git repo inicializado
|
|
544
|
+
- [ ] Questionamento profundo completo (fios seguidos, nao apressado)
|
|
545
|
+
- [ ] PROJECT.md captura contexto completo -> **committed**
|
|
546
|
+
- [ ] config.json tem modo, granularidade, paralelizacao -> **committed**
|
|
547
|
+
- [ ] Pesquisa completa (se selecionada) -- 4 agentes paralelos spawned -> **committed**
|
|
548
|
+
- [ ] Requisitos reunidos (de pesquisa ou conversa)
|
|
549
|
+
- [ ] Usuario escopo cada categoria (v1/v2/fora do escopo)
|
|
550
|
+
- [ ] REQUIREMENTS.md criado com REQ-IDs -> **committed**
|
|
551
|
+
- [ ] up-roteirista spawned com contexto
|
|
552
|
+
- [ ] Arquivos do roteiro escritos imediatamente
|
|
553
|
+
- [ ] Feedback do usuario incorporado (se houver)
|
|
554
|
+
- [ ] ROADMAP.md criado com fases, mapeamentos de requisitos, criterios de sucesso
|
|
555
|
+
- [ ] STATE.md inicializado
|
|
556
|
+
- [ ] REQUIREMENTS.md rastreabilidade atualizada
|
|
557
|
+
- [ ] Usuario sabe que proximo passo e `/up:discutir-fase 1`
|
|
558
|
+
|
|
559
|
+
**Commits atomicos:** Cada etapa commita seus artefatos imediatamente.
|
|
560
|
+
|
|
561
|
+
</success_criteria>
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Criar arquivo `.continue-aqui.md` para preservar estado completo do trabalho entre sessoes. Permite retomada seamless com restauracao completa de contexto.
|
|
3
|
+
</purpose>
|
|
4
|
+
|
|
5
|
+
<process>
|
|
6
|
+
|
|
7
|
+
<step name="detect">
|
|
8
|
+
Encontrar diretorio da fase atual dos arquivos mais recentemente modificados:
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
ls -lt .plano/fases/*/PLAN.md 2>/dev/null | head -1 | grep -oP 'fases/\K[^/]+'
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Se nenhuma fase ativa detectada, perguntar ao usuario em qual fase esta pausando trabalho.
|
|
15
|
+
</step>
|
|
16
|
+
|
|
17
|
+
<step name="gather">
|
|
18
|
+
**Coletar estado completo para handoff:**
|
|
19
|
+
|
|
20
|
+
1. **Posicao atual**: Qual fase, qual plano, qual tarefa
|
|
21
|
+
2. **Trabalho completo**: O que foi feito nesta sessao
|
|
22
|
+
3. **Trabalho restante**: O que falta no plano/fase atual
|
|
23
|
+
4. **Decisoes tomadas**: Decisoes-chave e justificativa
|
|
24
|
+
5. **Bloqueios/problemas**: Qualquer coisa travada
|
|
25
|
+
6. **Contexto mental**: A abordagem, proximos passos, "vibe"
|
|
26
|
+
7. **Arquivos modificados**: O que mudou mas nao foi committed
|
|
27
|
+
|
|
28
|
+
Perguntar ao usuario por esclarecimentos se necessario via perguntas conversacionais.
|
|
29
|
+
</step>
|
|
30
|
+
|
|
31
|
+
<step name="write">
|
|
32
|
+
**Escrever handoff em `.plano/fases/XX-nome/.continue-aqui.md`:**
|
|
33
|
+
|
|
34
|
+
```markdown
|
|
35
|
+
---
|
|
36
|
+
phase: XX-nome
|
|
37
|
+
task: 3
|
|
38
|
+
total_tasks: 7
|
|
39
|
+
status: in_progress
|
|
40
|
+
last_updated: [timestamp]
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
<current_state>
|
|
44
|
+
[Onde exatamente estamos? Contexto imediato]
|
|
45
|
+
</current_state>
|
|
46
|
+
|
|
47
|
+
<completed_work>
|
|
48
|
+
|
|
49
|
+
- Tarefa 1: [nome] - Feita
|
|
50
|
+
- Tarefa 2: [nome] - Feita
|
|
51
|
+
- Tarefa 3: [nome] - Em progresso, [o que esta feito]
|
|
52
|
+
</completed_work>
|
|
53
|
+
|
|
54
|
+
<remaining_work>
|
|
55
|
+
|
|
56
|
+
- Tarefa 3: [o que falta]
|
|
57
|
+
- Tarefa 4: Nao iniciada
|
|
58
|
+
- Tarefa 5: Nao iniciada
|
|
59
|
+
</remaining_work>
|
|
60
|
+
|
|
61
|
+
<decisions_made>
|
|
62
|
+
|
|
63
|
+
- Decidiu usar [X] porque [motivo]
|
|
64
|
+
- Escolheu [abordagem] em vez de [alternativa] porque [motivo]
|
|
65
|
+
</decisions_made>
|
|
66
|
+
|
|
67
|
+
<blockers>
|
|
68
|
+
- [Bloqueio 1]: [status/contorno]
|
|
69
|
+
</blockers>
|
|
70
|
+
|
|
71
|
+
<context>
|
|
72
|
+
[Estado mental, o que estava pensando, o plano]
|
|
73
|
+
</context>
|
|
74
|
+
|
|
75
|
+
<next_action>
|
|
76
|
+
Comecar com: [acao especifica ao retomar]
|
|
77
|
+
</next_action>
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Seja especifico o suficiente para um Claude limpo entender imediatamente.
|
|
81
|
+
</step>
|
|
82
|
+
|
|
83
|
+
<step name="commit">
|
|
84
|
+
```bash
|
|
85
|
+
node "$HOME/.claude/up/bin/up-tools.cjs" commit "wip: [nome-fase] pausado na tarefa [X]/[Y]" --files .plano/fases/*/.continue-aqui.md
|
|
86
|
+
```
|
|
87
|
+
</step>
|
|
88
|
+
|
|
89
|
+
<step name="confirm">
|
|
90
|
+
```
|
|
91
|
+
Handoff criado: .plano/fases/[XX-nome]/.continue-aqui.md
|
|
92
|
+
|
|
93
|
+
Estado atual:
|
|
94
|
+
|
|
95
|
+
- Fase: [XX-nome]
|
|
96
|
+
- Tarefa: [X] de [Y]
|
|
97
|
+
- Status: [em_progresso/bloqueado]
|
|
98
|
+
- Committed como WIP
|
|
99
|
+
|
|
100
|
+
Para retomar: /up:retomar
|
|
101
|
+
```
|
|
102
|
+
</step>
|
|
103
|
+
|
|
104
|
+
</process>
|
|
105
|
+
|
|
106
|
+
<success_criteria>
|
|
107
|
+
- [ ] .continue-aqui.md criado no diretorio correto da fase
|
|
108
|
+
- [ ] Todas secoes preenchidas com conteudo especifico
|
|
109
|
+
- [ ] Committed como WIP
|
|
110
|
+
- [ ] Usuario sabe localizacao e como retomar
|
|
111
|
+
</success_criteria>
|