flyee 0.1.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.
- package/LICENSE +21 -0
- package/README.md +134 -0
- package/bin/install.js +357 -0
- package/bridge/bridge.py +1780 -0
- package/bridge/local_tracker.py +722 -0
- package/core/agents/backend-specialist.md +266 -0
- package/core/agents/code-archaeologist.md +106 -0
- package/core/agents/database-architect.md +226 -0
- package/core/agents/debugger.md +225 -0
- package/core/agents/devops-engineer.md +323 -0
- package/core/agents/documentation-writer.md +104 -0
- package/core/agents/explorer-agent.md +73 -0
- package/core/agents/frontend-specialist.md +743 -0
- package/core/agents/game-developer.md +162 -0
- package/core/agents/mobile-developer.md +377 -0
- package/core/agents/orchestrator.md +416 -0
- package/core/agents/penetration-tester.md +188 -0
- package/core/agents/performance-optimizer.md +187 -0
- package/core/agents/product-manager.md +112 -0
- package/core/agents/product-owner.md +95 -0
- package/core/agents/project-planner.md +470 -0
- package/core/agents/qa-automation-engineer.md +103 -0
- package/core/agents/security-auditor.md +170 -0
- package/core/agents/seo-specialist.md +111 -0
- package/core/agents/stitch-designer.md +190 -0
- package/core/agents/tdd-reviewer.md +282 -0
- package/core/agents/test-engineer.md +158 -0
- package/core/scripts/auto_preview.py +148 -0
- package/core/scripts/checklist.py +243 -0
- package/core/scripts/cost_report.py +149 -0
- package/core/scripts/doc-sync-check.py +461 -0
- package/core/scripts/parse_user_stories.py +79 -0
- package/core/scripts/prepare_notion_updates.py +172 -0
- package/core/scripts/print_create_payload.py +18 -0
- package/core/scripts/session_manager.py +120 -0
- package/core/scripts/task_complete.py +127 -0
- package/core/scripts/verify_all.py +327 -0
- package/core/skills/analytics-strategy/SKILL.md +128 -0
- package/core/skills/api-patterns/SKILL.md +81 -0
- package/core/skills/api-patterns/api-style.md +42 -0
- package/core/skills/api-patterns/auth.md +24 -0
- package/core/skills/api-patterns/documentation.md +26 -0
- package/core/skills/api-patterns/graphql.md +41 -0
- package/core/skills/api-patterns/rate-limiting.md +31 -0
- package/core/skills/api-patterns/response.md +37 -0
- package/core/skills/api-patterns/rest.md +40 -0
- package/core/skills/api-patterns/scripts/api_validator.py +211 -0
- package/core/skills/api-patterns/security-testing.md +122 -0
- package/core/skills/api-patterns/trpc.md +41 -0
- package/core/skills/api-patterns/versioning.md +22 -0
- package/core/skills/app-builder/SKILL.md +75 -0
- package/core/skills/app-builder/agent-coordination.md +71 -0
- package/core/skills/app-builder/feature-building.md +53 -0
- package/core/skills/app-builder/project-detection.md +34 -0
- package/core/skills/app-builder/scaffolding.md +118 -0
- package/core/skills/app-builder/tech-stack.md +40 -0
- package/core/skills/app-builder/templates/SKILL.md +39 -0
- package/core/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
- package/core/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
- package/core/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
- package/core/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
- package/core/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
- package/core/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
- package/core/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
- package/core/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +82 -0
- package/core/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +100 -0
- package/core/skills/app-builder/templates/nextjs-static/TEMPLATE.md +106 -0
- package/core/skills/app-builder/templates/nuxt-app/TEMPLATE.md +101 -0
- package/core/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
- package/core/skills/app-builder/templates/react-native-app/TEMPLATE.md +93 -0
- package/core/skills/architecture/SKILL.md +55 -0
- package/core/skills/architecture/context-discovery.md +43 -0
- package/core/skills/architecture/examples.md +94 -0
- package/core/skills/architecture/pattern-selection.md +68 -0
- package/core/skills/architecture/patterns-reference.md +50 -0
- package/core/skills/architecture/trade-off-analysis.md +77 -0
- package/core/skills/atomic-design/SKILL.md +282 -0
- package/core/skills/atomic-design/references/classification-guide.md +132 -0
- package/core/skills/atomic-design/references/quality-checklist.md +60 -0
- package/core/skills/atomic-design/references/stacks/stack-blade.md +254 -0
- package/core/skills/atomic-design/references/stacks/stack-nextjs.md +272 -0
- package/core/skills/atomic-design/references/stacks/stack-react.md +239 -0
- package/core/skills/atomic-design/references/stacks/stack-vue.md +224 -0
- package/core/skills/bash-linux/SKILL.md +199 -0
- package/core/skills/behavioral-modes/SKILL.md +242 -0
- package/core/skills/brainstorming/SKILL.md +163 -0
- package/core/skills/brainstorming/dynamic-questioning.md +373 -0
- package/core/skills/checkpointing-patterns/SKILL.md +163 -0
- package/core/skills/clean-code/SKILL.md +201 -0
- package/core/skills/code-review-checklist/SKILL.md +109 -0
- package/core/skills/code-truth-validation/SKILL.md +149 -0
- package/core/skills/component-library-discovery/SKILL.md +154 -0
- package/core/skills/content-strategy/SKILL.md +222 -0
- package/core/skills/context-budget/SKILL.md +155 -0
- package/core/skills/context-gathering-patterns/SKILL.md +278 -0
- package/core/skills/cost-tracking/SKILL.md +206 -0
- package/core/skills/database-design/SKILL.md +52 -0
- package/core/skills/database-design/database-selection.md +43 -0
- package/core/skills/database-design/indexing.md +39 -0
- package/core/skills/database-design/migrations.md +48 -0
- package/core/skills/database-design/optimization.md +36 -0
- package/core/skills/database-design/orm-selection.md +30 -0
- package/core/skills/database-design/schema-design.md +56 -0
- package/core/skills/database-design/scripts/schema_validator.py +172 -0
- package/core/skills/deployment-procedures/SKILL.md +295 -0
- package/core/skills/design-md/README.md +34 -0
- package/core/skills/design-md/SKILL.md +172 -0
- package/core/skills/design-md/examples/DESIGN.md +154 -0
- package/core/skills/design-system-enforcement/SKILL.md +339 -0
- package/core/skills/doc.md +177 -0
- package/core/skills/document-registry/SKILL.md +130 -0
- package/core/skills/documentation-publishing/SKILL.md +174 -0
- package/core/skills/documentation-templates/SKILL.md +194 -0
- package/core/skills/enhance-prompt/README.md +34 -0
- package/core/skills/enhance-prompt/SKILL.md +204 -0
- package/core/skills/enhance-prompt/references/KEYWORDS.md +114 -0
- package/core/skills/frontend-design/SKILL.md +430 -0
- package/core/skills/frontend-design/animation-guide.md +331 -0
- package/core/skills/frontend-design/color-system.md +311 -0
- package/core/skills/frontend-design/decision-trees.md +418 -0
- package/core/skills/frontend-design/motion-graphics.md +306 -0
- package/core/skills/frontend-design/scripts/accessibility_checker.py +183 -0
- package/core/skills/frontend-design/scripts/ux_audit.py +722 -0
- package/core/skills/frontend-design/typography-system.md +345 -0
- package/core/skills/frontend-design/ux-psychology.md +541 -0
- package/core/skills/frontend-design/visual-effects.md +383 -0
- package/core/skills/game-development/2d-games/SKILL.md +119 -0
- package/core/skills/game-development/3d-games/SKILL.md +135 -0
- package/core/skills/game-development/SKILL.md +167 -0
- package/core/skills/game-development/game-art/SKILL.md +185 -0
- package/core/skills/game-development/game-audio/SKILL.md +190 -0
- package/core/skills/game-development/game-design/SKILL.md +129 -0
- package/core/skills/game-development/mobile-games/SKILL.md +108 -0
- package/core/skills/game-development/multiplayer/SKILL.md +132 -0
- package/core/skills/game-development/pc-games/SKILL.md +144 -0
- package/core/skills/game-development/vr-ar/SKILL.md +123 -0
- package/core/skills/game-development/web-games/SKILL.md +150 -0
- package/core/skills/geo-fundamentals/SKILL.md +156 -0
- package/core/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
- package/core/skills/git-workflow/SKILL.md +263 -0
- package/core/skills/history-check-patterns/SKILL.md +125 -0
- package/core/skills/i18n-localization/SKILL.md +154 -0
- package/core/skills/i18n-localization/scripts/i18n_checker.py +241 -0
- package/core/skills/integration-completeness/SKILL.md +219 -0
- package/core/skills/intelligent-routing/SKILL.md +370 -0
- package/core/skills/lint-and-validate/SKILL.md +45 -0
- package/core/skills/lint-and-validate/scripts/lint_runner.py +173 -0
- package/core/skills/lint-and-validate/scripts/type_coverage.py +173 -0
- package/core/skills/local-verification/SKILL.md +195 -0
- package/core/skills/mcp-builder/SKILL.md +176 -0
- package/core/skills/mobile-design/SKILL.md +394 -0
- package/core/skills/mobile-design/decision-trees.md +516 -0
- package/core/skills/mobile-design/mobile-backend.md +491 -0
- package/core/skills/mobile-design/mobile-color-system.md +420 -0
- package/core/skills/mobile-design/mobile-debugging.md +122 -0
- package/core/skills/mobile-design/mobile-design-thinking.md +357 -0
- package/core/skills/mobile-design/mobile-navigation.md +458 -0
- package/core/skills/mobile-design/mobile-performance.md +767 -0
- package/core/skills/mobile-design/mobile-testing.md +356 -0
- package/core/skills/mobile-design/mobile-typography.md +433 -0
- package/core/skills/mobile-design/platform-android.md +666 -0
- package/core/skills/mobile-design/platform-ios.md +561 -0
- package/core/skills/mobile-design/scripts/mobile_audit.py +670 -0
- package/core/skills/mobile-design/touch-psychology.md +537 -0
- package/core/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +312 -0
- package/core/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +240 -0
- package/core/skills/nextjs-react-expert/3-server-server-side-performance.md +490 -0
- package/core/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +264 -0
- package/core/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +581 -0
- package/core/skills/nextjs-react-expert/6-rendering-rendering-performance.md +432 -0
- package/core/skills/nextjs-react-expert/7-js-javascript-performance.md +684 -0
- package/core/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +150 -0
- package/core/skills/nextjs-react-expert/SKILL.md +267 -0
- package/core/skills/nextjs-react-expert/scripts/convert_rules.py +222 -0
- package/core/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -0
- package/core/skills/nodejs-best-practices/SKILL.md +333 -0
- package/core/skills/notion-task-patterns/SKILL.md +2529 -0
- package/core/skills/page-specifications/SKILL.md +367 -0
- package/core/skills/parallel-agents/SKILL.md +175 -0
- package/core/skills/performance-profiling/SKILL.md +143 -0
- package/core/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
- package/core/skills/plan-writing/SKILL.md +190 -0
- package/core/skills/powershell-windows/SKILL.md +167 -0
- package/core/skills/project-foundation/SKILL.md +117 -0
- package/core/skills/project-setup/SKILL.md +141 -0
- package/core/skills/project-tracking-patterns/SKILL.md +357 -0
- package/core/skills/project-type-discovery/SKILL.md +239 -0
- package/core/skills/python-patterns/SKILL.md +441 -0
- package/core/skills/qa-test-generation/SKILL.md +156 -0
- package/core/skills/react-components/README.md +36 -0
- package/core/skills/react-components/SKILL.md +47 -0
- package/core/skills/react-components/examples/gold-standard-card.tsx +80 -0
- package/core/skills/react-components/package-lock.json +231 -0
- package/core/skills/react-components/package.json +16 -0
- package/core/skills/react-components/resources/architecture-checklist.md +15 -0
- package/core/skills/react-components/resources/component-template.tsx +37 -0
- package/core/skills/react-components/resources/stitch-api-reference.md +14 -0
- package/core/skills/react-components/resources/style-guide.json +27 -0
- package/core/skills/react-components/scripts/fetch-stitch.sh +30 -0
- package/core/skills/react-components/scripts/validate.js +68 -0
- package/core/skills/red-team-tactics/SKILL.md +199 -0
- package/core/skills/remotion/README.md +105 -0
- package/core/skills/remotion/SKILL.md +393 -0
- package/core/skills/remotion/examples/WalkthroughComposition.tsx +78 -0
- package/core/skills/remotion/examples/screens.json +56 -0
- package/core/skills/remotion/resources/composition-checklist.md +124 -0
- package/core/skills/remotion/resources/screen-slide-template.tsx +123 -0
- package/core/skills/remotion/scripts/download-stitch-asset.sh +38 -0
- package/core/skills/seo-fundamentals/SKILL.md +129 -0
- package/core/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
- package/core/skills/server-management/SKILL.md +161 -0
- package/core/skills/session-resilience/SKILL.md +199 -0
- package/core/skills/shadcn-ui/README.md +248 -0
- package/core/skills/shadcn-ui/SKILL.md +326 -0
- package/core/skills/shadcn-ui/examples/auth-layout.tsx +177 -0
- package/core/skills/shadcn-ui/examples/data-table.tsx +313 -0
- package/core/skills/shadcn-ui/examples/form-pattern.tsx +177 -0
- package/core/skills/shadcn-ui/resources/component-catalog.md +481 -0
- package/core/skills/shadcn-ui/resources/customization-guide.md +516 -0
- package/core/skills/shadcn-ui/resources/migration-guide.md +463 -0
- package/core/skills/shadcn-ui/resources/setup-guide.md +412 -0
- package/core/skills/shadcn-ui/scripts/verify-setup.sh +134 -0
- package/core/skills/state-machine/SKILL.md +264 -0
- package/core/skills/stitch-loop/README.md +54 -0
- package/core/skills/stitch-loop/SKILL.md +203 -0
- package/core/skills/stitch-loop/examples/SITE.md +73 -0
- package/core/skills/stitch-loop/examples/next-prompt.md +25 -0
- package/core/skills/stitch-loop/resources/baton-schema.md +61 -0
- package/core/skills/stitch-loop/resources/site-template.md +104 -0
- package/core/skills/systematic-debugging/SKILL.md +109 -0
- package/core/skills/tailwind-patterns/SKILL.md +284 -0
- package/core/skills/tdd-validation/SKILL.md +243 -0
- package/core/skills/tdd-workflow/SKILL.md +284 -0
- package/core/skills/testing-patterns/SKILL.md +196 -0
- package/core/skills/testing-patterns/scripts/test_runner.py +219 -0
- package/core/skills/ui-ux-discovery/SKILL.md +329 -0
- package/core/skills/ui-validation/SKILL.md +190 -0
- package/core/skills/ui-validation/scripts/ui_antipattern_check.py +317 -0
- package/core/skills/verification-gate/SKILL.md +205 -0
- package/core/skills/vulnerability-scanner/SKILL.md +276 -0
- package/core/skills/vulnerability-scanner/checklists.md +121 -0
- package/core/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
- package/core/skills/web-design-guidelines/SKILL.md +57 -0
- package/core/skills/webapp-testing/SKILL.md +187 -0
- package/core/skills/webapp-testing/scripts/playwright_runner.py +173 -0
- package/core/templates/ARCHITECTURE.template.md +407 -0
- package/core/templates/project-resources.example.json +71 -0
- package/core/workflows/atomic.md +182 -0
- package/core/workflows/brainstorm.md +134 -0
- package/core/workflows/check-task.md +242 -0
- package/core/workflows/copy-collect.md +306 -0
- package/core/workflows/create-agent.md +33 -0
- package/core/workflows/create-skill.md +39 -0
- package/core/workflows/create-workflow.md +33 -0
- package/core/workflows/create.md +92 -0
- package/core/workflows/debug.md +186 -0
- package/core/workflows/demand.md +443 -0
- package/core/workflows/deploy.md +260 -0
- package/core/workflows/discovery.md +267 -0
- package/core/workflows/document.md +272 -0
- package/core/workflows/ds-components.md +296 -0
- package/core/workflows/ds-init.md +58 -0
- package/core/workflows/ds-refactor.md +245 -0
- package/core/workflows/ds-references.md +197 -0
- package/core/workflows/ds-styleguide.md +237 -0
- package/core/workflows/ds-token-diff.md +103 -0
- package/core/workflows/ds-tokens.md +317 -0
- package/core/workflows/ds-validate.md +309 -0
- package/core/workflows/execute.md +483 -0
- package/core/workflows/extract-template.md +278 -0
- package/core/workflows/fix-failed-tests.md +160 -0
- package/core/workflows/init-project.md +386 -0
- package/core/workflows/legacy-project.md +849 -0
- package/core/workflows/log.md +97 -0
- package/core/workflows/new-project.md +610 -0
- package/core/workflows/new-project.md.bak +3292 -0
- package/core/workflows/new-task.md +404 -0
- package/core/workflows/orchestrate.md +237 -0
- package/core/workflows/page-build.md +296 -0
- package/core/workflows/plan.md +89 -0
- package/core/workflows/prd.md +255 -0
- package/core/workflows/preview.md +81 -0
- package/core/workflows/review-page.md +304 -0
- package/core/workflows/status.md +86 -0
- package/core/workflows/stitch.md +226 -0
- package/core/workflows/task-complete.md +473 -0
- package/core/workflows/task-update.md +163 -0
- package/core/workflows/tdd.md +344 -0
- package/core/workflows/test.md +251 -0
- package/core/workflows/ui-ux-pro-max.md +437 -0
- package/core/workflows/ux-mobile-optimize.md +262 -0
- package/core/workflows/ux-mobile-validate.md +297 -0
- package/engine-files/GEMINI.md +69 -0
- package/package.json +47 -0
- package/runtime-adapters/antigravity.js +26 -0
- package/runtime-adapters/claude.js +57 -0
- package/runtime-adapters/codex.js +51 -0
- package/runtime-adapters/copilot.js +51 -0
- package/runtime-adapters/cursor.js +51 -0
- package/runtime-adapters/gemini-cli.js +30 -0
- package/runtime-adapters/opencode.js +51 -0
- package/runtime-adapters/windsurf.js +51 -0
|
@@ -0,0 +1,3292 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Workflow unificado para novo projeto. Orquestra PRD → TDD Técnico → Design System → Breakdown → TDD Metodologia → Implementação → Deploy. Fluxo completo com checkpointing.
|
|
3
|
+
skills: checkpointing-patterns, project-tracking-patterns, ui-ux-discovery, local-verification, integration-completeness, content-strategy, page-specifications, design-md, enhance-prompt, react-components, stitch-loop, remotion, shadcn-ui, component-library-discovery
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /new-project - Novo Projeto Completo
|
|
7
|
+
|
|
8
|
+
$ARGUMENTS
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 🎯 PROPÓSITO
|
|
13
|
+
|
|
14
|
+
Workflow **orquestrador** que guia a criação de um novo projeto do zero, garantindo:
|
|
15
|
+
- Exploração de ideias quando necessário (Brainstorm)
|
|
16
|
+
- Documentação completa (PRD + TDD)
|
|
17
|
+
- Testes antes do código (TDD Metodologia)
|
|
18
|
+
- Rastreabilidade entre documentos
|
|
19
|
+
- Cobertura mínima de 80%
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 📊 QUANDO USAR ESTE WORKFLOW?
|
|
24
|
+
|
|
25
|
+
> [!TIP]
|
|
26
|
+
> **Use este guia para escolher o workflow correto:**
|
|
27
|
+
|
|
28
|
+
| Situação | Workflow Recomendado | Por quê? |
|
|
29
|
+
|----------|---------------------|----------|
|
|
30
|
+
| Ideia vaga, preciso explorar opções | `/new-project --brainstorm` | Inclui fase de exploração |
|
|
31
|
+
| Ideia clara, quero documentação formal | `/new-project` | Fluxo completo com PRD + TDD |
|
|
32
|
+
| Projeto rápido, sem PRD formal | `/new-project --quick` | Direto para TDD + Tasks |
|
|
33
|
+
| Apenas explorar ideias técnicas | `/brainstorm` | Sem compromisso de implementar |
|
|
34
|
+
| Projeto legado, preciso documentar | `/document` → `/discovery --from-project` | Engenharia reversa |
|
|
35
|
+
| Nova feature em projeto existente | `/enhance` ou `/tdd new` | Contexto já existe |
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## 🧩 SUBCOMMANDS
|
|
40
|
+
|
|
41
|
+
| Comando | Ação |
|
|
42
|
+
|---------|------|
|
|
43
|
+
| `/new-project [nome]` | Fluxo **completo** (PRD → TDD → Tests → Code) |
|
|
44
|
+
| `/new-project --brainstorm [nome]` | Inclui **Phase 0** para explorar ideias |
|
|
45
|
+
| `/new-project --quick [nome]` | Modo **ágil** (sem PRD formal, direto TDD) |
|
|
46
|
+
| `/new-project --resume` | **Retomar** de onde parou |
|
|
47
|
+
| `/new-project --from-prd [arquivo]` | Continua de PRD já aprovado |
|
|
48
|
+
| `/new-project --from-tdd [arquivo]` | Continua de TDD já aprovado |
|
|
49
|
+
| `/new-project --from-demand [nome]` | Importa de proposta comercial aprovada |
|
|
50
|
+
| `/new-project --from-figma [url]` | Importa Design System do Figma |
|
|
51
|
+
| `/new-project status` | Mostra status e progresso atual |
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## 🔀 MODOS DE OPERAÇÃO
|
|
56
|
+
|
|
57
|
+
### Modo COMPLETO (Padrão)
|
|
58
|
+
```
|
|
59
|
+
/new-project meu-app
|
|
60
|
+
```
|
|
61
|
+
```
|
|
62
|
+
Phase 1 (PRD) → Phase 2 (TDD) → Phase 2.1 (Task Setup) → Phase 2.5+ (Design) → Phase 3 (Breakdown) → Phase 4 (Tests) → Phase 5 (Code) → Phase 6 (Verify) → Phase 7 (Deploy)
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Modo BRAINSTORM (Ideia indefinida)
|
|
66
|
+
```
|
|
67
|
+
/new-project --brainstorm meu-app
|
|
68
|
+
```
|
|
69
|
+
```
|
|
70
|
+
Phase 0 (Brainstorm) → Phase 1 (PRD) → Phase 2 (TDD) → Phase 2.1 (Task Setup) → ... → Phase 7 (Deploy)
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Modo QUICK (Ágil, sem PRD formal)
|
|
74
|
+
```
|
|
75
|
+
/new-project --quick meu-app
|
|
76
|
+
```
|
|
77
|
+
```
|
|
78
|
+
Phase 2 (TDD) → Phase 3 (Breakdown) → Phase 4 (Tests) → Phase 5 (Code) → Phase 6 (Verify) → Phase 7 (Deploy)
|
|
79
|
+
```
|
|
80
|
+
> Pula Phase 0 e Phase 1. Vai direto para TDD com Socratic Gate simplificado.
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## 💾 SISTEMA DE CHECKPOINTING
|
|
85
|
+
|
|
86
|
+
> [!IMPORTANT]
|
|
87
|
+
> **Projetos podem ser interrompidos.** O workflow salva progresso em `docs/PROJECT-PROGRESS.md` a cada fase.
|
|
88
|
+
|
|
89
|
+
### Arquivo de Controle: `docs/PROJECT-PROGRESS.md`
|
|
90
|
+
|
|
91
|
+
Criado automaticamente ao iniciar o projeto, contém:
|
|
92
|
+
|
|
93
|
+
| Seção | Conteúdo |
|
|
94
|
+
|-------|----------|
|
|
95
|
+
| Status Geral | Nome, fases, última atualização |
|
|
96
|
+
| Fases | Checklist de cada phase com artefatos |
|
|
97
|
+
| Tasks | Lista de tasks pendentes/concluídas |
|
|
98
|
+
| Histórico | Log de ações |
|
|
99
|
+
|
|
100
|
+
### Retomada Automática
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
# Retomar de onde parou
|
|
104
|
+
/new-project --resume
|
|
105
|
+
|
|
106
|
+
# Ver status
|
|
107
|
+
/new-project status
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
**Ao executar `--resume`:**
|
|
111
|
+
1. Carrega `docs/PROJECT-PROGRESS.md`
|
|
112
|
+
2. Identifica fase pendente
|
|
113
|
+
3. **🚨 DESYNC DETECTOR (OBRIGATÓRIO):**
|
|
114
|
+
- Comparar tasks marcadas como ✅ em PROJECT-PROGRESS.md
|
|
115
|
+
- Com status real no Tracker (query por ID)
|
|
116
|
+
- Se LOCAL=✅ mas TRACKER=Não iniciado → **PARAR e executar sync retroativo**
|
|
117
|
+
4. **🔗 FLYEE BRIDGE CHECK (OBRIGATÓRIO):**
|
|
118
|
+
- Ler `flyee.json`
|
|
119
|
+
- Se `enabled: true` OU `opted_out: true` → Prosseguir silenciosamente
|
|
120
|
+
- Se `enabled: false` E `opted_out: false` → Perguntar ao usuário:
|
|
121
|
+
|
|
122
|
+
```markdown
|
|
123
|
+
## 🔗 Integração com Flyee Platform
|
|
124
|
+
|
|
125
|
+
Este projeto não está conectado à plataforma Flyee.
|
|
126
|
+
O Flyee pode rastrear seus documentos, decisões e progresso.
|
|
127
|
+
|
|
128
|
+
| Opção | Descrição |
|
|
129
|
+
|-------|-----------||
|
|
130
|
+
| **A) Configurar agora** | Conectar ao Flyee (listar/criar projeto + registrar docs) |
|
|
131
|
+
| **B) Depois** | Pular (configurar depois com `python .agent/flyee-bridge/bridge.py --setup`) |
|
|
132
|
+
| **C) Não quero** | Desabilitar permanentemente |
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
- **Se A:** Executar **FLYEE BRIDGE SETUP FLOW** (ver seção abaixo)
|
|
136
|
+
- **Se B:** Continuar sem bridge
|
|
137
|
+
- **Se C:** Setar `opted_out: true` em `config.json`
|
|
138
|
+
5. **🎯 OKR GAP DETECTOR (OBRIGATÓRIO se Flyee habilitado):**
|
|
139
|
+
- Executar `python3 .agent/flyee-bridge/bridge.py --list-okrs`
|
|
140
|
+
- **Se 0 OKRs encontrados:**
|
|
141
|
+
1. Ler `docs/PRD-*.md` → Extrair objetivos das seções "Objectives" / "Goals" / "Scope" / "Problema"
|
|
142
|
+
2. Ler `docs/design/TDD-*.md` → Extrair critérios de sucesso / KPIs / métricas
|
|
143
|
+
3. Gerar 1-3 OKRs com key results mensuráveis
|
|
144
|
+
4. Para cada OKR gerado:
|
|
145
|
+
```bash
|
|
146
|
+
python3 .agent/flyee-bridge/bridge.py --create-okr \
|
|
147
|
+
--objective "Lançar MVP funcional do {projeto}" \
|
|
148
|
+
--key-results '{"kr1": "100% features do PRD implementadas", "kr2": "Cobertura de testes > 80%", "kr3": "Deploy em produção"}' \
|
|
149
|
+
--period "Q1 2026"
|
|
150
|
+
```
|
|
151
|
+
5. Registrar métrica de session:
|
|
152
|
+
```bash
|
|
153
|
+
python3 .agent/flyee-bridge/bridge.py --register-metrics \
|
|
154
|
+
--type session_started \
|
|
155
|
+
--data '{"workflow": "new-project --resume", "action": "okr_gap_filled"}'
|
|
156
|
+
```
|
|
157
|
+
6. Apresentar OKRs criados ao usuário para validação
|
|
158
|
+
- **Se >= 1 OKR:** Skip silencioso (OKRs já existem)
|
|
159
|
+
- **Se Flyee desabilitado:** Skip silencioso
|
|
160
|
+
6. Continua execução (apenas se sem desync)
|
|
161
|
+
|
|
162
|
+
> [!CAUTION]
|
|
163
|
+
> **DESYNC DETECTOR:** Antes de continuar qualquer trabalho em --resume, o agente DEVE:
|
|
164
|
+
> 1. Buscar status de TODAS as tasks marcadas como completas localmente
|
|
165
|
+
> 2. Se encontrar desync (local ✅, Tracker ≠ completed) → Executar sync retroativo PRIMEIRO
|
|
166
|
+
> 3. Só prosseguir após confirmar: "Nenhum desync detectado" ou "Desync corrigido"
|
|
167
|
+
|
|
168
|
+
> [!IMPORTANT]
|
|
169
|
+
> **OKR GAP DETECTOR:** Projetos que passaram pelas fases iniciais sem criar OKRs serão
|
|
170
|
+
> detectados automaticamente no `--resume`. O agente extrai objetivos do PRD e key results
|
|
171
|
+
> do TDD para gerar OKRs relevantes. O template de key results deve incluir:
|
|
172
|
+
> - **KR de entrega:** Features implementadas vs. planejadas
|
|
173
|
+
> - **KR de qualidade:** Cobertura de testes, performance
|
|
174
|
+
> - **KR de impacto:** Métricas de negócio do PRD (usuários, NPS, conversão)
|
|
175
|
+
|
|
176
|
+
### Template: PROJECT-PROGRESS.md
|
|
177
|
+
|
|
178
|
+
```markdown
|
|
179
|
+
# Project Progress - {nome}
|
|
180
|
+
|
|
181
|
+
> Arquivo de controle para retomar workflow de onde parou.
|
|
182
|
+
> ⚠️ NÃO EDITAR MANUALMENTE - Atualizado automaticamente.
|
|
183
|
+
|
|
184
|
+
## 📊 Status Geral
|
|
185
|
+
|
|
186
|
+
| Campo | Valor |
|
|
187
|
+
|-------|-------|
|
|
188
|
+
| Projeto | {nome} |
|
|
189
|
+
| Modo | completo / quick / brainstorm |
|
|
190
|
+
| Iniciado em | {data} |
|
|
191
|
+
| Última atualização | {data} |
|
|
192
|
+
| Status | 🟡 Em Progresso |
|
|
193
|
+
| Fase Atual | 4/7 - TDD Metodologia |
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## 📋 Fases
|
|
198
|
+
|
|
199
|
+
| Fase | Status | Artefato |
|
|
200
|
+
|------|--------|----------|
|
|
201
|
+
| 0. Brainstorm | ⏭️ Pulado | - |
|
|
202
|
+
| 1. PRD | ✅ Aprovado | `docs/PRD-{nome}.md` |
|
|
203
|
+
| 2. TDD Técnico | ✅ Aprovado | `docs/design/TDD-{nome}.md` |
|
|
204
|
+
| 2.1 Task Setup | ✅ Concluído | {N} tasks de planejamento |
|
|
205
|
+
| 3. Breakdown | ✅ Concluído | 12 tasks criadas |
|
|
206
|
+
| 4. TDD Metodologia | 🟡 Em Progresso | 5/12 testes escritos |
|
|
207
|
+
| 5. Implementação | ⏳ Pendente | - |
|
|
208
|
+
| 6. Verificação | ⏳ Pendente | - |
|
|
209
|
+
| 7. Deploy | ⏳ Pendente | - |
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
## 📝 Tasks (Phase 4-5)
|
|
214
|
+
|
|
215
|
+
| # | Task | Teste | Código | Status |
|
|
216
|
+
|---|------|-------|--------|--------|
|
|
217
|
+
| 1 | Setup inicial | ✅ | ✅ | ✅ Completo |
|
|
218
|
+
| 2 | Auth básica | ✅ | ✅ | ✅ Completo |
|
|
219
|
+
| 3 | CRUD usuários | ✅ | 🟡 | 🟡 Em Progresso |
|
|
220
|
+
| 4 | Integração API | ⏳ | ⏳ | ⏳ Pendente |
|
|
221
|
+
| ... | ... | ... | ... | ... |
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## 📜 Histórico
|
|
226
|
+
|
|
227
|
+
| Data | Fase | Ação |
|
|
228
|
+
|------|------|------|
|
|
229
|
+
| 2025-01-15 10:00 | 1 | PRD criado |
|
|
230
|
+
| 2025-01-15 14:00 | 1 | PRD aprovado |
|
|
231
|
+
| 2025-01-16 09:00 | 2 | TDD técnico criado |
|
|
232
|
+
| ... | ... | ... |
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## 🔄 Como Retomar
|
|
237
|
+
|
|
238
|
+
\```bash
|
|
239
|
+
/new-project --resume
|
|
240
|
+
\```
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
## 🔴 FLUXO COMPLETO
|
|
246
|
+
|
|
247
|
+
```
|
|
248
|
+
┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐
|
|
249
|
+
│ DISCOVERY │───▶│ BRAINSTORM │───▶│ PRD │───▶│ TDD TÉCNICO │───▶│ REFERÊNCIAS │───▶│DESIGN SYSTEM │───▶│ CONTENT │───▶│ STITCH │───▶│ PAGE SPECS │───▶│ BREAKDOWN │───▶│ TESTS │───▶│ IMPLEMENT │───▶│ DEPLOY │
|
|
250
|
+
│ (TIPO+STACK) │ │ (OPCIONAL) │ │ (O QUE) │ │ (COMO) │ │ (COLETAR) │ │ (TOKENS) │ │ (O QUE DIZ) │ │ (PROTÓTIPO) │ │ (BLUEPRINT) │ │ (TASKS) │ │ (PRIMEIRO) │ │ (CÓDIGO) │ │ (PREVIEW) │
|
|
251
|
+
└──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘
|
|
252
|
+
✋ 🧠 ✋ ✋ ✋ ✋ ✋ ✋ ✋ ✅ ✅ ✅ ✅
|
|
253
|
+
Obrigatório Exploração Aprovação Aprovação Pergunta+Coleta Aprovação Aprovação Aprovação+/stitch Aprovação Automático Automático Automático Final
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
> **🚦 GATE 0 (Discovery)** é OBRIGATÓRIO e roda ANTES de tudo. Define tipo de projeto, stack e quais fases serão ativadas.
|
|
257
|
+
> **📋 Phase 2.1 (Task Setup)** ocorre entre TDD TÉCNICO e REFERÊNCIAS, criando tasks de tracking para fases 2.5–2.9.
|
|
258
|
+
> **📋 Phase 2.45 (Referências)** pergunta como o usuário quer definir o Design System (recomendações, referências visuais, manual, ou combinação).
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
### 🚦 GATE 0: PROJECT TYPE DISCOVERY (Obrigatório)
|
|
263
|
+
|
|
264
|
+
> [!CAUTION]
|
|
265
|
+
> **OBRIGATÓRIO:** Este gate roda ANTES de qualquer fase, inclusive Brainstorm.
|
|
266
|
+
> **NÃO PULAR:** Mesmo com `--quick` ou `--brainstorm`, este gate deve ser executado.
|
|
267
|
+
> **EXCEÇÃO:** `--resume` (já tem Project Profile salvo em PROJECT-PROGRESS.md).
|
|
268
|
+
|
|
269
|
+
**Objetivo:** Identificar o tipo de projeto e definir o **Project Profile** que controla quais agentes, skills, fases e templates serão ativados.
|
|
270
|
+
|
|
271
|
+
**Trigger:**
|
|
272
|
+
```
|
|
273
|
+
/new-project [nome] → Gate 0 roda PRIMEIRO
|
|
274
|
+
/new-project --brainstorm [nome] → Gate 0 roda PRIMEIRO
|
|
275
|
+
/new-project --quick [nome] → Gate 0 roda PRIMEIRO
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
---
|
|
279
|
+
|
|
280
|
+
#### Pergunta 1: Tipo de Projeto (OBRIGATÓRIA)
|
|
281
|
+
|
|
282
|
+
```markdown
|
|
283
|
+
## 🚦 Que tipo de projeto deseja criar?
|
|
284
|
+
|
|
285
|
+
| # | Tipo | Exemplo | Fases Ativadas |
|
|
286
|
+
|---|------|---------|---------|
|
|
287
|
+
| **1** | 🌐 Site Institucional / Landing Page | Perspec, portfólio, LP de produto | PRD → Design System → Content → Stitch → Implementação |
|
|
288
|
+
| **2** | 🖥️ Web App (SaaS / Dashboard) | Painel admin, SaaS, plataforma | PRD → TDD → Design System → Breakdown → TDD Metodologia → Implementação |
|
|
289
|
+
| **3** | 🔌 API / Backend | REST API, microserviços, BFF | PRD → TDD → Breakdown → TDD Metodologia → Implementação |
|
|
290
|
+
| **4** | 📱 Mobile App | React Native, Flutter, nativo | PRD → TDD → Design System (mobile) → Breakdown → Implementação |
|
|
291
|
+
| **5** | 🧩 Fullstack (Web App + API) | App completo com frontend e backend | PRD → TDD → Design System → Breakdown → TDD Metodologia → Implementação |
|
|
292
|
+
| **6** | 📦 Pacote / Biblioteca | npm package, SDK, utility | PRD → TDD → TDD Metodologia → Implementação |
|
|
293
|
+
|
|
294
|
+
Qual número?
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
**AGUARDAR** resposta do usuário.
|
|
298
|
+
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
#### Pergunta 2: Stack (Contextual ao Tipo)
|
|
302
|
+
|
|
303
|
+
Após o tipo, fazer perguntas de follow-up **específicas ao tipo escolhido:**
|
|
304
|
+
|
|
305
|
+
##### Se Tipo 1 (Site Institucional / LP)
|
|
306
|
+
```markdown
|
|
307
|
+
### Stack para Site Institucional:
|
|
308
|
+
|
|
309
|
+
| Opção | Stack | Quando usar |
|
|
310
|
+
|-------|-------|-----------|
|
|
311
|
+
| **A** | Next.js (App Router) + CSS Modules | Sites com várias páginas, SEO, rotas dinâmicas |
|
|
312
|
+
| **B** | Next.js (App Router) + Tailwind | Sites rápidos com prototipação visual |
|
|
313
|
+
| **C** | HTML/CSS/JS puro (Vanilla) | Sites simples, sem framework |
|
|
314
|
+
| **D** | Outra (especifique) | Stack já definida |
|
|
315
|
+
|
|
316
|
+
Preferência? (ou quer recomendação baseada no projeto?)
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
##### Se Tipo 2 (Web App / SaaS)
|
|
320
|
+
```markdown
|
|
321
|
+
### Stack para Web App:
|
|
322
|
+
|
|
323
|
+
| Opção | Stack | Quando usar |
|
|
324
|
+
|-------|-------|-----------|
|
|
325
|
+
| **A** | Next.js + shadcn/ui + Tailwind | Apps modernos com componentes prontos |
|
|
326
|
+
| **B** | Next.js + CSS Modules | Apps com design system customizado |
|
|
327
|
+
| **C** | Vite + React + Tailwind | SPAs sem SSR |
|
|
328
|
+
| **D** | Outra (especifique) | Stack já definida |
|
|
329
|
+
|
|
330
|
+
Preferência?
|
|
331
|
+
|
|
332
|
+
**Perguntas adicionais:**
|
|
333
|
+
- Precisa de autenticação? (Supabase Auth / NextAuth / Clerk / outro)
|
|
334
|
+
- Banco de dados? (Supabase / Prisma+Postgres / Firebase / outro)
|
|
335
|
+
- Deploy? (Vercel / Docker / outro)
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
##### Se Tipo 3 (API / Backend)
|
|
339
|
+
```markdown
|
|
340
|
+
### Stack para API:
|
|
341
|
+
|
|
342
|
+
| Opção | Stack | Quando usar |
|
|
343
|
+
|-------|-------|-----------|
|
|
344
|
+
| **A** | Node.js + Express/Fastify | APIs REST simples |
|
|
345
|
+
| **B** | NestJS + Prisma | APIs enterprise com DI |
|
|
346
|
+
| **C** | Next.js API Routes | API acoplada ao frontend |
|
|
347
|
+
| **D** | Python (FastAPI / Django) | APIs Python |
|
|
348
|
+
| **E** | Outra (especifique) | Stack já definida |
|
|
349
|
+
|
|
350
|
+
Preferência?
|
|
351
|
+
|
|
352
|
+
**Perguntas adicionais:**
|
|
353
|
+
- Protocolo? (REST / GraphQL / tRPC / gRPC)
|
|
354
|
+
- Banco de dados? (PostgreSQL / MongoDB / SQLite / outro)
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
##### Se Tipo 4 (Mobile)
|
|
358
|
+
```markdown
|
|
359
|
+
### Stack para Mobile:
|
|
360
|
+
|
|
361
|
+
| Opção | Stack | Quando usar |
|
|
362
|
+
|-------|-------|-----------|
|
|
363
|
+
| **A** | React Native + Expo | Cross-platform rápido |
|
|
364
|
+
| **B** | Flutter | Cross-platform com UI nativa |
|
|
365
|
+
| **C** | SwiftUI (iOS nativo) | Apenas iOS |
|
|
366
|
+
| **D** | Kotlin (Android nativo) | Apenas Android |
|
|
367
|
+
|
|
368
|
+
Preferência?
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
##### Se Tipo 5 (Fullstack)
|
|
372
|
+
```markdown
|
|
373
|
+
### Stack para Fullstack:
|
|
374
|
+
Combinação de frontend + backend. Responda ambas:
|
|
375
|
+
|
|
376
|
+
**Frontend:** (mesmas opções do Tipo 2)
|
|
377
|
+
**Backend:** (mesmas opções do Tipo 3, ou API Routes integrada?)
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
##### Se Tipo 6 (Pacote / Biblioteca)
|
|
381
|
+
```markdown
|
|
382
|
+
### Stack para Pacote:
|
|
383
|
+
|
|
384
|
+
| Opção | Stack | Quando usar |
|
|
385
|
+
|-------|-------|-----------|
|
|
386
|
+
| **A** | TypeScript + tsup/unbuild | Pacotes npm modernos |
|
|
387
|
+
| **B** | TypeScript + Rollup/Vite lib | Libs com tree-shaking |
|
|
388
|
+
| **C** | Python + setuptools/poetry | Pacotes PyPI |
|
|
389
|
+
|
|
390
|
+
Preferência?
|
|
391
|
+
|
|
392
|
+
**Perguntas adicionais:**
|
|
393
|
+
- Publicar no npm/PyPI? Ou uso interno?
|
|
394
|
+
- Monorepo? (Turborepo / Nx / pnpm workspaces)
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
**AGUARDAR** resposta do usuário.
|
|
398
|
+
|
|
399
|
+
---
|
|
400
|
+
|
|
401
|
+
#### Pergunta 3: Design (Apenas para tipos com UI: 1, 2, 4, 5)
|
|
402
|
+
|
|
403
|
+
```markdown
|
|
404
|
+
### Abordagem de Design:
|
|
405
|
+
|
|
406
|
+
| Opção | Descrição |
|
|
407
|
+
|-------|-----------|
|
|
408
|
+
| **A** | Já tenho referências visuais (Figma, screenshots, sites de inspiração) |
|
|
409
|
+
| **B** | Quero recomendações do agente baseadas no segmento |
|
|
410
|
+
| **C** | Vou definir manualmente (tenho as cores, fontes, etc.) |
|
|
411
|
+
| **D** | Combinação: referências + ajustes com recomendações |
|
|
412
|
+
|
|
413
|
+
Qual opção?
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
> [!NOTE]
|
|
417
|
+
> A resposta desta pergunta **substitui** a Phase 2.45 (Visual Reference Collection).
|
|
418
|
+
> Se o usuário responder aqui, a Phase 2.45 usa essa escolha diretamente sem perguntar novamente.
|
|
419
|
+
|
|
420
|
+
---
|
|
421
|
+
|
|
422
|
+
#### Resultado: Project Profile
|
|
423
|
+
|
|
424
|
+
Após as respostas, o agente gera o **Project Profile** e salva no `PROJECT-PROGRESS.md`:
|
|
425
|
+
|
|
426
|
+
```markdown
|
|
427
|
+
## 🚦 Project Profile
|
|
428
|
+
|
|
429
|
+
| Campo | Valor |
|
|
430
|
+
|-------|-------|
|
|
431
|
+
| Tipo | {tipo escolhido} |
|
|
432
|
+
| Stack | {stack definida} |
|
|
433
|
+
| Agent Principal | {agent selecionado} |
|
|
434
|
+
| Design Approach | {A/B/C/D ou N/A} |
|
|
435
|
+
| Tem UI? | Sim / Não |
|
|
436
|
+
| Tem Backend? | Sim / Não |
|
|
437
|
+
| Fases Ativadas | {lista} |
|
|
438
|
+
| Fases Puladas | {lista} |
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
#### Mapeamento Tipo → Configuração
|
|
442
|
+
|
|
443
|
+
| Tipo | Agent Principal | Fases Puladas | Skills Extras |
|
|
444
|
+
|------|----------------|---------------|---------------|
|
|
445
|
+
| Site Institucional | `frontend-specialist` | — | `content-strategy`, `seo-fundamentals` |
|
|
446
|
+
| Web App | `frontend-specialist` + `backend-specialist` | Content Strategy (opcional) | `shadcn-ui` (se aplicável) |
|
|
447
|
+
| API / Backend | `backend-specialist` | Design System, Content, Stitch, Page Specs | `api-patterns`, `database-design` |
|
|
448
|
+
| Mobile | `mobile-developer` | Stitch, Content | `mobile-design` |
|
|
449
|
+
| Fullstack | `orchestrator` | — | Combina frontend + backend |
|
|
450
|
+
| Pacote / Biblioteca | `backend-specialist` | Design System, Content, Stitch, Page Specs | `testing-patterns` |
|
|
451
|
+
|
|
452
|
+
**Gate de Saída:**
|
|
453
|
+
```
|
|
454
|
+
[ ] Tipo de projeto definido
|
|
455
|
+
[ ] Stack confirmada pelo usuário
|
|
456
|
+
[ ] Design approach definido (se tem UI)
|
|
457
|
+
[ ] Project Profile salvo em PROJECT-PROGRESS.md
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
> [!CAUTION]
|
|
461
|
+
> **BLOQUEADOR:** Não iniciar nenhuma fase (nem Brainstorm) sem o Project Profile definido.
|
|
462
|
+
|
|
463
|
+
---
|
|
464
|
+
|
|
465
|
+
#### Pergunta 4: Integração Flyee (OBRIGATÓRIA após Project Profile)
|
|
466
|
+
|
|
467
|
+
> Executar APÓS o Project Profile ser salvo, ANTES de iniciar Phase 0/1.
|
|
468
|
+
|
|
469
|
+
**Verificar** `flyee.json`:
|
|
470
|
+
- Se `opted_out: true` → Pular silenciosamente
|
|
471
|
+
- Se `enabled: true` → Pular silenciosamente (já configurado)
|
|
472
|
+
- Se `enabled: false` E `opted_out: false` → Apresentar pergunta:
|
|
473
|
+
|
|
474
|
+
```markdown
|
|
475
|
+
## 🔗 Integração com Flyee Platform
|
|
476
|
+
|
|
477
|
+
O Flyee pode rastrear documentos, decisões e progresso deste projeto.
|
|
478
|
+
|
|
479
|
+
| Opção | Descrição |
|
|
480
|
+
|-------|-----------||
|
|
481
|
+
| **A) Configurar agora** | Conectar ao Flyee (listar/criar projeto + registrar docs) |
|
|
482
|
+
| **B) Depois** | Pular (configurar depois com `python .agent/flyee-bridge/bridge.py --setup`) |
|
|
483
|
+
| **C) Não quero** | Desabilitar permanentemente |
|
|
484
|
+
```
|
|
485
|
+
|
|
486
|
+
**Se A:** Executar **FLYEE BRIDGE SETUP FLOW** (ver seção abaixo)
|
|
487
|
+
**Se B:** Continuar sem bridge (`enabled: false`)
|
|
488
|
+
**Se C:** Setar `opted_out: true` em `config.json`
|
|
489
|
+
|
|
490
|
+
---
|
|
491
|
+
|
|
492
|
+
### FLYEE BRIDGE SETUP FLOW
|
|
493
|
+
|
|
494
|
+
> [!IMPORTANT]
|
|
495
|
+
> **Referenciado por:** Gate 0 (Pergunta 4) e `--resume` (Passo 4).
|
|
496
|
+
> Executado quando o usuário escolhe **"A) Configurar agora"**.
|
|
497
|
+
|
|
498
|
+
**Passo 1: Autenticação**
|
|
499
|
+
- Solicitar API URL (default: `https://flyee-api.flyeelab.com`)
|
|
500
|
+
- Solicitar API Key (obtida em Settings → API Keys na plataforma)
|
|
501
|
+
|
|
502
|
+
**Passo 2: Seleção ou Criação de Projeto**
|
|
503
|
+
- Listar projetos existentes via `GET /flyee/projects/` (usando API Key)
|
|
504
|
+
- Apresentar:
|
|
505
|
+
|
|
506
|
+
```markdown
|
|
507
|
+
| # | Projeto | Status |
|
|
508
|
+
|---|---------|--------|
|
|
509
|
+
| 1 | Projeto A | active |
|
|
510
|
+
| 2 | Projeto B | draft |
|
|
511
|
+
| N | ➕ **Criar novo projeto** | — |
|
|
512
|
+
```
|
|
513
|
+
|
|
514
|
+
- Se selecionar existente → usar `project_id` deste projeto
|
|
515
|
+
- Se criar novo:
|
|
516
|
+
- Sugerir nome baseado no diretório atual ou `PROJECT-PROGRESS.md`
|
|
517
|
+
- Confirmar com usuário (ou aceitar nome customizado)
|
|
518
|
+
- `POST /flyee/projects/` → salvar `project_id` retornado
|
|
519
|
+
|
|
520
|
+
**Passo 3: Registro de Documentação Existente**
|
|
521
|
+
- Escanear `docs/` buscando:
|
|
522
|
+
- `docs/PRD-*.md` → type: `prd`
|
|
523
|
+
- `docs/design/TDD-*.md` → type: `tdd`
|
|
524
|
+
- `docs/BREAKDOWN-*.md` → type: `other`
|
|
525
|
+
- `docs/PROJECT-PROGRESS.md` → type: `other`
|
|
526
|
+
|
|
527
|
+
- Para cada doc encontrado:
|
|
528
|
+
- Ler conteúdo
|
|
529
|
+
- `POST /flyee/projects/{id}/documents` (title, type, content)
|
|
530
|
+
- Exibir progresso
|
|
531
|
+
|
|
532
|
+
- Apresentar relatório:
|
|
533
|
+
|
|
534
|
+
```markdown
|
|
535
|
+
📋 **Documentação Registrada no Flyee**
|
|
536
|
+
|
|
537
|
+
| # | Documento | Tipo | Status |
|
|
538
|
+
|---|-----------|------|--------|
|
|
539
|
+
| 1 | PRD-flyee.md | PRD | ✅ Registrado |
|
|
540
|
+
| 2 | TDD-flyee.md | TDD | ✅ Registrado |
|
|
541
|
+
```
|
|
542
|
+
|
|
543
|
+
**Passo 4: Salvar Config**
|
|
544
|
+
- Atualizar `config.json` com `api_url`, `project_id`, `api_key`, `enabled: true`
|
|
545
|
+
|
|
546
|
+
> [!TIP]
|
|
547
|
+
> **Comandos CLI disponíveis (para uso manual):**
|
|
548
|
+
> - `python .agent/flyee-bridge/bridge.py --setup` → setup completo interativo
|
|
549
|
+
> - `python .agent/flyee-bridge/bridge.py --list-projects` → listar projetos
|
|
550
|
+
> - `python .agent/flyee-bridge/bridge.py --register-docs` → registrar docs existentes
|
|
551
|
+
|
|
552
|
+
---
|
|
553
|
+
|
|
554
|
+
### Phase 0: BRAINSTORM (Opcional)
|
|
555
|
+
|
|
556
|
+
> [!NOTE]
|
|
557
|
+
> **Ativado com:** `/new-project --brainstorm [nome]`
|
|
558
|
+
> **Pule se:** A ideia já está clara e definida.
|
|
559
|
+
|
|
560
|
+
**Objetivo:** Explorar opções antes de se comprometer com uma direção.
|
|
561
|
+
|
|
562
|
+
**Trigger:**
|
|
563
|
+
```
|
|
564
|
+
/new-project --brainstorm [nome-do-projeto]
|
|
565
|
+
```
|
|
566
|
+
|
|
567
|
+
**Agentes Envolvidos:**
|
|
568
|
+
- `project-planner` - Estruturação de opções
|
|
569
|
+
- Especialistas de domínio conforme necessidade
|
|
570
|
+
|
|
571
|
+
**Ações:**
|
|
572
|
+
1. Executar `/brainstorm [nome]`
|
|
573
|
+
2. Gerar 3+ opções de abordagem
|
|
574
|
+
3. Comparar prós/contras de cada
|
|
575
|
+
4. **AGUARDAR** escolha do usuário
|
|
576
|
+
|
|
577
|
+
**Output Format:**
|
|
578
|
+
```markdown
|
|
579
|
+
## 🧠 Brainstorm: [Nome do Projeto]
|
|
580
|
+
|
|
581
|
+
### Option A: [Abordagem 1]
|
|
582
|
+
✅ Pros: ...
|
|
583
|
+
❌ Cons: ...
|
|
584
|
+
📊 Effort: Low | Medium | High
|
|
585
|
+
|
|
586
|
+
### Option B: [Abordagem 2]
|
|
587
|
+
...
|
|
588
|
+
|
|
589
|
+
### Option C: [Abordagem 3]
|
|
590
|
+
...
|
|
591
|
+
|
|
592
|
+
## 💡 Recommendation
|
|
593
|
+
Option [X] porque [razão].
|
|
594
|
+
|
|
595
|
+
Qual direção seguir?
|
|
596
|
+
```
|
|
597
|
+
|
|
598
|
+
**Gate de Saída:**
|
|
599
|
+
```
|
|
600
|
+
[ ] Usuário escolheu uma direção
|
|
601
|
+
```
|
|
602
|
+
|
|
603
|
+
---
|
|
604
|
+
|
|
605
|
+
### Phase 1: PRD - Product Requirements Document
|
|
606
|
+
|
|
607
|
+
> [!NOTE]
|
|
608
|
+
> **Pulado no modo --quick**
|
|
609
|
+
|
|
610
|
+
**Objetivo:** Definir O QUE será construído.
|
|
611
|
+
|
|
612
|
+
**Trigger:**
|
|
613
|
+
```
|
|
614
|
+
/new-project [nome-do-projeto]
|
|
615
|
+
ou
|
|
616
|
+
Brainstorm concluído → Automático
|
|
617
|
+
```
|
|
618
|
+
|
|
619
|
+
**Agentes Envolvidos:**
|
|
620
|
+
- `product-owner` - Lead do discovery
|
|
621
|
+
- `project-planner` - Estruturação
|
|
622
|
+
|
|
623
|
+
**Ações:**
|
|
624
|
+
1. Executar `/prd new [nome]`
|
|
625
|
+
2. Aplicar Socratic Gate completo (12 perguntas)
|
|
626
|
+
3. Gerar `docs/PRD-{nome}.md`
|
|
627
|
+
4. **AGUARDAR** aprovação humana
|
|
628
|
+
|
|
629
|
+
**Gate de Saída:**
|
|
630
|
+
```
|
|
631
|
+
[ ] PRD aprovado pelo humano
|
|
632
|
+
```
|
|
633
|
+
|
|
634
|
+
> [!CAUTION]
|
|
635
|
+
> **BLOQUEADOR:** Não prosseguir sem aprovação do PRD.
|
|
636
|
+
|
|
637
|
+
#### 🔔 FLYEE DECISION LOG (Condicional)
|
|
638
|
+
|
|
639
|
+
> Se `flyee.json` existe E `enabled: true`:
|
|
640
|
+
|
|
641
|
+
```bash
|
|
642
|
+
# Registrar decisão de governança
|
|
643
|
+
python3 .agent/flyee-bridge/bridge.py --create-decision \
|
|
644
|
+
--decision "PRD aprovado: {nome}" \
|
|
645
|
+
--actor "user" \
|
|
646
|
+
--reason "PRD revisado e aprovado pelo stakeholder" \
|
|
647
|
+
--impact "Escopo definido, prosseguir para TDD técnico"
|
|
648
|
+
```
|
|
649
|
+
|
|
650
|
+
> Se bridge não configurado → Pular silenciosamente.
|
|
651
|
+
|
|
652
|
+
---
|
|
653
|
+
|
|
654
|
+
### Phase 2: TDD TÉCNICO - Technical Design Document
|
|
655
|
+
|
|
656
|
+
**Objetivo:** Definir COMO será construído.
|
|
657
|
+
|
|
658
|
+
**Trigger:**
|
|
659
|
+
```
|
|
660
|
+
PRD aprovado → Automático
|
|
661
|
+
ou
|
|
662
|
+
/new-project --from-prd docs/PRD-{nome}.md
|
|
663
|
+
ou
|
|
664
|
+
/new-project --quick [nome] (Socratic Gate simplificado)
|
|
665
|
+
```
|
|
666
|
+
|
|
667
|
+
**Agentes Envolvidos:**
|
|
668
|
+
- `project-planner` - Arquitetura
|
|
669
|
+
- Backend/Frontend specialists conforme necessidade
|
|
670
|
+
|
|
671
|
+
**Ações (Modo Completo):**
|
|
672
|
+
1. Executar `/tdd new [nome]`
|
|
673
|
+
2. **Referenciar PRD:** `PRD Fonte: docs/PRD-{nome}.md`
|
|
674
|
+
3. Preencher com base nas respostas do PRD
|
|
675
|
+
4. Gerar `docs/design/TDD-{nome}.md`
|
|
676
|
+
5. Validar com `/tdd validate`
|
|
677
|
+
6. **AGUARDAR** aprovação humana
|
|
678
|
+
|
|
679
|
+
**Ações (Modo --quick):**
|
|
680
|
+
1. Aplicar Socratic Gate simplificado (5 perguntas):
|
|
681
|
+
- 🎯 Qual problema estamos resolvendo?
|
|
682
|
+
- 👥 Quem são os usuários?
|
|
683
|
+
- 📦 O que é MVP?
|
|
684
|
+
- 🔗 Integrações necessárias?
|
|
685
|
+
- ⏰ Prazo esperado?
|
|
686
|
+
2. Gerar `docs/design/TDD-{nome}.md` diretamente
|
|
687
|
+
3. Validar e **AGUARDAR** aprovação
|
|
688
|
+
|
|
689
|
+
**Gate de Saída:**
|
|
690
|
+
```
|
|
691
|
+
[ ] TDD validado (>= 75% completo)
|
|
692
|
+
[ ] Nenhum item INDEFINIDO bloqueador
|
|
693
|
+
[ ] **Environment Strategy definida no TDD** (dev vs staging vs prod) ⭐
|
|
694
|
+
[ ] TDD aprovado pelo humano
|
|
695
|
+
```
|
|
696
|
+
|
|
697
|
+
> [!CAUTION]
|
|
698
|
+
> **ENVIRONMENT STRATEGY (OBRIGATÓRIO):** O TDD DEVE conter uma seção `## Environment Strategy`
|
|
699
|
+
> definindo separação de ambientes ANTES de ser aprovado. Esta seção deve incluir:
|
|
700
|
+
>
|
|
701
|
+
> | Ambientes listados | ✅ | `development`, `staging`, `production` |
|
|
702
|
+
> | Serviços por ambiente | ✅ | Supabase dev vs prod, Stripe test vs live |
|
|
703
|
+
> | Arquivos `.env` mapeados | ✅ | `.env.local` (dev), `.env.production` (prod) |
|
|
704
|
+
> | Credentials separadas | ✅ | Cada ambiente com projeto/chaves próprias |
|
|
705
|
+
> | Variáveis de ambiente listadas | ✅ | Tabela com TODAS as vars necessárias |
|
|
706
|
+
>
|
|
707
|
+
> **FALHA QUE GEROU ESTA REGRA:** Projeto Flyee chegou à Sprint 10 com `.env.local`
|
|
708
|
+
> apontando para Supabase **production**. Nenhuma fase exigiu separação de ambientes.
|
|
709
|
+
> Resultado: risco de corrupção/perda de dados de produção durante desenvolvimento.
|
|
710
|
+
>
|
|
711
|
+
> **Template mínimo para o TDD:**
|
|
712
|
+
> ```markdown
|
|
713
|
+
> ## Environment Strategy
|
|
714
|
+
>
|
|
715
|
+
> | Ambiente | Propósito | Supabase | Stripe | Outros |
|
|
716
|
+
> |----------|-----------|----------|--------|--------|
|
|
717
|
+
> | development | Desenvolvimento local | {projeto}-dev | sk_test_ | ... |
|
|
718
|
+
> | staging | Testes pré-deploy | {projeto}-stg | sk_test_ | ... |
|
|
719
|
+
> | production | Produção | {projeto}-prod | sk_live_ | ... |
|
|
720
|
+
>
|
|
721
|
+
> ### Arquivos de Configuração
|
|
722
|
+
> | Arquivo | Ambiente | Onde usa |
|
|
723
|
+
> |---------|----------|----------|
|
|
724
|
+
> | `.env.local` | development | `npm run dev` |
|
|
725
|
+
> | `.env.production` | production | Vercel/Deploy |
|
|
726
|
+
> | `.env.example` | template | Referência para novos devs |
|
|
727
|
+
> ```
|
|
728
|
+
|
|
729
|
+
> [!CAUTION]
|
|
730
|
+
> **BLOQUEADOR:** Não prosseguir sem aprovação do TDD.
|
|
731
|
+
|
|
732
|
+
#### 🔔 FLYEE DECISION LOG (Condicional)
|
|
733
|
+
|
|
734
|
+
> Se `flyee.json` existe E `enabled: true`:
|
|
735
|
+
|
|
736
|
+
```bash
|
|
737
|
+
# Registrar decisão de governança
|
|
738
|
+
python3 .agent/flyee-bridge/bridge.py --create-decision \
|
|
739
|
+
--decision "TDD aprovado: {nome}" \
|
|
740
|
+
--actor "user" \
|
|
741
|
+
--reason "Arquitetura e stack definidas no TDD" \
|
|
742
|
+
--impact "Prosseguir para Design System e implementação"
|
|
743
|
+
```
|
|
744
|
+
|
|
745
|
+
> Se bridge não configurado → Pular silenciosamente.
|
|
746
|
+
|
|
747
|
+
---
|
|
748
|
+
|
|
749
|
+
### Phase 2.1: TASK SETUP + TRACKING DE FASES
|
|
750
|
+
|
|
751
|
+
> [!IMPORTANT]
|
|
752
|
+
> **Equivalente ao Phase 3.5 do `/legacy-project`.**
|
|
753
|
+
> Garante que o progresso seja rastreado desde o início do planejamento.
|
|
754
|
+
|
|
755
|
+
> [!NOTE]
|
|
756
|
+
> **Pulado no modo --quick** (não há fases 2.5–2.9 para rastrear).
|
|
757
|
+
|
|
758
|
+
**Objetivo:** Criar tasks de planejamento para TODAS as fases de planejamento (2.5–2.9), permitindo acompanhar o progresso antes do breakdown de implementação.
|
|
759
|
+
|
|
760
|
+
**Trigger:**
|
|
761
|
+
```
|
|
762
|
+
TDD aprovado → Automático
|
|
763
|
+
```
|
|
764
|
+
|
|
765
|
+
**Agentes Envolvidos:**
|
|
766
|
+
- `orchestrator` - Integração com tracker
|
|
767
|
+
|
|
768
|
+
#### Detecção Automática do Tracker
|
|
769
|
+
|
|
770
|
+
> [!CAUTION]
|
|
771
|
+
> **O tracker é determinado automaticamente pela configuração do Flyee Bridge.**
|
|
772
|
+
> - Se `flyee.json` → `enabled: true` → **Tracker = Flyee**
|
|
773
|
+
> - Se `enabled: false` → **Tracker = Local (`docs/TASKS.md`)**
|
|
774
|
+
|
|
775
|
+
**NÃO perguntar ao usuário.** A decisão já foi tomada no FLYEE BRIDGE CHECK (Gate 0 / `--resume`).
|
|
776
|
+
|
|
777
|
+
#### Passo 1: Criar Tasks de Planejamento
|
|
778
|
+
|
|
779
|
+
Para CADA fase de planejamento, criar task:
|
|
780
|
+
|
|
781
|
+
| # | Task | Fase | Tipo |
|
|
782
|
+
|---|------|------|------|
|
|
783
|
+
| N+1 | Design System: UI/UX Discovery + MASTER.md | 2.5 | implement_feature |
|
|
784
|
+
| N+2 | Content Strategy: Copy e Conteúdo | 2.65 | implement_feature |
|
|
785
|
+
| N+3 | Stitch: Prototipação com IA | 2.7 | implement_feature |
|
|
786
|
+
| N+4 | Page Specs: Blueprint Detalhado | 2.8 | implement_feature |
|
|
787
|
+
| N+5 | Analytics Strategy: Tracking & Measurement | 2.9 | implement_feature |
|
|
788
|
+
|
|
789
|
+
**Se Tracker = Flyee:**
|
|
790
|
+
|
|
791
|
+
```bash
|
|
792
|
+
# Para cada task, chamar via bridge.py:
|
|
793
|
+
python .agent/flyee-bridge/bridge.py --create-task \
|
|
794
|
+
--type implement_feature \
|
|
795
|
+
--name "Design System: UI/UX Discovery + MASTER.md" \
|
|
796
|
+
--meta '{"phase": "2.5", "category": "Planejamento"}'
|
|
797
|
+
```
|
|
798
|
+
|
|
799
|
+
Ou via Python direto:
|
|
800
|
+
```python
|
|
801
|
+
from bridge import create_task, load_config
|
|
802
|
+
config = load_config()
|
|
803
|
+
create_task(
|
|
804
|
+
api_url=config["api_url"],
|
|
805
|
+
api_key=config["api_key"],
|
|
806
|
+
project_id=config["project_id"],
|
|
807
|
+
task_type="implement_feature",
|
|
808
|
+
name="Design System: UI/UX Discovery + MASTER.md",
|
|
809
|
+
description="Criar tokens de design, descobrir preferências de UI/UX",
|
|
810
|
+
meta={"phase": "2.5", "category": "Planejamento"},
|
|
811
|
+
)
|
|
812
|
+
```
|
|
813
|
+
|
|
814
|
+
**Se Tracker = Local:**
|
|
815
|
+
|
|
816
|
+
Criar/atualizar `docs/TASKS.md`:
|
|
817
|
+
```markdown
|
|
818
|
+
# Tasks de Planejamento
|
|
819
|
+
|
|
820
|
+
## Phase 2.5 — Design System
|
|
821
|
+
- [ ] Design System: UI/UX Discovery + MASTER.md
|
|
822
|
+
|
|
823
|
+
## Phase 2.65 — Content Strategy
|
|
824
|
+
- [ ] Content Strategy: Copy e Conteúdo
|
|
825
|
+
|
|
826
|
+
## Phase 2.7 — Stitch
|
|
827
|
+
- [ ] Stitch: Prototipação com IA
|
|
828
|
+
|
|
829
|
+
## Phase 2.8 — Page Specs
|
|
830
|
+
- [ ] Page Specs: Blueprint Detalhado
|
|
831
|
+
|
|
832
|
+
## Phase 2.9 — Analytics
|
|
833
|
+
- [ ] Analytics Strategy: Tracking & Measurement
|
|
834
|
+
```
|
|
835
|
+
|
|
836
|
+
> [!WARNING]
|
|
837
|
+
> **Tasks de implementação (Phase 4–7)** são criadas no Phase 3 (BREAKDOWN), quando o TDD
|
|
838
|
+
> é decomposto em tarefas granulares. Não antecipar estas tasks aqui.
|
|
839
|
+
|
|
840
|
+
#### Passo 2: Atualizar Status ao Executar Fases
|
|
841
|
+
|
|
842
|
+
À medida que cada fase de planejamento for concluída:
|
|
843
|
+
|
|
844
|
+
**Se Flyee:**
|
|
845
|
+
```python
|
|
846
|
+
update_task(
|
|
847
|
+
api_url=config["api_url"],
|
|
848
|
+
api_key=config["api_key"],
|
|
849
|
+
task_id="{task_id}",
|
|
850
|
+
status="completed",
|
|
851
|
+
result_status="success",
|
|
852
|
+
output={"summary": "Design System criado com tokens completos"},
|
|
853
|
+
metrics={"time_spent": "2h"},
|
|
854
|
+
)
|
|
855
|
+
```
|
|
856
|
+
|
|
857
|
+
**Se Local:**
|
|
858
|
+
Marcar checkbox em `docs/TASKS.md`: `- [x] Design System: UI/UX Discovery + MASTER.md`
|
|
859
|
+
|
|
860
|
+
#### Passo 3: Relatório de Tasks Criadas
|
|
861
|
+
|
|
862
|
+
```markdown
|
|
863
|
+
📋 **TASK SETUP CONCLUÍDO**
|
|
864
|
+
|
|
865
|
+
| # | Task | Fase | Tracker | Status |
|
|
866
|
+
|---|------|------|---------|--------|
|
|
867
|
+
| {id} | Design System | 2.5 | {Flyee/Local} | Pendente |
|
|
868
|
+
| {id} | Content Strategy | 2.65 | {Flyee/Local} | Pendente |
|
|
869
|
+
| {id} | Stitch | 2.7 | {Flyee/Local} | Pendente |
|
|
870
|
+
| {id} | Page Specs | 2.8 | {Flyee/Local} | Pendente |
|
|
871
|
+
| {id} | Analytics | 2.9 | {Flyee/Local} | Pendente |
|
|
872
|
+
|
|
873
|
+
Total: {N} tasks de planejamento criadas ({Tracker})
|
|
874
|
+
```
|
|
875
|
+
|
|
876
|
+
**Gate de Saída:**
|
|
877
|
+
```
|
|
878
|
+
[ ] Tracker detectado (Flyee ou Local)
|
|
879
|
+
[ ] Tasks de planejamento criadas
|
|
880
|
+
[ ] PROJECT-PROGRESS.md atualizado
|
|
881
|
+
```
|
|
882
|
+
|
|
883
|
+
---
|
|
884
|
+
|
|
885
|
+
### Phase 2.45: VISUAL REFERENCE COLLECTION (Pergunta Obrigatória)
|
|
886
|
+
|
|
887
|
+
> [!IMPORTANT]
|
|
888
|
+
> **OBRIGATÓRIO:** Antes de iniciar Phase 2.5, perguntar ao usuário COMO quer definir o Design System.
|
|
889
|
+
|
|
890
|
+
**Objetivo:** Determinar a abordagem de definição do Design System e coletar materiais de referência se necessário.
|
|
891
|
+
|
|
892
|
+
**Trigger:**
|
|
893
|
+
```
|
|
894
|
+
Task Setup concluído → Automático (exceto --no-design)
|
|
895
|
+
```
|
|
896
|
+
|
|
897
|
+
---
|
|
898
|
+
|
|
899
|
+
#### Pergunta ao Usuário (OBRIGATÓRIA)
|
|
900
|
+
|
|
901
|
+
```markdown
|
|
902
|
+
## 🎨 Como deseja definir o Design System?
|
|
903
|
+
|
|
904
|
+
Antes de definir os tokens visuais (cores, tipografia, efeitos), preciso saber como você quer conduzir:
|
|
905
|
+
|
|
906
|
+
| Opção | Descrição |
|
|
907
|
+
|-------|-----------|
|
|
908
|
+
| **A) Recomendações + Perguntas** | Eu gero recomendações baseadas no contexto do projeto e te faço perguntas granulares por aspecto (cores, tipografia, layout, efeitos, logo) |
|
|
909
|
+
| **B) Referências Visuais** | Você fornece screenshots, URLs ou imagens de sites/apps que gosta e eu extraio os tokens visuais |
|
|
910
|
+
| **C) Definir Manualmente** | Você me informa diretamente os valores (hex das cores, nomes das fontes, estilo) |
|
|
911
|
+
| **D) Combinação** | Referências visuais + perguntas granulares para ajustar |
|
|
912
|
+
|
|
913
|
+
Qual opção?
|
|
914
|
+
```
|
|
915
|
+
|
|
916
|
+
**AGUARDAR** resposta do usuário.
|
|
917
|
+
|
|
918
|
+
---
|
|
919
|
+
|
|
920
|
+
#### Se Opção B ou D (Referências Visuais)
|
|
921
|
+
|
|
922
|
+
**Passo 1: Criar pasta de referências**
|
|
923
|
+
|
|
924
|
+
```powershell
|
|
925
|
+
# PowerShell (Windows)
|
|
926
|
+
New-Item -ItemType Directory -Force -Path "design-system/{nome}/references/"
|
|
927
|
+
```
|
|
928
|
+
|
|
929
|
+
```bash
|
|
930
|
+
# Bash (macOS/Linux)
|
|
931
|
+
mkdir -p design-system/{nome}/references/
|
|
932
|
+
```
|
|
933
|
+
|
|
934
|
+
**Passo 2: Orientar o usuário**
|
|
935
|
+
|
|
936
|
+
```markdown
|
|
937
|
+
## 📂 Pasta de Referências Criada
|
|
938
|
+
|
|
939
|
+
A pasta `design-system/{nome}/references/` foi criada no projeto.
|
|
940
|
+
|
|
941
|
+
### Como adicionar referências:
|
|
942
|
+
|
|
943
|
+
| Tipo | Como fazer |
|
|
944
|
+
|------|-----------|
|
|
945
|
+
| **Screenshots** | Salve imagens (.png, .jpg, .webp) diretamente na pasta |
|
|
946
|
+
| **URLs de sites** | Me informe as URLs e eu faço screenshots ou analiso |
|
|
947
|
+
| **Imagens de inspiração** | Arraste para a pasta ou cole aqui no chat |
|
|
948
|
+
| **Figma/Dribbble** | Me envie o link e eu extraio os tokens |
|
|
949
|
+
|
|
950
|
+
### Dicas para boas referências:
|
|
951
|
+
- Pode ser de **concorrentes**, de **produtos que admira**, ou qualquer design que transmita o "feeling" desejado
|
|
952
|
+
- Pode ser **parcial**: "Gosto SÓ das cores desse site" ou "Só o layout"
|
|
953
|
+
- **Quanto mais referências, melhor** eu entendo a direção visual
|
|
954
|
+
|
|
955
|
+
### Quando terminar:
|
|
956
|
+
Quando tiver adicionado todas as referências, me avise e eu analiso para extrair os tokens.
|
|
957
|
+
```
|
|
958
|
+
|
|
959
|
+
**AGUARDAR** o usuário adicionar referências e confirmar.
|
|
960
|
+
|
|
961
|
+
**Passo 3: Analisar referências**
|
|
962
|
+
|
|
963
|
+
1. Ler todas as imagens/URLs fornecidas
|
|
964
|
+
2. Extrair para cada referência:
|
|
965
|
+
- Cores dominantes (hex exatos)
|
|
966
|
+
- Tipografia identificada
|
|
967
|
+
- Estilo de layout e espaçamento
|
|
968
|
+
- Efeitos visuais (glassmorphism, shadows, gradients)
|
|
969
|
+
- Direção visual geral
|
|
970
|
+
3. Consolidar em uma análise comparativa
|
|
971
|
+
4. Apresentar ao usuário para validação
|
|
972
|
+
|
|
973
|
+
---
|
|
974
|
+
|
|
975
|
+
#### Se Opção A (Recomendações + Perguntas)
|
|
976
|
+
|
|
977
|
+
Prosseguir diretamente para Phase 2.5 com o fluxo de recomendações.
|
|
978
|
+
|
|
979
|
+
#### Se Opção C (Manual)
|
|
980
|
+
|
|
981
|
+
Prosseguir para Phase 2.5 com perguntas diretas sobre cada token.
|
|
982
|
+
|
|
983
|
+
---
|
|
984
|
+
|
|
985
|
+
**Gate de Saída:**
|
|
986
|
+
```
|
|
987
|
+
[ ] Usuário respondeu como quer definir o Design System
|
|
988
|
+
[ ] Se referências visuais: pasta criada e materiais adicionados
|
|
989
|
+
[ ] Se referências visuais: análise apresentada ao usuário
|
|
990
|
+
```
|
|
991
|
+
|
|
992
|
+
---
|
|
993
|
+
|
|
994
|
+
### Phase 2.5: DESIGN SYSTEM - Tokens Visuais (Opcional para APIs)
|
|
995
|
+
|
|
996
|
+
> [!NOTE]
|
|
997
|
+
> **Pulado se:** Projeto é apenas API/Backend sem interface.
|
|
998
|
+
> **Skills de referência:** `frontend-design` ou `mobile-design`
|
|
999
|
+
|
|
1000
|
+
> [!IMPORTANT]
|
|
1001
|
+
> **TEMPLATE-FIRST:** Antes de gerar do zero, verificar se existe template em `.agent/templates/design-system/`.
|
|
1002
|
+
> **Templates disponíveis atualmente:** `CORPORATE-TEMPLATE.md` (sites institucionais/corporativos).
|
|
1003
|
+
> **SKILL OBRIGATÓRIA:** Seguir `ui-ux-discovery` para perguntas granulares ANTES de finalizar Design System.
|
|
1004
|
+
> **REFERÊNCIAS:** Se Phase 2.45 coletou referências visuais, usá-las como base para as recomendações.
|
|
1005
|
+
|
|
1006
|
+
**Objetivo:** Definir os **tokens visuais globais** (DNA do projeto) com base na abordagem escolhida na Phase 2.45.
|
|
1007
|
+
|
|
1008
|
+
> [!NOTE]
|
|
1009
|
+
> **MASTER.md contém APENAS tokens** (cores, tipografia, espaçamento, radius, shadows, efeitos, direção visual).
|
|
1010
|
+
> **Specs de componentes** (buttons, cards, sidebar, etc.) são definidos como **task no Phase 3 (Breakdown)**.
|
|
1011
|
+
> Os tokens DEVEM ser definidos primeiro porque os componentes os consomem.
|
|
1012
|
+
|
|
1013
|
+
**Trigger:**
|
|
1014
|
+
```
|
|
1015
|
+
Phase 2.45 concluída → Automático
|
|
1016
|
+
```
|
|
1017
|
+
|
|
1018
|
+
**Agentes Envolvidos:**
|
|
1019
|
+
- `frontend-specialist` - Para projetos web
|
|
1020
|
+
- `mobile-developer` - Para projetos mobile
|
|
1021
|
+
- `design-specialist` - Para projetos complexos
|
|
1022
|
+
|
|
1023
|
+
---
|
|
1024
|
+
|
|
1025
|
+
#### PASSO 0: Verificar Templates Disponíveis (NOVO — OBRIGATÓRIO)
|
|
1026
|
+
|
|
1027
|
+
> [!CAUTION]
|
|
1028
|
+
> **ANTES de gerar do zero:** Verificar se há template adequado ao tipo de projeto.
|
|
1029
|
+
> Templates existem em `.agent/templates/design-system/` e foram extraídos de projetos aprovados.
|
|
1030
|
+
> **Usar template é SEMPRE preferível** a gerar do zero — evita o problema de DS genéricos.
|
|
1031
|
+
|
|
1032
|
+
**Verificar templates:**
|
|
1033
|
+
1. Ler `.agent/templates/design-system/` para templates disponíveis
|
|
1034
|
+
2. Comparar com o tipo de projeto definido no Gate 0
|
|
1035
|
+
|
|
1036
|
+
**Templates disponíveis:**
|
|
1037
|
+
|
|
1038
|
+
| Template | Arquivo | Para quais tipos |
|
|
1039
|
+
|----------|---------|------------------|
|
|
1040
|
+
| Corporate Landing | `CORPORATE-TEMPLATE.md` | Site Institucional, LP, Financeiro, Jurídico, Imobiliário |
|
|
1041
|
+
| *(futuros templates serão adicionados aqui)* | | |
|
|
1042
|
+
|
|
1043
|
+
---
|
|
1044
|
+
|
|
1045
|
+
##### Se Template Compatível Encontrado → Oferecer ao Usuário
|
|
1046
|
+
|
|
1047
|
+
```markdown
|
|
1048
|
+
## 🎨 Template de Design System Disponível
|
|
1049
|
+
|
|
1050
|
+
Encontrei um template **aprovado e testado** para o tipo de projeto que você está criando:
|
|
1051
|
+
|
|
1052
|
+
📄 **{TEMPLATE_NAME}** — Baseado em projetos reais, inclui:
|
|
1053
|
+
- ✅ Tipografia (Inter + Plus Jakarta Sans)
|
|
1054
|
+
- ✅ Escala de espaçamento completa
|
|
1055
|
+
- ✅ Shadows, radius, transições
|
|
1056
|
+
- ✅ Hover effects e anti-patterns
|
|
1057
|
+
- ✅ Componentes recomendados
|
|
1058
|
+
|
|
1059
|
+
### Escolha a paleta de cores:
|
|
1060
|
+
|
|
1061
|
+
| # | Paleta | Segmentos | Cor Principal |
|
|
1062
|
+
|---|--------|-----------|---------------|
|
|
1063
|
+
| 1 | 🟡 Corporate Gold | Financeiro, imobiliário, jurídico | `#cc9933` |
|
|
1064
|
+
| 2 | 🔵 Executive Blue | Tech, consultoria, saúde, educação | `#2563EB` |
|
|
1065
|
+
| 3 | 🟢 Forest Green | Sustentabilidade, agro, bem-estar | `#166534` |
|
|
1066
|
+
| 4 | 🟣 Royal Purple | Luxo, beleza, criativo | `#7C3AED` |
|
|
1067
|
+
| 5 | 🔴 Crimson Red | Alimentação, esportes, energia | `#DC2626` |
|
|
1068
|
+
| 6 | 🫐 Deep Navy | Governo, aviação, finanças tradicionais | `#1E3A5F` |
|
|
1069
|
+
| 7 | 🩷 Rose Elegance | Moda, beleza, lifestyle | `#BE185D` |
|
|
1070
|
+
| 8 | 🟠 Warm Terracotta | Arquitetura, gastronomia, artesanal | `#C2572A` |
|
|
1071
|
+
| 9 | ⬛ Slate Minimal | Tech, SaaS, developer tools | `#475569` |
|
|
1072
|
+
| 10 | 🌊 Ocean Teal | Turismo, wellness, saúde | `#0D9488` |
|
|
1073
|
+
| 11 | 🎨 **Customizada** | Fornecer cores manualmente | — |
|
|
1074
|
+
|
|
1075
|
+
> Detalhes completos de cada paleta: `.agent/templates/design-system/COLOR-PALETTES.md`
|
|
1076
|
+
|
|
1077
|
+
Qual paleta? (número ou "customizada" com os hex)
|
|
1078
|
+
```
|
|
1079
|
+
|
|
1080
|
+
**AGUARDAR** resposta do usuário.
|
|
1081
|
+
|
|
1082
|
+
**Após escolha:**
|
|
1083
|
+
1. Ler `COLOR-PALETTES.md` para obter os valores da paleta
|
|
1084
|
+
2. Ler `CORPORATE-TEMPLATE.md` como base
|
|
1085
|
+
3. Substituir todos os `{PALETTE.*}` pelos valores da paleta escolhida
|
|
1086
|
+
4. Gerar `design-system/MASTER.md` com valores concretos
|
|
1087
|
+
5. **AGUARDAR** aprovação humana
|
|
1088
|
+
|
|
1089
|
+
> [!TIP]
|
|
1090
|
+
> O usuário pode pedir ajustes após ver o MASTER.md gerado (trocar fontes, ajustar espaçamento, etc.)
|
|
1091
|
+
> Neste caso, editar o MASTER.md sem precisar recomeçar.
|
|
1092
|
+
|
|
1093
|
+
---
|
|
1094
|
+
|
|
1095
|
+
##### Se Nenhum Template Compatível → Gerar do Zero (Fallback)
|
|
1096
|
+
|
|
1097
|
+
Seguir o processo original abaixo (Abordagem A/B/C/D da Phase 2.45).
|
|
1098
|
+
|
|
1099
|
+
---
|
|
1100
|
+
|
|
1101
|
+
#### Processo por Abordagem
|
|
1102
|
+
|
|
1103
|
+
##### Se Abordagem A (Recomendações + Perguntas) ou D (Combinação)
|
|
1104
|
+
|
|
1105
|
+
> [!CAUTION]
|
|
1106
|
+
> **OBRIGATÓRIO:** Seguir skill `ui-ux-discovery`.
|
|
1107
|
+
> **NÃO** gerar Design System final sem respostas do usuário.
|
|
1108
|
+
|
|
1109
|
+
| Passo | Ação | Detalhes |
|
|
1110
|
+
|-------|------|----------|
|
|
1111
|
+
| 1 | Executar `/ui-ux-pro-max` | Obter recomendações modernas |
|
|
1112
|
+
| 1.5 | Incorporar referências visuais (se D) | Combinar com recomendações |
|
|
1113
|
+
| 2 | **Perguntas Granulares ⭐** | Por aspecto: cores, tipografia, layout, efeitos, logo |
|
|
1114
|
+
| 3 | Aguardar Respostas | **BLOQUEADOR** - Não prosseguir sem resposta |
|
|
1115
|
+
| 4 | Consolidar Decisões | Combinar escolhas do usuário + recomendações |
|
|
1116
|
+
| 5 | Validar e Aprovar | Aguardar aprovação humana |
|
|
1117
|
+
|
|
1118
|
+
##### Se Abordagem B (Referências Visuais)
|
|
1119
|
+
|
|
1120
|
+
| Passo | Ação | Detalhes |
|
|
1121
|
+
|-------|------|----------|
|
|
1122
|
+
| 1 | Analisar referências | Extrair tokens de cada referência |
|
|
1123
|
+
| 2 | Apresentar extração | Mostrar tokens extraídos por referência |
|
|
1124
|
+
| 3 | **Perguntas de Ajuste ⭐** | "Gostou das cores do site X ou Y?" |
|
|
1125
|
+
| 4 | Consolidar | Combinar preferências do usuário |
|
|
1126
|
+
| 5 | Validar e Aprovar | Aguardar aprovação humana |
|
|
1127
|
+
|
|
1128
|
+
##### Se Abordagem C (Manual)
|
|
1129
|
+
|
|
1130
|
+
| Passo | Ação | Detalhes |
|
|
1131
|
+
|-------|------|----------|
|
|
1132
|
+
| 1 | Solicitar tokens | Pedir cores, fontes, estilo diretamente |
|
|
1133
|
+
| 2 | Validar acessibilidade | Verificar contraste WCAG |
|
|
1134
|
+
| 3 | Consolidar | Organizar valores fornecidos |
|
|
1135
|
+
| 4 | Validar e Aprovar | Aguardar aprovação humana |
|
|
1136
|
+
|
|
1137
|
+
---
|
|
1138
|
+
|
|
1139
|
+
**PASSO 1 (Abordagem A/D): Executar `/ui-ux-pro-max` (OBRIGATÓRIO)**
|
|
1140
|
+
|
|
1141
|
+
```bash
|
|
1142
|
+
python3 .agent/.shared/ui-ux-pro-max/scripts/search.py "{produto} {indústria} {keywords}" --design-system -p "{Projeto}"
|
|
1143
|
+
```
|
|
1144
|
+
|
|
1145
|
+
**Exemplo para SaaS:**
|
|
1146
|
+
```bash
|
|
1147
|
+
python3 .agent/.shared/ui-ux-pro-max/scripts/search.py "saas startup professional" --design-system -p "MeuProjeto"
|
|
1148
|
+
```
|
|
1149
|
+
|
|
1150
|
+
**Output esperado:**
|
|
1151
|
+
- Pattern recomendado (landing, dashboard, etc.)
|
|
1152
|
+
- Style (glassmorphism, minimalism, etc.)
|
|
1153
|
+
- Paleta de cores completa
|
|
1154
|
+
- Tipografia (Google Fonts)
|
|
1155
|
+
- Efeitos visuais
|
|
1156
|
+
- Anti-patterns a evitar
|
|
1157
|
+
|
|
1158
|
+
---
|
|
1159
|
+
|
|
1160
|
+
**PASSO 2: Persistir Design System**
|
|
1161
|
+
|
|
1162
|
+
```bash
|
|
1163
|
+
python3 .agent/.shared/ui-ux-pro-max/scripts/search.py "{query}" --design-system --persist -p "{Projeto}"
|
|
1164
|
+
```
|
|
1165
|
+
|
|
1166
|
+
Gera:
|
|
1167
|
+
- `design-system/MASTER.md` - Source of Truth global
|
|
1168
|
+
- `design-system/pages/` - Folder para overrides por página
|
|
1169
|
+
|
|
1170
|
+
---
|
|
1171
|
+
|
|
1172
|
+
**PASSO 3: Buscar Guidelines do Stack**
|
|
1173
|
+
|
|
1174
|
+
```bash
|
|
1175
|
+
python3 .agent/.shared/ui-ux-pro-max/scripts/search.py "layout responsive form" --stack {stack}
|
|
1176
|
+
```
|
|
1177
|
+
|
|
1178
|
+
Stacks disponíveis: `html-tailwind`, `react`, `nextjs`, `shadcn`, `vue`, `swiftui`, `react-native`, `flutter`, etc.
|
|
1179
|
+
|
|
1180
|
+
---
|
|
1181
|
+
|
|
1182
|
+
**PASSO 4: Documentar Design System (Tokens)**
|
|
1183
|
+
|
|
1184
|
+
1. Analisar TDD para requisitos visuais
|
|
1185
|
+
2. Combinar recomendações / referências / manual com requisitos do TDD
|
|
1186
|
+
3. Definir tokens:
|
|
1187
|
+
- Paleta de cores
|
|
1188
|
+
- Tipografia
|
|
1189
|
+
- Espaçamento (spacing scale)
|
|
1190
|
+
- Border radius
|
|
1191
|
+
- Shadows
|
|
1192
|
+
- Efeitos visuais
|
|
1193
|
+
4. Gerar `design-system/{nome}/MASTER.md`
|
|
1194
|
+
5. **AGUARDAR** aprovação humana
|
|
1195
|
+
|
|
1196
|
+
**Template MASTER.md (Tokens Only):**
|
|
1197
|
+
```markdown
|
|
1198
|
+
## design-system/{nome}/MASTER.md
|
|
1199
|
+
|
|
1200
|
+
> Gerado em {data}
|
|
1201
|
+
> Abordagem: {A/B/C/D}
|
|
1202
|
+
> Referências: {lista de referências se houver}
|
|
1203
|
+
|
|
1204
|
+
### Direção Visual
|
|
1205
|
+
- Pattern: {landing, dashboard, etc.}
|
|
1206
|
+
- Style: {estilo escolhido}
|
|
1207
|
+
|
|
1208
|
+
### Cores
|
|
1209
|
+
- Primary: {hex}
|
|
1210
|
+
- Secondary: {hex}
|
|
1211
|
+
- Accent: {hex}
|
|
1212
|
+
- Background: {hex}
|
|
1213
|
+
- Surface: {hex}
|
|
1214
|
+
- Text: {hex}
|
|
1215
|
+
- Text Muted: {hex}
|
|
1216
|
+
- Border: {hex}
|
|
1217
|
+
- Error: {hex}
|
|
1218
|
+
- Success: {hex}
|
|
1219
|
+
- Warning: {hex}
|
|
1220
|
+
|
|
1221
|
+
### Tipografia
|
|
1222
|
+
- Heading: {fonte} (Google Fonts)
|
|
1223
|
+
- Body: {fonte} (Google Fonts)
|
|
1224
|
+
- Mono: {fonte para código}
|
|
1225
|
+
- Scale: {ratio, ex: 1.25}
|
|
1226
|
+
|
|
1227
|
+
### Espaçamento
|
|
1228
|
+
- Base: {ex: 8px}
|
|
1229
|
+
- Scale: {ex: 4, 8, 12, 16, 24, 32, 48, 64, 96}
|
|
1230
|
+
|
|
1231
|
+
### Border Radius
|
|
1232
|
+
- Small: {ex: 4px}
|
|
1233
|
+
- Medium: {ex: 8px}
|
|
1234
|
+
- Large: {ex: 12px}
|
|
1235
|
+
- Full: {ex: 9999px}
|
|
1236
|
+
|
|
1237
|
+
### Shadows
|
|
1238
|
+
- Level 1: {ex: 0 1px 3px rgba(0,0,0,0.12)}
|
|
1239
|
+
- Level 2: {value}
|
|
1240
|
+
- Level 3: {value}
|
|
1241
|
+
|
|
1242
|
+
### Efeitos Visuais
|
|
1243
|
+
- {lista de efeitos: glassmorphism, gradients, dark mode, etc.}
|
|
1244
|
+
|
|
1245
|
+
### Anti-Patterns (EVITAR)
|
|
1246
|
+
- {lista}
|
|
1247
|
+
|
|
1248
|
+
### Referências Visuais (se houver)
|
|
1249
|
+
- 
|
|
1250
|
+
- {descrição do que foi extraído de cada referência}
|
|
1251
|
+
```
|
|
1252
|
+
|
|
1253
|
+
> [!NOTE]
|
|
1254
|
+
> **Specs de componentes** (Buttons, Cards, Sidebar, Forms, etc.) serão definidos
|
|
1255
|
+
> como **task dedicada no Phase 3 (Breakdown)**, consumindo estes tokens.
|
|
1256
|
+
> O workflow `/atomic` será usado na Phase 5 para implementar cada componente.
|
|
1257
|
+
|
|
1258
|
+
---
|
|
1259
|
+
|
|
1260
|
+
**Gate de Saída:**
|
|
1261
|
+
```
|
|
1262
|
+
[ ] Abordagem escolhida na Phase 2.45 seguida
|
|
1263
|
+
[ ] Perguntas granulares respondidas pelo usuário (skill: ui-ux-discovery)
|
|
1264
|
+
[ ] Se referências: analisadas e incorporadas
|
|
1265
|
+
[ ] Design System (tokens) persistido (design-system/{nome}/MASTER.md)
|
|
1266
|
+
[ ] Design System aprovado pelo humano
|
|
1267
|
+
```
|
|
1268
|
+
|
|
1269
|
+
> [!CAUTION]
|
|
1270
|
+
> **BLOQUEADOR:** Não prosseguir sem aprovação do Design System.
|
|
1271
|
+
|
|
1272
|
+
---
|
|
1273
|
+
|
|
1274
|
+
### Phase 2.65: CONTENT STRATEGY - Conteúdo e Copy
|
|
1275
|
+
|
|
1276
|
+
> [!NOTE]
|
|
1277
|
+
> **Pulado se:** Projeto é apenas API/Backend sem interface pública.
|
|
1278
|
+
> **Obrigatório para:** LPs, sites institucionais, SaaS com marketing pages.
|
|
1279
|
+
|
|
1280
|
+
> [!IMPORTANT]
|
|
1281
|
+
> **SKILL:** Seguir `content-strategy` para definição de copy e conteúdo.
|
|
1282
|
+
> **Documento:** `docs/content/CONTENT-STRATEGY-{nome}.md`
|
|
1283
|
+
|
|
1284
|
+
**Objetivo:** Definir copy e conteúdo ANTES de prototipar, para que Stitch use textos reais.
|
|
1285
|
+
|
|
1286
|
+
**Trigger:**
|
|
1287
|
+
```
|
|
1288
|
+
Design System aprovado → Automático (exceto --no-content)
|
|
1289
|
+
```
|
|
1290
|
+
|
|
1291
|
+
**Agentes Envolvidos:**
|
|
1292
|
+
- `frontend-specialist` - Estrutura de páginas
|
|
1293
|
+
- `product-owner` - Messaging e posicionamento
|
|
1294
|
+
|
|
1295
|
+
---
|
|
1296
|
+
|
|
1297
|
+
#### Processo (Skill: content-strategy)
|
|
1298
|
+
|
|
1299
|
+
> [!CAUTION]
|
|
1300
|
+
> **OBRIGATÓRIO:** Seguir TODOS os 4 passos definidos na skill `content-strategy`.
|
|
1301
|
+
> **NÃO** prosseguir sem respostas do usuário sobre tom de voz e proposta de valor.
|
|
1302
|
+
|
|
1303
|
+
| Passo | Ação | Detalhes |
|
|
1304
|
+
|-------|------|----------|
|
|
1305
|
+
| 1 | Identificar Páginas | Listar todas as páginas que precisam de conteúdo |
|
|
1306
|
+
| 2 | **Perguntas ao Usuário ⭐** | Tom de voz, público, USP, pricing |
|
|
1307
|
+
| 3 | Gerar Documento | Hero, Features, FAQ, SEO metadata |
|
|
1308
|
+
| 4 | Validar e Aprovar | Aguardar aprovação humana |
|
|
1309
|
+
|
|
1310
|
+
**Gate de Saída:**
|
|
1311
|
+
```
|
|
1312
|
+
[ ] CONTENT-STRATEGY-{nome}.md gerado
|
|
1313
|
+
[ ] Copy da LP definido (Hero, Features, CTA)
|
|
1314
|
+
[ ] Pricing/FAQ definidos (se aplicável)
|
|
1315
|
+
[ ] Metadados SEO definidos
|
|
1316
|
+
[ ] Conteúdo aprovado pelo humano
|
|
1317
|
+
```
|
|
1318
|
+
|
|
1319
|
+
> [!CAUTION]
|
|
1320
|
+
> **BLOQUEADOR:** Não prosseguir para Phase 2.7 (Stitch) sem Content Strategy aprovado (exceto --no-content).
|
|
1321
|
+
|
|
1322
|
+
---
|
|
1323
|
+
|
|
1324
|
+
### Phase 2.7: STITCH GENERATION - UI com IA (Opcional)
|
|
1325
|
+
|
|
1326
|
+
> [!NOTE]
|
|
1327
|
+
> **Ativado com:** `/new-project --stitch` OU quando usuário responder "Sim" na pergunta abaixo.
|
|
1328
|
+
> **Pulado se:** UI será desenhada manualmente (Figma) ou projeto não visual.
|
|
1329
|
+
|
|
1330
|
+
> [!TIP]
|
|
1331
|
+
> **Workflow relacionado:** `/stitch` (contém todas as flags e skills)
|
|
1332
|
+
> **Skills usadas:** `design-md`, `enhance-prompt`, `react-components`, `stitch-loop`
|
|
1333
|
+
|
|
1334
|
+
**Objetivo:** Usar IA (Stitch) para gerar screens e componentes base, usando o copy real do Content Strategy.
|
|
1335
|
+
|
|
1336
|
+
**Trigger:**
|
|
1337
|
+
```
|
|
1338
|
+
Content Strategy aprovado → Perguntar ao usuário
|
|
1339
|
+
```
|
|
1340
|
+
|
|
1341
|
+
**Agentes Envolvidos:**
|
|
1342
|
+
- `stitch-designer` - Especialista em geração de UI com Stitch
|
|
1343
|
+
- `frontend-specialist` - Validação e integração
|
|
1344
|
+
|
|
1345
|
+
---
|
|
1346
|
+
|
|
1347
|
+
#### Pergunta ao Usuário (OBRIGATÓRIA)
|
|
1348
|
+
|
|
1349
|
+
```markdown
|
|
1350
|
+
## 🎨 Geração de UI com IA
|
|
1351
|
+
|
|
1352
|
+
O Content Strategy está definido. Deseja usar **Stitch AI** para acelerar a criação da UI?
|
|
1353
|
+
|
|
1354
|
+
| Opção | Descrição |
|
|
1355
|
+
|-------|-----------|
|
|
1356
|
+
| **Sim, completo** | Gerar todas as telas principais com Stitch loop |
|
|
1357
|
+
| **Sim, parcial** | Apenas otimizar prompts e gerar DESIGN.md semântico |
|
|
1358
|
+
| **Não** | Implementar manualmente (pular para Phase 2.8) |
|
|
1359
|
+
|
|
1360
|
+
Qual opção?
|
|
1361
|
+
```
|
|
1362
|
+
|
|
1363
|
+
---
|
|
1364
|
+
|
|
1365
|
+
#### Processo Completo (Se "Sim, completo")
|
|
1366
|
+
|
|
1367
|
+
| Passo | Skill | Ação | Output |
|
|
1368
|
+
|-------|-------|------|--------|
|
|
1369
|
+
| 1 | `enhance-prompt` | Otimizar descrições de cada tela | Prompts otimizados |
|
|
1370
|
+
| 2 | `design-md` | Gerar DESIGN.md semântico | `DESIGN.md` |
|
|
1371
|
+
| 3 | `stitch-loop` | Gerar screens com Stitch MCP | HTML + Screenshots |
|
|
1372
|
+
| 4 | `react-components` | Converter para React | Componentes prontos |
|
|
1373
|
+
|
|
1374
|
+
**PASSO 1: Otimizar Prompts (`/stitch --prompt`)**
|
|
1375
|
+
|
|
1376
|
+
```markdown
|
|
1377
|
+
# Para cada tela principal do TDD:
|
|
1378
|
+
|
|
1379
|
+
## Tela: {nome}
|
|
1380
|
+
|
|
1381
|
+
**Descrição original:** {descrição do TDD}
|
|
1382
|
+
|
|
1383
|
+
**Prompt otimizado:** {gerado pela skill enhance-prompt}
|
|
1384
|
+
- Adicionados: keywords de UI/UX, contexto de design system
|
|
1385
|
+
- Estrutura: layout, componentes, estados
|
|
1386
|
+
```
|
|
1387
|
+
|
|
1388
|
+
**PASSO 2: Gerar DESIGN.md Semântico (`/stitch --design`)**
|
|
1389
|
+
|
|
1390
|
+
Converte `design-system/MASTER.md` (humano) → `DESIGN.md` (otimizado para IA):
|
|
1391
|
+
|
|
1392
|
+
```bash
|
|
1393
|
+
# A skill design-md lê o MASTER.md e gera versão semântica
|
|
1394
|
+
# Output: DESIGN.md na raiz do projeto
|
|
1395
|
+
```
|
|
1396
|
+
|
|
1397
|
+
**PASSO 3: Gerar Screens com Stitch (Se Stitch MCP disponível)**
|
|
1398
|
+
|
|
1399
|
+
> [!IMPORTANT]
|
|
1400
|
+
> **VERIFICAÇÃO OBRIGATÓRIA:** Antes de prosseguir, verificar se Stitch MCP está configurado.
|
|
1401
|
+
|
|
1402
|
+
#### 3.1 Verificar Stitch MCP
|
|
1403
|
+
|
|
1404
|
+
```bash
|
|
1405
|
+
# Verificar se stitch-mcp está nos MCP servers configurados
|
|
1406
|
+
# O agente deve verificar os MCP Servers disponíveis
|
|
1407
|
+
```
|
|
1408
|
+
|
|
1409
|
+
**Se Stitch MCP NÃO estiver disponível, perguntar:**
|
|
1410
|
+
|
|
1411
|
+
```markdown
|
|
1412
|
+
## ⚠️ Stitch MCP não detectado
|
|
1413
|
+
|
|
1414
|
+
O Stitch MCP Server não está configurado. Para usar a geração de UI com IA:
|
|
1415
|
+
|
|
1416
|
+
### Opções:
|
|
1417
|
+
|
|
1418
|
+
| Opção | Ação |
|
|
1419
|
+
|-------|------|
|
|
1420
|
+
| **A. Configurar agora** | Vou guiar a instalação do Stitch MCP |
|
|
1421
|
+
| **B. Pular** | Continuar sem Stitch (usar apenas skills offline) |
|
|
1422
|
+
| **C. Já configurei** | Tentar detectar novamente |
|
|
1423
|
+
|
|
1424
|
+
Qual opção?
|
|
1425
|
+
```
|
|
1426
|
+
|
|
1427
|
+
#### 3.2 Se Opção A (Configurar Stitch MCP)
|
|
1428
|
+
|
|
1429
|
+
```markdown
|
|
1430
|
+
## 🔧 Configuração do Stitch MCP
|
|
1431
|
+
|
|
1432
|
+
### Passo 1: Conta no Stitch
|
|
1433
|
+
1. Acesse: https://stitch.withgoogle.com/
|
|
1434
|
+
2. Faça login com sua conta Google
|
|
1435
|
+
3. Crie um projeto (ou use existente)
|
|
1436
|
+
|
|
1437
|
+
### Passo 2: Obter Token
|
|
1438
|
+
1. No Stitch, vá em Settings → API
|
|
1439
|
+
2. Gere um token de API
|
|
1440
|
+
3. Copie o token
|
|
1441
|
+
|
|
1442
|
+
### Passo 3: Configurar MCP Server
|
|
1443
|
+
Adicione ao seu arquivo de configuração MCP:
|
|
1444
|
+
|
|
1445
|
+
**Claude Desktop (~/.claude/claude_desktop_config.json):**
|
|
1446
|
+
\`\`\`json
|
|
1447
|
+
{
|
|
1448
|
+
"mcpServers": {
|
|
1449
|
+
"stitch": {
|
|
1450
|
+
"command": "npx",
|
|
1451
|
+
"args": ["-y", "@anthropic/stitch-mcp"],
|
|
1452
|
+
"env": {
|
|
1453
|
+
"STITCH_API_KEY": "seu-token-aqui"
|
|
1454
|
+
}
|
|
1455
|
+
}
|
|
1456
|
+
}
|
|
1457
|
+
}
|
|
1458
|
+
\`\`\`
|
|
1459
|
+
|
|
1460
|
+
### Passo 4: Reiniciar
|
|
1461
|
+
1. Feche completamente o Claude Desktop
|
|
1462
|
+
2. Reabra
|
|
1463
|
+
3. Responda "C. Já configurei" para verificar
|
|
1464
|
+
|
|
1465
|
+
**Precisa de ajuda?** Responda "ajuda stitch" para mais detalhes.
|
|
1466
|
+
```
|
|
1467
|
+
|
|
1468
|
+
#### 3.3 Se Stitch MCP disponível (ou Opção C confirmada)
|
|
1469
|
+
|
|
1470
|
+
```markdown
|
|
1471
|
+
# Seguir skill stitch-loop:
|
|
1472
|
+
1. Criar SITE.md com visão do projeto
|
|
1473
|
+
2. Criar next-prompt.md (baton) com primeira tela
|
|
1474
|
+
3. Executar loop de geração
|
|
1475
|
+
4. Integrar screens ao projeto
|
|
1476
|
+
```
|
|
1477
|
+
|
|
1478
|
+
#### 3.4 Se Opção B (Pular)
|
|
1479
|
+
|
|
1480
|
+
> [!NOTE]
|
|
1481
|
+
> Stitch MCP pulado. Usar apenas skills offline (`design-md`, `enhance-prompt`, `react-components`).
|
|
1482
|
+
> Screens serão implementadas manualmente na Phase 5.
|
|
1483
|
+
|
|
1484
|
+
**PASSO 4: Converter para React (`/stitch --components`)**
|
|
1485
|
+
|
|
1486
|
+
```bash
|
|
1487
|
+
# Usar skill react-components para converter HTML gerado
|
|
1488
|
+
# Aplicar design tokens do MASTER.md
|
|
1489
|
+
# Validar com scripts da skill
|
|
1490
|
+
```
|
|
1491
|
+
|
|
1492
|
+
---
|
|
1493
|
+
|
|
1494
|
+
#### Processo Parcial (Se "Sim, parcial")
|
|
1495
|
+
|
|
1496
|
+
Apenas executar PASSO 1 e PASSO 2 (otimizar prompts e gerar DESIGN.md).
|
|
1497
|
+
Screens serão implementadas manualmente na Phase 5.
|
|
1498
|
+
|
|
1499
|
+
---
|
|
1500
|
+
|
|
1501
|
+
**Gate de Saída:**
|
|
1502
|
+
```
|
|
1503
|
+
[ ] Usuário escolheu opção (completo/parcial/não)
|
|
1504
|
+
[ ] Se completo/parcial: Prompts otimizados para telas principais
|
|
1505
|
+
[ ] Se completo/parcial: DESIGN.md gerado
|
|
1506
|
+
[ ] Se completo: Screens geradas (ou justificativa para pular)
|
|
1507
|
+
[ ] Se completo: Componentes React extraídos
|
|
1508
|
+
```
|
|
1509
|
+
|
|
1510
|
+
---
|
|
1511
|
+
|
|
1512
|
+
#### 🚨 GATE DE VALIDAÇÃO DO CLIENTE (OBRIGATÓRIO) ⭐
|
|
1513
|
+
|
|
1514
|
+
> [!CAUTION]
|
|
1515
|
+
> **REGRA BLOQUEANTE:** Após gerar protótipos, o CLIENTE deve validar CADA tela via Tracker.
|
|
1516
|
+
> NÃO prosseguir para Phase 2.8 (Page Specs) sem TODAS as tasks de prototipação com Status = "Concluído".
|
|
1517
|
+
|
|
1518
|
+
> [!IMPORTANT]
|
|
1519
|
+
> **REGRA:** 1 TASK POR TELA. Não criar task única para múltiplas telas.
|
|
1520
|
+
> Usar Flyee API para criação de tasks de prototipação.
|
|
1521
|
+
|
|
1522
|
+
**Processo (para CADA tela gerada):**
|
|
1523
|
+
|
|
1524
|
+
| Passo | Ação | Detalhes |
|
|
1525
|
+
|-------|------|----------|
|
|
1526
|
+
| 1 | Criar Task no Tracker | Tipo: `implement_feature`, Status: `pending` |
|
|
1527
|
+
| 2 | Adicionar Preview | Screenshot/link do protótipo no corpo da task |
|
|
1528
|
+
| 3 | Mudar Status | `Aguardando Aprovação` |
|
|
1529
|
+
| 4 | Notificar Cliente | Via plataforma Flyee |
|
|
1530
|
+
| 5 | Aguardar | Cliente revisa e marca `Concluído` ou deixa feedback |
|
|
1531
|
+
|
|
1532
|
+
**Fluxo de Status:**
|
|
1533
|
+
```
|
|
1534
|
+
Não iniciado → Em andamento → Aguardando Aprovação → Concluído
|
|
1535
|
+
↑ ↓
|
|
1536
|
+
CLIENTE VALIDA → Dev
|
|
1537
|
+
```
|
|
1538
|
+
|
|
1539
|
+
**Checklists para cada tela:**
|
|
1540
|
+
|
|
1541
|
+
```markdown
|
|
1542
|
+
## Tasks de Prototipação (1 por tela)
|
|
1543
|
+
- [ ] Task #X: Header (Desktop) → Status: Aguardando Aprovação
|
|
1544
|
+
- [ ] Task #Y: Header (Mobile) → Status: Aguardando Aprovação
|
|
1545
|
+
- [ ] Task #Z: Hero Section → Status: Aguardando Aprovação
|
|
1546
|
+
- [ ] Task #W: Footer → Status: Aguardando Aprovação
|
|
1547
|
+
...
|
|
1548
|
+
```
|
|
1549
|
+
|
|
1550
|
+
**Query para verificar aprovações pendentes:**
|
|
1551
|
+
|
|
1552
|
+
```python
|
|
1553
|
+
# Flyee API: listar tasks pendentes de prototipação
|
|
1554
|
+
from bridge import list_tasks, load_config
|
|
1555
|
+
config = load_config()
|
|
1556
|
+
tasks = list_tasks(
|
|
1557
|
+
api_url=config["api_url"],
|
|
1558
|
+
api_key=config["api_key"],
|
|
1559
|
+
project_id=config["project_id"],
|
|
1560
|
+
status="pending",
|
|
1561
|
+
)
|
|
1562
|
+
prototype_tasks = [t for t in tasks if t.get("meta", {}).get("category") == "Prototipação"]
|
|
1563
|
+
pending = [t for t in prototype_tasks if t["status"] != "completed"]
|
|
1564
|
+
```
|
|
1565
|
+
|
|
1566
|
+
**Se houver tasks não concluídas → PARAR e aguardar:**
|
|
1567
|
+
|
|
1568
|
+
```markdown
|
|
1569
|
+
⏳ **AGUARDANDO VALIDAÇÃO DO CLIENTE**
|
|
1570
|
+
|
|
1571
|
+
📋 {N} protótipo(s) pendente(s) de aprovação:
|
|
1572
|
+
|
|
1573
|
+
| ID | Tela | Status |
|
|
1574
|
+
|----|------|--------|
|
|
1575
|
+
| #{id} | {nome} | Aguardando Aprovação |
|
|
1576
|
+
|
|
1577
|
+
👤 **Ação do Cliente:**
|
|
1578
|
+
- 🟢 **Aprovar:** Marcar status como "Concluído"
|
|
1579
|
+
- 🔴 **Recusar:** Marcar status como "Recusado" + comentário com feedback
|
|
1580
|
+
```
|
|
1581
|
+
|
|
1582
|
+
---
|
|
1583
|
+
|
|
1584
|
+
#### Tratamento de Recusa
|
|
1585
|
+
|
|
1586
|
+
> [!IMPORTANT]
|
|
1587
|
+
> **Se Status = "Recusado":** Agente deve analisar comentários e ajustar.
|
|
1588
|
+
|
|
1589
|
+
**Processo de Ajuste:**
|
|
1590
|
+
|
|
1591
|
+
| Passo | Ação |
|
|
1592
|
+
|-------|------|
|
|
1593
|
+
| 1 | Buscar comentários da task recusada |
|
|
1594
|
+
| 2 | Analisar feedback do cliente |
|
|
1595
|
+
| 3 | Ajustar protótipo conforme solicitado |
|
|
1596
|
+
| 4 | Atualizar preview na task |
|
|
1597
|
+
| 5 | Mudar Status → "Aguardando Aprovação" |
|
|
1598
|
+
| 6 | Adicionar comentário notificando cliente |
|
|
1599
|
+
|
|
1600
|
+
**Query para detectar tasks recusadas:**
|
|
1601
|
+
|
|
1602
|
+
```python
|
|
1603
|
+
# Flyee API: buscar tasks recusadas
|
|
1604
|
+
rejected = [t for t in prototype_tasks if t["result_status"] == "rejected"]
|
|
1605
|
+
```
|
|
1606
|
+
|
|
1607
|
+
**Buscar detalhes da task para entender feedback:**
|
|
1608
|
+
|
|
1609
|
+
```python
|
|
1610
|
+
from bridge import get_task
|
|
1611
|
+
task_detail = get_task(
|
|
1612
|
+
api_url=config["api_url"],
|
|
1613
|
+
api_key=config["api_key"],
|
|
1614
|
+
task_id="{task_id}",
|
|
1615
|
+
)
|
|
1616
|
+
feedback = task_detail.get("output", {}).get("feedback", "")
|
|
1617
|
+
```
|
|
1618
|
+
|
|
1619
|
+
**Após ajustar, atualizar task:**
|
|
1620
|
+
|
|
1621
|
+
```python
|
|
1622
|
+
from bridge import update_task
|
|
1623
|
+
update_task(
|
|
1624
|
+
api_url=config["api_url"],
|
|
1625
|
+
api_key=config["api_key"],
|
|
1626
|
+
task_id="{task_id}",
|
|
1627
|
+
status="pending",
|
|
1628
|
+
output={
|
|
1629
|
+
"message": "🔄 Protótipo ajustado conforme feedback",
|
|
1630
|
+
"changes": ["{item 1}", "{item 2}"],
|
|
1631
|
+
"preview_updated": True,
|
|
1632
|
+
},
|
|
1633
|
+
)
|
|
1634
|
+
```
|
|
1635
|
+
|
|
1636
|
+
---
|
|
1637
|
+
|
|
1638
|
+
### Phase 2.8: PAGE SPECIFICATIONS - Blueprint Detalhado
|
|
1639
|
+
|
|
1640
|
+
> [!NOTE]
|
|
1641
|
+
> **Pulado se:** Projeto é apenas API/Backend sem interface.
|
|
1642
|
+
> **Obrigatório para:** Qualquer projeto com UI (Web, Mobile, Dashboard).
|
|
1643
|
+
|
|
1644
|
+
> [!IMPORTANT]
|
|
1645
|
+
> **SKILL:** Seguir `page-specifications` para detalhamento de páginas.
|
|
1646
|
+
> **Documento Principal:** `design-system/{nome}/layout/SHARED-LAYOUT.md`
|
|
1647
|
+
> **Docs por Página:** `design-system/{nome}/pages/PAGE-SPEC-*.md`
|
|
1648
|
+
|
|
1649
|
+
**Objetivo:** Criar blueprint detalhado de CADA página antes do Breakdown.
|
|
1650
|
+
|
|
1651
|
+
**Trigger:**
|
|
1652
|
+
```
|
|
1653
|
+
Content Strategy aprovado → Automático (exceto --no-specs)
|
|
1654
|
+
```
|
|
1655
|
+
|
|
1656
|
+
**Agentes Envolvidos:**
|
|
1657
|
+
- `frontend-specialist` - Layout e componentes
|
|
1658
|
+
- `design-specialist` - Visual specs
|
|
1659
|
+
- `product-owner` - Validação de fluxos
|
|
1660
|
+
|
|
1661
|
+
---
|
|
1662
|
+
|
|
1663
|
+
#### Processo (Skill: page-specifications)
|
|
1664
|
+
|
|
1665
|
+
> [!CAUTION]
|
|
1666
|
+
> **OBRIGATÓRIO:** Seguir TODOS os 5 passos definidos na skill `page-specifications`.
|
|
1667
|
+
> **NÃO** prosseguir sem PAGE-SPECs aprovados pelo usuário.
|
|
1668
|
+
|
|
1669
|
+
| Passo | Ação | Detalhes |
|
|
1670
|
+
|-------|------|----------|
|
|
1671
|
+
| 1 | Identificar Páginas | Listar todas baseado em PRD/TDD/Content |
|
|
1672
|
+
| 2 | Criar SHARED-LAYOUT.md | Header, Footer, Mobile Menu |
|
|
1673
|
+
| 3 | **Perguntar Priorização ⭐** | Quais páginas detalhar agora vs V2 |
|
|
1674
|
+
| 4 | Gerar PAGE-SPECs | Para cada página priorizada |
|
|
1675
|
+
| 5 | Validar e Aprovar | Aguardar aprovação humana |
|
|
1676
|
+
|
|
1677
|
+
---
|
|
1678
|
+
|
|
1679
|
+
#### PASSO 1: Identificar Páginas
|
|
1680
|
+
|
|
1681
|
+
Categorizar por prioridade:
|
|
1682
|
+
|
|
1683
|
+
```markdown
|
|
1684
|
+
## Páginas Identificadas
|
|
1685
|
+
|
|
1686
|
+
### Alta Prioridade (MVP)
|
|
1687
|
+
- [ ] Landing Page (/)
|
|
1688
|
+
- [ ] Pricing (/pricing)
|
|
1689
|
+
- [ ] Start/Wizard (/start)
|
|
1690
|
+
- [ ] Dashboard (/dashboard)
|
|
1691
|
+
|
|
1692
|
+
### Média Prioridade
|
|
1693
|
+
- [ ] How it Works (/how-it-works)
|
|
1694
|
+
- [ ] Workflows Library (/workflows)
|
|
1695
|
+
- [ ] Video Pages (/videos/[slug])
|
|
1696
|
+
|
|
1697
|
+
### Baixa Prioridade (V2)
|
|
1698
|
+
- [ ] Community (/community)
|
|
1699
|
+
- [ ] Blog (/blog)
|
|
1700
|
+
|
|
1701
|
+
### Interna
|
|
1702
|
+
- [ ] Admin (/admin)
|
|
1703
|
+
```
|
|
1704
|
+
|
|
1705
|
+
---
|
|
1706
|
+
|
|
1707
|
+
#### PASSO 2: Criar SHARED-LAYOUT.md
|
|
1708
|
+
|
|
1709
|
+
> [!IMPORTANT]
|
|
1710
|
+
> **CRIAR PRIMEIRO:** Antes de qualquer PAGE-SPEC individual.
|
|
1711
|
+
> Define elementos compartilhados (Header, Footer, Mobile Menu).
|
|
1712
|
+
|
|
1713
|
+
**Output:** `design-system/{nome}/layout/SHARED-LAYOUT.md`
|
|
1714
|
+
|
|
1715
|
+
**Conteúdo mínimo:**
|
|
1716
|
+
- Header (Navbar): Position, elementos, estados
|
|
1717
|
+
- Footer: Links, social, visual
|
|
1718
|
+
- Mobile Menu: Overlay, animação
|
|
1719
|
+
|
|
1720
|
+
---
|
|
1721
|
+
|
|
1722
|
+
#### PASSO 3-4: Gerar PAGE-SPECs
|
|
1723
|
+
|
|
1724
|
+
Para cada página priorizada, criar `PAGE-SPEC-{Página}.md` com:
|
|
1725
|
+
|
|
1726
|
+
| Seção | Conteúdo |
|
|
1727
|
+
|-------|----------|
|
|
1728
|
+
| **Layout & Estrutura** | Sections, referência ao SHARED-LAYOUT |
|
|
1729
|
+
| **Conteúdo por Seção** | Copy, Visual, Estados (loading, empty, error) |
|
|
1730
|
+
| **Responsividade** | Desktop, Tablet, Mobile adaptations |
|
|
1731
|
+
| **Integrações** | Auth, CMS, Analytics, Payments |
|
|
1732
|
+
| **SEO & Performance** | Title, Meta, OG Image, Loading strategy |
|
|
1733
|
+
|
|
1734
|
+
---
|
|
1735
|
+
|
|
1736
|
+
**Gate de Saída:**
|
|
1737
|
+
```
|
|
1738
|
+
[ ] SHARED-LAYOUT.md criado (Header, Footer, Mobile Menu)
|
|
1739
|
+
[ ] Priorização de páginas confirmada com usuário
|
|
1740
|
+
[ ] PAGE-SPEC criado para cada página priorizada
|
|
1741
|
+
[ ] Cada PAGE-SPEC referencia MASTER.md e CONTENT-STRATEGY
|
|
1742
|
+
[ ] Estados (loading, empty, error) documentados
|
|
1743
|
+
[ ] Responsividade descrita para cada página
|
|
1744
|
+
[ ] Todas as PAGE-SPECs aprovadas pelo humano
|
|
1745
|
+
```
|
|
1746
|
+
|
|
1747
|
+
> [!CAUTION]
|
|
1748
|
+
> **BLOQUEADOR:** Não prosseguir para Breakdown sem PAGE-SPECs aprovados.
|
|
1749
|
+
|
|
1750
|
+
---
|
|
1751
|
+
|
|
1752
|
+
### Phase 2.9: ANALYTICS STRATEGY - Tracking & Measurement
|
|
1753
|
+
|
|
1754
|
+
> [!NOTE]
|
|
1755
|
+
> **Pulado se:** Projeto é apenas POC interno sem necessidade de métricas.
|
|
1756
|
+
> **Obrigatório para:** Qualquer produto que precisa medir conversão, engajamento ou retenção.
|
|
1757
|
+
|
|
1758
|
+
> [!IMPORTANT]
|
|
1759
|
+
> **Output:** Seção `## 📊 Analytics` em cada PAGE-SPEC + config no TDD.
|
|
1760
|
+
> **Ferramentas:** PostHog (padrão), Google Search Console, UTM Tracking.
|
|
1761
|
+
|
|
1762
|
+
**Objetivo:** Definir O QUE medir, ONDE medir, e COMO medir antes de implementar.
|
|
1763
|
+
|
|
1764
|
+
**Trigger:**
|
|
1765
|
+
```
|
|
1766
|
+
PAGE-SPECs aprovados → Automático (exceto --no-analytics)
|
|
1767
|
+
```
|
|
1768
|
+
|
|
1769
|
+
**Agentes Envolvidos:**
|
|
1770
|
+
- `frontend-specialist` - Eventos de UI
|
|
1771
|
+
- `product-owner` - Métricas de negócio
|
|
1772
|
+
- `growth-specialist` - Funnels e conversão
|
|
1773
|
+
|
|
1774
|
+
---
|
|
1775
|
+
|
|
1776
|
+
#### Processo (5 Passos)
|
|
1777
|
+
|
|
1778
|
+
| Passo | Ação | Detalhes |
|
|
1779
|
+
|-------|------|----------|
|
|
1780
|
+
| 1 | Definir Stack | PostHog + Search Console + UTMs (padrão) |
|
|
1781
|
+
| 2 | Mapear Eventos por Página | Baseado nas PAGE-SPECs |
|
|
1782
|
+
| 3 | Definir Funnels | Conversão principal + secundários |
|
|
1783
|
+
| 4 | Definir Feature Flags | Para A/B testing |
|
|
1784
|
+
| 5 | Documentar no TDD + PAGE-SPECs | Seção Analytics em cada doc |
|
|
1785
|
+
|
|
1786
|
+
---
|
|
1787
|
+
|
|
1788
|
+
#### PASSO 1: Definir Stack de Analytics
|
|
1789
|
+
|
|
1790
|
+
```markdown
|
|
1791
|
+
## Stack de Analytics
|
|
1792
|
+
|
|
1793
|
+
| Ferramenta | Propósito | Fase |
|
|
1794
|
+
|------------|-----------|------|
|
|
1795
|
+
| **PostHog** | Product Analytics, Session Replay, Feature Flags, Funnels | MVP |
|
|
1796
|
+
| **Google Search Console** | SEO: indexação, keywords, CTR | MVP |
|
|
1797
|
+
| **UTM Tracking** | Atribuição de campanhas (capturado pelo PostHog) | MVP |
|
|
1798
|
+
| **Google Tag Manager** | Gerenciamento centralizado de tags | Growth |
|
|
1799
|
+
| **Meta Pixel** | Facebook/Instagram Ads, Remarketing | Quando anunciar |
|
|
1800
|
+
| **Google Ads Tag** | Google Ads conversions | Quando anunciar |
|
|
1801
|
+
```
|
|
1802
|
+
|
|
1803
|
+
---
|
|
1804
|
+
|
|
1805
|
+
#### PASSO 2: Mapear Eventos por Página
|
|
1806
|
+
|
|
1807
|
+
Para **CADA** PAGE-SPEC, adicionar seção:
|
|
1808
|
+
|
|
1809
|
+
```markdown
|
|
1810
|
+
## 📊 Analytics (PostHog)
|
|
1811
|
+
|
|
1812
|
+
### Eventos Customizados
|
|
1813
|
+
| Evento | Trigger | Properties |
|
|
1814
|
+
|--------|---------|------------|
|
|
1815
|
+
| `page_name_viewed` | Pageview | `referrer`, `utm_*` |
|
|
1816
|
+
| `cta_clicked` | Click CTA | `cta_type`, `section` |
|
|
1817
|
+
| ... | ... | ... |
|
|
1818
|
+
|
|
1819
|
+
### Funis a Medir
|
|
1820
|
+
- Funnel 1: ...
|
|
1821
|
+
- Funnel 2: ...
|
|
1822
|
+
|
|
1823
|
+
### Feature Flags (A/B)
|
|
1824
|
+
- `flag_name`: Descrição do teste
|
|
1825
|
+
```
|
|
1826
|
+
|
|
1827
|
+
---
|
|
1828
|
+
|
|
1829
|
+
#### PASSO 3: Perguntar ao Usuário (OBRIGATÓRIO)
|
|
1830
|
+
|
|
1831
|
+
```markdown
|
|
1832
|
+
## 📊 Estratégia de Analytics
|
|
1833
|
+
|
|
1834
|
+
Para definir o tracking do projeto, preciso saber:
|
|
1835
|
+
|
|
1836
|
+
### 1. Métricas de Sucesso
|
|
1837
|
+
Quais são as **3 principais métricas** que você quer acompanhar?
|
|
1838
|
+
- [ ] Conversão de visitante → signup
|
|
1839
|
+
- [ ] Conversão de free → pago
|
|
1840
|
+
- [ ] Engajamento (tempo na plataforma)
|
|
1841
|
+
- [ ] Retenção (retorno em 7 dias)
|
|
1842
|
+
- [ ] Feature adoption (uso de funcionalidades)
|
|
1843
|
+
- [ ] Outra: ___
|
|
1844
|
+
|
|
1845
|
+
### 2. Paid Acquisition
|
|
1846
|
+
Você planeja fazer **ads pagos** (Meta, Google)?
|
|
1847
|
+
- [ ] Sim, em breve → Configurar pixels
|
|
1848
|
+
- [ ] Não por agora → Pular pixels
|
|
1849
|
+
- [ ] Não sei ainda → Deixar preparado mas não ativar
|
|
1850
|
+
|
|
1851
|
+
### 3. A/B Testing
|
|
1852
|
+
Quais elementos você quer testar?
|
|
1853
|
+
- [ ] CTAs (texto, cor)
|
|
1854
|
+
- [ ] Pricing page (ordem dos planos)
|
|
1855
|
+
- [ ] Onboarding flow
|
|
1856
|
+
- [ ] Nenhum por agora
|
|
1857
|
+
```
|
|
1858
|
+
|
|
1859
|
+
---
|
|
1860
|
+
|
|
1861
|
+
#### PASSO 4: Atualizar TDD
|
|
1862
|
+
|
|
1863
|
+
Adicionar/atualizar seção `## 📈 Analytics & Tracking Strategy` no TDD com:
|
|
1864
|
+
- Stack de ferramentas
|
|
1865
|
+
- Eventos por página
|
|
1866
|
+
- Variáveis de ambiente necessárias
|
|
1867
|
+
|
|
1868
|
+
---
|
|
1869
|
+
|
|
1870
|
+
#### PASSO 5: Atualizar PAGE-SPECs
|
|
1871
|
+
|
|
1872
|
+
Para cada PAGE-SPEC priorizada, adicionar seção `## 📊 Analytics (PostHog)` com:
|
|
1873
|
+
- Eventos customizados
|
|
1874
|
+
- Funis a medir
|
|
1875
|
+
- Feature flags para A/B
|
|
1876
|
+
|
|
1877
|
+
---
|
|
1878
|
+
|
|
1879
|
+
**Gate de Saída:**
|
|
1880
|
+
```
|
|
1881
|
+
[ ] Stack de Analytics definida no TDD
|
|
1882
|
+
[ ] Eventos mapeados para cada PAGE-SPEC
|
|
1883
|
+
[ ] Variáveis de ambiente listadas no TDD
|
|
1884
|
+
[ ] Usuário confirmou métricas de sucesso
|
|
1885
|
+
[ ] PAGE-SPECs atualizadas com seção Analytics
|
|
1886
|
+
```
|
|
1887
|
+
|
|
1888
|
+
> [!CAUTION]
|
|
1889
|
+
> **BLOQUEADOR:** Não prosseguir para Breakdown sem Analytics Strategy definida.
|
|
1890
|
+
|
|
1891
|
+
---
|
|
1892
|
+
|
|
1893
|
+
**Objetivo:** Quebrar TDD **E PAGE-SPECs** em tarefas de **implementação** executáveis.
|
|
1894
|
+
|
|
1895
|
+
> [!NOTE]
|
|
1896
|
+
> **Tasks de planejamento** (Design System, Content, Stitch, Page Specs, Analytics)
|
|
1897
|
+
> já foram criadas na Phase 2.1. Esta fase cria tasks de **implementação** granulares.
|
|
1898
|
+
|
|
1899
|
+
**Trigger:**
|
|
1900
|
+
```
|
|
1901
|
+
TDD aprovado → Automático
|
|
1902
|
+
```
|
|
1903
|
+
|
|
1904
|
+
**Agentes Envolvidos:**
|
|
1905
|
+
- `project-planner` - Quebra em tarefas
|
|
1906
|
+
|
|
1907
|
+
> [!IMPORTANT]
|
|
1908
|
+
> **GATE PRÉ-BREAKDOWN: DETECÇÃO DE TRACKER**
|
|
1909
|
+
>
|
|
1910
|
+
> O tracker é determinado automaticamente:
|
|
1911
|
+
> - Se `flyee.json` → `enabled: true` → **Tracker = Flyee**
|
|
1912
|
+
> - Se `enabled: false` → **Tracker = Local (`docs/TASKS.md`)**
|
|
1913
|
+
>
|
|
1914
|
+
> **NÃO perguntar ao usuário.** A decisão foi tomada no FLYEE BRIDGE CHECK.
|
|
1915
|
+
|
|
1916
|
+
> [!CAUTION]
|
|
1917
|
+
> **REGRAS POR MODO DE TRACKING:**
|
|
1918
|
+
>
|
|
1919
|
+
> **Se Modo = Flyee:**
|
|
1920
|
+
> - Criar tasks via `bridge.py create_task()` ou `POST /flyee/projects/{id}/tasks`
|
|
1921
|
+
> - Cada task inclui: `type`, `input.name`, `input.description`, `meta` (phase, category)
|
|
1922
|
+
> - Salvar `task_id` retornado para updates futuros
|
|
1923
|
+
>
|
|
1924
|
+
> **Se Modo = Local (`docs/TASKS.md`):**
|
|
1925
|
+
> - Criar/editar o arquivo `docs/TASKS.md`
|
|
1926
|
+
> - Agrupar tasks por Épico ou Página, usando Markdown com checkboxes (`- [ ]`)
|
|
1927
|
+
> - Exemplo: `## Landing Page\n- [ ] Criar Hero com Video BG`
|
|
1928
|
+
|
|
1929
|
+
**Ações:**
|
|
1930
|
+
1. Detectar Tracker automaticamente (Flyee ou Local).
|
|
1931
|
+
2. Executar `/tdd breakdown docs/design/TDD-{nome}.md`
|
|
1932
|
+
3. Gerar planejamento de tasks em memória.
|
|
1933
|
+
4. **Verificar Cobertura PAGE-SPEC (OBRIGATÓRIO):**
|
|
1934
|
+
- Listar todos `design-system/{projeto}/pages/PAGE-SPEC-*.md`
|
|
1935
|
+
- Para CADA PAGE-SPEC, garantir pelo menos 1 task correspondente
|
|
1936
|
+
5. Executar a gravação das tasks baseada no Tracker:
|
|
1937
|
+
- **Caso Flyee**: chamar `bridge.py create_task()` para cada task, salvando IDs retornados.
|
|
1938
|
+
- **Caso Local**: usar `write_to_file` ou `multi_replace_file_content` para popular `docs/TASKS.md`.
|
|
1939
|
+
6. Verificar gate de saída.
|
|
1940
|
+
|
|
1941
|
+
**Gate de Saída (OBRIGATÓRIO):**
|
|
1942
|
+
```
|
|
1943
|
+
[ ] Tracker detectado (Flyee ou Local)
|
|
1944
|
+
[ ] Se Flyee: Todas tasks criadas via API com IDs salvos
|
|
1945
|
+
[ ] Se Local: Arquivo docs/TASKS.md gerado com checkboxes
|
|
1946
|
+
[ ] **CADA PAGE-SPEC tem pelo menos 1 task correspondente** ⭐
|
|
1947
|
+
```
|
|
1948
|
+
|
|
1949
|
+
**Output:**
|
|
1950
|
+
```
|
|
1951
|
+
Tasks criadas ({Tracker}):
|
|
1952
|
+
- [x] Task 1: Setup Infraestrutura → (Registrada)
|
|
1953
|
+
- [x] Task 2: Entidades principais → (Registrada)
|
|
1954
|
+
...
|
|
1955
|
+
```
|
|
1956
|
+
|
|
1957
|
+
|
|
1958
|
+
---
|
|
1959
|
+
|
|
1960
|
+
### Phase 3.5: SETUP BASE - Infraestrutura
|
|
1961
|
+
|
|
1962
|
+
> [!CAUTION]
|
|
1963
|
+
> **REGRA BLOQUEANTE:** NÃO iniciar Phase 4 (TDD) sem infraestrutura configurada.
|
|
1964
|
+
> Não é possível escrever testes sem projeto inicializado.
|
|
1965
|
+
|
|
1966
|
+
**Objetivo:** Preparar infraestrutura base antes de escrever testes.
|
|
1967
|
+
|
|
1968
|
+
**Trigger:**
|
|
1969
|
+
```
|
|
1970
|
+
Breakdown concluído → Automático
|
|
1971
|
+
```
|
|
1972
|
+
|
|
1973
|
+
**Agentes Envolvidos:**
|
|
1974
|
+
- `devops-engineer` - Setup inicial
|
|
1975
|
+
- `app-builder` - Inicialização do projeto
|
|
1976
|
+
|
|
1977
|
+
**Ações para Projeto NOVO (sem código):**
|
|
1978
|
+
|
|
1979
|
+
1. **Inicializar Projeto:**
|
|
1980
|
+
```bash
|
|
1981
|
+
# Web (Next.js)
|
|
1982
|
+
npx -y create-next-app@latest ./ --typescript --tailwind --app --src-dir --import-alias "@/*"
|
|
1983
|
+
|
|
1984
|
+
# Mobile (React Native)
|
|
1985
|
+
npx react-native init {NomeProjeto} --template react-native-template-typescript
|
|
1986
|
+
```
|
|
1987
|
+
|
|
1988
|
+
2. **Configurar Test Runner:**
|
|
1989
|
+
```bash
|
|
1990
|
+
# Next.js / React
|
|
1991
|
+
npm install -D vitest @testing-library/react @testing-library/dom jsdom @vitejs/plugin-react
|
|
1992
|
+
```
|
|
1993
|
+
|
|
1994
|
+
3. **Criar Estrutura Base:**
|
|
1995
|
+
```
|
|
1996
|
+
src/
|
|
1997
|
+
├── app/ # Rotas (Next.js)
|
|
1998
|
+
├── components/ # Componentes UI
|
|
1999
|
+
├── lib/ # Lógica de negócio
|
|
2000
|
+
├── tests/ # Testes
|
|
2001
|
+
└── types/ # TypeScript types
|
|
2002
|
+
```
|
|
2003
|
+
|
|
2004
|
+
4. **Configurar vitest.config.ts:**
|
|
2005
|
+
```typescript
|
|
2006
|
+
import { defineConfig } from 'vitest/config';
|
|
2007
|
+
import react from '@vitejs/plugin-react';
|
|
2008
|
+
|
|
2009
|
+
export default defineConfig({
|
|
2010
|
+
plugins: [react()],
|
|
2011
|
+
test: {
|
|
2012
|
+
environment: 'jsdom',
|
|
2013
|
+
globals: true,
|
|
2014
|
+
},
|
|
2015
|
+
});
|
|
2016
|
+
```
|
|
2017
|
+
|
|
2018
|
+
5. **Verificar Setup:**
|
|
2019
|
+
```bash
|
|
2020
|
+
npm test -- --run # Deve rodar sem erros (0 tests ok)
|
|
2021
|
+
```
|
|
2022
|
+
|
|
2023
|
+
6. **🔴 Configurar Separação de Ambientes (OBRIGATÓRIO):**
|
|
2024
|
+
|
|
2025
|
+
> [!CAUTION]
|
|
2026
|
+
> **REGRA BLOQUEANTE:** NÃO prosseguir sem ambientes separados.
|
|
2027
|
+
> `.env.local` NUNCA deve conter credenciais de produção.
|
|
2028
|
+
>
|
|
2029
|
+
> **FALHA QUE GEROU ESTA REGRA:** Projeto Flyee desenvolvido por 10 sprints
|
|
2030
|
+
> com `.env.local` apontando para Supabase production. Risco de corrupção de dados reais.
|
|
2031
|
+
|
|
2032
|
+
**6.1 Criar projetos separados para cada serviço externo:**
|
|
2033
|
+
|
|
2034
|
+
| Serviço | Ambiente Dev | Ambiente Prod |
|
|
2035
|
+
|---------|-------------|---------------|
|
|
2036
|
+
| Supabase | `{nome}-dev` (novo projeto) | `{nome}` (existente) |
|
|
2037
|
+
| Stripe | `sk_test_` / `pk_test_` | `sk_live_` / `pk_live_` |
|
|
2038
|
+
| PostHog | Mesmo projeto, flag `DEV` | Mesmo projeto |
|
|
2039
|
+
| Sanity | `development` dataset | `production` dataset |
|
|
2040
|
+
| Resend | Mesmo (test mode) | Mesmo (prod mode) |
|
|
2041
|
+
|
|
2042
|
+
**6.2 Criar arquivos `.env`:**
|
|
2043
|
+
|
|
2044
|
+
```bash
|
|
2045
|
+
# .env.example — Template com placeholders (commitado no git)
|
|
2046
|
+
# .env.local — Credenciais DEV (gitignored)
|
|
2047
|
+
# .env.production — Credenciais PROD (definidas na plataforma de deploy, NÃO no repo)
|
|
2048
|
+
```
|
|
2049
|
+
|
|
2050
|
+
**6.3 Validar que `.env.local` NÃO contém credenciais de produção:**
|
|
2051
|
+
|
|
2052
|
+
```markdown
|
|
2053
|
+
⚠️ ENVIRONMENT VALIDATION GATE
|
|
2054
|
+
|
|
2055
|
+
[ ] `.env.example` existe com placeholders genéricos
|
|
2056
|
+
[ ] `.env.local` existe com credenciais de DEVELOPMENT
|
|
2057
|
+
[ ] `.env.local` NÃO aponta para projetos de produção
|
|
2058
|
+
[ ] `.gitignore` inclui `.env.local` e `.env.production`
|
|
2059
|
+
[ ] Variáveis de produção serão configuradas APENAS na plataforma de deploy (Vercel)
|
|
2060
|
+
|
|
2061
|
+
❌ Se `.env.local` tiver URLs/keys de produção → PARAR e corrigir
|
|
2062
|
+
✅ Todos OK → Prosseguir
|
|
2063
|
+
```
|
|
2064
|
+
|
|
2065
|
+
**6.4 Perguntar ao usuário (se projetos dev não existem):**
|
|
2066
|
+
|
|
2067
|
+
```markdown
|
|
2068
|
+
## 🔐 Separação de Ambientes
|
|
2069
|
+
|
|
2070
|
+
Para garantir segurança, preciso de credenciais de **DESENVOLVIMENTO** (não produção).
|
|
2071
|
+
|
|
2072
|
+
| Serviço | Ação Necessária |
|
|
2073
|
+
|---------|----------------|
|
|
2074
|
+
| **Supabase** | Criar projeto `{nome}-dev` no dashboard Supabase |
|
|
2075
|
+
| **Stripe** | Usar chaves `test` (já disponíveis no dashboard) |
|
|
2076
|
+
| **Sanity** | Criar dataset `development` (Settings → Datasets) |
|
|
2077
|
+
|
|
2078
|
+
Quando tiver as credenciais dev, me informe para configurar o `.env.local`.
|
|
2079
|
+
```
|
|
2080
|
+
|
|
2081
|
+
**Ações para Projeto EXISTENTE (já tem código):**
|
|
2082
|
+
|
|
2083
|
+
1. Verificar se test runner existe
|
|
2084
|
+
2. Se não existir, instalar (passo 2 acima)
|
|
2085
|
+
3. Verificar estrutura de pastas
|
|
2086
|
+
4. **🔴 Verificar separação de ambientes (passo 6 acima)**
|
|
2087
|
+
5. Prosseguir para Phase 4
|
|
2088
|
+
|
|
2089
|
+
#### 🚨 SYNC DE SETUP (OBRIGATÓRIO)
|
|
2090
|
+
|
|
2091
|
+
> [!CAUTION]
|
|
2092
|
+
> **REGRA DE OURO:** O agente **não pode** concluir esta fase sem sincronizar cada task técnica no Tracker (Status=completed).
|
|
2093
|
+
>
|
|
2094
|
+
> **Protocolo:**
|
|
2095
|
+
> 1. Buscar ID da task (ex: #1, #2, #3, #4)
|
|
2096
|
+
> 2. Atualizar Tracker (Status=completed)
|
|
2097
|
+
> 3. Adicionar comentário e atualizar arquivos locais
|
|
2098
|
+
|
|
2099
|
+
**Gate de Saída:**
|
|
2100
|
+
```
|
|
2101
|
+
[ ] Projeto inicializado (package.json existe)
|
|
2102
|
+
[ ] Test runner configurado (vitest/jest)
|
|
2103
|
+
[ ] Estrutura de pastas criada
|
|
2104
|
+
[ ] npm test roda sem erros
|
|
2105
|
+
[ ] **Ambientes separados (dev ≠ prod)** ⭐
|
|
2106
|
+
[ ] **`.env.local` com credenciais de DEVELOPMENT apenas** ⭐
|
|
2107
|
+
[ ] **`.env.example` com placeholders genéricos** ⭐
|
|
2108
|
+
```
|
|
2109
|
+
|
|
2110
|
+
> [!TIP]
|
|
2111
|
+
> Se projeto já existe e tem tests configurados, esta fase é automática (verificação apenas).
|
|
2112
|
+
|
|
2113
|
+
---
|
|
2114
|
+
|
|
2115
|
+
### Phase 4: TDD METODOLOGIA - Testes Primeiro
|
|
2116
|
+
|
|
2117
|
+
**Objetivo:** Escrever testes ANTES do código.
|
|
2118
|
+
|
|
2119
|
+
**Trigger:**
|
|
2120
|
+
```
|
|
2121
|
+
Breakdown concluído → Automático
|
|
2122
|
+
```
|
|
2123
|
+
|
|
2124
|
+
**Skill de Referência:** `tdd-workflow`
|
|
2125
|
+
|
|
2126
|
+
> [!IMPORTANT]
|
|
2127
|
+
> **Para componentes com UI:** Seguir skill `design-system-enforcement` durante GREEN.
|
|
2128
|
+
> Componentes devem usar MASTER.md desde a criação, não apenas na fase de styling.
|
|
2129
|
+
|
|
2130
|
+
> [!CAUTION]
|
|
2131
|
+
> **REGRA DE STYLING INLINE (OBRIGATÓRIO):**
|
|
2132
|
+
> Todo componente UI criado na fase GREEN **DEVE já sair com o styling premium final**
|
|
2133
|
+
> (glassmorphism, gradientes, glows, backdrop-blur, micro-animações) conforme MASTER.md.
|
|
2134
|
+
> **NÃO é aceitável** criar um "esqueleto funcional" para estilizar depois.
|
|
2135
|
+
> Phase 5.3 é apenas para **validação e ajustes finos**, não para aplicar estilo do zero.
|
|
2136
|
+
>
|
|
2137
|
+
> **FALHA QUE GEROU ESTA REGRA:** Pricing Page foi criada com estilos básicos (cores
|
|
2138
|
+
> sólidas, sem glassmorphism, sem animações) durante TDD GREEN. Resultado: retrabalho
|
|
2139
|
+
> completo de 5 arquivos CSS na Phase 5.3 para atingir o nível premium da Landing Page.
|
|
2140
|
+
|
|
2141
|
+
**Agentes Envolvidos:**
|
|
2142
|
+
- `test-engineer` - Geração de testes
|
|
2143
|
+
- Especialistas de domínio conforme task
|
|
2144
|
+
|
|
2145
|
+
**Ciclo para CADA Task:**
|
|
2146
|
+
|
|
2147
|
+
| Fase | Ação | Verificação |
|
|
2148
|
+
|------|------|-------------|
|
|
2149
|
+
| 🔴 RED | `/test [task]` - Escrever teste que falha | Teste falha corretamente |
|
|
2150
|
+
| 📖 SPEC | **Ler specs de UI** (ver gate abaixo) | Checklist preenchido |
|
|
2151
|
+
| 🟢 GREEN | Implementar código **com styling premium final** (Design System + efeitos visuais) | Teste passa + visual premium |
|
|
2152
|
+
| 🔵 REFACTOR | Melhorar código | Testes continuam passando |
|
|
2153
|
+
|
|
2154
|
+
#### 🚨 UI SPEC READING GATE (OBRIGATÓRIO para tasks com UI)
|
|
2155
|
+
|
|
2156
|
+
> [!CAUTION]
|
|
2157
|
+
> **REGRA BLOQUEANTE:** Antes de escrever código UI (GREEN phase), o agente DEVE ler
|
|
2158
|
+
> TODAS as specs aplicáveis. NÃO implementar com base em inferência ou memória.
|
|
2159
|
+
>
|
|
2160
|
+
> **FALHA QUE GEROU ESTA REGRA:** Landing Page desenvolvida sem consultar SHARED-LAYOUT.md.
|
|
2161
|
+
> Header implementado sem scroll shadow, search, github, language, theme e login icons.
|
|
2162
|
+
> Footer implementado com 3 colunas em vez de 4.
|
|
2163
|
+
> Mobile menu implementado como dropdown inline em vez de slide-in sheet.
|
|
2164
|
+
> Resultado: retrabalho completo de Header e Footer.
|
|
2165
|
+
|
|
2166
|
+
**Checklist OBRIGATÓRIO antes do GREEN (se task envolve UI):**
|
|
2167
|
+
|
|
2168
|
+
```markdown
|
|
2169
|
+
⚠️ UI SPEC READING GATE — Task: {título}
|
|
2170
|
+
|
|
2171
|
+
[ ] MASTER.md lido — seção Cores (tokens CSS)
|
|
2172
|
+
[ ] MASTER.md lido — seção Tipografia
|
|
2173
|
+
[ ] MASTER.md lido — seção Efeitos Visuais (glassmorphism, shadows, micro-animations) ⭐
|
|
2174
|
+
[ ] MASTER.md lido — seção Componentes (se criando button, input, card, etc.)
|
|
2175
|
+
[ ] SHARED-LAYOUT.md lido (se componente é Header, Footer, Mobile Menu, ou layout compartilhado)
|
|
2176
|
+
[ ] PAGE-SPEC-{página}.md lido (se implementando seção de uma página específica)
|
|
2177
|
+
[ ] Elementos obrigatórios identificados (lista extraída do spec)
|
|
2178
|
+
[ ] Responsividade/breakpoints anotados
|
|
2179
|
+
|
|
2180
|
+
❌ Se QUALQUER item aplicável desmarcado → NÃO IMPLEMENTAR
|
|
2181
|
+
✅ TODOS marcados → Prosseguir com GREEN
|
|
2182
|
+
```
|
|
2183
|
+
|
|
2184
|
+
> [!CAUTION]
|
|
2185
|
+
> **FALHA QUE GEROU ESTA EXPANSÃO (v2):** Dashboard UI foi criado com cores sólidas
|
|
2186
|
+
> (`var(--color-bg-secondary)`) sem aplicar glassmorphism (`backdrop-filter: blur(16px)`,
|
|
2187
|
+
> `var(--color-overlay-*)`) definido na seção "Efeitos Visuais" do MASTER.md.
|
|
2188
|
+
> O agente leu MASTER.md mas focou apenas nos tokens (cores, tipografia), ignorando
|
|
2189
|
+
> a seção de efeitos visuais. Resultado: dashboard visualmente plano, sem a estética
|
|
2190
|
+
> premium "Technical Glassmorphism" das referências SphereUI.
|
|
2191
|
+
>
|
|
2192
|
+
> **FIX:** O checklist agora lista CADA seção do MASTER.md separadamente,
|
|
2193
|
+
> com destaque ⭐ para Efeitos Visuais que é o mais esquecido.
|
|
2194
|
+
|
|
2195
|
+
#### 🖼️ REFERENCE ANALYSIS GATE (Se referências visuais existem)
|
|
2196
|
+
|
|
2197
|
+
> [!CAUTION]
|
|
2198
|
+
> **FALHA QUE GEROU ESTA REGRA (v3):** Dashboard Sidebar e TopBar foram implementados
|
|
2199
|
+
> como "floating pills" com `border-radius: 32px` descolados das bordas da viewport,
|
|
2200
|
+
> quando as referências SphereUI (`sphereui_13.jpg`, `sphereui_15.jpg`) mostravam
|
|
2201
|
+
> claramente componentes **edge-to-edge** (sidebar colada à borda esquerda, topbar como
|
|
2202
|
+
> faixa horizontal contínua no topo do conteúdo).
|
|
2203
|
+
> O agente "olhou" as referências mas não fez análise estrutural — inferiu layout
|
|
2204
|
+
> "premium" baseado em suposições genéricas em vez de observar a anatomia real.
|
|
2205
|
+
>
|
|
2206
|
+
> **FIX:** Antes de implementar qualquer componente de layout, o agente DEVE produzir
|
|
2207
|
+
> uma análise textual da anatomia espacial vista nas referências.
|
|
2208
|
+
|
|
2209
|
+
**ANTES de escrever CSS para layout (sidebar, topbar, shell, drawer), produzir:**
|
|
2210
|
+
|
|
2211
|
+
```markdown
|
|
2212
|
+
## 📐 Análise Espacial — {Componente} (ref: {arquivo_referencia})
|
|
2213
|
+
|
|
2214
|
+
### O que eu VEJO na referência:
|
|
2215
|
+
- Sidebar: [edge-to-edge left/top/bottom | floating pill com gap]
|
|
2216
|
+
- Sidebar border-radius: [0 nas bordas da viewport | radius interno apenas | radius em todos os lados]
|
|
2217
|
+
- TopBar: [faixa contínua acima do conteúdo, NÃO sobrepõe sidebar | full-width sobre tudo | pill flutuante]
|
|
2218
|
+
- Toggle collapse: [no header da sidebar | no topbar | botão inline]
|
|
2219
|
+
- Padding externo (gap entre sidebar/topbar e viewport): [0px — colado | Npx — descolado]
|
|
2220
|
+
|
|
2221
|
+
### Implementação proposta:
|
|
2222
|
+
- sidebar { width: Xpx; height: 100vh; border-radius: 0; position: sticky }
|
|
2223
|
+
- topbar { height: Xpx; border-radius: 0; width: 100% do main }
|
|
2224
|
+
|
|
2225
|
+
❌ NÃO INFERIR. Descrever APENAS o que está VISÍVEL na imagem.
|
|
2226
|
+
```
|
|
2227
|
+
|
|
2228
|
+
**Se NÃO houver referência visual:** Usar PAGE-SPEC-{página}.md → Spatial Anatomy table.
|
|
2229
|
+
|
|
2230
|
+
**Mapeamento de Specs por Componente:**
|
|
2231
|
+
|
|
2232
|
+
| Componente | Specs Obrigatórias |
|
|
2233
|
+
|------------|-------------------|
|
|
2234
|
+
| Header / Navbar | `SHARED-LAYOUT.md` §1 |
|
|
2235
|
+
| Footer | `SHARED-LAYOUT.md` §2 |
|
|
2236
|
+
| Mobile Menu | `SHARED-LAYOUT.md` §3 |
|
|
2237
|
+
| Dashboard Layout | `SHARED-LAYOUT.md` §4 + `PAGE-SPEC-Dashboard.md` |
|
|
2238
|
+
| Dashboard Sections (KPIs, Cards) | `PAGE-SPEC-Dashboard.md` + `MASTER.md` §Efeitos Visuais |
|
|
2239
|
+
| Seções de LP | `PAGE-SPEC-Landing.md` + `SHARED-LAYOUT.md` §1-§2 |
|
|
2240
|
+
| Seções de Pricing | `PAGE-SPEC-Pricing.md` |
|
|
2241
|
+
| Componentes UI (Button, Input) | `MASTER.md` apenas |
|
|
2242
|
+
| Docs Search | `SHARED-LAYOUT.md` §1.1 |
|
|
2243
|
+
|
|
2244
|
+
**Ações:**
|
|
2245
|
+
1. Para cada task do breakdown:
|
|
2246
|
+
- Gerar testes baseados nos critérios de aceite
|
|
2247
|
+
- Verificar que testes falham (RED)
|
|
2248
|
+
- **Se tem UI:** Passar pelo UI Spec Reading Gate (📖 SPEC)
|
|
2249
|
+
- Implementar código mínimo (GREEN)
|
|
2250
|
+
- **Se tem UI:** Usar variáveis CSS do MASTER.md (skill: `design-system-enforcement`)
|
|
2251
|
+
- Refatorar mantendo verde (REFACTOR)
|
|
2252
|
+
2. **Concluir task no Tracker** (OBRIGATÓRIO - ver abaixo)
|
|
2253
|
+
|
|
2254
|
+
#### 🚫 ANTI-MOCK TEST GATE (OBRIGATÓRIO — Phase 4) 🔴
|
|
2255
|
+
|
|
2256
|
+
> [!CAUTION]
|
|
2257
|
+
> **REGRA BLOQUEANTE:** Testes que testam MOCK DATA de pages/routes de produção são
|
|
2258
|
+
> INVÁLIDOS. Um teste que passa com `const mockProject = {...}` hardcoded na page.
|
|
2259
|
+
> NÃO garante que a page funciona com dados reais do Supabase.
|
|
2260
|
+
>
|
|
2261
|
+
> **FALHA QUE GEROU ESTA REGRA:** Projeto Flyee criou 140+ testes em ~2h.
|
|
2262
|
+
> TODOS passavam porque testavam renderização de props mock, não integração.
|
|
2263
|
+
> Resultado: 7 páginas com mock data marcadas como "implementadas".
|
|
2264
|
+
|
|
2265
|
+
**Regras para testes válidos:**
|
|
2266
|
+
|
|
2267
|
+
| Tipo de Teste | O que DEVE validar | O que NÃO é válido |
|
|
2268
|
+
|--------------|-------------------|--------------------|
|
|
2269
|
+
| **Page (server component)** | Query Supabase retorna dados → renderiza | Props mock passadas manualmente |
|
|
2270
|
+
| **API route** | Request → INSERT/UPDATE no DB → Response real | `return NextResponse.json(mockData)` |
|
|
2271
|
+
| **Client component** | onClick → chama função → efeito colateral | `onSubmit={() => {}}` como handler |
|
|
2272
|
+
| **Form** | Submit → API call → feedback ao user | Form que renderiza mas não envia |
|
|
2273
|
+
|
|
2274
|
+
**Na Phase GREEN (implementação):**
|
|
2275
|
+
|
|
2276
|
+
```markdown
|
|
2277
|
+
⚠️ ANTI-MOCK TEST CHECK — Task: {título}
|
|
2278
|
+
|
|
2279
|
+
[ ] Page/route queries banco de dados REAL (não hardcoded)?
|
|
2280
|
+
[ ] API route persiste dados (INSERT/UPDATE), não retorna mock?
|
|
2281
|
+
[ ] Handlers de click/submit executam ação REAL, não noop?
|
|
2282
|
+
[ ] Teste valida COMPORTAMENTO end-to-end, não apenas renderização?
|
|
2283
|
+
|
|
2284
|
+
❌ Se mock detectado em produção → Reescrever para usar dados reais
|
|
2285
|
+
✅ Todos OK → GREEN válido
|
|
2286
|
+
```
|
|
2287
|
+
|
|
2288
|
+
> [!CAUTION]
|
|
2289
|
+
> **GATE DE CONCLUSÃO DE TASK (OBRIGATÓRIO):**
|
|
2290
|
+
> Após cada task aprovada (testes passando), seguir **FLYEE SYNC FLOW** (ver seção abaixo).
|
|
2291
|
+
> **Não prosseguir** para próxima task sem completar sync.
|
|
2292
|
+
|
|
2293
|
+
---
|
|
2294
|
+
|
|
2295
|
+
#### 🚨 SYNC OBRIGATÓRIO - EXECUTAR APÓS CADA TASK CONCLUÍDA ⭐
|
|
2296
|
+
|
|
2297
|
+
> [!CAUTION]
|
|
2298
|
+
> **HARD BLOCKER:** O agente NÃO PODE prosseguir para próxima task sem executar TODAS as chamadas abaixo.
|
|
2299
|
+
> Se pular este sync, o workflow está QUEBRADO e perde transparência com cliente.
|
|
2300
|
+
|
|
2301
|
+
**PASSO 1 - Buscar task_id (se não tiver):**
|
|
2302
|
+
|
|
2303
|
+
```python
|
|
2304
|
+
# Flyee API: listar tasks do projeto
|
|
2305
|
+
from bridge import list_tasks, load_config
|
|
2306
|
+
config = load_config()
|
|
2307
|
+
tasks = list_tasks(
|
|
2308
|
+
api_url=config["api_url"],
|
|
2309
|
+
api_key=config["api_key"],
|
|
2310
|
+
project_id=config["project_id"],
|
|
2311
|
+
)
|
|
2312
|
+
# Encontrar task pelo nome
|
|
2313
|
+
task = next(t for t in tasks if t["input"]["name"] == "{task_name}")
|
|
2314
|
+
task_id = task["id"]
|
|
2315
|
+
```
|
|
2316
|
+
|
|
2317
|
+
**PASSO 2 - Atualizar status da task (OBRIGATÓRIO):**
|
|
2318
|
+
|
|
2319
|
+
```python
|
|
2320
|
+
from bridge import update_task
|
|
2321
|
+
update_task(
|
|
2322
|
+
api_url=config["api_url"],
|
|
2323
|
+
api_key=config["api_key"],
|
|
2324
|
+
task_id=task_id,
|
|
2325
|
+
status="completed",
|
|
2326
|
+
result_status="success",
|
|
2327
|
+
output={
|
|
2328
|
+
"summary": "{descrição do que foi feito}",
|
|
2329
|
+
"tests": "{resultado dos testes}",
|
|
2330
|
+
"files": ["{arquivo1}", "{arquivo2}"],
|
|
2331
|
+
},
|
|
2332
|
+
metrics={"time_spent": "{Xh Ym}"},
|
|
2333
|
+
)
|
|
2334
|
+
```
|
|
2335
|
+
|
|
2336
|
+
Ou via CLI:
|
|
2337
|
+
```bash
|
|
2338
|
+
python .agent/flyee-bridge/bridge.py --update-task {task_id} \
|
|
2339
|
+
--status completed \
|
|
2340
|
+
--result-status success
|
|
2341
|
+
```
|
|
2342
|
+
|
|
2343
|
+
**PASSO 3 - Atualizar arquivos locais:**
|
|
2344
|
+
|
|
2345
|
+
1. `task.md` → Marcar `[x]` para esta task
|
|
2346
|
+
2. `PROJECT-PROGRESS.md` → Adicionar entrada no histórico
|
|
2347
|
+
|
|
2348
|
+
---
|
|
2349
|
+
|
|
2350
|
+
> [!WARNING]
|
|
2351
|
+
> **VERIFICAÇÃO DE ENFORCEMENT:**
|
|
2352
|
+
> Antes de iniciar próxima task, o agente DEVE confirmar:
|
|
2353
|
+
> - "Sync executado para Task #X: ✅"
|
|
2354
|
+
>
|
|
2355
|
+
> Se não conseguir confirmar, PARAR e executar sync primeiro.
|
|
2356
|
+
|
|
2357
|
+
---
|
|
2358
|
+
|
|
2359
|
+
**Gate de Saída (por task):**
|
|
2360
|
+
```
|
|
2361
|
+
[ ] PASSO 1: task_id obtido
|
|
2362
|
+
[ ] PASSO 2: update_task() executado (status=completed, output, metrics)
|
|
2363
|
+
[ ] PASSO 3: task.md e PROJECT-PROGRESS.md atualizados
|
|
2364
|
+
[ ] CONFIRMAÇÃO: "Sync executado para Task #X: ✅"
|
|
2365
|
+
```
|
|
2366
|
+
|
|
2367
|
+
---
|
|
2368
|
+
|
|
2369
|
+
### Phase 5: IMPLEMENTAÇÃO - Código
|
|
2370
|
+
|
|
2371
|
+
**Objetivo:** Implementar todas as features COM UI estilizada.
|
|
2372
|
+
|
|
2373
|
+
**Trigger:**
|
|
2374
|
+
```
|
|
2375
|
+
Testes escritos → Automático
|
|
2376
|
+
```
|
|
2377
|
+
|
|
2378
|
+
> [!CAUTION]
|
|
2379
|
+
> **PRE-IMPLEMENTATION GATE OBRIGATÓRIO POR TASK:** ANTES de implementar qualquer task, execute:
|
|
2380
|
+
> - **Gate 1 (Context Gathering):** Ler task Flyee + TDD + `docs/flows/` (skill `context-gathering-patterns`)
|
|
2381
|
+
> - **Gate 1.5 (Resource Discovery):** Consultar `project-resources.json` e Flyee Collections via `bridge.py`
|
|
2382
|
+
> - **Gate 2 (History Check):** Buscar bugs/features anteriores (skill `history-check-patterns`)
|
|
2383
|
+
> - **Gate 3 (Flyee Sync):** Criar/atualizar task via `bridge.py`
|
|
2384
|
+
> Persistir checklist em `PROJECT-PROGRESS.md`.
|
|
2385
|
+
|
|
2386
|
+
> [!IMPORTANT]
|
|
2387
|
+
> **Phase 5 tem 3 SUB-FASES OBRIGATÓRIAS:**
|
|
2388
|
+
> 1. Backend/Lógica
|
|
2389
|
+
> 2. UI Components (estrutura)
|
|
2390
|
+
> 3. UI Styling (Design System)
|
|
2391
|
+
|
|
2392
|
+
---
|
|
2393
|
+
|
|
2394
|
+
#### Phase 5.1: BACKEND E LÓGICA
|
|
2395
|
+
|
|
2396
|
+
**Agentes Envolvidos:**
|
|
2397
|
+
- `app-builder` - Orquestração
|
|
2398
|
+
- `database-architect` - Schema
|
|
2399
|
+
- `backend-specialist` - API
|
|
2400
|
+
|
|
2401
|
+
**Ações:**
|
|
2402
|
+
1. Implementar lib modules (auth, db, api, etc.)
|
|
2403
|
+
2. Criar endpoints/rotas de API
|
|
2404
|
+
3. Rodar testes a cada mudança
|
|
2405
|
+
4. Atualizar progresso no `PROJECT-PROGRESS.md`
|
|
2406
|
+
|
|
2407
|
+
**Gate de Saída:**
|
|
2408
|
+
```
|
|
2409
|
+
[ ] Todos os lib modules implementados
|
|
2410
|
+
[ ] Testes do backend passando
|
|
2411
|
+
```
|
|
2412
|
+
|
|
2413
|
+
---
|
|
2414
|
+
|
|
2415
|
+
#### Phase 5.2: UI COMPONENTS (Estrutura + Styling Premium)
|
|
2416
|
+
|
|
2417
|
+
> [!CAUTION]
|
|
2418
|
+
> **STYLING INLINE OBRIGATÓRIO:** Componentes DEVEM ser criados já com o styling
|
|
2419
|
+
> premium final (glassmorphism, gradientes, glows, backdrop-blur, micro-animações).
|
|
2420
|
+
> **NÃO** criar estrutura primeiro para estilizar depois — isso gera retrabalho.
|
|
2421
|
+
|
|
2422
|
+
**Agentes Envolvidos:**
|
|
2423
|
+
- `frontend-specialist` - Web
|
|
2424
|
+
- `mobile-developer` - Mobile
|
|
2425
|
+
|
|
2426
|
+
**Ações:**
|
|
2427
|
+
1. **Classificar cada componente antes de criar** (🔴 OBRIGATÓRIO):
|
|
2428
|
+
|
|
2429
|
+
| Tipo | Critério | Pasta |
|
|
2430
|
+
|------|----------|-------|
|
|
2431
|
+
| **Reutilizável** | Pode ser usado em 2+ páginas/features diferentes | `src/components/ui/` |
|
|
2432
|
+
| **Feature-specific** | Só faz sentido em 1 contexto (ex: Step3Audience) | `src/components/{feature}/` |
|
|
2433
|
+
| **Layout compartilhado** | Usado no shell da aplicação (topbar, sidebar) | `src/components/dashboard/` ou `src/components/layout/` |
|
|
2434
|
+
|
|
2435
|
+
> [!CAUTION]
|
|
2436
|
+
> **REGRA BLOQUEANTE:** Um componente que pode ser reutilizado em outro contexto
|
|
2437
|
+
> DEVE ser criado em `src/components/ui/` desde o início, com CSS Module próprio.
|
|
2438
|
+
> Criar em pasta de feature e mover depois = retrabalho de import.
|
|
2439
|
+
>
|
|
2440
|
+
> **FALHA QUE GEROU ESTA REGRA:** `ReviewCard` e `IconButton` foram criados
|
|
2441
|
+
> em `src/components/wizard/steps/` e na TopBar respectivamente,
|
|
2442
|
+
> sem CSS Module, com Tailwind inline. Precisaram ser movidos, refatorados
|
|
2443
|
+
> e conectados ao Design System em uma sessão separada.
|
|
2444
|
+
|
|
2445
|
+
**Perguntas para classificar:**
|
|
2446
|
+
- "Este botão/card/input pode ser usado na dashboard E no wizard?" → `ui/`
|
|
2447
|
+
- "Este componente tem lógica/visual genérico suficiente para outro dev reutilizar?" → `ui/`
|
|
2448
|
+
- "Este componente só faz sentido dentro de 1 passo do wizard?" → `wizard/steps/`
|
|
2449
|
+
|
|
2450
|
+
2. Criar estrutura de componentes **com styling premium desde o início**
|
|
2451
|
+
3. Aplicar tokens do MASTER.md + efeitos visuais (glassmorphism, gradientes, glows)
|
|
2452
|
+
4. Implementar lógica dos componentes (estados, hooks)
|
|
2453
|
+
5. Conectar com backend/APIs
|
|
2454
|
+
6. Criar rotas do app
|
|
2455
|
+
|
|
2456
|
+
**Gate de Saída:**
|
|
2457
|
+
```
|
|
2458
|
+
[ ] **Componentes classificados (ui/ vs feature-specific) antes de criar** ⭐
|
|
2459
|
+
[ ] **Componentes reutilizáveis em src/components/ui/ com CSS Module próprio** ⭐
|
|
2460
|
+
[ ] Componentes criados com lógica funcional
|
|
2461
|
+
[ ] Componentes com styling premium aplicado — NÃO apenas CSS variables, mas:
|
|
2462
|
+
[ ] Glassmorphism (backdrop-filter + overlay) onde MASTER.md define ⭐
|
|
2463
|
+
[ ] Shadows (var(--shadow-*)) com níveis de elevação corretos
|
|
2464
|
+
[ ] Micro-animações em hover/focus (transition, transform)
|
|
2465
|
+
[ ] Borders usando overlay variables (var(--color-overlay-*))
|
|
2466
|
+
[ ] Rotas do app funcionando
|
|
2467
|
+
[ ] Componentes conectados ao backend
|
|
2468
|
+
[ ] 🔴 **DATA INTEGRATION VERIFICADO** (ver gate abaixo)
|
|
2469
|
+
```
|
|
2470
|
+
|
|
2471
|
+
#### 🔌 DATA INTEGRATION GATE (OBRIGATÓRIO — Phase 5.2) 🔴
|
|
2472
|
+
|
|
2473
|
+
> [!CAUTION]
|
|
2474
|
+
> **REGRA BLOQUEANTE:** Antes de marcar Phase 5.2 como concluída, o agente DEVE
|
|
2475
|
+
> verificar que NENHUMA page/route de produção contém mock data.
|
|
2476
|
+
>
|
|
2477
|
+
> **FALHA QUE GEROU ESTA REGRA:** Phase 5.2 tinha o gate "Componentes conectados ao backend"
|
|
2478
|
+
> mas sem mecanismo de verificação. O agente marcou como ✅ sem checar. 7 arquivos tinham
|
|
2479
|
+
> `mockData`, `// MVP: mock response`, e `onApprove={() => {}}` em produção.
|
|
2480
|
+
|
|
2481
|
+
**Verificação OBRIGATÓRIA (executar para cada page/route):**
|
|
2482
|
+
|
|
2483
|
+
```markdown
|
|
2484
|
+
⚠️ DATA INTEGRATION SCAN — Phase 5.2 Completa?
|
|
2485
|
+
|
|
2486
|
+
Para CADA arquivo em src/app/ (pages e routes de produção):
|
|
2487
|
+
[ ] Buscar padrão: `mock` (case insensitive) — ZERO ocorrências?
|
|
2488
|
+
[ ] Buscar padrão: `() => {}` ou `() => { }` — ZERO callbacks noop?
|
|
2489
|
+
[ ] Buscar padrão: `// TODO` em lógica de negócio — ZERO placeholders?
|
|
2490
|
+
[ ] Buscar padrão: `// MVP:` — ZERO flags de MVP?
|
|
2491
|
+
|
|
2492
|
+
Se QUALQUER padrão encontrado:
|
|
2493
|
+
→ LISTAR arquivos afetados
|
|
2494
|
+
→ CORRIGIR antes de marcar Phase 5.2 como concluída
|
|
2495
|
+
→ Conectar ao banco de dados / implementar lógica real
|
|
2496
|
+
|
|
2497
|
+
✅ ZERO mock patterns em produção → Phase 5.2 LIBERADA
|
|
2498
|
+
```
|
|
2499
|
+
|
|
2500
|
+
**Comandos de scan sugeridos:**
|
|
2501
|
+
|
|
2502
|
+
```bash
|
|
2503
|
+
# Buscar mock data em pages de produção
|
|
2504
|
+
grep -rn "mock" src/app/ --include="*.tsx" --include="*.ts" -l
|
|
2505
|
+
grep -rn "() => {}" src/app/ --include="*.tsx" --include="*.ts" -l
|
|
2506
|
+
grep -rn "// TODO" src/app/ --include="*.tsx" --include="*.ts" -l
|
|
2507
|
+
grep -rn "// MVP" src/app/ --include="*.tsx" --include="*.ts" -l
|
|
2508
|
+
```
|
|
2509
|
+
|
|
2510
|
+
> [!CAUTION]
|
|
2511
|
+
> **FALHA QUE GEROU ESTA EXPANSÃO:** O gate anterior apenas checava
|
|
2512
|
+
> "styling premium aplicado (não esqueleto)" — vago demais. O agente
|
|
2513
|
+
> interpretou como "usar CSS variables" e passou o gate sem aplicar
|
|
2514
|
+
> glassmorphism, shadows ou animações. Agora cada sub-item é explícito.
|
|
2515
|
+
|
|
2516
|
+
> [!CAUTION]
|
|
2517
|
+
> **VALIDAÇÃO OBRIGATÓRIA:** Antes de prosseguir, verificar conexões UI→Função.
|
|
2518
|
+
> **Skill:** `integration-completeness`
|
|
2519
|
+
|
|
2520
|
+
**Checklist de Integração (OBRIGATÓRIO):**
|
|
2521
|
+
```markdown
|
|
2522
|
+
Para CADA componente interativo:
|
|
2523
|
+
[ ] onClick/onSubmit definido?
|
|
2524
|
+
[ ] Handler chama função correta (não é vazio)?
|
|
2525
|
+
[ ] Função está importada?
|
|
2526
|
+
[ ] Teste verifica clique → ação (não só existência)?
|
|
2527
|
+
```
|
|
2528
|
+
|
|
2529
|
+
---
|
|
2530
|
+
|
|
2531
|
+
#### Phase 5.3: UI STYLING VALIDATION (Verificação + Ajustes Finos) ⭐ OBRIGATÓRIO
|
|
2532
|
+
|
|
2533
|
+
> [!CAUTION]
|
|
2534
|
+
> **REGRA BLOQUEANTE:** NÃO prosseguir para Phase 6 sem completar esta sub-fase.
|
|
2535
|
+
> Componentes sem styling = projeto incompleto.
|
|
2536
|
+
|
|
2537
|
+
> [!IMPORTANT]
|
|
2538
|
+
> **Esta fase é APENAS para VALIDAÇÃO e AJUSTES FINOS.**
|
|
2539
|
+
> Se o styling inline foi seguido corretamente durante Phase 4 (TDD GREEN) e Phase 5.2,
|
|
2540
|
+
> os componentes já possuem styling premium. Esta fase verifica se a qualidade visual
|
|
2541
|
+
> está uniforme entre todas as páginas e faz ajustes de polimento se necessário.
|
|
2542
|
+
> **NÃO é para aplicar styling do zero** — se isso for necessário, significa que as
|
|
2543
|
+
> phases anteriores não foram executadas corretamente.
|
|
2544
|
+
|
|
2545
|
+
> [!IMPORTANT]
|
|
2546
|
+
> **EXECUTAR WORKFLOW:** `/ui-ux-pro-max` se Design System ainda não existe.
|
|
2547
|
+
> Este workflow contém 50+ estilos, 97 paletas de cores e checklist profissional.
|
|
2548
|
+
|
|
2549
|
+
**Agentes Envolvidos:**
|
|
2550
|
+
- `frontend-specialist` - Web
|
|
2551
|
+
- `mobile-developer` - Mobile
|
|
2552
|
+
|
|
2553
|
+
---
|
|
2554
|
+
|
|
2555
|
+
**PASSO 1: Executar `/ui-ux-pro-max` (OBRIGATÓRIO)**
|
|
2556
|
+
|
|
2557
|
+
```bash
|
|
2558
|
+
# Gerar Design System completo com recomendações
|
|
2559
|
+
python3 .agent/.shared/ui-ux-pro-max/scripts/search.py "{produto} {indústria} {keywords}" --design-system -p "{Nome do Projeto}"
|
|
2560
|
+
```
|
|
2561
|
+
|
|
2562
|
+
**Exemplo para SaaS:**
|
|
2563
|
+
```bash
|
|
2564
|
+
python3 .agent/.shared/ui-ux-pro-max/scripts/search.py "saas startup professional" --design-system -p "Flyeelab"
|
|
2565
|
+
```
|
|
2566
|
+
|
|
2567
|
+
**Output esperado:**
|
|
2568
|
+
- Pattern recomendado
|
|
2569
|
+
- Style (glassmorphism, minimalism, etc.)
|
|
2570
|
+
- Paleta de cores
|
|
2571
|
+
- Tipografia
|
|
2572
|
+
- Efeitos visuais
|
|
2573
|
+
- Anti-patterns a evitar
|
|
2574
|
+
|
|
2575
|
+
---
|
|
2576
|
+
|
|
2577
|
+
**PASSO 2: Persistir Design System (se não existir)**
|
|
2578
|
+
|
|
2579
|
+
```bash
|
|
2580
|
+
python3 .agent/.shared/ui-ux-pro-max/scripts/search.py "{query}" --design-system --persist -p "{Projeto}"
|
|
2581
|
+
```
|
|
2582
|
+
|
|
2583
|
+
Gera:
|
|
2584
|
+
- `design-system/MASTER.md` - Source of Truth
|
|
2585
|
+
- `design-system/pages/` - Overrides por página
|
|
2586
|
+
|
|
2587
|
+
---
|
|
2588
|
+
|
|
2589
|
+
**PASSO 2.5: Instalar CSS Variables (OBRIGATÓRIO) 🔴**
|
|
2590
|
+
|
|
2591
|
+
> [!CAUTION]
|
|
2592
|
+
> **REGRA BLOQUEANTE:** Antes de estilizar componentes, garantir que as variáveis CSS
|
|
2593
|
+
> do Design System estão instaladas no `globals.css` (ou equivalente).
|
|
2594
|
+
|
|
2595
|
+
**Ações:**
|
|
2596
|
+
1. Abrir `design-system/{projeto}/MASTER.md`
|
|
2597
|
+
2. Copiar seção "CSS Variables" ou "Tokens"
|
|
2598
|
+
3. Colar em `src/app/globals.css` (Next.js) ou arquivo CSS global equivalente
|
|
2599
|
+
4. Verificar que variáveis incluem:
|
|
2600
|
+
- Cores primárias (--lime, --bg-primary, etc.)
|
|
2601
|
+
- Backgrounds (--bg-card, --bg-elevated)
|
|
2602
|
+
- Texto (--text-primary, --text-secondary, --text-muted)
|
|
2603
|
+
- Espaçamentos (--radius-sm, --radius-md, etc.)
|
|
2604
|
+
5. Definir body styling base:
|
|
2605
|
+
```css
|
|
2606
|
+
body {
|
|
2607
|
+
background: var(--bg-primary);
|
|
2608
|
+
color: var(--text-primary);
|
|
2609
|
+
font-family: 'Plus Jakarta Sans', sans-serif; /* ou font do MASTER.md */
|
|
2610
|
+
}
|
|
2611
|
+
```
|
|
2612
|
+
6. Reiniciar dev server (`npm run dev`)
|
|
2613
|
+
|
|
2614
|
+
**Gate de Saída PASSO 2.5:**
|
|
2615
|
+
```
|
|
2616
|
+
[ ] CSS variables do MASTER.md copiadas para globals.css
|
|
2617
|
+
[ ] Body styling definido (background, color, font)
|
|
2618
|
+
[ ] Dev server reiniciado
|
|
2619
|
+
[ ] Página renderiza com cores corretas (verificar no browser)
|
|
2620
|
+
```
|
|
2621
|
+
|
|
2622
|
+
---
|
|
2623
|
+
|
|
2624
|
+
**PASSO 3: Buscar Guidelines do Stack**
|
|
2625
|
+
|
|
2626
|
+
```bash
|
|
2627
|
+
python3 .agent/.shared/ui-ux-pro-max/scripts/search.py "layout responsive form" --stack html-tailwind
|
|
2628
|
+
```
|
|
2629
|
+
|
|
2630
|
+
Stacks disponíveis: `html-tailwind`, `react`, `nextjs`, `shadcn`, etc.
|
|
2631
|
+
|
|
2632
|
+
---
|
|
2633
|
+
|
|
2634
|
+
**PASSO 4: Aplicar para CADA componente**
|
|
2635
|
+
|
|
2636
|
+
1. Carregar `design-system/{nome}/MASTER.md`
|
|
2637
|
+
2. Aplicar cores, tipografia, espaçamento
|
|
2638
|
+
3. Verificar regras do `/ui-ux-pro-max`:
|
|
2639
|
+
- ❌ Sem emojis como ícones (usar SVG)
|
|
2640
|
+
- ✅ `cursor-pointer` em clicáveis
|
|
2641
|
+
- ✅ Hover states com feedback visual
|
|
2642
|
+
- ✅ Contraste adequado (4.5:1 mínimo)
|
|
2643
|
+
- ✅ Responsivo em 375px, 768px, 1024px, 1440px
|
|
2644
|
+
|
|
2645
|
+
---
|
|
2646
|
+
|
|
2647
|
+
**PASSO 4.5: Usar shadcn/ui Components (Opcional - /stitch --shadcn)**
|
|
2648
|
+
|
|
2649
|
+
> [!TIP]
|
|
2650
|
+
> Para acelerar desenvolvimento, use componentes prontos do shadcn/ui.
|
|
2651
|
+
> **Workflow:** `/stitch --shadcn [componente]`
|
|
2652
|
+
> **Skill:** `shadcn-ui`
|
|
2653
|
+
|
|
2654
|
+
```bash
|
|
2655
|
+
# Instalar componente
|
|
2656
|
+
npx shadcn-ui@latest add button
|
|
2657
|
+
npx shadcn-ui@latest add dialog
|
|
2658
|
+
npx shadcn-ui@latest add form
|
|
2659
|
+
|
|
2660
|
+
# Ver todos disponíveis
|
|
2661
|
+
npx shadcn-ui@latest add --help
|
|
2662
|
+
```
|
|
2663
|
+
|
|
2664
|
+
**Quando usar:**
|
|
2665
|
+
- Formulários complexos → `form`, `input`, `select`
|
|
2666
|
+
- Modais/Dialogs → `dialog`, `alert-dialog`
|
|
2667
|
+
- Navegação → `navigation-menu`, `dropdown-menu`
|
|
2668
|
+
- Feedback → `toast`, `alert`
|
|
2669
|
+
|
|
2670
|
+
---
|
|
2671
|
+
|
|
2672
|
+
**PASSO 4.6: Componentes Premium de Bibliotecas Externas (Opcional)**
|
|
2673
|
+
|
|
2674
|
+
> [!TIP]
|
|
2675
|
+
> **Skill:** `component-library-discovery`
|
|
2676
|
+
> Use bibliotecas externas compatíveis com shadcn para componentes premium.
|
|
2677
|
+
|
|
2678
|
+
**Bibliotecas Disponíveis:**
|
|
2679
|
+
|
|
2680
|
+
| Biblioteca | Foco | Comando Base |
|
|
2681
|
+
|------------|------|--------------|
|
|
2682
|
+
| **badtz-ui** | LPs, conversão | `npx shadcn@latest add https://badtz-ui.com/r/<comp>.json` |
|
|
2683
|
+
| **uselayouts** | Micro-interações | `npx shadcn@latest add https://uselayouts.com/r/<comp>` |
|
|
2684
|
+
| **lucide-animated** | Ícones animados | Copy-paste de lucide-animated.com |
|
|
2685
|
+
|
|
2686
|
+
**Componentes Comuns:**
|
|
2687
|
+
|
|
2688
|
+
| Necessidade | Biblioteca | Componente |
|
|
2689
|
+
|-------------|------------|------------|
|
|
2690
|
+
| Hero Section | badtz-ui | `hero-section` |
|
|
2691
|
+
| CTA com destaque | badtz-ui | `glowing-button` |
|
|
2692
|
+
| Cards 3D | uselayouts | `3d-book` |
|
|
2693
|
+
| Loading animado | lucide-animated | `loader-pinwheel` |
|
|
2694
|
+
| Success feedback | lucide-animated | `check`, `circle-check` |
|
|
2695
|
+
|
|
2696
|
+
**Se não souber qual componente usar:**
|
|
2697
|
+
> Seguir skill `component-library-discovery` → PASSO 2 (Perguntas Interativas)
|
|
2698
|
+
|
|
2699
|
+
**Catálogos completos:**
|
|
2700
|
+
- [badtz-ui.com/docs](https://badtz-ui.com/docs)
|
|
2701
|
+
- [uselayouts.com/docs](https://uselayouts.com/docs/introduction)
|
|
2702
|
+
- [lucide-animated.com](https://lucide-animated.com)
|
|
2703
|
+
|
|
2704
|
+
---
|
|
2705
|
+
|
|
2706
|
+
**PASSO 5: Pre-Delivery Checklist (OBRIGATÓRIO)**
|
|
2707
|
+
|
|
2708
|
+
Verificar ANTES de marcar Phase 5.3 como concluída:
|
|
2709
|
+
|
|
2710
|
+
```markdown
|
|
2711
|
+
### Visual Quality
|
|
2712
|
+
- [ ] No emojis used as icons (use SVG instead)
|
|
2713
|
+
- [ ] All icons from consistent icon set (Heroicons/Lucide)
|
|
2714
|
+
- [ ] Hover states don't cause layout shift
|
|
2715
|
+
- [ ] Theme colors applied correctly
|
|
2716
|
+
|
|
2717
|
+
### Interaction
|
|
2718
|
+
- [ ] All clickable elements have `cursor-pointer`
|
|
2719
|
+
- [ ] Hover states provide clear visual feedback
|
|
2720
|
+
- [ ] Transitions are smooth (150-300ms)
|
|
2721
|
+
- [ ] Focus states visible for keyboard navigation
|
|
2722
|
+
|
|
2723
|
+
### Light/Dark Mode
|
|
2724
|
+
- [ ] Light mode text has sufficient contrast
|
|
2725
|
+
- [ ] Glass/transparent elements visible in light mode
|
|
2726
|
+
- [ ] Test both modes before delivery
|
|
2727
|
+
|
|
2728
|
+
### Layout
|
|
2729
|
+
- [ ] Floating elements have proper spacing from edges
|
|
2730
|
+
- [ ] No content hidden behind fixed navbars
|
|
2731
|
+
- [ ] Responsive at 375px, 768px, 1024px, 1440px
|
|
2732
|
+
- [ ] No horizontal scroll on mobile
|
|
2733
|
+
```
|
|
2734
|
+
|
|
2735
|
+
---
|
|
2736
|
+
|
|
2737
|
+
**PASSO 6: Validação Automatizada (OBRIGATÓRIO)**
|
|
2738
|
+
|
|
2739
|
+
> [!CAUTION]
|
|
2740
|
+
> **EXECUTE ANTES DE MARCAR COMPLETO:**
|
|
2741
|
+
|
|
2742
|
+
> **Skill:** `ui-validation`
|
|
2743
|
+
|
|
2744
|
+
```bash
|
|
2745
|
+
python .agent/skills/ui-validation/scripts/ui_antipattern_check.py .
|
|
2746
|
+
```
|
|
2747
|
+
|
|
2748
|
+
**Resultado:**
|
|
2749
|
+
- ❌ Errors → CORRIGIR antes de prosseguir
|
|
2750
|
+
- ⚠️ Warnings → Considerar correção
|
|
2751
|
+
- ✅ Passed → Pode prosseguir
|
|
2752
|
+
|
|
2753
|
+
---
|
|
2754
|
+
|
|
2755
|
+
**Gate de Saída Phase 5.3:**
|
|
2756
|
+
```
|
|
2757
|
+
[ ] /ui-ux-pro-max executado
|
|
2758
|
+
[ ] Design System persistido
|
|
2759
|
+
[ ] TODOS os componentes estilizados
|
|
2760
|
+
[ ] Pre-Delivery Checklist 100% ✅
|
|
2761
|
+
[ ] 🔴 ui-validation script PASSOU
|
|
2762
|
+
[ ] Verificação visual (screenshot ou preview)
|
|
2763
|
+
[ ] Responsivo verificado
|
|
2764
|
+
```
|
|
2765
|
+
|
|
2766
|
+
---
|
|
2767
|
+
|
|
2768
|
+
#### Phase 5.4: TRACKER SYNC (OBRIGATÓRIO) 🔴
|
|
2769
|
+
|
|
2770
|
+
> [!CAUTION]
|
|
2771
|
+
> **REGRA BLOQUEANTE:** Após completar cada épico, sincronizar Tracker.
|
|
2772
|
+
> NÃO prosseguir para Phase 6 sem todas as tasks sincronizadas.
|
|
2773
|
+
|
|
2774
|
+
**Ações para CADA épico:**
|
|
2775
|
+
1. Listar tasks do épico no Tracker
|
|
2776
|
+
2. Atualizar cada task:
|
|
2777
|
+
|
|
2778
|
+
```python
|
|
2779
|
+
from bridge import update_task, list_tasks, load_config
|
|
2780
|
+
config = load_config()
|
|
2781
|
+
|
|
2782
|
+
# Listar tasks do projeto
|
|
2783
|
+
tasks = list_tasks(
|
|
2784
|
+
api_url=config["api_url"],
|
|
2785
|
+
api_key=config["api_key"],
|
|
2786
|
+
project_id=config["project_id"],
|
|
2787
|
+
)
|
|
2788
|
+
|
|
2789
|
+
# Para cada task do épico
|
|
2790
|
+
for task in epic_tasks:
|
|
2791
|
+
update_task(
|
|
2792
|
+
api_url=config["api_url"],
|
|
2793
|
+
api_key=config["api_key"],
|
|
2794
|
+
task_id=task["id"],
|
|
2795
|
+
status="completed",
|
|
2796
|
+
result_status="success",
|
|
2797
|
+
output={
|
|
2798
|
+
"summary": "{resumo}",
|
|
2799
|
+
"tests": "{resultado}",
|
|
2800
|
+
"files": ["{arquivos}"],
|
|
2801
|
+
},
|
|
2802
|
+
metrics={"time_spent": "{tempo}"},
|
|
2803
|
+
)
|
|
2804
|
+
```
|
|
2805
|
+
|
|
2806
|
+
3. **Exibir log de execução** (conforme `project-tracking-patterns` Seção 6)
|
|
2807
|
+
|
|
2808
|
+
**Gate de Saída Phase 5:**
|
|
2809
|
+
```
|
|
2810
|
+
[ ] Todas as sub-fases (5.1, 5.2, 5.3, 5.4) concluídas
|
|
2811
|
+
[ ] PROJECT-PROGRESS.md atualizado
|
|
2812
|
+
[ ] 🔴 TRACKER SINCRONIZADO - Todas as tasks do projeto
|
|
2813
|
+
```
|
|
2814
|
+
|
|
2815
|
+
**Template de verificação:**
|
|
2816
|
+
```markdown
|
|
2817
|
+
📊 **Tracker Sync - Phase 5**
|
|
2818
|
+
|
|
2819
|
+
| Épico | Tasks | Sync |
|
|
2820
|
+
|-------|-------|------|
|
|
2821
|
+
| 1. Setup | 5/5 | ✅ |
|
|
2822
|
+
| 2. Auth | 4/4 | ✅ |
|
|
2823
|
+
| 3. Landing | 4/4 | ✅ |
|
|
2824
|
+
| ... | ... | ... |
|
|
2825
|
+
|
|
2826
|
+
✅ Tracker 100% sincronizado. Liberado para Phase 6.
|
|
2827
|
+
```
|
|
2828
|
+
|
|
2829
|
+
---
|
|
2830
|
+
|
|
2831
|
+
**Regras Gerais Phase 5:**
|
|
2832
|
+
- ✅ Ler TDD a cada nova task
|
|
2833
|
+
- ✅ Rodar testes antes de cada commit
|
|
2834
|
+
- ✅ Aplicar Design System em 100% dos componentes
|
|
2835
|
+
- ❌ Não inventar features não documentadas
|
|
2836
|
+
- ❌ Não deixar componentes sem styling
|
|
2837
|
+
- ❌ Não prosseguir para Phase 6 com UI incompleta
|
|
2838
|
+
|
|
2839
|
+
---
|
|
2840
|
+
|
|
2841
|
+
### 🛑 GATE OBRIGATÓRIO: Phase 5 → Phase 6
|
|
2842
|
+
|
|
2843
|
+
> [!CAUTION]
|
|
2844
|
+
> **BLOQUEADOR ABSOLUTO:** Você NÃO PODE iniciar Phase 6 sem completar TODAS as sub-fases de Phase 5.
|
|
2845
|
+
|
|
2846
|
+
**Checklist de Verificação (OBRIGATÓRIO):**
|
|
2847
|
+
|
|
2848
|
+
```markdown
|
|
2849
|
+
⚠️ VERIFICAÇÃO OBRIGATÓRIA ANTES DE PHASE 6
|
|
2850
|
+
|
|
2851
|
+
## Sub-Fases Obrigatórias
|
|
2852
|
+
[ ] 5.1 Backend/Lógica - Todos os épicos implementados
|
|
2853
|
+
[ ] 5.2 UI Components - Todos os componentes criados
|
|
2854
|
+
[ ] 5.3 UI STYLING - Design System aplicado
|
|
2855
|
+
[ ] /ui-ux-pro-max executado
|
|
2856
|
+
[ ] Pre-Delivery Checklist 100%
|
|
2857
|
+
[ ] Verificação visual feita
|
|
2858
|
+
[ ] 5.4 Tracker Sync - Todas tasks sincronizadas
|
|
2859
|
+
[ ] Épico 1 → 100%
|
|
2860
|
+
[ ] Épico 2 → 100%
|
|
2861
|
+
[ ] ... → 100%
|
|
2862
|
+
|
|
2863
|
+
## Regra de Decisão
|
|
2864
|
+
❌ QUALQUER item desmarcado → EXECUTE a sub-fase faltante
|
|
2865
|
+
✅ TODOS marcados → Pode prosseguir para Phase 6
|
|
2866
|
+
|
|
2867
|
+
## Ação se Incompleto
|
|
2868
|
+
Se 5.3 faltando: /new-project --phase 5.3
|
|
2869
|
+
Se 5.4 faltando: /new-project --phase 5.4
|
|
2870
|
+
```
|
|
2871
|
+
|
|
2872
|
+
> [!IMPORTANT]
|
|
2873
|
+
> **Se você chegou aqui sem completar 5.3 ou 5.4:**
|
|
2874
|
+
> PARE imediatamente e execute as sub-fases faltantes.
|
|
2875
|
+
|
|
2876
|
+
---
|
|
2877
|
+
|
|
2878
|
+
### Phase 6: VERIFICAÇÃO - Gate de Cobertura
|
|
2879
|
+
|
|
2880
|
+
**Objetivo:** Garantir qualidade mínima.
|
|
2881
|
+
|
|
2882
|
+
**Trigger:**
|
|
2883
|
+
```
|
|
2884
|
+
Implementação concluída
|
|
2885
|
+
```
|
|
2886
|
+
|
|
2887
|
+
**Ações:**
|
|
2888
|
+
1. Executar `/test coverage`
|
|
2889
|
+
2. Verificar cobertura >= 80%
|
|
2890
|
+
3. 🔴 **Executar E2E SMOKE TEST do Core Loop** (ver abaixo)
|
|
2891
|
+
|
|
2892
|
+
**Gate de Saída:**
|
|
2893
|
+
|
|
2894
|
+
| Verificação | Ação |
|
|
2895
|
+
|-------------|------|
|
|
2896
|
+
| Cobertura >= 80% | ✅ Prosseguir |
|
|
2897
|
+
| Cobertura < 80% | ❌ Adicionar testes faltantes |
|
|
2898
|
+
| **E2E Smoke Test FALHOU** | ❌ **CORRIGIR — fluxo principal não funciona** |
|
|
2899
|
+
|
|
2900
|
+
> [!CAUTION]
|
|
2901
|
+
> **BLOQUEADOR:** Não fazer deploy com cobertura < 80%.
|
|
2902
|
+
|
|
2903
|
+
#### 🔄 E2E CORE LOOP SMOKE TEST (OBRIGATÓRIO — Phase 6) 🔴
|
|
2904
|
+
|
|
2905
|
+
> [!CAUTION]
|
|
2906
|
+
> **REGRA BLOQUEANTE:** Phase 6 NÃO é apenas cobertura de testes.
|
|
2907
|
+
> O agente DEVE verificar que o **CORE LOOP do produto funciona de ponta a ponta**
|
|
2908
|
+
> com DADOS REAIS, não apenas que os testes unitários passam.
|
|
2909
|
+
>
|
|
2910
|
+
> **FALHA QUE GEROU ESTA REGRA:** Projeto Flyee tinha 140+ testes passando e
|
|
2911
|
+
> cobertura >80%, mas o core loop (criar projeto → criar decisão → portal → aprovar)
|
|
2912
|
+
> estava 100% broken porque nenhum teste verificava integração real.
|
|
2913
|
+
|
|
2914
|
+
**O que é o Core Loop?**
|
|
2915
|
+
|
|
2916
|
+
Consultar o PRD seção "Core Flow" ou "Jornada Principal" para identificar
|
|
2917
|
+
o fluxo principal do produto. Exemplo:
|
|
2918
|
+
|
|
2919
|
+
```
|
|
2920
|
+
[Ação 1] → [Ação 2] → [Ação 3] → [Resultado Final]
|
|
2921
|
+
```
|
|
2922
|
+
|
|
2923
|
+
**Verificação OBRIGATÓRIA para cada etapa do Core Loop:**
|
|
2924
|
+
|
|
2925
|
+
```markdown
|
|
2926
|
+
⚠️ E2E CORE LOOP SMOKE TEST — {nome do projeto}
|
|
2927
|
+
|
|
2928
|
+
Core Loop identificado no PRD: {descrever fluxo}
|
|
2929
|
+
|
|
2930
|
+
| # | Etapa | Page/Route | Mock? | DB Query? | Funcional? |
|
|
2931
|
+
|---|-------|-----------|-------|-----------|------------|
|
|
2932
|
+
| 1 | {ação 1} | {arquivo} | [ ] | [ ] | [ ] |
|
|
2933
|
+
| 2 | {ação 2} | {arquivo} | [ ] | [ ] | [ ] |
|
|
2934
|
+
| 3 | {ação 3} | {arquivo} | [ ] | [ ] | [ ] |
|
|
2935
|
+
| ... | ... | ... | ... | ... | ... |
|
|
2936
|
+
|
|
2937
|
+
Para CADA etapa:
|
|
2938
|
+
[ ] Nenhum mock data em produção?
|
|
2939
|
+
[ ] Queries ao banco reais (supabase.from() / prisma)?
|
|
2940
|
+
[ ] Handlers conectados a ações reais (não noop)?
|
|
2941
|
+
[ ] Fluxo anterior → etapa atual funciona?
|
|
2942
|
+
|
|
2943
|
+
❌ Se QUALQUER etapa falhar → PARAR e corrigir ANTES de Phase 7
|
|
2944
|
+
✅ Core Loop 100% funcional → Liberado para deploy
|
|
2945
|
+
```
|
|
2946
|
+
|
|
2947
|
+
> [!TIP]
|
|
2948
|
+
> Se possível, rodar o smoke test no browser (dev server) e não apenas via testes unitários.
|
|
2949
|
+
> Isso detecta problemas que testes de componente isolado não capturam.
|
|
2950
|
+
|
|
2951
|
+
---
|
|
2952
|
+
|
|
2953
|
+
### Phase 7: PREVIEW e DEPLOY
|
|
2954
|
+
|
|
2955
|
+
**Objetivo:** Visualizar e publicar.
|
|
2956
|
+
|
|
2957
|
+
**Agentes Envolvidos:**
|
|
2958
|
+
- `devops-engineer` - Definição de infra e deploy
|
|
2959
|
+
- `security-auditor` - Validação pré-deploy
|
|
2960
|
+
|
|
2961
|
+
---
|
|
2962
|
+
|
|
2963
|
+
#### Phase 7.1: ENVIRONMENT DISCOVERY (OBRIGATÓRIO) ⭐
|
|
2964
|
+
|
|
2965
|
+
> [!CAUTION]
|
|
2966
|
+
> **BLOQUEADOR:** ANTES de qualquer deploy, DEVE-SE definir ambientes.
|
|
2967
|
+
> Esta pergunta é OBRIGATÓRIA mesmo para projetos simples.
|
|
2968
|
+
|
|
2969
|
+
**Verificar se ambientes já estão definidos:**
|
|
2970
|
+
1. Checar `docs/design/TDD-{nome}.md` seção "Infraestrutura"
|
|
2971
|
+
2. Checar `docs/PROJECT-PROGRESS.md`
|
|
2972
|
+
|
|
2973
|
+
**Se NÃO estão definidos, PERGUNTAR:**
|
|
2974
|
+
|
|
2975
|
+
```markdown
|
|
2976
|
+
## 🌍 Definição de Ambientes
|
|
2977
|
+
|
|
2978
|
+
Preciso entender sua estratégia de ambientes antes do deploy:
|
|
2979
|
+
|
|
2980
|
+
1. **Quais ambientes você precisa?**
|
|
2981
|
+
- [ ] Development (local)
|
|
2982
|
+
- [ ] Staging (testes/validação)
|
|
2983
|
+
- [ ] Production (usuários finais)
|
|
2984
|
+
|
|
2985
|
+
2. **Onde será hospedado cada ambiente?**
|
|
2986
|
+
- Ex: Vercel, Railway, VPS, Docker, etc.
|
|
2987
|
+
|
|
2988
|
+
3. **Variáveis de ambiente diferem por ambiente?**
|
|
2989
|
+
- Ex: API keys de teste vs produção
|
|
2990
|
+
```
|
|
2991
|
+
|
|
2992
|
+
**Template de Ambientes:**
|
|
2993
|
+
|
|
2994
|
+
| Ambiente | URL | Propósito |
|
|
2995
|
+
|----------|-----|-----------|
|
|
2996
|
+
| Development | `localhost:3000` | Desenvolvimento local |
|
|
2997
|
+
| Staging | `staging.{app}.com` | Testes e validação |
|
|
2998
|
+
| Production | `{app}.com` | Usuários finais |
|
|
2999
|
+
|
|
3000
|
+
**Template de Variáveis por Ambiente:**
|
|
3001
|
+
|
|
3002
|
+
| Variável | Dev | Staging | Prod |
|
|
3003
|
+
|----------|-----|---------|------|
|
|
3004
|
+
| `DATABASE_URL` | local | staging-db | prod-db |
|
|
3005
|
+
| `API_KEY` | test-key | test-key | prod-key |
|
|
3006
|
+
| `DEBUG` | true | true | false |
|
|
3007
|
+
|
|
3008
|
+
**Gate de Saída Phase 7.1:**
|
|
3009
|
+
```
|
|
3010
|
+
[ ] Ambientes definidos (dev/staging/prod ou subset)
|
|
3011
|
+
[ ] Plataforma escolhida para cada ambiente
|
|
3012
|
+
[ ] Variáveis de ambiente mapeadas
|
|
3013
|
+
[ ] AGUARDAR confirmação do usuário
|
|
3014
|
+
```
|
|
3015
|
+
|
|
3016
|
+
> [!TIP]
|
|
3017
|
+
> Se usuário confirmar "só preciso de prod", prosseguir. Mas a pergunta DEVE ser feita.
|
|
3018
|
+
|
|
3019
|
+
---
|
|
3020
|
+
|
|
3021
|
+
#### Phase 7.2: PRE-FLIGHT CHECKS
|
|
3022
|
+
|
|
3023
|
+
**Ações:**
|
|
3024
|
+
1. Rodar checklist final: `python .agent/scripts/checklist.py .`
|
|
3025
|
+
2. Verificar todos os gates anteriores (5.3 UI, 5.4 Tracker Sync, 6 Coverage)
|
|
3026
|
+
3. Validar variáveis de ambiente
|
|
3027
|
+
|
|
3028
|
+
**Gate de Saída:**
|
|
3029
|
+
```
|
|
3030
|
+
[ ] Checklist passou
|
|
3031
|
+
[ ] Variáveis de ambiente documentadas
|
|
3032
|
+
[ ] Rollback plan definido
|
|
3033
|
+
```
|
|
3034
|
+
|
|
3035
|
+
---
|
|
3036
|
+
|
|
3037
|
+
#### Phase 7.3: PREVIEW e DEPLOY
|
|
3038
|
+
|
|
3039
|
+
**Ações:**
|
|
3040
|
+
1. Iniciar preview: `auto_preview.py`
|
|
3041
|
+
2. Apresentar URL ao usuário
|
|
3042
|
+
3. Se aprovado, executar deploy para ambiente escolhido
|
|
3043
|
+
|
|
3044
|
+
**Para cada ambiente (se staging + prod):**
|
|
3045
|
+
1. Deploy staging primeiro
|
|
3046
|
+
2. Validar em staging
|
|
3047
|
+
3. Deploy production
|
|
3048
|
+
|
|
3049
|
+
---
|
|
3050
|
+
|
|
3051
|
+
### Phase 7.5: PUBLICAÇÃO DE DOCUMENTAÇÃO TÉCNICA NO FLYEE
|
|
3052
|
+
|
|
3053
|
+
> [!CAUTION]
|
|
3054
|
+
> **REGRA BLOQUEANTE:** Toda documentação gerada nas fases anteriores DEVE ser publicada
|
|
3055
|
+
> na plataforma Flyee para **acesso da equipe de desenvolvimento**.
|
|
3056
|
+
> Os devs acessam via plataforma Flyee.
|
|
3057
|
+
|
|
3058
|
+
**Objetivo:** Publicar documentação completa na plataforma Flyee para acesso dos devs.
|
|
3059
|
+
|
|
3060
|
+
**Trigger:**
|
|
3061
|
+
```
|
|
3062
|
+
Phase 7.3 concluída (deploy feito) → Automático
|
|
3063
|
+
```
|
|
3064
|
+
|
|
3065
|
+
**Agentes Envolvidos:**
|
|
3066
|
+
- `orchestrator` - Integração Tracker
|
|
3067
|
+
|
|
3068
|
+
> [!IMPORTANT]
|
|
3069
|
+
> **SKILL:** Seguir Flyee API → seção "DOCUMENTATION DATABASES" OBRIGATORIAMENTE.
|
|
3070
|
+
|
|
3071
|
+
#### Passo 1: Verificar conexão com Flyee
|
|
3072
|
+
|
|
3073
|
+
```python
|
|
3074
|
+
from bridge import load_config
|
|
3075
|
+
config = load_config()
|
|
3076
|
+
assert config["enabled"], "Flyee Bridge não conectado"
|
|
3077
|
+
project_id = config["project_id"]
|
|
3078
|
+
```
|
|
3079
|
+
|
|
3080
|
+
> Se bridge não conectado → Publicar apenas localmente em `docs/`.
|
|
3081
|
+
|
|
3082
|
+
#### Passo 2: Coletar Artefatos Gerados
|
|
3083
|
+
|
|
3084
|
+
| Fonte | Tipo | Arquivo Local | Publicar? |
|
|
3085
|
+
|---|---|---|---|
|
|
3086
|
+
| Phase 1 | PRD | `docs/PRD-{nome}.md` | ✅ |
|
|
3087
|
+
| Phase 2 | TDD | `docs/design/TDD-{nome}.md` | ✅ |
|
|
3088
|
+
| Phase 2.5 | Design System | `design-system/{nome}/MASTER.md` | ✅ (se UI) |
|
|
3089
|
+
| Phase 4 | Testes | (relatório de cobertura) | ✅ |
|
|
3090
|
+
|
|
3091
|
+
#### Passo 3: Publicar
|
|
3092
|
+
|
|
3093
|
+
> Seguir Flyee API → seção "Processo: Publicação de Documentação Técnica"
|
|
3094
|
+
|
|
3095
|
+
Para cada doc:
|
|
3096
|
+
1. Verificar upsert (doc já existe?)
|
|
3097
|
+
2. Ler conteúdo completo do arquivo local
|
|
3098
|
+
3. Registrar via Flyee API (POST /flyee/projects/{id}/documents)
|
|
3099
|
+
4. Preencher propriedades + histórico + tasks relacionadas
|
|
3100
|
+
|
|
3101
|
+
#### Passo 4: Relatório de Publicação
|
|
3102
|
+
|
|
3103
|
+
```markdown
|
|
3104
|
+
📚 **DOCUMENTAÇÃO TÉCNICA PUBLICADA - {projeto}**
|
|
3105
|
+
|
|
3106
|
+
| # | Documento | Tipo | Status |
|
|
3107
|
+
|---|-----------|------|--------|
|
|
3108
|
+
| 1 | {nome} | PRD | Publicado |
|
|
3109
|
+
| 2 | {nome} | TDD | Publicado |
|
|
3110
|
+
| ... | ... | ... | ... |
|
|
3111
|
+
|
|
3112
|
+
Total: {N} documentos publicados
|
|
3113
|
+
✅ Devs podem consultar em: Flyee → Documentação
|
|
3114
|
+
```
|
|
3115
|
+
|
|
3116
|
+
**Gate de Saída:**
|
|
3117
|
+
```
|
|
3118
|
+
[ ] Documentação registrada no Flyee
|
|
3119
|
+
[ ] Todos os artefatos publicados
|
|
3120
|
+
[ ] Upsert verificado (sem duplicatas)
|
|
3121
|
+
[ ] Histórico e tasks referenciadas em cada doc
|
|
3122
|
+
[ ] PROJECT-PROGRESS.md atualizado
|
|
3123
|
+
```
|
|
3124
|
+
|
|
3125
|
+
---
|
|
3126
|
+
|
|
3127
|
+
### Phase 7.6: PUBLICAÇÃO DO MANUAL DO USUÁRIO NO FLYEE
|
|
3128
|
+
|
|
3129
|
+
> [!CAUTION]
|
|
3130
|
+
> **REGRA BLOQUEANTE:** Para cada fluxo publicado na Phase 7.5, DEVE existir uma versão
|
|
3131
|
+
> em linguagem acessível na plataforma Flyee.
|
|
3132
|
+
> Usuários finais e operadores leem estes guias — sem código, sem jargão técnico.
|
|
3133
|
+
|
|
3134
|
+
**Objetivo:** Publicar guias em linguagem acessível na plataforma Flyee.
|
|
3135
|
+
|
|
3136
|
+
**Trigger:**
|
|
3137
|
+
```
|
|
3138
|
+
Phase 7.5 concluída → Automático
|
|
3139
|
+
```
|
|
3140
|
+
|
|
3141
|
+
**Agentes Envolvidos:**
|
|
3142
|
+
- `orchestrator` - Integração Tracker
|
|
3143
|
+
|
|
3144
|
+
> [!IMPORTANT]
|
|
3145
|
+
> **SKILL:** Seguir Flyee API → seção "Processo: Publicação do Manual do Usuário" OBRIGATORIAMENTE.
|
|
3146
|
+
|
|
3147
|
+
#### Passo 1: Verificar conexão com Flyee
|
|
3148
|
+
|
|
3149
|
+
```python
|
|
3150
|
+
# Reutilizar config já carregado na Phase 7.5
|
|
3151
|
+
assert config["enabled"], "Flyee Bridge não conectado"
|
|
3152
|
+
```
|
|
3153
|
+
|
|
3154
|
+
> Se bridge não conectado → Publicar apenas localmente em `docs/`.
|
|
3155
|
+
|
|
3156
|
+
#### Passo 2: Mapear e Publicar Guias
|
|
3157
|
+
|
|
3158
|
+
> Seguir Flyee API → tabela "Mapear Fluxos Técnicos → Guias de Usuário"
|
|
3159
|
+
|
|
3160
|
+
Para cada guia:
|
|
3161
|
+
1. **Verificar upsert** — guia já existe? (query por Nome)
|
|
3162
|
+
2. **Gerar conteúdo** em linguagem simples (sem código)
|
|
3163
|
+
3. **Criar ou atualizar** página com template de guia do usuário
|
|
3164
|
+
4. **Definir propriedades:** Nome, Seção, Status, Público-alvo
|
|
3165
|
+
|
|
3166
|
+
#### Passo 3: Relatório de Publicação
|
|
3167
|
+
|
|
3168
|
+
```markdown
|
|
3169
|
+
📖 **MANUAL DO USUÁRIO PUBLICADO - {projeto}**
|
|
3170
|
+
|
|
3171
|
+
| # | Guia | Público-alvo | Seção | Status |
|
|
3172
|
+
|---|------|-------------|-------|--------|
|
|
3173
|
+
| 1 | {nome} | Usuário Final | {seção} | Publicado |
|
|
3174
|
+
| ... | ... | ... | ... | ... |
|
|
3175
|
+
|
|
3176
|
+
Total: {N} guias publicados
|
|
3177
|
+
✅ Usuários e operadores podem consultar em: Flyee → Manual do Usuário
|
|
3178
|
+
```
|
|
3179
|
+
|
|
3180
|
+
**Gate de Saída:**
|
|
3181
|
+
```
|
|
3182
|
+
[ ] Manual do Usuário registrado no Flyee
|
|
3183
|
+
[ ] Todos os fluxos mapeados para guias
|
|
3184
|
+
[ ] Upsert verificado (sem duplicatas)
|
|
3185
|
+
[ ] Conteúdo sem jargão técnico
|
|
3186
|
+
[ ] PROJECT-PROGRESS.md atualizado
|
|
3187
|
+
```
|
|
3188
|
+
|
|
3189
|
+
---
|
|
3190
|
+
|
|
3191
|
+
## 📁 Estrutura de Arquivos Gerados
|
|
3192
|
+
|
|
3193
|
+
### Modo Completo
|
|
3194
|
+
```
|
|
3195
|
+
projeto/
|
|
3196
|
+
├── docs/
|
|
3197
|
+
│ ├── PRD-{nome}.md # Phase 1
|
|
3198
|
+
│ └── design/
|
|
3199
|
+
│ └── TDD-{nome}.md # Phase 2
|
|
3200
|
+
├── {nome}.md # Plan file (Phase 3)
|
|
3201
|
+
├── tests/ # Phase 4
|
|
3202
|
+
│ ├── unit/
|
|
3203
|
+
│ └── integration/
|
|
3204
|
+
└── src/ # Phase 5
|
|
3205
|
+
```
|
|
3206
|
+
|
|
3207
|
+
### Modo --quick
|
|
3208
|
+
```
|
|
3209
|
+
projeto/
|
|
3210
|
+
├── docs/
|
|
3211
|
+
│ └── design/
|
|
3212
|
+
│ └── TDD-{nome}.md # Phase 2 (sem PRD)
|
|
3213
|
+
├── {nome}.md # Plan file
|
|
3214
|
+
├── tests/
|
|
3215
|
+
└── src/
|
|
3216
|
+
```
|
|
3217
|
+
|
|
3218
|
+
---
|
|
3219
|
+
|
|
3220
|
+
## 🔗 INTEGRAÇÃO COM OUTROS WORKFLOWS
|
|
3221
|
+
|
|
3222
|
+
| Este workflow chama | Propósito |
|
|
3223
|
+
|---------------------|-----------|
|
|
3224
|
+
| `/brainstorm` | Phase 0 (opcional) |
|
|
3225
|
+
| `/prd new` | Phase 1 |
|
|
3226
|
+
| `/tdd new` + `/tdd validate` + `/tdd breakdown` | Phase 2-3 |
|
|
3227
|
+
| `/test [feature]` | Phase 4 |
|
|
3228
|
+
| `/create` ou `/orchestrate` | Phase 5 |
|
|
3229
|
+
| `/test coverage` | Phase 6 |
|
|
3230
|
+
| Flyee API → "DOCUMENTATION DATABASE" | Phase 7.5 |
|
|
3231
|
+
|
|
3232
|
+
| Workflows Relacionados | Quando Usar |
|
|
3233
|
+
|------------------------|-------------|
|
|
3234
|
+
| `/discovery` | Alternativa ágil (equivale a `--quick` + Tracker) |
|
|
3235
|
+
| `/brainstorm` | Exploração standalone sem projeto |
|
|
3236
|
+
| `/enhance` | Nova feature em projeto existente |
|
|
3237
|
+
| `/document` | Documentar projeto legado |
|
|
3238
|
+
|
|
3239
|
+
---
|
|
3240
|
+
|
|
3241
|
+
## 🔴 REGRAS CRÍTICAS
|
|
3242
|
+
|
|
3243
|
+
1. **Aprovação humana obrigatória** em PRD e TDD
|
|
3244
|
+
2. **Testes ANTES do código** (TDD Metodologia)
|
|
3245
|
+
3. **Cobertura >= 80%** antes de deploy
|
|
3246
|
+
4. **Rastreabilidade:** TDD referencia PRD, Tasks referenciam TDD
|
|
3247
|
+
5. **Um projeto = Um PRD = Um TDD principal**
|
|
3248
|
+
6. **Ambientes obrigatórios:** SEMPRE perguntar sobre dev/staging/prod antes de deploy (Phase 7.1)
|
|
3249
|
+
7. **📚 DOCUMENTAÇÃO PARA DEVS E USUÁRIOS** - Ao final do projeto (Phase 7.5 + 7.6), publicar docs completos nas plataforma Flyee. Seguir Flyee API → "DOCUMENTATION DATABASES"
|
|
3250
|
+
8. **📋 TRACKING DESDE O INÍCIO** - Tasks de planejamento (Phase 2.5–2.9) são criadas na Phase 2.1, garantindo tracking completo desde o início do projeto. Pulado no modo `--quick`
|
|
3251
|
+
|
|
3252
|
+
---
|
|
3253
|
+
|
|
3254
|
+
## Usage Examples
|
|
3255
|
+
|
|
3256
|
+
```bash
|
|
3257
|
+
# Novo projeto com ideia indefinida (inclui brainstorm)
|
|
3258
|
+
/new-project --brainstorm meu-app-fitness
|
|
3259
|
+
|
|
3260
|
+
# Novo projeto com ideia clara (fluxo completo)
|
|
3261
|
+
/new-project meu-app-fitness
|
|
3262
|
+
|
|
3263
|
+
# Projeto rápido sem PRD formal (modo ágil)
|
|
3264
|
+
/new-project --quick meu-app-fitness
|
|
3265
|
+
|
|
3266
|
+
# Continuar de PRD já aprovado
|
|
3267
|
+
/new-project --from-prd docs/PRD-meu-app.md
|
|
3268
|
+
|
|
3269
|
+
# Continuar de TDD já aprovado
|
|
3270
|
+
/new-project --from-tdd docs/design/TDD-meu-app.md
|
|
3271
|
+
|
|
3272
|
+
# Importar de proposta comercial aprovada
|
|
3273
|
+
/new-project --from-demand "Proposta App Fitness"
|
|
3274
|
+
|
|
3275
|
+
# Ver status do projeto
|
|
3276
|
+
/new-project status
|
|
3277
|
+
```
|
|
3278
|
+
|
|
3279
|
+
---
|
|
3280
|
+
|
|
3281
|
+
## 📋 Comparativo de Modos
|
|
3282
|
+
|
|
3283
|
+
| Aspecto | Completo | --brainstorm | --quick |
|
|
3284
|
+
|---------|----------|--------------|---------|
|
|
3285
|
+
| Phase 0 (Brainstorm) | ❌ | ✅ | ❌ |
|
|
3286
|
+
| Phase 1 (PRD) | ✅ | ✅ | ❌ |
|
|
3287
|
+
| Phase 2 (TDD) | ✅ | ✅ | ✅ |
|
|
3288
|
+
| Phase 2.1 (Task Setup) | ✅ | ✅ | ❌ |
|
|
3289
|
+
| Socratic Gate | 12 perguntas | 12 perguntas | 5 perguntas |
|
|
3290
|
+
| Documentação | PRD + TDD | PRD + TDD | TDD only |
|
|
3291
|
+
| Tempo estimado | Maior | Maior | Menor |
|
|
3292
|
+
| Recomendado para | Projetos formais | Ideias indefinidas | MVPs rápidos |
|