up-cc 0.4.1 → 0.4.2
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/package.json +1 -1
- package/workflows/builder.md +126 -23
- package/workflows/dcrv.md +421 -0
- package/workflows/executar-fase.md +57 -2
- package/workflows/rapido.md +29 -1
- package/workflows/ux-tester.md +26 -0
- package/workflows/verificar-trabalho.md +47 -0
package/package.json
CHANGED
package/workflows/builder.md
CHANGED
|
@@ -1046,6 +1046,67 @@ Fase {X}: E2E — {passed}/{total} testes passaram [{bugs} bugs, {fixed} corrigi
|
|
|
1046
1046
|
**Se nao tem UI:** Pular silenciosamente.
|
|
1047
1047
|
**Se dev server falha:** Registrar e pular E2E (nao bloqueia).
|
|
1048
1048
|
|
|
1049
|
+
#### 3.1.5.1 Loop DCRV — Detectar, Classificar, Resolver, Verificar (Por Fase)
|
|
1050
|
+
|
|
1051
|
+
**Apos o E2E da fase**, rodar o workflow DCRV completo.
|
|
1052
|
+
|
|
1053
|
+
**Referencia:** `@~/.claude/up/workflows/dcrv.md`
|
|
1054
|
+
|
|
1055
|
+
Executar com parametros:
|
|
1056
|
+
```
|
|
1057
|
+
SCOPE=phase
|
|
1058
|
+
PHASE_DIR={phase_dir}
|
|
1059
|
+
PHASE_NUMBER={phase_number}
|
|
1060
|
+
PORT={porta do dev server}
|
|
1061
|
+
MAX_CYCLES=3
|
|
1062
|
+
MAX_ISSUES_PER_CYCLE=15
|
|
1063
|
+
AUTO_FIX=true
|
|
1064
|
+
REGRESSION=false (smoke test e separado no passo 3.1.5.2)
|
|
1065
|
+
```
|
|
1066
|
+
|
|
1067
|
+
O workflow DCRV cuida de:
|
|
1068
|
+
1. Detectar modo (UI, API, ambos, nenhum)
|
|
1069
|
+
2. Rodar detectores na ordem (Visual → API → Exhaustive)
|
|
1070
|
+
3. Consolidar issue board
|
|
1071
|
+
4. Dispatcher diagnostica e roteia para especialistas
|
|
1072
|
+
5. Especialistas corrigem com commits atomicos
|
|
1073
|
+
6. Re-verificacao das issues corrigidas
|
|
1074
|
+
7. Loop ate resolver ou max ciclos
|
|
1075
|
+
|
|
1076
|
+
Issues pendentes sao salvas em `.plano/issues-carryover/` para o Quality Gate (Estagio 4).
|
|
1077
|
+
|
|
1078
|
+
```
|
|
1079
|
+
Fase {X}: DCRV — {resolved}/{total} issues resolvidas [{pending} pendentes → Quality Gate]
|
|
1080
|
+
```
|
|
1081
|
+
|
|
1082
|
+
#### 3.1.5.2 Smoke Test de Regressao (A partir da Fase 3)
|
|
1083
|
+
|
|
1084
|
+
**A partir da terceira fase**, fazer smoke test rapido das paginas de fases ANTERIORES.
|
|
1085
|
+
Objetivo: detectar regressoes causadas por mudancas em componentes compartilhados.
|
|
1086
|
+
|
|
1087
|
+
**NAO e exaustivo** — apenas:
|
|
1088
|
+
1. Navegar cada rota de fases anteriores
|
|
1089
|
+
2. Verificar que renderiza (nao tela branca, nao 404)
|
|
1090
|
+
3. Screenshot rapido
|
|
1091
|
+
4. Checar console por erros novos
|
|
1092
|
+
|
|
1093
|
+
```
|
|
1094
|
+
Para cada fase anterior com UI:
|
|
1095
|
+
Para cada rota da fase:
|
|
1096
|
+
browser_navigate(url)
|
|
1097
|
+
browser_console_messages(level: "error")
|
|
1098
|
+
Se erro novo detectado → registrar como regressao
|
|
1099
|
+
```
|
|
1100
|
+
|
|
1101
|
+
Se regressao encontrada:
|
|
1102
|
+
- Severidade: HIGH (algo que funcionava quebrou)
|
|
1103
|
+
- Corrigir imediatamente (nao carregar para Quality Gate)
|
|
1104
|
+
- Commit: `fix(fase-{X}): regressao em [pagina] causada por fase {Y}`
|
|
1105
|
+
|
|
1106
|
+
```
|
|
1107
|
+
Smoke test regressao: {N} rotas anteriores | {OK} ok | {REGRESS} regressoes [{FIXED} corrigidas]
|
|
1108
|
+
```
|
|
1109
|
+
|
|
1049
1110
|
#### 3.1.6 Marcar Fase Completa
|
|
1050
1111
|
|
|
1051
1112
|
```bash
|
|
@@ -1118,16 +1179,22 @@ Voltar para 3.1.1 com a proxima fase. Sem /clear — continuar no mesmo contexto
|
|
|
1118
1179
|
Executado APOS todas as fases do build completarem.
|
|
1119
1180
|
Ciclo de avaliacao → correcao → re-avaliacao ate atingir score >= 9.0/10.
|
|
1120
1181
|
|
|
1121
|
-
**Score Composto (
|
|
1182
|
+
**Score Composto (9 dimensoes):**
|
|
1122
1183
|
|
|
1123
1184
|
| Dimensao | Peso | Como mede |
|
|
1124
1185
|
|----------|------|-----------|
|
|
1125
|
-
| Funcionalidade |
|
|
1126
|
-
|
|
|
1127
|
-
|
|
|
1128
|
-
|
|
|
1129
|
-
|
|
|
1130
|
-
|
|
|
1186
|
+
| Funcionalidade | 15% | Requisitos atendidos / total (REQUIREMENTS.md) |
|
|
1187
|
+
| Blind Validation | 15% | Score do BLIND-VALIDATION.md |
|
|
1188
|
+
| Visual Quality | 12% | Score do up-visual-critic (VISUAL-REPORT.md) |
|
|
1189
|
+
| Exhaustive | 10% | Pass rate do up-exhaustive-tester (EXHAUSTIVE-REPORT.md) |
|
|
1190
|
+
| API Robustez | 8% | Pass rate do up-api-tester (API-REPORT.md) |
|
|
1191
|
+
| E2E | 10% | Testes passando / total (Playwright) |
|
|
1192
|
+
| UX | 10% | Score do UX tester (6 sub-dimensoes) |
|
|
1193
|
+
| Responsividade | 10% | Score do mobile-first |
|
|
1194
|
+
| Codigo | 10% | Score do code reviewer + melhorias |
|
|
1195
|
+
|
|
1196
|
+
**Nota:** Se projeto nao tem UI, redistribuir pesos de Visual/Exhaustive/UX/Responsividade para API/Funcionalidade/Codigo.
|
|
1197
|
+
**Nota:** Se projeto nao tem API, redistribuir peso de API para outros.
|
|
1131
1198
|
|
|
1132
1199
|
**Limites de seguranca:**
|
|
1133
1200
|
- Max 5 ciclos de refinamento
|
|
@@ -1445,24 +1512,35 @@ Blind Validation: {score}% | {passed} PASS | {failed} FAIL | {partial} PARTIAL
|
|
|
1445
1512
|
Agregar scores de todos os avaliadores:
|
|
1446
1513
|
|
|
1447
1514
|
```
|
|
1448
|
-
Funcionalidade (
|
|
1449
|
-
Blind Valid. (
|
|
1450
|
-
|
|
1515
|
+
Funcionalidade (15%): requisitos [x] / total no REQUIREMENTS.md → 0-10
|
|
1516
|
+
Blind Valid. (15%): score do BLIND-VALIDATION.md → 0-10
|
|
1517
|
+
Visual (12%): score do VISUAL-REPORT.md → 0-10
|
|
1518
|
+
Exhaustive (10%): pass rate do EXHAUSTIVE-REPORT.md → 0-10
|
|
1519
|
+
API (8%): pass rate do API-REPORT.md → 0-10
|
|
1520
|
+
E2E (10%): testes passaram / total no E2E mais recente → 0-10
|
|
1451
1521
|
UX (10%): score do UX-REPORT.md → 0-10
|
|
1452
1522
|
Responsividade (10%): score do MOBILE-REPORT.md → 0-10
|
|
1453
|
-
Codigo (
|
|
1454
|
-
Completude (10%): rotas sem erro / total no smoke test → 0-10
|
|
1523
|
+
Codigo (10%): score do CODE-REVIEW + melhorias → 0-10
|
|
1455
1524
|
|
|
1456
1525
|
**Modo normal:**
|
|
1457
|
-
Score = (func × 0.
|
|
1526
|
+
Score = (func × 0.15) + (blind × 0.15) + (visual × 0.12) + (exhaustive × 0.10) + (api × 0.08) + (e2e × 0.10) + (ux × 0.10) + (resp × 0.10) + (cod × 0.10)
|
|
1458
1527
|
|
|
1459
1528
|
**Modo clone (builder_type: "clone"):**
|
|
1460
|
-
Score = (func × 0.
|
|
1529
|
+
Score = (func × 0.10) + (fidelidade × 0.15) + (blind × 0.10) + (visual × 0.15) + (exhaustive × 0.10) + (api × 0.05) + (e2e × 0.10) + (ux × 0.05) + (resp × 0.10) + (cod × 0.10)
|
|
1461
1530
|
|
|
1462
1531
|
A dimensao "Fidelidade" usa o up-clone-verifier: compara features (funcional) + visual contra original.
|
|
1463
1532
|
```
|
|
1464
1533
|
|
|
1465
|
-
**Se algum avaliador nao rodou** (ex: sem UI, sem E2E): redistribuir peso proporcionalmente entre os que rodaram.
|
|
1534
|
+
**Se algum avaliador nao rodou** (ex: sem UI, sem E2E, sem API): redistribuir peso proporcionalmente entre os que rodaram.
|
|
1535
|
+
|
|
1536
|
+
**Issues Carryover das Fases:**
|
|
1537
|
+
|
|
1538
|
+
Antes de iniciar o Quality Gate, carregar issues pendentes do loop DCRV por fase:
|
|
1539
|
+
```bash
|
|
1540
|
+
ls .plano/issues-carryover/*.json 2>/dev/null
|
|
1541
|
+
```
|
|
1542
|
+
Estas issues ja foram detectadas e tentadas — se ainda existem, sao as mais dificeis.
|
|
1543
|
+
Incluir no board de issues do Quality Gate com flag `carryover: true`.
|
|
1466
1544
|
|
|
1467
1545
|
```
|
|
1468
1546
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
@@ -1471,12 +1549,15 @@ A dimensao "Fidelidade" usa o up-clone-verifier: compara features (funcional) +
|
|
|
1471
1549
|
|
|
1472
1550
|
| Dimensao | Score | Peso | Contribuicao |
|
|
1473
1551
|
|----------|-------|------|-------------|
|
|
1474
|
-
| Funcionalidade | [N]/10 |
|
|
1475
|
-
|
|
|
1476
|
-
|
|
|
1477
|
-
|
|
|
1478
|
-
|
|
|
1479
|
-
|
|
|
1552
|
+
| Funcionalidade | [N]/10 | 15% | [X] |
|
|
1553
|
+
| Blind Validation | [N]/10 | 15% | [X] |
|
|
1554
|
+
| Visual Quality | [N]/10 | 12% | [X] |
|
|
1555
|
+
| Exhaustive | [N]/10 | 10% | [X] |
|
|
1556
|
+
| API Robustez | [N]/10 | 8% | [X] |
|
|
1557
|
+
| E2E | [N]/10 | 10% | [X] |
|
|
1558
|
+
| UX | [N]/10 | 10% | [X] |
|
|
1559
|
+
| Responsividade | [N]/10 | 10% | [X] |
|
|
1560
|
+
| Codigo | [N]/10 | 10% | [X] |
|
|
1480
1561
|
| **TOTAL** | **[SCORE]/10** | | |
|
|
1481
1562
|
```
|
|
1482
1563
|
|
|
@@ -1497,13 +1578,28 @@ Identificar top gaps (dimensoes com menor score):
|
|
|
1497
1578
|
- Extrair issues nao corrigidas / requisitos pendentes
|
|
1498
1579
|
- Priorizar por impacto no score
|
|
1499
1580
|
|
|
1500
|
-
**
|
|
1581
|
+
**Rodar 3 detectores no projeto INTEIRO (nao apenas por fase):**
|
|
1582
|
+
|
|
1583
|
+
Ordem: Visual Critic → API Tester → Exhaustive Tester
|
|
1584
|
+
|
|
1585
|
+
Cada detector roda em TODAS as paginas/rotas, detectando:
|
|
1586
|
+
- Issues novas (nao encontradas no DCRV por fase)
|
|
1587
|
+
- Regressoes cross-fase (inconsistencia entre paginas de fases diferentes)
|
|
1588
|
+
- Issues carryover (pendentes das fases) — re-verificar se ainda existem
|
|
1589
|
+
|
|
1590
|
+
**Implementar correcoes via Dispatcher (mesmo protocolo do DCRV por fase):**
|
|
1591
|
+
- Issues visuais (VIS-*): diagnosticar → up-frontend-specialist
|
|
1592
|
+
- Issues de interacao (INT-*): diagnosticar → up-frontend-specialist ou up-backend-specialist
|
|
1593
|
+
- Issues de API (API-*): diagnosticar → up-backend-specialist ou up-database-specialist
|
|
1501
1594
|
- Issues de codigo: planejar mini-fase → executar → commit
|
|
1502
1595
|
- Issues de UX: aplicar fixes (mesmo processo do UX tester)
|
|
1503
1596
|
- Issues de responsividade: aplicar fixes (mesmo processo do mobile-first)
|
|
1504
1597
|
- Requisitos pendentes: planejar mini-fase → executar
|
|
1505
1598
|
- Issues de E2E: corrigir bugs (max 5 tentativas)
|
|
1506
1599
|
|
|
1600
|
+
**Cap de issues por ciclo: max 20** (mais generoso que o DCRV por fase).
|
|
1601
|
+
Prioridade: critical > high > medium. Low nunca entra.
|
|
1602
|
+
|
|
1507
1603
|
Apos implementar:
|
|
1508
1604
|
|
|
1509
1605
|
```
|
|
@@ -2218,6 +2314,9 @@ Com 1M de contexto, a maioria dos projetos cabe sem /clear. Mas monitore:
|
|
|
2218
2314
|
- [ ] Estagio 3: Todas as fases verificadas
|
|
2219
2315
|
- [ ] Estagio 3: Fases com UI testadas via Playwright (E2E-RESULTS.md)
|
|
2220
2316
|
- [ ] Estagio 3: Bugs E2E corrigidos (quando possivel)
|
|
2317
|
+
- [ ] Estagio 3: DCRV por fase executado (Visual Critic + Exhaustive Tester + API Tester)
|
|
2318
|
+
- [ ] Estagio 3: Issues DCRV corrigidas via dispatcher (max 3 ciclos por fase)
|
|
2319
|
+
- [ ] Estagio 3: Smoke test de regressao em fases anteriores (a partir da fase 3)
|
|
2221
2320
|
- [ ] Estagio 3: Reassessment apos cada fase (roadmap re-avaliado)
|
|
2222
2321
|
- [ ] Estagio 3: Commits atomicos por tarefa
|
|
2223
2322
|
- [ ] Estagio 3: LOCK.md atualizado a cada transicao de estado
|
|
@@ -2229,7 +2328,11 @@ Com 1M de contexto, a maioria dos projetos cabe sem /clear. Mas monitore:
|
|
|
2229
2328
|
- [ ] Estagio 4: UX-REPORT.md gerado com scores e screenshots
|
|
2230
2329
|
- [ ] Estagio 4: Mobile First executado (responsividade verificada em 3 viewports)
|
|
2231
2330
|
- [ ] Estagio 4: MOBILE-REPORT.md gerado com score e screenshots comparativos
|
|
2232
|
-
- [ ] Estagio 4:
|
|
2331
|
+
- [ ] Estagio 4: Visual Critic global executado (VISUAL-REPORT.md)
|
|
2332
|
+
- [ ] Estagio 4: Exhaustive Tester global executado (EXHAUSTIVE-REPORT.md)
|
|
2333
|
+
- [ ] Estagio 4: API Tester global executado (API-REPORT.md)
|
|
2334
|
+
- [ ] Estagio 4: Issues carryover das fases processadas
|
|
2335
|
+
- [ ] Estagio 4: Score composto calculado (9 dimensoes)
|
|
2233
2336
|
- [ ] Estagio 4: Quality gate loop executado (ate score >= 9.0 ou max 5 ciclos)
|
|
2234
2337
|
- [ ] Estagio 4: DevOps artifacts gerados (Dockerfile, CI/CD, .env.example, seed)
|
|
2235
2338
|
- [ ] Estagio 4: Documentacao gerada (README, CHANGELOG, API docs)
|
|
@@ -0,0 +1,421 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Workflow DCRV (Detectar → Classificar → Resolver → Verificar) — loop de qualidade reutilizavel.
|
|
3
|
+
|
|
4
|
+
Roda 3 detectores (Visual Critic, Exhaustive Tester, API Tester), consolida issues, despacha para especialistas corrigirem, e re-verifica. Loop ate resolver ou atingir max ciclos.
|
|
5
|
+
|
|
6
|
+
**Modos de uso:**
|
|
7
|
+
- **Por fase (builder):** Testa apenas paginas/rotas da fase recem-executada
|
|
8
|
+
- **Global (quality gate):** Testa TODAS as paginas/rotas do projeto
|
|
9
|
+
- **Standalone:** Chamado por /up:executar-fase, /up:rapido, /up:ux-tester, /up:verificar-trabalho
|
|
10
|
+
- **Light (1 ciclo):** Roda detectores + reporta, sem loop de correcao
|
|
11
|
+
|
|
12
|
+
**Parametros esperados no prompt:**
|
|
13
|
+
- `$SCOPE`: "phase" | "global" | "light"
|
|
14
|
+
- `$PHASE_DIR`: diretorio da fase (se scope=phase)
|
|
15
|
+
- `$PHASE_NUMBER`: numero da fase (se scope=phase)
|
|
16
|
+
- `$ROUTES`: lista de rotas a testar (se vazio, descobre automaticamente)
|
|
17
|
+
- `$PORT`: porta do dev server (default: 3000)
|
|
18
|
+
- `$MAX_CYCLES`: max ciclos de correcao (default: 3 para phase, 5 para global, 1 para light)
|
|
19
|
+
- `$MAX_ISSUES_PER_CYCLE`: max issues para corrigir por ciclo (default: 15 para phase, 20 para global)
|
|
20
|
+
- `$AUTO_FIX`: true | false (se false, apenas reporta sem corrigir)
|
|
21
|
+
</purpose>
|
|
22
|
+
|
|
23
|
+
<process>
|
|
24
|
+
|
|
25
|
+
## Passo 0: Setup
|
|
26
|
+
|
|
27
|
+
### 0.1 Detectar o que testar
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# Dev server rodando?
|
|
31
|
+
curl -s http://localhost:${PORT:-3000} > /dev/null 2>&1
|
|
32
|
+
if [ $? -ne 0 ]; then
|
|
33
|
+
echo "DEV_SERVER_DOWN"
|
|
34
|
+
fi
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Se dev server nao esta rodando: subir automaticamente.
|
|
38
|
+
```bash
|
|
39
|
+
if [ -f package.json ]; then
|
|
40
|
+
npm run dev > /tmp/up-dcrv-server.log 2>&1 &
|
|
41
|
+
DCRV_DEV_PID=$!
|
|
42
|
+
for i in $(seq 1 30); do
|
|
43
|
+
curl -s http://localhost:${PORT:-3000} > /dev/null 2>&1 && break
|
|
44
|
+
sleep 1
|
|
45
|
+
done
|
|
46
|
+
fi
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### 0.2 Descobrir rotas (se $ROUTES vazio)
|
|
50
|
+
|
|
51
|
+
**Se scope=phase:** Ler SUMMARY da fase para extrair rotas criadas/modificadas.
|
|
52
|
+
```bash
|
|
53
|
+
cat "$PHASE_DIR"/*-SUMMARY.md 2>/dev/null
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**Se scope=global ou standalone:** Descobrir todas as rotas.
|
|
57
|
+
```bash
|
|
58
|
+
find app -name "page.tsx" -o -name "page.ts" 2>/dev/null | head -30
|
|
59
|
+
find pages -name "*.tsx" -o -name "*.ts" 2>/dev/null | grep -v "_app\|_document\|api/" | head -30
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**Descobrir rotas API:**
|
|
63
|
+
```bash
|
|
64
|
+
find app -path "*/api/*" -name "route.ts" 2>/dev/null
|
|
65
|
+
find pages/api -name "*.ts" -o -name "*.js" 2>/dev/null
|
|
66
|
+
grep -rn "app\.\(get\|post\|put\|patch\|delete\)" src/ --include="*.ts" --include="*.js" 2>/dev/null | head -20
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### 0.3 Classificar projeto
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
HAS_UI = rotas de pagina encontradas?
|
|
73
|
+
HAS_API = rotas de API encontradas?
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
| Projeto | Detectores |
|
|
77
|
+
|---------|-----------|
|
|
78
|
+
| UI + API | Visual Critic → API Tester → Exhaustive Tester (todos) |
|
|
79
|
+
| UI only | Visual Critic → Exhaustive Tester (pular API) |
|
|
80
|
+
| API only | API Tester com profundidade extra (pular visual + exhaustive) |
|
|
81
|
+
| Infra/schema | Pular DCRV (nada para testar via browser/curl) |
|
|
82
|
+
|
|
83
|
+
### 0.4 Carregar referencia visual
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
cat .plano/DESIGN-TOKENS.md 2>/dev/null
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Se nao existe: visual critic vai inferir do codebase (e registrar ausencia como issue leve).
|
|
90
|
+
|
|
91
|
+
### 0.5 Definir output dir
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
if [ "$SCOPE" = "phase" ]; then
|
|
95
|
+
DCRV_DIR="$PHASE_DIR/dcrv"
|
|
96
|
+
elif [ "$SCOPE" = "global" ]; then
|
|
97
|
+
DCRV_DIR=".plano/dcrv"
|
|
98
|
+
else
|
|
99
|
+
DCRV_DIR=".plano/dcrv"
|
|
100
|
+
fi
|
|
101
|
+
mkdir -p "$DCRV_DIR"
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## Passo 1: Detectar (Rodar Detectores)
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
108
|
+
DCRV > DETECTANDO — CICLO {CYCLE}/{MAX_CYCLES}
|
|
109
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
**Ordem obrigatoria: Visual → API → Exhaustive**
|
|
113
|
+
(Visual so observa, API usa curl, Exhaustive clica em tudo — minimiza interferencia)
|
|
114
|
+
|
|
115
|
+
### 1.1 Visual Critic (se HAS_UI)
|
|
116
|
+
|
|
117
|
+
```python
|
|
118
|
+
Agent(
|
|
119
|
+
subagent_type="up-visual-critic",
|
|
120
|
+
prompt="""
|
|
121
|
+
Avaliar qualidade visual.
|
|
122
|
+
|
|
123
|
+
<files_to_read>
|
|
124
|
+
- .plano/DESIGN-TOKENS.md (referencia visual, se existe)
|
|
125
|
+
</files_to_read>
|
|
126
|
+
|
|
127
|
+
Paginas a testar: {$ROUTES_UI}
|
|
128
|
+
Dev server: http://localhost:{$PORT}
|
|
129
|
+
|
|
130
|
+
Salvar relatorio em: {$DCRV_DIR}/VISUAL-REPORT.md
|
|
131
|
+
Salvar issues em: {$DCRV_DIR}/VISUAL-ISSUES.json
|
|
132
|
+
"""
|
|
133
|
+
)
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### 1.2 API Tester (se HAS_API)
|
|
137
|
+
|
|
138
|
+
```python
|
|
139
|
+
Agent(
|
|
140
|
+
subagent_type="up-api-tester",
|
|
141
|
+
prompt="""
|
|
142
|
+
Testar robustez das rotas API.
|
|
143
|
+
|
|
144
|
+
Rotas a testar: {$ROUTES_API}
|
|
145
|
+
Dev server: http://localhost:{$PORT}
|
|
146
|
+
|
|
147
|
+
Salvar relatorio em: {$DCRV_DIR}/API-REPORT.md
|
|
148
|
+
Salvar issues em: {$DCRV_DIR}/API-ISSUES.json
|
|
149
|
+
"""
|
|
150
|
+
)
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### 1.3 Exhaustive Tester (se HAS_UI)
|
|
154
|
+
|
|
155
|
+
```python
|
|
156
|
+
Agent(
|
|
157
|
+
subagent_type="up-exhaustive-tester",
|
|
158
|
+
prompt="""
|
|
159
|
+
Testar CADA elemento interativo.
|
|
160
|
+
|
|
161
|
+
Paginas a testar: {$ROUTES_UI}
|
|
162
|
+
Dev server: http://localhost:{$PORT}
|
|
163
|
+
Sem limite de elementos — testar TODOS.
|
|
164
|
+
|
|
165
|
+
Salvar relatorio em: {$DCRV_DIR}/EXHAUSTIVE-REPORT.md
|
|
166
|
+
Salvar issues em: {$DCRV_DIR}/EXHAUSTIVE-ISSUES.json
|
|
167
|
+
"""
|
|
168
|
+
)
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
## Passo 2: Classificar (Consolidar Issue Board)
|
|
172
|
+
|
|
173
|
+
Ler os JSONs de issues dos detectores que rodaram.
|
|
174
|
+
|
|
175
|
+
### 2.1 Deduplicar
|
|
176
|
+
|
|
177
|
+
Se visual e exhaustive reportaram o mesmo elemento/pagina: manter a issue mais detalhada.
|
|
178
|
+
Criterio: mesmo `page` + mesmo `element` (por texto ou ref) = duplicata.
|
|
179
|
+
|
|
180
|
+
### 2.2 Classificar por severidade
|
|
181
|
+
|
|
182
|
+
| Severidade | Criterio |
|
|
183
|
+
|-----------|----------|
|
|
184
|
+
| critical | Tela branca, crash, auth bypass, perda de dados, app inacessivel |
|
|
185
|
+
| high | Funcionalidade principal quebrada, 500 em input basico, botao principal sem efeito |
|
|
186
|
+
| medium | Inconsistencia visual, validacao faltando, feedback ausente |
|
|
187
|
+
| low | Cosmetico, melhoria de polish, mensagem generica |
|
|
188
|
+
|
|
189
|
+
### 2.3 Priorizar para correcao
|
|
190
|
+
|
|
191
|
+
Cap por ciclo: $MAX_ISSUES_PER_CYCLE (default: 15 phase, 20 global)
|
|
192
|
+
Prioridade: critical (todas) > high (ate cap) > medium (se sobrar) > low (NUNCA no loop)
|
|
193
|
+
|
|
194
|
+
### 2.4 Gerar ISSUE-BOARD.md
|
|
195
|
+
|
|
196
|
+
```markdown
|
|
197
|
+
---
|
|
198
|
+
cycle: {CYCLE}
|
|
199
|
+
timestamp: {now}
|
|
200
|
+
total: {N}
|
|
201
|
+
critical: {N}
|
|
202
|
+
high: {N}
|
|
203
|
+
medium: {N}
|
|
204
|
+
low: {N}
|
|
205
|
+
to_fix: {N}
|
|
206
|
+
deferred: {N}
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
# DCRV Issue Board — Ciclo {CYCLE}
|
|
210
|
+
|
|
211
|
+
## Issues para Correcao (max {MAX_ISSUES_PER_CYCLE})
|
|
212
|
+
|
|
213
|
+
| ID | Sev | Tipo | Pagina/Rota | Titulo | Detector |
|
|
214
|
+
|----|-----|------|-------------|--------|----------|
|
|
215
|
+
| VIS-001 | high | visual | /dashboard | Cards com padding inconsistente | visual-critic |
|
|
216
|
+
| INT-003 | high | interaction | /dashboard | Botao Exportar sem efeito | exhaustive |
|
|
217
|
+
| API-007 | critical | api | POST /api/users | Aceita amount negativo | api-tester |
|
|
218
|
+
|
|
219
|
+
## Issues Deferidas (low)
|
|
220
|
+
|
|
221
|
+
| ID | Sev | Tipo | Pagina/Rota | Titulo |
|
|
222
|
+
|----|-----|------|-------------|--------|
|
|
223
|
+
| VIS-012 | low | visual | /settings | Poderia ter mais breathing room |
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
Escrever em `{$DCRV_DIR}/ISSUE-BOARD.md`.
|
|
227
|
+
|
|
228
|
+
**Se $AUTO_FIX = false:** Parar aqui. Retornar relatorio sem corrigir.
|
|
229
|
+
|
|
230
|
+
**Se zero issues para correcao:** Pular para Passo 5 (score perfeito).
|
|
231
|
+
|
|
232
|
+
## Passo 3: Resolver (Dispatcher + Especialistas)
|
|
233
|
+
|
|
234
|
+
```
|
|
235
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
236
|
+
DCRV > CORRIGINDO — {N} issues — CICLO {CYCLE}
|
|
237
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
### 3.1 Diagnosticar e Rotear
|
|
241
|
+
|
|
242
|
+
Para cada issue a corrigir, o orquestrador FAZ diagnostico rapido:
|
|
243
|
+
|
|
244
|
+
**Issues visuais (VIS-*):**
|
|
245
|
+
```bash
|
|
246
|
+
# Encontrar componente da pagina
|
|
247
|
+
grep -rn "[rota_ou_componente]" src/ --include="*.tsx" --include="*.ts" | head -5
|
|
248
|
+
```
|
|
249
|
+
→ Rotear para `up-frontend-specialist`
|
|
250
|
+
|
|
251
|
+
**Issues de interacao (INT-*):**
|
|
252
|
+
```bash
|
|
253
|
+
# Verificar se handler existe
|
|
254
|
+
grep -rn "onClick\|onSubmit\|onChange" [arquivo_do_componente] | head -10
|
|
255
|
+
```
|
|
256
|
+
- Handler existe e chama API? → Verificar se API funciona
|
|
257
|
+
- API falha: `up-backend-specialist`
|
|
258
|
+
- API OK, handler bugado: `up-frontend-specialist`
|
|
259
|
+
- Handler nao existe: `up-frontend-specialist`
|
|
260
|
+
- Handler vazio (`() => {}`): `up-frontend-specialist`
|
|
261
|
+
|
|
262
|
+
**Issues de API (API-*):**
|
|
263
|
+
- Validacao faltando: `up-backend-specialist`
|
|
264
|
+
- Schema/dados errados: `up-database-specialist`
|
|
265
|
+
- Auth bypass: `up-backend-specialist`
|
|
266
|
+
- 500 crash: `up-backend-specialist`
|
|
267
|
+
|
|
268
|
+
### 3.2 Spawnar Especialistas
|
|
269
|
+
|
|
270
|
+
Agrupar issues por especialista para eficiencia (1 spawn com multiplas issues em vez de 1 spawn por issue):
|
|
271
|
+
|
|
272
|
+
```python
|
|
273
|
+
Agent(
|
|
274
|
+
subagent_type="up-frontend-specialist",
|
|
275
|
+
prompt="""
|
|
276
|
+
Corrigir as seguintes issues de qualidade:
|
|
277
|
+
|
|
278
|
+
1. {VIS-001}: {titulo} — {descricao} — Fix: {suggested_fix}
|
|
279
|
+
Arquivo: {path} | Screenshot: {evidence}
|
|
280
|
+
|
|
281
|
+
2. {INT-003}: {titulo} — {descricao} — Fix: {suggested_fix}
|
|
282
|
+
Arquivo: {path}
|
|
283
|
+
|
|
284
|
+
Para cada issue:
|
|
285
|
+
- Corrigir o problema
|
|
286
|
+
- Commitar: fix({scope}): {issue_id} — {titulo}
|
|
287
|
+
|
|
288
|
+
NAO criar SUMMARY.md. Apenas corrigir e commitar.
|
|
289
|
+
"""
|
|
290
|
+
)
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
### 3.3 Reportar progresso
|
|
294
|
+
|
|
295
|
+
```
|
|
296
|
+
DCRV Ciclo {CYCLE}: {resolved}/{to_fix} issues resolvidas
|
|
297
|
+
✓ VIS-001: Cards com padding → unificado para 16px
|
|
298
|
+
✓ INT-003: Botao Exportar → handler conectado a API
|
|
299
|
+
✗ API-007: Amount negativo → 2 tentativas, nao corrigido
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
## Passo 4: Verificar (Re-rodar Detectores)
|
|
303
|
+
|
|
304
|
+
Re-rodar APENAS os detectores relevantes, APENAS nas issues que foram corrigidas:
|
|
305
|
+
|
|
306
|
+
- Issues VIS-* corrigidas → re-rodar visual critic na pagina afetada
|
|
307
|
+
- Issues INT-* corrigidas → re-rodar exhaustive tester na pagina afetada
|
|
308
|
+
- Issues API-* corrigidas → re-rodar api tester na rota afetada
|
|
309
|
+
|
|
310
|
+
**Criterio de saida:**
|
|
311
|
+
- Todas issues critical/high corrigidas → FIM (sucesso)
|
|
312
|
+
- $MAX_CYCLES atingido → FIM (log pendentes)
|
|
313
|
+
- Issues nao diminuiram entre ciclos → FIM (stagnation)
|
|
314
|
+
|
|
315
|
+
**Se mais ciclos:** Voltar para Passo 1 com issues pendentes.
|
|
316
|
+
|
|
317
|
+
**Se FIM:** Continuar para Passo 5.
|
|
318
|
+
|
|
319
|
+
## Passo 5: Gerar Relatorio Final
|
|
320
|
+
|
|
321
|
+
Escrever `{$DCRV_DIR}/DCRV-REPORT.md`:
|
|
322
|
+
|
|
323
|
+
```markdown
|
|
324
|
+
---
|
|
325
|
+
scope: {phase | global | light}
|
|
326
|
+
completed: {timestamp}
|
|
327
|
+
cycles: {N}
|
|
328
|
+
total_issues: {N}
|
|
329
|
+
resolved: {N}
|
|
330
|
+
pending: {N}
|
|
331
|
+
deferred_low: {N}
|
|
332
|
+
visual_score: {N}/10
|
|
333
|
+
exhaustive_pass_rate: {N}%
|
|
334
|
+
api_pass_rate: {N}%
|
|
335
|
+
---
|
|
336
|
+
|
|
337
|
+
# DCRV Report
|
|
338
|
+
|
|
339
|
+
**Scope:** {scope}
|
|
340
|
+
**Ciclos:** {cycles_run}/{max_cycles}
|
|
341
|
+
**Issues:** {resolved} resolvidas | {pending} pendentes | {deferred} deferidas
|
|
342
|
+
|
|
343
|
+
## Resumo por Detector
|
|
344
|
+
|
|
345
|
+
| Detector | Issues | Resolvidas | Pendentes | Score |
|
|
346
|
+
|----------|--------|-----------|-----------|-------|
|
|
347
|
+
| Visual Critic | {N} | {N} | {N} | {N}/10 |
|
|
348
|
+
| Exhaustive Tester | {N} | {N} | {N} | {N}% pass |
|
|
349
|
+
| API Tester | {N} | {N} | {N} | {N}% pass |
|
|
350
|
+
|
|
351
|
+
## Issues Resolvidas
|
|
352
|
+
|
|
353
|
+
| ID | Titulo | Especialista | Commit |
|
|
354
|
+
|----|--------|-------------|--------|
|
|
355
|
+
| VIS-001 | Cards padding | frontend | abc123 |
|
|
356
|
+
|
|
357
|
+
## Issues Pendentes
|
|
358
|
+
|
|
359
|
+
| ID | Sev | Titulo | Motivo |
|
|
360
|
+
|----|-----|--------|--------|
|
|
361
|
+
| API-007 | critical | Amount negativo | 2 tentativas, nao corrigido |
|
|
362
|
+
|
|
363
|
+
## Issues Deferidas (Low)
|
|
364
|
+
|
|
365
|
+
[Lista para referencia futura]
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
## Passo 6: Retornar
|
|
369
|
+
|
|
370
|
+
```markdown
|
|
371
|
+
## DCRV COMPLETE
|
|
372
|
+
|
|
373
|
+
**Scope:** {scope}
|
|
374
|
+
**Ciclos:** {cycles}/{max}
|
|
375
|
+
**Issues:** {resolved}/{total} resolvidas | {pending} pendentes
|
|
376
|
+
**Scores:**
|
|
377
|
+
- Visual: {N}/10
|
|
378
|
+
- Interacao: {N}% pass rate
|
|
379
|
+
- API: {N}% pass rate
|
|
380
|
+
|
|
381
|
+
Relatorio: {$DCRV_DIR}/DCRV-REPORT.md
|
|
382
|
+
Issues pendentes: {$DCRV_DIR}/ISSUE-BOARD.md
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
Se scope=phase e tem issues pendentes:
|
|
386
|
+
```bash
|
|
387
|
+
# Salvar para carryover ao Quality Gate
|
|
388
|
+
mkdir -p .plano/issues-carryover
|
|
389
|
+
cp "$DCRV_DIR/ISSUE-BOARD.md" ".plano/issues-carryover/phase-${PHASE_NUMBER}.md"
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
</process>
|
|
393
|
+
|
|
394
|
+
<smoke_regression>
|
|
395
|
+
## Smoke Test de Regressao (Opcional — ativado por $REGRESSION=true)
|
|
396
|
+
|
|
397
|
+
Rodar ANTES dos detectores. Navega paginas de fases anteriores para detectar regressoes.
|
|
398
|
+
|
|
399
|
+
```
|
|
400
|
+
Para cada fase anterior com UI (< fase atual):
|
|
401
|
+
Para cada rota da fase:
|
|
402
|
+
browser_navigate(url)
|
|
403
|
+
browser_console_messages(level: "error")
|
|
404
|
+
browser_take_screenshot(filename: "{$DCRV_DIR}/regression/fase-{N}-{rota}.png")
|
|
405
|
+
Se erro novo: registrar como regressao (severidade HIGH)
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
Regressoes entram no issue board com prioridade maxima (corrigir antes de issues novas).
|
|
409
|
+
</smoke_regression>
|
|
410
|
+
|
|
411
|
+
<success_criteria>
|
|
412
|
+
- [ ] Projeto classificado (UI, API, ambos, nenhum)
|
|
413
|
+
- [ ] Detectores relevantes executados na ordem correta
|
|
414
|
+
- [ ] Issues deduplicadas e classificadas por severidade
|
|
415
|
+
- [ ] ISSUE-BOARD.md gerado
|
|
416
|
+
- [ ] Dispatcher diagnosticou e roteou corretamente (se auto_fix)
|
|
417
|
+
- [ ] Especialistas corrigiram issues com commits atomicos (se auto_fix)
|
|
418
|
+
- [ ] Re-verificacao executada nas issues corrigidas (se auto_fix)
|
|
419
|
+
- [ ] DCRV-REPORT.md gerado com metricas
|
|
420
|
+
- [ ] Issues pendentes salvas para carryover (se scope=phase)
|
|
421
|
+
</success_criteria>
|
|
@@ -199,11 +199,66 @@ grep "^status:" "$PHASE_DIR"/*-VERIFICATION.md | cut -d: -f2 | tr -d ' '
|
|
|
199
199
|
|
|
200
200
|
| Status | Acao |
|
|
201
201
|
|--------|------|
|
|
202
|
-
| `passed` | ->
|
|
203
|
-
| `human_needed` | **Se $BUILDER_MODE:** Considerar PASSED, registrar para revisao final no DELIVERY.md. **Se modo normal:** Apresentar itens para teste humano, obter aprovacao. |
|
|
202
|
+
| `passed` | -> deep_quality_check |
|
|
203
|
+
| `human_needed` | **Se $BUILDER_MODE:** Considerar PASSED, registrar para revisao final no DELIVERY.md. **Se modo normal:** Apresentar itens para teste humano, obter aprovacao. Depois -> deep_quality_check |
|
|
204
204
|
| `gaps_found` | Apresentar resumo de lacunas, oferecer `/up:planejar-fase {fase} --gaps` |
|
|
205
205
|
</step>
|
|
206
206
|
|
|
207
|
+
<step name="deep_quality_check">
|
|
208
|
+
**Verificacao profunda via DCRV (Detectar → Classificar → Resolver → Verificar)**
|
|
209
|
+
|
|
210
|
+
**Se $BUILDER_MODE = true:**
|
|
211
|
+
Rodar DCRV automaticamente (o builder controla isso via builder.md). Pular para update_roadmap.
|
|
212
|
+
|
|
213
|
+
**Se modo normal (interativo):**
|
|
214
|
+
|
|
215
|
+
Detectar se fase tem UI ou API:
|
|
216
|
+
```bash
|
|
217
|
+
# Checar se fase criou/modificou UI
|
|
218
|
+
UI_FILES=$(grep -l "page.tsx\|component\|\.css\|\.tsx" "$PHASE_DIR"/*-SUMMARY.md 2>/dev/null | wc -l)
|
|
219
|
+
# Checar se fase criou/modificou API
|
|
220
|
+
API_FILES=$(grep -l "route.ts\|api/\|endpoint\|handler" "$PHASE_DIR"/*-SUMMARY.md 2>/dev/null | wc -l)
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
Se fase tem UI ou API:
|
|
224
|
+
|
|
225
|
+
```
|
|
226
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
227
|
+
UP > VERIFICACAO PROFUNDA DISPONIVEL
|
|
228
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
229
|
+
|
|
230
|
+
A fase passou na verificacao de codigo. Quer rodar verificacao profunda?
|
|
231
|
+
|
|
232
|
+
Isso testa:
|
|
233
|
+
- Visual: alinhamento, consistencia, design tokens
|
|
234
|
+
- Interacao: clica em CADA botao/link/elemento
|
|
235
|
+
- API: testa cada endpoint com payloads validos e invalidos
|
|
236
|
+
|
|
237
|
+
Opcoes:
|
|
238
|
+
1. Rodar verificacao profunda (recomendado)
|
|
239
|
+
2. Rodar apenas relatorio (sem corrigir)
|
|
240
|
+
3. Pular e continuar
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
**Se usuario escolhe 1:**
|
|
244
|
+
Executar workflow DCRV com scope=phase, auto_fix=true:
|
|
245
|
+
```
|
|
246
|
+
Referencia: @~/.claude/up/workflows/dcrv.md
|
|
247
|
+
SCOPE=phase, PHASE_DIR={phase_dir}, PHASE_NUMBER={phase_number}, MAX_CYCLES=3, AUTO_FIX=true
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
**Se usuario escolhe 2:**
|
|
251
|
+
Executar workflow DCRV com scope=light, auto_fix=false:
|
|
252
|
+
```
|
|
253
|
+
SCOPE=light, AUTO_FIX=false
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
**Se usuario escolhe 3:**
|
|
257
|
+
Pular silenciosamente.
|
|
258
|
+
|
|
259
|
+
Apos DCRV (se rodou): -> update_roadmap
|
|
260
|
+
</step>
|
|
261
|
+
|
|
207
262
|
<step name="update_roadmap">
|
|
208
263
|
**Marcar fase completa e atualizar todos arquivos de rastreamento:**
|
|
209
264
|
|
package/workflows/rapido.md
CHANGED
|
@@ -81,7 +81,7 @@ Task(
|
|
|
81
81
|
- Criar UM UNICO plano com 1-3 tarefas focadas
|
|
82
82
|
- Tarefas rapidas devem ser atomicas e autocontidas
|
|
83
83
|
- Sem fase de pesquisa
|
|
84
|
-
- Alvo ~
|
|
84
|
+
- Alvo ~10% uso de contexto (simples, focado)
|
|
85
85
|
</constraints>
|
|
86
86
|
|
|
87
87
|
<output>
|
|
@@ -131,6 +131,34 @@ Apos executor retornar:
|
|
|
131
131
|
|
|
132
132
|
---
|
|
133
133
|
|
|
134
|
+
**Passo 5.5: DCRV Light (se criou UI ou API)**
|
|
135
|
+
|
|
136
|
+
Detectar se tarefa criou/modificou UI ou API:
|
|
137
|
+
```bash
|
|
138
|
+
# Checar SUMMARY por arquivos de UI/API
|
|
139
|
+
UI_MATCH=$(grep -c "page.tsx\|component\|\.css\|\.tsx" "${QUICK_DIR}/${next_num}-SUMMARY.md" 2>/dev/null)
|
|
140
|
+
API_MATCH=$(grep -c "route.ts\|api/\|endpoint\|handler" "${QUICK_DIR}/${next_num}-SUMMARY.md" 2>/dev/null)
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
**Se UI_MATCH > 0 ou API_MATCH > 0:**
|
|
144
|
+
|
|
145
|
+
Rodar DCRV light (1 ciclo, apenas relatorio + correcao rapida):
|
|
146
|
+
|
|
147
|
+
```
|
|
148
|
+
Referencia: @~/.claude/up/workflows/dcrv.md
|
|
149
|
+
SCOPE=light, MAX_CYCLES=1, MAX_ISSUES_PER_CYCLE=10, AUTO_FIX=true
|
|
150
|
+
DCRV_DIR=${QUICK_DIR}/dcrv
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
Reportar resultado brevemente:
|
|
154
|
+
```
|
|
155
|
+
DCRV Light: {resolved}/{total} issues corrigidas
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
**Se nenhum match:** Pular silenciosamente (tarefa nao tem UI/API).
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
134
162
|
**Passo 6: Atualizar STATE.md**
|
|
135
163
|
|
|
136
164
|
**6a. Verificar se secao "Tarefas Rapidas Completadas" existe:**
|
package/workflows/ux-tester.md
CHANGED
|
@@ -306,9 +306,35 @@ improvements: [N]
|
|
|
306
306
|
| Foco invisivel | [N] | [lista] |
|
|
307
307
|
```
|
|
308
308
|
|
|
309
|
+
## Passo 3.5: DCRV — Detectores Automaticos
|
|
310
|
+
|
|
311
|
+
Apos o relatorio UX (que avalia experiencia e percepcao), rodar detectores automaticos que pegam issues objetivas que o UX tester pode nao ver.
|
|
312
|
+
|
|
313
|
+
**Referencia:** `@~/.claude/up/workflows/dcrv.md`
|
|
314
|
+
|
|
315
|
+
Rodar com:
|
|
316
|
+
```
|
|
317
|
+
SCOPE=global (testar tudo)
|
|
318
|
+
AUTO_FIX=false (apenas detectar — implementacao sera no Passo 4)
|
|
319
|
+
MAX_CYCLES=1 (apenas 1 ciclo de deteccao)
|
|
320
|
+
PORT={porta do dev server ja rodando}
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
Apos DCRV retornar:
|
|
324
|
+
1. Ler DCRV-REPORT.md
|
|
325
|
+
2. Mesclar issues do DCRV com issues do UX Review:
|
|
326
|
+
- Issues VIS-* do visual critic → adicionar na dimensao "Consistencia" do UX-REPORT
|
|
327
|
+
- Issues INT-* do exhaustive tester → adicionar na dimensao "Feedback" do UX-REPORT
|
|
328
|
+
- Issues API-* do api tester → adicionar como secao "Robustez API" do UX-REPORT
|
|
329
|
+
3. Deduplicar: se UX review e DCRV encontraram o mesmo problema, manter a versao mais detalhada
|
|
330
|
+
4. Atualizar scores do UX-REPORT com base nas issues adicionais
|
|
331
|
+
|
|
332
|
+
Isso garante que o relatorio UX e COMPLETO — experiencia (do UX tester) + objetividade (dos detectores).
|
|
333
|
+
|
|
309
334
|
## Passo 4: Implementar Melhorias
|
|
310
335
|
|
|
311
336
|
**NAO perguntar ao usuario.** Implementar TODAS as melhorias que sao seguras de aplicar.
|
|
337
|
+
Isso inclui tanto issues do UX Review quanto issues do DCRV mescladas no passo anterior.
|
|
312
338
|
|
|
313
339
|
### 4.1 Classificar Issues por Implementabilidade
|
|
314
340
|
|
|
@@ -65,6 +65,53 @@ ls "$phase_dir"/*-SUMMARY.md 2>/dev/null
|
|
|
65
65
|
Ler cada SUMMARY.md para extrair entregaveis testaveis.
|
|
66
66
|
</step>
|
|
67
67
|
|
|
68
|
+
<step name="auto_detect_issues">
|
|
69
|
+
**Pre-validacao automatica antes do teste humano**
|
|
70
|
+
|
|
71
|
+
Antes de pedir ao usuario para testar, rodar detectores automaticos para corrigir issues obvias.
|
|
72
|
+
O humano testa um sistema ja pre-validado — nao perde tempo com botoes quebrados ou erros de console.
|
|
73
|
+
|
|
74
|
+
Detectar se fase tem UI ou API:
|
|
75
|
+
```bash
|
|
76
|
+
UI_FILES=$(find app pages src -name "page.tsx" -o -name "*.component.tsx" 2>/dev/null | head -1)
|
|
77
|
+
API_FILES=$(find app/api pages/api -name "route.ts" -o -name "*.ts" 2>/dev/null | head -1)
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**Se tem UI ou API:**
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
84
|
+
UP > PRE-VALIDACAO AUTOMATICA
|
|
85
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
86
|
+
|
|
87
|
+
Rodando detectores automaticos antes do teste manual...
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Rodar DCRV light:
|
|
91
|
+
```
|
|
92
|
+
Referencia: @~/.claude/up/workflows/dcrv.md
|
|
93
|
+
SCOPE=phase, PHASE_DIR={phase_dir}, PHASE_NUMBER={phase_number}
|
|
94
|
+
MAX_CYCLES=1, AUTO_FIX=true
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Reportar resultado:
|
|
98
|
+
```
|
|
99
|
+
Pre-validacao: {resolved}/{total} issues automaticas corrigidas
|
|
100
|
+
Pronto para teste manual.
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
**Se DCRV encontrou issues criticas nao corrigidas:**
|
|
104
|
+
Avisar o usuario antes de iniciar UAT:
|
|
105
|
+
```
|
|
106
|
+
Aviso: {N} issues criticas detectadas e NAO corrigidas automaticamente.
|
|
107
|
+
O teste manual pode encontrar esses problemas. Considere rodar /up:planejar-fase {fase} --gaps primeiro.
|
|
108
|
+
|
|
109
|
+
Continuar com teste manual mesmo assim? (sim/nao)
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
**Se nao tem UI/API:** Pular silenciosamente.
|
|
113
|
+
</step>
|
|
114
|
+
|
|
68
115
|
<step name="extract_tests">
|
|
69
116
|
**Extrair entregaveis testaveis do SUMMARY.md:**
|
|
70
117
|
|