up-cc 0.4.4 → 0.4.6

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.
@@ -78,11 +78,14 @@ Em brownfield, convencoes do codebase existente tem prioridade sobre defaults.
78
78
  <process>
79
79
  **Parsear flags primeiro:** Extrair `--light` dos $ARGUMENTS se presente. O restante e o briefing.
80
80
 
81
- **Se `--light`:**
82
- Execute o builder workflow em modo light (ver secao `<light_mode>` no workflow).
83
- Estagios: 1 (Intake simplificado) → 2 (Mini-scan + estrutura inline) → 3 (Build + E2E) → Fim.
81
+ **GUARD: Light mode SOMENTE se `--light` esta presente LITERALMENTE nos argumentos.**
82
+ NAO inferir light baseado no tamanho do briefing. Briefing curto = FULL com poucas fases.
84
83
 
85
- **Se modo full (padrao):**
84
+ **Se `--light` PRESENTE nos argumentos:**
85
+ Execute o builder workflow em modo light (ver secao `<light_process>` no workflow).
86
+ Light ainda verifica (up-verificador), testa (E2E + DCRV 1 ciclo), mas sem polish/delivery.
87
+
88
+ **Se `--light` AUSENTE (default = FULL):**
86
89
  Execute the builder workflow from @~/.claude/up/workflows/builder.md end-to-end.
87
90
 
88
91
  **CRITICO:** A partir do Estagio 2, ZERO interacao com usuario. NAO use AskUserQuestion apos coletar o briefing e respostas criticas. Toda decisao e tomada autonomamente.
