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.
- package/agents/up-analista-codigo.md +446 -0
- package/agents/up-auditor-modernidade.md +378 -0
- package/agents/up-auditor-performance.md +426 -0
- package/agents/up-auditor-ux.md +396 -0
- package/agents/up-consolidador-ideias.md +493 -0
- package/agents/up-pesquisador-mercado.md +350 -0
- package/agents/up-sintetizador-melhorias.md +407 -0
- package/bin/lib/core.cjs +3 -3
- package/bin/up-tools.cjs +553 -23
- package/commands/ajuda.md +34 -3
- package/commands/ideias.md +49 -0
- package/commands/iniciar.md +31 -0
- package/commands/melhorias.md +45 -0
- package/package.json +1 -1
- package/references/audit-modernidade.md +1617 -0
- package/references/audit-performance.md +478 -0
- package/references/audit-ux.md +1544 -0
- package/templates/report.md +177 -0
- package/templates/suggestion.md +152 -0
- package/workflows/ideias.md +381 -0
- package/workflows/iniciar.md +235 -0
- package/workflows/melhorias.md +409 -0
|
@@ -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>
|