@luanpdd/kit-mcp 1.30.2 → 1.32.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 (365) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +168 -168
  3. package/gates/agent-no-recursive-dispatch.md +84 -82
  4. package/kit/COMANDOS.md +138 -138
  5. package/kit/COMPATIBILITY.md +5 -0
  6. package/kit/README.md +76 -76
  7. package/kit/agents/advisor-researcher.md +107 -106
  8. package/kit/agents/ai-mutation-tester.md +1 -0
  9. package/kit/agents/assumptions-analyzer.md +108 -107
  10. package/kit/agents/audit-log-implementer.md +314 -313
  11. package/kit/agents/auditor-consistencia-isolamento.md +414 -413
  12. package/kit/agents/b2b-saas-architect.md +157 -156
  13. package/kit/agents/burn-rate-forecaster.md +1 -0
  14. package/kit/agents/cascading-failures-auditor.md +299 -298
  15. package/kit/agents/codebase-mapper.md +769 -768
  16. package/kit/agents/crm-pipeline-implementer.md +257 -256
  17. package/kit/agents/debugger.md +814 -813
  18. package/kit/agents/detector-tenant-quente.md +338 -337
  19. package/kit/agents/evolution-go-integrator.md +201 -200
  20. package/kit/agents/example-reviewer.md +22 -21
  21. package/kit/agents/executor.md +565 -564
  22. package/kit/agents/golden-signals-instrumenter.md +1 -0
  23. package/kit/agents/incident-investigator.md +1 -0
  24. package/kit/agents/integration-checker.md +201 -200
  25. package/kit/agents/invite-flow-implementer.md +190 -189
  26. package/kit/agents/legacy-characterizer.md +369 -368
  27. package/kit/agents/lgpd-compliance-auditor.md +296 -295
  28. package/kit/agents/load-shedding-instrumenter.md +1 -0
  29. package/kit/agents/multi-tenant-isolation-auditor.md +254 -253
  30. package/kit/agents/multi-tenant-rls-writer.md +341 -340
  31. package/kit/agents/nyquist-auditor.md +179 -178
  32. package/kit/agents/observability-coverage-auditor.md +316 -315
  33. package/kit/agents/observability-instrumenter.md +1 -0
  34. package/kit/agents/omm-auditor.md +1 -0
  35. package/kit/agents/org-onboarding-implementer.md +224 -223
  36. package/kit/agents/payload-capture-instrumenter.md +274 -273
  37. package/kit/agents/phase-researcher.md +697 -696
  38. package/kit/agents/plan-checker.md +273 -272
  39. package/kit/agents/planner.md +923 -922
  40. package/kit/agents/postmortem-writer.md +1 -0
  41. package/kit/agents/project-researcher.md +653 -652
  42. package/kit/agents/prr-conductor.md +1 -0
  43. package/kit/agents/refactor-safety-auditor.md +405 -404
  44. package/kit/agents/release-pipeline-auditor.md +1 -0
  45. package/kit/agents/research-synthesizer.md +246 -245
  46. package/kit/agents/roadmapper.md +678 -677
  47. package/kit/agents/schema-checker.md +1 -0
  48. package/kit/agents/seam-finder.md +360 -359
  49. package/kit/agents/shotgun-surgery-detector.md +350 -349
  50. package/kit/agents/slo-engineer.md +1 -0
  51. package/kit/agents/storytelling-analyst.md +1 -0
  52. package/kit/agents/supabase-architect.md +1 -0
  53. package/kit/agents/supabase-auth-bootstrapper.md +16 -1
  54. package/kit/agents/supabase-auth-hook-writer.md +418 -0
  55. package/kit/agents/supabase-branching-architect.md +563 -562
  56. package/kit/agents/supabase-cicd-pipeline-implementer.md +778 -777
  57. package/kit/agents/supabase-column-privileges-writer.md +400 -399
  58. package/kit/agents/supabase-edge-fn-tester.md +2 -1
  59. package/kit/agents/supabase-edge-fn-writer.md +2 -1
  60. package/kit/agents/supabase-mfa-implementer.md +439 -0
  61. package/kit/agents/supabase-migration-writer.md +386 -385
  62. package/kit/agents/supabase-oauth-server-implementer.md +507 -0
  63. package/kit/agents/supabase-rbac-implementer.md +393 -392
  64. package/kit/agents/supabase-realtime-implementer.md +364 -363
  65. package/kit/agents/supabase-rls-hardener.md +522 -521
  66. package/kit/agents/supabase-rls-writer.md +324 -323
  67. package/kit/agents/supabase-roles-implementer.md +356 -355
  68. package/kit/agents/supabase-social-auth-implementer.md +451 -0
  69. package/kit/agents/supabase-sso-saml-architect.md +549 -0
  70. package/kit/agents/supabase-storage-implementer.md +1 -0
  71. package/kit/agents/super-admin-implementer.md +282 -281
  72. package/kit/agents/toil-auditor.md +1 -0
  73. package/kit/agents/ui-auditor.md +438 -437
  74. package/kit/agents/ui-checker.md +303 -302
  75. package/kit/agents/ui-researcher.md +356 -355
  76. package/kit/agents/user-profiler.md +176 -175
  77. package/kit/agents/validador-evolucao-schema.md +336 -335
  78. package/kit/agents/verifier.md +729 -728
  79. package/kit/commands/adicionar-backlog.md +75 -75
  80. package/kit/commands/adicionar-fase.md +42 -42
  81. package/kit/commands/adicionar-tarefa.md +45 -45
  82. package/kit/commands/adicionar-testes.md +41 -41
  83. package/kit/commands/ajuda.md +21 -21
  84. package/kit/commands/atualizar.md +37 -37
  85. package/kit/commands/auditar-cascading.md +111 -111
  86. package/kit/commands/auditar-marco.md +179 -179
  87. package/kit/commands/auditar-observabilidade-cobertura.md +183 -183
  88. package/kit/commands/auditar-refactor.md +219 -219
  89. package/kit/commands/auditar-release.md +109 -109
  90. package/kit/commands/auditar-uat.md +23 -23
  91. package/kit/commands/autonomo.md +40 -40
  92. package/kit/commands/branch-pr.md +24 -24
  93. package/kit/commands/burn-rate-status.md +408 -408
  94. package/kit/commands/capturar-payloads.md +193 -193
  95. package/kit/commands/caracterizar.md +212 -212
  96. package/kit/commands/concluir-marco.md +247 -247
  97. package/kit/commands/configuracoes.md +36 -36
  98. package/kit/commands/dados-distribuidos.md +188 -188
  99. package/kit/commands/definir-perfil.md +10 -10
  100. package/kit/commands/depurar.md +190 -190
  101. package/kit/commands/detectar-duplicacao.md +197 -197
  102. package/kit/commands/discutir-fase.md +131 -131
  103. package/kit/commands/encontrar-seams.md +136 -136
  104. package/kit/commands/entrar-discord.md +17 -17
  105. package/kit/commands/estatisticas.md +18 -18
  106. package/kit/commands/example-greeting.md +33 -33
  107. package/kit/commands/executar-fase.md +58 -58
  108. package/kit/commands/expresso.md +56 -56
  109. package/kit/commands/fase-ui.md +34 -34
  110. package/kit/commands/fazer.md +57 -57
  111. package/kit/commands/fio.md +125 -125
  112. package/kit/commands/fluxos-trabalho.md +64 -64
  113. package/kit/commands/forense.md +176 -176
  114. package/kit/commands/gerenciador.md +38 -38
  115. package/kit/commands/inserir-fase.md +31 -31
  116. package/kit/commands/legacy.md +263 -263
  117. package/kit/commands/limpeza.md +17 -17
  118. package/kit/commands/listar-hipoteses-fase.md +45 -45
  119. package/kit/commands/listar-workspaces.md +18 -18
  120. package/kit/commands/load-shedding.md +117 -117
  121. package/kit/commands/mapear-codebase.md +70 -70
  122. package/kit/commands/multi-tenant.md +163 -163
  123. package/kit/commands/nota.md +33 -33
  124. package/kit/commands/novo-marco.md +43 -43
  125. package/kit/commands/novo-projeto.md +41 -41
  126. package/kit/commands/novo-workspace.md +43 -43
  127. package/kit/commands/pausar-trabalho.md +37 -37
  128. package/kit/commands/perfil-usuario.md +45 -45
  129. package/kit/commands/pesquisar-fase.md +195 -195
  130. package/kit/commands/planejar-fase.md +67 -67
  131. package/kit/commands/planejar-lacunas.md +33 -33
  132. package/kit/commands/plantar-ideia.md +25 -25
  133. package/kit/commands/progresso.md +24 -24
  134. package/kit/commands/proximo.md +30 -30
  135. package/kit/commands/publicar.md +490 -490
  136. package/kit/commands/rapido.md +35 -35
  137. package/kit/commands/reaplicar-patches.md +124 -124
  138. package/kit/commands/refactor-seguro.md +321 -321
  139. package/kit/commands/relatorio-sessao.md +19 -19
  140. package/kit/commands/remover-fase.md +31 -31
  141. package/kit/commands/remover-workspace.md +26 -26
  142. package/kit/commands/resumo-marco.md +50 -50
  143. package/kit/commands/retomar-trabalho.md +40 -40
  144. package/kit/commands/revisar-backlog.md +60 -60
  145. package/kit/commands/revisar-ui.md +32 -32
  146. package/kit/commands/revisar.md +37 -37
  147. package/kit/commands/saude.md +21 -21
  148. package/kit/commands/setup-notion.md +93 -93
  149. package/kit/commands/storytelling.md +179 -179
  150. package/kit/commands/supabase.md +21 -1
  151. package/kit/commands/sync-main.md +68 -68
  152. package/kit/commands/validar-fase.md +35 -35
  153. package/kit/commands/verificar-tarefas.md +44 -44
  154. package/kit/commands/verificar-trabalho.md +64 -64
  155. package/kit/file-manifest.json +100 -84
  156. package/kit/framework/bin/lib/commands.cjs +959 -959
  157. package/kit/framework/bin/lib/config.cjs +442 -442
  158. package/kit/framework/bin/lib/core.cjs +1230 -1230
  159. package/kit/framework/bin/lib/frontmatter.cjs +336 -336
  160. package/kit/framework/bin/lib/init.cjs +1442 -1442
  161. package/kit/framework/bin/lib/milestone.cjs +252 -252
  162. package/kit/framework/bin/lib/model-profiles.cjs +68 -68
  163. package/kit/framework/bin/lib/phase.cjs +888 -888
  164. package/kit/framework/bin/lib/profile-output.cjs +952 -952
  165. package/kit/framework/bin/lib/profile-pipeline.cjs +539 -539
  166. package/kit/framework/bin/lib/roadmap.cjs +329 -329
  167. package/kit/framework/bin/lib/security.cjs +382 -382
  168. package/kit/framework/bin/lib/state.cjs +1031 -1031
  169. package/kit/framework/bin/lib/template.cjs +222 -222
  170. package/kit/framework/bin/lib/uat.cjs +282 -282
  171. package/kit/framework/bin/lib/verify.cjs +888 -888
  172. package/kit/framework/bin/lib/workstream.cjs +491 -491
  173. package/kit/framework/bin/tools.cjs +918 -918
  174. package/kit/framework/commands/workstreams.md +63 -63
  175. package/kit/framework/references/checkpoints.md +778 -778
  176. package/kit/framework/references/continuation-format.md +249 -249
  177. package/kit/framework/references/decimal-phase-calculation.md +64 -64
  178. package/kit/framework/references/git-integration.md +295 -295
  179. package/kit/framework/references/git-planning-commit.md +38 -38
  180. package/kit/framework/references/model-profile-resolution.md +36 -36
  181. package/kit/framework/references/model-profiles.md +139 -139
  182. package/kit/framework/references/phase-argument-parsing.md +61 -61
  183. package/kit/framework/references/planning-config.md +202 -202
  184. package/kit/framework/references/questioning.md +162 -162
  185. package/kit/framework/references/tdd.md +263 -263
  186. package/kit/framework/references/ui-brand.md +160 -160
  187. package/kit/framework/references/user-profiling.md +657 -657
  188. package/kit/framework/references/verification-patterns.md +612 -612
  189. package/kit/framework/references/workstream-flag.md +58 -58
  190. package/kit/framework/templates/DEBUG.md +164 -164
  191. package/kit/framework/templates/UAT.md +265 -265
  192. package/kit/framework/templates/UI-SPEC.md +100 -100
  193. package/kit/framework/templates/VALIDATION.md +76 -76
  194. package/kit/framework/templates/claude-md.md +122 -122
  195. package/kit/framework/templates/codebase/architecture.md +185 -185
  196. package/kit/framework/templates/codebase/concerns.md +205 -205
  197. package/kit/framework/templates/codebase/conventions.md +204 -204
  198. package/kit/framework/templates/codebase/integrations.md +192 -192
  199. package/kit/framework/templates/codebase/stack.md +158 -158
  200. package/kit/framework/templates/codebase/structure.md +199 -199
  201. package/kit/framework/templates/codebase/testing.md +301 -301
  202. package/kit/framework/templates/config.json +44 -44
  203. package/kit/framework/templates/context.md +352 -352
  204. package/kit/framework/templates/continue-here.md +78 -78
  205. package/kit/framework/templates/copilot-instructions.md +7 -7
  206. package/kit/framework/templates/debug-subagent-prompt.md +91 -91
  207. package/kit/framework/templates/dev-preferences.md +20 -20
  208. package/kit/framework/templates/discovery.md +146 -146
  209. package/kit/framework/templates/discussion-log.md +63 -63
  210. package/kit/framework/templates/milestone-archive.md +123 -123
  211. package/kit/framework/templates/milestone.md +115 -115
  212. package/kit/framework/templates/phase-prompt.md +610 -610
  213. package/kit/framework/templates/planner-subagent-prompt.md +117 -117
  214. package/kit/framework/templates/project.md +186 -186
  215. package/kit/framework/templates/requirements.md +231 -231
  216. package/kit/framework/templates/research-project/ARCHITECTURE.md +204 -204
  217. package/kit/framework/templates/research-project/FEATURES.md +147 -147
  218. package/kit/framework/templates/research-project/PITFALLS.md +200 -200
  219. package/kit/framework/templates/research-project/STACK.md +120 -120
  220. package/kit/framework/templates/research-project/SUMMARY.md +170 -170
  221. package/kit/framework/templates/research.md +419 -419
  222. package/kit/framework/templates/retrospective.md +54 -54
  223. package/kit/framework/templates/roadmap.md +202 -202
  224. package/kit/framework/templates/state.md +176 -176
  225. package/kit/framework/templates/summary-complex.md +59 -59
  226. package/kit/framework/templates/summary-minimal.md +41 -41
  227. package/kit/framework/templates/summary-standard.md +48 -48
  228. package/kit/framework/templates/summary.md +209 -209
  229. package/kit/framework/templates/user-profile.md +146 -146
  230. package/kit/framework/templates/user-setup.md +256 -256
  231. package/kit/framework/templates/verification-report.md +258 -258
  232. package/kit/framework/workflows/add-phase.md +112 -112
  233. package/kit/framework/workflows/add-tests.md +351 -351
  234. package/kit/framework/workflows/add-todo.md +158 -158
  235. package/kit/framework/workflows/audit-milestone.md +340 -340
  236. package/kit/framework/workflows/audit-uat.md +109 -109
  237. package/kit/framework/workflows/autonomous.md +891 -891
  238. package/kit/framework/workflows/check-todos.md +177 -177
  239. package/kit/framework/workflows/cleanup.md +152 -152
  240. package/kit/framework/workflows/complete-milestone.md +696 -696
  241. package/kit/framework/workflows/diagnose-issues.md +231 -231
  242. package/kit/framework/workflows/discovery-phase.md +289 -289
  243. package/kit/framework/workflows/discuss-phase-assumptions.md +653 -653
  244. package/kit/framework/workflows/discuss-phase.md +784 -784
  245. package/kit/framework/workflows/do.md +104 -104
  246. package/kit/framework/workflows/execute-phase.md +838 -838
  247. package/kit/framework/workflows/execute-plan.md +510 -510
  248. package/kit/framework/workflows/fast.md +102 -102
  249. package/kit/framework/workflows/forensics.md +265 -265
  250. package/kit/framework/workflows/health.md +181 -181
  251. package/kit/framework/workflows/help.md +619 -619
  252. package/kit/framework/workflows/insert-phase.md +130 -130
  253. package/kit/framework/workflows/list-phase-assumptions.md +178 -178
  254. package/kit/framework/workflows/list-workspaces.md +56 -56
  255. package/kit/framework/workflows/manager.md +362 -362
  256. package/kit/framework/workflows/map-codebase.md +377 -377
  257. package/kit/framework/workflows/milestone-summary.md +223 -223
  258. package/kit/framework/workflows/new-milestone.md +486 -486
  259. package/kit/framework/workflows/new-project.md +1159 -1159
  260. package/kit/framework/workflows/new-workspace.md +237 -237
  261. package/kit/framework/workflows/next.md +97 -97
  262. package/kit/framework/workflows/node-repair.md +92 -92
  263. package/kit/framework/workflows/note.md +156 -156
  264. package/kit/framework/workflows/pause-work.md +176 -176
  265. package/kit/framework/workflows/plan-milestone-gaps.md +273 -273
  266. package/kit/framework/workflows/plan-phase.md +765 -765
  267. package/kit/framework/workflows/plant-seed.md +169 -169
  268. package/kit/framework/workflows/pr-branch.md +129 -129
  269. package/kit/framework/workflows/profile-user.md +450 -450
  270. package/kit/framework/workflows/progress.md +507 -507
  271. package/kit/framework/workflows/quick.md +757 -757
  272. package/kit/framework/workflows/remove-phase.md +155 -155
  273. package/kit/framework/workflows/remove-workspace.md +90 -90
  274. package/kit/framework/workflows/research-phase.md +82 -82
  275. package/kit/framework/workflows/resume-project.md +326 -326
  276. package/kit/framework/workflows/review.md +228 -228
  277. package/kit/framework/workflows/session-report.md +146 -146
  278. package/kit/framework/workflows/settings.md +283 -283
  279. package/kit/framework/workflows/ship.md +228 -228
  280. package/kit/framework/workflows/stats.md +60 -60
  281. package/kit/framework/workflows/transition.md +671 -671
  282. package/kit/framework/workflows/ui-phase.md +302 -302
  283. package/kit/framework/workflows/ui-review.md +165 -165
  284. package/kit/framework/workflows/update.md +323 -323
  285. package/kit/framework/workflows/validate-phase.md +174 -174
  286. package/kit/framework/workflows/verify-phase.md +252 -252
  287. package/kit/framework/workflows/verify-work.md +637 -637
  288. package/kit/hooks/check-update.js +118 -118
  289. package/kit/hooks/context-monitor.js +163 -163
  290. package/kit/hooks/kit-attribution-reminder.cjs +29 -50
  291. package/kit/hooks/kit-router.cjs +137 -0
  292. package/kit/hooks/prompt-guard.js +103 -103
  293. package/kit/hooks/statusline.js +125 -125
  294. package/kit/hooks/workflow-guard.js +101 -101
  295. package/kit/settings.json +45 -45
  296. package/kit/skills/ai-prompt-characterization/SKILL.md +335 -335
  297. package/kit/skills/armadilhas-sistemas-distribuidos/SKILL.md +447 -447
  298. package/kit/skills/audit-log-multi-tenant/SKILL.md +340 -340
  299. package/kit/skills/b2b-saas-architecture/SKILL.md +300 -300
  300. package/kit/skills/consistencia-leitura-replica/SKILL.md +385 -385
  301. package/kit/skills/crm-lead-pipeline-patterns/SKILL.md +343 -343
  302. package/kit/skills/escolha-modelo-consistencia/SKILL.md +494 -494
  303. package/kit/skills/evolucao-schema-compativel/SKILL.md +448 -448
  304. package/kit/skills/evolution-go-whatsapp-integration/SKILL.md +322 -322
  305. package/kit/skills/example-skill/SKILL.md +42 -42
  306. package/kit/skills/legacy-api-only-applications/SKILL.md +358 -358
  307. package/kit/skills/legacy-characterization-tests/SKILL.md +330 -330
  308. package/kit/skills/legacy-effect-analysis/SKILL.md +331 -331
  309. package/kit/skills/legacy-extract-class/SKILL.md +203 -203
  310. package/kit/skills/legacy-programming-by-difference/SKILL.md +252 -252
  311. package/kit/skills/legacy-seams-and-test-harness/SKILL.md +460 -460
  312. package/kit/skills/legacy-shotgun-surgery/SKILL.md +286 -286
  313. package/kit/skills/legacy-sprout-wrap-techniques/SKILL.md +434 -434
  314. package/kit/skills/legacy-storytelling-naked-crc/SKILL.md +270 -270
  315. package/kit/skills/lgpd-multi-tenant-compliance/SKILL.md +340 -340
  316. package/kit/skills/member-invite-flow/SKILL.md +305 -305
  317. package/kit/skills/member-management-react-shadcn/SKILL.md +328 -328
  318. package/kit/skills/multi-tenant-performance-scaling/SKILL.md +316 -316
  319. package/kit/skills/multi-tenant-rls-hierarchy/SKILL.md +342 -342
  320. package/kit/skills/org-onboarding-flow/SKILL.md +257 -257
  321. package/kit/skills/org-switcher-react-pattern/SKILL.md +349 -349
  322. package/kit/skills/permission-gate-react-pattern/SKILL.md +271 -271
  323. package/kit/skills/postgres-isolamento-concorrencia/SKILL.md +552 -552
  324. package/kit/skills/pre-refactor-characterization/SKILL.md +421 -421
  325. package/kit/skills/rbac-permissions-matrix-supabase/SKILL.md +338 -338
  326. package/kit/skills/streams-eventos-cdc/SKILL.md +711 -711
  327. package/kit/skills/supabase-auth-hardening/SKILL.md +674 -0
  328. package/kit/skills/supabase-auth-hooks/SKILL.md +875 -0
  329. package/kit/skills/supabase-auth-methods/SKILL.md +486 -0
  330. package/kit/skills/supabase-auth-sessions/SKILL.md +579 -0
  331. package/kit/skills/supabase-auth-ssr/SKILL.md +60 -14
  332. package/kit/skills/supabase-branching-workflow/SKILL.md +544 -544
  333. package/kit/skills/supabase-ci-cd-github-actions/SKILL.md +880 -880
  334. package/kit/skills/supabase-column-level-security/SKILL.md +426 -426
  335. package/kit/skills/supabase-config-toml-remotes/SKILL.md +807 -807
  336. package/kit/skills/supabase-custom-claims-rbac/SKILL.md +472 -472
  337. package/kit/skills/supabase-edge-functions/SKILL.md +1 -1
  338. package/kit/skills/supabase-edge-functions-auth/SKILL.md +1 -1
  339. package/kit/skills/supabase-edge-functions-limits/SKILL.md +1 -1
  340. package/kit/skills/supabase-edge-functions-mcp-server/SKILL.md +1 -1
  341. package/kit/skills/supabase-edge-functions-testing/SKILL.md +1 -1
  342. package/kit/skills/supabase-edge-runtime-builtins/SKILL.md +1 -1
  343. package/kit/skills/supabase-enterprise-sso-saml/SKILL.md +545 -0
  344. package/kit/skills/supabase-jwt-signing-keys/SKILL.md +399 -0
  345. package/kit/skills/supabase-mfa/SKILL.md +488 -0
  346. package/kit/skills/supabase-migration-repair/SKILL.md +823 -823
  347. package/kit/skills/supabase-migrations/SKILL.md +297 -297
  348. package/kit/skills/supabase-oauth-server/SKILL.md +537 -0
  349. package/kit/skills/supabase-pgtap-testing/SKILL.md +1053 -1053
  350. package/kit/skills/supabase-postgres-roles/SKILL.md +392 -392
  351. package/kit/skills/supabase-realtime/SKILL.md +460 -460
  352. package/kit/skills/supabase-rls-defense-in-depth/SKILL.md +418 -418
  353. package/kit/skills/supabase-rls-policies/SKILL.md +635 -635
  354. package/kit/skills/supabase-social-oauth/SKILL.md +480 -0
  355. package/kit/skills/supabase-third-party-auth/SKILL.md +450 -0
  356. package/kit/skills/super-admin-platform-pattern/SKILL.md +326 -326
  357. package/kit/skills/tenant-quente-mitigacao/SKILL.md +605 -605
  358. package/kit/skills/whatsapp-conversation-state-machine/SKILL.md +287 -287
  359. package/package.json +1 -1
  360. package/src/core/kit.js +216 -216
  361. package/src/core/reflect.js +247 -247
  362. package/src/core/reverse-sync.js +372 -372
  363. package/src/core/sync.js +437 -418
  364. package/src/core/watch.js +121 -121
  365. package/src/mcp-server/index.js +794 -746
