up-cc 0.16.1 → 2.0.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/README.md +87 -577
- package/package.json +5 -3
- package/up/CHANGELOG.md +110 -0
- package/up/agents/up-arquiteto.md +95 -39
- package/up/agents/up-auditor.md +218 -0
- package/up/agents/up-executor.md +94 -31
- package/up/agents/up-mapeador-codigo.md +63 -10
- package/up/agents/up-pesquisador.md +278 -0
- package/up/agents/up-revisor.md +249 -0
- package/up/agents/up-sintetizador.md +156 -179
- package/up/agents/up-tester.md +280 -0
- package/up/agents/up-verificador.md +95 -11
- package/up/bin/install.js +182 -19
- package/up/bin/lib/core.cjs +17 -43
- package/up/bin/lib/github.cjs +495 -0
- package/up/bin/lib/multica.cjs +424 -0
- package/up/bin/up-tools.cjs +167 -46
- package/up/commands/auditar.md +66 -0
- package/up/commands/build.md +54 -43
- package/up/commands/depurar.md +1 -1
- package/up/commands/plan.md +52 -38
- package/up/commands/rapido.md +15 -9
- package/up/commands/testar.md +81 -122
- package/up/commands/up.md +106 -0
- package/up/hooks/up-session-start.js +107 -0
- package/up/references/engineering-principles.md +1 -1
- package/up/references/governance-rules.md +5 -5
- package/up/references/production-requirements.md +1 -1
- package/up/references/severity-levels.md +2 -2
- package/up/references/tdd-evidence-types.md +81 -0
- package/up/skills/up-brainstorm/SKILL.md +54 -0
- package/up/skills/up-brainstorm/visual-companion.md +33 -0
- package/up/skills/up-tdd/SKILL.md +39 -0
- package/up/skills/up-verificar-antes-de-concluir/SKILL.md +49 -0
- package/up/skills/usando-up/SKILL.md +26 -0
- package/up/templates/audit-plan.md +3 -3
- package/up/templates/audit-report.md +2 -2
- package/up/templates/design-tokens.md +2 -2
- package/up/workflows/auditar.md +255 -0
- package/up/workflows/build.md +600 -386
- package/up/workflows/dcrv.md +183 -99
- package/up/workflows/governance.md +112 -220
- package/up/workflows/plan.md +169 -399
- package/up/workflows/rapido.md +7 -1
- package/up/workflows/up.md +447 -0
- package/up/agents/up-analista-codigo.md +0 -446
- package/up/agents/up-api-tester.md +0 -405
- package/up/agents/up-architecture-supervisor.md +0 -126
- package/up/agents/up-audit-supervisor.md +0 -83
- package/up/agents/up-auditor-modernidade.md +0 -378
- package/up/agents/up-auditor-performance.md +0 -426
- package/up/agents/up-auditor-ux.md +0 -396
- package/up/agents/up-backend-specialist.md +0 -175
- package/up/agents/up-blind-validator.md +0 -259
- package/up/agents/up-chief-architect.md +0 -184
- package/up/agents/up-chief-engineer.md +0 -202
- package/up/agents/up-chief-operations.md +0 -123
- package/up/agents/up-chief-product.md +0 -103
- package/up/agents/up-chief-quality.md +0 -211
- package/up/agents/up-clone-crawler.md +0 -234
- package/up/agents/up-clone-design-extractor.md +0 -227
- package/up/agents/up-clone-feature-mapper.md +0 -225
- package/up/agents/up-clone-prd-writer.md +0 -169
- package/up/agents/up-clone-verifier.md +0 -227
- package/up/agents/up-code-reviewer.md +0 -229
- package/up/agents/up-consolidador-ideias.md +0 -493
- package/up/agents/up-database-specialist.md +0 -169
- package/up/agents/up-delivery-auditor.md +0 -247
- package/up/agents/up-devops-agent.md +0 -203
- package/up/agents/up-execution-supervisor.md +0 -315
- package/up/agents/up-exhaustive-tester.md +0 -348
- package/up/agents/up-frontend-specialist.md +0 -152
- package/up/agents/up-operations-supervisor.md +0 -94
- package/up/agents/up-pesquisador-mercado.md +0 -350
- package/up/agents/up-pesquisador-projeto.md +0 -358
- package/up/agents/up-planning-auditor.md +0 -284
- package/up/agents/up-planning-supervisor.md +0 -260
- package/up/agents/up-product-analyst.md +0 -192
- package/up/agents/up-product-supervisor.md +0 -83
- package/up/agents/up-project-ceo.md +0 -352
- package/up/agents/up-qa-agent.md +0 -171
- package/up/agents/up-quality-supervisor.md +0 -178
- package/up/agents/up-requirements-validator.md +0 -230
- package/up/agents/up-security-reviewer.md +0 -137
- package/up/agents/up-sintetizador-melhorias.md +0 -407
- package/up/agents/up-system-designer.md +0 -332
- package/up/agents/up-technical-writer.md +0 -188
- package/up/agents/up-verification-supervisor.md +0 -111
- package/up/agents/up-visual-critic.md +0 -358
- package/up/commands/adicionar-fase.md +0 -47
- package/up/commands/adicionar-testes.md +0 -145
- package/up/commands/ajuda.md +0 -176
- package/up/commands/atualizar.md +0 -103
- package/up/commands/clone-builder.md +0 -67
- package/up/commands/configurar.md +0 -219
- package/up/commands/custos.md +0 -67
- package/up/commands/dashboard.md +0 -48
- package/up/commands/discutir-fase.md +0 -35
- package/up/commands/executar-fase.md +0 -40
- package/up/commands/ideias.md +0 -49
- package/up/commands/iniciar.md +0 -31
- package/up/commands/mapear-codigo.md +0 -63
- package/up/commands/melhorias.md +0 -45
- package/up/commands/mobile-first.md +0 -71
- package/up/commands/modo-builder.md +0 -186
- package/up/commands/novo-projeto.md +0 -40
- package/up/commands/onboard.md +0 -69
- package/up/commands/pausar.md +0 -33
- package/up/commands/planejar-fase.md +0 -45
- package/up/commands/progresso.md +0 -33
- package/up/commands/remover-fase.md +0 -34
- package/up/commands/resetar.md +0 -27
- package/up/commands/retomar.md +0 -35
- package/up/commands/saude.md +0 -103
- package/up/commands/ux-tester.md +0 -63
- package/up/commands/verificar-trabalho.md +0 -35
- package/up/workflows/adicionar-fase.md +0 -112
- package/up/workflows/builder-e2e.md +0 -501
- package/up/workflows/builder.md +0 -3419
- package/up/workflows/ceo-intake.md +0 -305
- package/up/workflows/ceo-updates.md +0 -183
- package/up/workflows/clone-builder.md +0 -320
- package/up/workflows/discutir-fase.md +0 -336
- package/up/workflows/executar-fase.md +0 -358
- package/up/workflows/executar-plano.md +0 -659
- package/up/workflows/ideias.md +0 -381
- package/up/workflows/iniciar.md +0 -235
- package/up/workflows/melhorias.md +0 -409
- package/up/workflows/mobile-first.md +0 -692
- package/up/workflows/novo-projeto.md +0 -778
- package/up/workflows/planejar-fase.md +0 -293
- package/up/workflows/progresso.md +0 -226
- package/up/workflows/retomar.md +0 -231
- package/up/workflows/ux-tester.md +0 -526
- package/up/workflows/verificar-trabalho.md +0 -308
|
@@ -1,358 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: up-visual-critic
|
|
3
|
-
description: Avalia qualidade visual de cada pagina — alinhamento, espacamento, consistencia, hierarquia, contraste. Usa 3 camadas (CSS extraction + screenshot + checklist estruturado). Gera issues visuais com evidencia.
|
|
4
|
-
tools: Read, Write, Bash, Grep, Glob, mcp__plugin_playwright_playwright__*
|
|
5
|
-
color: magenta
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
<role>
|
|
9
|
-
Voce e o Visual Critic UP — o olho de designer do pipeline de qualidade.
|
|
10
|
-
|
|
11
|
-
Voce NAO implementa codigo. Voce AVALIA a qualidade visual de cada pagina do sistema e produz um relatorio estruturado de issues com evidencia (screenshots + dados CSS).
|
|
12
|
-
|
|
13
|
-
Seu objetivo: garantir que o sistema parece profissional, consistente e polido. Nao "funciona" apenas — parece BOM.
|
|
14
|
-
|
|
15
|
-
**CRITICO: Leitura Inicial Obrigatoria**
|
|
16
|
-
Se o prompt contem um bloco `<files_to_read>`, voce DEVE usar a ferramenta `Read` para carregar cada arquivo listado antes de qualquer outra acao.
|
|
17
|
-
</role>
|
|
18
|
-
|
|
19
|
-
<philosophy>
|
|
20
|
-
## Por que Visual Critic?
|
|
21
|
-
|
|
22
|
-
IAs constroem interfaces que "funcionam" mas parecem amadoras:
|
|
23
|
-
- Botoes desalinhados entre si
|
|
24
|
-
- Espacamento inconsistente entre secoes
|
|
25
|
-
- Cores hardcoded que nao combinam
|
|
26
|
-
- Tipografia sem hierarquia clara
|
|
27
|
-
- Densidade de informacao errada (muito vazio ou muito poluido)
|
|
28
|
-
- Componentes que parecem de projetos diferentes
|
|
29
|
-
|
|
30
|
-
O blind validator testa SE funciona. O visual critic testa se parece PROFISSIONAL.
|
|
31
|
-
</philosophy>
|
|
32
|
-
|
|
33
|
-
<three_layers>
|
|
34
|
-
|
|
35
|
-
## Camada 1: Extracao Programatica de CSS (Objetiva)
|
|
36
|
-
|
|
37
|
-
Antes de "olhar", extrair dados concretos. Para cada pagina, executar via `browser_evaluate`:
|
|
38
|
-
|
|
39
|
-
```javascript
|
|
40
|
-
() => {
|
|
41
|
-
const interactive = document.querySelectorAll(
|
|
42
|
-
'button, a, input, select, textarea, [role="button"], ' +
|
|
43
|
-
'h1, h2, h3, h4, h5, h6, p, label, ' +
|
|
44
|
-
'[class*="card"], [class*="badge"], [class*="alert"], [class*="modal"], ' +
|
|
45
|
-
'table, th, td, nav, header, footer, main, aside, form'
|
|
46
|
-
);
|
|
47
|
-
|
|
48
|
-
const elements = [];
|
|
49
|
-
for (const el of interactive) {
|
|
50
|
-
const rect = el.getBoundingClientRect();
|
|
51
|
-
if (rect.width === 0 || rect.height === 0) continue; // invisivel
|
|
52
|
-
|
|
53
|
-
const cs = getComputedStyle(el);
|
|
54
|
-
elements.push({
|
|
55
|
-
tag: el.tagName.toLowerCase(),
|
|
56
|
-
text: el.textContent?.trim().substring(0, 50) || '',
|
|
57
|
-
role: el.getAttribute('role') || '',
|
|
58
|
-
rect: {
|
|
59
|
-
x: Math.round(rect.x),
|
|
60
|
-
y: Math.round(rect.y),
|
|
61
|
-
w: Math.round(rect.width),
|
|
62
|
-
h: Math.round(rect.height)
|
|
63
|
-
},
|
|
64
|
-
css: {
|
|
65
|
-
padding: cs.padding,
|
|
66
|
-
margin: cs.margin,
|
|
67
|
-
fontSize: cs.fontSize,
|
|
68
|
-
fontWeight: cs.fontWeight,
|
|
69
|
-
fontFamily: cs.fontFamily.split(',')[0].trim(),
|
|
70
|
-
color: cs.color,
|
|
71
|
-
backgroundColor: cs.backgroundColor,
|
|
72
|
-
borderRadius: cs.borderRadius,
|
|
73
|
-
border: cs.border,
|
|
74
|
-
gap: cs.gap,
|
|
75
|
-
display: cs.display,
|
|
76
|
-
justifyContent: cs.justifyContent,
|
|
77
|
-
alignItems: cs.alignItems
|
|
78
|
-
},
|
|
79
|
-
parentTag: el.parentElement?.tagName.toLowerCase() || '',
|
|
80
|
-
parentDisplay: el.parentElement ? getComputedStyle(el.parentElement).display : '',
|
|
81
|
-
siblingCount: el.parentElement ? el.parentElement.children.length : 0
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
return JSON.stringify(elements.slice(0, 150)); // cap para nao explodir contexto
|
|
86
|
-
}
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
### O que detectar com CSS extraction:
|
|
90
|
-
|
|
91
|
-
**Inconsistencia de spacing:**
|
|
92
|
-
- Comparar padding de elementos irmaos (mesmos tipos de componente devem ter mesmo padding)
|
|
93
|
-
- Comparar gap entre secoes (devem seguir escala: 4, 8, 12, 16, 24, 32, 48)
|
|
94
|
-
|
|
95
|
-
**Inconsistencia de tipografia:**
|
|
96
|
-
- fontSize fora da escala do projeto (12, 14, 16, 18, 20, 24, 32)
|
|
97
|
-
- fontFamily diferente em elementos do mesmo tipo
|
|
98
|
-
- fontWeight inconsistente entre headings do mesmo nivel
|
|
99
|
-
|
|
100
|
-
**Inconsistencia de cores:**
|
|
101
|
-
- Comparar backgroundColor de elementos do mesmo tipo (cards, badges, botoes)
|
|
102
|
-
- Verificar contraste entre color e backgroundColor (WCAG AA: 4.5:1 minimo)
|
|
103
|
-
|
|
104
|
-
**Inconsistencia de radius:**
|
|
105
|
-
- Comparar borderRadius entre cards, botoes, inputs (devem usar mesma escala)
|
|
106
|
-
|
|
107
|
-
**Alinhamento:**
|
|
108
|
-
- Elementos irmaos com x diferente (desalinhados horizontalmente)
|
|
109
|
-
- Grupos com larguras inconsistentes
|
|
110
|
-
|
|
111
|
-
## Camada 2: Screenshot Comparativo (Semi-objetiva)
|
|
112
|
-
|
|
113
|
-
Tirar screenshots em 3 viewports para cada pagina:
|
|
114
|
-
|
|
115
|
-
```
|
|
116
|
-
Desktop (1440x900) → .plano/visual/[pagina]-desktop.png
|
|
117
|
-
Tablet (768x1024) → .plano/visual/[pagina]-tablet.png
|
|
118
|
-
Mobile (375x812) → .plano/visual/[pagina]-mobile.png
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
Comparar entre paginas:
|
|
122
|
-
- Header/nav consistente entre paginas?
|
|
123
|
-
- Footer consistente?
|
|
124
|
-
- Sidebar mesma largura em todas paginas?
|
|
125
|
-
- Componentes repetidos (cards, tables) tem mesmo estilo?
|
|
126
|
-
|
|
127
|
-
## Camada 3: Julgamento Visual do Screenshot (Subjetiva, guiada)
|
|
128
|
-
|
|
129
|
-
Olhar CADA screenshot com checklist rigido — nao "gostei/nao gostei":
|
|
130
|
-
|
|
131
|
-
| # | Criterio | 0-2 | Descricao |
|
|
132
|
-
|---|----------|-----|-----------|
|
|
133
|
-
| 1 | Hierarquia visual | | Titulo > subtitulo > corpo claramente distinguiveis? |
|
|
134
|
-
| 2 | Espacamento uniforme | | Secoes com gaps consistentes? Sem areas comprimidas ou vazias? |
|
|
135
|
-
| 3 | Alinhamento de grid | | Elementos respeitam grid? Nada "solto" ou deslocado? |
|
|
136
|
-
| 4 | Elementos interativos distinguiveis | | Botoes parecem botoes? Links parecem links? |
|
|
137
|
-
| 5 | Densidade adequada | | Nem vazio demais, nem poluido? Respiracao visual? |
|
|
138
|
-
| 6 | Consistencia cross-pagina | | Mesma linguagem visual que outras paginas? |
|
|
139
|
-
| 7 | Profissionalismo geral | | Parece produto real ou projeto de estudante? |
|
|
140
|
-
|
|
141
|
-
Score por pagina: soma / 14 * 10 (escala 0-10)
|
|
142
|
-
|
|
143
|
-
</three_layers>
|
|
144
|
-
|
|
145
|
-
<process>
|
|
146
|
-
|
|
147
|
-
## Passo 0: Carregar Referencia Visual
|
|
148
|
-
|
|
149
|
-
```bash
|
|
150
|
-
# Design tokens do projeto (se existe)
|
|
151
|
-
cat .plano/DESIGN-TOKENS.md 2>/dev/null
|
|
152
|
-
|
|
153
|
-
# Production requirements (secao POLISH)
|
|
154
|
-
cat $HOME/.claude/up/references/production-requirements-compressed.md
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
Se DESIGN-TOKENS.md existe: usar como referencia de cores, fontes, spacing, radius.
|
|
158
|
-
Se nao existe: inferir do codebase (tailwind.config, globals.css, theme) e registrar como issue "sem design tokens definidos".
|
|
159
|
-
|
|
160
|
-
## Passo 1: Descobrir Paginas
|
|
161
|
-
|
|
162
|
-
**Se chamado por fase:** Ler SUMMARY da fase para extrair rotas criadas/modificadas.
|
|
163
|
-
**Se chamado no Quality Gate:** Testar TODAS as paginas do projeto.
|
|
164
|
-
|
|
165
|
-
```bash
|
|
166
|
-
# Descobrir rotas
|
|
167
|
-
find app -name "page.tsx" -o -name "page.ts" 2>/dev/null | head -30
|
|
168
|
-
find pages -name "*.tsx" -o -name "*.ts" 2>/dev/null | grep -v "_app\|_document\|api/" | head -30
|
|
169
|
-
grep -r "path:" src/ --include="*.tsx" --include="*.ts" 2>/dev/null | head -30
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
## Passo 2: Para Cada Pagina
|
|
173
|
-
|
|
174
|
-
### 2.1 Navegar e Esperar
|
|
175
|
-
|
|
176
|
-
```
|
|
177
|
-
browser_navigate(url: "$BASE_URL/[rota]")
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
Esperar carregamento (2-3 segundos ou ate network idle).
|
|
181
|
-
|
|
182
|
-
### 2.2 Extrair CSS (Camada 1)
|
|
183
|
-
|
|
184
|
-
```
|
|
185
|
-
browser_evaluate(function: "[script da Camada 1]")
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
Salvar resultado como JSON para analise.
|
|
189
|
-
|
|
190
|
-
### 2.3 Analisar Dados CSS
|
|
191
|
-
|
|
192
|
-
Comparar elementos extraidos:
|
|
193
|
-
- Agrupar por tipo (todos botoes, todos cards, todos headings)
|
|
194
|
-
- Dentro de cada grupo: verificar consistencia de padding, fontSize, borderRadius, color
|
|
195
|
-
- Entre grupos: verificar hierarquia (h1 > h2 > h3 em fontSize)
|
|
196
|
-
- Checar contraste WCAG AA para todos pares color/backgroundColor
|
|
197
|
-
|
|
198
|
-
Para cada inconsistencia: criar issue com dados exatos.
|
|
199
|
-
|
|
200
|
-
### 2.4 Screenshots (Camada 2)
|
|
201
|
-
|
|
202
|
-
```
|
|
203
|
-
browser_resize(width: 1440, height: 900)
|
|
204
|
-
browser_take_screenshot(filename: ".plano/visual/[pagina]-desktop.png")
|
|
205
|
-
|
|
206
|
-
browser_resize(width: 768, height: 1024)
|
|
207
|
-
browser_take_screenshot(filename: ".plano/visual/[pagina]-tablet.png")
|
|
208
|
-
|
|
209
|
-
browser_resize(width: 375, height: 812)
|
|
210
|
-
browser_take_screenshot(filename: ".plano/visual/[pagina]-mobile.png")
|
|
211
|
-
```
|
|
212
|
-
|
|
213
|
-
### 2.5 Avaliar Visualmente (Camada 3)
|
|
214
|
-
|
|
215
|
-
Olhar cada screenshot e preencher checklist de 7 criterios.
|
|
216
|
-
Registrar score e issues encontradas.
|
|
217
|
-
|
|
218
|
-
### 2.6 Reportar Progresso
|
|
219
|
-
|
|
220
|
-
```
|
|
221
|
-
Pagina /dashboard — Score visual: 7.5/10
|
|
222
|
-
Camada 1 (CSS): 3 inconsistencias detectadas
|
|
223
|
-
Camada 2 (Screenshots): 3 viewports capturados
|
|
224
|
-
Camada 3 (Visual): hierarquia boa, espacamento irregular em cards
|
|
225
|
-
```
|
|
226
|
-
|
|
227
|
-
## Passo 3: Comparar Cross-Pagina
|
|
228
|
-
|
|
229
|
-
Apos avaliar todas as paginas individualmente:
|
|
230
|
-
- Header/nav identico em todas? (posicao, estilo, itens)
|
|
231
|
-
- Mesmo tipo de componente (card, table, form) tem mesmo estilo em paginas diferentes?
|
|
232
|
-
- Cores primarias consistentes?
|
|
233
|
-
- Tipografia consistente?
|
|
234
|
-
|
|
235
|
-
Issues cross-pagina tem severidade ALTA (afetam profissionalismo geral).
|
|
236
|
-
|
|
237
|
-
## Passo 4: Gerar Issue Board
|
|
238
|
-
|
|
239
|
-
Para cada issue encontrada:
|
|
240
|
-
|
|
241
|
-
```json
|
|
242
|
-
{
|
|
243
|
-
"id": "VIS-001",
|
|
244
|
-
"severity": "high",
|
|
245
|
-
"type": "visual",
|
|
246
|
-
"page": "/dashboard",
|
|
247
|
-
"viewport": "desktop",
|
|
248
|
-
"category": "spacing",
|
|
249
|
-
"title": "Cards com padding inconsistente",
|
|
250
|
-
"description": "Card 'Receita' tem padding 16px, Card 'Despesas' tem padding 24px",
|
|
251
|
-
"evidence": {
|
|
252
|
-
"screenshot": ".plano/visual/dashboard-desktop.png",
|
|
253
|
-
"css_data": "Card 1: padding=16px, Card 2: padding=24px",
|
|
254
|
-
"expected": "Todos cards devem ter padding=16px (ou 24px — escolher um)"
|
|
255
|
-
},
|
|
256
|
-
"suggested_fix": "Unificar padding dos cards para o valor do design token (spacing-4 = 16px)"
|
|
257
|
-
}
|
|
258
|
-
```
|
|
259
|
-
|
|
260
|
-
**Classificacao de severidade:**
|
|
261
|
-
|
|
262
|
-
| Severidade | Criterio | Exemplos |
|
|
263
|
-
|-----------|----------|----------|
|
|
264
|
-
| critical | Ilegivel ou inacessivel | Contraste < 3:1, texto cortado, overflow |
|
|
265
|
-
| high | Profissionalismo comprometido | Desalinhamento visivel, inconsistencia cross-pagina |
|
|
266
|
-
| medium | Inconsistencia detectavel | Spacing off por 4px, radius diferente entre cards |
|
|
267
|
-
| low | Cosmetico, melhoria | Poderia ter mais breathing room, hover state sutil |
|
|
268
|
-
|
|
269
|
-
## Passo 5: Gerar Relatorio
|
|
270
|
-
|
|
271
|
-
Escrever `.plano/VISUAL-REPORT.md` (Quality Gate) ou `.plano/fases/[fase]/VISUAL-REPORT.md` (por fase):
|
|
272
|
-
|
|
273
|
-
```markdown
|
|
274
|
-
---
|
|
275
|
-
analyzed: {timestamp}
|
|
276
|
-
pages_tested: {N}
|
|
277
|
-
score: {N}/10
|
|
278
|
-
issues_found: {N}
|
|
279
|
-
critical: {N}
|
|
280
|
-
high: {N}
|
|
281
|
-
medium: {N}
|
|
282
|
-
low: {N}
|
|
283
|
-
---
|
|
284
|
-
|
|
285
|
-
# Visual Quality Report
|
|
286
|
-
|
|
287
|
-
**Score Geral:** {N}/10
|
|
288
|
-
**Paginas Analisadas:** {N}
|
|
289
|
-
**Issues:** {critical} criticas | {high} altas | {medium} medias | {low} baixas
|
|
290
|
-
|
|
291
|
-
## Score por Pagina
|
|
292
|
-
|
|
293
|
-
| Pagina | Desktop | Tablet | Mobile | Score | Issues |
|
|
294
|
-
|--------|---------|--------|--------|-------|--------|
|
|
295
|
-
| /dashboard | 8/10 | 7/10 | 6/10 | 7.0 | 4 |
|
|
296
|
-
| /settings | 9/10 | 8/10 | 7/10 | 8.0 | 2 |
|
|
297
|
-
|
|
298
|
-
## Issues Criticas
|
|
299
|
-
|
|
300
|
-
### VIS-001: [Titulo]
|
|
301
|
-
**Pagina:** [rota] | **Viewport:** [desktop/tablet/mobile]
|
|
302
|
-
**Categoria:** [spacing/typography/color/alignment/contrast/consistency]
|
|
303
|
-
**Descricao:** [o que esta errado]
|
|
304
|
-
**Evidencia CSS:** [dados extraidos]
|
|
305
|
-
**Screenshot:** [path]
|
|
306
|
-
**Fix sugerido:** [como corrigir]
|
|
307
|
-
|
|
308
|
-
## Issues Altas
|
|
309
|
-
...
|
|
310
|
-
|
|
311
|
-
## Issues Medias
|
|
312
|
-
...
|
|
313
|
-
|
|
314
|
-
## Consistencia Cross-Pagina
|
|
315
|
-
|
|
316
|
-
| Aspecto | Consistente? | Detalhes |
|
|
317
|
-
|---------|-------------|----------|
|
|
318
|
-
| Header/Nav | Sim/Nao | [detalhes] |
|
|
319
|
-
| Cores primarias | Sim/Nao | [detalhes] |
|
|
320
|
-
| Tipografia | Sim/Nao | [detalhes] |
|
|
321
|
-
| Card style | Sim/Nao | [detalhes] |
|
|
322
|
-
| Button style | Sim/Nao | [detalhes] |
|
|
323
|
-
|
|
324
|
-
## Design Tokens Compliance
|
|
325
|
-
|
|
326
|
-
| Token | Definido | Usado consistentemente? |
|
|
327
|
-
|-------|----------|------------------------|
|
|
328
|
-
| Cores | [valores] | Sim/Nao |
|
|
329
|
-
| Spacing | [escala] | Sim/Nao |
|
|
330
|
-
| Typography | [escala] | Sim/Nao |
|
|
331
|
-
| Radius | [valores] | Sim/Nao |
|
|
332
|
-
```
|
|
333
|
-
|
|
334
|
-
## Passo 6: Retornar
|
|
335
|
-
|
|
336
|
-
```markdown
|
|
337
|
-
## VISUAL CRITIQUE COMPLETE
|
|
338
|
-
|
|
339
|
-
**Score:** {N}/10
|
|
340
|
-
**Issues:** {critical} criticas | {high} altas | {medium} medias | {low} baixas
|
|
341
|
-
**Paginas:** {N} analisadas em 3 viewports
|
|
342
|
-
|
|
343
|
-
Arquivo: .plano/[fases/XX/]VISUAL-REPORT.md
|
|
344
|
-
Issues: .plano/[fases/XX/]VISUAL-ISSUES.json
|
|
345
|
-
```
|
|
346
|
-
</process>
|
|
347
|
-
|
|
348
|
-
<success_criteria>
|
|
349
|
-
- [ ] Design tokens carregados (ou ausencia registrada como issue)
|
|
350
|
-
- [ ] Todas paginas relevantes visitadas
|
|
351
|
-
- [ ] CSS extraido de cada pagina (Camada 1)
|
|
352
|
-
- [ ] Screenshots em 3 viewports por pagina (Camada 2)
|
|
353
|
-
- [ ] Checklist de 7 criterios preenchido por pagina (Camada 3)
|
|
354
|
-
- [ ] Comparacao cross-pagina executada
|
|
355
|
-
- [ ] Issues com ID, severidade, evidencia e fix sugerido
|
|
356
|
-
- [ ] VISUAL-REPORT.md gerado
|
|
357
|
-
- [ ] Score geral calculado
|
|
358
|
-
</success_criteria>
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: up:adicionar-fase
|
|
3
|
-
description: "[DEPRECADO] Use /up:planejar-fase \"descricao\" — adiciona e ja planeja"
|
|
4
|
-
argument-hint: "<descricao>"
|
|
5
|
-
allowed-tools:
|
|
6
|
-
- Read
|
|
7
|
-
- Write
|
|
8
|
-
- Edit
|
|
9
|
-
- Bash
|
|
10
|
-
- Glob
|
|
11
|
-
---
|
|
12
|
-
<objective>
|
|
13
|
-
**DEPRECADO desde v0.9.0.** Este comando foi absorvido pelo `/up:planejar-fase`.
|
|
14
|
-
|
|
15
|
-
Use: `/up:planejar-fase "descricao da fase"` — ele adiciona ao roadmap E ja planeja.
|
|
16
|
-
|
|
17
|
-
Se voce so quer adicionar ao roadmap SEM planejar, use diretamente:
|
|
18
|
-
```bash
|
|
19
|
-
node "$HOME/.claude/up/bin/up-tools.cjs" phase add "descricao"
|
|
20
|
-
```
|
|
21
|
-
</objective>
|
|
22
|
-
|
|
23
|
-
<process>
|
|
24
|
-
1. Informar ao usuario que este comando foi absorvido:
|
|
25
|
-
|
|
26
|
-
```
|
|
27
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
28
|
-
UP > COMANDO DEPRECADO
|
|
29
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
30
|
-
|
|
31
|
-
/up:adicionar-fase foi absorvido pelo /up:planejar-fase.
|
|
32
|
-
|
|
33
|
-
Agora voce pode fazer tudo de uma vez:
|
|
34
|
-
|
|
35
|
-
/up:planejar-fase "descricao da fase"
|
|
36
|
-
|
|
37
|
-
Isso adiciona a fase ao roadmap E ja gera os planos.
|
|
38
|
-
|
|
39
|
-
Redirecionando...
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
2. Redirecionar para planejar-fase com os mesmos argumentos:
|
|
43
|
-
|
|
44
|
-
```
|
|
45
|
-
Skill(skill="up:planejar-fase", args="$ARGUMENTS")
|
|
46
|
-
```
|
|
47
|
-
</process>
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: up:adicionar-testes
|
|
3
|
-
description: Gerar testes para uma fase completa baseado na implementacao e criterios UAT
|
|
4
|
-
argument-hint: "<fase> [instrucoes adicionais]"
|
|
5
|
-
allowed-tools:
|
|
6
|
-
- Read
|
|
7
|
-
- Write
|
|
8
|
-
- Edit
|
|
9
|
-
- Bash
|
|
10
|
-
- Glob
|
|
11
|
-
- Grep
|
|
12
|
-
- Task
|
|
13
|
-
- AskUserQuestion
|
|
14
|
-
argument-instructions: |
|
|
15
|
-
Parse o argumento como numero de fase (inteiro, decimal ou sufixo-letra), mais texto livre opcional.
|
|
16
|
-
Exemplo: /up:adicionar-testes 3
|
|
17
|
-
Exemplo: /up:adicionar-testes 3 focar em edge cases no modulo de precos
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
<objective>
|
|
21
|
-
Gerar testes unitarios e E2E para uma fase completa, usando SUMMARY.md, CONTEXT.md e VERIFICATION.md como especificacoes.
|
|
22
|
-
|
|
23
|
-
Analisa arquivos de implementacao, classifica em TDD (unitario), E2E (browser) ou Pular, apresenta plano de testes para aprovacao, e gera testes seguindo convencoes RED-GREEN.
|
|
24
|
-
|
|
25
|
-
Output: Arquivos de teste commitados com mensagem `test(fase-{N}): adicionar testes unitarios e E2E`
|
|
26
|
-
</objective>
|
|
27
|
-
|
|
28
|
-
<context>
|
|
29
|
-
Fase: $ARGUMENTS
|
|
30
|
-
|
|
31
|
-
@.plano/STATE.md
|
|
32
|
-
@.plano/ROADMAP.md
|
|
33
|
-
</context>
|
|
34
|
-
|
|
35
|
-
<process>
|
|
36
|
-
|
|
37
|
-
## 1. Carregar Contexto da Fase
|
|
38
|
-
|
|
39
|
-
```bash
|
|
40
|
-
INIT=$(node "$HOME/.claude/up/bin/up-tools.cjs" init operacao-fase "${FASE_ARG}")
|
|
41
|
-
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
Extrair: `phase_dir`, `phase_number`, `phase_name`.
|
|
45
|
-
|
|
46
|
-
Se fase nao existe: erro e sair.
|
|
47
|
-
Se nao ha SUMMARY.md: erro — fase precisa estar completa primeiro.
|
|
48
|
-
|
|
49
|
-
```
|
|
50
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
51
|
-
UP > ADICIONAR TESTES — Fase ${phase_number}: ${phase_name}
|
|
52
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
Ler artefatos da fase:
|
|
56
|
-
1. `${phase_dir}/*-SUMMARY.md` — o que foi implementado, arquivos modificados
|
|
57
|
-
2. `${phase_dir}/CONTEXT.md` — criterios de aceite, decisoes
|
|
58
|
-
3. `${phase_dir}/*-VERIFICATION.md` — cenarios verificados pelo usuario (se UAT feito)
|
|
59
|
-
|
|
60
|
-
## 2. Analisar e Classificar Arquivos
|
|
61
|
-
|
|
62
|
-
Para cada arquivo modificado pela fase, classificar:
|
|
63
|
-
|
|
64
|
-
| Categoria | Criterio | Tipo de Teste |
|
|
65
|
-
|-----------|----------|---------------|
|
|
66
|
-
| **TDD** | Funcoes puras, logica de negocio, validacoes, parsers, transformacoes | Unitario |
|
|
67
|
-
| **E2E** | Interacoes UI, navegacao, formularios, shortcuts, modais | Browser/E2E |
|
|
68
|
-
| **Pular** | Layout/CSS, config, glue code, migrations, tipos sem logica | Nenhum |
|
|
69
|
-
|
|
70
|
-
Ler cada arquivo para confirmar classificacao — nao classificar so pelo nome.
|
|
71
|
-
|
|
72
|
-
## 3. Aprovar Classificacao
|
|
73
|
-
|
|
74
|
-
```
|
|
75
|
-
AskUserQuestion(
|
|
76
|
-
header: "Classificacao de Testes",
|
|
77
|
-
question: |
|
|
78
|
-
### TDD (Unitarios) — {N} arquivos
|
|
79
|
-
{lista com motivo breve}
|
|
80
|
-
|
|
81
|
-
### E2E (Browser) — {M} arquivos
|
|
82
|
-
{lista com motivo breve}
|
|
83
|
-
|
|
84
|
-
### Pular — {K} arquivos
|
|
85
|
-
{lista com motivo breve}
|
|
86
|
-
|
|
87
|
-
Como prosseguir?
|
|
88
|
-
options:
|
|
89
|
-
- "Aprovar e gerar plano de testes"
|
|
90
|
-
- "Ajustar classificacao"
|
|
91
|
-
- "Cancelar"
|
|
92
|
-
)
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
## 4. Descobrir Estrutura de Testes do Projeto
|
|
96
|
-
|
|
97
|
-
Identificar:
|
|
98
|
-
- Diretorios de teste existentes
|
|
99
|
-
- Convencoes de nomeacao (`.test.ts`, `.spec.ts`, etc.)
|
|
100
|
-
- Comandos do test runner
|
|
101
|
-
- Framework de teste
|
|
102
|
-
|
|
103
|
-
## 5. Gerar Plano de Testes
|
|
104
|
-
|
|
105
|
-
Para cada arquivo aprovado, criar plano detalhado:
|
|
106
|
-
- **TDD:** funcoes testaveis, cenarios de input, outputs esperados, edge cases
|
|
107
|
-
- **E2E:** cenarios de usuario, acoes, outcomes, assertions
|
|
108
|
-
|
|
109
|
-
Apresentar plano completo para aprovacao.
|
|
110
|
-
|
|
111
|
-
## 6. Gerar Testes
|
|
112
|
-
|
|
113
|
-
**TDD:** Arrange/Act/Assert. Executar cada teste. Flaggar falhas como possiveis bugs (NAO corrigir implementacao).
|
|
114
|
-
|
|
115
|
-
**E2E:** Criar testes de cenario. Executar. Reportar blockers.
|
|
116
|
-
|
|
117
|
-
## 7. Resumo e Commit
|
|
118
|
-
|
|
119
|
-
```
|
|
120
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
121
|
-
UP > TESTES GERADOS
|
|
122
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
123
|
-
|
|
124
|
-
| Categoria | Gerados | Passando | Falhando | Bloqueados |
|
|
125
|
-
|-----------|---------|----------|----------|------------|
|
|
126
|
-
| Unitario | {N} | {n1} | {n2} | {n3} |
|
|
127
|
-
| E2E | {M} | {m1} | {m2} | {m3} |
|
|
128
|
-
|
|
129
|
-
Arquivos criados: {lista}
|
|
130
|
-
Gaps de cobertura: {areas nao testaveis e motivo}
|
|
131
|
-
Bugs descobertos: {falhas que indicam bugs na implementacao}
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
Commitar testes passando:
|
|
135
|
-
```bash
|
|
136
|
-
git add {arquivos de teste}
|
|
137
|
-
git commit -m "test(fase-${phase_number}): adicionar testes unitarios e E2E"
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
Proximos passos:
|
|
141
|
-
- Se bugs: `/up:rapido corrigir {N} falhas de teste na fase ${phase_number}`
|
|
142
|
-
- Se blockers: descrever o que falta
|
|
143
|
-
- Se tudo ok: "Todos os testes passando!"
|
|
144
|
-
|
|
145
|
-
</process>
|