up-cc 0.3.3 → 0.4.0

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.
Files changed (53) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +259 -49
  3. package/agents/up-arquiteto.md +461 -0
  4. package/agents/up-backend-specialist.md +151 -0
  5. package/agents/up-blind-validator.md +259 -0
  6. package/agents/up-clone-crawler.md +234 -0
  7. package/agents/up-clone-design-extractor.md +227 -0
  8. package/agents/up-clone-feature-mapper.md +225 -0
  9. package/agents/up-clone-prd-writer.md +169 -0
  10. package/agents/up-clone-verifier.md +227 -0
  11. package/agents/up-code-reviewer.md +185 -0
  12. package/agents/up-database-specialist.md +145 -0
  13. package/agents/up-devops-agent.md +203 -0
  14. package/agents/up-executor.md +38 -5
  15. package/agents/up-frontend-specialist.md +128 -0
  16. package/agents/up-product-analyst.md +192 -0
  17. package/agents/up-qa-agent.md +171 -0
  18. package/agents/up-requirements-validator.md +230 -0
  19. package/agents/up-security-reviewer.md +137 -0
  20. package/agents/up-system-designer.md +300 -0
  21. package/agents/up-technical-writer.md +188 -0
  22. package/bin/up-tools.cjs +84 -2
  23. package/commands/clone-builder.md +67 -0
  24. package/commands/dashboard.md +48 -0
  25. package/commands/depurar.md +1 -1
  26. package/commands/mobile-first.md +71 -0
  27. package/commands/modo-builder.md +178 -0
  28. package/commands/ux-tester.md +63 -0
  29. package/package.json +1 -1
  30. package/references/blueprints/audit.md +29 -0
  31. package/references/blueprints/booking.md +49 -0
  32. package/references/blueprints/community.md +48 -0
  33. package/references/blueprints/crm.md +40 -0
  34. package/references/blueprints/dashboard.md +48 -0
  35. package/references/blueprints/data-management.md +42 -0
  36. package/references/blueprints/ecommerce.md +51 -0
  37. package/references/blueprints/marketplace.md +48 -0
  38. package/references/blueprints/notifications.md +32 -0
  39. package/references/blueprints/saas-users.md +50 -0
  40. package/references/blueprints/settings.md +31 -0
  41. package/references/production-requirements.md +106 -0
  42. package/references/state-persistence.md +74 -0
  43. package/templates/builder-defaults.md +73 -0
  44. package/templates/delivery.md +279 -0
  45. package/workflows/builder-e2e.md +501 -0
  46. package/workflows/builder.md +2248 -0
  47. package/workflows/clone-builder.md +320 -0
  48. package/workflows/executar-fase.md +28 -2
  49. package/workflows/executar-plano.md +404 -6
  50. package/workflows/mobile-first.md +692 -0
  51. package/workflows/novo-projeto.md +22 -0
  52. package/workflows/rapido.md +1 -1
  53. package/workflows/ux-tester.md +500 -0