@@ -0,0 +1,287 @@
1
+ ---
2
+ name: up:testar
3
+ description: Testar projeto completo — descobre todas paginas e APIs, clica em tudo, testa tudo, corrige o que puder
4
+ argument-hint: "[url ou porta] [--no-fix] [--report-only]"
5
+ allowed-tools:
6
+ - Read
7
+ - Write
8
+ - Edit
9
+ - Glob
10
+ - Grep
11
+ - Bash
12
+ - Task
13
+ - mcp__plugin_playwright_playwright__*
14
+ ---
15
+ <objective>
16
+ Testar um projeto existente de forma exaustiva. Descobre TODAS as paginas e APIs pelo codigo fonte, roda os 3 detectores DCRV (Visual Critic, Exhaustive Tester, API Tester), corrige issues encontradas, e gera relatorio completo.
17
+
18
+ NAO planeja, NAO cria features, NAO faz auditoria de codigo. Apenas TESTA e CORRIGE.
19
+
20
+ **Standalone:** Funciona em qualquer projeto, qualquer momento. NAO requer .plano/ ou /up:novo-projeto.
21
+ **Diferencial:** Teste objetivo — clica em tudo, testa todo endpoint, verifica visual. Nao opina sobre UX.
22
+
23
+ **Output:** `.plano/teste/` com DCRV-REPORT.md, issues resolvidas, screenshots.
24
+ </objective>
25
+
26
+ <execution_context>
27
+ @~/.claude/up/workflows/dcrv.md
28
+ @~/.claude/up/references/engineering-principles.md
29
+ </execution_context>
30
+
31
+ <context>
32
+ $ARGUMENTS
33
+
34
+ **Argumentos opcionais:**
35
+ - URL ou porta: `http://localhost:3000` ou `3000` (default: detecta automaticamente)
36
+ - `--no-fix`: Apenas gerar relatorio, NAO corrigir issues
37
+ - `--report-only`: Alias para --no-fix
38
+
39
+ **Se sem argumentos:** Detecta stack, sobe dev server automaticamente, usa porta padrao.
40
+ **Se .plano/ existe:** Usa PROJECT.md para entender o projeto.
41
+ **Se .plano/ NAO existe:** Descobre tudo pelo codigo fonte.
42
+ </context>
43
+
44
+ <process>
45
+
46
+ ## Passo 1: Setup
47
+
48
+ ### 1.1 Detectar Stack e Dev Server
49
+
50
+ ```bash
51
+ # Detectar stack
52
+ if [ -f package.json ]; then
53
+ node -e "const p=require('./package.json'); console.log(JSON.stringify({name: p.name, scripts: p.scripts, deps: Object.keys(p.dependencies||{}).slice(0,20)}))"
54
+ fi
55
+ if [ -f requirements.txt ] || [ -f pyproject.toml ]; then
56
+ echo "Python project detected"
57
+ fi
58
+ ```
59
+
60
+ Definir $PORT a partir dos argumentos ou detectar automaticamente.
61
+
62
+ ### 1.2 Subir Dev Server
63
+
64
+ ```bash
65
+ # Verificar se ja esta rodando
66
+ curl -s http://localhost:${PORT:-3000} > /dev/null 2>&1
67
+ if [ $? -ne 0 ]; then
68
+ # Detectar comando de dev
69
+ if [ -f package.json ]; then
70
+ npm run dev > /tmp/up-testar-server.log 2>&1 &
71
+ TESTAR_DEV_PID=$!
72
+ elif [ -f manage.py ]; then
73
+ python manage.py runserver > /tmp/up-testar-server.log 2>&1 &
74
+ TESTAR_DEV_PID=$!
75
+ fi
76
+
77
+ # Esperar ficar pronto (max 30s)
78
+ for i in $(seq 1 30); do
79
+ curl -s http://localhost:${PORT:-3000} > /dev/null 2>&1 && break
80
+ sleep 1
81
+ done
82
+ fi
83
+ ```
84
+
85
+ Se nao subir: ERRO — informar usuario.
86
+
87
+ ### 1.3 Descobrir TODAS as Paginas
88
+
89
+ ```bash
90
+ echo "=== Descobrindo paginas ==="
91
+
92
+ # Next.js App Router
93
+ find app -name "page.tsx" -o -name "page.ts" 2>/dev/null | grep -v node_modules | sort
94
+
95
+ # Next.js Pages Router
96
+ find pages -name "*.tsx" -o -name "*.ts" 2>/dev/null | grep -v node_modules | grep -v "_app\|_document\|api/" | sort
97
+
98
+ # React Router (Vite/CRA) — extrair paths
99
+ grep -rn "path:" src/ --include="*.tsx" --include="*.ts" --include="*.jsx" --include="*.js" 2>/dev/null | grep -v node_modules | head -30
100
+
101
+ # Python (Django)
102
+ grep -rn "path(" */urls.py 2>/dev/null | head -20
103
+
104
+ # Python (FastAPI) com templates
105
+ grep -rn "templates.TemplateResponse\|return.*html" . --include="*.py" 2>/dev/null | head -20
106
+ ```
107
+
108
+ Converter caminhos de arquivo para URLs:
109
+ - `app/page.tsx` → `/`
110
+ - `app/dashboard/page.tsx` → `/dashboard`
111
+ - `app/settings/[tab]/page.tsx` → `/settings/general` (usar primeiro valor provavel)
112
+ - `pages/about.tsx` → `/about`
113
+
114
+ Montar lista `$ROUTES_UI`.
115
+
116
+ ### 1.4 Descobrir TODAS as APIs
117
+
118
+ ```bash
119
+ echo "=== Descobrindo APIs ==="
120
+
121
+ # Next.js App Router API routes
122
+ find app -path "*/api/*" -name "route.ts" -o -name "route.js" 2>/dev/null | grep -v node_modules | sort
123
+
124
+ # Para cada route.ts, extrair metodos exportados
125
+ for route in $(find app -path "*/api/*" -name "route.ts" 2>/dev/null); do
126
+ methods=$(grep -oE "export.*(async )?(function )?(GET|POST|PUT|PATCH|DELETE)" "$route" | grep -oE "GET|POST|PUT|PATCH|DELETE")
127
+ echo "$route: $methods"
128
+ done
129
+
130
+ # Next.js Pages Router API
131
+ find pages/api -name "*.ts" -o -name "*.js" 2>/dev/null | sort
132
+
133
+ # Express/Fastify
134
+ grep -rn "app\.\(get\|post\|put\|patch\|delete\)\|router\.\(get\|post\|put\|patch\|delete\)" src/ --include="*.ts" --include="*.js" 2>/dev/null | head -30
135
+
136
+ # FastAPI (Python)
137
+ grep -rn "@app\.\(get\|post\|put\|patch\|delete\)\|@router\.\(get\|post\|put\|patch\|delete\)" . --include="*.py" 2>/dev/null | head -30
138
+
139
+ # tRPC
140
+ grep -rn "\.query\|\.mutation" src/ --include="*.ts" 2>/dev/null | grep -i "router\|procedure" | head -20
141
+
142
+ # Supabase Edge Functions
143
+ ls supabase/functions/*/index.ts 2>/dev/null
144
+ ```
145
+
146
+ Montar lista `$ROUTES_API` com metodo + path.
147
+
148
+ ### 1.5 Classificar Projeto e Reportar
149
+
150
+ ```
151
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
152
+ UP > TESTAR — DESCOBERTA COMPLETA
153
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
154
+
155
+ Projeto: [nome do package.json ou diretorio]
156
+ Stack: [Next.js / Vite / FastAPI / etc.]
157
+ Dev server: http://localhost:{PORT}
158
+
159
+ Paginas encontradas: {N}
160
+ [lista de URLs]
161
+
162
+ APIs encontradas: {N}
163
+ [lista de METHOD /path]
164
+
165
+ Detectores a rodar:
166
+ [x] Visual Critic ({N} paginas × 3 viewports)
167
+ [x] Exhaustive Tester ({N} paginas, todos elementos)
168
+ [x] API Tester ({N} endpoints, bateria completa)
169
+
170
+ Iniciando testes...
171
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
172
+ ```
173
+
174
+ ### 1.6 Criar Diretorio de Resultados
175
+
176
+ ```bash
177
+ mkdir -p .plano/teste
178
+ ```
179
+
180
+ ## Passo 2: Rodar DCRV Global
181
+
182
+ **Referencia:** `@~/.claude/up/workflows/dcrv.md`
183
+
184
+ Determinar AUTO_FIX baseado nas flags:
185
+ - Se `--no-fix` ou `--report-only`: AUTO_FIX=false
186
+ - Senao: AUTO_FIX=true
187
+
188
+ Executar workflow DCRV com parametros:
189
+ ```
190
+ SCOPE=global
191
+ PORT={porta do dev server}
192
+ MAX_CYCLES=3
193
+ MAX_ISSUES_PER_CYCLE=20
194
+ AUTO_FIX={true ou false baseado nas flags}
195
+ ROUTES_UI={lista de paginas descobertas}
196
+ ROUTES_API={lista de APIs descobertas}
197
+ DCRV_DIR=.plano/teste
198
+ ```
199
+
200
+ O DCRV cuida de:
201
+ 1. Rodar Visual Critic em todas paginas (3 viewports, CSS extraction, screenshots)
202
+ 2. Rodar API Tester em todas rotas (happy path, payloads invalidos, auth, edge cases)
203
+ 3. Rodar Exhaustive Tester em todas paginas (clicar em CADA elemento)
204
+ 4. Consolidar issues
205
+ 5. Se AUTO_FIX: dispatcher roteia para especialistas corrigirem
206
+ 6. Re-verificar correcoes
207
+ 7. Loop ate resolver ou max ciclos
208
+
209
+ ## Passo 3: Carregar Design Tokens (se existir)
210
+
211
+ ```bash
212
+ # Checar se projeto tem design tokens definidos
213
+ cat .plano/DESIGN-TOKENS.md 2>/dev/null
214
+ # Ou inferir do Tailwind config
215
+ cat tailwind.config.ts tailwind.config.js 2>/dev/null | head -50
216
+ # Ou de globals.css
217
+ cat app/globals.css src/globals.css styles/globals.css 2>/dev/null | head -50
218
+ ```
219
+
220
+ Passar como referencia para o Visual Critic.
221
+
222
+ ## Passo 4: Cleanup
223
+
224
+ ```bash
225
+ # Matar dev server se nos que subimos
226
+ if [ -n "$TESTAR_DEV_PID" ]; then
227
+ kill $TESTAR_DEV_PID 2>/dev/null
228
+ fi
229
+ ```
230
+
231
+ Fechar browser se aberto.
232
+
233
+ ## Passo 5: Apresentar Resultado
234
+
235
+ ```
236
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
237
+ UP > TESTE COMPLETO
238
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
239
+
240
+ ## Scores
241
+
242
+ | Detector | Score | Detalhes |
243
+ |----------|-------|----------|
244
+ | Visual | {N}/10 | {issues} issues em {paginas} paginas |
245
+ | Interacao | {N}% pass | {passed}/{total} elementos funcionam |
246
+ | API | {N}% pass | {passed}/{total} testes passaram |
247
+
248
+ ## Issues
249
+
250
+ | Severidade | Encontradas | Corrigidas | Pendentes |
251
+ |-----------|-------------|-----------|-----------|
252
+ | Critical | {N} | {N} | {N} |
253
+ | High | {N} | {N} | {N} |
254
+ | Medium | {N} | {N} | {N} |
255
+ | Low | {N} | — | {N} |
256
+
257
+ ## Top Issues Pendentes (se houver)
258
+
259
+ [Lista das issues nao corrigidas com descricao]
260
+
261
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
262
+
263
+ Relatorio completo: .plano/teste/DCRV-REPORT.md
264
+ Screenshots: .plano/teste/
265
+
266
+ Proximos passos:
267
+ - /up:ux-tester — avaliar experiencia do usuario
268
+ - /up:melhorias — auditoria de codigo
269
+ - /up:modo-builder "nova feature" — adicionar funcionalidade
270
+
271
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
272
+ ```
273
+
274
+ </process>
275
+
276
+ <success_criteria>
277
+ - [ ] Stack detectada e dev server rodando
278
+ - [ ] TODAS paginas descobertas pelo codigo fonte
279
+ - [ ] TODAS APIs descobertas pelo codigo fonte
280
+ - [ ] Visual Critic rodou em todas paginas (3 viewports)
281
+ - [ ] Exhaustive Tester clicou em todos elementos de todas paginas
282
+ - [ ] API Tester testou todos endpoints com bateria completa
283
+ - [ ] Issues consolidadas com severidade
284
+ - [ ] Issues corrigidas (se nao --no-fix)
285
+ - [ ] DCRV-REPORT.md gerado em .plano/teste/
286
+ - [ ] Resumo apresentado com scores
287
+ </success_criteria>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "up-cc",
3
- "version": "0.4.4",
3
+ "version": "0.4.6",
4
4
  "description": "Simplified spec-driven development for Claude Code, Gemini and OpenCode.",
