up-cc 0.2.3 → 0.3.1

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,177 @@
1
+ # Template de Relatorio Consolidado
2
+
3
+ Template para o relatorio consolidado produzido pelo sintetizador apos receber sugestoes de todos os agentes auditores. Organiza sugestoes em matriz 2x2 de esforco x impacto.
4
+
5
+ <template>
6
+
7
+ ```markdown
8
+ ---
9
+ projeto: [nome do projeto]
10
+ data: [YYYY-MM-DD]
11
+ stack: [stack detectada]
12
+ agentes: [lista de agentes que contribuiram]
13
+ total_sugestoes: [N]
14
+ cobertura: [X arquivos analisados de Y total]
15
+ ---
16
+
17
+ # Relatorio de [Melhorias|Ideias]: [Nome do Projeto]
18
+
19
+ ## Sumario Executivo
20
+
21
+ [2-3 paragrafos resumindo: estado geral do codebase, areas de maior preocupacao, distribuicao de sugestoes por dimensao, recomendacao de por onde comecar]
22
+
23
+ ## Visao Geral
24
+
25
+ | Dimensao | Sugestoes | Quick Wins | Estrategicos | Preenchimentos | Evitar |
26
+ |----------|-----------|------------|--------------|----------------|--------|
27
+ | UX | N | N | N | N | N |
28
+ | Performance | N | N | N | N | N |
29
+ | Modernidade | N | N | N | N | N |
30
+ | Codigo | N | N | N | N | N |
31
+ | Ideias | N | N | N | N | N |
32
+ | **Total** | **N** | **N** | **N** | **N** | **N** |
33
+
34
+ ## Matriz Esforco x Impacto
35
+
36
+ ### Quick Wins (Baixo Esforco + Alto Impacto)
37
+ > Implementar primeiro. Maior retorno por tempo investido.
38
+
39
+ [Lista de sugestoes no formato padrao de suggestion.md, ordenadas por impacto decrescente]
40
+
41
+ ### Projetos Estrategicos (Alto Esforco + Alto Impacto)
42
+ > Planejar com cuidado. Alto valor mas requer investimento significativo.
43
+
44
+ [Lista de sugestoes no formato padrao de suggestion.md, ordenadas por impacto decrescente]
45
+
46
+ ### Preenchimentos (Baixo Esforco + Baixo Impacto)
47
+ > Fazer quando houver tempo. Melhorias incrementais.
48
+
49
+ [Lista de sugestoes no formato padrao de suggestion.md, ordenadas por impacto decrescente]
50
+
51
+ ### Evitar (Alto Esforco + Baixo Impacto)
52
+ > Nao priorizar. Custo-beneficio desfavoravel.
53
+
54
+ [Lista de sugestoes no formato padrao de suggestion.md, ordenadas por impacto decrescente]
55
+
56
+ ## Cobertura
57
+
58
+ ### Arquivos Analisados
59
+ [Lista de TODOS os arquivos que foram analisados, agrupados por diretorio]
60
+
61
+ ### Arquivos Nao Analisados
62
+ [Arquivos excluidos com razao: binario, gerado, vendor, etc.]
63
+
64
+ ### Porcentagem de Cobertura
65
+ [X de Y arquivos = Z%]
66
+
67
+ ## Conflitos entre Dimensoes
68
+ [Sugestoes que conflitam entre dimensoes, com recomendacao de qual priorizar e por que]
69
+ (Ex: "PERF-005 sugere remover animacoes, UX-012 sugere manter -- Recomendacao: manter com prefers-reduced-motion")
70
+
71
+ Se nao houver conflitos, omitir esta secao.
72
+
73
+ ## Proximos Passos
74
+ [3-5 acoes concretas recomendadas para comecar, baseadas nos quick wins de maior impacto]
75
+ ```
76
+
77
+ </template>
78
+
79
+ <quadrant_definitions>
80
+
81
+ ### Regras de Classificacao nos Quadrantes
82
+
83
+ A classificacao usa os campos Esforco e Impacto de cada sugestao (template suggestion.md):
84
+
85
+ | | Impacto M/G (Alto) | Impacto P (Baixo) |
86
+ |---|---|---|
87
+ | **Esforco P (Baixo)** | Quick Wins | Preenchimentos |
88
+ | **Esforco M/G (Alto)** | Projetos Estrategicos | Evitar |
89
+
90
+ **Mapeamento P/M/G para a matriz:**
91
+ - `P` (Pequeno) = Baixo
92
+ - `M` (Medio) = Alto
93
+ - `G` (Grande) = Alto
94
+
95
+ M e G sao agrupados no mesmo lado da matriz (alto).
96
+
97
+ **Regra de empate (ambos M):**
98
+ Se Esforco=M e Impacto=M, classificar como **Projetos Estrategicos** (abordagem conservadora -- assume alto custo quando ambiguo).
99
+
100
+ **Ordenacao dentro de cada quadrante:**
101
+ 1. Impacto decrescente (G antes de M)
102
+ 2. Em caso de empate de impacto, Esforco crescente (P antes de M)
103
+
104
+ ### Tabela Completa de Classificacao
105
+
106
+ | Esforco | Impacto | Quadrante |
107
+ |---------|---------|-----------|
108
+ | P | G | Quick Wins |
109
+ | P | M | Quick Wins |
110
+ | P | P | Preenchimentos |
111
+ | M | G | Projetos Estrategicos |
112
+ | M | M | Projetos Estrategicos |
113
+ | M | P | Evitar |
114
+ | G | G | Projetos Estrategicos |
115
+ | G | M | Projetos Estrategicos |
116
+ | G | P | Evitar |
117
+
118
+ </quadrant_definitions>
119
+
120
+ <guidelines>
121
+
122
+ ### Orientacoes de Preenchimento
123
+
124
+ **Responsabilidade:**
125
+ - O sintetizador (Fase 6) e responsavel por preencher este template
126
+ - Para /up:melhorias, o arquivo e salvo em `.plano/melhorias/RELATORIO.md`
127
+ - Para /up:ideias, o arquivo e salvo em `.plano/ideias/RELATORIO.md`
128
+
129
+ **Deduplicacao:**
130
+ - Sugestoes duplicadas entre dimensoes DEVEM ser mescladas antes de classificar
131
+ - Manter a sugestao mais completa
132
+ - Listar dimensoes originais entre parenteses: `Performance (UX)` ou `Modernidade (Performance)`
133
+ - O ID da sugestao mantida prevalece; a outra vira referencia: "Ver PERF-005"
134
+
135
+ **Sumario Executivo:**
136
+ - DEVE ser opinativo -- recomendar por onde comecar, nao apenas listar
137
+ - Mencionar as 2-3 areas de maior preocupacao
138
+ - Indicar se o codebase esta em bom estado geral ou precisa de atencao urgente
139
+ - Terminar com recomendacao clara de proximos passos
140
+
141
+ **Tabela de Visao Geral:**
142
+ - Total na ultima linha deve bater com soma das linhas anteriores
143
+ - Total de cada coluna de quadrante deve bater com o total de sugestoes daquele quadrante
144
+ - Se uma dimensao nao tem sugestoes, manter a linha com zeros
145
+
146
+ **Secao de Conflitos:**
147
+ - So aparece se houver conflitos reais entre dimensoes
148
+ - Nao forcar conflitos onde nao existem
149
+ - Cada conflito deve ter recomendacao de resolucao
150
+
151
+ **Frontmatter YAML:**
152
+ - Obrigatorio -- permite parsing programatico futuro
153
+ - O campo `cobertura` prepara INFRA-03 (implementado na Fase 5)
154
+ - O campo `agentes` lista os nomes dos agentes que contribuiram sugestoes
155
+
156
+ **Consistencia:**
157
+ - Sugestoes dentro dos quadrantes usam o formato exato de suggestion.md
158
+ - Nenhuma sugestao pode aparecer em mais de um quadrante
159
+ - Toda sugestao recebida dos agentes deve aparecer em exatamente um quadrante
160
+
161
+ </guidelines>
162
+
163
+ <evolution>
164
+
165
+ ### Ciclo de Vida do Template
166
+
167
+ **Fase 3 (atual):** Template criado como infraestrutura. Define formato e regras.
168
+
169
+ **Fase 5:** Agentes auditores (UX, Performance, Modernidade) preenchem sugestoes individuais usando suggestion.md. Cada agente produz sua lista de sugestoes.
170
+
171
+ **Fase 6:** Sintetizador recebe sugestoes de todos os agentes, deduplica, resolve conflitos, classifica nos quadrantes e preenche este template de relatorio.
172
+
173
+ **Fase 7/9:** Workflow de /up:melhorias e /up:ideias orquestra agentes e apresenta o relatorio final ao usuario.
174
+
175
+ **Fase 10:** Sugestoes aprovadas pelo usuario sao convertidas em fases no ROADMAP.md. O campo ID de cada sugestao permite rastreabilidade de sugestao -> fase.
176
+
177
+ </evolution>
@@ -0,0 +1,152 @@
1
+ # Template de Sugestao
2
+
3
+ Template para sugestoes individuais produzidas por agentes auditores e idealizadores. Cada sugestao e um bloco autocontido com formato padrao para agregacao e priorizacao.
4
+
5
+ <template>
6
+
7
+ ```markdown
8
+ ### [ID]: [titulo curto do problema]
9
+
10
+ | Campo | Valor |
11
+ |-------|-------|
12
+ | Arquivo | `caminho/do/arquivo.ext` |
13
+ | Linha | 42 (ou range 42-58, ou N/A para problemas estruturais) |
14
+ | Dimensao | UX / Performance / Modernidade / Codigo / Ideias |
15
+ | Esforco | P / M / G |
16
+ | Impacto | P / M / G |
17
+
18
+ **Problema:** Descricao concreta do problema encontrado, com evidencia do codigo.
19
+
20
+ **Sugestao:** Acao especifica para resolver, com exemplo de codigo se aplicavel.
21
+
22
+ **Referencia:** Link ou nome do padrao/best practice que fundamenta a sugestao (opcional mas recomendado).
23
+ ```
24
+
25
+ </template>
26
+
27
+ <field_definitions>
28
+
29
+ ### Campos Obrigatorios
30
+
31
+ **ID**
32
+ Formato `[DIM]-[NNN]` onde DIM e abreviatura da dimensao e NNN e sequencial por dimensao.
33
+ Abreviaturas: `UX`, `PERF`, `MOD`, `COD`, `IDEA`.
34
+ Exemplos: `PERF-003`, `UX-012`, `MOD-001`.
35
+ IDs sao sequenciais dentro de cada dimensao, resetados por relatorio.
36
+
37
+ **Arquivo**
38
+ Caminho relativo a raiz do projeto. NUNCA generico ("varios arquivos").
39
+ Se afetar multiplos arquivos, criar uma sugestao para o arquivo mais representativo e notar "Afeta tambem: arquivo2.ext, arquivo3.ext" na descricao do problema.
40
+
41
+ **Linha**
42
+ Numero de linha ou range (ex: `42`, `42-58`).
43
+ Use `N/A` apenas para problemas estruturais (ex: "falta de testes", "ausencia de arquivo de config").
44
+
45
+ **Dimensao**
46
+ Categoria da analise que originou o finding. Valores fixos:
47
+ - `UX` -- Usabilidade, acessibilidade, experiencia do usuario
48
+ - `Performance` -- Velocidade, eficiencia, otimizacao
49
+ - `Modernidade` -- Padroes atuais, dependencias, compatibilidade
50
+ - `Codigo` -- Qualidade, legibilidade, manutencao
51
+ - `Ideias` -- Features novas, melhorias funcionais
52
+
53
+ Um finding pode ter tag secundaria entre parenteses: `Performance (UX)` se impacta ambas dimensoes.
54
+
55
+ **Esforco**
56
+ Estimativa de trabalho para implementar:
57
+ - `P` (Pequeno) -- Menos de 30 minutos. Rename, config, import, ajuste pontual.
58
+ - `M` (Medio) -- 30 minutos a 2 horas. Refatorar funcao, adicionar componente, ajustar modulo.
59
+ - `G` (Grande) -- Mais de 2 horas. Reescrever modulo, migrar dependencia, reestruturar.
60
+
61
+ Se Esforco=G, a justificativa DEVE aparecer no campo Sugestao.
62
+
63
+ **Impacto**
64
+ Beneficio esperado se implementado:
65
+ - `P` (Pequeno) -- Melhoria marginal, nice-to-have.
66
+ - `M` (Medio) -- Melhoria notavel para usuario ou desenvolvedor.
67
+ - `G` (Grande) -- Melhoria critica, resolve dor real.
68
+
69
+ ### Campo Obrigatorio Condicional
70
+
71
+ **Problema**
72
+ DEVE conter evidencia concreta: trecho de codigo, metrica, sintoma observavel.
73
+ NAO aceitar descricoes vagas como "codigo poderia melhorar" ou "nao esta bom".
74
+
75
+ **Sugestao**
76
+ DEVE ser acao implementavel. Incluir exemplo de codigo quando possivel.
77
+ NAO aceitar "considerar melhorar X" -- deve ser "trocar X por Y porque Z".
78
+
79
+ ### Campo Opcional (Recomendado)
80
+
81
+ **Referencia**
82
+ Padrao, documentacao ou best practice que fundamenta a sugestao.
83
+ Exemplos: "React docs: useMemo", "Web Vitals: CLS", "OWASP Top 10: A03", "MDN: Intersection Observer".
84
+
85
+ </field_definitions>
86
+
87
+ <guidelines>
88
+
89
+ ### Orientacoes de Preenchimento
90
+
91
+ - Cada agente auditor produz uma lista de sugestoes neste formato
92
+ - IDs sao sequenciais dentro de cada dimensao, resetados por relatorio
93
+ - Sugestoes devem ser autocontidas -- quem le uma sugestao individual entende o problema e a solucao sem contexto externo
94
+ - Se uma sugestao depende de outra, referenciar o ID: "Prerequisito: PERF-001"
95
+ - Maximo 1 sugestao por bloco. Nunca agrupar problemas distintos
96
+ - Se o mesmo padrao aparece em N arquivos, criar 1 sugestao para o arquivo mais representativo e notar "Afeta tambem: arquivo2.ext, arquivo3.ext" na descricao do problema
97
+ - Ordenar sugestoes por impacto decrescente dentro de cada dimensao
98
+
99
+ ### Exemplo Completo
100
+
101
+ ```markdown
102
+ ### PERF-003: Re-render desnecessario em lista de produtos
103
+
104
+ | Campo | Valor |
105
+ |-------|-------|
106
+ | Arquivo | `src/components/ProductList.tsx` |
107
+ | Linha | 24-38 |
108
+ | Dimensao | Performance (UX) |
109
+ | Esforco | P |
110
+ | Impacto | M |
111
+
112
+ **Problema:** O componente `ProductList` recria o array filtrado a cada render porque `products.filter()` e chamado diretamente no JSX (linha 31). Com 500+ produtos, causa jank visivel ao digitar no campo de busca.
113
+
114
+ **Sugestao:** Envolver o filtro em `useMemo` com dependencia em `[products, searchTerm]`:
115
+ \```tsx
116
+ const filtered = useMemo(
117
+ () => products.filter(p => p.name.includes(searchTerm)),
118
+ [products, searchTerm]
119
+ );
120
+ \```
121
+
122
+ **Referencia:** React docs: useMemo -- https://react.dev/reference/react/useMemo
123
+ ```
124
+
125
+ </guidelines>
126
+
127
+ <anti_patterns>
128
+
129
+ ### Anti-padroes (Sugestoes Invalidas)
130
+
131
+ Estes padroes tornam uma sugestao invalida e devem ser corrigidos antes de incluir no relatorio:
132
+
133
+ 1. **Sugestao sem arquivo concreto**
134
+ Invalido: "O projeto deveria usar TypeScript"
135
+ Valido: "src/utils/helpers.js linha 12 -- funcao `parseDate` sem tipagem causa erro silencioso em input invalido"
136
+
137
+ 2. **Problema vago**
138
+ Invalido: "O codigo pode melhorar"
139
+ Valido: "Funcao `calculateTotal` (linha 45) usa loop aninhado O(n^2) para lookup que poderia ser O(1) com Map"
140
+
141
+ 3. **Sugestao vaga**
142
+ Invalido: "Considerar refatorar"
143
+ Valido: "Extrair logica de validacao das linhas 23-67 para funcao `validateOrder()` -- reduz complexidade ciclomatica de 12 para 4"
144
+
145
+ 4. **Esforco/impacto sem justificativa para G**
146
+ Invalido: Esforco=G sem explicar por que no campo Sugestao
147
+ Valido: Esforco=G com "Requer migrar de Moment.js para date-fns em 14 arquivos, incluindo formatacao de datas no backend"
148
+
149
+ 5. **Sugestao duplicada entre dimensoes**
150
+ Se performance e modernidade encontram o mesmo problema, uma dimensao cria a sugestao e a outra referencia via ID: "Ver PERF-005"
151
+
152
+ </anti_patterns>