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.
Files changed (302) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +134 -0
  3. package/bin/install.js +357 -0
  4. package/bridge/bridge.py +1780 -0
  5. package/bridge/local_tracker.py +722 -0
  6. package/core/agents/backend-specialist.md +266 -0
  7. package/core/agents/code-archaeologist.md +106 -0
  8. package/core/agents/database-architect.md +226 -0
  9. package/core/agents/debugger.md +225 -0
  10. package/core/agents/devops-engineer.md +323 -0
  11. package/core/agents/documentation-writer.md +104 -0
  12. package/core/agents/explorer-agent.md +73 -0
  13. package/core/agents/frontend-specialist.md +743 -0
  14. package/core/agents/game-developer.md +162 -0
  15. package/core/agents/mobile-developer.md +377 -0
  16. package/core/agents/orchestrator.md +416 -0
  17. package/core/agents/penetration-tester.md +188 -0
  18. package/core/agents/performance-optimizer.md +187 -0
  19. package/core/agents/product-manager.md +112 -0
  20. package/core/agents/product-owner.md +95 -0
  21. package/core/agents/project-planner.md +470 -0
  22. package/core/agents/qa-automation-engineer.md +103 -0
  23. package/core/agents/security-auditor.md +170 -0
  24. package/core/agents/seo-specialist.md +111 -0
  25. package/core/agents/stitch-designer.md +190 -0
  26. package/core/agents/tdd-reviewer.md +282 -0
  27. package/core/agents/test-engineer.md +158 -0
  28. package/core/scripts/auto_preview.py +148 -0
  29. package/core/scripts/checklist.py +243 -0
  30. package/core/scripts/cost_report.py +149 -0
  31. package/core/scripts/doc-sync-check.py +461 -0
  32. package/core/scripts/parse_user_stories.py +79 -0
  33. package/core/scripts/prepare_notion_updates.py +172 -0
  34. package/core/scripts/print_create_payload.py +18 -0
  35. package/core/scripts/session_manager.py +120 -0
  36. package/core/scripts/task_complete.py +127 -0
  37. package/core/scripts/verify_all.py +327 -0
  38. package/core/skills/analytics-strategy/SKILL.md +128 -0
  39. package/core/skills/api-patterns/SKILL.md +81 -0
  40. package/core/skills/api-patterns/api-style.md +42 -0
  41. package/core/skills/api-patterns/auth.md +24 -0
  42. package/core/skills/api-patterns/documentation.md +26 -0
  43. package/core/skills/api-patterns/graphql.md +41 -0
  44. package/core/skills/api-patterns/rate-limiting.md +31 -0
  45. package/core/skills/api-patterns/response.md +37 -0
  46. package/core/skills/api-patterns/rest.md +40 -0
  47. package/core/skills/api-patterns/scripts/api_validator.py +211 -0
  48. package/core/skills/api-patterns/security-testing.md +122 -0
  49. package/core/skills/api-patterns/trpc.md +41 -0
  50. package/core/skills/api-patterns/versioning.md +22 -0
  51. package/core/skills/app-builder/SKILL.md +75 -0
  52. package/core/skills/app-builder/agent-coordination.md +71 -0
  53. package/core/skills/app-builder/feature-building.md +53 -0
  54. package/core/skills/app-builder/project-detection.md +34 -0
  55. package/core/skills/app-builder/scaffolding.md +118 -0
  56. package/core/skills/app-builder/tech-stack.md +40 -0
  57. package/core/skills/app-builder/templates/SKILL.md +39 -0
  58. package/core/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
  59. package/core/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
  60. package/core/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
  61. package/core/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
  62. package/core/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
  63. package/core/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
  64. package/core/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
  65. package/core/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +82 -0
  66. package/core/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +100 -0
  67. package/core/skills/app-builder/templates/nextjs-static/TEMPLATE.md +106 -0
  68. package/core/skills/app-builder/templates/nuxt-app/TEMPLATE.md +101 -0
  69. package/core/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
  70. package/core/skills/app-builder/templates/react-native-app/TEMPLATE.md +93 -0
  71. package/core/skills/architecture/SKILL.md +55 -0
  72. package/core/skills/architecture/context-discovery.md +43 -0
  73. package/core/skills/architecture/examples.md +94 -0
  74. package/core/skills/architecture/pattern-selection.md +68 -0
  75. package/core/skills/architecture/patterns-reference.md +50 -0
  76. package/core/skills/architecture/trade-off-analysis.md +77 -0
  77. package/core/skills/atomic-design/SKILL.md +282 -0
  78. package/core/skills/atomic-design/references/classification-guide.md +132 -0
  79. package/core/skills/atomic-design/references/quality-checklist.md +60 -0
  80. package/core/skills/atomic-design/references/stacks/stack-blade.md +254 -0
  81. package/core/skills/atomic-design/references/stacks/stack-nextjs.md +272 -0
  82. package/core/skills/atomic-design/references/stacks/stack-react.md +239 -0
  83. package/core/skills/atomic-design/references/stacks/stack-vue.md +224 -0
  84. package/core/skills/bash-linux/SKILL.md +199 -0
  85. package/core/skills/behavioral-modes/SKILL.md +242 -0
  86. package/core/skills/brainstorming/SKILL.md +163 -0
  87. package/core/skills/brainstorming/dynamic-questioning.md +373 -0
  88. package/core/skills/checkpointing-patterns/SKILL.md +163 -0
  89. package/core/skills/clean-code/SKILL.md +201 -0
  90. package/core/skills/code-review-checklist/SKILL.md +109 -0
  91. package/core/skills/code-truth-validation/SKILL.md +149 -0
  92. package/core/skills/component-library-discovery/SKILL.md +154 -0
  93. package/core/skills/content-strategy/SKILL.md +222 -0
  94. package/core/skills/context-budget/SKILL.md +155 -0
  95. package/core/skills/context-gathering-patterns/SKILL.md +278 -0
  96. package/core/skills/cost-tracking/SKILL.md +206 -0
  97. package/core/skills/database-design/SKILL.md +52 -0
  98. package/core/skills/database-design/database-selection.md +43 -0
  99. package/core/skills/database-design/indexing.md +39 -0
  100. package/core/skills/database-design/migrations.md +48 -0
  101. package/core/skills/database-design/optimization.md +36 -0
  102. package/core/skills/database-design/orm-selection.md +30 -0
  103. package/core/skills/database-design/schema-design.md +56 -0
  104. package/core/skills/database-design/scripts/schema_validator.py +172 -0
  105. package/core/skills/deployment-procedures/SKILL.md +295 -0
  106. package/core/skills/design-md/README.md +34 -0
  107. package/core/skills/design-md/SKILL.md +172 -0
  108. package/core/skills/design-md/examples/DESIGN.md +154 -0
  109. package/core/skills/design-system-enforcement/SKILL.md +339 -0
  110. package/core/skills/doc.md +177 -0
  111. package/core/skills/document-registry/SKILL.md +130 -0
  112. package/core/skills/documentation-publishing/SKILL.md +174 -0
  113. package/core/skills/documentation-templates/SKILL.md +194 -0
  114. package/core/skills/enhance-prompt/README.md +34 -0
  115. package/core/skills/enhance-prompt/SKILL.md +204 -0
  116. package/core/skills/enhance-prompt/references/KEYWORDS.md +114 -0
  117. package/core/skills/frontend-design/SKILL.md +430 -0
  118. package/core/skills/frontend-design/animation-guide.md +331 -0
  119. package/core/skills/frontend-design/color-system.md +311 -0
  120. package/core/skills/frontend-design/decision-trees.md +418 -0
  121. package/core/skills/frontend-design/motion-graphics.md +306 -0
  122. package/core/skills/frontend-design/scripts/accessibility_checker.py +183 -0
  123. package/core/skills/frontend-design/scripts/ux_audit.py +722 -0
  124. package/core/skills/frontend-design/typography-system.md +345 -0
  125. package/core/skills/frontend-design/ux-psychology.md +541 -0
  126. package/core/skills/frontend-design/visual-effects.md +383 -0
  127. package/core/skills/game-development/2d-games/SKILL.md +119 -0
  128. package/core/skills/game-development/3d-games/SKILL.md +135 -0
  129. package/core/skills/game-development/SKILL.md +167 -0
  130. package/core/skills/game-development/game-art/SKILL.md +185 -0
  131. package/core/skills/game-development/game-audio/SKILL.md +190 -0
  132. package/core/skills/game-development/game-design/SKILL.md +129 -0
  133. package/core/skills/game-development/mobile-games/SKILL.md +108 -0
  134. package/core/skills/game-development/multiplayer/SKILL.md +132 -0
  135. package/core/skills/game-development/pc-games/SKILL.md +144 -0
  136. package/core/skills/game-development/vr-ar/SKILL.md +123 -0
  137. package/core/skills/game-development/web-games/SKILL.md +150 -0
  138. package/core/skills/geo-fundamentals/SKILL.md +156 -0
  139. package/core/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
  140. package/core/skills/git-workflow/SKILL.md +263 -0
  141. package/core/skills/history-check-patterns/SKILL.md +125 -0
  142. package/core/skills/i18n-localization/SKILL.md +154 -0
  143. package/core/skills/i18n-localization/scripts/i18n_checker.py +241 -0
  144. package/core/skills/integration-completeness/SKILL.md +219 -0
  145. package/core/skills/intelligent-routing/SKILL.md +370 -0
  146. package/core/skills/lint-and-validate/SKILL.md +45 -0
  147. package/core/skills/lint-and-validate/scripts/lint_runner.py +173 -0
  148. package/core/skills/lint-and-validate/scripts/type_coverage.py +173 -0
  149. package/core/skills/local-verification/SKILL.md +195 -0
  150. package/core/skills/mcp-builder/SKILL.md +176 -0
  151. package/core/skills/mobile-design/SKILL.md +394 -0
  152. package/core/skills/mobile-design/decision-trees.md +516 -0
  153. package/core/skills/mobile-design/mobile-backend.md +491 -0
  154. package/core/skills/mobile-design/mobile-color-system.md +420 -0
  155. package/core/skills/mobile-design/mobile-debugging.md +122 -0
  156. package/core/skills/mobile-design/mobile-design-thinking.md +357 -0
  157. package/core/skills/mobile-design/mobile-navigation.md +458 -0
  158. package/core/skills/mobile-design/mobile-performance.md +767 -0
  159. package/core/skills/mobile-design/mobile-testing.md +356 -0
  160. package/core/skills/mobile-design/mobile-typography.md +433 -0
  161. package/core/skills/mobile-design/platform-android.md +666 -0
  162. package/core/skills/mobile-design/platform-ios.md +561 -0
  163. package/core/skills/mobile-design/scripts/mobile_audit.py +670 -0
  164. package/core/skills/mobile-design/touch-psychology.md +537 -0
  165. package/core/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +312 -0
  166. package/core/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +240 -0
  167. package/core/skills/nextjs-react-expert/3-server-server-side-performance.md +490 -0
  168. package/core/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +264 -0
  169. package/core/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +581 -0
  170. package/core/skills/nextjs-react-expert/6-rendering-rendering-performance.md +432 -0
  171. package/core/skills/nextjs-react-expert/7-js-javascript-performance.md +684 -0
  172. package/core/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +150 -0
  173. package/core/skills/nextjs-react-expert/SKILL.md +267 -0
  174. package/core/skills/nextjs-react-expert/scripts/convert_rules.py +222 -0
  175. package/core/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -0
  176. package/core/skills/nodejs-best-practices/SKILL.md +333 -0
  177. package/core/skills/notion-task-patterns/SKILL.md +2529 -0
  178. package/core/skills/page-specifications/SKILL.md +367 -0
  179. package/core/skills/parallel-agents/SKILL.md +175 -0
  180. package/core/skills/performance-profiling/SKILL.md +143 -0
  181. package/core/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
  182. package/core/skills/plan-writing/SKILL.md +190 -0
  183. package/core/skills/powershell-windows/SKILL.md +167 -0
  184. package/core/skills/project-foundation/SKILL.md +117 -0
  185. package/core/skills/project-setup/SKILL.md +141 -0
  186. package/core/skills/project-tracking-patterns/SKILL.md +357 -0
  187. package/core/skills/project-type-discovery/SKILL.md +239 -0
  188. package/core/skills/python-patterns/SKILL.md +441 -0
  189. package/core/skills/qa-test-generation/SKILL.md +156 -0
  190. package/core/skills/react-components/README.md +36 -0
  191. package/core/skills/react-components/SKILL.md +47 -0
  192. package/core/skills/react-components/examples/gold-standard-card.tsx +80 -0
  193. package/core/skills/react-components/package-lock.json +231 -0
  194. package/core/skills/react-components/package.json +16 -0
  195. package/core/skills/react-components/resources/architecture-checklist.md +15 -0
  196. package/core/skills/react-components/resources/component-template.tsx +37 -0
  197. package/core/skills/react-components/resources/stitch-api-reference.md +14 -0
  198. package/core/skills/react-components/resources/style-guide.json +27 -0
  199. package/core/skills/react-components/scripts/fetch-stitch.sh +30 -0
  200. package/core/skills/react-components/scripts/validate.js +68 -0
  201. package/core/skills/red-team-tactics/SKILL.md +199 -0
  202. package/core/skills/remotion/README.md +105 -0
  203. package/core/skills/remotion/SKILL.md +393 -0
  204. package/core/skills/remotion/examples/WalkthroughComposition.tsx +78 -0
  205. package/core/skills/remotion/examples/screens.json +56 -0
  206. package/core/skills/remotion/resources/composition-checklist.md +124 -0
  207. package/core/skills/remotion/resources/screen-slide-template.tsx +123 -0
  208. package/core/skills/remotion/scripts/download-stitch-asset.sh +38 -0
  209. package/core/skills/seo-fundamentals/SKILL.md +129 -0
  210. package/core/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
  211. package/core/skills/server-management/SKILL.md +161 -0
  212. package/core/skills/session-resilience/SKILL.md +199 -0
  213. package/core/skills/shadcn-ui/README.md +248 -0
  214. package/core/skills/shadcn-ui/SKILL.md +326 -0
  215. package/core/skills/shadcn-ui/examples/auth-layout.tsx +177 -0
  216. package/core/skills/shadcn-ui/examples/data-table.tsx +313 -0
  217. package/core/skills/shadcn-ui/examples/form-pattern.tsx +177 -0
  218. package/core/skills/shadcn-ui/resources/component-catalog.md +481 -0
  219. package/core/skills/shadcn-ui/resources/customization-guide.md +516 -0
  220. package/core/skills/shadcn-ui/resources/migration-guide.md +463 -0
  221. package/core/skills/shadcn-ui/resources/setup-guide.md +412 -0
  222. package/core/skills/shadcn-ui/scripts/verify-setup.sh +134 -0
  223. package/core/skills/state-machine/SKILL.md +264 -0
  224. package/core/skills/stitch-loop/README.md +54 -0
  225. package/core/skills/stitch-loop/SKILL.md +203 -0
  226. package/core/skills/stitch-loop/examples/SITE.md +73 -0
  227. package/core/skills/stitch-loop/examples/next-prompt.md +25 -0
  228. package/core/skills/stitch-loop/resources/baton-schema.md +61 -0
  229. package/core/skills/stitch-loop/resources/site-template.md +104 -0
  230. package/core/skills/systematic-debugging/SKILL.md +109 -0
  231. package/core/skills/tailwind-patterns/SKILL.md +284 -0
  232. package/core/skills/tdd-validation/SKILL.md +243 -0
  233. package/core/skills/tdd-workflow/SKILL.md +284 -0
  234. package/core/skills/testing-patterns/SKILL.md +196 -0
  235. package/core/skills/testing-patterns/scripts/test_runner.py +219 -0
  236. package/core/skills/ui-ux-discovery/SKILL.md +329 -0
  237. package/core/skills/ui-validation/SKILL.md +190 -0
  238. package/core/skills/ui-validation/scripts/ui_antipattern_check.py +317 -0
  239. package/core/skills/verification-gate/SKILL.md +205 -0
  240. package/core/skills/vulnerability-scanner/SKILL.md +276 -0
  241. package/core/skills/vulnerability-scanner/checklists.md +121 -0
  242. package/core/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
  243. package/core/skills/web-design-guidelines/SKILL.md +57 -0
  244. package/core/skills/webapp-testing/SKILL.md +187 -0
  245. package/core/skills/webapp-testing/scripts/playwright_runner.py +173 -0
  246. package/core/templates/ARCHITECTURE.template.md +407 -0
  247. package/core/templates/project-resources.example.json +71 -0
  248. package/core/workflows/atomic.md +182 -0
  249. package/core/workflows/brainstorm.md +134 -0
  250. package/core/workflows/check-task.md +242 -0
  251. package/core/workflows/copy-collect.md +306 -0
  252. package/core/workflows/create-agent.md +33 -0
  253. package/core/workflows/create-skill.md +39 -0
  254. package/core/workflows/create-workflow.md +33 -0
  255. package/core/workflows/create.md +92 -0
  256. package/core/workflows/debug.md +186 -0
  257. package/core/workflows/demand.md +443 -0
  258. package/core/workflows/deploy.md +260 -0
  259. package/core/workflows/discovery.md +267 -0
  260. package/core/workflows/document.md +272 -0
  261. package/core/workflows/ds-components.md +296 -0
  262. package/core/workflows/ds-init.md +58 -0
  263. package/core/workflows/ds-refactor.md +245 -0
  264. package/core/workflows/ds-references.md +197 -0
  265. package/core/workflows/ds-styleguide.md +237 -0
  266. package/core/workflows/ds-token-diff.md +103 -0
  267. package/core/workflows/ds-tokens.md +317 -0
  268. package/core/workflows/ds-validate.md +309 -0
  269. package/core/workflows/execute.md +483 -0
  270. package/core/workflows/extract-template.md +278 -0
  271. package/core/workflows/fix-failed-tests.md +160 -0
  272. package/core/workflows/init-project.md +386 -0
  273. package/core/workflows/legacy-project.md +849 -0
  274. package/core/workflows/log.md +97 -0
  275. package/core/workflows/new-project.md +610 -0
  276. package/core/workflows/new-project.md.bak +3292 -0
  277. package/core/workflows/new-task.md +404 -0
  278. package/core/workflows/orchestrate.md +237 -0
  279. package/core/workflows/page-build.md +296 -0
  280. package/core/workflows/plan.md +89 -0
  281. package/core/workflows/prd.md +255 -0
  282. package/core/workflows/preview.md +81 -0
  283. package/core/workflows/review-page.md +304 -0
  284. package/core/workflows/status.md +86 -0
  285. package/core/workflows/stitch.md +226 -0
  286. package/core/workflows/task-complete.md +473 -0
  287. package/core/workflows/task-update.md +163 -0
  288. package/core/workflows/tdd.md +344 -0
  289. package/core/workflows/test.md +251 -0
  290. package/core/workflows/ui-ux-pro-max.md +437 -0
  291. package/core/workflows/ux-mobile-optimize.md +262 -0
  292. package/core/workflows/ux-mobile-validate.md +297 -0
  293. package/engine-files/GEMINI.md +69 -0
  294. package/package.json +47 -0
  295. package/runtime-adapters/antigravity.js +26 -0
  296. package/runtime-adapters/claude.js +57 -0
  297. package/runtime-adapters/codex.js +51 -0
  298. package/runtime-adapters/copilot.js +51 -0
  299. package/runtime-adapters/cursor.js +51 -0
  300. package/runtime-adapters/gemini-cli.js +30 -0
  301. package/runtime-adapters/opencode.js +51 -0
  302. 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) |