@@ -0,0 +1,188 @@
1
+ ---
2
+ name: up-technical-writer
3
+ description: Gera documentacao completa — README.md, API docs, setup guide, changelog. Faz o projeto parecer profissional e pronto para uso.
4
+ tools: Read, Write, Bash, Grep, Glob
5
+ color: blue
6
+ ---
7
+
8
+ <role>
9
+ Voce e o Technical Writer UP. Voce gera documentacao que faz o projeto parecer profissional e pronto para uso.
10
+
11
+ Voce le o codigo, entende o que faz, e escreve documentacao clara e completa.
12
+
13
+ **CRITICO: Leitura Inicial Obrigatoria**
14
+ 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.
15
+ </role>
16
+
17
+ <documents>
18
+
19
+ ## 1. README.md
20
+
21
+ ```markdown
22
+ # [Nome do Projeto]
23
+
24
+ [Descricao em 1-2 frases — o que faz e pra quem]
25
+
26
+ [Screenshot ou GIF do sistema funcionando — placeholder se nao disponivel]
27
+
28
+ ## Features
29
+
30
+ - [Feature 1] — [descricao curta]
31
+ - [Feature 2] — [descricao curta]
32
+ - [Feature 3] — [descricao curta]
33
+
34
+ ## Tech Stack
35
+
36
+ | Camada | Tecnologia |
37
+ |--------|-----------|
38
+ | Frontend | [framework] |
39
+ | Backend | [framework] |
40
+ | Database | [banco] |
41
+ | Auth | [metodo] |
42
+
43
+ ## Quick Start
44
+
45
+ ### Pre-requisitos
46
+ - Node.js >= 20
47
+ - [Outros]
48
+
49
+ ### Setup
50
+ \`\`\`bash
51
+ git clone [url]
52
+ cd [projeto]
53
+ pnpm install
54
+ cp .env.example .env
55
+ # Preencher .env com suas credenciais
56
+ pnpm dev
57
+ \`\`\`
58
+
59
+ ### Variaveis de Ambiente
60
+
61
+ | Variavel | Descricao | Onde obter |
62
+ |----------|-----------|-----------|
63
+ | SUPABASE_URL | URL do projeto Supabase | supabase.com/dashboard |
64
+ | ... | ... | ... |
65
+
66
+ ## Estrutura do Projeto
67
+
68
+ \`\`\`
69
+ src/
70
+ app/ # Rotas (Next.js App Router)
71
+ components/ # Componentes reutilizaveis
72
+ features/ # Modulos por feature
73
+ lib/ # Utilitarios e configs
74
+ types/ # Tipos TypeScript
75
+ \`\`\`
76
+
77
+ ## Scripts
78
+
79
+ | Script | Descricao |
80
+ |--------|-----------|
81
+ | `pnpm dev` | Servidor de desenvolvimento |
82
+ | `pnpm build` | Build de producao |
83
+ | `pnpm test` | Rodar testes |
84
+ | `pnpm lint` | Verificar codigo |
85
+
86
+ ## API
87
+
88
+ [Resumo dos endpoints ou link para docs completa]
89
+
90
+ ## Deploy
91
+
92
+ [Instrucoes de deploy — Docker, Coolify, Vercel, etc.]
93
+
94
+ ## License
95
+
96
+ MIT
97
+ ```
98
+
99
+ ## 2. API Documentation
100
+
101
+ Se o projeto tem API routes, documentar cada endpoint:
102
+
103
+ ```markdown
104
+ # API Reference
105
+
106
+ ## Auth
107
+
108
+ ### POST /api/auth/login
109
+ **Body:** `{ email: string, password: string }`
110
+ **Response 200:** `{ user: User, token: string }`
111
+ **Response 401:** `{ error: "Invalid credentials" }`
112
+
113
+ ### POST /api/auth/signup
114
+ ...
115
+ ```
116
+
117
+ ## 3. CHANGELOG.md
118
+
119
+ ```markdown
120
+ # Changelog
121
+
122
+ ## [1.0.0] - {data}
123
+
124
+ ### Added
125
+ - [Feature 1]
126
+ - [Feature 2]
127
+ - Auth com roles (admin, user)
128
+ - Dashboard com metricas
129
+ - Responsive design
130
+
131
+ ### Security
132
+ - Rate limiting em endpoints sensiveis
133
+ - RLS no Supabase
134
+ - Input validation com Zod
135
+ ```
136
+
137
+ </documents>
138
+
139
+ <process>
140
+
141
+ ## Passo 1: Entender o Projeto
142
+ Ler: PROJECT.md, REQUIREMENTS.md, package.json, CLAUDE.md, estrutura de pastas.
143
+
144
+ ## Passo 2: Mapear Features
145
+ ```bash
146
+ # Rotas/paginas
147
+ find app -name "page.tsx" 2>/dev/null | head -20
148
+ # API routes
149
+ find app/api -name "route.ts" 2>/dev/null | head -20
150
+ # Componentes
151
+ find components -name "*.tsx" 2>/dev/null | head -30
152
+ ```
153
+
154
+ ## Passo 3: Mapear Env Vars
155
+ ```bash
156
+ grep -rn "process\.env\.\|import\.meta\.env\." src/ app/ --include="*.ts" --include="*.tsx" 2>/dev/null | sort -u
157
+ ```
158
+
159
+ ## Passo 4: Gerar Documentos
160
+ Criar cada documento com conteudo REAL (nao placeholders).
161
+
162
+ ## Passo 5: Commitar
163
+ ```bash
164
+ node "$HOME/.claude/up/bin/up-tools.cjs" commit "docs: adicionar documentacao completa" --files README.md CHANGELOG.md docs/
165
+ ```
166
+
167
+ ## Passo 6: Retornar
168
+ ```markdown
169
+ ## DOCUMENTATION COMPLETE
170
+
171
+ **Documentos gerados:**
172
+ - README.md ({N} linhas)
173
+ - CHANGELOG.md
174
+ - [API docs se aplicavel]
175
+
176
+ Arquivo: commitados
177
+ ```
178
+ </process>
179
+
180
+ <success_criteria>
181
+ - [ ] README.md completo (nao generico — conteudo real do projeto)
182
+ - [ ] Setup instructions testadas (comandos reais)
183
+ - [ ] Env vars documentadas com "onde obter"
184
+ - [ ] Estrutura do projeto documentada
185
+ - [ ] API endpoints documentados (se aplicavel)
186
+ - [ ] CHANGELOG.md com features implementadas
187
+ - [ ] Tudo commitado
188
+ </success_criteria>
package/bin/up-tools.cjs CHANGED
@@ -9,7 +9,7 @@
9
9
  *