5
5
  "bin": {
6
6
  "up-cc": "bin/install.js"
@@ -11,8 +11,25 @@ Modo Builder: construir projeto completo de forma autonoma. Funciona em dois mod
11
11
  A partir do Estagio 2, ZERO interacao com usuario. Todas as decisoes sao tomadas autonomamente.
12
12
 
13
13
  **IMPORTANTE: Verificar flag `--light` no $ARGUMENTS antes de iniciar.**
14
- Se `--light` presente: pular direto para `<light_process>` no final deste workflow.
14
+ Se `--light` presente LITERALMENTE nos argumentos: pular direto para `<light_process>`.
15
15
  Se ausente: seguir o `<process>` normal (full).
16
+
17
+ **GUARD CONTRA ATIVACAO ACIDENTAL DO LIGHT:**
18
+ - O modo light so e ativado se o usuario escreveu `--light` explicitamente.
19
+ - NAO inferir light baseado no tamanho do briefing ou complexidade.
20
+ - NAO ativar light porque "parece uma feature simples".
21
+ - Briefing curto = modo FULL com poucas fases, NAO modo light.
22
+ - Se em duvida: FULL. Sempre FULL como default.
23
+
24
+ **LOG OBRIGATORIO no inicio (EXECUTAR SEMPRE):**
25
+ ```
26
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
27
+ UP > MODO BUILDER — {FULL | LIGHT}
28
+ Versao: $(cat $HOME/.claude/up/VERSION 2>/dev/null || echo "dev")
29
+ Argumentos: $ARGUMENTS
30
+ Flag --light: {SIM | NAO}
31
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
32
+ ```
16
33
  </purpose>
17
34
 
18
35
  <core_principle>
@@ -2294,31 +2311,58 @@ Retornar: ## PLANNING COMPLETE
2294
2311
 
2295
2312
  Mesmo processo do full — spawnar up-executor por wave.
2296
2313
 
2297
- #### L3.3 Verificar Fase (Quick Check)
2314
+ #### L3.3 Verificar Fase
2298
2315
 
2299
- **NAO spawnar up-verificador.** Verificacao inline rapida:
2316
+ Spawnar up-verificador (mesmo do full — verificacao real, nao shortcut):
2300
2317
 
2301
- 1. Checar que SUMMARYs existem para todos os planos
2302
- 2. Checar que commits existem: `git log --oneline --grep="fase-{X}"`
2303
- 3. Se ha testes automatizados no projeto: rodar
2304
- ```bash
2305
- # Detectar e rodar testes
2306
- npm test 2>/dev/null || pnpm test 2>/dev/null || echo "sem testes"
2307
2318
  ```
2308
- 4. Se tudo OK: marcar fase completa
2319
+ Task(
2320
+ subagent_type="up-verificador",
2321
+ model="$MODEL_VERIFICATION",
2322
+ prompt="Verificar fase {phase_number}. Diretorio: {phase_dir}. Objetivo: {goal}."
2323
+ )
2324
+ ```
2309
2325
 
2310
- Se falha: tentar gap closure (1 ciclo max), mesmo do full.
2326
+ | Status | Acao |
2327
+ |--------|------|
2328
+ | `passed` | → L3.4 |
2329
+ | `gaps_found` | Tentar gap closure (1 ciclo max) |
2330
+ | `human_needed` | Registrar, avancar |
2311
2331
 
2312
2332
  #### L3.4 Teste E2E (Playwright)
2313
2333
 
2314
- **Mesmo processo do full** (referencia: builder-e2e.md Passo 3).
2315
- Executar APENAS se a fase tem UI.
2334
+ **Referencia:** `@~/.claude/up/workflows/builder-e2e.md` Passo 3 (Teste por Fase)
2335
+
2336
+ **EXECUTAR OBRIGATORIAMENTE se a fase tem UI.** Nao pular.
2337
+
2338
+ 1. Subir dev server (se nao esta rodando)
2339
+ 2. Traduzir must_haves em testes E2E
2340
+ 3. Navegar, interagir, verificar, screenshot
2341
+ 4. Bugs: corrigir (max 5 tentativas por bug)
2342
+ 5. Criar E2E-RESULTS.md
2316
2343
 
2317
- - Subir dev server (se nao esta rodando)
2318
- - Traduzir must_haves em testes E2E
2319
- - Navegar, interagir, verificar, screenshot
2320
- - Bugs: corrigir (max 5 tentativas por bug)
2321
- - Criar E2E-RESULTS.md
2344
+ **Se dev server falha:** Registrar e continuar (nao bloqueia).
2345
+
2346
+ #### L3.4.1 DCRV Light (1 ciclo)
2347
+
2348
+ **Apos E2E**, rodar DCRV em modo light (1 ciclo, sem loop):
2349
+
2350
+ **Referencia:** `@~/.claude/up/workflows/dcrv.md`
2351
+
2352
+ ```
2353
+ SCOPE=light
2354
+ PHASE_DIR={phase_dir}
2355
+ PHASE_NUMBER={phase_number}
2356
+ MAX_CYCLES=1
2357
+ MAX_ISSUES_PER_CYCLE=10
2358
+ AUTO_FIX=true
2359
+ ```
2360
+
2361
+ Isso roda os 3 detectores (visual, API, exhaustive), corrige o que puder em 1 ciclo, e segue.
2362
+
2363
+ ```
2364
+ Fase {X} (light): DCRV — {resolved}/{total} issues corrigidas
2365
+ ```
2322
2366
 
2323
2367
  #### L3.5 Marcar Fase Completa
2324
2368
 
@@ -2373,7 +2417,15 @@ Quer mais? /up:modo-builder "proxima feature"
2373
2417
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
2374
2418
  ```
2375
2419
 
2376
- **NAO gerar DELIVERY.md. NAO rodar polish. NAO rodar ideias.**
2420
+ **NAO gerar DELIVERY.md. NAO rodar polish completo. NAO rodar ideias.**
2421
+
2422
+ **Light mode success criteria:**
2423
+ - [ ] .plano/ criado com PROJECT.md, ROADMAP.md, REQUIREMENTS.md
2424
+ - [ ] Todas fases executadas com commits atomicos
2425
+ - [ ] Verificador rodou em cada fase (NAO quick check)
2426
+ - [ ] E2E Playwright rodou em fases com UI
2427
+ - [ ] DCRV light (1 ciclo) rodou em cada fase com UI/API
2428
+ - [ ] Resumo final exibido com metricas
2377
2429
 
2378
2430
  </light_process>
2379
2431