up-cc 0.2.3 → 0.3.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.
@@ -0,0 +1,409 @@
1
+ <purpose>
2
+ Executar auditoria completa do codebase com 3 agentes paralelos (UX, performance, modernidade) e sintetizar resultados em relatorio consolidado. Funciona standalone -- nao requer /up:novo-projeto.
3
+ </purpose>
4
+
5
+ <process>
6
+
7
+ **Passo 1: Inicializar e carregar contexto**
8
+
9
+ ```bash
10
+ INIT=$(node "$HOME/.claude/up/bin/up-tools.cjs" init melhorias)
11
+ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
12
+ ```
13
+
14
+ Parse JSON: `planning_exists`, `melhorias_dir`, `melhorias_exists`, `has_claude_md`, `has_package_json`, `date`, `timestamp`, `commit_docs`, `stack_hints`.
15
+
16
+ Exibir banner:
17
+ ```
18
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
19
+ UP > AUDITORIA DE MELHORIAS
20
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
21
+ ```
22
+
23
+ ---
24
+
25
+ **Passo 2: Setup standalone (INFRA-04)**
26
+
27
+ Se `melhorias_exists` = true: perguntar ao usuario se quer sobrescrever a auditoria anterior ou cancelar.
28
+
29
+ ```
30
+ AskUserQuestion(
31
+ header: "Auditoria Anterior Encontrada",
32
+ question: "Ja existe uma auditoria em .plano/melhorias/. Deseja sobrescrever?",
33
+ followUp: null
34
+ )
35
+ ```
36
+
37
+ Se usuario diz nao/cancelar, sair com mensagem: "Auditoria cancelada. Relatorio anterior permanece em .plano/melhorias/RELATORIO.md"
38
+
39
+ Se `melhorias_exists` = false:
40
+ ```bash
41
+ mkdir -p .plano/melhorias
42
+ ```
43
+
44
+ Se `planning_exists` = false (nao tem .plano/ de nenhum tipo):
45
+ ```bash
46
+ mkdir -p .plano/melhorias
47
+ ```
48
+ (O mkdir -p cria ambos diretorios).
49
+
50
+ Reportar:
51
+ ```
52
+ Diretorio de auditoria: .plano/melhorias/
53
+ Modo: Standalone (sem pre-requisitos)
54
+ ```
55
+
56
+ ---
57
+
58
+ **Passo 3: Reportar deteccao de stack**
59
+
60
+ Usar `stack_hints` do init JSON para reportar ao usuario o que foi detectado:
61
+
62
+ ```
63
+ ## Stack Detectada
64
+
65
+ [Listar: framework frontend, meta-framework, CSS, ORM, TypeScript -- baseado nos booleans de stack_hints]
66
+
67
+ Agentes auditores farao deteccao granular durante a analise.
68
+ ```
69
+
70
+ Se `has_package_json` = false:
71
+ ```
72
+ Nenhum package.json encontrado. Agentes tentarao detectar stack por outros sinais.
73
+ ```
74
+
75
+ ---
76
+
77
+ **Passo 4: Spawn 3 auditores em PARALELO**
78
+
79
+ Spawnar os 3 agentes na MESMA mensagem (paralelo via Task). Cada agente recebe contexto minimo -- eles leem seus proprios references e templates internamente.
80
+
81
+ **Agente 1: Auditor UX**
82
+ ```
83
+ Task(
84
+ subagent_type="up-auditor-ux",
85
+ prompt="
86
+ <objective>
87
+ Executar auditoria completa de UX/usabilidade do codebase deste projeto.
88
+ Salvar resultado em .plano/melhorias/ux-sugestoes.md
89
+ </objective>
90
+
91
+ <files_to_read>
92
+ - ./CLAUDE.md (se existir -- instrucoes do projeto)
93
+ </files_to_read>
94
+
95
+ <constraints>
96
+ - Carregar reference: $HOME/.claude/up/references/audit-ux.md
97
+ - Carregar template: $HOME/.claude/up/templates/suggestion.md
98
+ - Detectar stack do projeto (step 1 do agente)
99
+ - Analisar todos arquivos relevantes para UX
100
+ - Produzir sugestoes UX-NNN no formato do template
101
+ - Incluir mapa de cobertura obrigatorio (INFRA-03)
102
+ - Salvar resultado em .plano/melhorias/ux-sugestoes.md
103
+ - Retornar resumo no formato: ## AUDITORIA UX COMPLETA
104
+ </constraints>
105
+ ",
106
+ description="Auditoria UX do codebase"
107
+ )
108
+ ```
109
+
110
+ **Agente 2: Auditor Performance**
111
+ ```
112
+ Task(
113
+ subagent_type="up-auditor-performance",
114
+ prompt="
115
+ <objective>
116
+ Executar auditoria completa de performance do codebase deste projeto.
117
+ Salvar resultado em .plano/melhorias/performance-sugestoes.md
118
+ </objective>
119
+
120
+ <files_to_read>
121
+ - ./CLAUDE.md (se existir -- instrucoes do projeto)
122
+ </files_to_read>
123
+
124
+ <constraints>
125
+ - Carregar reference: $HOME/.claude/up/references/audit-performance.md
126
+ - Carregar template: $HOME/.claude/up/templates/suggestion.md
127
+ - Detectar stack do projeto (step 1 do agente)
128
+ - Analisar anti-padroes de performance em 8 categorias
129
+ - Produzir sugestoes PERF-NNN no formato do template
130
+ - Incluir mapa de cobertura obrigatorio (INFRA-03)
131
+ - Salvar resultado em .plano/melhorias/performance-sugestoes.md
132
+ - Retornar resumo no formato: ## AUDITORIA PERFORMANCE COMPLETA
133
+ </constraints>
134
+ ",
135
+ description="Auditoria de performance do codebase"
136
+ )
137
+ ```
138
+
139
+ **Agente 3: Auditor Modernidade**
140
+ ```
141
+ Task(
142
+ subagent_type="up-auditor-modernidade",
143
+ prompt="
144
+ <objective>
145
+ Executar auditoria completa de modernidade do codebase deste projeto.
146
+ Salvar resultado em .plano/melhorias/modernidade-sugestoes.md
147
+ </objective>
148
+
149
+ <files_to_read>
150
+ - ./CLAUDE.md (se existir -- instrucoes do projeto)
151
+ </files_to_read>
152
+
153
+ <constraints>
154
+ - Carregar reference: $HOME/.claude/up/references/audit-modernidade.md
155
+ - Carregar template: $HOME/.claude/up/templates/suggestion.md
156
+ - Detectar stack e versoes do projeto (step 1 do agente)
157
+ - Analisar padroes obsoletos em 6 categorias
158
+ - Produzir sugestoes MOD-NNN no formato do template
159
+ - Incluir mapa de cobertura obrigatorio (INFRA-03)
160
+ - Salvar resultado em .plano/melhorias/modernidade-sugestoes.md
161
+ - Retornar resumo no formato: ## AUDITORIA MODERNIDADE COMPLETA
162
+ </constraints>
163
+ ",
164
+ description="Auditoria de modernidade do codebase"
165
+ )
166
+ ```
167
+
168
+ **IMPORTANTE:** Os 3 Task DEVEM ser spawnados na MESMA mensagem para execucao paralela. NAO spawnar sequencialmente.
169
+
170
+ ---
171
+
172
+ **Passo 5: Coletar e verificar resultados dos auditores**
173
+
174
+ Apos os 3 agentes retornarem:
175
+
176
+ 1. Verificar existencia dos 3 arquivos:
177
+ - `.plano/melhorias/ux-sugestoes.md`
178
+ - `.plano/melhorias/performance-sugestoes.md`
179
+ - `.plano/melhorias/modernidade-sugestoes.md`
180
+
181
+ 2. Reportar resultado de cada agente extraindo do retorno:
182
+ ```
183
+ ## Resultados dos Auditores
184
+
185
+ | Dimensao | Sugestoes | Cobertura | Status |
186
+ |----------|-----------|-----------|--------|
187
+ | UX | N | X/Y (Z%) | Completo |
188
+ | Performance | N | X/Y (Z%) | Completo |
189
+ | Modernidade | N | X/Y (Z%) | Completo |
190
+ ```
191
+
192
+ 3. Se algum arquivo faltando: reportar qual agente falhou, mas continuar com os disponiveis (sintetizador aceita 1-3 dimensoes).
193
+
194
+ ---
195
+
196
+ **Passo 6: Spawn sintetizador**
197
+
198
+ Spawnar o sintetizador SEQUENCIALMENTE (apos passo 5 confirmar que arquivos existem).
199
+
200
+ ```
201
+ Task(
202
+ subagent_type="up-sintetizador-melhorias",
203
+ prompt="
204
+ <objective>
205
+ Sintetizar sugestoes dos 3 auditores em relatorio consolidado.
206
+ Deduplicar cross-dimensao, detectar conflitos, classificar em 4 quadrantes.
207
+ Salvar em .plano/melhorias/RELATORIO.md
208
+ </objective>
209
+
210
+ <files_to_read>
211
+ - .plano/melhorias/ux-sugestoes.md (sugestoes UX)
212
+ - .plano/melhorias/performance-sugestoes.md (sugestoes performance)
213
+ - .plano/melhorias/modernidade-sugestoes.md (sugestoes modernidade)
214
+ - ./CLAUDE.md (se existir -- contexto do projeto)
215
+ </files_to_read>
216
+
217
+ <constraints>
218
+ - Carregar template: $HOME/.claude/up/templates/report.md
219
+ - Carregar template: $HOME/.claude/up/templates/suggestion.md
220
+ - Deduplicar findings cross-dimensao (3 criterios: mesmo arquivo, linhas sobrepostas, problema similar)
221
+ - Detectar conflitos entre dimensoes (acoes mutuamente exclusivas)
222
+ - Classificar nos 4 quadrantes da matriz esforco x impacto
223
+ - Renumerar IDs para MELH-NNN (com rastreabilidade ao ID original)
224
+ - Sumario executivo OPINATIVO (recomendar por onde comecar)
225
+ - Salvar em .plano/melhorias/RELATORIO.md
226
+ - Retornar resumo no formato: ## SINTESE DE MELHORIAS COMPLETA
227
+ </constraints>
228
+ ",
229
+ description="Sintetizar sugestoes e criar relatorio consolidado"
230
+ )
231
+ ```
232
+
233
+ Apos sintetizador retornar:
234
+ 1. Verificar existencia de `.plano/melhorias/RELATORIO.md`
235
+ 2. Se nao existe: erro -- "Sintetizador falhou ao criar RELATORIO.md"
236
+
237
+ ---
238
+
239
+ **Passo 7: Apresentar relatorio e concluir**
240
+
241
+ 1. Ler `.plano/melhorias/RELATORIO.md`
242
+ 2. Extrair: sumario executivo, tabela de visao geral, contagem por quadrante, proximos passos
243
+
244
+ 3. Exibir output final:
245
+ ```
246
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
247
+ UP > AUDITORIA COMPLETA
248
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
249
+
250
+ [Sumario Executivo do relatorio -- 2-3 paragrafos]
251
+
252
+ ## Visao Geral
253
+
254
+ [Tabela de Visao Geral do relatorio]
255
+
256
+ ## Distribuicao
257
+
258
+ | Quadrante | Total |
259
+ |-----------|-------|
260
+ | Quick Wins | N |
261
+ | Projetos Estrategicos | N |
262
+ | Preenchimentos | N |
263
+ | Evitar | N |
264
+
265
+ ## Proximos Passos
266
+
267
+ [Secao Proximos Passos do relatorio]
268
+
269
+ ───────────────────────────────────────────────────────────────
270
+
271
+ Relatorio completo: .plano/melhorias/RELATORIO.md
272
+ Sugestoes UX: .plano/melhorias/ux-sugestoes.md
273
+ Sugestoes Performance: .plano/melhorias/performance-sugestoes.md
274
+ Sugestoes Modernidade: .plano/melhorias/modernidade-sugestoes.md
275
+
276
+ ───────────────────────────────────────────────────────────────
277
+ ```
278
+
279
+ **NAO committar automaticamente.** O relatorio e informativo -- o usuario decide o que fazer com ele. Se o projeto tem .plano/ com STATE.md, NAO atualizar STATE.md (melhorias e standalone, nao parte do ciclo de fases).
280
+
281
+ ---
282
+
283
+ **Passo 8: Aprovacao interativa e integracao com roadmap (opcional)**
284
+
285
+ Este passo permite converter sugestoes aprovadas em fases executaveis no ROADMAP.md.
286
+
287
+ 1. Perguntar ao usuario se quer integrar sugestoes ao roadmap:
288
+
289
+ ```
290
+ AskUserQuestion(
291
+ header: "Integrar ao Roadmap",
292
+ question: "Deseja converter sugestoes aprovadas em fases no ROADMAP.md?",
293
+ multiSelect: false,
294
+ options: [
295
+ { label: "Sim, selecionar sugestoes", description: "Escolher quais sugestoes viram fases executaveis" },
296
+ { label: "Nao, apenas o relatorio", description: "Manter apenas o relatorio como referencia" }
297
+ ]
298
+ )
299
+ ```
300
+
301
+ Se usuario escolher "Nao": sair com mensagem "Relatorio salvo em .plano/melhorias/RELATORIO.md. Use /up:melhorias novamente para integrar ao roadmap quando quiser."
302
+
303
+ 2. Se sim, ler `.plano/melhorias/RELATORIO.md` e extrair todas as sugestoes (ID + titulo + quadrante).
304
+
305
+ Para extrair sugestoes do RELATORIO.md: usar regex `### (MELH-\d+): (.+)` para capturar ID e titulo. Parsear a tabela de campos logo abaixo para Esforco/Impacto/Dimensao. Determinar quadrante pelo cabecalho da secao onde a sugestao aparece (Quick Wins, Projetos Estrategicos, Preenchimentos, Evitar).
306
+
307
+ 3. Apresentar sugestoes agrupadas por quadrante para selecao:
308
+
309
+ ```
310
+ AskUserQuestion(
311
+ header: "Selecionar Sugestoes",
312
+ question: "Quais sugestoes devem virar fases no roadmap? (Quick Wins recomendados primeiro)",
313
+ multiSelect: true,
314
+ options: [
315
+ // Quick Wins primeiro (recomendados)
316
+ { label: "MELH-001: [titulo]", description: "Quick Win | Esforco P, Impacto G | [dimensao]" },
317
+ { label: "MELH-003: [titulo]", description: "Quick Win | Esforco P, Impacto M | [dimensao]" },
318
+ // Depois Projetos Estrategicos
319
+ { label: "MELH-005: [titulo]", description: "Estrategico | Esforco M, Impacto G | [dimensao]" },
320
+ // Depois Preenchimentos
321
+ { label: "MELH-008: [titulo]", description: "Preenchimento | Esforco P, Impacto P | [dimensao]" },
322
+ // Nunca incluir quadrante "Evitar" na lista
323
+ ]
324
+ )
325
+ ```
326
+
327
+ **IMPORTANTE:** NAO incluir sugestoes do quadrante "Evitar" na lista de opcoes. Se o usuario perguntar, explicar que sugestoes com alto esforco e baixo impacto nao sao recomendadas para o roadmap.
328
+
329
+ Labels no multiSelect devem ser curtos: "MELH-001: Titulo curto" (max ~60 chars). Description complementa: "Quick Win | Esforco P, Impacto G | Performance".
330
+
331
+ 4. Verificar se existe `.plano/ROADMAP.md`:
332
+ - Se existe: usar diretamente
333
+ - Se NAO existe: perguntar ao usuario:
334
+ ```
335
+ AskUserQuestion(
336
+ header: "Criar Roadmap",
337
+ question: "Nao existe ROADMAP.md. Deseja criar um para adicionar as fases?",
338
+ multiSelect: false,
339
+ options: [
340
+ { label: "Sim, criar roadmap", description: "Cria .plano/ROADMAP.md com as fases selecionadas" },
341
+ { label: "Nao, cancelar", description: "Manter apenas o relatorio" }
342
+ ]
343
+ )
344
+ ```
345
+ Se sim, criar ROADMAP.md minimo:
346
+ ```bash
347
+ mkdir -p .plano
348
+ ```
349
+ Escrever `.plano/ROADMAP.md` com:
350
+ ```markdown
351
+ # Roadmap: [nome do projeto de package.json ou diretorio]
352
+
353
+ ## Fases
354
+
355
+ ## Detalhes das Fases
356
+
357
+ ## Tabela de Progresso
358
+
359
+ | Fase | Planos Completos | Status | Completado |
360
+ |------|-----------------|--------|------------|
361
+ ```
362
+
363
+ 5. Chamar CLI para gerar fases:
364
+
365
+ ```bash
366
+ echo '{"source":"melhorias","report_path":".plano/melhorias/RELATORIO.md","approved_ids":["MELH-001","MELH-003","MELH-005"],"grouping":"auto"}' | node "$HOME/.claude/up/bin/up-tools.cjs" phase generate-from-report
367
+ ```
368
+
369
+ Substituir approved_ids pela lista real selecionada pelo usuario.
370
+
371
+ 6. Parsear resultado JSON e apresentar resumo:
372
+
373
+ ```
374
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
375
+ UP > FASES GERADAS NO ROADMAP
376
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
377
+
378
+ [Para cada fase criada:]
379
+ Fase [N]: [Nome]
380
+ Sugestoes: [IDs listados]
381
+ Diretorio: [caminho]
382
+
383
+ Total: [N] fases criadas com [M] sugestoes
384
+
385
+ ───────────────────────────────────────────────────────────────
386
+
387
+ ## Proximos Passos
388
+
389
+ Para cada fase gerada:
390
+ 1. `/up:discutir-fase [N]` -- Refinar escopo e decisoes
391
+ 2. `/up:planejar-fase [N]` -- Criar planos de execucao
392
+ 3. `/up:executar-fase [N]` -- Implementar
393
+
394
+ <sub>/clear primeiro -- janela de contexto limpa</sub>
395
+
396
+ ───────────────────────────────────────────────────────────────
397
+ ```
398
+
399
+ </process>
400
+
401
+ <success_criteria>
402
+ - [ ] Init melhorias retornou JSON valido
403
+ - [ ] Diretorio .plano/melhorias/ criado (standalone)
404
+ - [ ] Stack detectada e reportada ao usuario
405
+ - [ ] 3 agentes auditores spawnados em paralelo
406
+ - [ ] Pelo menos 1 arquivo de sugestoes gerado
407
+ - [ ] Sintetizador gerou RELATORIO.md
408
+ - [ ] Relatorio apresentado ao usuario com sumario e quadrantes
409
+ </success_criteria>