10
10
  * Commands:
11
11
  * init planejar-fase|executar-fase|novo-projeto|rapido|retomar|operacao-fase|progresso|verificar-trabalho|melhorias|ideias|iniciar
12
- * state load|get|update|advance-plan|update-progress|add-decision|record-session|record-metric|snapshot
12
+ * state load|get|update|advance-plan|update-progress|add-decision|record-session|record-metric|snapshot|save-session
13
13
  * roadmap get-phase|analyze|update-plan-progress
14
14
  * phase add|remove|find|complete|generate-from-report
15
15
  * config get|set
@@ -255,8 +255,19 @@ function main() {
255
255
  }, raw);
256
256
  } else if (sub === 'snapshot') {
257
257
  cmdStateSnapshot(cwd, raw);
258
+ } else if (sub === 'save-session') {
259
+ const summaryIdx = args.indexOf('--summary');
260
+ const decisionIdx = args.indexOf('--decision');
261
+ const phaseIdx = args.indexOf('--phase');
262
+ const noCommitIdx = args.indexOf('--no-commit');
263
+ cmdStateSaveSession(cwd, {
264
+ summary: summaryIdx !== -1 ? args[summaryIdx + 1] : null,
265
+ decision: decisionIdx !== -1 ? args[decisionIdx + 1] : null,
266
+ phase: phaseIdx !== -1 ? args[phaseIdx + 1] : null,
267
+ no_commit: noCommitIdx !== -1,
268
+ }, raw);
258
269
  } else {
259
- error('Unknown state subcommand. Available: load, get, update, advance-plan, update-progress, add-decision, record-session, record-metric, snapshot');
270
+ error('Unknown state subcommand. Available: load, get, update, advance-plan, update-progress, add-decision, record-session, record-metric, snapshot, save-session');
260
271
  }
261
272
  break;
262
273
  }
@@ -1150,6 +1161,77 @@ function cmdStateSnapshot(cwd, raw) {
1150
1161
  }, raw);
1151
1162
  }
1152
1163
 
