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,2529 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: notion-task-patterns
|
|
3
|
+
description: "⚠️ DEPRECATED — Use Flyee API (bridge.py) para task management. Este skill é mantido apenas como referência histórica."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# ⚠️ DEPRECATED — Notion Task Patterns
|
|
7
|
+
|
|
8
|
+
> [!CAUTION]
|
|
9
|
+
> **Este skill foi DEPRECADO em 2026-03-14.**
|
|
10
|
+
>
|
|
11
|
+
> **Motivo:** Todos os workflows foram migrados para usar a Flyee API via `bridge.py`
|
|
12
|
+
> em vez de Notion MCP tools.
|
|
13
|
+
>
|
|
14
|
+
> **Substituto:** `.agent/flyee-bridge/bridge.py` — funções `create_task()`, `update_task()`,
|
|
15
|
+
> `list_tasks()`, `get_task()`.
|
|
16
|
+
>
|
|
17
|
+
> **Se você chegou aqui via referência em workflow:** A referência deveria ter sido
|
|
18
|
+
> atualizada para "Flyee API". Verifique o workflow de origem.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Referência Rápida — Flyee API (Substituto)
|
|
23
|
+
|
|
24
|
+
```python
|
|
25
|
+
from bridge import create_task, update_task, list_tasks, get_task, load_config
|
|
26
|
+
|
|
27
|
+
config = load_config()
|
|
28
|
+
|
|
29
|
+
# Criar task
|
|
30
|
+
create_task(api_url=config["api_url"], api_key=config["api_key"],
|
|
31
|
+
project_id=config["project_id"], task_type="implement_feature",
|
|
32
|
+
name="Nome da Task", description="Descrição")
|
|
33
|
+
|
|
34
|
+
# Atualizar task
|
|
35
|
+
update_task(api_url=config["api_url"], api_key=config["api_key"],
|
|
36
|
+
task_id="<id>", status="completed", result_status="success",
|
|
37
|
+
output={"summary": "..."}, metrics={"time_spent": "2h"})
|
|
38
|
+
|
|
39
|
+
# Listar tasks
|
|
40
|
+
tasks = list_tasks(api_url=config["api_url"], api_key=config["api_key"],
|
|
41
|
+
project_id=config["project_id"])
|
|
42
|
+
|
|
43
|
+
# Buscar task
|
|
44
|
+
task = get_task(api_url=config["api_url"], api_key=config["api_key"],
|
|
45
|
+
task_id="<id>")
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
> **CONTEÚDO ABAIXO MANTIDO COMO REFERÊNCIA HISTÓRICA.**
|
|
51
|
+
> Os templates de corpo por categoria (Feature, Bug, Melhoria, etc.) podem ser
|
|
52
|
+
> úteis como referência de formato, mas os API calls devem usar Flyee API.
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
# (HISTÓRICO) Notion Task Patterns
|
|
57
|
+
|
|
58
|
+
> ~~**Single Source of Truth** para todos os workflows que manipulam tasks no Notion.~~
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## 🎯 PROPÓSITO
|
|
63
|
+
|
|
64
|
+
Garantir consistência em:
|
|
65
|
+
|
|
66
|
+
1. **Database Padrão** - Sempre usar "Tarefas"
|
|
67
|
+
2. **Validação de Schema** - Propriedades obrigatórias
|
|
68
|
+
3. **Formato de Corpo** - Template por categoria
|
|
69
|
+
4. **API Calls** - Exemplos padronizados
|
|
70
|
+
5. **Idioma** - Templates localizados para transparência com cliente
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## 🌐 IDIOMA DAS TASKS (GATE PRÉ-CRIAÇÃO)
|
|
75
|
+
|
|
76
|
+
> [!IMPORTANT]
|
|
77
|
+
> **REGRA:** Antes de criar tasks, perguntar ao usuário o idioma preferido.
|
|
78
|
+
> O objetivo é **transparência com o cliente** - tasks devem ser compreensíveis.
|
|
79
|
+
|
|
80
|
+
### Pergunta Obrigatória (1x por Projeto)
|
|
81
|
+
|
|
82
|
+
```markdown
|
|
83
|
+
🌐 **Idioma das Tasks no Notion**
|
|
84
|
+
|
|
85
|
+
Para garantir transparência com o cliente, em qual idioma você prefere que as tasks sejam escritas?
|
|
86
|
+
|
|
87
|
+
- [ ] 🇧🇷 **Português** (recomendado para clientes brasileiros)
|
|
88
|
+
- [ ] 🇺🇸 **English** (recommended for international teams)
|
|
89
|
+
|
|
90
|
+
Essa escolha afeta:
|
|
91
|
+
|
|
92
|
+
- Títulos das seções (User Story, Acceptance Criteria, etc.)
|
|
93
|
+
- Descrições e critérios de aceite
|
|
94
|
+
- Comentários de progresso e conclusão
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Quando Perguntar
|
|
98
|
+
|
|
99
|
+
| Situação | Ação |
|
|
100
|
+
| ---------------------------------------------- | -------------------------------------------- |
|
|
101
|
+
| Novo projeto (`/new-project`, `/discovery`) | ⭐ Perguntar na Phase 3 (antes do Breakdown) |
|
|
102
|
+
| Projeto existente sem preferência salva | ⭐ Perguntar antes de criar primeira task |
|
|
103
|
+
| Preferência já definida em PROJECT-PROGRESS.md | ✅ Usar idioma salvo |
|
|
104
|
+
|
|
105
|
+
### Salvar Preferência
|
|
106
|
+
|
|
107
|
+
Adicionar em `docs/PROJECT-PROGRESS.md`:
|
|
108
|
+
|
|
109
|
+
```markdown
|
|
110
|
+
## Configurações
|
|
111
|
+
|
|
112
|
+
| Configuração | Valor |
|
|
113
|
+
| ------------ | ------------ |
|
|
114
|
+
| Idioma Tasks | 🇧🇷 Português |
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## 🔴 DATABASE PADRÃO (OBRIGATÓRIO)
|
|
120
|
+
|
|
121
|
+
> [!CAUTION]
|
|
122
|
+
> **REGRA BLOQUEANTE:** TODOS os workflows DEVEM buscar o database com nome exato **"Tarefas"**.
|
|
123
|
+
> NÃO usar outros databases como "Daily", "Sprint", etc.
|
|
124
|
+
|
|
125
|
+
### Busca Obrigatória
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
Use: mcp_notion-mcp-server_API-post-search
|
|
129
|
+
query: "Tarefas"
|
|
130
|
+
filter: { "property": "object", "value": "data_source" }
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Validação do Nome
|
|
134
|
+
|
|
135
|
+
| Resultado da Busca | Ação |
|
|
136
|
+
| -------------------- | ------------------------------- |
|
|
137
|
+
| Encontrou "Tarefas" | ✅ Usar este database |
|
|
138
|
+
| Encontrou outro nome | ❌ PARAR e perguntar ao usuário |
|
|
139
|
+
| Não encontrou nada | ❌ PARAR e notificar usuário |
|
|
140
|
+
|
|
141
|
+
### Mensagem se Database Incorreto
|
|
142
|
+
|
|
143
|
+
```markdown
|
|
144
|
+
⚠️ **DATABASE INCORRETO**
|
|
145
|
+
|
|
146
|
+
Esperado: "Tarefas"
|
|
147
|
+
Encontrado: "{nome_encontrado}"
|
|
148
|
+
|
|
149
|
+
O padrão do projeto exige que tasks sejam criadas no database "Tarefas".
|
|
150
|
+
|
|
151
|
+
**Opções:**
|
|
152
|
+
|
|
153
|
+
1. Criar database "Tarefas" no Notion
|
|
154
|
+
2. Confirmar que deseja usar "{nome_encontrado}" (não recomendado)
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## 📋 PROPRIEDADES OBRIGATÓRIAS
|
|
160
|
+
|
|
161
|
+
> [!IMPORTANT]
|
|
162
|
+
> Antes de criar qualquer task, valide se o database possui estas propriedades.
|
|
163
|
+
> Se QUALQUER propriedade obrigatória estiver ausente, **PARE e notifique o usuário**.
|
|
164
|
+
|
|
165
|
+
### Na Criação da Task
|
|
166
|
+
|
|
167
|
+
| Propriedade | Tipo | Obrigatório | Notas |
|
|
168
|
+
| ---------------- | ------------ | ------------- | ---------------------------------------------------- |
|
|
169
|
+
| `Nome da tarefa` | title | ✅ Sim | Título da task — **SEM PREFIXOS** (ver regra abaixo) |
|
|
170
|
+
| `Status` | status | ✅ Sim | Options: Não iniciado, Em andamento, Concluído |
|
|
171
|
+
| `ID` | unique_id | ✅ Automático | Autoincremento do Notion (NÃO preencher na criação) |
|
|
172
|
+
| `Categoria` | multi_select | ✅ Sim | Feature, Bug, Melhoria, Refatoração, Log |
|
|
173
|
+
| `Prioridade` | select | ✅ Sim | Alta, Média, Baixa |
|
|
174
|
+
| `Épico` | select | ✅ Sim | Módulo/Feature principal (1. Setup, 2. Auth, etc.) |
|
|
175
|
+
| `Estimativa` | number | ✅ Sim | **Horas estimadas** (obrigatório na criação) |
|
|
176
|
+
| `% Progresso` | number | ✅ Sim | Percentual de conclusão (0-100) |
|
|
177
|
+
|
|
178
|
+
### 🚫 REGRA DE NOMENCLATURA: SEM PREFIXOS (OBRIGATÓRIO)
|
|
179
|
+
|
|
180
|
+
> [!CAUTION]
|
|
181
|
+
> **REGRA BLOQUEANTE:** Títulos de tasks NÃO devem conter prefixos como `[DOC]`, `[TDD]`,
|
|
182
|
+
> `[TEST]`, `[BUG]`, `[FEAT]`, `F1 —`, `F2 —` ou qualquer tag/numeração inventada.
|
|
183
|
+
> A **Categoria** (multi_select) já cumpre essa função. Duplicar no título é redundante.
|
|
184
|
+
|
|
185
|
+
| ❌ ERRADO | ✅ CORRETO |
|
|
186
|
+
| ----------------------------------- | ---------------------------------------------- |
|
|
187
|
+
| `[DOC] F1 — Checkout e Onboarding` | `Checkout e Onboarding` |
|
|
188
|
+
| `[TDD] Subscriptions — TDD Reverso` | `Subscriptions — TDD Reverso` |
|
|
189
|
+
| `[TEST] Testes Unitários` | `Testes Unitários e Integração` |
|
|
190
|
+
| `[BUG] Fix login timeout` | `Fix login timeout` |
|
|
191
|
+
| `P0 Fix — PlanController auth` | `PlanController sem JwtAuthGuard` |
|
|
192
|
+
| `Bug Fix — modulesValue billing` | `modulesValue=0 hardcoded (billing incorreta)` |
|
|
193
|
+
|
|
194
|
+
> [!WARNING]
|
|
195
|
+
> **📜 HISTÓRICO DE FALHAS:**
|
|
196
|
+
>
|
|
197
|
+
> - **(2026-02-18 v1):** 10 tasks criadas com prefixos `[DOC]`/`[TDD]`/`[TEST]` no título.
|
|
198
|
+
> Causa: agente inventou prefixos para organizar, duplicando a Categoria.
|
|
199
|
+
> - **(2026-02-18 v2):** Tasks #11 e #12 criadas com prefixo `P0 Fix —` no título.
|
|
200
|
+
> Causa: agente usou prioridade como prefixo. Info de prioridade pertence à propriedade
|
|
201
|
+
> `Prioridade` (select), NÃO ao título. Inclui: `P0`, `P1`, `Bug Fix`, `Security Fix`, etc.
|
|
202
|
+
|
|
203
|
+
### Na Conclusão da Task
|
|
204
|
+
|
|
205
|
+
| Propriedade | Tipo | Obrigatório | Notas |
|
|
206
|
+
| ------------- | --------- | ----------- | ------------------------------------------------------------ |
|
|
207
|
+
| `Tempo Gasto` | rich_text | ✅ Sim | **Tempo real gasto** (ex: "2h30m") - obrigatório ao concluir |
|
|
208
|
+
|
|
209
|
+
> [!CAUTION]
|
|
210
|
+
> **REGRA:** Ao marcar task como "Concluído", **DEVE** preencher `Tempo Gasto`.
|
|
211
|
+
|
|
212
|
+
### Propriedades Opcionais
|
|
213
|
+
|
|
214
|
+
| Propriedade | Tipo | Notas |
|
|
215
|
+
| ------------------ | ------ | --------------------------------------------- |
|
|
216
|
+
| `Nível de esforço` | select | XS, S, M, L, XL |
|
|
217
|
+
| `Agente` | select | backend-specialist, frontend-specialist, etc. |
|
|
218
|
+
| `Projeto` | select | Nome do projeto |
|
|
219
|
+
| `Prazo` | date | Data limite |
|
|
220
|
+
| `Responsável` | people | Quem é responsável |
|
|
221
|
+
|
|
222
|
+
### Propriedades Automáticas (Read-Only)
|
|
223
|
+
|
|
224
|
+
> [!NOTE]
|
|
225
|
+
> Estas propriedades são **gerenciadas automaticamente** pelo Notion.
|
|
226
|
+
> **NÃO** inclua em chamadas de API - elas são read-only.
|
|
227
|
+
|
|
228
|
+
| Propriedade | Tipo | Comportamento |
|
|
229
|
+
| --------------- | ---------------- | ----------------------------- |
|
|
230
|
+
| `Criado em` | created_time | Preenchido ao criar página |
|
|
231
|
+
| `Última edição` | last_edited_time | Atualizado a cada modificação |
|
|
232
|
+
|
|
233
|
+
---
|
|
234
|
+
|
|
235
|
+
## 🔄 CICLO DE VIDA DA TASK
|
|
236
|
+
|
|
237
|
+
### Fases e Propriedades Obrigatórias
|
|
238
|
+
|
|
239
|
+
| Fase | Trigger | Propriedades Obrigatórias |
|
|
240
|
+
| ------------- | ----------------------------------------------------------- | ---------------------------------------- |
|
|
241
|
+
| **Criação** | `/discovery`, `/new-project`, `/new-task`, `/legacy-project` | `Estimativa` ✅ |
|
|
242
|
+
| **Início** | `/execute`, `/task-update start` | `Status` → "Em andamento" |
|
|
243
|
+
| **Progresso** | `/task-update progress` | Comentário de progresso |
|
|
244
|
+
| **Conclusão** | `/execute`, `/task-update done` | `Status` → "Concluído", `Tempo Gasto` ✅ |
|
|
245
|
+
|
|
246
|
+
### 🚨 GATE DE SYNC NOTION (OBRIGATÓRIO) ⭐
|
|
247
|
+
|
|
248
|
+
> [!CAUTION]
|
|
249
|
+
> **REGRA BLOQUEANTE:** Quando uma task ou épico é concluído localmente (testes passando, código funcionando),
|
|
250
|
+
> o agente **DEVE** atualizar o Notion **ANTES** de prosseguir para próxima task/épico.
|
|
251
|
+
> **NUNCA** deixar sync para depois - isso causa inconsistência e falta de transparência.
|
|
252
|
+
|
|
253
|
+
> [!WARNING]
|
|
254
|
+
> **📜 HISTÓRICO DE FALHAS (2026-02-06):**
|
|
255
|
+
>
|
|
256
|
+
> - **Gap detectado:** Agente ignorou sync após concluir tasks #11-#17
|
|
257
|
+
> - **Causa raiz:** Workflow referenciava skill mas não tinha chamadas MCP inline
|
|
258
|
+
> - **Correção aplicada:** Workflow `new-project.md` agora inclui PASSOS 1-4 com chamadas MCP explícitas
|
|
259
|
+
> - **Lição:** NUNCA apenas referenciar outra skill para ações críticas - incluir comandos inline
|
|
260
|
+
|
|
261
|
+
**Trigger:**
|
|
262
|
+
|
|
263
|
+
- Testes passando para uma task
|
|
264
|
+
- Épico completo (todas tasks do épico concluídas)
|
|
265
|
+
- Trabalho manual executado (refatoração, fix, etc.)
|
|
266
|
+
|
|
267
|
+
**Ação Obrigatória (sequencial):**
|
|
268
|
+
|
|
269
|
+
1. **Atualizar Status** → "Concluído"
|
|
270
|
+
2. **Preencher Tempo Gasto** → Ex: "2h30m"
|
|
271
|
+
3. **Adicionar % Progresso** → 100
|
|
272
|
+
4. **Adicionar Nota de Conclusão no Corpo** → Append block com resumo
|
|
273
|
+
|
|
274
|
+
```json
|
|
275
|
+
// Tool: mcp_notion-mcp-server_API-patch-page
|
|
276
|
+
{
|
|
277
|
+
"page_id": "{page_id}",
|
|
278
|
+
"properties": {
|
|
279
|
+
"Status": { "status": { "name": "Concluído" } },
|
|
280
|
+
"Tempo Gasto": { "rich_text": [{ "text": { "content": "{tempo}" } }] },
|
|
281
|
+
"% Progresso": { "number": 100 }
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
**Nota de Conclusão (append ao corpo da task):**
|
|
287
|
+
|
|
288
|
+
```json
|
|
289
|
+
// Tool: mcp_notion-mcp-server_API-patch-block-children
|
|
290
|
+
{
|
|
291
|
+
"block_id": "{page_id}",
|
|
292
|
+
"children": [
|
|
293
|
+
{
|
|
294
|
+
"type": "divider",
|
|
295
|
+
"divider": {}
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
"type": "callout",
|
|
299
|
+
"callout": {
|
|
300
|
+
"icon": { "type": "emoji", "emoji": "✅" },
|
|
301
|
+
"rich_text": [
|
|
302
|
+
{ "type": "text", "text": { "content": "Concluído em {data}" } }
|
|
303
|
+
]
|
|
304
|
+
}
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
"type": "bulleted_list_item",
|
|
308
|
+
"bulleted_list_item": {
|
|
309
|
+
"rich_text": [
|
|
310
|
+
{
|
|
311
|
+
"type": "text",
|
|
312
|
+
"text": { "content": "📋 {resumo da implementação}" }
|
|
313
|
+
}
|
|
314
|
+
]
|
|
315
|
+
}
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
"type": "bulleted_list_item",
|
|
319
|
+
"bulleted_list_item": {
|
|
320
|
+
"rich_text": [
|
|
321
|
+
{
|
|
322
|
+
"type": "text",
|
|
323
|
+
"text": { "content": "🧪 Testes: {X} novos ({arquivo}.test.tsx)" }
|
|
324
|
+
}
|
|
325
|
+
]
|
|
326
|
+
}
|
|
327
|
+
},
|
|
328
|
+
{
|
|
329
|
+
"type": "bulleted_list_item",
|
|
330
|
+
"bulleted_list_item": {
|
|
331
|
+
"rich_text": [
|
|
332
|
+
{
|
|
333
|
+
"type": "text",
|
|
334
|
+
"text": {
|
|
335
|
+
"content": "📁 Arquivos: {lista de arquivos modificados}"
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
]
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
]
|
|
342
|
+
}
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
**Mensagem Obrigatória ao Concluir Épico:**
|
|
346
|
+
|
|
347
|
+
```markdown
|
|
348
|
+
✅ **Épico X Completo**
|
|
349
|
+
|
|
350
|
+
📋 **Tasks concluídas:**
|
|
351
|
+
| ID | Task | Tempo |
|
|
352
|
+
|----|------|-------|
|
|
353
|
+
| #1 | {nome} | {tempo} |
|
|
354
|
+
| #2 | {nome} | {tempo} |
|
|
355
|
+
|
|
356
|
+
🔄 **Synced com Notion:** ✅
|
|
357
|
+
📍 **Próximo:** Épico Y - {nome}
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
> [!WARNING]
|
|
361
|
+
> **FALHA DETECTADA:** Épicos sendo marcados como "completos" sem atualizar Notion.
|
|
362
|
+
> Esta regra existe para EVITAR essa inconsistência.
|
|
363
|
+
|
|
364
|
+
### 🚨 GATE DE FINALIZAÇÃO (Pre-Start Check)
|
|
365
|
+
|
|
366
|
+
> [!CAUTION]
|
|
367
|
+
> **REGRA BLOQUEANTE:** Antes de iniciar qualquer nova task, o agente DEVE verificar
|
|
368
|
+
> se há tasks com Status="Em andamento". Se houver, PERGUNTAR ao usuário.
|
|
369
|
+
|
|
370
|
+
**Verificação obrigatória:**
|
|
371
|
+
|
|
372
|
+
```json
|
|
373
|
+
// Tool: mcp_notion-mcp-server_API-query-data-source
|
|
374
|
+
{
|
|
375
|
+
"data_source_id": "{DATABASE_ID}",
|
|
376
|
+
"filter": {
|
|
377
|
+
"property": "Status",
|
|
378
|
+
"status": { "equals": "Em andamento" }
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
**Se encontrar tasks abertas:**
|
|
384
|
+
|
|
385
|
+
```
|
|
386
|
+
⚠️ TASK EM ANDAMENTO DETECTADA
|
|
387
|
+
|
|
388
|
+
📋 {nome da task}
|
|
389
|
+
📊 Status: Em andamento
|
|
390
|
+
⏱️ Tempo Gasto: (não preenchido)
|
|
391
|
+
|
|
392
|
+
Deseja:
|
|
393
|
+
1. Finalizar esta task primeiro (preencher Tempo Gasto)
|
|
394
|
+
2. Iniciar nova task mesmo assim
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
### Regras do Ciclo
|
|
398
|
+
|
|
399
|
+
1. **CRIAÇÃO:** `Estimativa` é **OBRIGATÓRIO** - não criar task sem este campo
|
|
400
|
+
2. **CONCLUSÃO:** `Tempo Gasto` é **OBRIGATÓRIO** - não marcar "Concluído" sem preencher
|
|
401
|
+
3. **GATE:** Verificar tasks abertas antes de iniciar nova
|
|
402
|
+
|
|
403
|
+
---
|
|
404
|
+
|
|
405
|
+
## 🛑 VALIDAÇÃO DE SCHEMA (OBRIGATÓRIO)
|
|
406
|
+
|
|
407
|
+
> [!CAUTION]
|
|
408
|
+
> **REGRA BLOQUEANTE:** Este processo DEVE ser executado ANTES de criar qualquer task.
|
|
409
|
+
> NÃO pule esta validação em nenhuma circunstância.
|
|
410
|
+
|
|
411
|
+
### Processo de Validação (3 Passos)
|
|
412
|
+
|
|
413
|
+
**Passo 1 - Buscar Database:**
|
|
414
|
+
|
|
415
|
+
```
|
|
416
|
+
Use: mcp_notion-mcp-server_API-post-search
|
|
417
|
+
query: "Tarefas"
|
|
418
|
+
filter: { "property": "object", "value": "data_source" }
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
**Passo 2 - Recuperar Schema:**
|
|
422
|
+
|
|
423
|
+
```
|
|
424
|
+
Use: mcp_notion-mcp-server_API-retrieve-a-database
|
|
425
|
+
database_id: {DATABASE_ID}
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
**Passo 3 - Validar Propriedades:**
|
|
429
|
+
|
|
430
|
+
- Verificar se TODAS as propriedades obrigatórias existem
|
|
431
|
+
- Se QUALQUER uma estiver ausente → **PARAR**
|
|
432
|
+
|
|
433
|
+
### Mensagem de Erro OBRIGATÓRIA
|
|
434
|
+
|
|
435
|
+
Se propriedades estiverem ausentes, exibir:
|
|
436
|
+
|
|
437
|
+
```markdown
|
|
438
|
+
⚠️ **PROPRIEDADES AUSENTES** no database 'Tarefas':
|
|
439
|
+
|
|
440
|
+
| Propriedade | Tipo Esperado |
|
|
441
|
+
| ----------- | ------------- |
|
|
442
|
+
| {nome} | {tipo} |
|
|
443
|
+
| {nome} | {tipo} |
|
|
444
|
+
|
|
445
|
+
**Por favor, crie estas propriedades no Notion antes de continuar.**
|
|
446
|
+
|
|
447
|
+
🔗 [Abrir database no Notion]({notion_url})
|
|
448
|
+
|
|
449
|
+
---
|
|
450
|
+
|
|
451
|
+
**Instruções para criar propriedades:**
|
|
452
|
+
|
|
453
|
+
1. Abra o database "Tarefas" no Notion
|
|
454
|
+
2. Clique em "+" ao lado do último cabeçalho de coluna
|
|
455
|
+
3. Adicione cada propriedade com o tipo correto
|
|
456
|
+
|
|
457
|
+
**AGUARDANDO** confirmação após criar as propriedades...
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
> [!CAUTION]
|
|
461
|
+
> **NÃO prossiga** com criação de tasks até que TODAS as propriedades obrigatórias existam.
|
|
462
|
+
> O usuário DEVE confirmar que criou as propriedades antes de continuar.
|
|
463
|
+
|
|
464
|
+
---
|
|
465
|
+
|
|
466
|
+
## 📝 FORMATO DO CORPO POR CATEGORIA
|
|
467
|
+
|
|
468
|
+
### Detectar Categoria
|
|
469
|
+
|
|
470
|
+
| Categoria | Trigger Keywords | Formato |
|
|
471
|
+
| -------------- | ---------------------------------------------------------- | --------------------- |
|
|
472
|
+
| `Feature` | "nova", "criar", "implementar", "adicionar" | User Story |
|
|
473
|
+
| `Bug` | "fix", "corrigir", "erro", "bug", "problema" | Bug Report |
|
|
474
|
+
| `Melhoria` | "refactor", "melhorar", "otimizar", "limpar" | Plano Técnico |
|
|
475
|
+
| `Refatoração` | "débito", "legacy", "modernizar" | Plano Técnico |
|
|
476
|
+
| `Documentação` | "documentar", "TDD", "design system", "fluxo", "análise" | Template Documentação |
|
|
477
|
+
| `Prototipação` | "protótipo", "stitch", "mockup", "wireframe", "UI", "tela" | Template Prototipação |
|
|
478
|
+
| `Log` | trabalho retroativo | Resumo Técnico |
|
|
479
|
+
|
|
480
|
+
---
|
|
481
|
+
|
|
482
|
+
### 🎯 Template: FEATURE (User Story)
|
|
483
|
+
|
|
484
|
+
> **Usar o idioma definido pelo usuário em PROJECT-PROGRESS.md**
|
|
485
|
+
|
|
486
|
+
#### 🇧🇷 Português (PT-BR)
|
|
487
|
+
|
|
488
|
+
```json
|
|
489
|
+
// Tool: mcp_notion-mcp-server_API-patch-block-children
|
|
490
|
+
{
|
|
491
|
+
"block_id": "{page_id}",
|
|
492
|
+
"children": [
|
|
493
|
+
{
|
|
494
|
+
"heading_2": {
|
|
495
|
+
"rich_text": [{ "text": { "content": "📖 História do Usuário" } }]
|
|
496
|
+
}
|
|
497
|
+
},
|
|
498
|
+
{
|
|
499
|
+
"paragraph": {
|
|
500
|
+
"rich_text": [
|
|
501
|
+
{
|
|
502
|
+
"text": {
|
|
503
|
+
"content": "Como **{persona}**, eu quero **{ação}**, para que **{benefício}**."
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
]
|
|
507
|
+
}
|
|
508
|
+
},
|
|
509
|
+
|
|
510
|
+
{
|
|
511
|
+
"heading_2": {
|
|
512
|
+
"rich_text": [{ "text": { "content": "✅ Critérios de Aceite" } }]
|
|
513
|
+
}
|
|
514
|
+
},
|
|
515
|
+
{
|
|
516
|
+
"to_do": {
|
|
517
|
+
"rich_text": [
|
|
518
|
+
{
|
|
519
|
+
"text": {
|
|
520
|
+
"content": "Dado {contexto}, Quando {ação}, Então {resultado}"
|
|
521
|
+
}
|
|
522
|
+
}
|
|
523
|
+
],
|
|
524
|
+
"checked": false
|
|
525
|
+
}
|
|
526
|
+
},
|
|
527
|
+
{
|
|
528
|
+
"to_do": {
|
|
529
|
+
"rich_text": [
|
|
530
|
+
{
|
|
531
|
+
"text": {
|
|
532
|
+
"content": "Dado {contexto}, Quando {ação}, Então {resultado}"
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
],
|
|
536
|
+
"checked": false
|
|
537
|
+
}
|
|
538
|
+
},
|
|
539
|
+
|
|
540
|
+
{
|
|
541
|
+
"heading_2": {
|
|
542
|
+
"rich_text": [{ "text": { "content": "⚠️ Casos Especiais" } }]
|
|
543
|
+
}
|
|
544
|
+
},
|
|
545
|
+
{
|
|
546
|
+
"bulleted_list_item": {
|
|
547
|
+
"rich_text": [{ "text": { "content": "{caso especial 1}" } }]
|
|
548
|
+
}
|
|
549
|
+
},
|
|
550
|
+
{
|
|
551
|
+
"bulleted_list_item": {
|
|
552
|
+
"rich_text": [{ "text": { "content": "{caso especial 2}" } }]
|
|
553
|
+
}
|
|
554
|
+
},
|
|
555
|
+
|
|
556
|
+
{
|
|
557
|
+
"heading_2": {
|
|
558
|
+
"rich_text": [{ "text": { "content": "🔗 Referências" } }]
|
|
559
|
+
}
|
|
560
|
+
},
|
|
561
|
+
{
|
|
562
|
+
"paragraph": {
|
|
563
|
+
"rich_text": [{ "text": { "content": "PRD: {link}\nTDD: {link}" } }]
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
]
|
|
567
|
+
}
|
|
568
|
+
```
|
|
569
|
+
|
|
570
|
+
#### 🇺🇸 English (EN)
|
|
571
|
+
|
|
572
|
+
```json
|
|
573
|
+
// Tool: mcp_notion-mcp-server_API-patch-block-children
|
|
574
|
+
{
|
|
575
|
+
"block_id": "{page_id}",
|
|
576
|
+
"children": [
|
|
577
|
+
{
|
|
578
|
+
"heading_2": { "rich_text": [{ "text": { "content": "📖 User Story" } }] }
|
|
579
|
+
},
|
|
580
|
+
{
|
|
581
|
+
"paragraph": {
|
|
582
|
+
"rich_text": [
|
|
583
|
+
{
|
|
584
|
+
"text": {
|
|
585
|
+
"content": "As a **{persona}**, I want to **{action}**, so that **{benefit}**."
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
]
|
|
589
|
+
}
|
|
590
|
+
},
|
|
591
|
+
|
|
592
|
+
{
|
|
593
|
+
"heading_2": {
|
|
594
|
+
"rich_text": [{ "text": { "content": "✅ Acceptance Criteria" } }]
|
|
595
|
+
}
|
|
596
|
+
},
|
|
597
|
+
{
|
|
598
|
+
"to_do": {
|
|
599
|
+
"rich_text": [
|
|
600
|
+
{
|
|
601
|
+
"text": {
|
|
602
|
+
"content": "Given {context}, When {action}, Then {outcome}"
|
|
603
|
+
}
|
|
604
|
+
}
|
|
605
|
+
],
|
|
606
|
+
"checked": false
|
|
607
|
+
}
|
|
608
|
+
},
|
|
609
|
+
{
|
|
610
|
+
"to_do": {
|
|
611
|
+
"rich_text": [
|
|
612
|
+
{
|
|
613
|
+
"text": {
|
|
614
|
+
"content": "Given {context}, When {action}, Then {outcome}"
|
|
615
|
+
}
|
|
616
|
+
}
|
|
617
|
+
],
|
|
618
|
+
"checked": false
|
|
619
|
+
}
|
|
620
|
+
},
|
|
621
|
+
|
|
622
|
+
{
|
|
623
|
+
"heading_2": { "rich_text": [{ "text": { "content": "⚠️ Edge Cases" } }] }
|
|
624
|
+
},
|
|
625
|
+
{
|
|
626
|
+
"bulleted_list_item": {
|
|
627
|
+
"rich_text": [{ "text": { "content": "{edge case 1}" } }]
|
|
628
|
+
}
|
|
629
|
+
},
|
|
630
|
+
{
|
|
631
|
+
"bulleted_list_item": {
|
|
632
|
+
"rich_text": [{ "text": { "content": "{edge case 2}" } }]
|
|
633
|
+
}
|
|
634
|
+
},
|
|
635
|
+
|
|
636
|
+
{
|
|
637
|
+
"heading_2": { "rich_text": [{ "text": { "content": "🔗 References" } }] }
|
|
638
|
+
},
|
|
639
|
+
{
|
|
640
|
+
"paragraph": {
|
|
641
|
+
"rich_text": [{ "text": { "content": "PRD: {link}\nTDD: {link}" } }]
|
|
642
|
+
}
|
|
643
|
+
}
|
|
644
|
+
]
|
|
645
|
+
}
|
|
646
|
+
```
|
|
647
|
+
|
|
648
|
+
---
|
|
649
|
+
|
|
650
|
+
### 🐛 Template: BUG
|
|
651
|
+
|
|
652
|
+
```
|
|
653
|
+
Use: mcp_notion-mcp-server_API-patch-block-children
|
|
654
|
+
block_id: {page_id}
|
|
655
|
+
children: [
|
|
656
|
+
{ "heading_2": { "rich_text": [{ "text": { "content": "🐛 Problema" } }] } },
|
|
657
|
+
{ "paragraph": { "rich_text": [{ "text": { "content": "{descrição do bug}" } }] } },
|
|
658
|
+
|
|
659
|
+
{ "heading_2": { "rich_text": [{ "text": { "content": "📋 Passos para Reproduzir" } }] } },
|
|
660
|
+
{ "numbered_list_item": { "rich_text": [{ "text": { "content": "{passo 1}" } }] } },
|
|
661
|
+
{ "numbered_list_item": { "rich_text": [{ "text": { "content": "{passo 2}" } }] } },
|
|
662
|
+
|
|
663
|
+
{ "heading_2": { "rich_text": [{ "text": { "content": "✅ Critérios de Resolução" } }] } },
|
|
664
|
+
{ "to_do": { "rich_text": [{ "text": { "content": "{critério 1}" } }], "checked": false } },
|
|
665
|
+
{ "to_do": { "rich_text": [{ "text": { "content": "{critério 2}" } }], "checked": false } },
|
|
666
|
+
|
|
667
|
+
{ "heading_2": { "rich_text": [{ "text": { "content": "🔗 References" } }] } },
|
|
668
|
+
{ "paragraph": { "rich_text": [{ "text": { "content": "Related: #{task_id}" } }] } }
|
|
669
|
+
]
|
|
670
|
+
```
|
|
671
|
+
|
|
672
|
+
---
|
|
673
|
+
|
|
674
|
+
### 🔧 Template: MELHORIA / REFATORAÇÃO
|
|
675
|
+
|
|
676
|
+
```
|
|
677
|
+
Use: mcp_notion-mcp-server_API-patch-block-children
|
|
678
|
+
block_id: {page_id}
|
|
679
|
+
children: [
|
|
680
|
+
{ "heading_2": { "rich_text": [{ "text": { "content": "📋 Plano Técnico" } }] } },
|
|
681
|
+
{ "paragraph": { "rich_text": [{ "text": { "content": "{descrição técnica}" } }] } },
|
|
682
|
+
|
|
683
|
+
{ "heading_2": { "rich_text": [{ "text": { "content": "✅ Checklist" } }] } },
|
|
684
|
+
{ "to_do": { "rich_text": [{ "text": { "content": "{item 1}" } }], "checked": false } },
|
|
685
|
+
{ "to_do": { "rich_text": [{ "text": { "content": "{item 2}" } }], "checked": false } },
|
|
686
|
+
|
|
687
|
+
{ "heading_2": { "rich_text": [{ "text": { "content": "📁 Arquivos Afetados" } }] } },
|
|
688
|
+
{ "bulleted_list_item": { "rich_text": [{ "text": { "content": "{arquivo 1}" } }] } },
|
|
689
|
+
{ "bulleted_list_item": { "rich_text": [{ "text": { "content": "{arquivo 2}" } }] } }
|
|
690
|
+
]
|
|
691
|
+
```
|
|
692
|
+
|
|
693
|
+
---
|
|
694
|
+
|
|
695
|
+
### 📝 Template: LOG (Retroativo)
|
|
696
|
+
|
|
697
|
+
```
|
|
698
|
+
Use: mcp_notion-mcp-server_API-patch-block-children
|
|
699
|
+
block_id: {page_id}
|
|
700
|
+
children: [
|
|
701
|
+
{ "heading_2": { "rich_text": [{ "text": { "content": "📋 Resumo" } }] } },
|
|
702
|
+
{ "paragraph": { "rich_text": [{ "text": { "content": "{descrição do trabalho realizado}" } }] } },
|
|
703
|
+
|
|
704
|
+
{ "heading_2": { "rich_text": [{ "text": { "content": "📁 Arquivos Alterados" } }] } },
|
|
705
|
+
{ "bulleted_list_item": { "rich_text": [{ "text": { "content": "{arquivo 1}" } }] } }
|
|
706
|
+
]
|
|
707
|
+
```
|
|
708
|
+
|
|
709
|
+
---
|
|
710
|
+
|
|
711
|
+
### 📄 Template: DOCUMENTAÇÃO (Análise/TDD/Design System/Testes)
|
|
712
|
+
|
|
713
|
+
> [!IMPORTANT]
|
|
714
|
+
> **Uso:** Para tasks de fases estruturadas (documentação de fluxos, TDD reverso, Design System, escrita de testes).
|
|
715
|
+
> Estas tasks garantem **transparência com o cliente** sobre trabalho de engenharia.
|
|
716
|
+
|
|
717
|
+
#### 🇧🇷 Português (PT-BR)
|
|
718
|
+
|
|
719
|
+
```json
|
|
720
|
+
// Tool: mcp_notion-mcp-server_API-patch-block-children
|
|
721
|
+
{
|
|
722
|
+
"block_id": "{page_id}",
|
|
723
|
+
"children": [
|
|
724
|
+
{
|
|
725
|
+
"heading_2": { "rich_text": [{ "text": { "content": "📋 Objetivo" } }] }
|
|
726
|
+
},
|
|
727
|
+
{
|
|
728
|
+
"paragraph": {
|
|
729
|
+
"rich_text": [
|
|
730
|
+
{
|
|
731
|
+
"text": {
|
|
732
|
+
"content": "{o que será documentado/criado e por que é necessário}"
|
|
733
|
+
}
|
|
734
|
+
}
|
|
735
|
+
]
|
|
736
|
+
}
|
|
737
|
+
},
|
|
738
|
+
|
|
739
|
+
{
|
|
740
|
+
"heading_2": {
|
|
741
|
+
"rich_text": [{ "text": { "content": "✅ Critérios de Aceite" } }]
|
|
742
|
+
}
|
|
743
|
+
},
|
|
744
|
+
{
|
|
745
|
+
"to_do": {
|
|
746
|
+
"rich_text": [
|
|
747
|
+
{
|
|
748
|
+
"text": {
|
|
749
|
+
"content": "{critério 1 - ex: Fluxo X documentado com entrada, saída e dependências}"
|
|
750
|
+
}
|
|
751
|
+
}
|
|
752
|
+
],
|
|
753
|
+
"checked": false
|
|
754
|
+
}
|
|
755
|
+
},
|
|
756
|
+
{
|
|
757
|
+
"to_do": {
|
|
758
|
+
"rich_text": [
|
|
759
|
+
{
|
|
760
|
+
"text": {
|
|
761
|
+
"content": "{critério 2 - ex: TDD validado com >= 75% completo}"
|
|
762
|
+
}
|
|
763
|
+
}
|
|
764
|
+
],
|
|
765
|
+
"checked": false
|
|
766
|
+
}
|
|
767
|
+
},
|
|
768
|
+
|
|
769
|
+
{
|
|
770
|
+
"heading_2": {
|
|
771
|
+
"rich_text": [{ "text": { "content": "📁 Artefatos Esperados" } }]
|
|
772
|
+
}
|
|
773
|
+
},
|
|
774
|
+
{
|
|
775
|
+
"bulleted_list_item": {
|
|
776
|
+
"rich_text": [
|
|
777
|
+
{
|
|
778
|
+
"text": {
|
|
779
|
+
"content": "{arquivo de saída - ex: docs/flows/auth/login.md}"
|
|
780
|
+
}
|
|
781
|
+
}
|
|
782
|
+
]
|
|
783
|
+
}
|
|
784
|
+
},
|
|
785
|
+
{
|
|
786
|
+
"bulleted_list_item": {
|
|
787
|
+
"rich_text": [
|
|
788
|
+
{
|
|
789
|
+
"text": {
|
|
790
|
+
"content": "{arquivo de saída - ex: docs/design/TDD-projeto-auth.md}"
|
|
791
|
+
}
|
|
792
|
+
}
|
|
793
|
+
]
|
|
794
|
+
}
|
|
795
|
+
},
|
|
796
|
+
|
|
797
|
+
{
|
|
798
|
+
"heading_2": {
|
|
799
|
+
"rich_text": [{ "text": { "content": "🔗 Referências" } }]
|
|
800
|
+
}
|
|
801
|
+
},
|
|
802
|
+
{
|
|
803
|
+
"paragraph": {
|
|
804
|
+
"rich_text": [
|
|
805
|
+
{
|
|
806
|
+
"text": {
|
|
807
|
+
"content": "Módulo: {path}\nAnálise: docs/CODEBASE-{projeto}.md"
|
|
808
|
+
}
|
|
809
|
+
}
|
|
810
|
+
]
|
|
811
|
+
}
|
|
812
|
+
}
|
|
813
|
+
]
|
|
814
|
+
}
|
|
815
|
+
```
|
|
816
|
+
|
|
817
|
+
#### 🇺🇸 English (EN)
|
|
818
|
+
|
|
819
|
+
```json
|
|
820
|
+
// Tool: mcp_notion-mcp-server_API-patch-block-children
|
|
821
|
+
{
|
|
822
|
+
"block_id": "{page_id}",
|
|
823
|
+
"children": [
|
|
824
|
+
{
|
|
825
|
+
"heading_2": { "rich_text": [{ "text": { "content": "📋 Objective" } }] }
|
|
826
|
+
},
|
|
827
|
+
{
|
|
828
|
+
"paragraph": {
|
|
829
|
+
"rich_text": [
|
|
830
|
+
{
|
|
831
|
+
"text": {
|
|
832
|
+
"content": "{what will be documented/created and why it is necessary}"
|
|
833
|
+
}
|
|
834
|
+
}
|
|
835
|
+
]
|
|
836
|
+
}
|
|
837
|
+
},
|
|
838
|
+
|
|
839
|
+
{
|
|
840
|
+
"heading_2": {
|
|
841
|
+
"rich_text": [{ "text": { "content": "✅ Acceptance Criteria" } }]
|
|
842
|
+
}
|
|
843
|
+
},
|
|
844
|
+
{
|
|
845
|
+
"to_do": {
|
|
846
|
+
"rich_text": [
|
|
847
|
+
{
|
|
848
|
+
"text": {
|
|
849
|
+
"content": "{criterion 1 - e.g.: Flow X documented with inputs, outputs and dependencies}"
|
|
850
|
+
}
|
|
851
|
+
}
|
|
852
|
+
],
|
|
853
|
+
"checked": false
|
|
854
|
+
}
|
|
855
|
+
},
|
|
856
|
+
{
|
|
857
|
+
"to_do": {
|
|
858
|
+
"rich_text": [
|
|
859
|
+
{
|
|
860
|
+
"text": {
|
|
861
|
+
"content": "{criterion 2 - e.g.: TDD validated with >= 75% complete}"
|
|
862
|
+
}
|
|
863
|
+
}
|
|
864
|
+
],
|
|
865
|
+
"checked": false
|
|
866
|
+
}
|
|
867
|
+
},
|
|
868
|
+
|
|
869
|
+
{
|
|
870
|
+
"heading_2": {
|
|
871
|
+
"rich_text": [{ "text": { "content": "📁 Expected Artifacts" } }]
|
|
872
|
+
}
|
|
873
|
+
},
|
|
874
|
+
{
|
|
875
|
+
"bulleted_list_item": {
|
|
876
|
+
"rich_text": [
|
|
877
|
+
{
|
|
878
|
+
"text": {
|
|
879
|
+
"content": "{output file - e.g.: docs/flows/auth/login.md}"
|
|
880
|
+
}
|
|
881
|
+
}
|
|
882
|
+
]
|
|
883
|
+
}
|
|
884
|
+
},
|
|
885
|
+
{
|
|
886
|
+
"bulleted_list_item": {
|
|
887
|
+
"rich_text": [
|
|
888
|
+
{
|
|
889
|
+
"text": {
|
|
890
|
+
"content": "{output file - e.g.: docs/design/TDD-project-auth.md}"
|
|
891
|
+
}
|
|
892
|
+
}
|
|
893
|
+
]
|
|
894
|
+
}
|
|
895
|
+
},
|
|
896
|
+
|
|
897
|
+
{
|
|
898
|
+
"heading_2": { "rich_text": [{ "text": { "content": "🔗 References" } }] }
|
|
899
|
+
},
|
|
900
|
+
{
|
|
901
|
+
"paragraph": {
|
|
902
|
+
"rich_text": [
|
|
903
|
+
{
|
|
904
|
+
"text": {
|
|
905
|
+
"content": "Module: {path}\nAnalysis: docs/CODEBASE-{project}.md"
|
|
906
|
+
}
|
|
907
|
+
}
|
|
908
|
+
]
|
|
909
|
+
}
|
|
910
|
+
}
|
|
911
|
+
]
|
|
912
|
+
}
|
|
913
|
+
```
|
|
914
|
+
|
|
915
|
+
---
|
|
916
|
+
|
|
917
|
+
### 🎨 Template: PROTOTIPAÇÃO (Stitch/Mockup)
|
|
918
|
+
|
|
919
|
+
> [!CAUTION]
|
|
920
|
+
> **REGRA BLOQUEANTE:** Prototipação SEMPRE usa **1 TASK POR TELA**.
|
|
921
|
+
> NÃO criar uma única task para múltiplas telas.
|
|
922
|
+
> Cada tela = 1 task individual = 1 validação do cliente.
|
|
923
|
+
|
|
924
|
+
**Fluxo de Status:**
|
|
925
|
+
|
|
926
|
+
```
|
|
927
|
+
Não iniciado → Em andamento → Aguardando Aprovação → Concluído
|
|
928
|
+
↑
|
|
929
|
+
GATE DO CLIENTE
|
|
930
|
+
```
|
|
931
|
+
|
|
932
|
+
**Template do Corpo:**
|
|
933
|
+
|
|
934
|
+
```json
|
|
935
|
+
// Tool: mcp_notion-mcp-server_API-patch-block-children
|
|
936
|
+
{
|
|
937
|
+
"block_id": "{page_id}",
|
|
938
|
+
"children": [
|
|
939
|
+
{
|
|
940
|
+
"heading_2": { "rich_text": [{ "text": { "content": "🎨 Protótipo" } }] }
|
|
941
|
+
},
|
|
942
|
+
{
|
|
943
|
+
"paragraph": {
|
|
944
|
+
"rich_text": [
|
|
945
|
+
{
|
|
946
|
+
"text": {
|
|
947
|
+
"content": "Tela: {nome da tela}\nDispositivo: {Desktop/Mobile/Tablet}"
|
|
948
|
+
}
|
|
949
|
+
}
|
|
950
|
+
]
|
|
951
|
+
}
|
|
952
|
+
},
|
|
953
|
+
|
|
954
|
+
{ "heading_2": { "rich_text": [{ "text": { "content": "📸 Preview" } }] } },
|
|
955
|
+
{ "image": { "external": { "url": "{screenshot_url_do_stitch}" } } },
|
|
956
|
+
|
|
957
|
+
{
|
|
958
|
+
"heading_2": {
|
|
959
|
+
"rich_text": [{ "text": { "content": "✅ Critérios de Validação" } }]
|
|
960
|
+
}
|
|
961
|
+
},
|
|
962
|
+
{
|
|
963
|
+
"to_do": {
|
|
964
|
+
"rich_text": [
|
|
965
|
+
{ "text": { "content": "Layout conforme Design System (MASTER.md)" } }
|
|
966
|
+
],
|
|
967
|
+
"checked": false
|
|
968
|
+
}
|
|
969
|
+
},
|
|
970
|
+
{
|
|
971
|
+
"to_do": {
|
|
972
|
+
"rich_text": [
|
|
973
|
+
{ "text": { "content": "Copy/textos conforme Content Strategy" } }
|
|
974
|
+
],
|
|
975
|
+
"checked": false
|
|
976
|
+
}
|
|
977
|
+
},
|
|
978
|
+
{
|
|
979
|
+
"to_do": {
|
|
980
|
+
"rich_text": [{ "text": { "content": "Hierarquia visual adequada" } }],
|
|
981
|
+
"checked": false
|
|
982
|
+
}
|
|
983
|
+
},
|
|
984
|
+
{
|
|
985
|
+
"to_do": {
|
|
986
|
+
"rich_text": [{ "text": { "content": "Responsividade adequada" } }],
|
|
987
|
+
"checked": false
|
|
988
|
+
}
|
|
989
|
+
},
|
|
990
|
+
|
|
991
|
+
{
|
|
992
|
+
"heading_2": {
|
|
993
|
+
"rich_text": [{ "text": { "content": "📝 Feedback do Cliente" } }]
|
|
994
|
+
}
|
|
995
|
+
},
|
|
996
|
+
{
|
|
997
|
+
"paragraph": {
|
|
998
|
+
"rich_text": [{ "text": { "content": "(Aguardando revisão)" } }]
|
|
999
|
+
}
|
|
1000
|
+
},
|
|
1001
|
+
|
|
1002
|
+
{
|
|
1003
|
+
"heading_2": {
|
|
1004
|
+
"rich_text": [{ "text": { "content": "🔗 Referências" } }]
|
|
1005
|
+
}
|
|
1006
|
+
},
|
|
1007
|
+
{
|
|
1008
|
+
"paragraph": {
|
|
1009
|
+
"rich_text": [
|
|
1010
|
+
{
|
|
1011
|
+
"text": {
|
|
1012
|
+
"content": "Design System: design-system/{nome}/MASTER.md\nContent Strategy: docs/content/CONTENT-STRATEGY-{nome}.md"
|
|
1013
|
+
}
|
|
1014
|
+
}
|
|
1015
|
+
]
|
|
1016
|
+
}
|
|
1017
|
+
}
|
|
1018
|
+
]
|
|
1019
|
+
}
|
|
1020
|
+
```
|
|
1021
|
+
|
|
1022
|
+
**Ao marcar "Aguardando Aprovação" - Notificar Cliente:**
|
|
1023
|
+
|
|
1024
|
+
```json
|
|
1025
|
+
// Tool: mcp_notion-mcp-server_API-create-a-comment
|
|
1026
|
+
{
|
|
1027
|
+
"parent": { "page_id": "{page_id}" },
|
|
1028
|
+
"rich_text": [
|
|
1029
|
+
{
|
|
1030
|
+
"text": {
|
|
1031
|
+
"content": "🎨 **Protótipo pronto para validação**\n\n📋 Por favor, revise o protótipo acima e valide:\n✅ Layout e visual\n✅ Textos e copy\n✅ Hierarquia de informações\n\n📝 **Ações:**\n🟢 Aprovado? Marque status como 'Concluído'\n🔴 Ajustes necessários? Marque status como 'Recusado' e descreva nos comentários"
|
|
1032
|
+
}
|
|
1033
|
+
}
|
|
1034
|
+
]
|
|
1035
|
+
}
|
|
1036
|
+
```
|
|
1037
|
+
|
|
1038
|
+
---
|
|
1039
|
+
|
|
1040
|
+
### 🔗 Vínculo: Prototipação → Implementação
|
|
1041
|
+
|
|
1042
|
+
> [!IMPORTANT]
|
|
1043
|
+
> **REGRA:** Tasks de Prototipação e Implementação são SEPARADAS.
|
|
1044
|
+
> Após aprovação do protótipo, a task de implementação (Feature) é liberada.
|
|
1045
|
+
|
|
1046
|
+
**Estrutura de Tasks:**
|
|
1047
|
+
|
|
1048
|
+
```
|
|
1049
|
+
Task: "Header - Protótipo" Task: "Header - Implementação"
|
|
1050
|
+
├── Categoria: Prototipação ├── Categoria: Feature
|
|
1051
|
+
├── Status: Concluído ├── Status: Não iniciado → Em andamento
|
|
1052
|
+
└── Link para implementação ──────└── Link para protótipo
|
|
1053
|
+
```
|
|
1054
|
+
|
|
1055
|
+
**No corpo da task de Implementação (Feature), adicionar referência:**
|
|
1056
|
+
|
|
1057
|
+
```json
|
|
1058
|
+
{
|
|
1059
|
+
"paragraph": {
|
|
1060
|
+
"rich_text": [
|
|
1061
|
+
{ "text": { "content": "🔗 Protótipo aprovado: #{id_task_prototipo}" } }
|
|
1062
|
+
]
|
|
1063
|
+
}
|
|
1064
|
+
}
|
|
1065
|
+
```
|
|
1066
|
+
|
|
1067
|
+
**Query para verificar se protótipo foi aprovado antes de iniciar implementação:**
|
|
1068
|
+
|
|
1069
|
+
```json
|
|
1070
|
+
// Tool: mcp_notion-mcp-server_API-query-data-source
|
|
1071
|
+
{
|
|
1072
|
+
"data_source_id": "{DATABASE_ID}",
|
|
1073
|
+
"filter": {
|
|
1074
|
+
"and": [
|
|
1075
|
+
{
|
|
1076
|
+
"property": "Nome da tarefa",
|
|
1077
|
+
"title": { "contains": "{nome_tela} - Protótipo" }
|
|
1078
|
+
},
|
|
1079
|
+
{ "property": "Status", "status": { "equals": "Concluído" } }
|
|
1080
|
+
]
|
|
1081
|
+
}
|
|
1082
|
+
}
|
|
1083
|
+
```
|
|
1084
|
+
|
|
1085
|
+
> [!CAUTION]
|
|
1086
|
+
> **BLOQUEADOR:** NÃO iniciar task de implementação sem protótipo correspondente com Status = "Concluído".
|
|
1087
|
+
|
|
1088
|
+
---
|
|
1089
|
+
|
|
1090
|
+
## 🔌 API TEMPLATES CENTRALIZADOS
|
|
1091
|
+
|
|
1092
|
+
> [!IMPORTANT]
|
|
1093
|
+
> **SINGLE SOURCE OF TRUTH:** Todos os workflows DEVEM usar estes templates.
|
|
1094
|
+
> Não duplique exemplos de API nos workflows - referencie esta skill.
|
|
1095
|
+
|
|
1096
|
+
---
|
|
1097
|
+
|
|
1098
|
+
### Status Values (CANÔNICOS)
|
|
1099
|
+
|
|
1100
|
+
| Status | Quando Usar | Valor API |
|
|
1101
|
+
| ------------------------ | ---------------------------------------------------- | ------------------------ |
|
|
1102
|
+
| **Não iniciado** | Task criada, não começada | `"Não iniciado"` |
|
|
1103
|
+
| **Em andamento** | Task em execução | `"Em andamento"` |
|
|
1104
|
+
| **Aguardando Aprovação** | ⭐ Protótipo pronto, aguardando validação do cliente | `"Aguardando Aprovação"` |
|
|
1105
|
+
| **Recusado** | ❌ Cliente não aprovou (requer comentário) | `"Recusado"` |
|
|
1106
|
+
| **Concluído** | ✅ Task finalizada / Cliente aprovou | `"Concluído"` |
|
|
1107
|
+
|
|
1108
|
+
> [!CAUTION]
|
|
1109
|
+
> **REGRA:** Status `Recusado` **EXIGE** comentário do cliente com feedback.
|
|
1110
|
+
> Agente DEVE analisar comentários, ajustar protótipo, e retornar para `Aguardando Aprovação`.
|
|
1111
|
+
|
|
1112
|
+
**Ciclo de Recusa:**
|
|
1113
|
+
|
|
1114
|
+
```
|
|
1115
|
+
Recusado (com comentário)
|
|
1116
|
+
↓
|
|
1117
|
+
Agente analisa feedback
|
|
1118
|
+
↓
|
|
1119
|
+
Ajusta protótipo
|
|
1120
|
+
↓
|
|
1121
|
+
Atualiza task (novo preview)
|
|
1122
|
+
↓
|
|
1123
|
+
Status → Aguardando Aprovação
|
|
1124
|
+
↓
|
|
1125
|
+
Notifica cliente (comentário)
|
|
1126
|
+
```
|
|
1127
|
+
|
|
1128
|
+
> [!NOTE]
|
|
1129
|
+
>
|
|
1130
|
+
> - `Última edição` → Atualizada **automaticamente** a cada modificação
|
|
1131
|
+
> - `Criado em` → Preenchido **automaticamente** ao criar a página
|
|
1132
|
+
|
|
1133
|
+
---
|
|
1134
|
+
|
|
1135
|
+
### 🔍 Buscar Database
|
|
1136
|
+
|
|
1137
|
+
```json
|
|
1138
|
+
// Tool: mcp_notion-mcp-server_API-post-search
|
|
1139
|
+
{
|
|
1140
|
+
"query": "Tarefas",
|
|
1141
|
+
"filter": { "property": "object", "value": "data_source" }
|
|
1142
|
+
}
|
|
1143
|
+
```
|
|
1144
|
+
|
|
1145
|
+
### 🔎 Buscar Task por ID (PREFERIDO)
|
|
1146
|
+
|
|
1147
|
+
> [!TIP]
|
|
1148
|
+
> **Método mais preciso:** Use busca por `unique_id` quando souber o ID da task.
|
|
1149
|
+
|
|
1150
|
+
```json
|
|
1151
|
+
// Tool: mcp_notion-mcp-server_API-query-data-source
|
|
1152
|
+
{
|
|
1153
|
+
"data_source_id": "{DATABASE_ID}",
|
|
1154
|
+
"filter": {
|
|
1155
|
+
"property": "ID",
|
|
1156
|
+
"unique_id": {
|
|
1157
|
+
"equals": 42
|
|
1158
|
+
}
|
|
1159
|
+
}
|
|
1160
|
+
}
|
|
1161
|
+
```
|
|
1162
|
+
|
|
1163
|
+
> [!CAUTION]
|
|
1164
|
+
> **IMPORTANTE:** Use `"unique_id"` como tipo do filtro, **NÃO** `"number"`.
|
|
1165
|
+
|
|
1166
|
+
**Operadores disponíveis:**
|
|
1167
|
+
|
|
1168
|
+
| Operador | Uso |
|
|
1169
|
+
| -------------------------- | ----------------------------------- |
|
|
1170
|
+
| `equals` | Buscar task específica por ID exato |
|
|
1171
|
+
| `does_not_equal` | Excluir task específica |
|
|
1172
|
+
| `greater_than` | Tasks após ID X |
|
|
1173
|
+
| `less_than` | Tasks antes de ID X |
|
|
1174
|
+
| `greater_than_or_equal_to` | Tasks a partir de ID X |
|
|
1175
|
+
| `less_than_or_equal_to` | Tasks até ID X |
|
|
1176
|
+
|
|
1177
|
+
### 🔎 Buscar Task por Nome (Alternativa)
|
|
1178
|
+
|
|
1179
|
+
```json
|
|
1180
|
+
// Tool: mcp_notion-mcp-server_API-post-search
|
|
1181
|
+
{
|
|
1182
|
+
"query": "{Nome da Task}",
|
|
1183
|
+
"filter": { "property": "object", "value": "page" }
|
|
1184
|
+
}
|
|
1185
|
+
```
|
|
1186
|
+
|
|
1187
|
+
> [!NOTE]
|
|
1188
|
+
> Busca por nome é menos precisa (pode retornar múltiplos resultados).
|
|
1189
|
+
> Prefira busca por ID quando disponível.
|
|
1190
|
+
|
|
1191
|
+
### 📋 Validar Schema
|
|
1192
|
+
|
|
1193
|
+
```json
|
|
1194
|
+
// Tool: mcp_notion-mcp-server_API-retrieve-a-database
|
|
1195
|
+
{ "database_id": "{DATABASE_ID}" }
|
|
1196
|
+
```
|
|
1197
|
+
|
|
1198
|
+
### ➕ CRIAR TASK (2 ETAPAS OBRIGATÓRIAS) ⭐
|
|
1199
|
+
|
|
1200
|
+
> [!CAUTION]
|
|
1201
|
+
> **REGRA BLOQUEANTE:** Criação de tasks é um processo de **2 ETAPAS SEQUENCIAIS**.
|
|
1202
|
+
> Uma task SÓ está completa após AMBAS as etapas. Pular ETAPA 2 = task incompleta.
|
|
1203
|
+
|
|
1204
|
+
---
|
|
1205
|
+
|
|
1206
|
+
#### ETAPA 1: Criar Página (Propriedades)
|
|
1207
|
+
|
|
1208
|
+
```json
|
|
1209
|
+
// Tool: mcp_notion-mcp-server_API-post-page
|
|
1210
|
+
{
|
|
1211
|
+
"parent": { "database_id": "{DATABASE_ID}" },
|
|
1212
|
+
"properties": {
|
|
1213
|
+
"Nome da tarefa": { "title": [{ "text": { "content": "{nome}" } }] },
|
|
1214
|
+
"Status": { "status": { "name": "Não iniciado" } },
|
|
1215
|
+
"Épico": { "select": { "name": "{N. Nome}" } },
|
|
1216
|
+
"Categoria": { "multi_select": [{ "name": "{categoria}" }] },
|
|
1217
|
+
"Prioridade": { "select": { "name": "Alta" } },
|
|
1218
|
+
"Estimativa": { "number": {horas} },
|
|
1219
|
+
"% Progresso": { "number": 0 }
|
|
1220
|
+
}
|
|
1221
|
+
}
|
|
1222
|
+
```
|
|
1223
|
+
|
|
1224
|
+
**⚠️ IMPORTANTE:** Salvar o `page_id` retornado (campo `id` na resposta) para ETAPA 2.
|
|
1225
|
+
|
|
1226
|
+
---
|
|
1227
|
+
|
|
1228
|
+
#### ETAPA 2: Adicionar Corpo (OBRIGATÓRIO)
|
|
1229
|
+
|
|
1230
|
+
> [!CAUTION]
|
|
1231
|
+
> **IMEDIATAMENTE** após ETAPA 1, executar ETAPA 2. NÃO prosseguir para próxima task sem completar esta etapa.
|
|
1232
|
+
|
|
1233
|
+
```json
|
|
1234
|
+
// Tool: mcp_notion-mcp-server_API-patch-block-children
|
|
1235
|
+
{
|
|
1236
|
+
"block_id": "{page_id}", // ID retornado da ETAPA 1
|
|
1237
|
+
"children": [
|
|
1238
|
+
/* Template por categoria - ver seção TEMPLATES */
|
|
1239
|
+
]
|
|
1240
|
+
}
|
|
1241
|
+
```
|
|
1242
|
+
|
|
1243
|
+
---
|
|
1244
|
+
|
|
1245
|
+
#### TEMPLATES POR CATEGORIA
|
|
1246
|
+
|
|
1247
|
+
**Feature (User Story):**
|
|
1248
|
+
|
|
1249
|
+
```json
|
|
1250
|
+
[
|
|
1251
|
+
{
|
|
1252
|
+
"heading_2": { "rich_text": [{ "text": { "content": "📖 User Story" } }] }
|
|
1253
|
+
},
|
|
1254
|
+
{
|
|
1255
|
+
"paragraph": {
|
|
1256
|
+
"rich_text": [
|
|
1257
|
+
{
|
|
1258
|
+
"text": {
|
|
1259
|
+
"content": "As a **{persona}**, I want to **{action}**, so that **{benefit}**."
|
|
1260
|
+
}
|
|
1261
|
+
}
|
|
1262
|
+
]
|
|
1263
|
+
}
|
|
1264
|
+
},
|
|
1265
|
+
{
|
|
1266
|
+
"heading_2": {
|
|
1267
|
+
"rich_text": [{ "text": { "content": "✅ Acceptance Criteria" } }]
|
|
1268
|
+
}
|
|
1269
|
+
},
|
|
1270
|
+
{
|
|
1271
|
+
"to_do": {
|
|
1272
|
+
"rich_text": [
|
|
1273
|
+
{
|
|
1274
|
+
"text": {
|
|
1275
|
+
"content": "Given {context}, When {action}, Then {outcome}"
|
|
1276
|
+
}
|
|
1277
|
+
}
|
|
1278
|
+
],
|
|
1279
|
+
"checked": false
|
|
1280
|
+
}
|
|
1281
|
+
},
|
|
1282
|
+
{
|
|
1283
|
+
"heading_2": { "rich_text": [{ "text": { "content": "🔗 References" } }] }
|
|
1284
|
+
},
|
|
1285
|
+
{
|
|
1286
|
+
"paragraph": {
|
|
1287
|
+
"rich_text": [{ "text": { "content": "TDD: docs/design/TDD-{nome}.md" } }]
|
|
1288
|
+
}
|
|
1289
|
+
}
|
|
1290
|
+
]
|
|
1291
|
+
```
|
|
1292
|
+
|
|
1293
|
+
**Bug:**
|
|
1294
|
+
|
|
1295
|
+
```json
|
|
1296
|
+
[
|
|
1297
|
+
{ "heading_2": { "rich_text": [{ "text": { "content": "🐛 Problema" } }] } },
|
|
1298
|
+
{
|
|
1299
|
+
"paragraph": {
|
|
1300
|
+
"rich_text": [{ "text": { "content": "{descrição do bug}" } }]
|
|
1301
|
+
}
|
|
1302
|
+
},
|
|
1303
|
+
{
|
|
1304
|
+
"heading_2": {
|
|
1305
|
+
"rich_text": [{ "text": { "content": "📋 Passos para Reproduzir" } }]
|
|
1306
|
+
}
|
|
1307
|
+
},
|
|
1308
|
+
{
|
|
1309
|
+
"numbered_list_item": {
|
|
1310
|
+
"rich_text": [{ "text": { "content": "{passo 1}" } }]
|
|
1311
|
+
}
|
|
1312
|
+
},
|
|
1313
|
+
{
|
|
1314
|
+
"heading_2": {
|
|
1315
|
+
"rich_text": [{ "text": { "content": "✅ Critérios de Resolução" } }]
|
|
1316
|
+
}
|
|
1317
|
+
},
|
|
1318
|
+
{
|
|
1319
|
+
"to_do": {
|
|
1320
|
+
"rich_text": [{ "text": { "content": "{critério}" } }],
|
|
1321
|
+
"checked": false
|
|
1322
|
+
}
|
|
1323
|
+
}
|
|
1324
|
+
]
|
|
1325
|
+
```
|
|
1326
|
+
|
|
1327
|
+
**Log (Trabalho Retroativo):**
|
|
1328
|
+
|
|
1329
|
+
```json
|
|
1330
|
+
[
|
|
1331
|
+
{
|
|
1332
|
+
"heading_2": {
|
|
1333
|
+
"rich_text": [{ "text": { "content": "📝 Resumo Técnico" } }]
|
|
1334
|
+
}
|
|
1335
|
+
},
|
|
1336
|
+
{
|
|
1337
|
+
"paragraph": {
|
|
1338
|
+
"rich_text": [{ "text": { "content": "{descrição técnica}" } }]
|
|
1339
|
+
}
|
|
1340
|
+
},
|
|
1341
|
+
{
|
|
1342
|
+
"heading_2": {
|
|
1343
|
+
"rich_text": [{ "text": { "content": "📁 Arquivos Afetados" } }]
|
|
1344
|
+
}
|
|
1345
|
+
},
|
|
1346
|
+
{
|
|
1347
|
+
"bulleted_list_item": {
|
|
1348
|
+
"rich_text": [{ "text": { "content": "{arquivo}" } }]
|
|
1349
|
+
}
|
|
1350
|
+
}
|
|
1351
|
+
]
|
|
1352
|
+
```
|
|
1353
|
+
|
|
1354
|
+
---
|
|
1355
|
+
|
|
1356
|
+
> [!CAUTION]
|
|
1357
|
+
> **REGRA BLOQUEANTE:** Criar múltiplas tasks com `API-post-page` e só depois adicionar corpos
|
|
1358
|
+
> é **PROIBIDO**. O workflow **NÃO PODE PROSSEGUIR** enquanto houver tasks sem corpo.
|
|
1359
|
+
> **CORRETO:** Para CADA task: ETAPA 1 → ETAPA 2 → próxima task.
|
|
1360
|
+
> **Se ETAPA 2 falhar** (ex: erro de API, serialização), o agente DEVE resolver o erro
|
|
1361
|
+
> e completar a ETAPA 2 **ANTES** de criar a próxima task ou avançar de fase.
|
|
1362
|
+
|
|
1363
|
+
> [!WARNING]
|
|
1364
|
+
> **📜 HISTÓRICO DE FALHAS (2026-02-18):**
|
|
1365
|
+
>
|
|
1366
|
+
> - **Gap detectado:** 10 tasks criadas sem corpo — agente fez batch de ETAPA 1 para todas, pulou ETAPA 2
|
|
1367
|
+
> - **Causa raiz:** Primeiro tentou `children` inline no `post-page` (erro 400 por serialização).
|
|
1368
|
+
> Ao refazer, criou todas as páginas sem corpo e avançou sem completar ETAPA 2.
|
|
1369
|
+
> - **Correção aplicada:** Regra elevada de WARNING → CAUTION. Workflow não pode avançar sem corpos.
|
|
1370
|
+
|
|
1371
|
+
---
|
|
1372
|
+
|
|
1373
|
+
#### VERIFICAÇÃO DE CONCLUSÃO
|
|
1374
|
+
|
|
1375
|
+
Após criar todas as tasks, verificar:
|
|
1376
|
+
|
|
1377
|
+
```
|
|
1378
|
+
[ ] Todas as tasks criadas com API-post-page
|
|
1379
|
+
[ ] TODAS as tasks com corpo via API-patch-block-children
|
|
1380
|
+
[ ] Template correto usado para cada categoria
|
|
1381
|
+
```
|
|
1382
|
+
|
|
1383
|
+
---
|
|
1384
|
+
|
|
1385
|
+
## 🚨 GATE DE CONCLUSÃO DE FASE (OBRIGATÓRIO)
|
|
1386
|
+
|
|
1387
|
+
> [!CAUTION]
|
|
1388
|
+
> **REGRA BLOQUEANTE:** Uma fase que cria tasks no Notion SÓ pode ser marcada como "Concluída"
|
|
1389
|
+
> após verificar que **100% das tasks** têm propriedades E corpo preenchidos.
|
|
1390
|
+
> **NUNCA** avançar de fase sem completar esta verificação.
|
|
1391
|
+
|
|
1392
|
+
### Processo de Verificação (OBRIGATÓRIO)
|
|
1393
|
+
|
|
1394
|
+
**Antes de marcar qualquer fase como "Concluída":**
|
|
1395
|
+
|
|
1396
|
+
1. **Listar todas as tasks criadas na fase**
|
|
1397
|
+
2. **Para CADA task, verificar:**
|
|
1398
|
+
- [ ] Propriedades obrigatórias preenchidas (Nome, Status, Épico, Categoria, Estimativa)
|
|
1399
|
+
- [ ] Corpo adicionado via `API-patch-block-children`
|
|
1400
|
+
- [ ] Corpo contém seções obrigatórias (User Story, Acceptance Criteria, References)
|
|
1401
|
+
|
|
1402
|
+
3. **Se QUALQUER task estiver incompleta → PARAR e completar antes de avançar**
|
|
1403
|
+
|
|
1404
|
+
### Query de Verificação
|
|
1405
|
+
|
|
1406
|
+
```json
|
|
1407
|
+
// Tool: mcp_notion-mcp-server_API-query-data-source
|
|
1408
|
+
{
|
|
1409
|
+
"data_source_id": "{DATABASE_ID}",
|
|
1410
|
+
"filter": {
|
|
1411
|
+
"property": "ID",
|
|
1412
|
+
"unique_id": {
|
|
1413
|
+
"greater_than_or_equal_to": {ID_INICIAL},
|
|
1414
|
+
"less_than_or_equal_to": {ID_FINAL}
|
|
1415
|
+
}
|
|
1416
|
+
}
|
|
1417
|
+
}
|
|
1418
|
+
```
|
|
1419
|
+
|
|
1420
|
+
Para cada task retornada, verificar se tem children/blocks:
|
|
1421
|
+
|
|
1422
|
+
```json
|
|
1423
|
+
// Tool: mcp_notion-mcp-server_API-get-block-children
|
|
1424
|
+
{
|
|
1425
|
+
"block_id": "{page_id}"
|
|
1426
|
+
}
|
|
1427
|
+
```
|
|
1428
|
+
|
|
1429
|
+
**Se `results` estiver vazio → task SEM corpo → INCOMPLETA**
|
|
1430
|
+
|
|
1431
|
+
### Mensagem de Erro OBRIGATÓRIA
|
|
1432
|
+
|
|
1433
|
+
Se encontrar tasks incompletas:
|
|
1434
|
+
|
|
1435
|
+
```markdown
|
|
1436
|
+
⚠️ **FASE NÃO PODE SER CONCLUÍDA**
|
|
1437
|
+
|
|
1438
|
+
Encontrei {N} task(s) sem corpo preenchido:
|
|
1439
|
+
|
|
1440
|
+
| ID | Nome | Status |
|
|
1441
|
+
| ----- | ------ | ------------ |
|
|
1442
|
+
| #{id} | {nome} | ❌ Sem corpo |
|
|
1443
|
+
|
|
1444
|
+
**Ação obrigatória:** Adicionar corpo a todas as tasks antes de avançar.
|
|
1445
|
+
```
|
|
1446
|
+
|
|
1447
|
+
### Regras do Gate
|
|
1448
|
+
|
|
1449
|
+
1. **OBRIGATÓRIO** verificar TODAS as tasks antes de marcar fase como concluída
|
|
1450
|
+
2. **NUNCA** atualizar PROJECT-PROGRESS.md para próxima fase sem completar verificação
|
|
1451
|
+
3. **Se falhar**, completar tasks faltantes ANTES de prosseguir
|
|
1452
|
+
4. **Log obrigatório** em PROJECT-PROGRESS.md: "Phase X: Verificação completa - N tasks"
|
|
1453
|
+
|
|
1454
|
+
---
|
|
1455
|
+
|
|
1456
|
+
### 🔄 Atualizar Status → Em Andamento
|
|
1457
|
+
|
|
1458
|
+
```json
|
|
1459
|
+
// Tool: mcp_notion-mcp-server_API-patch-page
|
|
1460
|
+
{
|
|
1461
|
+
"page_id": "{page_id}",
|
|
1462
|
+
"properties": {
|
|
1463
|
+
"Status": { "status": { "name": "Em andamento" } }
|
|
1464
|
+
}
|
|
1465
|
+
}
|
|
1466
|
+
```
|
|
1467
|
+
|
|
1468
|
+
### ✅ Atualizar Status → Concluído
|
|
1469
|
+
|
|
1470
|
+
```json
|
|
1471
|
+
// Tool: mcp_notion-mcp-server_API-patch-page
|
|
1472
|
+
{
|
|
1473
|
+
"page_id": "{page_id}",
|
|
1474
|
+
"properties": {
|
|
1475
|
+
"Status": { "status": { "name": "Concluído" } },
|
|
1476
|
+
"Tempo Gasto": { "rich_text": [{ "text": { "content": "{Xh}m" } }] }
|
|
1477
|
+
}
|
|
1478
|
+
}
|
|
1479
|
+
```
|
|
1480
|
+
|
|
1481
|
+
> [!CAUTION]
|
|
1482
|
+
> **OBRIGATÓRIO:** `Tempo Gasto` deve ser preenchido ao concluir.
|
|
1483
|
+
|
|
1484
|
+
### 💬 Adicionar Comentário de Progresso
|
|
1485
|
+
|
|
1486
|
+
```json
|
|
1487
|
+
// Tool: mcp_notion-mcp-server_API-create-a-comment
|
|
1488
|
+
{
|
|
1489
|
+
"parent": { "page_id": "{page_id}" },
|
|
1490
|
+
"rich_text": [
|
|
1491
|
+
{ "text": { "content": "🔄 **Progresso:** {descrição do avanço}" } }
|
|
1492
|
+
]
|
|
1493
|
+
}
|
|
1494
|
+
```
|
|
1495
|
+
|
|
1496
|
+
### ✅ Comentário de Conclusão (RICO - OBRIGATÓRIO)
|
|
1497
|
+
|
|
1498
|
+
> [!IMPORTANT]
|
|
1499
|
+
> **REGRA:** Ao concluir task, adicionar comentário rico para transparência com cliente.
|
|
1500
|
+
> Use o idioma definido em PROJECT-PROGRESS.md.
|
|
1501
|
+
|
|
1502
|
+
#### 🇧🇷 Português (PT-BR)
|
|
1503
|
+
|
|
1504
|
+
```json
|
|
1505
|
+
// Tool: mcp_notion-mcp-server_API-create-a-comment
|
|
1506
|
+
{
|
|
1507
|
+
"parent": { "page_id": "{page_id}" },
|
|
1508
|
+
"rich_text": [
|
|
1509
|
+
{
|
|
1510
|
+
"text": {
|
|
1511
|
+
"content": "✅ **Task Concluída**\n\n📋 **O que foi feito:**\n• {descrição simples do que foi implementado}\n• {outra funcionalidade se aplicável}\n\n📁 **Arquivos modificados:**\n• {arquivo 1}\n• {arquivo 2}\n\n🔗 **Próximos passos:**\n• {task relacionada ou \"Nenhum - task independente\"}"
|
|
1512
|
+
}
|
|
1513
|
+
}
|
|
1514
|
+
]
|
|
1515
|
+
}
|
|
1516
|
+
```
|
|
1517
|
+
|
|
1518
|
+
#### 🇺🇸 English (EN)
|
|
1519
|
+
|
|
1520
|
+
```json
|
|
1521
|
+
// Tool: mcp_notion-mcp-server_API-create-a-comment
|
|
1522
|
+
{
|
|
1523
|
+
"parent": { "page_id": "{page_id}" },
|
|
1524
|
+
"rich_text": [
|
|
1525
|
+
{
|
|
1526
|
+
"text": {
|
|
1527
|
+
"content": "✅ **Task Completed**\n\n📋 **What was done:**\n• {simple description of what was implemented}\n• {another feature if applicable}\n\n📁 **Files modified:**\n• {file 1}\n• {file 2}\n\n🔗 **Next steps:**\n• {related task or \"None - standalone task\"}"
|
|
1528
|
+
}
|
|
1529
|
+
}
|
|
1530
|
+
]
|
|
1531
|
+
}
|
|
1532
|
+
```
|
|
1533
|
+
|
|
1534
|
+
> [!TIP]
|
|
1535
|
+
> **Para transparência:** Use linguagem simples que o cliente entenda.
|
|
1536
|
+
> Evite jargões técnicos quando possível.
|
|
1537
|
+
|
|
1538
|
+
## 🔄 PHASE TASK TRACKING (Padrão Compartilhado)
|
|
1539
|
+
|
|
1540
|
+
> [!CAUTION]
|
|
1541
|
+
> **REGRA BLOQUEANTE:** Toda atividade pós-análise em qualquer workflow estruturado
|
|
1542
|
+
> DEVE ter tasks no Notion para **transparência com o cliente**.
|
|
1543
|
+
> Trabalho executado sem task = trabalho invisível = falha de comunicação.
|
|
1544
|
+
|
|
1545
|
+
### Quando Aplicar
|
|
1546
|
+
|
|
1547
|
+
| Workflow | Fases que DEVEM ter tasks |
|
|
1548
|
+
| ----------------- | ----------------------------------------------------------------------------------------- |
|
|
1549
|
+
| `/legacy-project` | Phase 4 (Documentação), Phase 5 (TDD), Phase 5.5 (Design System), Phase 6 (Testes) |
|
|
1550
|
+
| `/new-project` | Phase 2.5 (Design System), Phase 2.65 (Content), Phase 2.8 (Page Specs), Phase 4 (Testes) |
|
|
1551
|
+
|
|
1552
|
+
### Categorias por Tipo de Fase
|
|
1553
|
+
|
|
1554
|
+
| Tipo de Fase | Categoria Notion | Épico Sugerido |
|
|
1555
|
+
| ---------------------- | ---------------- | -------------------------- |
|
|
1556
|
+
| Documentação de fluxos | `Documentação` | `{módulo} - Documentação` |
|
|
1557
|
+
| TDD Técnico/Reverso | `Documentação` | `{módulo} - TDD` |
|
|
1558
|
+
| Design System | `Melhoria` | `{módulo} - Design System` |
|
|
1559
|
+
| Escrita de Testes | `Melhoria` | `{módulo} - Testes` |
|
|
1560
|
+
| Melhorias/Refatoração | `Refatoração` | `{módulo} - Melhorias` |
|
|
1561
|
+
|
|
1562
|
+
### Processo: Breakdown de Fases (OBRIGATÓRIO)
|
|
1563
|
+
|
|
1564
|
+
**Executar ANTES de iniciar a primeira fase que gera artefatos.**
|
|
1565
|
+
|
|
1566
|
+
**Passo 1:** Discovery do database + validação de schema (ver seção "VALIDAÇÃO DE SCHEMA")
|
|
1567
|
+
|
|
1568
|
+
**Passo 2:** Perguntar idioma (se não definido — ver seção "IDIOMA DAS TASKS")
|
|
1569
|
+
|
|
1570
|
+
**Passo 3:** Criar 1 task por atividade planejada, usando:
|
|
1571
|
+
|
|
1572
|
+
- Propriedades: seguir seção "CRIAR TASK (2 ETAPAS OBRIGATÓRIAS)"
|
|
1573
|
+
- Corpo: usar **Template Documentação** (ver seção acima)
|
|
1574
|
+
- Categoria: conforme tabela "Categorias por Tipo de Fase"
|
|
1575
|
+
|
|
1576
|
+
**Exemplo para `/legacy-project` módulo `auth`:**
|
|
1577
|
+
|
|
1578
|
+
| # | Task | Categoria | Épico | Estimativa |
|
|
1579
|
+
| --- | ------------------------------------- | ------------ | -------------------- | ---------- |
|
|
1580
|
+
| 1 | Documentar fluxo: Login | Documentação | auth - Documentação | 2h |
|
|
1581
|
+
| 2 | Documentar fluxo: Register | Documentação | auth - Documentação | 2h |
|
|
1582
|
+
| 3 | TDD Reverso: auth | Documentação | auth - TDD | 4h |
|
|
1583
|
+
| 4 | Design System: extração | Melhoria | auth - Design System | 3h |
|
|
1584
|
+
| 5 | Testes: Integration (fluxos críticos) | Melhoria | auth - Testes | 4h |
|
|
1585
|
+
| 6 | Testes: Unit (funções complexas) | Melhoria | auth - Testes | 3h |
|
|
1586
|
+
|
|
1587
|
+
### Gate: NOTION SYNC ao Final de Cada Fase (OBRIGATÓRIO)
|
|
1588
|
+
|
|
1589
|
+
> [!CAUTION]
|
|
1590
|
+
> **REGRA BLOQUEANTE:** Ao concluir QUALQUER fase, o agente DEVE executar
|
|
1591
|
+
> os 4 passos abaixo ANTES de avançar para a próxima fase.
|
|
1592
|
+
> Pular sync = Phase NÃO pode ser marcada como concluída.
|
|
1593
|
+
|
|
1594
|
+
**Passo 1 — Atualizar status da(s) task(s) da fase:**
|
|
1595
|
+
|
|
1596
|
+
```json
|
|
1597
|
+
// Tool: mcp_notion-mcp-server_API-patch-page
|
|
1598
|
+
{
|
|
1599
|
+
"page_id": "{page_id}",
|
|
1600
|
+
"properties": {
|
|
1601
|
+
"Status": { "status": { "name": "Concluído" } },
|
|
1602
|
+
"Tempo Gasto": { "rich_text": [{ "text": { "content": "{tempo_real}" } }] },
|
|
1603
|
+
"% Progresso": { "number": 100 }
|
|
1604
|
+
}
|
|
1605
|
+
}
|
|
1606
|
+
```
|
|
1607
|
+
|
|
1608
|
+
**Passo 2 — Adicionar nota de conclusão no corpo:**
|
|
1609
|
+
|
|
1610
|
+
```json
|
|
1611
|
+
// Tool: mcp_notion-mcp-server_API-patch-block-children
|
|
1612
|
+
{
|
|
1613
|
+
"block_id": "{page_id}",
|
|
1614
|
+
"children": [
|
|
1615
|
+
{ "divider": {} },
|
|
1616
|
+
{
|
|
1617
|
+
"callout": {
|
|
1618
|
+
"icon": { "type": "emoji", "emoji": "✅" },
|
|
1619
|
+
"rich_text": [{ "text": { "content": "Concluído em {data}" } }]
|
|
1620
|
+
}
|
|
1621
|
+
},
|
|
1622
|
+
{
|
|
1623
|
+
"bulleted_list_item": {
|
|
1624
|
+
"rich_text": [
|
|
1625
|
+
{ "text": { "content": "📁 Artefato: {arquivo gerado}" } }
|
|
1626
|
+
]
|
|
1627
|
+
}
|
|
1628
|
+
}
|
|
1629
|
+
]
|
|
1630
|
+
}
|
|
1631
|
+
```
|
|
1632
|
+
|
|
1633
|
+
**Passo 3 — Adicionar comentário rico de conclusão:**
|
|
1634
|
+
|
|
1635
|
+
> Seguir seção "Comentário de Conclusão (RICO - OBRIGATÓRIO)" desta skill.
|
|
1636
|
+
|
|
1637
|
+
**Passo 4 — Verificar que TODAS as tasks da fase foram synced:**
|
|
1638
|
+
|
|
1639
|
+
> Seguir seção "GATE DE CONCLUSÃO DE FASE" desta skill.
|
|
1640
|
+
|
|
1641
|
+
### Checklist de Fase
|
|
1642
|
+
|
|
1643
|
+
```markdown
|
|
1644
|
+
⚠️ VERIFICAÇÃO - Phase {N} Concluída?
|
|
1645
|
+
|
|
1646
|
+
[ ] Todas tasks da fase com Status = "Concluído"
|
|
1647
|
+
[ ] Tempo Gasto preenchido em cada task
|
|
1648
|
+
[ ] Nota de conclusão adicionada ao corpo de cada task
|
|
1649
|
+
[ ] Comentário rico adicionado a cada task
|
|
1650
|
+
[ ] PROJECT-PROGRESS.md atualizado
|
|
1651
|
+
|
|
1652
|
+
❌ Se QUALQUER item desmarcado → NÃO avançar para próxima fase
|
|
1653
|
+
✅ TODOS marcados → Prosseguir
|
|
1654
|
+
```
|
|
1655
|
+
|
|
1656
|
+
---
|
|
1657
|
+
|
|
1658
|
+
## 📚 DOCUMENTATION DATABASES (Padrão Compartilhado)
|
|
1659
|
+
|
|
1660
|
+
> [!IMPORTANT]
|
|
1661
|
+
> **Propósito:** Dois databases Notion separados para **documentação orientada a públicos distintos**.
|
|
1662
|
+
>
|
|
1663
|
+
> - **"Documentação Técnica"** — para desenvolvedores: fluxos com código, diagramas Mermaid, atoms, contratos de API
|
|
1664
|
+
> - **"Manual do Usuário"** — para usuário final e operadores: passo-a-passo visual, sem código
|
|
1665
|
+
> Diferente da "Tarefas" (que rastreia trabalho), as databases de documentação entregam **conhecimento**.
|
|
1666
|
+
|
|
1667
|
+
### Quando Aplicar
|
|
1668
|
+
|
|
1669
|
+
| Workflow | Momento | Databases |
|
|
1670
|
+
| ----------------- | ---------------------------------------- | ----------------------- |
|
|
1671
|
+
| `/legacy-project` | Phase 8 (técnica) + Phase 8.5 (manual) | Ambos |
|
|
1672
|
+
| `/new-project` | Phase 7.5 (técnica) + Phase 7.6 (manual) | Ambos |
|
|
1673
|
+
| `/document` | Fase 4 — após cross-reference | Ambos (manual opcional) |
|
|
1674
|
+
| `/new-task` | Fase 0.5 — context check | Buscar em ambos |
|
|
1675
|
+
|
|
1676
|
+
---
|
|
1677
|
+
|
|
1678
|
+
### 🔴 DATABASE 1: "Documentação Técnica"
|
|
1679
|
+
|
|
1680
|
+
> [!CAUTION]
|
|
1681
|
+
> **REGRA BLOQUEANTE:** Buscar database com nome exato **"Documentação Técnica"**.
|
|
1682
|
+
> NÃO usar "Docs", "Documentation", "Documentação", ou qualquer variação.
|
|
1683
|
+
|
|
1684
|
+
#### Busca Obrigatória
|
|
1685
|
+
|
|
1686
|
+
```json
|
|
1687
|
+
// Tool: mcp_notion-mcp-server_API-post-search
|
|
1688
|
+
{
|
|
1689
|
+
"query": "Documentação Técnica",
|
|
1690
|
+
"filter": { "property": "object", "value": "data_source" }
|
|
1691
|
+
}
|
|
1692
|
+
```
|
|
1693
|
+
|
|
1694
|
+
#### Se NÃO encontrar
|
|
1695
|
+
|
|
1696
|
+
```markdown
|
|
1697
|
+
⚠️ **Database "Documentação Técnica" não encontrado.**
|
|
1698
|
+
|
|
1699
|
+
Para publicar a documentação técnica do projeto:
|
|
1700
|
+
|
|
1701
|
+
1. Crie um database **"Documentação Técnica"** no Notion com as propriedades listadas abaixo
|
|
1702
|
+
2. Compartilhe o database com a integração (bot)
|
|
1703
|
+
3. Confirme para continuar
|
|
1704
|
+
|
|
1705
|
+
**Propriedades obrigatórias:**
|
|
1706
|
+
|
|
1707
|
+
| Propriedade | Tipo | Descrição |
|
|
1708
|
+
| ------------------ | --------- | ---------------------------------------------- |
|
|
1709
|
+
| Nome | Title | Nome do documento |
|
|
1710
|
+
| Módulo | Select | Escopo (shop/, api/, admin/) |
|
|
1711
|
+
| Tipo | Select | Fluxo, TDD, Design System, Testes, Arquitetura |
|
|
1712
|
+
| Status | Status | Rascunho → Publicado → Atualizado |
|
|
1713
|
+
| Última Atualização | Date | Data da última edição |
|
|
1714
|
+
| Arquivo Local | Rich Text | Path do arquivo no repositório |
|
|
1715
|
+
| Tasks Relacionadas | Rich Text | IDs das tasks associadas |
|
|
1716
|
+
```
|
|
1717
|
+
|
|
1718
|
+
---
|
|
1719
|
+
|
|
1720
|
+
### 📖 DATABASE 2: "Manual do Usuário"
|
|
1721
|
+
|
|
1722
|
+
> [!CAUTION]
|
|
1723
|
+
> **REGRA BLOQUEANTE:** Buscar database com nome exato **"Manual do Usuário"**.
|
|
1724
|
+
> NÃO usar "User Manual", "Guia", ou qualquer variação.
|
|
1725
|
+
|
|
1726
|
+
#### Busca Obrigatória
|
|
1727
|
+
|
|
1728
|
+
```json
|
|
1729
|
+
// Tool: mcp_notion-mcp-server_API-post-search
|
|
1730
|
+
{
|
|
1731
|
+
"query": "Manual do Usuário",
|
|
1732
|
+
"filter": { "property": "object", "value": "data_source" }
|
|
1733
|
+
}
|
|
1734
|
+
```
|
|
1735
|
+
|
|
1736
|
+
#### Se NÃO encontrar
|
|
1737
|
+
|
|
1738
|
+
```markdown
|
|
1739
|
+
⚠️ **Database "Manual do Usuário" não encontrado.**
|
|
1740
|
+
|
|
1741
|
+
Para publicar guias acessíveis para usuários e operadores:
|
|
1742
|
+
|
|
1743
|
+
1. Crie um database **"Manual do Usuário"** no Notion com as propriedades listadas abaixo
|
|
1744
|
+
2. Compartilhe o database com a integração (bot)
|
|
1745
|
+
3. Confirme para continuar
|
|
1746
|
+
|
|
1747
|
+
**Propriedades obrigatórias:**
|
|
1748
|
+
|
|
1749
|
+
| Propriedade | Tipo | Descrição |
|
|
1750
|
+
| ------------ | ------ | ---------------------------------------------------------- |
|
|
1751
|
+
| Nome | Title | Título amigável do guia |
|
|
1752
|
+
| Seção | Select | Autenticação, Compras, Checkout, Pedidos, Conta, Operações |
|
|
1753
|
+
| Status | Select | Rascunho, Publicado |
|
|
1754
|
+
| Público-alvo | Select | Usuário Final, Operador |
|
|
1755
|
+
```
|
|
1756
|
+
|
|
1757
|
+
---
|
|
1758
|
+
|
|
1759
|
+
### 📋 PROPRIEDADES OBRIGATÓRIAS — Database "Documentação Técnica"
|
|
1760
|
+
|
|
1761
|
+
| Propriedade | Tipo Notion | Obrigatório | Exemplo |
|
|
1762
|
+
| ---------------------- | ----------- | ----------- | -------------------------------------------- |
|
|
1763
|
+
| **Nome** | `title` | ✅ | "Fluxo: Checkout Guest" |
|
|
1764
|
+
| **Módulo** | `select` | ✅ | `shop/` |
|
|
1765
|
+
| **Tipo** | `select` | ✅ | `Fluxo` |
|
|
1766
|
+
| **Status** | `status` | ✅ | `Publicado` |
|
|
1767
|
+
| **Última Atualização** | `date` | ✅ | 2026-02-16 |
|
|
1768
|
+
| **Arquivo Local** | `rich_text` | ✅ | `docs/flows/shop/checkout/checkout-guest.md` |
|
|
1769
|
+
| **Tasks Relacionadas** | `rich_text` | ⭐ | `#1.1, #1.2, #1.3` |
|
|
1770
|
+
|
|
1771
|
+
#### Valores de "Tipo"
|
|
1772
|
+
|
|
1773
|
+
| Valor | Quando usar |
|
|
1774
|
+
| --------------- | ------------------------------------------------------------ |
|
|
1775
|
+
| `Fluxo` | Documentação de fluxo funcional (Phase 4 legacy) |
|
|
1776
|
+
| `TDD` | Technical Design Document (Phase 5 legacy / Phase 2 new) |
|
|
1777
|
+
| `Design System` | Tokens, cores, tipografia (Phase 5.5 legacy / Phase 2.5 new) |
|
|
1778
|
+
| `Testes` | Estratégia e cobertura (Phase 6 legacy / Phase 4 new) |
|
|
1779
|
+
| `Arquitetura` | CODEBASE, visão geral do módulo |
|
|
1780
|
+
| `PRD` | Product Requirements Document (new-project) |
|
|
1781
|
+
|
|
1782
|
+
#### Valores de "Status"
|
|
1783
|
+
|
|
1784
|
+
| Status | Significado |
|
|
1785
|
+
| ------------ | ------------------------------------------------- |
|
|
1786
|
+
| `Rascunho` | Doc criado mas incompleto |
|
|
1787
|
+
| `Publicado` | Doc completo e disponível para o cliente |
|
|
1788
|
+
| `Atualizado` | Doc existente que foi re-publicado com alterações |
|
|
1789
|
+
|
|
1790
|
+
---
|
|
1791
|
+
|
|
1792
|
+
### 📋 PROPRIEDADES OBRIGATÓRIAS — Database "Manual do Usuário"
|
|
1793
|
+
|
|
1794
|
+
| Propriedade | Tipo Notion | Obrigatório | Exemplo |
|
|
1795
|
+
| ---------------- | ----------- | ----------- | ---------------------- |
|
|
1796
|
+
| **Nome** | `title` | ✅ | "Como criar sua conta" |
|
|
1797
|
+
| **Seção** | `select` | ✅ | `Autenticação` |
|
|
1798
|
+
| **Status** | `select` | ✅ | `Publicado` |
|
|
1799
|
+
| **Público-alvo** | `select` | ✅ | `Usuário Final` |
|
|
1800
|
+
|
|
1801
|
+
#### Valores de "Seção"
|
|
1802
|
+
|
|
1803
|
+
| Valor | Abrange |
|
|
1804
|
+
| -------------- | -------------------------------------- |
|
|
1805
|
+
| `Autenticação` | Login, registro, senha, social login |
|
|
1806
|
+
| `Compras` | Catálogo, busca, navegação |
|
|
1807
|
+
| `Checkout` | Fluxos de compra, pagamento |
|
|
1808
|
+
| `Pedidos` | Acompanhamento, devoluções, reembolsos |
|
|
1809
|
+
| `Conta` | Perfil, wishlist, avaliações |
|
|
1810
|
+
| `Operações` | Guias administrativos/operador |
|
|
1811
|
+
|
|
1812
|
+
#### Valores de "Público-alvo"
|
|
1813
|
+
|
|
1814
|
+
| Valor | Quem lê |
|
|
1815
|
+
| --------------- | ------------------------- |
|
|
1816
|
+
| `Usuário Final` | Cliente da loja |
|
|
1817
|
+
| `Operador` | Admin, suporte, operações |
|
|
1818
|
+
|
|
1819
|
+
---
|
|
1820
|
+
|
|
1821
|
+
### 📝 TEMPLATES DE CORPO — Por Tipo de Documento
|
|
1822
|
+
|
|
1823
|
+
> [!IMPORTANT]
|
|
1824
|
+
> O conteúdo deve ser **COMPLETO** (não resumo). O cliente lê no Notion sem acessar o repositório.
|
|
1825
|
+
|
|
1826
|
+
#### Template: Fluxo
|
|
1827
|
+
|
|
1828
|
+
```json
|
|
1829
|
+
// Blocos Notion para documento tipo "Fluxo"
|
|
1830
|
+
[
|
|
1831
|
+
{
|
|
1832
|
+
"object": "block",
|
|
1833
|
+
"type": "heading_2",
|
|
1834
|
+
"heading_2": { "rich_text": [{ "text": { "content": "📋 Visão Geral" } }] }
|
|
1835
|
+
},
|
|
1836
|
+
{
|
|
1837
|
+
"object": "block",
|
|
1838
|
+
"type": "paragraph",
|
|
1839
|
+
"paragraph": {
|
|
1840
|
+
"rich_text": [{ "text": { "content": "{descrição do fluxo}" } }]
|
|
1841
|
+
}
|
|
1842
|
+
},
|
|
1843
|
+
{
|
|
1844
|
+
"object": "block",
|
|
1845
|
+
"type": "heading_2",
|
|
1846
|
+
"heading_2": {
|
|
1847
|
+
"rich_text": [{ "text": { "content": "🔄 Diagrama do Fluxo" } }]
|
|
1848
|
+
}
|
|
1849
|
+
},
|
|
1850
|
+
{
|
|
1851
|
+
"object": "block",
|
|
1852
|
+
"type": "code",
|
|
1853
|
+
"code": {
|
|
1854
|
+
"rich_text": [{ "text": { "content": "{diagrama mermaid}" } }],
|
|
1855
|
+
"language": "mermaid"
|
|
1856
|
+
}
|
|
1857
|
+
},
|
|
1858
|
+
{
|
|
1859
|
+
"object": "block",
|
|
1860
|
+
"type": "heading_2",
|
|
1861
|
+
"heading_2": {
|
|
1862
|
+
"rich_text": [{ "text": { "content": "🧩 Componentes Envolvidos" } }]
|
|
1863
|
+
}
|
|
1864
|
+
},
|
|
1865
|
+
{
|
|
1866
|
+
"object": "block",
|
|
1867
|
+
"type": "paragraph",
|
|
1868
|
+
"paragraph": {
|
|
1869
|
+
"rich_text": [{ "text": { "content": "{tabela de componentes}" } }]
|
|
1870
|
+
}
|
|
1871
|
+
},
|
|
1872
|
+
{
|
|
1873
|
+
"object": "block",
|
|
1874
|
+
"type": "heading_2",
|
|
1875
|
+
"heading_2": {
|
|
1876
|
+
"rich_text": [{ "text": { "content": "📜 Regras de Negócio" } }]
|
|
1877
|
+
}
|
|
1878
|
+
},
|
|
1879
|
+
{
|
|
1880
|
+
"object": "block",
|
|
1881
|
+
"type": "paragraph",
|
|
1882
|
+
"paragraph": {
|
|
1883
|
+
"rich_text": [{ "text": { "content": "{regras identificadas}" } }]
|
|
1884
|
+
}
|
|
1885
|
+
},
|
|
1886
|
+
{
|
|
1887
|
+
"object": "block",
|
|
1888
|
+
"type": "heading_2",
|
|
1889
|
+
"heading_2": {
|
|
1890
|
+
"rich_text": [{ "text": { "content": "✅ Casos de Teste" } }]
|
|
1891
|
+
}
|
|
1892
|
+
},
|
|
1893
|
+
{
|
|
1894
|
+
"object": "block",
|
|
1895
|
+
"type": "paragraph",
|
|
1896
|
+
"paragraph": {
|
|
1897
|
+
"rich_text": [
|
|
1898
|
+
{ "text": { "content": "{happy path + edge cases + error cases}" } }
|
|
1899
|
+
]
|
|
1900
|
+
}
|
|
1901
|
+
},
|
|
1902
|
+
{
|
|
1903
|
+
"object": "block",
|
|
1904
|
+
"type": "divider",
|
|
1905
|
+
"divider": {}
|
|
1906
|
+
},
|
|
1907
|
+
{
|
|
1908
|
+
"object": "block",
|
|
1909
|
+
"type": "heading_3",
|
|
1910
|
+
"heading_3": {
|
|
1911
|
+
"rich_text": [{ "text": { "content": "📜 Histórico de Atualizações" } }]
|
|
1912
|
+
}
|
|
1913
|
+
},
|
|
1914
|
+
{
|
|
1915
|
+
"object": "block",
|
|
1916
|
+
"type": "paragraph",
|
|
1917
|
+
"paragraph": {
|
|
1918
|
+
"rich_text": [
|
|
1919
|
+
{
|
|
1920
|
+
"text": {
|
|
1921
|
+
"content": "| Data | Descrição | Tasks |\n|------|-----------|-------|\n| {data} | Publicação inicial | {tasks} |"
|
|
1922
|
+
}
|
|
1923
|
+
}
|
|
1924
|
+
]
|
|
1925
|
+
}
|
|
1926
|
+
}
|
|
1927
|
+
]
|
|
1928
|
+
```
|
|
1929
|
+
|
|
1930
|
+
#### Template: TDD
|
|
1931
|
+
|
|
1932
|
+
```json
|
|
1933
|
+
// Blocos Notion para documento tipo "TDD"
|
|
1934
|
+
[
|
|
1935
|
+
{
|
|
1936
|
+
"object": "block",
|
|
1937
|
+
"type": "heading_2",
|
|
1938
|
+
"heading_2": {
|
|
1939
|
+
"rich_text": [{ "text": { "content": "🎯 Contexto e Objetivo" } }]
|
|
1940
|
+
}
|
|
1941
|
+
},
|
|
1942
|
+
{
|
|
1943
|
+
"object": "block",
|
|
1944
|
+
"type": "paragraph",
|
|
1945
|
+
"paragraph": {
|
|
1946
|
+
"rich_text": [{ "text": { "content": "{contexto do módulo}" } }]
|
|
1947
|
+
}
|
|
1948
|
+
},
|
|
1949
|
+
{
|
|
1950
|
+
"object": "block",
|
|
1951
|
+
"type": "heading_2",
|
|
1952
|
+
"heading_2": {
|
|
1953
|
+
"rich_text": [{ "text": { "content": "🛠️ Stack Tecnológica" } }]
|
|
1954
|
+
}
|
|
1955
|
+
},
|
|
1956
|
+
{
|
|
1957
|
+
"object": "block",
|
|
1958
|
+
"type": "paragraph",
|
|
1959
|
+
"paragraph": {
|
|
1960
|
+
"rich_text": [{ "text": { "content": "{stack identificada}" } }]
|
|
1961
|
+
}
|
|
1962
|
+
},
|
|
1963
|
+
{
|
|
1964
|
+
"object": "block",
|
|
1965
|
+
"type": "heading_2",
|
|
1966
|
+
"heading_2": {
|
|
1967
|
+
"rich_text": [{ "text": { "content": "📦 Módulos e Dependências" } }]
|
|
1968
|
+
}
|
|
1969
|
+
},
|
|
1970
|
+
{
|
|
1971
|
+
"object": "block",
|
|
1972
|
+
"type": "paragraph",
|
|
1973
|
+
"paragraph": {
|
|
1974
|
+
"rich_text": [{ "text": { "content": "{módulos analisados}" } }]
|
|
1975
|
+
}
|
|
1976
|
+
},
|
|
1977
|
+
{
|
|
1978
|
+
"object": "block",
|
|
1979
|
+
"type": "heading_2",
|
|
1980
|
+
"heading_2": {
|
|
1981
|
+
"rich_text": [{ "text": { "content": "⚠️ Riscos e Débitos Técnicos" } }]
|
|
1982
|
+
}
|
|
1983
|
+
},
|
|
1984
|
+
{
|
|
1985
|
+
"object": "block",
|
|
1986
|
+
"type": "paragraph",
|
|
1987
|
+
"paragraph": {
|
|
1988
|
+
"rich_text": [{ "text": { "content": "{riscos identificados}" } }]
|
|
1989
|
+
}
|
|
1990
|
+
},
|
|
1991
|
+
{
|
|
1992
|
+
"object": "block",
|
|
1993
|
+
"type": "divider",
|
|
1994
|
+
"divider": {}
|
|
1995
|
+
},
|
|
1996
|
+
{
|
|
1997
|
+
"object": "block",
|
|
1998
|
+
"type": "heading_3",
|
|
1999
|
+
"heading_3": {
|
|
2000
|
+
"rich_text": [{ "text": { "content": "📜 Histórico de Atualizações" } }]
|
|
2001
|
+
}
|
|
2002
|
+
},
|
|
2003
|
+
{
|
|
2004
|
+
"object": "block",
|
|
2005
|
+
"type": "paragraph",
|
|
2006
|
+
"paragraph": {
|
|
2007
|
+
"rich_text": [
|
|
2008
|
+
{
|
|
2009
|
+
"text": {
|
|
2010
|
+
"content": "| Data | Descrição | Tasks |\n|------|-----------|-------|\n| {data} | Publicação inicial | {tasks} |"
|
|
2011
|
+
}
|
|
2012
|
+
}
|
|
2013
|
+
]
|
|
2014
|
+
}
|
|
2015
|
+
}
|
|
2016
|
+
]
|
|
2017
|
+
```
|
|
2018
|
+
|
|
2019
|
+
#### Template: Design System
|
|
2020
|
+
|
|
2021
|
+
```json
|
|
2022
|
+
// Blocos Notion para documento tipo "Design System"
|
|
2023
|
+
[
|
|
2024
|
+
{
|
|
2025
|
+
"object": "block",
|
|
2026
|
+
"type": "heading_2",
|
|
2027
|
+
"heading_2": { "rich_text": [{ "text": { "content": "🎨 Cores" } }] }
|
|
2028
|
+
},
|
|
2029
|
+
{
|
|
2030
|
+
"object": "block",
|
|
2031
|
+
"type": "paragraph",
|
|
2032
|
+
"paragraph": {
|
|
2033
|
+
"rich_text": [{ "text": { "content": "{paleta de cores}" } }]
|
|
2034
|
+
}
|
|
2035
|
+
},
|
|
2036
|
+
{
|
|
2037
|
+
"object": "block",
|
|
2038
|
+
"type": "heading_2",
|
|
2039
|
+
"heading_2": { "rich_text": [{ "text": { "content": "🔤 Tipografia" } }] }
|
|
2040
|
+
},
|
|
2041
|
+
{
|
|
2042
|
+
"object": "block",
|
|
2043
|
+
"type": "paragraph",
|
|
2044
|
+
"paragraph": {
|
|
2045
|
+
"rich_text": [{ "text": { "content": "{fontes e escalas}" } }]
|
|
2046
|
+
}
|
|
2047
|
+
},
|
|
2048
|
+
{
|
|
2049
|
+
"object": "block",
|
|
2050
|
+
"type": "heading_2",
|
|
2051
|
+
"heading_2": {
|
|
2052
|
+
"rich_text": [{ "text": { "content": "📐 Espaçamento e Grid" } }]
|
|
2053
|
+
}
|
|
2054
|
+
},
|
|
2055
|
+
{
|
|
2056
|
+
"object": "block",
|
|
2057
|
+
"type": "paragraph",
|
|
2058
|
+
"paragraph": {
|
|
2059
|
+
"rich_text": [{ "text": { "content": "{spacing tokens}" } }]
|
|
2060
|
+
}
|
|
2061
|
+
},
|
|
2062
|
+
{
|
|
2063
|
+
"object": "block",
|
|
2064
|
+
"type": "heading_2",
|
|
2065
|
+
"heading_2": { "rich_text": [{ "text": { "content": "🧩 Componentes" } }] }
|
|
2066
|
+
},
|
|
2067
|
+
{
|
|
2068
|
+
"object": "block",
|
|
2069
|
+
"type": "paragraph",
|
|
2070
|
+
"paragraph": {
|
|
2071
|
+
"rich_text": [{ "text": { "content": "{componentes base}" } }]
|
|
2072
|
+
}
|
|
2073
|
+
},
|
|
2074
|
+
{
|
|
2075
|
+
"object": "block",
|
|
2076
|
+
"type": "divider",
|
|
2077
|
+
"divider": {}
|
|
2078
|
+
},
|
|
2079
|
+
{
|
|
2080
|
+
"object": "block",
|
|
2081
|
+
"type": "heading_3",
|
|
2082
|
+
"heading_3": {
|
|
2083
|
+
"rich_text": [{ "text": { "content": "📜 Histórico de Atualizações" } }]
|
|
2084
|
+
}
|
|
2085
|
+
},
|
|
2086
|
+
{
|
|
2087
|
+
"object": "block",
|
|
2088
|
+
"type": "paragraph",
|
|
2089
|
+
"paragraph": {
|
|
2090
|
+
"rich_text": [
|
|
2091
|
+
{
|
|
2092
|
+
"text": {
|
|
2093
|
+
"content": "| Data | Descrição | Tasks |\n|------|-----------|-------|\n| {data} | Publicação inicial | {tasks} |"
|
|
2094
|
+
}
|
|
2095
|
+
}
|
|
2096
|
+
]
|
|
2097
|
+
}
|
|
2098
|
+
}
|
|
2099
|
+
]
|
|
2100
|
+
```
|
|
2101
|
+
|
|
2102
|
+
#### Template: Testes
|
|
2103
|
+
|
|
2104
|
+
```json
|
|
2105
|
+
// Blocos Notion para documento tipo "Testes"
|
|
2106
|
+
[
|
|
2107
|
+
{
|
|
2108
|
+
"object": "block",
|
|
2109
|
+
"type": "heading_2",
|
|
2110
|
+
"heading_2": {
|
|
2111
|
+
"rich_text": [{ "text": { "content": "📊 Cobertura Atual" } }]
|
|
2112
|
+
}
|
|
2113
|
+
},
|
|
2114
|
+
{
|
|
2115
|
+
"object": "block",
|
|
2116
|
+
"type": "paragraph",
|
|
2117
|
+
"paragraph": {
|
|
2118
|
+
"rich_text": [{ "text": { "content": "{métricas de cobertura}" } }]
|
|
2119
|
+
}
|
|
2120
|
+
},
|
|
2121
|
+
{
|
|
2122
|
+
"object": "block",
|
|
2123
|
+
"type": "heading_2",
|
|
2124
|
+
"heading_2": {
|
|
2125
|
+
"rich_text": [{ "text": { "content": "🧪 Estratégia de Testes" } }]
|
|
2126
|
+
}
|
|
2127
|
+
},
|
|
2128
|
+
{
|
|
2129
|
+
"object": "block",
|
|
2130
|
+
"type": "paragraph",
|
|
2131
|
+
"paragraph": {
|
|
2132
|
+
"rich_text": [
|
|
2133
|
+
{ "text": { "content": "{pirâmide: unit > integration > e2e}" } }
|
|
2134
|
+
]
|
|
2135
|
+
}
|
|
2136
|
+
},
|
|
2137
|
+
{
|
|
2138
|
+
"object": "block",
|
|
2139
|
+
"type": "heading_2",
|
|
2140
|
+
"heading_2": {
|
|
2141
|
+
"rich_text": [{ "text": { "content": "✅ Cenários Cobertos" } }]
|
|
2142
|
+
}
|
|
2143
|
+
},
|
|
2144
|
+
{
|
|
2145
|
+
"object": "block",
|
|
2146
|
+
"type": "paragraph",
|
|
2147
|
+
"paragraph": {
|
|
2148
|
+
"rich_text": [{ "text": { "content": "{lista de cenários}" } }]
|
|
2149
|
+
}
|
|
2150
|
+
},
|
|
2151
|
+
{
|
|
2152
|
+
"object": "block",
|
|
2153
|
+
"type": "divider",
|
|
2154
|
+
"divider": {}
|
|
2155
|
+
},
|
|
2156
|
+
{
|
|
2157
|
+
"object": "block",
|
|
2158
|
+
"type": "heading_3",
|
|
2159
|
+
"heading_3": {
|
|
2160
|
+
"rich_text": [{ "text": { "content": "📜 Histórico de Atualizações" } }]
|
|
2161
|
+
}
|
|
2162
|
+
},
|
|
2163
|
+
{
|
|
2164
|
+
"object": "block",
|
|
2165
|
+
"type": "paragraph",
|
|
2166
|
+
"paragraph": {
|
|
2167
|
+
"rich_text": [
|
|
2168
|
+
{
|
|
2169
|
+
"text": {
|
|
2170
|
+
"content": "| Data | Descrição | Tasks |\n|------|-----------|-------|\n| {data} | Publicação inicial | {tasks} |"
|
|
2171
|
+
}
|
|
2172
|
+
}
|
|
2173
|
+
]
|
|
2174
|
+
}
|
|
2175
|
+
}
|
|
2176
|
+
]
|
|
2177
|
+
```
|
|
2178
|
+
|
|
2179
|
+
---
|
|
2180
|
+
|
|
2181
|
+
### 🔄 UPSERT — Atualizar Documentação Existente
|
|
2182
|
+
|
|
2183
|
+
> [!CAUTION]
|
|
2184
|
+
> **REGRA:** Antes de criar uma nova página, SEMPRE verificar se já existe um doc com
|
|
2185
|
+
> mesmo **Nome** + **Módulo** na database. Se existir → ATUALIZAR, não duplicar.
|
|
2186
|
+
> **Aplica-se a AMBOS databases:** "Documentação Técnica" e "Manual do Usuário".
|
|
2187
|
+
|
|
2188
|
+
#### Processo de Verificação — Documentação Técnica
|
|
2189
|
+
|
|
2190
|
+
```json
|
|
2191
|
+
// Tool: mcp_notion-mcp-server_API-query-data-source
|
|
2192
|
+
{
|
|
2193
|
+
"data_source_id": "{DOC_TECNICA_DATABASE_ID}",
|
|
2194
|
+
"filter": {
|
|
2195
|
+
"and": [
|
|
2196
|
+
{ "property": "Nome", "title": { "equals": "{nome_do_doc}" } },
|
|
2197
|
+
{ "property": "Módulo", "select": { "equals": "{módulo}" } }
|
|
2198
|
+
]
|
|
2199
|
+
}
|
|
2200
|
+
}
|
|
2201
|
+
```
|
|
2202
|
+
|
|
2203
|
+
#### Processo de Verificação — Manual do Usuário
|
|
2204
|
+
|
|
2205
|
+
```json
|
|
2206
|
+
// Tool: mcp_notion-mcp-server_API-query-data-source
|
|
2207
|
+
{
|
|
2208
|
+
"data_source_id": "{MANUAL_DATABASE_ID}",
|
|
2209
|
+
"filter": {
|
|
2210
|
+
"property": "Nome",
|
|
2211
|
+
"title": { "equals": "{nome_do_guia}" }
|
|
2212
|
+
}
|
|
2213
|
+
}
|
|
2214
|
+
```
|
|
2215
|
+
|
|
2216
|
+
#### Se encontrar (UPDATE)
|
|
2217
|
+
|
|
2218
|
+
1. **Deletar** blocos antigos do corpo (exceto o histórico)
|
|
2219
|
+
2. **Adicionar** novos blocos com conteúdo atualizado
|
|
2220
|
+
3. **Atualizar propriedades:**
|
|
2221
|
+
- `Status` → "Atualizado" (técnica) ou manter "Publicado" (manual)
|
|
2222
|
+
- `Última Atualização` → data atual
|
|
2223
|
+
- `Tasks Relacionadas` → adicionar novas tasks (append, não substituir) — apenas técnica
|
|
2224
|
+
4. **Adicionar entrada** no histórico de atualizações (apenas técnica):
|
|
2225
|
+
```
|
|
2226
|
+
| {data} | {descrição da atualização} | {novas tasks} |
|
|
2227
|
+
```
|
|
2228
|
+
5. **Adicionar comentário** na página:
|
|
2229
|
+
```json
|
|
2230
|
+
// Tool: mcp_notion-mcp-server_API-create-a-comment
|
|
2231
|
+
{
|
|
2232
|
+
"parent": { "page_id": "{page_id}" },
|
|
2233
|
+
"rich_text": [
|
|
2234
|
+
{
|
|
2235
|
+
"text": {
|
|
2236
|
+
"content": "🔄 Documentação atualizada\n\n📋 Alterações: {descrição}\n📅 Data: {data}\n🔗 Tasks: {IDs}"
|
|
2237
|
+
}
|
|
2238
|
+
}
|
|
2239
|
+
]
|
|
2240
|
+
}
|
|
2241
|
+
```
|
|
2242
|
+
|
|
2243
|
+
#### Se NÃO encontrar (CREATE)
|
|
2244
|
+
|
|
2245
|
+
Seguir processo normal: ETAPA 1 (criar página) → ETAPA 2 (adicionar corpo com template).
|
|
2246
|
+
|
|
2247
|
+
---
|
|
2248
|
+
|
|
2249
|
+
### 📜 HISTÓRICO DE ATUALIZAÇÕES (Obrigatório — Documentação Técnica)
|
|
2250
|
+
|
|
2251
|
+
> [!IMPORTANT]
|
|
2252
|
+
> **TODO documento na database "Documentação Técnica" DEVE ter um bloco de histórico** no final.
|
|
2253
|
+
> O histórico registra cada publicação/atualização com referência às tasks do trabalho realizado.
|
|
2254
|
+
> **Nota:** O "Manual do Usuário" NÃO requer histórico técnico — apenas conteúdo acessível.
|
|
2255
|
+
|
|
2256
|
+
#### Formato
|
|
2257
|
+
|
|
2258
|
+
```markdown
|
|
2259
|
+
📜 Histórico de Atualizações
|
|
2260
|
+
|
|
2261
|
+
| Data | Descrição | Tasks Relacionadas |
|
|
2262
|
+
| ---------- | --------------------------------------------------------- | ------------------ |
|
|
2263
|
+
| 2026-02-16 | Publicação inicial — documentação do fluxo checkout guest | #1.1, #1.2 |
|
|
2264
|
+
| 2026-03-01 | Atualizado com novos edge cases identificados | #3.5 |
|
|
2265
|
+
```
|
|
2266
|
+
|
|
2267
|
+
#### Regras
|
|
2268
|
+
|
|
2269
|
+
1. **Publicação inicial** — entrada com data + "Publicação inicial" + tasks das fases que geraram o doc
|
|
2270
|
+
2. **Updates subsequentes** — adicionar linha com data + descrição + novas tasks
|
|
2271
|
+
3. **Tasks referenciadas** — usar os IDs das tasks da database "Tarefas" que geraram/atualizaram o doc
|
|
2272
|
+
4. **Nunca deletar histórico** — apenas append de novas entradas
|
|
2273
|
+
|
|
2274
|
+
---
|
|
2275
|
+
|
|
2276
|
+
### Processo: Publicação de Documentação Técnica
|
|
2277
|
+
|
|
2278
|
+
> Usado na Phase 8 do `/legacy-project` e Phase 7.5 do `/new-project`.
|
|
2279
|
+
|
|
2280
|
+
#### Passo 1: Discovery e Validação
|
|
2281
|
+
|
|
2282
|
+
1. Buscar database "Documentação Técnica" (ver seção "DATABASE 1" acima)
|
|
2283
|
+
2. Validar schema (ver seção "PROPRIEDADES OBRIGATÓRIAS — Database Documentação Técnica" acima)
|
|
2284
|
+
3. Se ausente → PARAR e notificar usuário
|
|
2285
|
+
|
|
2286
|
+
#### Passo 2: Coletar Artefatos Gerados
|
|
2287
|
+
|
|
2288
|
+
Listar todos os docs gerados nas fases anteriores:
|
|
2289
|
+
|
|
2290
|
+
| Fonte | Tipo | Arquivo Local |
|
|
2291
|
+
| ------------------------------------ | ------------- | --------------------------------------- |
|
|
2292
|
+
| Phase 4 (legacy) / — | Fluxo | `docs/flows/{módulo}/{fluxo}.md` |
|
|
2293
|
+
| Phase 5 (legacy) / Phase 2 (new) | TDD | `docs/design/TDD-{projeto}-{módulo}.md` |
|
|
2294
|
+
| Phase 5.5 (legacy) / Phase 2.5 (new) | Design System | `design-system/MASTER.md` |
|
|
2295
|
+
| Phase 6 (legacy) / Phase 4 (new) | Testes | (relatório de cobertura) |
|
|
2296
|
+
| Phase 1 (legacy) | Arquitetura | `docs/CODEBASE-{projeto}.md` |
|
|
2297
|
+
| Phase 1 (new) | PRD | `docs/PRD-{nome}.md` |
|
|
2298
|
+
|
|
2299
|
+
#### Passo 3: Para cada artefato
|
|
2300
|
+
|
|
2301
|
+
1. Verificar upsert (doc já existe?)
|
|
2302
|
+
2. Ler conteúdo completo do arquivo local
|
|
2303
|
+
3. Criar/atualizar página Notion com template correto
|
|
2304
|
+
4. Preencher propriedades (Nome, Módulo, Tipo, Status, Data, Arquivo Local, Tasks)
|
|
2305
|
+
5. Adicionar entrada no histórico
|
|
2306
|
+
|
|
2307
|
+
#### Passo 4: Relatório de Publicação
|
|
2308
|
+
|
|
2309
|
+
```markdown
|
|
2310
|
+
📚 **DOCUMENTAÇÃO TÉCNICA PUBLICADA - {módulo}**
|
|
2311
|
+
|
|
2312
|
+
| # | Documento | Tipo | Status | Notion |
|
|
2313
|
+
| --- | --------- | ------ | ---------------------- | ------ |
|
|
2314
|
+
| 1 | {nome} | {tipo} | {Publicado/Atualizado} | 🔗 |
|
|
2315
|
+
| ... | ... | ... | ... | ... |
|
|
2316
|
+
|
|
2317
|
+
Total: {N} documentos publicados
|
|
2318
|
+
✅ Devs podem consultar em: Notion → Database "Documentação Técnica"
|
|
2319
|
+
```
|
|
2320
|
+
|
|
2321
|
+
---
|
|
2322
|
+
|
|
2323
|
+
### Processo: Publicação do Manual do Usuário
|
|
2324
|
+
|
|
2325
|
+
> Usado na Phase 8.5 do `/legacy-project` e Phase 7.6 do `/new-project`.
|
|
2326
|
+
> Executado APÓS a publicação da Documentação Técnica.
|
|
2327
|
+
|
|
2328
|
+
#### Passo 1: Discovery e Validação
|
|
2329
|
+
|
|
2330
|
+
1. Buscar database "Manual do Usuário" (ver seção "DATABASE 2" acima)
|
|
2331
|
+
2. Validar schema (ver seção "PROPRIEDADES OBRIGATÓRIAS — Database Manual do Usuário" acima)
|
|
2332
|
+
3. Se ausente → PARAR e notificar usuário
|
|
2333
|
+
|
|
2334
|
+
#### Passo 2: Mapear Fluxos Técnicos → Guias de Usuário
|
|
2335
|
+
|
|
2336
|
+
Para cada fluxo publicado na Documentação Técnica, gerar versão acessível:
|
|
2337
|
+
|
|
2338
|
+
| Fluxos Técnicos | Guia do Usuário | Público-alvo | Seção |
|
|
2339
|
+
| ----------------------------------------------------------------- | ----------------------------- | ------------- | ------------ |
|
|
2340
|
+
| login, register, social-login, otp-login | Como criar sua conta | Usuário Final | Autenticação |
|
|
2341
|
+
| password-recovery | Esqueci minha senha | Usuário Final | Autenticação |
|
|
2342
|
+
| catalog, search | Navegando e buscando produtos | Usuário Final | Compras |
|
|
2343
|
+
| checkout-standard, checkout-guest, checkout-digital, payment-flow | Finalizando sua compra | Usuário Final | Checkout |
|
|
2344
|
+
| orders | Acompanhando seus pedidos | Usuário Final | Pedidos |
|
|
2345
|
+
| refunds | Devoluções e reembolsos | Usuário Final | Pedidos |
|
|
2346
|
+
| profile | Gerenciando seu perfil | Usuário Final | Conta |
|
|
2347
|
+
| wishlist | Lista de desejos | Usuário Final | Conta |
|
|
2348
|
+
| reviews | Deixando avaliações | Usuário Final | Conta |
|
|
2349
|
+
| (admin: pedidos) | Gestão de Pedidos | Operador | Operações |
|
|
2350
|
+
| (admin: produtos) | Gestão de Produtos | Operador | Operações |
|
|
2351
|
+
| (admin: usuários) | Gestão de Usuários | Operador | Operações |
|
|
2352
|
+
|
|
2353
|
+
#### Passo 3: Template de Corpo — Manual do Usuário
|
|
2354
|
+
|
|
2355
|
+
```json
|
|
2356
|
+
// Blocos Notion para guia do usuário
|
|
2357
|
+
[
|
|
2358
|
+
{
|
|
2359
|
+
"object": "block",
|
|
2360
|
+
"type": "callout",
|
|
2361
|
+
"callout": {
|
|
2362
|
+
"rich_text": [
|
|
2363
|
+
{ "text": { "content": "{descrição simples em 1-2 frases}" } }
|
|
2364
|
+
],
|
|
2365
|
+
"icon": { "emoji": "💡" }
|
|
2366
|
+
}
|
|
2367
|
+
},
|
|
2368
|
+
{
|
|
2369
|
+
"object": "block",
|
|
2370
|
+
"type": "heading_2",
|
|
2371
|
+
"heading_2": {
|
|
2372
|
+
"rich_text": [{ "text": { "content": "📝 Passo a Passo" } }]
|
|
2373
|
+
}
|
|
2374
|
+
},
|
|
2375
|
+
{
|
|
2376
|
+
"object": "block",
|
|
2377
|
+
"type": "numbered_list_item",
|
|
2378
|
+
"numbered_list_item": {
|
|
2379
|
+
"rich_text": [
|
|
2380
|
+
{ "text": { "content": "{passo 1 — linguagem simples, sem código}" } }
|
|
2381
|
+
]
|
|
2382
|
+
}
|
|
2383
|
+
},
|
|
2384
|
+
{
|
|
2385
|
+
"object": "block",
|
|
2386
|
+
"type": "numbered_list_item",
|
|
2387
|
+
"numbered_list_item": {
|
|
2388
|
+
"rich_text": [{ "text": { "content": "{passo 2}" } }]
|
|
2389
|
+
}
|
|
2390
|
+
},
|
|
2391
|
+
{
|
|
2392
|
+
"object": "block",
|
|
2393
|
+
"type": "heading_2",
|
|
2394
|
+
"heading_2": {
|
|
2395
|
+
"rich_text": [{ "text": { "content": "💡 Dicas Importantes" } }]
|
|
2396
|
+
}
|
|
2397
|
+
},
|
|
2398
|
+
{
|
|
2399
|
+
"object": "block",
|
|
2400
|
+
"type": "bulleted_list_item",
|
|
2401
|
+
"bulleted_list_item": {
|
|
2402
|
+
"rich_text": [{ "text": { "content": "{dica útil 1}" } }]
|
|
2403
|
+
}
|
|
2404
|
+
},
|
|
2405
|
+
{
|
|
2406
|
+
"object": "block",
|
|
2407
|
+
"type": "heading_2",
|
|
2408
|
+
"heading_2": {
|
|
2409
|
+
"rich_text": [{ "text": { "content": "❓ Problemas Comuns" } }]
|
|
2410
|
+
}
|
|
2411
|
+
},
|
|
2412
|
+
{
|
|
2413
|
+
"object": "block",
|
|
2414
|
+
"type": "paragraph",
|
|
2415
|
+
"paragraph": {
|
|
2416
|
+
"rich_text": [
|
|
2417
|
+
{
|
|
2418
|
+
"text": {
|
|
2419
|
+
"content": "| Problema | Solução |\n|----------|---------|\n| {problema 1} | {solução 1} |"
|
|
2420
|
+
}
|
|
2421
|
+
}
|
|
2422
|
+
]
|
|
2423
|
+
}
|
|
2424
|
+
},
|
|
2425
|
+
{
|
|
2426
|
+
"object": "block",
|
|
2427
|
+
"type": "divider",
|
|
2428
|
+
"divider": {}
|
|
2429
|
+
},
|
|
2430
|
+
{
|
|
2431
|
+
"object": "block",
|
|
2432
|
+
"type": "callout",
|
|
2433
|
+
"callout": {
|
|
2434
|
+
"rich_text": [
|
|
2435
|
+
{
|
|
2436
|
+
"text": {
|
|
2437
|
+
"content": "Precisa de ajuda? Entre em contato com o suporte."
|
|
2438
|
+
}
|
|
2439
|
+
}
|
|
2440
|
+
],
|
|
2441
|
+
"icon": { "emoji": "🆘" }
|
|
2442
|
+
}
|
|
2443
|
+
}
|
|
2444
|
+
]
|
|
2445
|
+
```
|
|
2446
|
+
|
|
2447
|
+
> [!CAUTION]
|
|
2448
|
+
> **REGRAS DO MANUAL DO USUÁRIO:**
|
|
2449
|
+
>
|
|
2450
|
+
> - ❌ NÃO incluir nomes de componentes React, hooks, atoms, ou paths de arquivo
|
|
2451
|
+
> - ❌ NÃO usar diagramas Mermaid ou JSON de API
|
|
2452
|
+
> - ❌ NÃO referenciar libs (jotai, react-query, yup, etc.)
|
|
2453
|
+
> - ✅ Usar linguagem simples e direta ("Clique em...", "Digite seu...")
|
|
2454
|
+
> - ✅ Focar em ações do usuário, não em implementação técnica
|
|
2455
|
+
> - ✅ Incluir dicas práticas e soluções para problemas comuns
|
|
2456
|
+
|
|
2457
|
+
#### Passo 4: Relatório de Publicação
|
|
2458
|
+
|
|
2459
|
+
```markdown
|
|
2460
|
+
📖 **MANUAL DO USUÁRIO PUBLICADO - {módulo}**
|
|
2461
|
+
|
|
2462
|
+
| # | Guia | Público-alvo | Seção | Status |
|
|
2463
|
+
| --- | ------ | ------------ | ------- | --------- |
|
|
2464
|
+
| 1 | {nome} | {público} | {seção} | Publicado |
|
|
2465
|
+
| ... | ... | ... | ... | ... |
|
|
2466
|
+
|
|
2467
|
+
Total: {N} guias publicados
|
|
2468
|
+
✅ Usuários e operadores podem consultar em: Notion → Database "Manual do Usuário"
|
|
2469
|
+
```
|
|
2470
|
+
|
|
2471
|
+
---
|
|
2472
|
+
|
|
2473
|
+
## 📋 CHECKLIST DE USO
|
|
2474
|
+
|
|
2475
|
+
### Para Tasks (Database "Tarefas")
|
|
2476
|
+
|
|
2477
|
+
Antes de criar/atualizar task:
|
|
2478
|
+
|
|
2479
|
+
- [ ] **Idioma definido** em PROJECT-PROGRESS.md (PT-BR ou EN)
|
|
2480
|
+
- [ ] Database descoberto dinamicamente (não hardcoded)
|
|
2481
|
+
- [ ] Schema validado com propriedades obrigatórias
|
|
2482
|
+
- [ ] Categoria detectada corretamente
|
|
2483
|
+
- [ ] **ETAPA 1:** Task criada via `API-post-page`
|
|
2484
|
+
- [ ] **ETAPA 2:** Corpo adicionado via `API-patch-block-children` (OBRIGATÓRIO)
|
|
2485
|
+
- [ ] Template correto usado para categoria (no idioma do projeto)
|
|
2486
|
+
|
|
2487
|
+
Ao concluir task:
|
|
2488
|
+
|
|
2489
|
+
- [ ] `Status` → "Concluído"
|
|
2490
|
+
- [ ] `Tempo Gasto` preenchido
|
|
2491
|
+
- [ ] **Comentário rico** adicionado (no idioma do projeto)
|
|
2492
|
+
|
|
2493
|
+
### Para Documentação Técnica (Database "Documentação Técnica")
|
|
2494
|
+
|
|
2495
|
+
Antes de publicar:
|
|
2496
|
+
|
|
2497
|
+
- [ ] Database "Documentação Técnica" descoberto e validado
|
|
2498
|
+
- [ ] Verificação de upsert realizada (doc já existe?)
|
|
2499
|
+
- [ ] Conteúdo completo lido do arquivo local
|
|
2500
|
+
- [ ] Template correto usado para o tipo de documento
|
|
2501
|
+
- [ ] Histórico de atualizações incluído no corpo
|
|
2502
|
+
- [ ] Tasks relacionadas referenciadas
|
|
2503
|
+
|
|
2504
|
+
### Para Manual do Usuário (Database "Manual do Usuário")
|
|
2505
|
+
|
|
2506
|
+
Antes de publicar:
|
|
2507
|
+
|
|
2508
|
+
- [ ] Database "Manual do Usuário" descoberto e validado
|
|
2509
|
+
- [ ] Verificação de upsert realizada (guia já existe?)
|
|
2510
|
+
- [ ] Conteúdo escrito em linguagem acessível (sem código)
|
|
2511
|
+
- [ ] Template de guia usado (passo-a-passo + dicas + problemas)
|
|
2512
|
+
- [ ] Público-alvo definido (Usuário Final ou Operador)
|
|
2513
|
+
- [ ] Seção definida corretamente
|
|
2514
|
+
|
|
2515
|
+
---
|
|
2516
|
+
|
|
2517
|
+
## 🔗 WORKFLOWS QUE USAM ESTA SKILL
|
|
2518
|
+
|
|
2519
|
+
| Workflow | Operação |
|
|
2520
|
+
| ----------------- | --------------------------------------------------------------------------- |
|
|
2521
|
+
| `/discovery` | Criar tasks do TDD |
|
|
2522
|
+
| `/new-task` | Criar task de melhoria/bug + context check em ambos DBs |
|
|
2523
|
+
| `/tdd breakdown` | Criar tasks do breakdown |
|
|
2524
|
+
| `/legacy-project` | Tasks (phases 3.5-7) + Doc Técnica (phase 8) + Manual (phase 8.5) |
|
|
2525
|
+
| `/log` | Criar task retroativa |
|
|
2526
|
+
| `/execute` | Atualizar task existente |
|
|
2527
|
+
| `/new-project` | Tasks (breakdown + tracking) + Doc Técnica (phase 7.5) + Manual (phase 7.6) |
|
|
2528
|
+
| `/task-update` | Atualizar progresso |
|
|
2529
|
+
| `/document` | Publicar doc em ambos DBs (Fase 4) |
|