@@ -1,362 +1,362 @@
1
- <purpose>
2
-
3
- Central de comando interativa para gerenciar um milestone a partir de um único terminal. Mostra um dashboard de todas as fases com status visual, despacha discuss inline e plan/execute como agentes em background, e volta ao dashboard após cada ação. Permite trabalho paralelo de fases a partir de um terminal.
4
-
5
- </purpose>
6
-
7
- <required_reading>
8
-
9
- Leia todos os arquivos referenciados pelo execution_context do prompt que invocou antes de começar.
10
-
11
- </required_reading>
12
-
13
- <process>
14
-
15
- <step name="initialize" priority="first">
16
-
17
- ## 1. Inicializar
18
-
19
- Bootstrap via manager init:
20
-
21
- ```bash
22
- INIT=$(node "./.claude/framework/bin/tools.cjs" init manager)
23
- if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
24
- ```
25
-
26
- Analisar JSON para: `milestone_version`, `milestone_name`, `phase_count`, `completed_count`, `in_progress_count`, `phases`, `recommended_actions`, `all_complete`, `waiting_signal`.
27
-
28
- **Se erro:** Exibir a mensagem de erro e sair.
29
-
30
- Exibir banner de inicialização:
31
-
32
- ```
33
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
34
- framework ► GERENCIADOR
35
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
36
-
37
- {milestone_version} — {milestone_name}
38
- {phase_count} fases · {completed_count} concluídas
39
-
40
- ✓ Discutir → inline ◆ Planejar/Executar → background
41
- Dashboard atualiza automaticamente quando há trabalho em background.
42
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
43
- ```
44
-
45
- Prosseguir para o passo dashboard.
46
-
47
- </step>
48
-
49
- <step name="dashboard">
50
-
51
- ## 2. Dashboard (Ponto de Atualização)
52
-
53
- **Cada vez que este passo é atingido**, re-ler estado do disco para capturar mudanças de agentes em background:
54
-
55
- ```bash
56
- INIT=$(node "./.claude/framework/bin/tools.cjs" init manager)
57
- if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
58
- ```
59
-
60
- Analisar o JSON completo. Construir a exibição do dashboard.
61
-
62
- Construir dashboard a partir do JSON. Símbolos: `✓` concluído, `◆` ativo, `○` pendente, `·` na fila. Barra de progresso: 20 caracteres `█░`.
63
-
64
- **Mapeamento de status** (disk_status → D P E Status):
65
-
66
- - `complete` → `✓ ✓ ✓` `✓ Concluído`
67
- - `partial` → `✓ ✓ ◆` `◆ Executando...`
68
- - `planned` → `✓ ✓ ○` `○ Pronto para executar`
69
- - `discussed` → `✓ ○ ·` `○ Pronto para planejar`
70
- - `researched` → `◆ · ·` `○ Pronto para planejar`
71
- - `empty`/`no_directory` + `is_next_to_discuss` → `○ · ·` `○ Pronto para discutir`
72
- - `empty`/`no_directory` caso contrário → `· · ·` `· Próximo na fila`
73
- - Se `is_active`, substituir ícone de status por `◆` e anexar `(ativo)`
74
-
75
- Se alguma fase `is_active`, mostrar: `◆ Background: {ação} Fase {N}, ...` acima da grade.
76
-
77
- Usar `display_name` (não `name`) para a coluna Fase — é pré-truncado a 20 caracteres com `…` se cortado. Alinhar todos os nomes de fase com a mesma largura.
78
-
79
- Usar `deps_display` do JSON de init para a coluna Deps — mostra de quais fases esta fase depende (ex: `1,3`) ou `—` para nenhuma.
80
-
81
- Exemplo de saída:
82
-
83
- ```
84
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
85
- framework ► DASHBOARD
86
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
87
- ████████████░░░░░░░░ 60% (3/5 fases)
88
- ◆ Background: Planejando Fase 4
89
- | # | Fase | Deps | D | P | E | Status |
90
- |---|----------------------|------|---|---|---|---------------------|
91
- | 1 | Foundation | — | ✓ | ✓ | ✓ | ✓ Concluído |
92
- | 2 | API Layer | 1 | ✓ | ✓ | ◆ | ◆ Executando (ativo)|
93
- | 3 | Auth System | 1 | ✓ | ✓ | ○ | ○ Pronto p/ executar|
94
- | 4 | Dashboard UI & Set… | 1,2 | ✓ | ◆ | · | ◆ Planejando (ativo)|
95
- | 5 | Notifications | — | ○ | · | · | ○ Pronto p/ discutir|
96
- | 6 | Polish & Final Mail… | 1-5 | · | · | · | · Próximo na fila |
97
- ```
98
-
99
- **Seção de recomendações:**
100
-
101
- Se `all_complete` for verdadeiro:
102
-
103
- ```
104
- ╔══════════════════════════════════════════════════════════════╗
105
- ║ MILESTONE CONCLUÍDO ║
106
- ╚══════════════════════════════════════════════════════════════╝
107
-
108
- Todas as {phase_count} fases concluídas. Pronto para etapas finais:
109
- → /verificar-trabalho — executar testes de aceitação
110
- → /concluir-marco — arquivar e encerrar
111
- ```
112
-
113
- Perguntar ao usuário via AskUserQuestion:
114
- - **question:** "Todas as fases concluídas. O que fazer a seguir?"
115
- - **options:** "Verificar trabalho" / "Concluir milestone" / "Sair do gerenciador"
116
-
117
- Tratar respostas:
118
- - "Verificar trabalho": `Skill(skill="framework:verificar-trabalho")` então voltar ao dashboard.
119
- - "Concluir milestone": `Skill(skill="framework:concluir-marco")` então sair.
120
- - "Sair do gerenciador": Ir para o passo de saída.
121
-
122
- **Se NÃO all_complete**, construir opções compostas a partir de `recommended_actions`:
123
-
124
- **Lógica de opção composta:** Agrupar ações em background (plan/execute) juntas, e combiná-las com a ação inline única (discuss) quando existir. O objetivo é apresentar o menor número possível de opções — uma opção pode despachar múltiplos agentes em background mais uma ação inline.
125
-
126
- **Construindo opções:**
127
-
128
- 1. Coletar todas as ações em background (recomendações de execute e plan) — pode haver múltiplas de cada.
129
- 2. Coletar a ação inline (recomendação de discuss, se houver — haverá no máximo uma já que discuss é sequencial).
130
- 3. Construir opções compostas:
131
-
132
- **Se houver QUAISQUER ações recomendadas (background, inline, ou ambas):**
133
- Criar UMA opção primária "Continuar" que despacha TODAS juntas:
134
- - Rótulo: `"Continuar"` — sempre esta palavra exata
135
- - Abaixo do rótulo, listar cada ação que acontecerá. Enumerar TODAS as ações recomendadas — não limitar ou truncar:
136
- ```
137
- Continuar:
138
- → Executar Fase 32 (background)
139
- → Planejar Fase 34 (background)
140
- → Discutir Fase 35 (inline)
141
- ```
142
- - Isso despacha todos os agentes em background primeiro, então executa o discuss inline (se houver).
143
- - Se não houver discuss inline, o dashboard atualiza após criar os agentes em background.
144
-
145
- **Importante:** A opção Continuar deve incluir CADA ação de `recommended_actions` — não apenas 2. Se houver 3 ações, listar 3. Se houver 5, listar 5.
146
-
147
- 4. Sempre adicionar:
148
- - `"Atualizar dashboard"`
149
- - `"Sair do gerenciador"`
150
-
151
- Exibir recomendações de forma compacta:
152
-
153
- ```
154
- ───────────────────────────────────────────────────────────────
155
- ▶ Próximos Passos
156
- ───────────────────────────────────────────────────────────────
157
-
158
- Continuar:
159
- → Executar Fase 32 (background)
160
- → Planejar Fase 34 (background)
161
- → Discutir Fase 35 (inline)
162
- ```
163
-
164
- **Auto-atualização:** Se agentes em background estiverem rodando (`is_active` é verdadeiro para alguma fase), definir um ciclo de auto-atualização de 60 segundos. Após apresentar o menu de ação, se nenhum input do usuário for recebido em 60 segundos, atualizar automaticamente o dashboard. Este intervalo é configurável via `manager_refresh_interval` na config framework (padrão: 60 segundos, definir como 0 para desabilitar).
165
-
166
- Apresentar via AskUserQuestion:
167
- - **question:** "O que você gostaria de fazer?"
168
- - **options:** (opções compostas como construídas acima + atualizar + sair, AskUserQuestion adiciona automaticamente "Outro")
169
-
170
- **Em "Outro" (texto livre):** Analisar intenção — se mencionar número de fase e ação, despachar adequadamente. Se incerto, exibir ações disponíveis e voltar ao action_menu.
171
-
172
- Prosseguir para o passo handle_action com a ação selecionada.
173
-
174
- </step>
175
-
176
- <step name="handle_action">
177
-
178
- ## 4. Tratar Ação
179
-
180
- ### Atualizar Dashboard
181
-
182
- Voltar ao passo dashboard.
183
-
184
- ### Sair do Gerenciador
185
-
186
- Ir para o passo de saída.
187
-
188
- ### Ação Composta (background + inline)
189
-
190
- Quando o usuário seleciona uma opção composta:
191
-
192
- 1. **Criar todos os agentes em background primeiro** (plan/execute) — despachá-los em paralelo usando os handlers de Plan Phase N / Execute Phase N abaixo.
193
- 2. **Então executar o discuss inline:**
194
-
195
- ```
196
- Skill(skill="framework:discutir-fase", args="{PHASE_NUM}")
197
- ```
198
-
199
- Após o discuss concluir, voltar ao passo dashboard (agentes em background continuam rodando).
200
-
201
- ### Discutir Fase N
202
-
203
- A discussão é interativa — precisa de input do usuário. Executar inline:
204
-
205
- ```
206
- Skill(skill="framework:discutir-fase", args="{PHASE_NUM}")
207
- ```
208
-
209
- Após o discuss concluir, voltar ao passo dashboard.
210
-
211
- ### Planejar Fase N
212
-
213
- O planejamento roda autonomamente. Criar um agente em background:
214
-
215
- ```
216
- Task(
217
- description="Planejar fase {N}: {phase_name}",
218
- run_in_background=true,
219
- prompt="Você está executando o workflow framework plan-phase para a fase {N} do projeto.
220
-
221
- Diretório de trabalho: {cwd}
222
- Fase: {N} — {phase_name}
223
- Objetivo: {goal}
224
-
225
- Passos:
226
- 1. Ler o workflow plan-phase: cat ./.claude/framework/workflows/plan-phase.md
227
- 2. Executar: node \"./.claude/framework/bin/tools.cjs\" init plan-phase {N}
228
- 3. Seguir os passos do workflow para produzir arquivos PLAN.md para esta fase.
229
- 4. Se pesquisa estiver habilitada na config, executar o passo de pesquisa primeiro.
230
- 5. Criar um subagente planner via Task() para criar os planos.
231
- 6. Se plan-checker estiver habilitado, criar um subagente plan-checker para verificar.
232
- 7. Commitar arquivos de plano quando concluído.
233
-
234
- Importante: Você está rodando em background. NÃO use AskUserQuestion — tome decisões autônomas baseadas no contexto do projeto. Se encontrar um bloqueio, escrevê-lo no STATE.md como bloqueio e parar. NÃO trabalhe silenciosamente em torno de erros de permissão ou acesso a arquivos — deixe-os falhar para que o gerenciador possa surfaçá-los com dicas de resolução."
235
- )
236
- ```
237
-
238
- Exibir:
239
-
240
- ```
241
- ◆ Criando planejador para Fase {N}: {phase_name}...
242
- ```
243
-
244
- Voltar ao passo dashboard.
245
-
246
- ### Executar Fase N
247
-
248
- A execução roda autonomamente. Criar um agente em background:
249
-
250
- ```
251
- Task(
252
- description="Executar fase {N}: {phase_name}",
253
- run_in_background=true,
254
- prompt="Você está executando o workflow framework execute-phase para a fase {N} do projeto.
255
-
256
- Diretório de trabalho: {cwd}
257
- Fase: {N} — {phase_name}
258
- Objetivo: {goal}
259
-
260
- Passos:
261
- 1. Ler o workflow execute-phase: cat ./.claude/framework/workflows/execute-phase.md
262
- 2. Executar: node \"./.claude/framework/bin/tools.cjs\" init execute-phase {N}
263
- 3. Seguir os passos do workflow: descobrir planos, analisar dependências, agrupar em waves.
264
- 4. Para cada wave, criar subagentes executor via Task() para executar planos em paralelo.
265
- 5. Após todas as waves concluírem, criar um subagente verifier se verificador estiver habilitado.
266
- 6. Atualizar ROADMAP.md e STATE.md com progresso.
267
- 7. Commitar todas as mudanças.
268
-
269
- Importante: Você está rodando em background. NÃO use AskUserQuestion — tome decisões autônomas. Use --no-verify em commits git. Se encontrar erro de permissão, trava de arquivo, ou qualquer problema de acesso, NÃO trabalhe em torno dele — deixe falhar e escreva o erro no STATE.md como bloqueio para que o gerenciador possa surfaçá-lo com orientação de resolução."
270
- )
271
- ```
272
-
273
- Exibir:
274
-
275
- ```
276
- ◆ Criando executor para Fase {N}: {phase_name}...
277
- ```
278
-
279
- Voltar ao passo dashboard.
280
-
281
- </step>
282
-
283
- <step name="background_completion">
284
-
285
- ## 5. Conclusão de Agente em Background
286
-
287
- Quando notificado que um agente em background concluiu:
288
-
289
- 1. Ler a mensagem de resultado do agente.
290
- 2. Exibir uma notificação breve:
291
-
292
- ```
293
- ✓ {description}
294
- {breve resumo do resultado do agente}
295
- ```
296
-
297
- 3. Voltar ao passo dashboard.
298
-
299
- **Se o agente reportou um erro ou bloqueio:**
300
-
301
- Classificar o erro:
302
-
303
- **Erro de permissão / acesso a ferramenta** (ex: ferramenta não permitida, permissão negada, restrição de sandbox):
304
- - Analisar o erro para identificar qual ferramenta ou comando foi bloqueado.
305
- - Exibir o erro claramente, então oferecer para corrigir:
306
- - **question:** "Fase {N} falhou — permissão negada para `{tool_or_command}`. Quer que eu adicione ao settings.local.json para que seja permitido?"
307
- - **options:** "Adicionar permissão e tentar novamente" / "Executar esta fase inline em vez disso" / "Pular e continuar"
308
- - "Adicionar permissão e tentar novamente": Usar `Skill(skill="update-config")` para adicionar a permissão ao `settings.local.json`, então recriar o agente em background. Voltar ao dashboard.
309
- - "Executar esta fase inline em vez disso": Despachar a mesma ação (plan/execute) inline via `Skill()` em vez de um Task em background. Voltar ao dashboard após.
310
- - "Pular e continuar": Voltar ao dashboard (fase permanece no estado atual).
311
-
312
- **Outros erros** (trava git, conflito de arquivo, erro de lógica, etc.):
313
- - Exibir o erro, então oferecer opções via AskUserQuestion:
314
- - **question:** "Agente em background para Fase {N} encontrou um problema: {error}. O que fazer?"
315
- - **options:** "Tentar novamente" / "Executar inline em vez disso" / "Pular e continuar" / "Ver detalhes"
316
- - "Tentar novamente": Recriar o mesmo agente em background. Voltar ao dashboard.
317
- - "Executar inline em vez disso": Despachar a ação inline via `Skill()`. Voltar ao dashboard após.
318
- - "Pular e continuar": Voltar ao dashboard (fase permanece no estado atual).
319
- - "Ver detalhes": Ler seção de bloqueios do STATE.md, exibir, então reapresentar opções.
320
-
321
- </step>
322
-
323
- <step name="exit">
324
-
325
- ## 6. Saída
326
-
327
- Exibir status final com barra de progresso:
328
-
329
- ```
330
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
331
- framework ► FIM DA SESSÃO
332
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
333
-
334
- {milestone_version} — {milestone_name}
335
- {PROGRESS_BAR} {progress_pct}% ({completed_count}/{phase_count} fases)
336
-
337
- Retome a qualquer momento: /gerenciador
338
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
339
- ```
340
-
341
- **Nota:** Quaisquer agentes em background ainda rodando continuarão até a conclusão. Seus resultados serão visíveis na próxima invocação de `/gerenciador` ou `/progresso`.
342
-
343
- </step>
344
-
345
- </process>
346
-
347
- <success_criteria>
348
- - [ ] Dashboard exibe todas as fases com indicadores de status corretos (colunas D/P/E/V)
349
- - [ ] Barra de progresso mostra percentual de conclusão preciso
350
- - [ ] Resolução de dependências: fases bloqueadas mostram quais deps estão faltando
351
- - [ ] Recomendações priorizam: executar > planejar > discutir
352
- - [ ] Fases de discuss executam inline via Skill() — perguntas interativas funcionam
353
- - [ ] Fases de plan criam agentes Task em background — retornam ao dashboard imediatamente
354
- - [ ] Fases de execute criam agentes Task em background — retornam ao dashboard imediatamente
355
- - [ ] Atualizações do dashboard capturam mudanças de agentes em background via estado do disco
356
- - [ ] Conclusão de agente em background aciona notificação e atualização do dashboard
357
- - [ ] Erros de agente em background apresentam opções de tentar novamente/pular
358
- - [ ] Estado de todos-concluídos oferece verify-work e complete-milestone
359
- - [ ] Saída mostra status final com instruções de retomada
360
- - [ ] Input de texto livre "Outro" analisado para número de fase e ação
361
- - [ ] Loop do gerenciador continua até o usuário sair ou o milestone concluir
362
- </success_criteria>
1
+ <purpose>
2
+
3
+ Central de comando interativa para gerenciar um milestone a partir de um único terminal. Mostra um dashboard de todas as fases com status visual, despacha discuss inline e plan/execute como agentes em background, e volta ao dashboard após cada ação. Permite trabalho paralelo de fases a partir de um terminal.
4
+
5
+ </purpose>
6
+
7
+ <required_reading>
8
+
9
+ Leia todos os arquivos referenciados pelo execution_context do prompt que invocou antes de começar.
10
+
11
+ </required_reading>
12
+
13
+ <process>
14
+
15
+ <step name="initialize" priority="first">
16
+
17
+ ## 1. Inicializar
18
+
19
+ Bootstrap via manager init:
20
+
21
+ ```bash
22
+ INIT=$(node "./.claude/framework/bin/tools.cjs" init manager)
23
+ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
24
+ ```
25
+
26
+ Analisar JSON para: `milestone_version`, `milestone_name`, `phase_count`, `completed_count`, `in_progress_count`, `phases`, `recommended_actions`, `all_complete`, `waiting_signal`.
27
+
28
+ **Se erro:** Exibir a mensagem de erro e sair.
29
+
30
+ Exibir banner de inicialização:
31
+
32
+ ```
33
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
34
+ framework ► GERENCIADOR
35
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
36
+
37
+ {milestone_version} — {milestone_name}
38
+ {phase_count} fases · {completed_count} concluídas
39
+
40
+ ✓ Discutir → inline ◆ Planejar/Executar → background
41
+ Dashboard atualiza automaticamente quando há trabalho em background.
42
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
43
+ ```
44
+
45
+ Prosseguir para o passo dashboard.
46
+
47
+ </step>
48
+
49
+ <step name="dashboard">
50
+
51
+ ## 2. Dashboard (Ponto de Atualização)
52
+
53
+ **Cada vez que este passo é atingido**, re-ler estado do disco para capturar mudanças de agentes em background:
54
+
55
+ ```bash
56
+ INIT=$(node "./.claude/framework/bin/tools.cjs" init manager)
57
+ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
58
+ ```
59
+
60
+ Analisar o JSON completo. Construir a exibição do dashboard.
61
+
62
+ Construir dashboard a partir do JSON. Símbolos: `✓` concluído, `◆` ativo, `○` pendente, `·` na fila. Barra de progresso: 20 caracteres `█░`.
63
+
64
+ **Mapeamento de status** (disk_status → D P E Status):
65
+
66
+ - `complete` → `✓ ✓ ✓` `✓ Concluído`
67
+ - `partial` → `✓ ✓ ◆` `◆ Executando...`
68
+ - `planned` → `✓ ✓ ○` `○ Pronto para executar`
69
+ - `discussed` → `✓ ○ ·` `○ Pronto para planejar`
70
+ - `researched` → `◆ · ·` `○ Pronto para planejar`
71
+ - `empty`/`no_directory` + `is_next_to_discuss` → `○ · ·` `○ Pronto para discutir`
72
+ - `empty`/`no_directory` caso contrário → `· · ·` `· Próximo na fila`
73
+ - Se `is_active`, substituir ícone de status por `◆` e anexar `(ativo)`
74
+
75
+ Se alguma fase `is_active`, mostrar: `◆ Background: {ação} Fase {N}, ...` acima da grade.
76
+
77
+ Usar `display_name` (não `name`) para a coluna Fase — é pré-truncado a 20 caracteres com `…` se cortado. Alinhar todos os nomes de fase com a mesma largura.
78
+
79
+ Usar `deps_display` do JSON de init para a coluna Deps — mostra de quais fases esta fase depende (ex: `1,3`) ou `—` para nenhuma.
80
+
81
+ Exemplo de saída:
82
+
83
+ ```
84
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
85
+ framework ► DASHBOARD
86
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
87
+ ████████████░░░░░░░░ 60% (3/5 fases)
88
+ ◆ Background: Planejando Fase 4
89
+ | # | Fase | Deps | D | P | E | Status |
90
+ |---|----------------------|------|---|---|---|---------------------|
91
+ | 1 | Foundation | — | ✓ | ✓ | ✓ | ✓ Concluído |
92
+ | 2 | API Layer | 1 | ✓ | ✓ | ◆ | ◆ Executando (ativo)|
93
+ | 3 | Auth System | 1 | ✓ | ✓ | ○ | ○ Pronto p/ executar|
94
+ | 4 | Dashboard UI & Set… | 1,2 | ✓ | ◆ | · | ◆ Planejando (ativo)|
95
+ | 5 | Notifications | — | ○ | · | · | ○ Pronto p/ discutir|
96
+ | 6 | Polish & Final Mail… | 1-5 | · | · | · | · Próximo na fila |
97
+ ```
98
+
99
+ **Seção de recomendações:**
100
+
101
+ Se `all_complete` for verdadeiro:
102
+
103
+ ```
104
+ ╔══════════════════════════════════════════════════════════════╗
105
+ ║ MILESTONE CONCLUÍDO ║
106
+ ╚══════════════════════════════════════════════════════════════╝
107
+
108
+ Todas as {phase_count} fases concluídas. Pronto para etapas finais:
109
+ → /verificar-trabalho — executar testes de aceitação
110
+ → /concluir-marco — arquivar e encerrar
111
+ ```
112
+
113
+ Perguntar ao usuário via AskUserQuestion:
114
+ - **question:** "Todas as fases concluídas. O que fazer a seguir?"
115
+ - **options:** "Verificar trabalho" / "Concluir milestone" / "Sair do gerenciador"
116
+
117
+ Tratar respostas:
118
+ - "Verificar trabalho": `Skill(skill="framework:verificar-trabalho")` então voltar ao dashboard.
119
+ - "Concluir milestone": `Skill(skill="framework:concluir-marco")` então sair.
120
+ - "Sair do gerenciador": Ir para o passo de saída.
121
+
122
+ **Se NÃO all_complete**, construir opções compostas a partir de `recommended_actions`:
123
+
124
+ **Lógica de opção composta:** Agrupar ações em background (plan/execute) juntas, e combiná-las com a ação inline única (discuss) quando existir. O objetivo é apresentar o menor número possível de opções — uma opção pode despachar múltiplos agentes em background mais uma ação inline.
125
+
126
+ **Construindo opções:**
127
+
128
+ 1. Coletar todas as ações em background (recomendações de execute e plan) — pode haver múltiplas de cada.
129
+ 2. Coletar a ação inline (recomendação de discuss, se houver — haverá no máximo uma já que discuss é sequencial).
130
+ 3. Construir opções compostas:
131
+
132
+ **Se houver QUAISQUER ações recomendadas (background, inline, ou ambas):**
133
+ Criar UMA opção primária "Continuar" que despacha TODAS juntas:
134
+ - Rótulo: `"Continuar"` — sempre esta palavra exata
135
+ - Abaixo do rótulo, listar cada ação que acontecerá. Enumerar TODAS as ações recomendadas — não limitar ou truncar:
136
+ ```
137
+ Continuar:
138
+ → Executar Fase 32 (background)
139
+ → Planejar Fase 34 (background)
140
+ → Discutir Fase 35 (inline)
141
+ ```
142
+ - Isso despacha todos os agentes em background primeiro, então executa o discuss inline (se houver).
143
+ - Se não houver discuss inline, o dashboard atualiza após criar os agentes em background.
144
+
145
+ **Importante:** A opção Continuar deve incluir CADA ação de `recommended_actions` — não apenas 2. Se houver 3 ações, listar 3. Se houver 5, listar 5.
146
+
147
+ 4. Sempre adicionar:
148
+ - `"Atualizar dashboard"`
149
+ - `"Sair do gerenciador"`
150
+
151
+ Exibir recomendações de forma compacta:
152
+
153
+ ```
154
+ ───────────────────────────────────────────────────────────────
155
+ ▶ Próximos Passos
156
+ ───────────────────────────────────────────────────────────────
157
+
158
+ Continuar:
159
+ → Executar Fase 32 (background)
160
+ → Planejar Fase 34 (background)
161
+ → Discutir Fase 35 (inline)
162
+ ```
163
+
164
+ **Auto-atualização:** Se agentes em background estiverem rodando (`is_active` é verdadeiro para alguma fase), definir um ciclo de auto-atualização de 60 segundos. Após apresentar o menu de ação, se nenhum input do usuário for recebido em 60 segundos, atualizar automaticamente o dashboard. Este intervalo é configurável via `manager_refresh_interval` na config framework (padrão: 60 segundos, definir como 0 para desabilitar).
165
+
166
+ Apresentar via AskUserQuestion:
167
+ - **question:** "O que você gostaria de fazer?"
168
+ - **options:** (opções compostas como construídas acima + atualizar + sair, AskUserQuestion adiciona automaticamente "Outro")
169
+
170
+ **Em "Outro" (texto livre):** Analisar intenção — se mencionar número de fase e ação, despachar adequadamente. Se incerto, exibir ações disponíveis e voltar ao action_menu.
171
+
172
+ Prosseguir para o passo handle_action com a ação selecionada.
173
+
174
+ </step>
175
+
176
+ <step name="handle_action">
177
+
178
+ ## 4. Tratar Ação
179
+
180
+ ### Atualizar Dashboard
181
+
182
+ Voltar ao passo dashboard.
183
+
184
+ ### Sair do Gerenciador
185
+
186
+ Ir para o passo de saída.
187
+
188
+ ### Ação Composta (background + inline)
189
+
190
+ Quando o usuário seleciona uma opção composta:
191
+
192
+ 1. **Criar todos os agentes em background primeiro** (plan/execute) — despachá-los em paralelo usando os handlers de Plan Phase N / Execute Phase N abaixo.
193
+ 2. **Então executar o discuss inline:**
194
+
195
+ ```
196
+ Skill(skill="framework:discutir-fase", args="{PHASE_NUM}")
197
+ ```
198
+
199
+ Após o discuss concluir, voltar ao passo dashboard (agentes em background continuam rodando).
200
+
201
+ ### Discutir Fase N
202
+
203
+ A discussão é interativa — precisa de input do usuário. Executar inline:
204
+
205
+ ```
206
+ Skill(skill="framework:discutir-fase", args="{PHASE_NUM}")
207
+ ```
208
+
209
+ Após o discuss concluir, voltar ao passo dashboard.
210
+
211
+ ### Planejar Fase N
212
+
213
+ O planejamento roda autonomamente. Criar um agente em background:
214
+
215
+ ```
216
+ Task(
217
+ description="Planejar fase {N}: {phase_name}",
218
+ run_in_background=true,
219
+ prompt="Você está executando o workflow framework plan-phase para a fase {N} do projeto.
220
+
221
+ Diretório de trabalho: {cwd}
222
+ Fase: {N} — {phase_name}
223
+ Objetivo: {goal}
224
+
225
+ Passos:
226
+ 1. Ler o workflow plan-phase: cat ./.claude/framework/workflows/plan-phase.md
227
+ 2. Executar: node \"./.claude/framework/bin/tools.cjs\" init plan-phase {N}
228
+ 3. Seguir os passos do workflow para produzir arquivos PLAN.md para esta fase.
229
+ 4. Se pesquisa estiver habilitada na config, executar o passo de pesquisa primeiro.
230
+ 5. Criar um subagente planner via Task() para criar os planos.
231
+ 6. Se plan-checker estiver habilitado, criar um subagente plan-checker para verificar.
232
+ 7. Commitar arquivos de plano quando concluído.
233
+
234
+ Importante: Você está rodando em background. NÃO use AskUserQuestion — tome decisões autônomas baseadas no contexto do projeto. Se encontrar um bloqueio, escrevê-lo no STATE.md como bloqueio e parar. NÃO trabalhe silenciosamente em torno de erros de permissão ou acesso a arquivos — deixe-os falhar para que o gerenciador possa surfaçá-los com dicas de resolução."
235
+ )
236
+ ```
237
+
238
+ Exibir:
239
+
240
+ ```
241
+ ◆ Criando planejador para Fase {N}: {phase_name}...
242
+ ```
243
+
244
+ Voltar ao passo dashboard.
245
+
246
+ ### Executar Fase N
247
+
248
+ A execução roda autonomamente. Criar um agente em background:
249
+
250
+ ```
251
+ Task(
252
+ description="Executar fase {N}: {phase_name}",
253
+ run_in_background=true,
254
+ prompt="Você está executando o workflow framework execute-phase para a fase {N} do projeto.
255
+
256
+ Diretório de trabalho: {cwd}
257
+ Fase: {N} — {phase_name}
258
+ Objetivo: {goal}
259
+
260
+ Passos:
261
+ 1. Ler o workflow execute-phase: cat ./.claude/framework/workflows/execute-phase.md
262
+ 2. Executar: node \"./.claude/framework/bin/tools.cjs\" init execute-phase {N}
263
+ 3. Seguir os passos do workflow: descobrir planos, analisar dependências, agrupar em waves.
264
+ 4. Para cada wave, criar subagentes executor via Task() para executar planos em paralelo.
265
+ 5. Após todas as waves concluírem, criar um subagente verifier se verificador estiver habilitado.
266
+ 6. Atualizar ROADMAP.md e STATE.md com progresso.
267
+ 7. Commitar todas as mudanças.
268
+
269
+ Importante: Você está rodando em background. NÃO use AskUserQuestion — tome decisões autônomas. Use --no-verify em commits git. Se encontrar erro de permissão, trava de arquivo, ou qualquer problema de acesso, NÃO trabalhe em torno dele — deixe falhar e escreva o erro no STATE.md como bloqueio para que o gerenciador possa surfaçá-lo com orientação de resolução."
270
+ )
271
+ ```
272
+
273
+ Exibir:
274
+
275
+ ```
276
+ ◆ Criando executor para Fase {N}: {phase_name}...
277
+ ```
278
+
279
+ Voltar ao passo dashboard.
280
+
281
+ </step>
282
+
283
+ <step name="background_completion">
284
+
285
+ ## 5. Conclusão de Agente em Background
286
+
287
+ Quando notificado que um agente em background concluiu:
288
+
289
+ 1. Ler a mensagem de resultado do agente.
290
+ 2. Exibir uma notificação breve:
291
+
292
+ ```
293
+ ✓ {description}
294
+ {breve resumo do resultado do agente}
295
+ ```
296
+
297
+ 3. Voltar ao passo dashboard.
298
+
299
+ **Se o agente reportou um erro ou bloqueio:**
300
+
301
+ Classificar o erro:
302
+
303
+ **Erro de permissão / acesso a ferramenta** (ex: ferramenta não permitida, permissão negada, restrição de sandbox):
304
+ - Analisar o erro para identificar qual ferramenta ou comando foi bloqueado.
305
+ - Exibir o erro claramente, então oferecer para corrigir:
306
+ - **question:** "Fase {N} falhou — permissão negada para `{tool_or_command}`. Quer que eu adicione ao settings.local.json para que seja permitido?"
307
+ - **options:** "Adicionar permissão e tentar novamente" / "Executar esta fase inline em vez disso" / "Pular e continuar"
308
+ - "Adicionar permissão e tentar novamente": Usar `Skill(skill="update-config")` para adicionar a permissão ao `settings.local.json`, então recriar o agente em background. Voltar ao dashboard.
309
+ - "Executar esta fase inline em vez disso": Despachar a mesma ação (plan/execute) inline via `Skill()` em vez de um Task em background. Voltar ao dashboard após.
310
+ - "Pular e continuar": Voltar ao dashboard (fase permanece no estado atual).
311
+
312
+ **Outros erros** (trava git, conflito de arquivo, erro de lógica, etc.):
313
+ - Exibir o erro, então oferecer opções via AskUserQuestion:
314
+ - **question:** "Agente em background para Fase {N} encontrou um problema: {error}. O que fazer?"
315
+ - **options:** "Tentar novamente" / "Executar inline em vez disso" / "Pular e continuar" / "Ver detalhes"
316
+ - "Tentar novamente": Recriar o mesmo agente em background. Voltar ao dashboard.
317
+ - "Executar inline em vez disso": Despachar a ação inline via `Skill()`. Voltar ao dashboard após.
318
+ - "Pular e continuar": Voltar ao dashboard (fase permanece no estado atual).
319
+ - "Ver detalhes": Ler seção de bloqueios do STATE.md, exibir, então reapresentar opções.
320
+
321
+ </step>
322
+
323
+ <step name="exit">
324
+
325
+ ## 6. Saída
326
+
327
+ Exibir status final com barra de progresso:
328
+
329
+ ```
330
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
331
+ framework ► FIM DA SESSÃO
332
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
333
+
334
+ {milestone_version} — {milestone_name}
335
+ {PROGRESS_BAR} {progress_pct}% ({completed_count}/{phase_count} fases)
336
+
337
+ Retome a qualquer momento: /gerenciador
338
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
339
+ ```
340
+
341
+ **Nota:** Quaisquer agentes em background ainda rodando continuarão até a conclusão. Seus resultados serão visíveis na próxima invocação de `/gerenciador` ou `/progresso`.
342
+
343
+ </step>
344
+
345
+ </process>
346
+
347
+ <success_criteria>
348
+ - [ ] Dashboard exibe todas as fases com indicadores de status corretos (colunas D/P/E/V)
349
+ - [ ] Barra de progresso mostra percentual de conclusão preciso
350
+ - [ ] Resolução de dependências: fases bloqueadas mostram quais deps estão faltando
351
+ - [ ] Recomendações priorizam: executar > planejar > discutir
352
+ - [ ] Fases de discuss executam inline via Skill() — perguntas interativas funcionam
353
+ - [ ] Fases de plan criam agentes Task em background — retornam ao dashboard imediatamente
354
+ - [ ] Fases de execute criam agentes Task em background — retornam ao dashboard imediatamente
355
+ - [ ] Atualizações do dashboard capturam mudanças de agentes em background via estado do disco
356
+ - [ ] Conclusão de agente em background aciona notificação e atualização do dashboard
357
+ - [ ] Erros de agente em background apresentam opções de tentar novamente/pular
358
+ - [ ] Estado de todos-concluídos oferece verify-work e complete-milestone
359
+ - [ ] Saída mostra status final com instruções de retomada
360
+ - [ ] Input de texto livre "Outro" analisado para número de fase e ação
361
+ - [ ] Loop do gerenciador continua até o usuário sair ou o milestone concluir
362
+ </success_criteria>