1164
+ function cmdStateSaveSession(cwd, options, raw) {
1165
+ const statePath = path.join(cwd, '.plano', 'STATE.md');
1166
+ if (!fs.existsSync(statePath)) { output({ error: 'STATE.md not found — project not initialized with UP' }, raw); return; }
1167
+
1168
+ const { summary, decision, phase, no_commit } = options;
1169
+ if (!summary) { output({ error: '--summary required: describe what was done in this session' }, raw); return; }
1170
+
1171
+ let content = fs.readFileSync(statePath, 'utf-8');
1172
+ const now = new Date().toISOString();
1173
+ const actions = [];
1174
+
1175
+ // 1. Update session timestamp (try both PT and EN field names)
1176
+ const sessionFields = ['Ultima sessao', 'Last session', 'Last Date'];
1177
+ for (const field of sessionFields) {
1178
+ let result = stateReplaceField(content, field, now);
1179
+ if (result) { content = result; if (!actions.includes('timestamp')) actions.push('timestamp'); }
1180
+ }
1181
+
1182
+ // 2. Update stopped-at with summary (try both PT and EN)
1183
+ const stoppedFields = ['Parou em', 'Stopped At', 'Stopped at'];
1184
+ for (const field of stoppedFields) {
1185
+ let result = stateReplaceField(content, field, summary);
1186
+ if (result) { content = result; if (!actions.includes('stopped_at')) actions.push('stopped_at'); break; }
1187
+ }
1188
+
1189
+ // 3. Update last activity (try both PT and EN)
1190
+ const shortDate = now.split('T')[0];
1191
+ const shortSummary = summary.length > 80 ? summary.substring(0, 77) + '...' : summary;
1192
+ const activityFields = ['Ultima atividade', 'Last activity'];
1193
+ for (const field of activityFields) {
1194
+ let result = stateReplaceField(content, field, `${shortDate} -- ${shortSummary}`);
1195
+ if (result) { content = result; if (!actions.includes('last_activity')) actions.push('last_activity'); break; }
1196
+ }
1197
+
1198
+ // 4. Add decision if provided
1199
+ if (decision) {
1200
+ const phaseLabel = phase || '?';
1201
+ const entry = `- [Phase ${phaseLabel}]: ${decision}`;
1202
+ const sectionPattern = /(###?\s*(?:Decisoes|Decisions|Decisions Made|Accumulated.*Decisions)\s*\n)([\s\S]*?)(?=\n###?|\n##[^#]|$)/i;
1203
+ const match = content.match(sectionPattern);
1204
+ if (match) {
1205
+ let sectionBody = match[2];
1206
+ sectionBody = sectionBody.replace(/None yet\.?\s*\n?/gi, '').replace(/No decisions yet\.?\s*\n?/gi, '').replace(/Nenhuma ainda\.?\s*\n?/gi, '');
1207
+ sectionBody = sectionBody.trimEnd() + '\n' + entry + '\n';
1208
+ content = content.replace(sectionPattern, (_match, header) => `${header}${sectionBody}`);
1209
+ actions.push('decision');
1210
+ }
1211
+ }
1212
+
1213
+ // 5. Write STATE.md
1214
+ fs.writeFileSync(statePath, content, 'utf-8');
1215
+
1216
+ // 6. Auto-commit unless --no-commit
1217
+ let committed = false;
1218
+ if (!no_commit) {
1219
+ try {
1220
+ execGit(cwd, ['add', statePath]);
1221
+ const diffResult = execGit(cwd, ['diff', '--cached', '--name-only']);
1222
+ const hasChanges = (diffResult.stdout || '').trim();
1223
+ if (hasChanges) {
1224
+ execGit(cwd, ['commit', '-m', `docs(state): ${shortSummary}`]);
1225
+ committed = true;
1226
+ }
1227
+ } catch (e) {
1228
+ // commit failed — not critical, state was still saved to disk
1229
+ }
1230
+ }
1231
+
1232
+ output({ saved: true, actions, committed, summary: shortSummary }, raw, 'true');
1233
+ }
1234
+
1153
1235
  // =====================================================================
1154
1236
  // ROADMAP COMMANDS
1155
1237
  // =====================================================================
@@ -0,0 +1,67 @@
1
+ ---
2
+ name: up:clone-builder
3
+ description: Clonar app existente via Playwright — analisa, extrai PRD completo e recria com sua stack usando modo-builder
4
+ argument-hint: "[url] [--exact|--improve|--inspiration]"
5
+ allowed-tools:
6
+ - Read
7
+ - Write
8
+ - Edit
9
+ - Glob
10
+ - Grep
11
+ - Bash
12
+ - Task
13
+ - WebFetch
14
+ - WebSearch
15
+ - AskUserQuestion
16
+ - mcp__context7__*
17
+ - mcp__plugin_playwright_playwright__*
18
+ ---
19
+ <objective>
20
+ Clone Builder: acessar um app real via Playwright, analisar TUDO (paginas, features, design, APIs, fluxos, data model) e recriar com sua stack usando o modo-builder.
21
+
22
+ Pipeline: Crawl → Extract Design → Map Features → Write PRD → Modo Builder (completo)
23
+
24
+ **5 agentes especializados** analisam o original:
25
+ 1. **Clone Crawler** — navega tudo, screenshots, intercepta APIs, extrai forms
26
+ 2. **Design Extractor** — extrai cores, fontes, espacamento, componentes, layout
27
+ 3. **Feature Mapper** — mapeia modulos, features, roles, data model, fluxos
28
+ 4. **PRD Writer** — sintetiza em PRD completo e detalhado
29
+ 5. **Clone Verifier** — verifica fidelidade (funcional + visual) no quality gate
30
+
31
+ O resultado alimenta o modo-builder que SABE que e um clone e:
32
+ - Usa screenshots como referencia visual
33
+ - Segue design system extraido
34
+ - Replica fluxos exatos
35
+ - Verifica fidelidade contra o original
36
+
37
+ **3 modos:**
38
+ - `--exact` (padrao): reproduzir o mais fiel possivel
39
+ - `--improve`: reproduzir + aplicar blueprints + melhorias UX
40
+ - `--inspiration`: usar como referencia, builder tem liberdade
41
+ </objective>
42
+
43
+ <execution_context>
44
+ @~/.claude/up/workflows/clone-builder.md
45
+ @~/.claude/up/references/ui-brand.md
46
+ </execution_context>
47
+
48
+ <context>
49
+ $ARGUMENTS
50
+
51
+ **Argumentos:**
52
+ - URL do app (obrigatorio): https://app.exemplo.com
53
+ - `--exact` | `--improve` | `--inspiration` (default: --exact)
54
+
55
+ **Perguntas que o comando faz (interativo):**
56
+ 1. URL do app ✓ (do argumento)
57
+ 2. Credenciais de login (se o app requer auth para ver features)
58
+ 3. Stack desejada (ou usa builder-defaults.md)
59
+ 4. Credenciais do banco (Supabase URL/key, etc.)
60
+ 5. O que quer diferente do original (se --improve ou --inspiration)
61
+ </context>
62
+
63
+ <process>
64
+ Execute the clone-builder workflow from @~/.claude/up/workflows/clone-builder.md end-to-end.
65
+
66
+ **CRITICO:** Apos coletar URL e credenciais, ZERO interacao. Tudo autonomo.
67
+ </process>
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: up:dashboard
3
+ description: Abrir dashboard visual de monitoramento do builder em tempo real (http://localhost:4040)
4
+ argument-hint: "[porta]"
5
+ allowed-tools:
6
+ - Bash
7
+ - Read
8
+ ---
9
+ <objective>
10
+ Iniciar o dashboard de monitoramento do UP Builder. Mostra em tempo real no browser:
11
+ - Progresso do build (% e barra visual)
12
+ - Fases (completas, atual, pendentes)
13
+ - Status atual (estagio, fase, passo)
14
+ - Metricas (commits, reports gerados)
15
+ - LOCK.md status (se builder ativo)
16
+
17
+ Servidor leve em Node.js puro (zero deps). Le `.plano/` e atualiza a cada 3 segundos.
18
+ </objective>
19
+
20
+ <context>
21
+ $ARGUMENTS
22
+
23
+ **Porta:** Default 4040. Pode especificar outra: `/up:dashboard 8080`
24
+
25
+ **Requer:** `.plano/` no diretorio atual (funciona com ou sem builder ativo).
26
+ </context>
27
+
28
+ <process>
29
+ 1. Verificar que `.plano/` existe
30
+ 2. Iniciar servidor em background:
31
+ ```bash
32
+ node "$HOME/.claude/up/dashboard/server.js" ${PORT:-4040} "$(pwd)/.plano" &
33
+ DASH_PID=$!
34
+ echo "Dashboard rodando em http://localhost:${PORT:-4040} (PID: $DASH_PID)"
35
+ ```
36
+ 3. Informar ao usuario:
37
+ ```
38
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
39
+ UP > DASHBOARD
40
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
41
+
42
+ Dashboard: http://localhost:${PORT:-4040}
43
+ Monitorando: .plano/
44
+ Atualiza a cada 3 segundos.
45
+
46
+ Para parar: kill $DASH_PID
47
+ ```
48
+ </process>
@@ -14,7 +14,7 @@ Depurar problemas usando metodo cientifico com isolamento em subagente.
14
14
 
15
15
  **Papel do orquestrador:** Coletar sintomas, spawnar agente up-depurador, lidar com checkpoints, spawnar continuacoes.
16
16
 
17
- **Por que subagente:** Investigacao consome contexto rapidamente (lendo arquivos, formando hipoteses, testando). Contexto fresco de 800k por investigacao. Contexto principal permanece enxuto para interacao com usuario.
17
+ **Por que subagente:** Investigacao consome contexto rapidamente (lendo arquivos, formando hipoteses, testando). Contexto fresco de 200k por investigacao. Contexto principal permanece enxuto para interacao com usuario.
18
18
  </objective>
19
19
 
20
20
  <context>
@@ -0,0 +1,71 @@
1
+ ---
2
+ name: up:mobile-first
3
+ description: Tornar sistema responsivo para mobile/tablet sem quebrar desktop — detecta problemas via Playwright e corrige automaticamente
4
+ argument-hint: "[--no-fix] [--page /rota] [porta]"
5
+ allowed-tools:
6
+ - Read
7
+ - Write
8
+ - Edit
9
+ - Glob
10
+ - Grep
11
+ - Bash
12
+ - Task
13
+ - AskUserQuestion
14
+ - mcp__plugin_playwright_playwright__*
15
+ ---
16
+ <objective>
17
+ Mobile First: abrir o sistema no browser em multiplos viewports, detectar o que quebra no mobile/tablet e corrigir automaticamente SEM mexer na experiencia desktop.
18
+
19
+ Desktop e a referencia sagrada. Cada correcao e verificada: se desktop mudou, reverte.
20
+
21
+ **Standalone:** Funciona em qualquer projeto, qualquer momento. NAO requer /up:novo-projeto ou .plano/.
22
+ **Builder:** Tambem integrado no modo builder (Estagio 4 — Polish).
23
+
24
+ **Detecta problemas:** overflow horizontal, texto ilegivel, alvos de toque pequenos, grid/flex quebrado, imagens distorcidas, navegacao que nao cabe, modais que estourem, sidebar fixa, sobreposicao de elementos.
25
+
26
+ **Corrige com:** classes Tailwind responsivas (sm:/md:/lg:), media queries CSS, componentes novos (hamburger menu, drawer, tabela responsiva), ajustes de layout.
27
+
28
+ **Output:** `.plano/mobile-review/MOBILE-REPORT.md` com score de responsividade, problemas por pagina, screenshots antes/depois em todos viewports.
29
+ </objective>
30
+
31
+ <execution_context>
32
+ @~/.claude/up/workflows/mobile-first.md
33
+ @~/.claude/up/references/ui-brand.md
34
+ </execution_context>
35
+
36
+ <context>
37
+ $ARGUMENTS
38
+
39
+ **Flags:**
40
+ - `--no-fix` — Apenas escanear e gerar relatorio, NAO corrigir
41
+ - `--page /rota` — Testar apenas uma pagina especifica (ex: `--page /dashboard`)
42
+
43
+ **Argumentos opcionais:**
44
+ - Porta: `3000` ou `http://localhost:3000` (default: detecta automaticamente)
45
+
46
+ **Exemplos:**
47
+ ```
48
+ /up:mobile-first # Escanear tudo e corrigir
49
+ /up:mobile-first --no-fix # Apenas relatorio
50
+ /up:mobile-first --page /dashboard # Apenas uma pagina
51
+ /up:mobile-first 5173 # Especificar porta
52
+ /up:mobile-first --page /settings 3000 # Combinar flags
53
+ ```
54
+
55
+ **Cria .plano/mobile-review/ automaticamente** (standalone, sem pre-requisitos).
56
+ </context>
57
+
58
+ <process>
59
+ Execute the mobile-first workflow from @~/.claude/up/workflows/mobile-first.md end-to-end.
60
+
61
+ Preserve all workflow gates:
62
+ 1. Setup (detectar CSS stack, subir server, descobrir paginas)
63
+ 2. Scan (capturar todas paginas em mobile/tablet/desktop, detectar problemas)
64
+ 3. Analyze (mapear problema → arquivo → estrategia de fix)
65
+ 4. Fix (corrigir cada problema, verificar desktop intacto apos cada um)
66
+ 5. Report (MOBILE-REPORT.md com screenshots comparativos)
67
+ 6. Cleanup (matar server, fechar browser)
68
+
69
+ **Flag --no-fix:** Se presente, pular passo 4 (Fix). Apenas escanear e reportar.
70
+ **Flag --page:** Se presente, filtrar para apenas a pagina especificada.
71
+ </process>
@@ -0,0 +1,178 @@
1
+ ---
2
+ name: up:modo-builder
3
+ description: Construir projeto completo de forma autonoma — greenfield (do zero) ou brownfield (feature nova em projeto existente)
4
+ argument-hint: "[--light] [descricao do projeto ou feature]"
5
+ allowed-tools:
6
+ - Read
7
+ - Write
8
+ - Edit
9
+ - Glob
10
+ - Grep
11
+ - Bash
12
+ - Task
13
+ - WebFetch
14
+ - WebSearch
15
+ - AskUserQuestion
16
+ - mcp__context7__*
17
+ - mcp__plugin_playwright_playwright__*
18
+ ---
19
+ <objective>
20
+ Modo Builder: construir projeto completo de forma totalmente autonoma.
21
+
22
+ Detecta automaticamente o modo:
23
+ - **Greenfield** (sem codigo existente): cria projeto do zero
24
+ - **Brownfield** (codigo existente): mapeia codebase, planeja e implementa feature/mudanca
25
+
26
+ **Dois niveis de execucao:**
27
+ - **Full (padrao):** Pipeline completo com pesquisa, polish, UX review, ideias, delivery
28
+ - **Light (`--light`):** Pipeline enxuto — planeja, constroi, testa. Sem gordura. Ideal para features medias em projetos existentes.
29
+
30
+ O usuario fornece um briefing, responde perguntas criticas (apenas sobre credenciais/APIs/ambiguidades), e o sistema faz TUDO sozinho.
31
+
32
+ **Modo Full (padrao):**
33
+ 1. Detecta modo → Pesquisa/Mapeia → Estrutura → Planeja → Executa → Verifica → E2E
34
+ 2. Polish (melhorias + UX tester + ideias) → DELIVERY.md
35
+
36
+ **Modo Light (`--light`):**
37
+ 1. Detecta modo → Mini-scan → Estrutura inline → Planeja → Executa → Verifica → E2E
38
+ 2. Fim. Sem polish, sem delivery, sem pesquisa pesada.
39
+ </objective>
40
+
41
+ <execution_context>
42
+ @~/.claude/up/workflows/builder.md
43
+ @~/.claude/up/workflows/builder-e2e.md
44
+ @~/.claude/up/workflows/ux-tester.md
45
+ @~/.claude/up/workflows/mobile-first.md
46
+ @~/.claude/up/references/ui-brand.md
47
+ </execution_context>
48
+
49
+ <context>
50
+ $ARGUMENTS
51
+
52
+ **Flags:**
53
+ - `--light` — Modo enxuto. Pula pesquisa, polish, UX tester, ideias, delivery, reassessment, captures. Mantém: planejar, executar, verificar, E2E Playwright.
54
+
55
+ O restante do argumento e o briefing em texto livre. Pode incluir:
56
+
57
+ **Greenfield (projeto novo):**
58
+ - O que quer construir
59
+ - Para quem (publico)
60
+ - Stack desejada (ou usa builder-defaults.md)
61
+ - Features principais
62
+ - Credenciais/APIs que ja tem
63
+
64
+ **Brownfield (projeto existente):**
65
+ - Que feature/mudanca quer implementar
66
+ - Como se integra com o existente
67
+ - Novas APIs/integrações necessarias
68
+ - Restricoes ou areas que nao devem ser tocadas
69
+
70
+ Se $ARGUMENTS estiver vazio (alem de flags), o workflow pedira o briefing interativamente.
71
+
72
+ **Deteccao automatica:** Se ha codigo existente no diretorio (package.json, src/, etc.) ou .plano/ existente, o builder entra em modo brownfield automaticamente.
73
+
74
+ **Defaults:** Lidos de `~/.claude/up/builder-defaults.md` (se existir).
75
+ Em brownfield, convencoes do codebase existente tem prioridade sobre defaults.
76
+ </context>
77
+
78
+ <process>
79
+ **Parsear flags primeiro:** Extrair `--light` dos $ARGUMENTS se presente. O restante e o briefing.
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.
84
+
85
+ **Se modo full (padrao):**
86
+ Execute the builder workflow from @~/.claude/up/workflows/builder.md end-to-end.
87
+
88
+ **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.
89
+
90
+ **Modo Full — Preserve all workflow gates:**
91
+ - Estagio 1: Intake (detectar modo + briefing + perguntas criticas)
92
+ - Estagio 2: Arquitetura (mapear codebase OU pesquisar ecossistema + up-arquiteto)
93
+ - Estagio 3: Build (loop planejar → executar → verificar → E2E por fase)
94
+ - Estagio 4: Polish (melhorias + quick wins + UX tester + ideias)
95
+ - Estagio 5: Entrega (E2E final + captures + DELIVERY.md + resumo)
96
+
97
+ Falhas sao contornadas, nunca bloqueiam. O builder SEMPRE entrega algo.
98
+ </process>
99
+
100
+ <light_mode>
101
+ ## Modo Light — Pipeline Enxuto
102
+
103
+ Quando `--light` esta presente, o builder roda um pipeline minimalista:
104
+
105
+ ### Estagio 1 Light: Intake Rapido
106
+
107
+ 1. Detectar modo (greenfield/brownfield) — mesmo processo
108
+ 2. Receber briefing
109
+ 3. Perguntas criticas — SIM, mesma logica (so perguntar o essencial)
110
+ 4. **NAO carregar builder-defaults.md** — usar stack do codebase (brownfield) ou inferir (greenfield)
111
+
112
+ ### Estagio 2 Light: Estrutura Inline
113
+
114
+ **Brownfield:**
115
+ - Se `.plano/codebase/` existe e tem < 7 dias: reutilizar
116
+ - Se nao existe: mini-scan inline (sem spawnar 4 agentes mapeadores):
117
+ ```bash
118
+ # Mini-scan rapido
119
+ ls package.json requirements.txt pyproject.toml 2>/dev/null
120
+ cat package.json 2>/dev/null | head -50
121
+ ls -d src/ app/ lib/ pages/ components/ 2>/dev/null | head -10
122
+ find . -name "*.ts" -o -name "*.tsx" | head -30
123
+ ```
124
+ - **Estruturar inline** (sem spawnar up-arquiteto):
125
+ - Criar/atualizar PROJECT.md com briefing e contexto minimo
126
+ - Criar/atualizar REQUIREMENTS.md com requisitos da feature
127
+ - Criar/atualizar ROADMAP.md com 1-3 fases max
128
+ - config.json com `builder_mode: true, builder_type: light`
129
+
130
+ **Greenfield:**
131
+ - **Pular pesquisa** (sem 4 pesquisadores paralelos)
132
+ - Estruturar inline com inferencia inteligente
133
+ - 2-5 fases max
134
+
135
+ ### Estagio 3 Light: Build + E2E
136
+
137
+ Mesmo loop do full, mas:
138
+ - **Sem LOCK.md** (sessao curta, nao precisa de crash recovery)
139
+ - **Sem reassessment** (poucas fases, nao vale a pena)
140
+ - **Sem captures** (sessao curta)
141
+ - **COM teste E2E Playwright** (se tem UI) — mesmo processo do full
142
+
143
+ ### Sem Estagio 4 (Polish)
144
+
145
+ Nao roda melhorias, UX tester, nem ideias.
146
+
147
+ ### Sem Estagio 5 (Entrega)
148
+
149
+ Nao gera DELIVERY.md. Apenas exibe resumo inline:
150
+
151
+ ```
152
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
153
+ UP > BUILDER LIGHT — COMPLETO
154
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
155
+
156
+ **Feature:** [resumo]
157
+ **Fases:** [N] completadas
158
+ **Commits:** [N]
159
+ **E2E:** [N] testes, [X] passaram
160
+ **Bugs E2E:** [N] encontrados, [M] corrigidos
161
+
162
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
163
+ ```
164
+
165
+ ### Comparacao de Tokens (estimativa)
166
+
167
+ | Etapa | Full | Light |
168
+ |-------|------|-------|
169
+ | Pesquisa (4 agentes) | ~80k tokens | 0 |
170
+ | Mapeamento (4 agentes) | ~60k tokens | ~5k (mini-scan) |
171
+ | Arquiteto (agente) | ~40k tokens | ~10k (inline) |
172
+ | Build (por fase) | ~100k tokens | ~100k tokens |
173
+ | E2E (por fase) | ~30k tokens | ~30k tokens |
174
+ | Polish (7+ agentes) | ~150k tokens | 0 |
175
+ | Delivery | ~20k tokens | 0 |
176
+ | **Total (3 fases)** | **~680k** | **~345k** (~50% menos) |
177
+
178
+ </light_mode>