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,473 @@
1
+ ---
2
+ description: Workflow obrigatório para finalizar tasks. Garante sync com tracker (Flyee ou Local), logs de execução e atualização de progresso.
3
+ ---
4
+
5
+ # /task-complete
6
+
7
+ > **OBRIGATÓRIO** ao finalizar qualquer task. Garante compliance com tracking patterns.
8
+ > Suporta **dois modos de tracking**: Flyee (API) ou Local (`PROJECT-PROGRESS.md`).
9
+ > O modo é definido pela configuração `Tracker de Tasks` em `PROJECT-PROGRESS.md`.
10
+
11
+ ## Uso
12
+
13
+ ```bash
14
+ /task-complete <task_id> "<tempo_gasto>"
15
+ ```
16
+
17
+ **Exemplo:**
18
+ ```bash
19
+ /task-complete 1.1 "30min"
20
+ /task-complete 2.3 "1h15m"
21
+ ```
22
+
23
+ ---
24
+
25
+ ## Etapa 0: Identificar Modo de Tracking (PRE-REQUISITO)
26
+
27
+ > [!CAUTION]
28
+ > **REGRA:** Ao INICIAR qualquer trabalho vinculado a uma task, o agente DEVE:
29
+ > 1. Ler `PROJECT-PROGRESS.md` → seção `Configurações` → campo `Tracker de Tasks`
30
+ > 2. **Se Flyee:** Identificar o `page_id` da task (via `API-post-search` ou `API-query-data-source`)
31
+ > 3. **Se Local:** Identificar a linha/checkbox correspondente em `PROJECT-PROGRESS.md` (tabela de tasks)
32
+ >
33
+ > Sem essa identificação, as etapas de sync são impossíveis e serão esquecidas.
34
+
35
+ ---
36
+
37
+ ## Fluxo de Execução (5 Etapas)
38
+
39
+ ### Etapa 1: Exibir Log de Execução
40
+
41
+ **Template OBRIGATÓRIO:**
42
+
43
+ ```markdown
44
+ ### ✅ Task {ID}: {Nome}
45
+
46
+ **Verificação:**
47
+ - ✅ {arquivo/componente verificado}
48
+ - ✅ {critério de aceitação atendido}
49
+ - ✅ {teste passando, se aplicável}
50
+
51
+ **Arquivos Relevantes:**
52
+ - `{caminho/arquivo1.ts}`
53
+ - `{caminho/arquivo2.tsx}`
54
+
55
+ **Ação Flyee:**
56
+ - Status: {anterior} → Concluído
57
+ - Tempo Gasto: {tempo}
58
+
59
+ **Tempo aproximado:** {tempo}
60
+ ```
61
+
62
+ ### Etapa 1.5: Resumo de Execução (OBRIGATÓRIO — NÃO PULAR)
63
+
64
+ > [!CAUTION]
65
+ > **REGRA BLOQUEANTE:** O agente DEVE produzir o Resumo de Execução ANTES de atualizar
66
+ > o Flyee. Este resumo é o que garante ao usuário **visibilidade total** sobre o que
67
+ > foi feito para resolver a task. Sem ele, a task fica marcada como concluída mas
68
+ > ninguém sabe o que mudou.
69
+
70
+ **Template OBRIGATÓRIO (todos os campos são required):**
71
+
72
+ ```markdown
73
+ ## Resumo de Execução — Task #{ID}
74
+
75
+ ### O que foi feito
76
+ {Descrição técnica detalhada das mudanças. NÃO usar frases genéricas como
77
+ "implementado conforme solicitado". Descrever CADA mudança com contexto técnico.}
78
+
79
+ ### Arquivos modificados
80
+ | Arquivo | Tipo de Mudança | Detalhe |
81
+ |---------|----------------|---------|
82
+ | `{path/file1.ts}` | {Criado/Modificado/Deletado} | {O que mudou neste arquivo} |
83
+ | `{path/file2.tsx}` | {Criado/Modificado/Deletado} | {O que mudou neste arquivo} |
84
+
85
+ ### Verificação
86
+ - TypeScript: {✅ 0 erros / ❌ N erros}
87
+ - Testes: {✅ X/Y passando / ⚠️ sem testes / ❌ N falhando}
88
+ - Build: {✅ OK / ⚠️ não verificado}
89
+
90
+ ### Decisões técnicas (se aplicável)
91
+ - {Decisão 1: por que escolheu abordagem X em vez de Y}
92
+ - {Decisão 2: trade-off feito}
93
+ ```
94
+
95
+ > [!IMPORTANT]
96
+ > Este resumo será usado como fonte para:
97
+ > - **Etapa 2.5** (nota inline no corpo da task)
98
+ > - **Etapa 3** (comentário rico)
99
+ > - **Etapa 4** (LEGACY-PROGRESS.md)
100
+ >
101
+ > O agente DEVE copiar as informações deste resumo para os templates das etapas seguintes.
102
+ > NÃO inventar informações diferentes em cada etapa.
103
+
104
+ ### Etapa 1.7: QA Test Checklist Gate (BLOQUEANTE)
105
+
106
+ > [!CAUTION]
107
+ > **REGRA BLOQUEANTE:** Task NÃO pode ser marcada como `completed` se `all_passed == false`.
108
+ > Esta etapa gera o checklist de testes e roda os testes automáticos.
109
+ > Leia `@[skills/qa-test-generation]` para heurísticas completas.
110
+
111
+ **Processo:**
112
+
113
+ 1. **Gerar checklist** — Analisar arquivos modificados (do Resumo Etapa 1.5) + acceptance criteria:
114
+ - Classificar cada arquivo por tipo (UI/API/Backend/Styling/SDK/Workflow)
115
+ - Aplicar heurísticas da skill `qa-test-generation` → gerar `TestStep[]`
116
+ - Cobrir: happy path, error cases, edge cases, boundary values, empty states
117
+ - Salvar via bridge:
118
+ ```bash
119
+ python3 .agent/flyee-bridge/bridge.py --generate-tests <task_id>
120
+ ```
121
+ - Ou via API se bridge não configurado: `PUT /tasks/{id}` com `meta.test_checklist`
122
+
123
+ 2. **Rodar testes automáticos** (type: `auto`):
124
+ - `tsc --noEmit` → reportar resultado para steps de tipo `unit/sdk`
125
+ - `vitest run` → reportar resultado (se configurado)
126
+ - Playwright → reportar resultado (se configurado)
127
+ - Para cada teste auto executado:
128
+ ```bash
129
+ python3 .agent/flyee-bridge/bridge.py --report-test <task_id> <step_id> passed|failed ["comment"]
130
+ ```
131
+
132
+ 3. **Listar testes manuais pendentes** → solicitar ao dev:
133
+ ```bash
134
+ python3 .agent/flyee-bridge/bridge.py --pending-tests <task_id>
135
+ ```
136
+ - Se há testes manuais pendentes → informar ao dev e **aguardar**
137
+ - Dev pode marcar via UI (TaskDetail → tab "tests") ou CLI
138
+
139
+ 4. **Verificar gate:**
140
+ ```bash
141
+ python3 .agent/flyee-bridge/bridge.py --test-summary <task_id>
142
+ ```
143
+ - Se `all_passed == true` → ✅ prosseguir para Etapa 2
144
+ - Se `all_passed == false` → ❌ **BLOQUEAR**:
145
+ - Listar testes falhados
146
+ - Sugerir: `"Deseja rodar /fix-tests <task_id> para corrigir automaticamente?"`
147
+ - Ou solicitar correção manual ao dev
148
+
149
+ > [!IMPORTANT]
150
+ > Se o dev solicitar skip dos testes (ex: hotfix urgente), o agente DEVE:
151
+ > 1. Registrar skip como comentário na task
152
+ > 2. Marcar testes pendentes como `skipped` (não `passed`)
153
+ > 3. Prosseguir com aviso: `"⚠️ Testes pulados — task marcada com quality debt"`
154
+
155
+ ### Etapa 2: Atualizar Tracker
156
+
157
+ #### Se Tracker = Flyee:
158
+ ```json
159
+ // Tool: Flyee API: update_task()
160
+ {
161
+ "page_id": "{task_page_id}",
162
+ "properties": {
163
+ "Status": { "status": { "name": "Concluído" } },
164
+ "Tempo Gasto": { "rich_text": [{ "text": { "content": "{tempo}" } }] },
165
+ "% Progresso": { "number": 100 }
166
+ }
167
+ }
168
+ ```
169
+
170
+ #### Se Tracker = Local:
171
+ Editar `PROJECT-PROGRESS.md` — alterar `- [ ]` para `- [x]` na task correspondente na tabela de tasks.
172
+
173
+ ### Etapa 2.1: 🔔 FLYEE BRIDGE EMIT (Condicional)
174
+
175
+ > Se `flyee.json` existe E `enabled: true`:
176
+
177
+ ```bash
178
+ python .agent/flyee-bridge/bridge.py emit "dev.task_completed" '{"task_id": "{task_id}", "task_name": "{nome}", "time_spent": "{tempo}", "files_changed": ["{lista de arquivos}"]}'
179
+ ```
180
+
181
+ > Se bridge não configurado ou `opted_out: true` → Pular silenciosamente.
182
+
183
+ ### Etapa 2.5: Adicionar Nota de Conclusão (INLINE — NÃO PULAR)
184
+
185
+ > [!CAUTION]
186
+ > Os campos abaixo DEVEM ser preenchidos com os dados do **Resumo de Execução** (Etapa 1.5).
187
+ > NÃO usar placeholders genéricos. Se o Resumo de Execução não foi produzido, PARAR e voltar à Etapa 1.5.
188
+
189
+ #### Se Tracker = Flyee:
190
+ ```json
191
+ // Tool: Flyee API: update_task() (output)
192
+ {
193
+ "block_id": "{task_page_id}",
194
+ "children": [
195
+ { "type": "divider", "divider": {} },
196
+ { "type": "callout", "callout": { "icon": { "type": "emoji", "emoji": "✅" }, "rich_text": [{ "type": "text", "text": { "content": "Concluído em {data} — Tempo: {tempo}" } }] } },
197
+ { "type": "bulleted_list_item", "bulleted_list_item": { "rich_text": [{ "type": "text", "text": { "content": "📋 O que foi feito: {copiar de Etapa 1.5 → 'O que foi feito'}" } }] } },
198
+ { "type": "bulleted_list_item", "bulleted_list_item": { "rich_text": [{ "type": "text", "text": { "content": "📁 Arquivos: {copiar de Etapa 1.5 → 'Arquivos modificados' — listar path + tipo}" } }] } },
199
+ { "type": "bulleted_list_item", "bulleted_list_item": { "rich_text": [{ "type": "text", "text": { "content": "🧪 Verificação: {copiar de Etapa 1.5 → 'Verificação' — TS/Testes/Build}" } }] } }
200
+ ]
201
+ }
202
+ ```
203
+
204
+ #### Se Tracker = Local:
205
+ Nenhuma ação extra necessária (o checkbox `[x]` já foi marcado na Etapa 2).
206
+
207
+ ### Etapa 3: Adicionar Comentário Rico (OBRIGATÓRIO)
208
+ > **Idioma:** Usar idioma definido em `PROJECT-PROGRESS.md` (PT-BR ou EN)
209
+
210
+ > [!CAUTION]
211
+ > O comentário DEVE conter detalhes técnicos reais extraídos do **Resumo de Execução** (Etapa 1.5).
212
+ > NÃO usar frases genéricas como "implementado conforme solicitado" ou "ajustes realizados".
213
+ > O comentário é o registro permanente que o usuário consultará para entender o que foi feito.
214
+
215
+ #### 🇧🇷 Português (PT-BR)
216
+ ```json
217
+ // Tool: Flyee API: update_task() (output)
218
+ {
219
+ "parent": { "page_id": "{task_page_id}" },
220
+ "rich_text": [{
221
+ "text": {
222
+ "content": "✅ Task Concluída\n\n📋 O que foi feito:\n{copiar de Etapa 1.5 → 'O que foi feito' — cada mudança como bullet}\n\n📁 Arquivos modificados:\n{copiar de Etapa 1.5 → tabela de arquivos como bullets: • path — tipo — detalhe}\n\n🧪 Verificação:\n{copiar de Etapa 1.5 → 'Verificação' como bullets}\n\n🔗 Próximos passos:\n• {task relacionada ou 'Nenhum'}"
223
+ }
224
+ }]
225
+ }
226
+ ```
227
+
228
+ #### 🇺🇸 English (EN)
229
+ ```json
230
+ // Tool: Flyee API: update_task() (output)
231
+ {
232
+ "parent": { "page_id": "{task_page_id}" },
233
+ "rich_text": [{
234
+ "text": {
235
+ "content": "✅ Task Completed\n\n📋 What was done:\n{copy from Etapa 1.5 → 'O que foi feito' — each change as bullet}\n\n📁 Modified files:\n{copy from Etapa 1.5 → file table as bullets: • path — type — detail}\n\n🧪 Verification:\n{copy from Etapa 1.5 → 'Verificação' as bullets}\n\n🔗 Next steps:\n• {related task or 'None'}"
236
+ }
237
+ }]
238
+ }
239
+ ```
240
+
241
+ ### Etapa 4: Atualizar PROJECT-PROGRESS.md
242
+
243
+ Atualizar a tabela de tasks:
244
+
245
+ ```markdown
246
+ | # | Task | Teste | Código | Status |
247
+ |---|------|-------|--------|--------|
248
+ | {id} | {nome} | ✅ | ✅ | ✅ Completo | ← ATUALIZAR
249
+ ```
250
+
251
+ ---
252
+
253
+ ### Etapa 4.5: Doc Sync Gate 📄 (OBRIGATÓRIO)
254
+
255
+ > [!CAUTION]
256
+ > **REGRA:** Antes de fechar a task, o agente DEVE verificar se a documentação precisa de atualização.
257
+ > Em caso positivo, atualizar **na mesma sessão** antes de prosseguir.
258
+ > Skippable APENAS para tasks de tipo `chore`, `fix` ou `docs` sem impacto em features.
259
+
260
+ **Decision tree (executar mentalmente):**
261
+
262
+ ```
263
+ Esta task entregou uma feature F-level nova (ex: F9, F10, F11)?
264
+ └── SIM → Atualizar PRD Sec 6.1: adicionar linha na tabela de Features com status ✅
265
+ └── É a primeira feature do sprint? → Atualizar PRD Sec 9 (Timeline): marcar sprint como Done
266
+
267
+ Esta task completou um sprint inteiro?
268
+ └── SIM → Atualizar SDD Sec 13 (Implementation Order): marcar sprint como ✅ Done
269
+
270
+ Esta task adicionou/modificou um endpoint de API?
271
+ └── SIM → Atualizar SDD Sec 3.2 (SDK Layer): tabela de módulos SDK
272
+
273
+ Esta task criou/modificou um documento em docs/?
274
+ └── SIM → Atualizar docs/INDEX.md (via skill document-registry)
275
+
276
+ Nenhuma das anteriores?
277
+ └── NÃO → Pular esta etapa ✓
278
+ ```
279
+
280
+ **Verificação rápida (rodar para confirmar):**
281
+
282
+ ```bash
283
+ python3 .agent/scripts/doc-sync-check.py
284
+ ```
285
+
286
+ > O script mostra uma tabela de divergências entre features implementadas e documentação.
287
+ > Se output for `✅ Docs sincronizados` → prosseguir.
288
+ > Se houver divergências → corrigi-las antes de marcar a task como concluída.
289
+
290
+ **Docs afetados por tipo de mudança:**
291
+
292
+ | Tipo de mudança | Doc a atualizar | Seção |
293
+ |----------------|-----------------|-------|
294
+ | Nova feature F-level | `docs/PRD-flyee.md` | Sec 6.1 (Requirements) + Sec 9 (Timeline) |
295
+ | Sprint concluído | `docs/design/SDD-flyee.md` | Sec 13 (Implementation Order) |
296
+ | Novo endpoint SDK | `docs/design/SDD-flyee.md` | Sec 3.2 (SDK Layer) |
297
+ | Novo task status | `docs/design/SDD-flyee.md` | Sec 3.7 (Polling) + ADR-004 |
298
+ | Novo arquivo em docs/ | `docs/INDEX.md` | Tabela de documentos |
299
+
300
+ ---
301
+
302
+ ### Etapa 4.7: Atualizar agent_context do BREAKDOWN + RETRO 🧠
303
+
304
+ > [!IMPORTANT]
305
+ > **PROPÓSITO:** Manter o `agent_context` do BREAKDOWN como cache vivo do projeto.
306
+ > Um frontmatter desatualizado força o próximo agente a ler o documento inteiro.
307
+ > Esta etapa garante continuidade de contexto com custo mínimo de tokens.
308
+
309
+ **Decision tree:**
310
+
311
+ ```
312
+ Esta task concluiu uma sprint inteira (T{N}.last)?
313
+ └── SIM → Atualizar agent_context do BREAKDOWN:
314
+ • Mudar Sprint {N} de 🔲 Pendente → ✅ nas seções ESTADO ATUAL + SPRINTS
315
+ • Atualizar "X concluídas / Y pendentes" no ESTADO ATUAL
316
+ • Verificar se algum padrão novo foi estabelecido → adicionar em PADRÕES ESTABELECIDOS
317
+
318
+ Esta task resolveu um bug ou decisão arquitetural?
319
+ └── SIM → Registrar em docs/RETRO-{projeto}-v{N}.md:
320
+ • Se arquivo não existe → criar com template mínimo (ver abaixo)
321
+ • Adicionar entrada na seção ## Bugs / ## Decisões
322
+
323
+ Nenhuma das anteriores?
324
+ └── NÃO → Pular esta etapa ✓
325
+ ```
326
+
327
+ **Template mínimo para RETRO (se não existir):**
328
+
329
+ ```markdown
330
+ ---
331
+ doc_type: retro
332
+ doc_id: RETRO-{projeto}-v1
333
+ version: "1.0"
334
+ date: "{data}"
335
+ project: {projeto}
336
+ ---
337
+
338
+ # Retrospectiva — {Projeto Nome}
339
+
340
+ ## Bugs Resolvidos
341
+ <!-- {data}: {descrição do bug} → {como foi resolvido} -->
342
+
343
+ ## Decisões Tomadas
344
+ <!-- {data}: {decisão} → {motivo} -->
345
+
346
+ ## Padrões Estabelecidos
347
+ <!-- {data}: {padrão} -->
348
+
349
+ ## O que NÃO fazer
350
+ <!-- {data}: {anti-pattern descoberto} -->
351
+ ```
352
+
353
+ > [!TIP]
354
+ > O RETRO é lido via `grep -n "<keyword>" docs/RETRO-*.md` — entradas compactas
355
+ > (1-2 linhas) são preferíveis para não aumentar custo de busca.
356
+
357
+ **🔔 FLYEE BRIDGE EMIT** (se bridge `enabled: true`, skip silencioso se não):
358
+
359
+ ```bash
360
+ # Se sprint concluída nesta task:
361
+ python3 .agent/flyee-bridge/bridge.py emit dev.workflow_completed \
362
+ --payload '{"sprint": N, "name": "Sprint N — Nome", "tasks_done": X, "tasks_total": Y}'
363
+
364
+ # Reportar progresso da sprint para Project Progress do cliente:
365
+ python3 .agent/flyee-bridge/bridge.py --sprint-progress \
366
+ --sprint N --name "Sprint N — Nome" --done X --total Y
367
+
368
+ # Se RETRO atualizado com bug/decisão/padrão, registrar como Decision:
369
+ python3 .agent/flyee-bridge/bridge.py --create-decision \
370
+ --decision "<resumo da entrada do RETRO>" \
371
+ --category "<architecture|refactoring|security|tech_debt>" \
372
+ --reason "<contexto ou causa raiz>" \
373
+ --impact "<escopo: arquivos/módulos afetados>"
374
+
375
+ # Persistir RETRO como Document no Flyee (visível para o cliente):
376
+ python3 .agent/flyee-bridge/bridge.py --persist-retro docs/RETRO-{projeto}-v1.md
377
+ ```
378
+
379
+ > [!NOTE]
380
+ > Estes emits são condicionais: `flyee.json` deve existir com `enabled: true`.
381
+ > Se bridge não configurado ou `opted_out: true`: skip sem erro.
382
+ > Segue padrão dos 14 trigger points definidos em T8.4.
383
+ > `--sprint-progress` cria/atualiza Document tipo `sprint_report` (visível no frontend).
384
+ > `--persist-retro` cria/atualiza Document tipo `retro` com dedup SHA256.
385
+
386
+
387
+
388
+
389
+ > [!IMPORTANT]
390
+ > Após completar o sync da task, o agente DEVE verificar se foi invocado
391
+ > dentro de um loop de workflow (Phase 7B do `/legacy-project`).
392
+
393
+ 1. Verificar se existe seção `🔧 TASK ATIVA` no `LEGACY-PROGRESS.md`
394
+ 2. **Se SIM** → Limpar a seção `🔧 TASK ATIVA` e retornar ao loop da Phase 7B (seção `🔁 LOOP CONTINUATION`)
395
+ 3. **Se NÃO** → Tarefa standalone, encerrar normalmente
396
+ 4. Verificar em `LEGACY-PROGRESS.md` se há tasks `[ ]` pendentes na Phase 7B atual
397
+
398
+ > [!WARNING]
399
+ > O agente NÃO DEVE encerrar a sessão após `/task-complete` se ainda há tasks
400
+ > pendentes no loop da Phase 7B. O encerramento prematuro perde o contexto
401
+ > do loop e exige re-invocação manual com `--resume`.
402
+
403
+ ---
404
+
405
+ ## Checklist de Conclusão
406
+
407
+ Antes de prosseguir para próxima task:
408
+
409
+ - [ ] Log de Execução exibido
410
+ - [ ] **Resumo de Execução produzido** (Etapa 1.5)
411
+ - [ ] **QA Test Gate passed** (Etapa 1.7)
412
+ - [ ] **Tracker atualizado** (Flyee ou Local)
413
+ - [ ] **Nota de conclusão e comentário** (Flyee) ou checkbox `[x]` (Local)
414
+ - [ ] **Doc Sync Gate** (Etapa 4.5 — `doc-sync-check.py` executado)
415
+ - [ ] **agent_context + RETRO atualizados** (Etapa 4.7 — se sprint concluída ou bug resolvido)
416
+ - [ ] PROJECT-PROGRESS.md atualizado
417
+ - [ ] **Retorno ao workflow pai** verificado (Etapa 5)
418
+ - [ ] Mensagem de confirmação exibida
419
+
420
+ ---
421
+
422
+ ## Mensagem Final Obrigatória
423
+
424
+ ```markdown
425
+ ✅ **Task {ID} Concluída**
426
+
427
+ | Campo | Valor |
428
+ |-------|-------|
429
+ | Status | Concluído |
430
+ | Tempo Gasto | {tempo} |
431
+ | Flyee | ✅ Sincronizado |
432
+
433
+ Prosseguindo para próxima task...
434
+ ```
435
+
436
+ ---
437
+
438
+ ## Gatilhos Automáticos
439
+
440
+ Este workflow DEVE ser invocado quando o agente:
441
+
442
+ - Disser "task completa" ou "task concluída"
443
+ - Marcar um item como `[x]` no task.md
444
+ - Antes de iniciar uma nova task
445
+ - Ao finalizar um épico
446
+ - **ANTES de chamar `notify_user` para reportar conclusão de trabalho vinculado a uma task Flyee**
447
+
448
+ > 🔴 **REGRA:** O agente NÃO pode prosseguir para próxima task sem executar este workflow.
449
+
450
+ ---
451
+
452
+ ## 🛑 REGRA UNIVERSAL DE ENFORCEMENT (Anti-Bypass)
453
+
454
+ > [!CAUTION]
455
+ > **REGRA BLOQUEANTE ABSOLUTA — APLICA-SE A QUALQUER CONTEXTO:**
456
+ >
457
+ > Se o agente completou trabalho que corresponde a uma task rastreada
458
+ > (no Flyee ou em `docs/TASKS.md`), ele **DEVE** executar `/task-complete`
459
+ > **ANTES** de:
460
+ >
461
+ > - Chamar `notify_user` para reportar conclusão
462
+ > - Iniciar a próxima task
463
+ > - Encerrar a sessão
464
+ >
465
+ > **SELF-CHECK antes de `notify_user`:**
466
+ > ```
467
+ > ❓ Existe task rastreada vinculada ao trabalho que acabei de fazer?
468
+ > → SIM → Executar /task-complete ANTES de notify_user
469
+ > → NÃO → Prosseguir com notify_user normalmente
470
+ > ```
471
+ >
472
+ > **VIOLAÇÃO:** Chamar `notify_user` reportando task concluída SEM ter executado
473
+ > `/task-complete` é uma violação de compliance. O tracker ficará dessincronizado.
@@ -0,0 +1,163 @@
1
+ ---
2
+ description: Update task status (Flyee or Local). NO git commits - commits are manual only.
3
+ skills: project-tracking-patterns
4
+ ---
5
+
6
+ # /task-update Workflow
7
+
8
+ Updates task status in the configured tracker. **Does NOT perform git commits.**
9
+
10
+ **Agente Envolvido:** `project-planner` (para tracking de progresso)
11
+
12
+ > [!IMPORTANT]
13
+ > **Git commits são exclusivamente manuais pelo usuário.**
14
+ > Este workflow atualiza o tracker configurado em `PROJECT-PROGRESS.md` → `Tracker de Tasks`.
15
+ > Se `Tracker = Flyee`: usa API do Flyee. Se `Tracker = Local`: edita `PROJECT-PROGRESS.md` (tabela de tasks).
16
+
17
+ ## Usage
18
+
19
+ ```
20
+ /task-update <task-id> <type> "<description>"
21
+ ```
22
+
23
+ ### Parameters:
24
+ - `task-id`: Task identifier or keyword (e.g., 1.1, login)
25
+ - `type`: Update type (start, progress, done)
26
+ - `description`: Description of what was done
27
+
28
+ ---
29
+
30
+ ## Type → Status Mapping
31
+
32
+ | Type | Status | Ação |
33
+ |------|--------|------|
34
+ | `start` | Em andamento | Marca início da task |
35
+ | `progress` | Em andamento | Registra progresso intermediário |
36
+ | `done` | Concluído | Marca task como finalizada |
37
+
38
+ > [!NOTE]
39
+ > `Última edição` é atualizada **automaticamente** pelo Flyee a cada modificação.
40
+
41
+ ---
42
+
43
+ ## Steps
44
+
45
+ ### 1. Parse Parameters
46
+ Extract task-id, type, and description.
47
+
48
+ ### 1.5. Identificar Modo de Tracking
49
+ Ler `PROJECT-PROGRESS.md` → `Tracker de Tasks`.
50
+
51
+ ### 2. Search & Validate Task
52
+
53
+ **Se Tracker = Flyee:**
54
+ Use `API-post-search` to find the task.
55
+ - Query: `<task-id>`
56
+ - Filter: object = page
57
+
58
+ **Se Tracker = Local:**
59
+ Buscar a task em `PROJECT-PROGRESS.md` pelo nome ou ID.
60
+
61
+ **VALIDATION STEP:**
62
+ Check the `properties` of the found page.
63
+ 1. **Status**: Must exist. (Type: status)
64
+ 2. **Última edição**: Must exist. (Type: last_edited_time - automático)
65
+
66
+ > [!WARNING] Missing Properties?
67
+ > If `Status` is missing in the JSON response:
68
+ > 1. **STOP** execution.
69
+ > 2. Inform the user:
70
+ > ```
71
+ > 🛑 Propriedade ausente no Flyee!
72
+ >
73
+ > Sua tarefa Flyee não tem a coluna: `Status`
74
+ > Por favor, adicione esta coluna no database e tente novamente.
75
+ > ```
76
+
77
+ ### 3. Update Flyee Task
78
+ **Only proceed if validation passed.**
79
+
80
+ Determine new status based on type:
81
+ - `done`: Status="Concluído" + **Tempo Gasto (OBRIGATÓRIO)**
82
+ - `start`: Status="Em andamento" + **Pre-Start Check**
83
+ - `progress`: Status="Em andamento"
84
+
85
+ **Para type=`start`:**
86
+ > [!CAUTION]
87
+ > Seguir Flyee API → Seção "GATE DE FINALIZAÇÃO".
88
+ > Verificar se há tasks "Em andamento" antes de iniciar nova.
89
+
90
+ **Para type=`done`:**
91
+ > [!CAUTION]
92
+ > **OBRIGATÓRIO:** Perguntar `Tempo Gasto` antes de marcar como "Concluído".
93
+
94
+ ```
95
+ ⏱️ Quanto tempo foi gasto nesta task?
96
+ (Ex: "2h30m", "4h", "30m")
97
+ ```
98
+
99
+ Execute `API-patch-page`:
100
+ ```json
101
+ {
102
+ "properties": {
103
+ "Status": {"status": {"name": "<New Status>"}},
104
+ // Se type=done, incluir:
105
+ "Tempo Gasto": {"rich_text": [{"text": {"content": "{tempo_informado}"}}]},
106
+ "% Progresso": {"number": 100}
107
+ }
108
+ }
109
+ ```
110
+
111
+ > [!NOTE]
112
+ > `Última edição` será atualizada automaticamente pelo Flyee.
113
+
114
+ ### 3.5. Adicionar Nota de Conclusão no Corpo (se type=done — INLINE — NÃO PULAR)
115
+
116
+ ```json
117
+ // Tool: Flyee API: update_task() (output)
118
+ {
119
+ "block_id": "{page_id}",
120
+ "children": [
121
+ { "type": "divider", "divider": {} },
122
+ { "type": "callout", "callout": { "icon": { "type": "emoji", "emoji": "✅" }, "rich_text": [{ "type": "text", "text": { "content": "Concluído em {data}" } }] } },
123
+ { "type": "bulleted_list_item", "bulleted_list_item": { "rich_text": [{ "type": "text", "text": { "content": "📋 {resumo da implementação}" } }] } },
124
+ { "type": "bulleted_list_item", "bulleted_list_item": { "rich_text": [{ "type": "text", "text": { "content": "🧪 Testes: {resultado}" } }] } },
125
+ { "type": "bulleted_list_item", "bulleted_list_item": { "rich_text": [{ "type": "text", "text": { "content": "📁 Arquivos: {lista de arquivos modificados}" } }] } }
126
+ ]
127
+ }
128
+ ```
129
+
130
+ ### 4. Add Progress Comment
131
+ Add a comment documenting what was done:
132
+ ```
133
+ Use: API-create-a-comment
134
+ rich_text: [{ "text": { "content": "📝 {description}" } }]
135
+ ```
136
+
137
+ ### 4.5. 🔔 FLYEE BRIDGE EMIT (Condicional)
138
+
139
+ > Se `flyee.json` existe E `enabled: true`:
140
+
141
+ **Se type=`start`:**
142
+ ```bash
143
+ python .agent/flyee-bridge/bridge.py emit "dev.workflow_started" '{"workflow": "task-update", "task_name": "{task_name}"}'
144
+ ```
145
+
146
+ **Se type=`done`:**
147
+ ```bash
148
+ python .agent/flyee-bridge/bridge.py emit "dev.task_completed" '{"workflow": "task-update", "task_name": "{task_name}", "time_spent": "{tempo}"}'
149
+ ```
150
+
151
+ > Se bridge não configurado → Pular silenciosamente.
152
+
153
+ ### 5. Report Result
154
+ Confirm update with link to task.
155
+
156
+ ---
157
+
158
+ ## Notes
159
+
160
+ - **No git commits**: All git operations are manual by the user
161
+ - **Use during /new-task**: Call this workflow when completing subitems
162
+ - **Tracker-aware**: Reads `PROJECT-PROGRESS.md` → `Tracker de Tasks` to determine Flyee vs Local mode
163
+ - **If Local**: Steps 3, 3.5, 4 are replaced by editing `PROJECT-PROGRESS.md` task table checkboxes