@luanpdd/kit-mcp 1.33.0 → 1.35.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 (379) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +168 -168
  3. package/gates/agent-no-recursive-dispatch.md +84 -84
  4. package/kit/COMANDOS.md +138 -138
  5. package/kit/COMPATIBILITY.md +70 -70
  6. package/kit/README.md +76 -76
  7. package/kit/agents/advisor-researcher.md +109 -109
  8. package/kit/agents/ai-mutation-tester.md +289 -289
  9. package/kit/agents/assumptions-analyzer.md +110 -110
  10. package/kit/agents/audit-log-implementer.md +314 -314
  11. package/kit/agents/auditor-consistencia-isolamento.md +414 -414
  12. package/kit/agents/b2b-saas-architect.md +157 -157
  13. package/kit/agents/burn-rate-forecaster.md +153 -153
  14. package/kit/agents/cascading-failures-auditor.md +299 -299
  15. package/kit/agents/codebase-mapper.md +769 -769
  16. package/kit/agents/crm-pipeline-implementer.md +257 -257
  17. package/kit/agents/debugger.md +814 -814
  18. package/kit/agents/designer-ui.md +216 -216
  19. package/kit/agents/detector-tenant-quente.md +338 -338
  20. package/kit/agents/evolution-go-integrator.md +201 -201
  21. package/kit/agents/example-reviewer.md +22 -22
  22. package/kit/agents/executor.md +565 -565
  23. package/kit/agents/golden-signals-instrumenter.md +232 -232
  24. package/kit/agents/incident-investigator.md +238 -238
  25. package/kit/agents/integration-checker.md +203 -203
  26. package/kit/agents/invite-flow-implementer.md +190 -190
  27. package/kit/agents/legacy-characterizer.md +369 -369
  28. package/kit/agents/lgpd-compliance-auditor.md +296 -296
  29. package/kit/agents/load-shedding-instrumenter.md +290 -290
  30. package/kit/agents/multi-tenant-isolation-auditor.md +254 -254
  31. package/kit/agents/multi-tenant-rls-writer.md +341 -341
  32. package/kit/agents/nyquist-auditor.md +181 -181
  33. package/kit/agents/observability-coverage-auditor.md +316 -316
  34. package/kit/agents/observability-instrumenter.md +191 -191
  35. package/kit/agents/omm-auditor.md +291 -291
  36. package/kit/agents/org-onboarding-implementer.md +224 -224
  37. package/kit/agents/payload-capture-instrumenter.md +274 -274
  38. package/kit/agents/phase-researcher.md +697 -697
  39. package/kit/agents/plan-checker.md +275 -275
  40. package/kit/agents/planner.md +923 -923
  41. package/kit/agents/postmortem-writer.md +273 -273
  42. package/kit/agents/project-researcher.md +653 -653
  43. package/kit/agents/prr-conductor.md +287 -287
  44. package/kit/agents/refactor-safety-auditor.md +405 -405
  45. package/kit/agents/release-pipeline-auditor.md +364 -364
  46. package/kit/agents/research-synthesizer.md +246 -246
  47. package/kit/agents/roadmapper.md +678 -678
  48. package/kit/agents/schema-checker.md +160 -160
  49. package/kit/agents/seam-finder.md +360 -360
  50. package/kit/agents/shotgun-surgery-detector.md +350 -350
  51. package/kit/agents/slo-engineer.md +217 -217
  52. package/kit/agents/storytelling-analyst.md +300 -300
  53. package/kit/agents/supabase-architect.md +249 -249
  54. package/kit/agents/supabase-auth-bootstrapper.md +400 -400
  55. package/kit/agents/supabase-auth-hook-writer.md +418 -418
  56. package/kit/agents/supabase-branching-architect.md +563 -563
  57. package/kit/agents/supabase-cicd-pipeline-implementer.md +778 -778
  58. package/kit/agents/supabase-column-privileges-writer.md +400 -400
  59. package/kit/agents/supabase-edge-fn-tester.md +288 -288
  60. package/kit/agents/supabase-edge-fn-writer.md +341 -341
  61. package/kit/agents/supabase-mfa-implementer.md +439 -439
  62. package/kit/agents/supabase-migration-writer.md +386 -386
  63. package/kit/agents/supabase-oauth-server-implementer.md +507 -507
  64. package/kit/agents/supabase-rbac-implementer.md +393 -393
  65. package/kit/agents/supabase-realtime-implementer.md +364 -364
  66. package/kit/agents/supabase-rls-hardener.md +522 -522
  67. package/kit/agents/supabase-rls-writer.md +324 -324
  68. package/kit/agents/supabase-roles-implementer.md +356 -356
  69. package/kit/agents/supabase-social-auth-implementer.md +451 -451
  70. package/kit/agents/supabase-sso-saml-architect.md +549 -549
  71. package/kit/agents/supabase-storage-implementer.md +407 -407
  72. package/kit/agents/super-admin-implementer.md +282 -282
  73. package/kit/agents/toil-auditor.md +268 -268
  74. package/kit/agents/ui-auditor.md +438 -438
  75. package/kit/agents/ui-checker.md +305 -305
  76. package/kit/agents/ui-researcher.md +356 -356
  77. package/kit/agents/user-profiler.md +176 -176
  78. package/kit/agents/validador-evolucao-schema.md +336 -336
  79. package/kit/agents/verifier.md +729 -729
  80. package/kit/agents/workflow-generator.md +167 -0
  81. package/kit/commands/adicionar-backlog.md +75 -75
  82. package/kit/commands/adicionar-fase.md +42 -42
  83. package/kit/commands/adicionar-tarefa.md +45 -45
  84. package/kit/commands/adicionar-testes.md +41 -41
  85. package/kit/commands/ajuda.md +21 -21
  86. package/kit/commands/atualizar.md +37 -37
  87. package/kit/commands/auditar-cascading.md +111 -111
  88. package/kit/commands/auditar-marco.md +179 -179
  89. package/kit/commands/auditar-observabilidade-cobertura-workflow.md +121 -0
  90. package/kit/commands/auditar-observabilidade-cobertura.md +183 -183
  91. package/kit/commands/auditar-refactor.md +219 -219
  92. package/kit/commands/auditar-release.md +109 -109
  93. package/kit/commands/auditar-uat.md +23 -23
  94. package/kit/commands/autonomo.md +40 -40
  95. package/kit/commands/branch-pr.md +24 -24
  96. package/kit/commands/burn-rate-status.md +408 -408
  97. package/kit/commands/capturar-payloads.md +193 -193
  98. package/kit/commands/caracterizar.md +212 -212
  99. package/kit/commands/concluir-marco.md +247 -247
  100. package/kit/commands/configuracoes.md +36 -36
  101. package/kit/commands/criar-workflow.md +158 -0
  102. package/kit/commands/dados-distribuidos.md +188 -188
  103. package/kit/commands/definir-perfil.md +10 -10
  104. package/kit/commands/depurar.md +190 -190
  105. package/kit/commands/detectar-duplicacao.md +197 -197
  106. package/kit/commands/discutir-fase.md +131 -131
  107. package/kit/commands/encontrar-seams.md +136 -136
  108. package/kit/commands/entrar-discord.md +17 -17
  109. package/kit/commands/estatisticas.md +18 -18
  110. package/kit/commands/example-greeting.md +33 -33
  111. package/kit/commands/executar-fase.md +58 -58
  112. package/kit/commands/expresso.md +56 -56
  113. package/kit/commands/fase-ui.md +34 -34
  114. package/kit/commands/fazer.md +57 -57
  115. package/kit/commands/fio.md +125 -125
  116. package/kit/commands/fluxos-trabalho.md +64 -64
  117. package/kit/commands/forense.md +176 -176
  118. package/kit/commands/gerenciador.md +38 -38
  119. package/kit/commands/inserir-fase.md +31 -31
  120. package/kit/commands/legacy.md +263 -263
  121. package/kit/commands/limpeza.md +17 -17
  122. package/kit/commands/listar-hipoteses-fase.md +45 -45
  123. package/kit/commands/listar-workspaces.md +18 -18
  124. package/kit/commands/load-shedding.md +117 -117
  125. package/kit/commands/mapear-codebase.md +70 -70
  126. package/kit/commands/multi-tenant.md +163 -163
  127. package/kit/commands/nota.md +33 -33
  128. package/kit/commands/novo-marco.md +43 -43
  129. package/kit/commands/novo-projeto.md +41 -41
  130. package/kit/commands/novo-workspace.md +43 -43
  131. package/kit/commands/pausar-trabalho.md +37 -37
  132. package/kit/commands/perfil-usuario.md +45 -45
  133. package/kit/commands/pesquisar-fase.md +195 -195
  134. package/kit/commands/planejar-fase.md +67 -67
  135. package/kit/commands/planejar-lacunas.md +33 -33
  136. package/kit/commands/plantar-ideia.md +25 -25
  137. package/kit/commands/progresso.md +24 -24
  138. package/kit/commands/proximo.md +30 -30
  139. package/kit/commands/publicar.md +490 -490
  140. package/kit/commands/rapido.md +35 -35
  141. package/kit/commands/reaplicar-patches.md +124 -124
  142. package/kit/commands/refactor-seguro.md +321 -321
  143. package/kit/commands/relatorio-sessao.md +19 -19
  144. package/kit/commands/remover-fase.md +31 -31
  145. package/kit/commands/remover-workspace.md +26 -26
  146. package/kit/commands/resumo-marco.md +50 -50
  147. package/kit/commands/retomar-trabalho.md +40 -40
  148. package/kit/commands/revisar-backlog.md +60 -60
  149. package/kit/commands/revisar-ui.md +32 -32
  150. package/kit/commands/revisar.md +37 -37
  151. package/kit/commands/saude.md +21 -21
  152. package/kit/commands/setup-notion.md +93 -93
  153. package/kit/commands/storytelling.md +179 -179
  154. package/kit/commands/supabase.md +238 -238
  155. package/kit/commands/sync-main.md +68 -68
  156. package/kit/commands/validar-fase.md +35 -35
  157. package/kit/commands/verificar-tarefas.md +44 -44
  158. package/kit/commands/verificar-trabalho.md +64 -64
  159. package/kit/file-manifest.json +424 -419
  160. package/kit/framework/bin/lib/commands.cjs +959 -959
  161. package/kit/framework/bin/lib/config.cjs +442 -442
  162. package/kit/framework/bin/lib/core.cjs +1230 -1230
  163. package/kit/framework/bin/lib/frontmatter.cjs +336 -336
  164. package/kit/framework/bin/lib/init.cjs +1442 -1442
  165. package/kit/framework/bin/lib/milestone.cjs +252 -252
  166. package/kit/framework/bin/lib/model-profiles.cjs +68 -68
  167. package/kit/framework/bin/lib/phase.cjs +888 -888
  168. package/kit/framework/bin/lib/profile-output.cjs +952 -952
  169. package/kit/framework/bin/lib/profile-pipeline.cjs +539 -539
  170. package/kit/framework/bin/lib/roadmap.cjs +329 -329
  171. package/kit/framework/bin/lib/security.cjs +382 -382
  172. package/kit/framework/bin/lib/state.cjs +1031 -1031
  173. package/kit/framework/bin/lib/template.cjs +222 -222
  174. package/kit/framework/bin/lib/uat.cjs +282 -282
  175. package/kit/framework/bin/lib/verify.cjs +888 -888
  176. package/kit/framework/bin/lib/workstream.cjs +491 -491
  177. package/kit/framework/bin/tools.cjs +918 -918
  178. package/kit/framework/commands/workstreams.md +63 -63
  179. package/kit/framework/references/checkpoints.md +778 -778
  180. package/kit/framework/references/continuation-format.md +249 -249
  181. package/kit/framework/references/decimal-phase-calculation.md +64 -64
  182. package/kit/framework/references/git-integration.md +295 -295
  183. package/kit/framework/references/git-planning-commit.md +38 -38
  184. package/kit/framework/references/model-profile-resolution.md +36 -36
  185. package/kit/framework/references/model-profiles.md +139 -139
  186. package/kit/framework/references/phase-argument-parsing.md +61 -61
  187. package/kit/framework/references/planning-config.md +202 -202
  188. package/kit/framework/references/questioning.md +162 -162
  189. package/kit/framework/references/tdd.md +263 -263
  190. package/kit/framework/references/ui-brand.md +160 -160
  191. package/kit/framework/references/user-profiling.md +657 -657
  192. package/kit/framework/references/verification-patterns.md +612 -612
  193. package/kit/framework/references/workstream-flag.md +58 -58
  194. package/kit/framework/templates/DEBUG.md +164 -164
  195. package/kit/framework/templates/UAT.md +265 -265
  196. package/kit/framework/templates/UI-SPEC.md +100 -100
  197. package/kit/framework/templates/VALIDATION.md +76 -76
  198. package/kit/framework/templates/claude-md.md +122 -122
  199. package/kit/framework/templates/codebase/architecture.md +185 -185
  200. package/kit/framework/templates/codebase/concerns.md +205 -205
  201. package/kit/framework/templates/codebase/conventions.md +204 -204
  202. package/kit/framework/templates/codebase/integrations.md +192 -192
  203. package/kit/framework/templates/codebase/stack.md +158 -158
  204. package/kit/framework/templates/codebase/structure.md +199 -199
  205. package/kit/framework/templates/codebase/testing.md +301 -301
  206. package/kit/framework/templates/config.json +44 -44
  207. package/kit/framework/templates/context.md +352 -352
  208. package/kit/framework/templates/continue-here.md +78 -78
  209. package/kit/framework/templates/copilot-instructions.md +7 -7
  210. package/kit/framework/templates/debug-subagent-prompt.md +91 -91
  211. package/kit/framework/templates/dev-preferences.md +20 -20
  212. package/kit/framework/templates/discovery.md +146 -146
  213. package/kit/framework/templates/discussion-log.md +63 -63
  214. package/kit/framework/templates/milestone-archive.md +123 -123
  215. package/kit/framework/templates/milestone.md +115 -115
  216. package/kit/framework/templates/phase-prompt.md +610 -610
  217. package/kit/framework/templates/planner-subagent-prompt.md +117 -117
  218. package/kit/framework/templates/project.md +186 -186
  219. package/kit/framework/templates/requirements.md +231 -231
  220. package/kit/framework/templates/research-project/ARCHITECTURE.md +204 -204
  221. package/kit/framework/templates/research-project/FEATURES.md +147 -147
  222. package/kit/framework/templates/research-project/PITFALLS.md +200 -200
  223. package/kit/framework/templates/research-project/STACK.md +120 -120
  224. package/kit/framework/templates/research-project/SUMMARY.md +170 -170
  225. package/kit/framework/templates/research.md +419 -419
  226. package/kit/framework/templates/retrospective.md +54 -54
  227. package/kit/framework/templates/roadmap.md +202 -202
  228. package/kit/framework/templates/state.md +176 -176
  229. package/kit/framework/templates/summary-complex.md +59 -59
  230. package/kit/framework/templates/summary-minimal.md +41 -41
  231. package/kit/framework/templates/summary-standard.md +48 -48
  232. package/kit/framework/templates/summary.md +209 -209
  233. package/kit/framework/templates/user-profile.md +146 -146
  234. package/kit/framework/templates/user-setup.md +256 -256
  235. package/kit/framework/templates/verification-report.md +258 -258
  236. package/kit/framework/workflows/add-phase.md +112 -112
  237. package/kit/framework/workflows/add-tests.md +351 -351
  238. package/kit/framework/workflows/add-todo.md +158 -158
  239. package/kit/framework/workflows/audit-milestone.md +340 -340
  240. package/kit/framework/workflows/audit-uat.md +109 -109
  241. package/kit/framework/workflows/autonomous.md +891 -891
  242. package/kit/framework/workflows/check-todos.md +177 -177
  243. package/kit/framework/workflows/cleanup.md +152 -152
  244. package/kit/framework/workflows/complete-milestone.md +696 -696
  245. package/kit/framework/workflows/diagnose-issues.md +231 -231
  246. package/kit/framework/workflows/discovery-phase.md +289 -289
  247. package/kit/framework/workflows/discuss-phase-assumptions.md +653 -653
  248. package/kit/framework/workflows/discuss-phase.md +784 -784
  249. package/kit/framework/workflows/do.md +104 -104
  250. package/kit/framework/workflows/execute-phase.md +838 -838
  251. package/kit/framework/workflows/execute-plan.md +510 -510
  252. package/kit/framework/workflows/fast.md +102 -102
  253. package/kit/framework/workflows/forensics.md +265 -265
  254. package/kit/framework/workflows/health.md +181 -181
  255. package/kit/framework/workflows/help.md +619 -619
  256. package/kit/framework/workflows/insert-phase.md +130 -130
  257. package/kit/framework/workflows/list-phase-assumptions.md +178 -178
  258. package/kit/framework/workflows/list-workspaces.md +56 -56
  259. package/kit/framework/workflows/manager.md +362 -362
  260. package/kit/framework/workflows/map-codebase.md +377 -377
  261. package/kit/framework/workflows/milestone-summary.md +223 -223
  262. package/kit/framework/workflows/new-milestone.md +486 -486
  263. package/kit/framework/workflows/new-project.md +1159 -1159
  264. package/kit/framework/workflows/new-workspace.md +237 -237
  265. package/kit/framework/workflows/next.md +97 -97
  266. package/kit/framework/workflows/node-repair.md +92 -92
  267. package/kit/framework/workflows/note.md +156 -156
  268. package/kit/framework/workflows/pause-work.md +176 -176
  269. package/kit/framework/workflows/plan-milestone-gaps.md +273 -273
  270. package/kit/framework/workflows/plan-phase.md +765 -765
  271. package/kit/framework/workflows/plant-seed.md +169 -169
  272. package/kit/framework/workflows/pr-branch.md +129 -129
  273. package/kit/framework/workflows/profile-user.md +450 -450
  274. package/kit/framework/workflows/progress.md +507 -507
  275. package/kit/framework/workflows/quick.md +757 -757
  276. package/kit/framework/workflows/remove-phase.md +155 -155
  277. package/kit/framework/workflows/remove-workspace.md +90 -90
  278. package/kit/framework/workflows/research-phase.md +82 -82
  279. package/kit/framework/workflows/resume-project.md +326 -326
  280. package/kit/framework/workflows/review.md +228 -228
  281. package/kit/framework/workflows/session-report.md +146 -146
  282. package/kit/framework/workflows/settings.md +283 -283
  283. package/kit/framework/workflows/ship.md +228 -228
  284. package/kit/framework/workflows/stats.md +60 -60
  285. package/kit/framework/workflows/transition.md +671 -671
  286. package/kit/framework/workflows/ui-phase.md +302 -302
  287. package/kit/framework/workflows/ui-review.md +165 -165
  288. package/kit/framework/workflows/update.md +323 -323
  289. package/kit/framework/workflows/validate-phase.md +174 -174
  290. package/kit/framework/workflows/verify-phase.md +252 -252
  291. package/kit/framework/workflows/verify-work.md +637 -637
  292. package/kit/hooks/check-update.js +118 -118
  293. package/kit/hooks/context-monitor.js +163 -163
  294. package/kit/hooks/kit-attribution-reminder.cjs +92 -92
  295. package/kit/hooks/kit-router.cjs +137 -137
  296. package/kit/hooks/prompt-guard.js +103 -103
  297. package/kit/hooks/statusline.js +125 -125
  298. package/kit/hooks/workflow-guard.js +101 -101
  299. package/kit/settings.json +45 -45
  300. package/kit/skills/ai-prompt-characterization/SKILL.md +335 -335
  301. package/kit/skills/armadilhas-sistemas-distribuidos/SKILL.md +447 -447
  302. package/kit/skills/audit-log-multi-tenant/SKILL.md +340 -340
  303. package/kit/skills/b2b-saas-architecture/SKILL.md +300 -300
  304. package/kit/skills/consistencia-leitura-replica/SKILL.md +385 -385
  305. package/kit/skills/crm-lead-pipeline-patterns/SKILL.md +343 -343
  306. package/kit/skills/dynamic-workflow-authoring/SKILL.md +223 -0
  307. package/kit/skills/escolha-modelo-consistencia/SKILL.md +494 -494
  308. package/kit/skills/evolucao-schema-compativel/SKILL.md +448 -448
  309. package/kit/skills/evolution-go-whatsapp-integration/SKILL.md +322 -322
  310. package/kit/skills/example-skill/SKILL.md +42 -42
  311. package/kit/skills/legacy-api-only-applications/SKILL.md +358 -358
  312. package/kit/skills/legacy-characterization-tests/SKILL.md +330 -330
  313. package/kit/skills/legacy-effect-analysis/SKILL.md +331 -331
  314. package/kit/skills/legacy-extract-class/SKILL.md +203 -203
  315. package/kit/skills/legacy-programming-by-difference/SKILL.md +252 -252
  316. package/kit/skills/legacy-seams-and-test-harness/SKILL.md +460 -460
  317. package/kit/skills/legacy-shotgun-surgery/SKILL.md +286 -286
  318. package/kit/skills/legacy-sprout-wrap-techniques/SKILL.md +434 -434
  319. package/kit/skills/legacy-storytelling-naked-crc/SKILL.md +270 -270
  320. package/kit/skills/lgpd-multi-tenant-compliance/SKILL.md +340 -340
  321. package/kit/skills/member-invite-flow/SKILL.md +305 -305
  322. package/kit/skills/member-management-react-shadcn/SKILL.md +328 -328
  323. package/kit/skills/multi-tenant-performance-scaling/SKILL.md +316 -316
  324. package/kit/skills/multi-tenant-rls-hierarchy/SKILL.md +342 -342
  325. package/kit/skills/org-onboarding-flow/SKILL.md +257 -257
  326. package/kit/skills/org-switcher-react-pattern/SKILL.md +349 -349
  327. package/kit/skills/permission-gate-react-pattern/SKILL.md +271 -271
  328. package/kit/skills/postgres-isolamento-concorrencia/SKILL.md +552 -552
  329. package/kit/skills/pre-refactor-characterization/SKILL.md +421 -421
  330. package/kit/skills/rbac-permissions-matrix-supabase/SKILL.md +338 -338
  331. package/kit/skills/streams-eventos-cdc/SKILL.md +711 -711
  332. package/kit/skills/supabase-auth-hardening/SKILL.md +674 -674
  333. package/kit/skills/supabase-auth-hooks/SKILL.md +875 -875
  334. package/kit/skills/supabase-auth-methods/SKILL.md +486 -486
  335. package/kit/skills/supabase-auth-sessions/SKILL.md +579 -579
  336. package/kit/skills/supabase-auth-ssr/SKILL.md +306 -306
  337. package/kit/skills/supabase-branching-workflow/SKILL.md +544 -544
  338. package/kit/skills/supabase-ci-cd-github-actions/SKILL.md +880 -880
  339. package/kit/skills/supabase-column-level-security/SKILL.md +426 -426
  340. package/kit/skills/supabase-config-toml-remotes/SKILL.md +807 -807
  341. package/kit/skills/supabase-custom-claims-rbac/SKILL.md +472 -472
  342. package/kit/skills/supabase-edge-functions/SKILL.md +330 -330
  343. package/kit/skills/supabase-edge-functions-auth/SKILL.md +309 -309
  344. package/kit/skills/supabase-edge-functions-limits/SKILL.md +302 -302
  345. package/kit/skills/supabase-edge-functions-mcp-server/SKILL.md +279 -279
  346. package/kit/skills/supabase-edge-functions-testing/SKILL.md +277 -277
  347. package/kit/skills/supabase-edge-runtime-builtins/SKILL.md +357 -357
  348. package/kit/skills/supabase-enterprise-sso-saml/SKILL.md +545 -545
  349. package/kit/skills/supabase-jwt-signing-keys/SKILL.md +399 -399
  350. package/kit/skills/supabase-mfa/SKILL.md +488 -488
  351. package/kit/skills/supabase-migration-repair/SKILL.md +823 -823
  352. package/kit/skills/supabase-migrations/SKILL.md +297 -297
  353. package/kit/skills/supabase-oauth-server/SKILL.md +537 -537
  354. package/kit/skills/supabase-pgtap-testing/SKILL.md +1053 -1053
  355. package/kit/skills/supabase-postgres-roles/SKILL.md +392 -392
  356. package/kit/skills/supabase-realtime/SKILL.md +460 -460
  357. package/kit/skills/supabase-rls-defense-in-depth/SKILL.md +418 -418
  358. package/kit/skills/supabase-rls-policies/SKILL.md +635 -635
  359. package/kit/skills/supabase-social-oauth/SKILL.md +480 -480
  360. package/kit/skills/supabase-third-party-auth/SKILL.md +450 -450
  361. package/kit/skills/super-admin-platform-pattern/SKILL.md +326 -326
  362. package/kit/skills/tenant-quente-mitigacao/SKILL.md +605 -605
  363. package/kit/skills/ui-anti-padroes-ia/SKILL.md +261 -261
  364. package/kit/skills/ui-contexto-produto/SKILL.md +248 -248
  365. package/kit/skills/ui-cor-estrategia/SKILL.md +213 -213
  366. package/kit/skills/ui-critica-auditoria/SKILL.md +260 -260
  367. package/kit/skills/ui-motion-funcional/SKILL.md +264 -264
  368. package/kit/skills/ui-ritmo-espacial/SKILL.md +259 -259
  369. package/kit/skills/ui-tipografia/SKILL.md +211 -211
  370. package/kit/skills/whatsapp-conversation-state-machine/SKILL.md +287 -287
  371. package/kit/workflows/auditar-observabilidade-cobertura.workflow.js +250 -0
  372. package/package.json +65 -63
  373. package/src/core/kit.js +333 -216
  374. package/src/core/reflect.js +247 -247
  375. package/src/core/registry.js +123 -112
  376. package/src/core/reverse-sync.js +448 -372
  377. package/src/core/sync.js +477 -437
  378. package/src/core/watch.js +121 -121
  379. package/src/mcp-server/index.js +794 -794
@@ -1,838 +1,838 @@
1
- <purpose>
2
- Executar todos os planos de uma fase usando execução paralela em ondas. O orquestrador permanece enxuto — delega execução de planos para subagentes.
3
- </purpose>
4
-
5
- <core_principle>
6
- O orquestrador coordena, não executa. Cada subagente carrega o contexto completo do execute-plan. Orquestrador: descobrir planos → analisar deps → agrupar em ondas → criar agentes → lidar com checkpoints → coletar resultados.
7
- </core_principle>
8
-
9
- <runtime_compatibility>
10
- **Criação de subagentes é específica do runtime:**
11
- - **Claude Code:** Usa `Task(subagent_type="executor", ...)` — bloqueia até concluir, retorna resultado
12
- - **Copilot:** Criação de subagentes não retorna sinais de conclusão de forma confiável. **Padrão é execução sequencial inline**: ler e seguir execute-plan.md diretamente para cada plano em vez de criar agentes paralelos. Só tente paralelismo se o usuário solicitar explicitamente — e nesse caso, use o fallback de spot-check no passo 3 para detectar conclusão.
13
- - **Outros runtimes:** Se a ferramenta `Task`/`task` não estiver disponível, use execução sequencial inline como fallback. Verifique disponibilidade da ferramenta em runtime em vez de assumir pelo nome do runtime.
14
-
15
- **Regra de fallback:** Se um agente criado conclui seu trabalho (commits visíveis, SUMMARY.md existe) mas o orquestrador nunca recebe o sinal de conclusão, tratar como bem-sucedido com base em spot-checks e continuar para próxima onda/plano. Nunca bloquear indefinidamente aguardando sinal — sempre verificar via filesystem e estado do git.
16
- </runtime_compatibility>
17
-
18
- <required_reading>
19
- Ler STATE.md antes de qualquer operação para carregar contexto do projeto.
20
- </required_reading>
21
-
22
- <available_agent_types>
23
- Tipos de subagentes framework válidos registrados em .claude/agents/ (ou equivalente para seu runtime).
24
- Sempre use o nome exato desta lista — não use 'general-purpose' ou outros tipos embutidos como fallback:
25
-
26
- - executor — Executa tarefas do plano, commits, cria SUMMARY.md
27
- - verifier — Verifica conclusão de fase, verifica quality gates
28
- - planner — Cria planos detalhados a partir do escopo da fase
29
- - phase-researcher — Pesquisa abordagens técnicas para uma fase
30
- - plan-checker — Revisa qualidade do plano antes da execução
31
- - debugger — Diagnostica e corrige problemas
32
- - codebase-mapper — Mapeia estrutura do projeto e dependências
33
- - integration-checker — Verifica integração entre fases
34
- - nyquist-auditor — Valida cobertura de verificação
35
- - ui-researcher — Pesquisa abordagens de UI/UX
36
- - ui-checker — Revisa qualidade de implementação de UI
37
- - ui-auditor — Audita UI em relação aos requisitos de design
38
- </available_agent_types>
39
-
40
- <process>
41
-
42
- <step name="parse_args" priority="first">
43
- Analisar `$ARGUMENTS` antes de carregar qualquer contexto:
44
-
45
- - Primeiro token posicional → `PHASE_ARG`
46
- - `--wave N` opcional → `WAVE_FILTER`
47
- - `--gaps-only` opcional mantém seu significado atual
48
-
49
- Se `--wave` estiver ausente, preservar o comportamento atual de executar todas as ondas incompletas na fase.
50
- </step>
51
-
52
- <step name="initialize" priority="first">
53
- Carregar todo o contexto em uma chamada:
54
-
55
- ```bash
56
- INIT=$(node "./.claude/framework/bin/tools.cjs" init execute-phase "${PHASE_ARG}")
57
- if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
58
- AGENT_SKILLS=$(node "./.claude/framework/bin/tools.cjs" agent-skills executor 2>/dev/null)
59
- ```
60
-
61
- Analisar JSON para: `executor_model`, `verifier_model`, `commit_docs`, `parallelization`, `branching_strategy`, `branch_name`, `phase_found`, `phase_dir`, `phase_number`, `phase_name`, `phase_slug`, `plans`, `incomplete_plans`, `plan_count`, `incomplete_count`, `state_exists`, `roadmap_exists`, `phase_req_ids`.
62
-
63
- **Se `phase_found` for false:** Erro — diretório de fase não encontrado.
64
- **Se `plan_count` for 0:** Erro — nenhum plano encontrado na fase.
65
- **Se `state_exists` for false mas `.planning/` existir:** Oferecer reconstruir ou continuar.
66
-
67
- Quando `parallelization` for false, planos dentro de uma onda executam sequencialmente.
68
-
69
- **Detecção de runtime para Copilot:**
70
- Verificar se o runtime atual é Copilot testando o padrão de agente `@executor`
71
- ou ausência da API de subagente `Task()`. Se rodando no Copilot, forçar execução sequencial inline
72
- independente da configuração `parallelization` — os sinais de conclusão de subagentes do Copilot
73
- são não confiáveis (ver `<runtime_compatibility>`). Definir `COPILOT_SEQUENTIAL=true`
74
- internamente e pular o passo `execute_waves` em favor do caminho inline do `check_interactive_mode`
75
- para cada plano.
76
-
77
- **OBRIGATÓRIO — Sincronizar flag de cadeia com intenção.** Se o usuário invocou manualmente (sem `--auto`), limpar a flag de cadeia efêmera de qualquer cadeia `--auto` anterior interrompida. Isso impede que `_auto_chain_active: true` obsoleto cause avanço automático indesejado. Isso NÃO toca em `workflow.auto_advance` (preferência persistente do usuário). Você DEVE executar este bloco bash antes de qualquer leitura de config:
78
- ```bash
79
- # OBRIGATÓRIO: impede auto-cadeia obsoleta de execuções --auto anteriores
80
- if [[ ! "$ARGUMENTS" =~ --auto ]]; then
81
- node "./.claude/framework/bin/tools.cjs" config-set workflow._auto_chain_active false 2>/dev/null
82
- fi
83
- ```
84
- </step>
85
-
86
- <step name="check_interactive_mode">
87
- **Analisar flag `--interactive` de $ARGUMENTS.**
88
-
89
- **Se flag `--interactive` presente:** Alternar para modo de execução interativo.
90
-
91
- Modo interativo executa planos sequencialmente **inline** (sem criação de subagentes) com
92
- checkpoints do usuário entre tarefas. O usuário pode revisar, modificar ou redirecionar o trabalho a qualquer momento.
93
-
94
- **Fluxo de execução interativo:**
95
-
96
- 1. Carregar inventário de planos normalmente (discover_and_group_plans)
97
- 2. Para cada plano (sequencialmente, ignorando agrupamento de ondas):
98
-
99
- a. **Apresentar o plano ao usuário:**
100
- ```
101
- ## Plano {plan_id}: {plan_name}
102
-
103
- Objetivo: {do arquivo do plano}
104
- Tarefas: {task_count}
105
-
106
- Opções:
107
- - Executar (prosseguir com todas as tarefas)
108
- - Revisar primeiro (mostrar detalhamento de tarefas antes de começar)
109
- - Pular (ir para próximo plano)
110
- - Parar (encerrar execução, salvar progresso)
111
- ```
112
-
113
- b. **Se "Revisar primeiro":** Ler e exibir o arquivo do plano completo. Perguntar novamente: Executar, Modificar, Pular.
114
-
115
- c. **Se "Executar":** Ler e seguir `./.claude/framework/workflows/execute-plan.md` **inline**
116
- (NÃO criar subagente). Executar tarefas uma por vez.
117
-
118
- d. **Após cada tarefa:** Pausar brevemente. Se o usuário intervir (digitar qualquer coisa), parar e resolver
119
- o feedback antes de continuar. Caso contrário, prosseguir para próxima tarefa.
120
-
121
- e. **Após plano concluído:** Mostrar resultados, commitar, criar SUMMARY.md, então apresentar próximo plano.
122
-
123
- 3. Após todos os planos: prosseguir para verificação (mesmo que modo normal).
124
-
125
- **Benefícios do modo interativo:**
126
- - Sem overhead de subagente — uso de tokens dramaticamente menor
127
- - Usuário detecta erros cedo — economiza ciclos de verificação custosos
128
- - Mantém estrutura de planejamento/rastreamento do framework
129
- - Melhor para: fases pequenas, correções de bugs, lacunas de verificação, aprendendo framework
130
-
131
- **Pular para passo handle_branching** (planos interativos executam inline após agrupamento).
132
- </step>
133
-
134
- <step name="handle_branching">
135
- Verificar `branching_strategy` do init:
136
-
137
- **"none":** Pular, continuar no branch atual.
138
-
139
- **"phase" ou "milestone":** Usar `branch_name` pré-computado do init:
140
- ```bash
141
- git checkout -b "$BRANCH_NAME" 2>/dev/null || git checkout "$BRANCH_NAME"
142
- ```
143
-
144
- Todos os commits subsequentes vão para este branch. Usuário gerencia o merge.
145
- </step>
146
-
147
- <step name="validate_phase">
148
- Do JSON do init: `phase_dir`, `plan_count`, `incomplete_count`.
149
-
150
- Reportar: "Encontrados {plan_count} planos em {phase_dir} ({incomplete_count} incompletos)"
151
-
152
- **Atualizar STATE.md para início de fase:**
153
- ```bash
154
- node "./.claude/framework/bin/tools.cjs" state begin-phase --phase "${PHASE_NUMBER}" --name "${PHASE_NAME}" --plans "${PLAN_COUNT}"
155
- ```
156
- Isso atualiza Status, Última Atividade, Foco Atual, Posição Atual e contagens de planos no STATE.md para que o frontmatter e o texto do corpo reflitam a fase ativa imediatamente.
157
- </step>
158
-
159
- <step name="discover_and_group_plans">
160
- Carregar inventário de planos com agrupamento de ondas em uma chamada:
161
-
162
- ```bash
163
- PLAN_INDEX=$(node "./.claude/framework/bin/tools.cjs" phase-plan-index "${PHASE_NUMBER}")
164
- ```
165
-
166
- Analisar JSON para: `phase`, `plans[]` (cada um com `id`, `wave`, `autonomous`, `objective`, `files_modified`, `task_count`, `has_summary`), `waves` (mapa de número de onda → IDs de plano), `incomplete`, `has_checkpoints`.
167
-
168
- **Filtragem:** Pular planos onde `has_summary: true`. Se `--gaps-only`: também pular planos não gap_closure. Se `WAVE_FILTER` definido: também pular planos cujo `wave` não seja igual a `WAVE_FILTER`.
169
-
170
- **Verificação de segurança de onda:** Se `WAVE_FILTER` estiver definido e ainda houver planos incompletos em qualquer onda anterior que correspondam ao modo de execução atual, PARAR e dizer ao usuário para terminar as ondas anteriores primeiro. Não deixar Onda 2+ executar enquanto planos de ondas prerequisito anteriores permanecerem incompletos.
171
-
172
- Se todos filtrados: "Nenhum plano incompleto correspondente" → sair.
173
-
174
- Reportar:
175
- ```
176
- ## Plano de Execução
177
-
178
- **Fase {X}: {Nome}** — {total_plans} planos correspondentes em {wave_count} onda(s)
179
-
180
- {Se WAVE_FILTER definido: `Filtro de onda ativo: executando apenas Onda {WAVE_FILTER}`.}
181
-
182
- | Onda | Planos | O que constrói |
183
- |------|--------|----------------|
184
- | 1 | 01-01, 01-02 | {dos objetivos dos planos, 3-8 palavras} |
185
- | 2 | 01-03 | ... |
186
- ```
187
- </step>
188
-
189
- <step name="execute_waves">
190
- Executar cada onda selecionada em sequência. Dentro de uma onda: paralelo se `PARALLELIZATION=true`, sequencial se `false`.
191
-
192
- **Para cada onda:**
193
-
194
- 1. **Descrever o que está sendo construído (ANTES de criar agentes):**
195
-
196
- Ler o `<objective>` de cada plano. Extrair o que está sendo construído e por quê.
197
-
198
- ```
199
- ---
200
- ## Onda {N}
201
-
202
- **{ID do Plano}: {Nome do Plano}**
203
- {2-3 frases: o que constrói, abordagem técnica, por que importa}
204
-
205
- Criando {count} agente(s)...
206
- ---
207
- ```
208
-
209
- - Ruim: "Executando plano de geração de terreno"
210
- - Bom: "Gerador de terreno procedural usando ruído Perlin — cria mapas de altura, zonas de bioma e malhas de colisão. Necessário antes que a física de veículos possa interagir com o solo."
211
-
212
- 2. **Criar agentes executores:**
213
-
214
- Passar apenas caminhos — executores leem arquivos com seu contexto fresco.
215
- Para modelos 200k, isso mantém o contexto do orquestrador enxuto (~10-15%).
216
- Para modelos 1M+ (Opus 4.6, Sonnet 4.6), contexto mais rico pode ser passado diretamente.
217
-
218
- ```
219
- Task(
220
- subagent_type="executor",
221
- model="{executor_model}",
222
- isolation="worktree",
223
- prompt="
224
- <objective>
225
- Execute plan {plan_number} of phase {phase_number}-{phase_name}.
226
- Commit each task atomically. Create SUMMARY.md. Update STATE.md and ROADMAP.md.
227
- </objective>
228
-
229
- <parallel_execution>
230
- You are running as a PARALLEL executor agent. Use --no-verify on all git
231
- commits to avoid pre-commit hook contention with other agents. The
232
- orchestrator validates hooks once after all agents complete.
233
- For tools commits: add --no-verify flag.
234
- For direct git commits: use git commit --no-verify -m "..."
235
- </parallel_execution>
236
-
237
- <execution_context>
238
- @./.claude/framework/workflows/execute-plan.md
239
- @./.claude/framework/templates/summary.md
240
- @./.claude/framework/references/checkpoints.md
241
- @./.claude/framework/references/tdd.md
242
- </execution_context>
243
-
244
- <files_to_read>
245
- Read these files at execution start using the Read tool:
246
- - {phase_dir}/{plan_file} (Plan)
247
- - .planning/PROJECT.md (Project context — core value, requirements, evolution rules)
248
- - .planning/STATE.md (State)
249
- - .planning/config.json (Config, if exists)
250
- - ./CLAUDE.md (Project instructions, if exists — follow project-specific guidelines and coding conventions)
251
- - .claude/skills/ or .agents/skills/ (Project skills, if either exists — list skills, read SKILL.md for each, follow relevant rules during implementation)
252
- </files_to_read>
253
-
254
- ${AGENT_SKILLS}
255
-
256
- <mcp_tools>
257
- If CLAUDE.md or project instructions reference MCP tools (e.g. jCodeMunch, context7,
258
- or other MCP servers), prefer those tools over Grep/Glob for code navigation when available.
259
- MCP tools often save significant tokens by providing structured code indexes.
260
- Check tool availability first — if MCP tools are not accessible, fall back to Grep/Glob.
261
- </mcp_tools>
262
-
263
- <success_criteria>
264
- - [ ] All tasks executed
265
- - [ ] Each task committed individually
266
- - [ ] SUMMARY.md created in plan directory
267
- - [ ] STATE.md updated with position and decisions
268
- - [ ] ROADMAP.md updated with plan progress (via `roadmap update-plan-progress`)
269
- </success_criteria>
270
- "
271
- )
272
- ```
273
-
274
- 3. **Aguardar todos os agentes da onda concluírem.**
275
-
276
- **Fallback de sinal de conclusão (Copilot e runtimes onde Task() pode não retornar):**
277
-
278
- Se um agente criado não retornar sinal de conclusão mas parecer ter terminado
279
- seu trabalho, NÃO bloquear indefinidamente. Em vez disso, verificar conclusão via spot-checks:
280
-
281
- ```bash
282
- # Para cada plano nesta onda, verificar se o executor terminou:
283
- SUMMARY_EXISTS=$(test -f "{phase_dir}/{plan_number}-{plan_padded}-SUMMARY.md" && echo "true" || echo "false")
284
- COMMITS_FOUND=$(git log --oneline --all --grep="{phase_number}-{plan_padded}" --since="1 hour ago" | head -1)
285
- ```
286
-
287
- **Se SUMMARY.md existir E commits forem encontrados:** O agente concluiu com sucesso —
288
- tratar como concluído e prosseguir para passo 4. Logar: `"✓ {Plan ID} concluído (verificado via spot-check — sinal de conclusão não recebido)"`
289
-
290
- **Se SUMMARY.md NÃO existir após espera razoável:** O agente pode ainda estar
291
- rodando ou pode ter falhado silenciosamente. Verificar `git log --oneline -5` por
292
- atividade recente. Se commits ainda aparecerem, aguardar mais. Se sem atividade, reportar
293
- o plano como falhado e encaminhar para o manipulador de falhas no passo 5.
294
-
295
- **Este fallback se aplica automaticamente a todos os runtimes.** Task() do Claude Code normalmente
296
- retorna de forma síncrona, mas o fallback garante resiliência se não retornar.
297
-
298
- 4. **Validação de hook pós-onda (somente modo paralelo):**
299
-
300
- Quando agentes commitaram com `--no-verify`, executar hooks pre-commit uma vez após a onda:
301
- ```bash
302
- # Executar hooks pre-commit do projeto no estado atual
303
- git diff --cached --quiet || git stash # fazer stash de mudanças não staged
304
- git hook run pre-commit 2>&1 || echo "⚠ Hooks pre-commit falharam — revisar antes de continuar"
305
- ```
306
- Se hooks falharem: reportar a falha e perguntar "Corrigir problemas de hook agora?" ou "Continuar para próxima onda?"
307
-
308
- 5. **Reportar conclusão — verificar claims via spot-check primeiro:**
309
-
310
- Para cada SUMMARY.md:
311
- - Verificar se os primeiros 2 arquivos de `key-files.created` existem no disco
312
- - Verificar se `git log --oneline --all --grep="{phase}-{plan}"` retorna ≥1 commit
313
- - Verificar marcador `## Self-Check: FAILED`
314
-
315
- Se QUALQUER spot-check falhar: reportar qual plano falhou, encaminhar para manipulador de falhas — perguntar "Tentar plano novamente?" ou "Continuar com ondas restantes?"
316
-
317
- Se passar:
318
- ```
319
- ---
320
- ## Onda {N} Concluída
321
-
322
- **{ID do Plano}: {Nome do Plano}**
323
- {O que foi construído — do SUMMARY.md}
324
- {Desvios notáveis, se houver}
325
-
326
- {Se mais ondas: o que isso habilita para a próxima onda}
327
- ---
328
- ```
329
-
330
- - Ruim: "Onda 2 concluída. Prosseguindo para Onda 3."
331
- - Bom: "Sistema de terreno concluído — 3 tipos de bioma, texturização baseada em altura, malhas de colisão de física. Física de veículos (Onda 3) agora pode referenciar superfícies do solo."
332
-
333
- 5. **Tratar falhas:**
334
-
335
- **Bug conhecido do Claude Code (classifyHandoffIfNeeded):** Se um agente reportar "falhado" com erro contendo `classifyHandoffIfNeeded is not defined`, este é um bug de runtime do Claude Code — não um problema do framework ou do agente. O erro dispara no manipulador de conclusão APÓS todas as chamadas de ferramenta terminarem. Neste caso: executar os mesmos spot-checks do passo 4 (SUMMARY.md existe, commits presentes, sem Self-Check: FAILED). Se spot-checks PASSAREM → tratar como **bem-sucedido**. Se spot-checks FALHAREM → tratar como falha real abaixo.
336
-
337
- Para falhas reais: reportar qual plano falhou → perguntar "Continuar?" ou "Parar?" → se continuar, planos dependentes podem também falhar. Se parar, relatório de conclusão parcial.
338
-
339
- 5b. **Verificação de dependência pré-onda (ondas 2+ apenas):**
340
-
341
- Antes de criar onda N+1, para cada plano na onda seguinte:
342
- ```bash
343
- node "./.claude/framework/bin/tools.cjs" verify key-links {phase_dir}/{plan}-PLAN.md
344
- ```
345
-
346
- Se qualquer key-link de artefato de onda ANTERIOR falhar na verificação:
347
-
348
- ## Lacuna de Conexão Entre Planos
349
-
350
- | Plano | Link | De | Padrão Esperado | Status |
351
- |-------|------|----|-----------------|--------|
352
- | {plan} | {via} | {from} | {pattern} | NÃO ENCONTRADO |
353
-
354
- Artefatos da Onda {N} podem não estar corretamente conectados. Opções:
355
- 1. Investigar e corrigir antes de continuar
356
- 2. Continuar (pode causar falhas em cascata na onda {N+1})
357
-
358
- Key-links referenciando arquivos na onda ATUAL (próxima) são ignorados.
359
-
360
- 6. **Executar planos de checkpoint entre ondas** — ver `<checkpoint_handling>`.
361
-
362
- 7. **Prosseguir para próxima onda.**
363
- </step>
364
-
365
- <step name="checkpoint_handling">
366
- Planos com `autonomous: false` requerem interação do usuário.
367
-
368
- **Tratamento de checkpoint em modo automático:**
369
-
370
- Ler config de avanço automático (flag de cadeia + preferência do usuário):
371
- ```bash
372
- AUTO_CHAIN=$(node "./.claude/framework/bin/tools.cjs" config-get workflow._auto_chain_active 2>/dev/null || echo "false")
373
- AUTO_CFG=$(node "./.claude/framework/bin/tools.cjs" config-get workflow.auto_advance 2>/dev/null || echo "false")
374
- ```
375
-
376
- Quando o executor retorna um checkpoint E (`AUTO_CHAIN` é `"true"` OU `AUTO_CFG` é `"true"`):
377
- - **human-verify** → Criar agente de continuação automaticamente com `{user_response}` = `"approved"`. Logar `⚡ Checkpoint aprovado automaticamente`.
378
- - **decision** → Criar agente de continuação automaticamente com `{user_response}` = primeira opção dos detalhes do checkpoint. Logar `⚡ Selecionado automaticamente: [opção]`.
379
- - **human-action** → Apresentar ao usuário (comportamento existente abaixo). Gates de autenticação não podem ser automatizados.
380
-
381
- **Fluxo padrão (não modo automático, ou tipo human-action):**
382
-
383
- 1. Criar agente para plano de checkpoint
384
- 2. Agente roda até tarefa de checkpoint ou gate de autenticação → retorna estado estruturado
385
- 3. Retorno do agente inclui: tabela de tarefas concluídas, tarefa atual + bloqueador, tipo/detalhes do checkpoint, o que está aguardando
386
- 4. **Apresentar ao usuário:**
387
- ```
388
- ## Checkpoint: [Tipo]
389
-
390
- **Plano:** 03-03 Layout do Dashboard
391
- **Progresso:** 2/3 tarefas concluídas
392
-
393
- [Detalhes do Checkpoint do retorno do agente]
394
- [Seção Aguardando do retorno do agente]
395
- ```
396
- 5. Usuário responde: "approved"/"done" | descrição de problema | seleção de decisão
397
- 6. **Criar agente de continuação (NÃO retomar)** usando template continuation-prompt.md:
398
- - `{completed_tasks_table}`: Do retorno do checkpoint
399
- - `{resume_task_number}` + `{resume_task_name}`: Tarefa atual
400
- - `{user_response}`: O que o usuário forneceu
401
- - `{resume_instructions}`: Baseado no tipo de checkpoint
402
- 7. Agente de continuação verifica commits anteriores, continua do ponto de retomada
403
- 8. Repetir até plano concluir ou usuário parar
404
-
405
- **Por que agente fresco, não retomada:** Retomada depende de serialização interna que quebra com chamadas de ferramenta paralelas. Agentes frescos com estado explícito são mais confiáveis.
406
-
407
- **Checkpoints em ondas paralelas:** Agente pausa e retorna enquanto outros agentes paralelos podem concluir. Apresentar checkpoint, criar continuação, aguardar todos antes da próxima onda.
408
- </step>
409
-
410
- <step name="aggregate_results">
411
- Após todas as ondas:
412
-
413
- ```markdown
414
- ## Fase {X}: {Nome} — Execução Concluída
415
-
416
- **Ondas:** {N} | **Planos:** {M}/{total} concluídos
417
-
418
- | Onda | Planos | Status |
419
- |------|--------|--------|
420
- | 1 | plan-01, plan-02 | ✓ Concluído |
421
- | CP | plan-03 | ✓ Verificado |
422
- | 2 | plan-04 | ✓ Concluído |
423
-
424
- ### Detalhes dos Planos
425
- 1. **03-01**: [one-liner do SUMMARY.md]
426
- 2. **03-02**: [one-liner do SUMMARY.md]
427
-
428
- ### Problemas Encontrados
429
- [Agregar dos SUMMARYs, ou "Nenhum"]
430
- ```
431
- </step>
432
-
433
- <step name="handle_partial_wave_execution">
434
- Se `WAVE_FILTER` foi usado, re-executar descoberta de planos após execução:
435
-
436
- ```bash
437
- POST_PLAN_INDEX=$(node "./.claude/framework/bin/tools.cjs" phase-plan-index "${PHASE_NUMBER}")
438
- ```
439
-
440
- Aplicar as mesmas regras de filtragem "incompleto" de antes:
441
- - ignorar planos com `has_summary: true`
442
- - se `--gaps-only`, considerar apenas planos `gap_closure: true`
443
-
444
- **Se planos incompletos ainda restarem em qualquer lugar da fase:**
445
- - PARAR aqui
446
- - NÃO executar verificação de fase
447
- - NÃO marcar fase como completa no ROADMAP/STATE
448
- - Apresentar:
449
-
450
- ```markdown
451
- ## Onda {WAVE_FILTER} Concluída
452
-
453
- Onda selecionada terminou com sucesso. Esta fase ainda tem planos incompletos, portanto verificação em nível de fase e conclusão foram intencionalmente puladas.
454
-
455
- /executar-fase {phase} ${WS} # Continuar ondas restantes
456
- /executar-fase {phase} --wave {next} ${WS} # Executar a próxima onda explicitamente
457
- ```
458
-
459
- **Se nenhum plano incompleto restar após a onda selecionada terminar:**
460
- - continuar com o fluxo normal de verificação e conclusão em nível de fase abaixo
461
- - isso significa que a onda selecionada foi o último trabalho restante na fase
462
- </step>
463
-
464
- <step name="close_parent_artifacts">
465
- **Somente para fases decimais/polish (padrão X.Y):** Fechar o ciclo de feedback resolvendo artefatos UAT e debug do pai.
466
-
467
- **Pular se** o número da fase não tiver decimal (ex: `3`, `04`) — aplica-se apenas a fases de gap-closure como `4.1`, `03.1`.
468
-
469
- **1. Detectar fase decimal e derivar pai:**
470
- ```bash
471
- # Verificar se phase_number contém um decimal
472
- if [[ "$PHASE_NUMBER" == *.* ]]; then
473
- PARENT_PHASE="${PHASE_NUMBER%%.*}"
474
- fi
475
- ```
476
-
477
- **2. Encontrar arquivo UAT do pai:**
478
- ```bash
479
- PARENT_INFO=$(node "./.claude/framework/bin/tools.cjs" find-phase "${PARENT_PHASE}" --raw)
480
- # Extrair diretório do JSON PARENT_INFO, então encontrar arquivo UAT nesse diretório
481
- ```
482
-
483
- **Se nenhum UAT pai encontrado:** Pular este passo (gap-closure pode ter sido acionado por VERIFICATION.md em vez disso).
484
-
485
- **3. Atualizar status de lacunas do UAT:**
486
-
487
- Ler seção `## Gaps` do arquivo UAT pai. Para cada entrada de lacuna com `status: failed`:
488
- - Atualizar para `status: resolved`
489
-
490
- **4. Atualizar frontmatter do UAT:**
491
-
492
- Se todas as lacunas agora tiverem `status: resolved`:
493
- - Atualizar frontmatter `status: diagnosed` → `status: resolved`
494
- - Atualizar timestamp `updated:` do frontmatter
495
-
496
- **5. Resolver sessões de debug referenciadas:**
497
-
498
- Para cada lacuna que tiver campo `debug_session:`:
499
- - Ler o arquivo de sessão de debug
500
- - Atualizar frontmatter `status:` → `resolved`
501
- - Atualizar timestamp `updated:` do frontmatter
502
- - Mover para diretório resolvido:
503
- ```bash
504
- mkdir -p .planning/debug/resolved
505
- mv .planning/debug/{slug}.md .planning/debug/resolved/
506
- ```
507
-
508
- **6. Commitar artefatos atualizados:**
509
- ```bash
510
- node "./.claude/framework/bin/tools.cjs" commit "docs(phase-${PARENT_PHASE}): resolve UAT gaps and debug sessions after ${PHASE_NUMBER} gap closure" --files .planning/phases/*${PARENT_PHASE}*/*-UAT.md .planning/debug/resolved/*.md
511
- ```
512
- </step>
513
-
514
- <step name="regression_gate">
515
- Executar suítes de teste de fases anteriores para detectar regressões entre fases ANTES da verificação.
516
-
517
- **Pular se:** Esta é a primeira fase (sem fases anteriores), ou nenhum arquivo VERIFICATION.md anterior existe.
518
-
519
- **Passo 1: Descobrir arquivos de teste de fases anteriores**
520
- ```bash
521
- # Encontrar todos os arquivos VERIFICATION.md de fases anteriores no milestone atual
522
- PRIOR_VERIFICATIONS=$(find .planning/phases/ -name "*-VERIFICATION.md" ! -path "*${PHASE_NUMBER}*" 2>/dev/null)
523
- ```
524
-
525
- **Passo 2: Extrair listas de arquivos de teste de verificações anteriores**
526
-
527
- Para cada VERIFICATION.md encontrado, procurar referências de arquivos de teste:
528
- - Linhas contendo caminhos `test`, `spec` ou `__tests__`
529
- - Seção "Test Suite" ou "Automated Checks"
530
- - Padrões de arquivos de `key-files.created` em arquivos SUMMARY.md correspondentes que correspondam a `*.test.*` ou `*.spec.*`
531
-
532
- Coletar todos os caminhos únicos de arquivos de teste em `REGRESSION_FILES`.
533
-
534
- **Passo 3: Executar testes de regressão (se encontrados)**
535
-
536
- ```bash
537
- # Detectar runner de testes e executar testes de fase anterior
538
- if [ -f "package.json" ]; then
539
- # Node.js — usar runner de testes do projeto
540
- npx jest ${REGRESSION_FILES} --passWithNoTests --no-coverage -q 2>&1 || npx vitest run ${REGRESSION_FILES} 2>&1
541
- elif [ -f "Cargo.toml" ]; then
542
- cargo test 2>&1
543
- elif [ -f "requirements.txt" ] || [ -f "pyproject.toml" ]; then
544
- python -m pytest ${REGRESSION_FILES} -q --tb=short 2>&1
545
- fi
546
- ```
547
-
548
- **Passo 4: Reportar resultados**
549
-
550
- Se todos os testes passarem:
551
- ```
552
- ✓ Gate de regressão: {N} arquivos de teste de fase anterior passaram — nenhuma regressão detectada
553
- ```
554
- → Prosseguir para verify_phase_goal
555
-
556
- Se algum teste falhar:
557
- ```
558
- ## ⚠ Regressão Entre Fases Detectada
559
-
560
- A execução da Fase {X} pode ter quebrado funcionalidade de fases anteriores.
561
-
562
- | Arquivo de Teste | Fase | Status | Detalhe |
563
- |------------------|------|--------|---------|
564
- | {file} | {origin_phase} | FALHOU | {first_failure_line} |
565
-
566
- Opções:
567
- 1. Corrigir regressões antes da verificação (recomendado)
568
- 2. Continuar para verificação mesmo assim (regressões vão se acumular)
569
- 3. Abortar fase — reverter e replanejar
570
- ```
571
-
572
- Usar AskUserQuestion para apresentar as opções.
573
- </step>
574
-
575
- <step name="verify_phase_goal">
576
- Verificar se a fase atingiu seu OBJETIVO, não apenas se as tarefas foram concluídas.
577
-
578
- ```bash
579
- VERIFIER_SKILLS=$(node "./.claude/framework/bin/tools.cjs" agent-skills verifier 2>/dev/null)
580
- ```
581
-
582
- ```
583
- Task(
584
- prompt="Verify phase {phase_number} goal achievement.
585
- Phase directory: {phase_dir}
586
- Phase goal: {goal from ROADMAP.md}
587
- Phase requirement IDs: {phase_req_ids}
588
- Check must_haves against actual codebase.
589
- Cross-reference requirement IDs from PLAN frontmatter against REQUIREMENTS.md — every ID MUST be accounted for.
590
- Create VERIFICATION.md.
591
- ${VERIFIER_SKILLS}",
592
- subagent_type="verifier",
593
- model="{verifier_model}"
594
- )
595
- ```
596
-
597
- Ler status:
598
- ```bash
599
- grep "^status:" "$PHASE_DIR"/*-VERIFICATION.md | cut -d: -f2 | tr -d ' '
600
- ```
601
-
602
- | Status | Ação |
603
- |--------|------|
604
- | `passed` | → update_roadmap |
605
- | `human_needed` | Apresentar itens para teste humano, obter aprovação ou feedback |
606
- | `gaps_found` | Apresentar resumo de lacunas, oferecer `/planejar-fase {phase} --gaps ${WS}` |
607
-
608
- **Se human_needed:**
609
-
610
- **Passo A: Persistir itens de verificação humana como arquivo UAT.**
611
-
612
- Criar `{phase_dir}/{phase_num}-HUMAN-UAT.md` usando formato de template UAT:
613
-
614
- ```markdown
615
- ---
616
- status: partial
617
- phase: {phase_num}-{phase_name}
618
- source: [{phase_num}-VERIFICATION.md]
619
- started: [agora ISO]
620
- updated: [agora ISO]
621
- ---
622
-
623
- ## Teste Atual
624
-
625
- [aguardando teste humano]
626
-
627
- ## Testes
628
-
629
- {Para cada item human_verification do VERIFICATION.md:}
630
-
631
- ### {N}. {descrição do item}
632
- expected: {comportamento esperado do VERIFICATION.md}
633
- result: [pendente]
634
-
635
- ## Resumo
636
-
637
- total: {count}
638
- passed: 0
639
- issues: 0
640
- pending: {count}
641
- skipped: 0
642
- blocked: 0
643
-
644
- ## Lacunas
645
- ```
646
-
647
- Commitar o arquivo:
648
- ```bash
649
- node "./.claude/framework/bin/tools.cjs" commit "test({phase_num}): persist human verification items as UAT" --files "{phase_dir}/{phase_num}-HUMAN-UAT.md"
650
- ```
651
-
652
- **Passo B: Apresentar ao usuário:**
653
-
654
- ```
655
- ## ✓ Fase {X}: {Nome} — Verificação Humana Necessária
656
-
657
- Todas as verificações automatizadas passaram. {N} itens precisam de teste humano:
658
-
659
- {Da seção human_verification do VERIFICATION.md}
660
-
661
- Itens salvos em `{phase_num}-HUMAN-UAT.md` — aparecerão em `/progresso` e `/auditar-uat`.
662
-
663
- "approved" → continuar | Reportar problemas → gap closure
664
- ```
665
-
666
- **Se o usuário disser "approved":** Prosseguir para `update_roadmap`. O arquivo HUMAN-UAT.md persiste com `status: partial` e aparecerá em verificações futuras de progresso até o usuário executar `/verificar-trabalho` nele.
667
-
668
- **Se o usuário reportar problemas:** Prosseguir para gap closure como implementado atualmente.
669
-
670
- **Se gaps_found:**
671
- ```
672
- ## ⚠ Fase {X}: {Nome} — Lacunas Encontradas
673
-
674
- **Pontuação:** {N}/{M} must-haves verificados
675
- **Relatório:** {phase_dir}/{phase_num}-VERIFICATION.md
676
-
677
- ### O Que Está Faltando
678
- {Resumos de lacunas do VERIFICATION.md}
679
-
680
- ---
681
- ## ▶ Próximo Passo
682
-
683
- `/planejar-fase {X} --gaps ${WS}`
684
-
685
- <sub>`/clear` primeiro → janela de contexto fresca</sub>
686
-
687
- Também: `cat {phase_dir}/{phase_num}-VERIFICATION.md` — relatório completo
688
- Também: `/verificar-trabalho {X} ${WS}` — teste manual primeiro
689
- ```
690
-
691
- Ciclo de gap closure: `/planejar-fase {X} --gaps ${WS}` lê VERIFICATION.md → cria planos de lacuna com `gap_closure: true` → usuário executa `/executar-fase {X} --gaps-only ${WS}` → verificador re-executa.
692
- </step>
693
-
694
- <step name="update_roadmap">
695
- **Marcar fase como completa e atualizar todos os arquivos de rastreamento:**
696
-
697
- ```bash
698
- COMPLETION=$(node "./.claude/framework/bin/tools.cjs" phase complete "${PHASE_NUMBER}")
699
- ```
700
-
701
- O CLI gerencia:
702
- - Marcar checkbox de fase `[x]` com data de conclusão
703
- - Atualizar tabela de Progresso (Status → Completo, data)
704
- - Atualizar contagem de planos para final
705
- - Avançar STATE.md para próxima fase
706
- - Atualizar rastreabilidade do REQUIREMENTS.md
707
- - Escanear por dívida de verificação (retorna array `warnings`)
708
-
709
- Extrair do resultado: `next_phase`, `next_phase_name`, `is_last_phase`, `warnings`, `has_warnings`.
710
-
711
- **Se has_warnings for true:**
712
- ```
713
- ## Fase {X} marcada como completa com {N} avisos:
714
-
715
- {listar cada aviso}
716
-
717
- Estes itens são rastreados e aparecerão em `/progresso` e `/auditar-uat`.
718
- ```
719
-
720
- ```bash
721
- node "./.claude/framework/bin/tools.cjs" commit "docs(phase-{X}): complete phase execution" --files .planning/ROADMAP.md .planning/STATE.md .planning/REQUIREMENTS.md {phase_dir}/*-VERIFICATION.md
722
- ```
723
- </step>
724
-
725
- <step name="update_project_md">
726
- **Evoluir PROJECT.md para refletir conclusão de fase (evita drift de documento de planejamento — #956):**
727
-
728
- PROJECT.md rastreia requisitos validados, decisões e estado atual. Sem este passo,
729
- PROJECT.md fica para trás silenciosamente ao longo de múltiplas fases.
730
-
731
- 1. Ler `.planning/PROJECT.md`
732
- 2. Se o arquivo existir e tiver seção `## Requisitos Validados` ou `## Requisitos`:
733
- - Mover requisitos validados por esta fase de Ativos → Validados
734
- - Adicionar nota breve: `Validado na Fase {X}: {Nome}`
735
- 3. Se o arquivo tiver seção `## Estado Atual` ou similar:
736
- - Atualizá-la para refletir conclusão desta fase (ex: "Fase {X} completa — {one-liner}")
737
- 4. Atualizar o rodapé `Última atualização:` para a data de hoje
738
- 5. Commitar a mudança:
739
-
740
- ```bash
741
- node "./.claude/framework/bin/tools.cjs" commit "docs(phase-{X}): evolve PROJECT.md after phase completion" --files .planning/PROJECT.md
742
- ```
743
-
744
- **Pular este passo se** `.planning/PROJECT.md` não existir.
745
- </step>
746
-
747
- <step name="offer_next">
748
-
749
- **Exceção:** Se `gaps_found`, o passo `verify_phase_goal` já apresenta o caminho de gap-closure (`/planejar-fase {X} --gaps`). Nenhum roteamento adicional necessário — pular avanço automático.
750
-
751
- **Verificação sem transição (criado por cadeia de avanço automático):**
752
-
753
- Analisar flag `--no-transition` de $ARGUMENTS.
754
-
755
- **Se flag `--no-transition` presente:**
756
-
757
- Execute-phase foi criado por avanço automático do plan-phase. NÃO executar transition.md.
758
- Após verificação passar e roadmap ser atualizado, retornar status de conclusão ao pai:
759
-
760
- ```
761
- ## FASE CONCLUÍDA
762
-
763
- Fase: ${PHASE_NUMBER} - ${PHASE_NAME}
764
- Planos: ${completed_count}/${total_count}
765
- Verificação: {Passou | Lacunas Encontradas}
766
-
767
- [Incluir saída de aggregate_results]
768
- ```
769
-
770
- PARAR. Não prosseguir para avanço automático ou transição.
771
-
772
- **Se flag `--no-transition` NÃO estiver presente:**
773
-
774
- **Detecção de avanço automático:**
775
-
776
- 1. Analisar flag `--auto` de $ARGUMENTS
777
- 2. Ler tanto a flag de cadeia quanto a preferência do usuário (flag de cadeia já sincronizada no passo init):
778
- ```bash
779
- AUTO_CHAIN=$(node "./.claude/framework/bin/tools.cjs" config-get workflow._auto_chain_active 2>/dev/null || echo "false")
780
- AUTO_CFG=$(node "./.claude/framework/bin/tools.cjs" config-get workflow.auto_advance 2>/dev/null || echo "false")
781
- ```
782
-
783
- **Se flag `--auto` presente OU `AUTO_CHAIN` for true OU `AUTO_CFG` for true (E verificação passou sem lacunas):**
784
-
785
- ```
786
- ╔══════════════════════════════════════════╗
787
- ║ AVANÇANDO AUTOMATICAMENTE → TRANSIÇÃO ║
788
- ║ Fase {X} verificada, continuando cadeia ║
789
- ╚══════════════════════════════════════════╝
790
- ```
791
-
792
- Executar o workflow de transição inline (NÃO usar Task — contexto do orquestrador está ~10-15%, transição precisa de dados de conclusão de fase já no contexto):
793
-
794
- Ler e seguir `./.claude/framework/workflows/transition.md`, propagando a flag `--auto` para que ela se propague para a invocação da próxima fase.
795
-
796
- **Se nenhum de `--auto`, `AUTO_CHAIN` ou `AUTO_CFG` for true:**
797
-
798
- **PARAR. Não avançar automaticamente. Não executar transição. Não planejar próxima fase. Apresentar opções ao usuário e aguardar.**
799
-
800
- **IMPORTANTE: NÃO existe comando `/transition`. Nunca sugeri-lo. O workflow de transição é interno apenas.**
801
-
802
- ```
803
- ## ✓ Fase {X}: {Nome} Concluída
804
-
805
- /progresso ${WS} — ver roadmap atualizado
806
- /discutir-fase {next} ${WS} — discutir próxima fase antes de planejar
807
- /planejar-fase {next} ${WS} — planejar próxima fase
808
- /executar-fase {next} ${WS} — executar próxima fase
809
- ```
810
-
811
- Sugira apenas os comandos listados acima. Não invente ou alucine nomes de comandos.
812
- </step>
813
-
814
- </process>
815
-
816
- <context_efficiency>
817
- Orquestrador: ~10-15% do contexto para janelas 200k, pode usar mais para janelas 1M+.
818
- Subagentes: contexto fresco por agente (200k-1M dependendo do modelo). Sem polling (Task bloqueia). Sem vazamento de contexto.
819
-
820
- Para modelos de contexto 1M+, considerar:
821
- - Passar contexto mais rico (snippets de código, saídas de dependências) diretamente para executores em vez de apenas caminhos de arquivo
822
- - Executar fases pequenas (≤3 planos, sem dependências) inline sem overhead de criação de subagente
823
- - Relaxar recomendações de /clear — início de degradação de contexto é muito mais distante com janela 5x
824
- </context_efficiency>
825
-
826
- <failure_handling>
827
- - **Falha falsa classifyHandoffIfNeeded:** Agente reporta "falhado" mas erro é `classifyHandoffIfNeeded is not defined` → Bug do Claude Code, não framework. Spot-check (SUMMARY existe, commits presentes) → se passou, tratar como sucesso
828
- - **Agente falha no meio do plano:** SUMMARY.md ausente → reportar, perguntar ao usuário como prosseguir
829
- - **Cadeia de dependências quebra:** Onda 1 falha → Dependentes da Onda 2 provavelmente falham → usuário escolhe tentar ou pular
830
- - **Todos os agentes na onda falham:** Problema sistêmico → parar, reportar para investigação
831
- - **Checkpoint não resolvível:** "Pular este plano?" ou "Abortar execução da fase?" → registrar progresso parcial no STATE.md
832
- </failure_handling>
833
-
834
- <resumption>
835
- Re-executar `/executar-fase {phase}` → discover_plans encontra SUMMARYs concluídos → os pula → retoma do primeiro plano incompleto → continua execução de ondas.
836
-
837
- STATE.md rastreia: último plano concluído, onda atual, checkpoints pendentes.
838
- </resumption>
1
+ <purpose>
2
+ Executar todos os planos de uma fase usando execução paralela em ondas. O orquestrador permanece enxuto — delega execução de planos para subagentes.
3
+ </purpose>
4
+
5
+ <core_principle>
6
+ O orquestrador coordena, não executa. Cada subagente carrega o contexto completo do execute-plan. Orquestrador: descobrir planos → analisar deps → agrupar em ondas → criar agentes → lidar com checkpoints → coletar resultados.
7
+ </core_principle>
8
+
9
+ <runtime_compatibility>
10
+ **Criação de subagentes é específica do runtime:**
11
+ - **Claude Code:** Usa `Task(subagent_type="executor", ...)` — bloqueia até concluir, retorna resultado
12
+ - **Copilot:** Criação de subagentes não retorna sinais de conclusão de forma confiável. **Padrão é execução sequencial inline**: ler e seguir execute-plan.md diretamente para cada plano em vez de criar agentes paralelos. Só tente paralelismo se o usuário solicitar explicitamente — e nesse caso, use o fallback de spot-check no passo 3 para detectar conclusão.
13
+ - **Outros runtimes:** Se a ferramenta `Task`/`task` não estiver disponível, use execução sequencial inline como fallback. Verifique disponibilidade da ferramenta em runtime em vez de assumir pelo nome do runtime.
14
+
15
+ **Regra de fallback:** Se um agente criado conclui seu trabalho (commits visíveis, SUMMARY.md existe) mas o orquestrador nunca recebe o sinal de conclusão, tratar como bem-sucedido com base em spot-checks e continuar para próxima onda/plano. Nunca bloquear indefinidamente aguardando sinal — sempre verificar via filesystem e estado do git.
16
+ </runtime_compatibility>
17
+
18
+ <required_reading>
19
+ Ler STATE.md antes de qualquer operação para carregar contexto do projeto.
20
+ </required_reading>
21
+
22
+ <available_agent_types>
23
+ Tipos de subagentes framework válidos registrados em .claude/agents/ (ou equivalente para seu runtime).
24
+ Sempre use o nome exato desta lista — não use 'general-purpose' ou outros tipos embutidos como fallback:
25
+
26
+ - executor — Executa tarefas do plano, commits, cria SUMMARY.md
27
+ - verifier — Verifica conclusão de fase, verifica quality gates
28
+ - planner — Cria planos detalhados a partir do escopo da fase
29
+ - phase-researcher — Pesquisa abordagens técnicas para uma fase
30
+ - plan-checker — Revisa qualidade do plano antes da execução
31
+ - debugger — Diagnostica e corrige problemas
32
+ - codebase-mapper — Mapeia estrutura do projeto e dependências
33
+ - integration-checker — Verifica integração entre fases
34
+ - nyquist-auditor — Valida cobertura de verificação
35
+ - ui-researcher — Pesquisa abordagens de UI/UX
36
+ - ui-checker — Revisa qualidade de implementação de UI
37
+ - ui-auditor — Audita UI em relação aos requisitos de design
38
+ </available_agent_types>
39
+
40
+ <process>
41
+
42
+ <step name="parse_args" priority="first">
43
+ Analisar `$ARGUMENTS` antes de carregar qualquer contexto:
44
+
45
+ - Primeiro token posicional → `PHASE_ARG`
46
+ - `--wave N` opcional → `WAVE_FILTER`
47
+ - `--gaps-only` opcional mantém seu significado atual
48
+
49
+ Se `--wave` estiver ausente, preservar o comportamento atual de executar todas as ondas incompletas na fase.
50
+ </step>
51
+
52
+ <step name="initialize" priority="first">
53
+ Carregar todo o contexto em uma chamada:
54
+
55
+ ```bash
56
+ INIT=$(node "./.claude/framework/bin/tools.cjs" init execute-phase "${PHASE_ARG}")
57
+ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
58
+ AGENT_SKILLS=$(node "./.claude/framework/bin/tools.cjs" agent-skills executor 2>/dev/null)
59
+ ```
60
+
61
+ Analisar JSON para: `executor_model`, `verifier_model`, `commit_docs`, `parallelization`, `branching_strategy`, `branch_name`, `phase_found`, `phase_dir`, `phase_number`, `phase_name`, `phase_slug`, `plans`, `incomplete_plans`, `plan_count`, `incomplete_count`, `state_exists`, `roadmap_exists`, `phase_req_ids`.
62
+
63
+ **Se `phase_found` for false:** Erro — diretório de fase não encontrado.
64
+ **Se `plan_count` for 0:** Erro — nenhum plano encontrado na fase.
65
+ **Se `state_exists` for false mas `.planning/` existir:** Oferecer reconstruir ou continuar.
66
+
67
+ Quando `parallelization` for false, planos dentro de uma onda executam sequencialmente.
68
+
69
+ **Detecção de runtime para Copilot:**
70
+ Verificar se o runtime atual é Copilot testando o padrão de agente `@executor`
71
+ ou ausência da API de subagente `Task()`. Se rodando no Copilot, forçar execução sequencial inline
72
+ independente da configuração `parallelization` — os sinais de conclusão de subagentes do Copilot
73
+ são não confiáveis (ver `<runtime_compatibility>`). Definir `COPILOT_SEQUENTIAL=true`
74
+ internamente e pular o passo `execute_waves` em favor do caminho inline do `check_interactive_mode`
75
+ para cada plano.
76
+
77
+ **OBRIGATÓRIO — Sincronizar flag de cadeia com intenção.** Se o usuário invocou manualmente (sem `--auto`), limpar a flag de cadeia efêmera de qualquer cadeia `--auto` anterior interrompida. Isso impede que `_auto_chain_active: true` obsoleto cause avanço automático indesejado. Isso NÃO toca em `workflow.auto_advance` (preferência persistente do usuário). Você DEVE executar este bloco bash antes de qualquer leitura de config:
78
+ ```bash
79
+ # OBRIGATÓRIO: impede auto-cadeia obsoleta de execuções --auto anteriores
80
+ if [[ ! "$ARGUMENTS" =~ --auto ]]; then
81
+ node "./.claude/framework/bin/tools.cjs" config-set workflow._auto_chain_active false 2>/dev/null
82
+ fi
83
+ ```
84
+ </step>
85
+
86
+ <step name="check_interactive_mode">
87
+ **Analisar flag `--interactive` de $ARGUMENTS.**
88
+
89
+ **Se flag `--interactive` presente:** Alternar para modo de execução interativo.
90
+
91
+ Modo interativo executa planos sequencialmente **inline** (sem criação de subagentes) com
92
+ checkpoints do usuário entre tarefas. O usuário pode revisar, modificar ou redirecionar o trabalho a qualquer momento.
93
+
94
+ **Fluxo de execução interativo:**
95
+
96
+ 1. Carregar inventário de planos normalmente (discover_and_group_plans)
97
+ 2. Para cada plano (sequencialmente, ignorando agrupamento de ondas):
98
+
99
+ a. **Apresentar o plano ao usuário:**
100
+ ```
101
+ ## Plano {plan_id}: {plan_name}
102
+
103
+ Objetivo: {do arquivo do plano}
104
+ Tarefas: {task_count}
105
+
106
+ Opções:
107
+ - Executar (prosseguir com todas as tarefas)
108
+ - Revisar primeiro (mostrar detalhamento de tarefas antes de começar)
109
+ - Pular (ir para próximo plano)
110
+ - Parar (encerrar execução, salvar progresso)
111
+ ```
112
+
113
+ b. **Se "Revisar primeiro":** Ler e exibir o arquivo do plano completo. Perguntar novamente: Executar, Modificar, Pular.
114
+
115
+ c. **Se "Executar":** Ler e seguir `./.claude/framework/workflows/execute-plan.md` **inline**
116
+ (NÃO criar subagente). Executar tarefas uma por vez.
117
+
118
+ d. **Após cada tarefa:** Pausar brevemente. Se o usuário intervir (digitar qualquer coisa), parar e resolver
119
+ o feedback antes de continuar. Caso contrário, prosseguir para próxima tarefa.
120
+
121
+ e. **Após plano concluído:** Mostrar resultados, commitar, criar SUMMARY.md, então apresentar próximo plano.
122
+
123
+ 3. Após todos os planos: prosseguir para verificação (mesmo que modo normal).
124
+
125
+ **Benefícios do modo interativo:**
126
+ - Sem overhead de subagente — uso de tokens dramaticamente menor
127
+ - Usuário detecta erros cedo — economiza ciclos de verificação custosos
128
+ - Mantém estrutura de planejamento/rastreamento do framework
129
+ - Melhor para: fases pequenas, correções de bugs, lacunas de verificação, aprendendo framework
130
+
131
+ **Pular para passo handle_branching** (planos interativos executam inline após agrupamento).
132
+ </step>
133
+
134
+ <step name="handle_branching">
135
+ Verificar `branching_strategy` do init:
136
+
137
+ **"none":** Pular, continuar no branch atual.
138
+
139
+ **"phase" ou "milestone":** Usar `branch_name` pré-computado do init:
140
+ ```bash
141
+ git checkout -b "$BRANCH_NAME" 2>/dev/null || git checkout "$BRANCH_NAME"
142
+ ```
143
+
144
+ Todos os commits subsequentes vão para este branch. Usuário gerencia o merge.
145
+ </step>
146
+
147
+ <step name="validate_phase">
148
+ Do JSON do init: `phase_dir`, `plan_count`, `incomplete_count`.
149
+
150
+ Reportar: "Encontrados {plan_count} planos em {phase_dir} ({incomplete_count} incompletos)"
151
+
152
+ **Atualizar STATE.md para início de fase:**
153
+ ```bash
154
+ node "./.claude/framework/bin/tools.cjs" state begin-phase --phase "${PHASE_NUMBER}" --name "${PHASE_NAME}" --plans "${PLAN_COUNT}"
155
+ ```
156
+ Isso atualiza Status, Última Atividade, Foco Atual, Posição Atual e contagens de planos no STATE.md para que o frontmatter e o texto do corpo reflitam a fase ativa imediatamente.
157
+ </step>
158
+
159
+ <step name="discover_and_group_plans">
160
+ Carregar inventário de planos com agrupamento de ondas em uma chamada:
161
+
162
+ ```bash
163
+ PLAN_INDEX=$(node "./.claude/framework/bin/tools.cjs" phase-plan-index "${PHASE_NUMBER}")
164
+ ```
165
+
166
+ Analisar JSON para: `phase`, `plans[]` (cada um com `id`, `wave`, `autonomous`, `objective`, `files_modified`, `task_count`, `has_summary`), `waves` (mapa de número de onda → IDs de plano), `incomplete`, `has_checkpoints`.
167
+
168
+ **Filtragem:** Pular planos onde `has_summary: true`. Se `--gaps-only`: também pular planos não gap_closure. Se `WAVE_FILTER` definido: também pular planos cujo `wave` não seja igual a `WAVE_FILTER`.
169
+
170
+ **Verificação de segurança de onda:** Se `WAVE_FILTER` estiver definido e ainda houver planos incompletos em qualquer onda anterior que correspondam ao modo de execução atual, PARAR e dizer ao usuário para terminar as ondas anteriores primeiro. Não deixar Onda 2+ executar enquanto planos de ondas prerequisito anteriores permanecerem incompletos.
171
+
172
+ Se todos filtrados: "Nenhum plano incompleto correspondente" → sair.
173
+
174
+ Reportar:
175
+ ```
176
+ ## Plano de Execução
177
+
178
+ **Fase {X}: {Nome}** — {total_plans} planos correspondentes em {wave_count} onda(s)
179
+
180
+ {Se WAVE_FILTER definido: `Filtro de onda ativo: executando apenas Onda {WAVE_FILTER}`.}
181
+
182
+ | Onda | Planos | O que constrói |
183
+ |------|--------|----------------|
184
+ | 1 | 01-01, 01-02 | {dos objetivos dos planos, 3-8 palavras} |
185
+ | 2 | 01-03 | ... |
186
+ ```
187
+ </step>
188
+
189
+ <step name="execute_waves">
190
+ Executar cada onda selecionada em sequência. Dentro de uma onda: paralelo se `PARALLELIZATION=true`, sequencial se `false`.
191
+
192
+ **Para cada onda:**
193
+
194
+ 1. **Descrever o que está sendo construído (ANTES de criar agentes):**
195
+
196
+ Ler o `<objective>` de cada plano. Extrair o que está sendo construído e por quê.
197
+
198
+ ```
199
+ ---
200
+ ## Onda {N}
201
+
202
+ **{ID do Plano}: {Nome do Plano}**
203
+ {2-3 frases: o que constrói, abordagem técnica, por que importa}
204
+
205
+ Criando {count} agente(s)...
206
+ ---
207
+ ```
208
+
209
+ - Ruim: "Executando plano de geração de terreno"
210
+ - Bom: "Gerador de terreno procedural usando ruído Perlin — cria mapas de altura, zonas de bioma e malhas de colisão. Necessário antes que a física de veículos possa interagir com o solo."
211
+
212
+ 2. **Criar agentes executores:**
213
+
214
+ Passar apenas caminhos — executores leem arquivos com seu contexto fresco.
215
+ Para modelos 200k, isso mantém o contexto do orquestrador enxuto (~10-15%).
216
+ Para modelos 1M+ (Opus 4.6, Sonnet 4.6), contexto mais rico pode ser passado diretamente.
217
+
218
+ ```
219
+ Task(
220
+ subagent_type="executor",
221
+ model="{executor_model}",
222
+ isolation="worktree",
223
+ prompt="
224
+ <objective>
225
+ Execute plan {plan_number} of phase {phase_number}-{phase_name}.
226
+ Commit each task atomically. Create SUMMARY.md. Update STATE.md and ROADMAP.md.
227
+ </objective>
228
+
229
+ <parallel_execution>
230
+ You are running as a PARALLEL executor agent. Use --no-verify on all git
231
+ commits to avoid pre-commit hook contention with other agents. The
232
+ orchestrator validates hooks once after all agents complete.
233
+ For tools commits: add --no-verify flag.
234
+ For direct git commits: use git commit --no-verify -m "..."
235
+ </parallel_execution>
236
+
237
+ <execution_context>
238
+ @./.claude/framework/workflows/execute-plan.md
239
+ @./.claude/framework/templates/summary.md
240
+ @./.claude/framework/references/checkpoints.md
241
+ @./.claude/framework/references/tdd.md
242
+ </execution_context>
243
+
244
+ <files_to_read>
245
+ Read these files at execution start using the Read tool:
246
+ - {phase_dir}/{plan_file} (Plan)
247
+ - .planning/PROJECT.md (Project context — core value, requirements, evolution rules)
248
+ - .planning/STATE.md (State)
249
+ - .planning/config.json (Config, if exists)
250
+ - ./CLAUDE.md (Project instructions, if exists — follow project-specific guidelines and coding conventions)
251
+ - .claude/skills/ or .agents/skills/ (Project skills, if either exists — list skills, read SKILL.md for each, follow relevant rules during implementation)
252
+ </files_to_read>
253
+
254
+ ${AGENT_SKILLS}
255
+
256
+ <mcp_tools>
257
+ If CLAUDE.md or project instructions reference MCP tools (e.g. jCodeMunch, context7,
258
+ or other MCP servers), prefer those tools over Grep/Glob for code navigation when available.
259
+ MCP tools often save significant tokens by providing structured code indexes.
260
+ Check tool availability first — if MCP tools are not accessible, fall back to Grep/Glob.
261
+ </mcp_tools>
262
+
263
+ <success_criteria>
264
+ - [ ] All tasks executed
265
+ - [ ] Each task committed individually
266
+ - [ ] SUMMARY.md created in plan directory
267
+ - [ ] STATE.md updated with position and decisions
268
+ - [ ] ROADMAP.md updated with plan progress (via `roadmap update-plan-progress`)
269
+ </success_criteria>
270
+ "
271
+ )
272
+ ```
273
+
274
+ 3. **Aguardar todos os agentes da onda concluírem.**
275
+
276
+ **Fallback de sinal de conclusão (Copilot e runtimes onde Task() pode não retornar):**
277
+
278
+ Se um agente criado não retornar sinal de conclusão mas parecer ter terminado
279
+ seu trabalho, NÃO bloquear indefinidamente. Em vez disso, verificar conclusão via spot-checks:
280
+
281
+ ```bash
282
+ # Para cada plano nesta onda, verificar se o executor terminou:
283
+ SUMMARY_EXISTS=$(test -f "{phase_dir}/{plan_number}-{plan_padded}-SUMMARY.md" && echo "true" || echo "false")
284
+ COMMITS_FOUND=$(git log --oneline --all --grep="{phase_number}-{plan_padded}" --since="1 hour ago" | head -1)
285
+ ```
286
+
287
+ **Se SUMMARY.md existir E commits forem encontrados:** O agente concluiu com sucesso —
288
+ tratar como concluído e prosseguir para passo 4. Logar: `"✓ {Plan ID} concluído (verificado via spot-check — sinal de conclusão não recebido)"`
289
+
290
+ **Se SUMMARY.md NÃO existir após espera razoável:** O agente pode ainda estar
291
+ rodando ou pode ter falhado silenciosamente. Verificar `git log --oneline -5` por
292
+ atividade recente. Se commits ainda aparecerem, aguardar mais. Se sem atividade, reportar
293
+ o plano como falhado e encaminhar para o manipulador de falhas no passo 5.
294
+
295
+ **Este fallback se aplica automaticamente a todos os runtimes.** Task() do Claude Code normalmente
296
+ retorna de forma síncrona, mas o fallback garante resiliência se não retornar.
297
+
298
+ 4. **Validação de hook pós-onda (somente modo paralelo):**
299
+
300
+ Quando agentes commitaram com `--no-verify`, executar hooks pre-commit uma vez após a onda:
301
+ ```bash
302
+ # Executar hooks pre-commit do projeto no estado atual
303
+ git diff --cached --quiet || git stash # fazer stash de mudanças não staged
304
+ git hook run pre-commit 2>&1 || echo "⚠ Hooks pre-commit falharam — revisar antes de continuar"
305
+ ```
306
+ Se hooks falharem: reportar a falha e perguntar "Corrigir problemas de hook agora?" ou "Continuar para próxima onda?"
307
+
308
+ 5. **Reportar conclusão — verificar claims via spot-check primeiro:**
309
+
310
+ Para cada SUMMARY.md:
311
+ - Verificar se os primeiros 2 arquivos de `key-files.created` existem no disco
312
+ - Verificar se `git log --oneline --all --grep="{phase}-{plan}"` retorna ≥1 commit
313
+ - Verificar marcador `## Self-Check: FAILED`
314
+
315
+ Se QUALQUER spot-check falhar: reportar qual plano falhou, encaminhar para manipulador de falhas — perguntar "Tentar plano novamente?" ou "Continuar com ondas restantes?"
316
+
317
+ Se passar:
318
+ ```
319
+ ---
320
+ ## Onda {N} Concluída
321
+
322
+ **{ID do Plano}: {Nome do Plano}**
323
+ {O que foi construído — do SUMMARY.md}
324
+ {Desvios notáveis, se houver}
325
+
326
+ {Se mais ondas: o que isso habilita para a próxima onda}
327
+ ---
328
+ ```
329
+
330
+ - Ruim: "Onda 2 concluída. Prosseguindo para Onda 3."
331
+ - Bom: "Sistema de terreno concluído — 3 tipos de bioma, texturização baseada em altura, malhas de colisão de física. Física de veículos (Onda 3) agora pode referenciar superfícies do solo."
332
+
333
+ 5. **Tratar falhas:**
334
+
335
+ **Bug conhecido do Claude Code (classifyHandoffIfNeeded):** Se um agente reportar "falhado" com erro contendo `classifyHandoffIfNeeded is not defined`, este é um bug de runtime do Claude Code — não um problema do framework ou do agente. O erro dispara no manipulador de conclusão APÓS todas as chamadas de ferramenta terminarem. Neste caso: executar os mesmos spot-checks do passo 4 (SUMMARY.md existe, commits presentes, sem Self-Check: FAILED). Se spot-checks PASSAREM → tratar como **bem-sucedido**. Se spot-checks FALHAREM → tratar como falha real abaixo.
336
+
337
+ Para falhas reais: reportar qual plano falhou → perguntar "Continuar?" ou "Parar?" → se continuar, planos dependentes podem também falhar. Se parar, relatório de conclusão parcial.
338
+
339
+ 5b. **Verificação de dependência pré-onda (ondas 2+ apenas):**
340
+
341
+ Antes de criar onda N+1, para cada plano na onda seguinte:
342
+ ```bash
343
+ node "./.claude/framework/bin/tools.cjs" verify key-links {phase_dir}/{plan}-PLAN.md
344
+ ```
345
+
346
+ Se qualquer key-link de artefato de onda ANTERIOR falhar na verificação:
347
+
348
+ ## Lacuna de Conexão Entre Planos
349
+
350
+ | Plano | Link | De | Padrão Esperado | Status |
351
+ |-------|------|----|-----------------|--------|
352
+ | {plan} | {via} | {from} | {pattern} | NÃO ENCONTRADO |
353
+
354
+ Artefatos da Onda {N} podem não estar corretamente conectados. Opções:
355
+ 1. Investigar e corrigir antes de continuar
356
+ 2. Continuar (pode causar falhas em cascata na onda {N+1})
357
+
358
+ Key-links referenciando arquivos na onda ATUAL (próxima) são ignorados.
359
+
360
+ 6. **Executar planos de checkpoint entre ondas** — ver `<checkpoint_handling>`.
361
+
362
+ 7. **Prosseguir para próxima onda.**
363
+ </step>
364
+
365
+ <step name="checkpoint_handling">
366
+ Planos com `autonomous: false` requerem interação do usuário.
367
+
368
+ **Tratamento de checkpoint em modo automático:**
369
+
370
+ Ler config de avanço automático (flag de cadeia + preferência do usuário):
371
+ ```bash
372
+ AUTO_CHAIN=$(node "./.claude/framework/bin/tools.cjs" config-get workflow._auto_chain_active 2>/dev/null || echo "false")
373
+ AUTO_CFG=$(node "./.claude/framework/bin/tools.cjs" config-get workflow.auto_advance 2>/dev/null || echo "false")
374
+ ```
375
+
376
+ Quando o executor retorna um checkpoint E (`AUTO_CHAIN` é `"true"` OU `AUTO_CFG` é `"true"`):
377
+ - **human-verify** → Criar agente de continuação automaticamente com `{user_response}` = `"approved"`. Logar `⚡ Checkpoint aprovado automaticamente`.
378
+ - **decision** → Criar agente de continuação automaticamente com `{user_response}` = primeira opção dos detalhes do checkpoint. Logar `⚡ Selecionado automaticamente: [opção]`.
379
+ - **human-action** → Apresentar ao usuário (comportamento existente abaixo). Gates de autenticação não podem ser automatizados.
380
+
381
+ **Fluxo padrão (não modo automático, ou tipo human-action):**
382
+
383
+ 1. Criar agente para plano de checkpoint
384
+ 2. Agente roda até tarefa de checkpoint ou gate de autenticação → retorna estado estruturado
385
+ 3. Retorno do agente inclui: tabela de tarefas concluídas, tarefa atual + bloqueador, tipo/detalhes do checkpoint, o que está aguardando
386
+ 4. **Apresentar ao usuário:**
387
+ ```
388
+ ## Checkpoint: [Tipo]
389
+
390
+ **Plano:** 03-03 Layout do Dashboard
391
+ **Progresso:** 2/3 tarefas concluídas
392
+
393
+ [Detalhes do Checkpoint do retorno do agente]
394
+ [Seção Aguardando do retorno do agente]
395
+ ```
396
+ 5. Usuário responde: "approved"/"done" | descrição de problema | seleção de decisão
397
+ 6. **Criar agente de continuação (NÃO retomar)** usando template continuation-prompt.md:
398
+ - `{completed_tasks_table}`: Do retorno do checkpoint
399
+ - `{resume_task_number}` + `{resume_task_name}`: Tarefa atual
400
+ - `{user_response}`: O que o usuário forneceu
401
+ - `{resume_instructions}`: Baseado no tipo de checkpoint
402
+ 7. Agente de continuação verifica commits anteriores, continua do ponto de retomada
403
+ 8. Repetir até plano concluir ou usuário parar
404
+
405
+ **Por que agente fresco, não retomada:** Retomada depende de serialização interna que quebra com chamadas de ferramenta paralelas. Agentes frescos com estado explícito são mais confiáveis.
406
+
407
+ **Checkpoints em ondas paralelas:** Agente pausa e retorna enquanto outros agentes paralelos podem concluir. Apresentar checkpoint, criar continuação, aguardar todos antes da próxima onda.
408
+ </step>
409
+
410
+ <step name="aggregate_results">
411
+ Após todas as ondas:
412
+
413
+ ```markdown
414
+ ## Fase {X}: {Nome} — Execução Concluída
415
+
416
+ **Ondas:** {N} | **Planos:** {M}/{total} concluídos
417
+
418
+ | Onda | Planos | Status |
419
+ |------|--------|--------|
420
+ | 1 | plan-01, plan-02 | ✓ Concluído |
421
+ | CP | plan-03 | ✓ Verificado |
422
+ | 2 | plan-04 | ✓ Concluído |
423
+
424
+ ### Detalhes dos Planos
425
+ 1. **03-01**: [one-liner do SUMMARY.md]
426
+ 2. **03-02**: [one-liner do SUMMARY.md]
427
+
428
+ ### Problemas Encontrados
429
+ [Agregar dos SUMMARYs, ou "Nenhum"]
430
+ ```
431
+ </step>
432
+
433
+ <step name="handle_partial_wave_execution">
434
+ Se `WAVE_FILTER` foi usado, re-executar descoberta de planos após execução:
435
+
436
+ ```bash
437
+ POST_PLAN_INDEX=$(node "./.claude/framework/bin/tools.cjs" phase-plan-index "${PHASE_NUMBER}")
438
+ ```
439
+
440
+ Aplicar as mesmas regras de filtragem "incompleto" de antes:
441
+ - ignorar planos com `has_summary: true`
442
+ - se `--gaps-only`, considerar apenas planos `gap_closure: true`
443
+
444
+ **Se planos incompletos ainda restarem em qualquer lugar da fase:**
445
+ - PARAR aqui
446
+ - NÃO executar verificação de fase
447
+ - NÃO marcar fase como completa no ROADMAP/STATE
448
+ - Apresentar:
449
+
450
+ ```markdown
451
+ ## Onda {WAVE_FILTER} Concluída
452
+
453
+ Onda selecionada terminou com sucesso. Esta fase ainda tem planos incompletos, portanto verificação em nível de fase e conclusão foram intencionalmente puladas.
454
+
455
+ /executar-fase {phase} ${WS} # Continuar ondas restantes
456
+ /executar-fase {phase} --wave {next} ${WS} # Executar a próxima onda explicitamente
457
+ ```
458
+
459
+ **Se nenhum plano incompleto restar após a onda selecionada terminar:**
460
+ - continuar com o fluxo normal de verificação e conclusão em nível de fase abaixo
461
+ - isso significa que a onda selecionada foi o último trabalho restante na fase
462
+ </step>
463
+
464
+ <step name="close_parent_artifacts">
465
+ **Somente para fases decimais/polish (padrão X.Y):** Fechar o ciclo de feedback resolvendo artefatos UAT e debug do pai.
466
+
467
+ **Pular se** o número da fase não tiver decimal (ex: `3`, `04`) — aplica-se apenas a fases de gap-closure como `4.1`, `03.1`.
468
+
469
+ **1. Detectar fase decimal e derivar pai:**
470
+ ```bash
471
+ # Verificar se phase_number contém um decimal
472
+ if [[ "$PHASE_NUMBER" == *.* ]]; then
473
+ PARENT_PHASE="${PHASE_NUMBER%%.*}"
474
+ fi
475
+ ```
476
+
477
+ **2. Encontrar arquivo UAT do pai:**
478
+ ```bash
479
+ PARENT_INFO=$(node "./.claude/framework/bin/tools.cjs" find-phase "${PARENT_PHASE}" --raw)
480
+ # Extrair diretório do JSON PARENT_INFO, então encontrar arquivo UAT nesse diretório
481
+ ```
482
+
483
+ **Se nenhum UAT pai encontrado:** Pular este passo (gap-closure pode ter sido acionado por VERIFICATION.md em vez disso).
484
+
485
+ **3. Atualizar status de lacunas do UAT:**
486
+
487
+ Ler seção `## Gaps` do arquivo UAT pai. Para cada entrada de lacuna com `status: failed`:
488
+ - Atualizar para `status: resolved`
489
+
490
+ **4. Atualizar frontmatter do UAT:**
491
+
492
+ Se todas as lacunas agora tiverem `status: resolved`:
493
+ - Atualizar frontmatter `status: diagnosed` → `status: resolved`
494
+ - Atualizar timestamp `updated:` do frontmatter
495
+
496
+ **5. Resolver sessões de debug referenciadas:**
497
+
498
+ Para cada lacuna que tiver campo `debug_session:`:
499
+ - Ler o arquivo de sessão de debug
500
+ - Atualizar frontmatter `status:` → `resolved`
501
+ - Atualizar timestamp `updated:` do frontmatter
502
+ - Mover para diretório resolvido:
503
+ ```bash
504
+ mkdir -p .planning/debug/resolved
505
+ mv .planning/debug/{slug}.md .planning/debug/resolved/
506
+ ```
507
+
508
+ **6. Commitar artefatos atualizados:**
509
+ ```bash
510
+ node "./.claude/framework/bin/tools.cjs" commit "docs(phase-${PARENT_PHASE}): resolve UAT gaps and debug sessions after ${PHASE_NUMBER} gap closure" --files .planning/phases/*${PARENT_PHASE}*/*-UAT.md .planning/debug/resolved/*.md
511
+ ```
512
+ </step>
513
+
514
+ <step name="regression_gate">
515
+ Executar suítes de teste de fases anteriores para detectar regressões entre fases ANTES da verificação.
516
+
517
+ **Pular se:** Esta é a primeira fase (sem fases anteriores), ou nenhum arquivo VERIFICATION.md anterior existe.
518
+
519
+ **Passo 1: Descobrir arquivos de teste de fases anteriores**
520
+ ```bash
521
+ # Encontrar todos os arquivos VERIFICATION.md de fases anteriores no milestone atual
522
+ PRIOR_VERIFICATIONS=$(find .planning/phases/ -name "*-VERIFICATION.md" ! -path "*${PHASE_NUMBER}*" 2>/dev/null)
523
+ ```
524
+
525
+ **Passo 2: Extrair listas de arquivos de teste de verificações anteriores**
526
+
527
+ Para cada VERIFICATION.md encontrado, procurar referências de arquivos de teste:
528
+ - Linhas contendo caminhos `test`, `spec` ou `__tests__`
529
+ - Seção "Test Suite" ou "Automated Checks"
530
+ - Padrões de arquivos de `key-files.created` em arquivos SUMMARY.md correspondentes que correspondam a `*.test.*` ou `*.spec.*`
531
+
532
+ Coletar todos os caminhos únicos de arquivos de teste em `REGRESSION_FILES`.
533
+
534
+ **Passo 3: Executar testes de regressão (se encontrados)**
535
+
536
+ ```bash
537
+ # Detectar runner de testes e executar testes de fase anterior
538
+ if [ -f "package.json" ]; then
539
+ # Node.js — usar runner de testes do projeto
540
+ npx jest ${REGRESSION_FILES} --passWithNoTests --no-coverage -q 2>&1 || npx vitest run ${REGRESSION_FILES} 2>&1
541
+ elif [ -f "Cargo.toml" ]; then
542
+ cargo test 2>&1
543
+ elif [ -f "requirements.txt" ] || [ -f "pyproject.toml" ]; then
544
+ python -m pytest ${REGRESSION_FILES} -q --tb=short 2>&1
545
+ fi
546
+ ```
547
+
548
+ **Passo 4: Reportar resultados**
549
+
550
+ Se todos os testes passarem:
551
+ ```
552
+ ✓ Gate de regressão: {N} arquivos de teste de fase anterior passaram — nenhuma regressão detectada
553
+ ```
554
+ → Prosseguir para verify_phase_goal
555
+
556
+ Se algum teste falhar:
557
+ ```
558
+ ## ⚠ Regressão Entre Fases Detectada
559
+
560
+ A execução da Fase {X} pode ter quebrado funcionalidade de fases anteriores.
561
+
562
+ | Arquivo de Teste | Fase | Status | Detalhe |
563
+ |------------------|------|--------|---------|
564
+ | {file} | {origin_phase} | FALHOU | {first_failure_line} |
565
+
566
+ Opções:
567
+ 1. Corrigir regressões antes da verificação (recomendado)
568
+ 2. Continuar para verificação mesmo assim (regressões vão se acumular)
569
+ 3. Abortar fase — reverter e replanejar
570
+ ```
571
+
572
+ Usar AskUserQuestion para apresentar as opções.
573
+ </step>
574
+
575
+ <step name="verify_phase_goal">
576
+ Verificar se a fase atingiu seu OBJETIVO, não apenas se as tarefas foram concluídas.
577
+
578
+ ```bash
579
+ VERIFIER_SKILLS=$(node "./.claude/framework/bin/tools.cjs" agent-skills verifier 2>/dev/null)
580
+ ```
581
+
582
+ ```
583
+ Task(
584
+ prompt="Verify phase {phase_number} goal achievement.
585
+ Phase directory: {phase_dir}
586
+ Phase goal: {goal from ROADMAP.md}
587
+ Phase requirement IDs: {phase_req_ids}
588
+ Check must_haves against actual codebase.
589
+ Cross-reference requirement IDs from PLAN frontmatter against REQUIREMENTS.md — every ID MUST be accounted for.
590
+ Create VERIFICATION.md.
591
+ ${VERIFIER_SKILLS}",
592
+ subagent_type="verifier",
593
+ model="{verifier_model}"
594
+ )
595
+ ```
596
+
597
+ Ler status:
598
+ ```bash
599
+ grep "^status:" "$PHASE_DIR"/*-VERIFICATION.md | cut -d: -f2 | tr -d ' '
600
+ ```
601
+
602
+ | Status | Ação |
603
+ |--------|------|
604
+ | `passed` | → update_roadmap |
605
+ | `human_needed` | Apresentar itens para teste humano, obter aprovação ou feedback |
606
+ | `gaps_found` | Apresentar resumo de lacunas, oferecer `/planejar-fase {phase} --gaps ${WS}` |
607
+
608
+ **Se human_needed:**
609
+
610
+ **Passo A: Persistir itens de verificação humana como arquivo UAT.**
611
+
612
+ Criar `{phase_dir}/{phase_num}-HUMAN-UAT.md` usando formato de template UAT:
613
+
614
+ ```markdown
615
+ ---
616
+ status: partial
617
+ phase: {phase_num}-{phase_name}
618
+ source: [{phase_num}-VERIFICATION.md]
619
+ started: [agora ISO]
620
+ updated: [agora ISO]
621
+ ---
622
+
623
+ ## Teste Atual
624
+
625
+ [aguardando teste humano]
626
+
627
+ ## Testes
628
+
629
+ {Para cada item human_verification do VERIFICATION.md:}
630
+
631
+ ### {N}. {descrição do item}
632
+ expected: {comportamento esperado do VERIFICATION.md}
633
+ result: [pendente]
634
+
635
+ ## Resumo
636
+
637
+ total: {count}
638
+ passed: 0
639
+ issues: 0
640
+ pending: {count}
641
+ skipped: 0
642
+ blocked: 0
643
+
644
+ ## Lacunas
645
+ ```
646
+
647
+ Commitar o arquivo:
648
+ ```bash
649
+ node "./.claude/framework/bin/tools.cjs" commit "test({phase_num}): persist human verification items as UAT" --files "{phase_dir}/{phase_num}-HUMAN-UAT.md"
650
+ ```
651
+
652
+ **Passo B: Apresentar ao usuário:**
653
+
654
+ ```
655
+ ## ✓ Fase {X}: {Nome} — Verificação Humana Necessária
656
+
657
+ Todas as verificações automatizadas passaram. {N} itens precisam de teste humano:
658
+
659
+ {Da seção human_verification do VERIFICATION.md}
660
+
661
+ Itens salvos em `{phase_num}-HUMAN-UAT.md` — aparecerão em `/progresso` e `/auditar-uat`.
662
+
663
+ "approved" → continuar | Reportar problemas → gap closure
664
+ ```
665
+
666
+ **Se o usuário disser "approved":** Prosseguir para `update_roadmap`. O arquivo HUMAN-UAT.md persiste com `status: partial` e aparecerá em verificações futuras de progresso até o usuário executar `/verificar-trabalho` nele.
667
+
668
+ **Se o usuário reportar problemas:** Prosseguir para gap closure como implementado atualmente.
669
+
670
+ **Se gaps_found:**
671
+ ```
672
+ ## ⚠ Fase {X}: {Nome} — Lacunas Encontradas
673
+
674
+ **Pontuação:** {N}/{M} must-haves verificados
675
+ **Relatório:** {phase_dir}/{phase_num}-VERIFICATION.md
676
+
677
+ ### O Que Está Faltando
678
+ {Resumos de lacunas do VERIFICATION.md}
679
+
680
+ ---
681
+ ## ▶ Próximo Passo
682
+
683
+ `/planejar-fase {X} --gaps ${WS}`
684
+
685
+ <sub>`/clear` primeiro → janela de contexto fresca</sub>
686
+
687
+ Também: `cat {phase_dir}/{phase_num}-VERIFICATION.md` — relatório completo
688
+ Também: `/verificar-trabalho {X} ${WS}` — teste manual primeiro
689
+ ```
690
+
691
+ Ciclo de gap closure: `/planejar-fase {X} --gaps ${WS}` lê VERIFICATION.md → cria planos de lacuna com `gap_closure: true` → usuário executa `/executar-fase {X} --gaps-only ${WS}` → verificador re-executa.
692
+ </step>
693
+
694
+ <step name="update_roadmap">
695
+ **Marcar fase como completa e atualizar todos os arquivos de rastreamento:**
696
+
697
+ ```bash
698
+ COMPLETION=$(node "./.claude/framework/bin/tools.cjs" phase complete "${PHASE_NUMBER}")
699
+ ```
700
+
701
+ O CLI gerencia:
702
+ - Marcar checkbox de fase `[x]` com data de conclusão
703
+ - Atualizar tabela de Progresso (Status → Completo, data)
704
+ - Atualizar contagem de planos para final
705
+ - Avançar STATE.md para próxima fase
706
+ - Atualizar rastreabilidade do REQUIREMENTS.md
707
+ - Escanear por dívida de verificação (retorna array `warnings`)
708
+
709
+ Extrair do resultado: `next_phase`, `next_phase_name`, `is_last_phase`, `warnings`, `has_warnings`.
710
+
711
+ **Se has_warnings for true:**
712
+ ```
713
+ ## Fase {X} marcada como completa com {N} avisos:
714
+
715
+ {listar cada aviso}
716
+
717
+ Estes itens são rastreados e aparecerão em `/progresso` e `/auditar-uat`.
718
+ ```
719
+
720
+ ```bash
721
+ node "./.claude/framework/bin/tools.cjs" commit "docs(phase-{X}): complete phase execution" --files .planning/ROADMAP.md .planning/STATE.md .planning/REQUIREMENTS.md {phase_dir}/*-VERIFICATION.md
722
+ ```
723
+ </step>
724
+
725
+ <step name="update_project_md">
726
+ **Evoluir PROJECT.md para refletir conclusão de fase (evita drift de documento de planejamento — #956):**
727
+
728
+ PROJECT.md rastreia requisitos validados, decisões e estado atual. Sem este passo,
729
+ PROJECT.md fica para trás silenciosamente ao longo de múltiplas fases.
730
+
731
+ 1. Ler `.planning/PROJECT.md`
732
+ 2. Se o arquivo existir e tiver seção `## Requisitos Validados` ou `## Requisitos`:
733
+ - Mover requisitos validados por esta fase de Ativos → Validados
734
+ - Adicionar nota breve: `Validado na Fase {X}: {Nome}`
735
+ 3. Se o arquivo tiver seção `## Estado Atual` ou similar:
736
+ - Atualizá-la para refletir conclusão desta fase (ex: "Fase {X} completa — {one-liner}")
737
+ 4. Atualizar o rodapé `Última atualização:` para a data de hoje
738
+ 5. Commitar a mudança:
739
+
740
+ ```bash
741
+ node "./.claude/framework/bin/tools.cjs" commit "docs(phase-{X}): evolve PROJECT.md after phase completion" --files .planning/PROJECT.md
742
+ ```
743
+
744
+ **Pular este passo se** `.planning/PROJECT.md` não existir.
745
+ </step>
746
+
747
+ <step name="offer_next">
748
+
749
+ **Exceção:** Se `gaps_found`, o passo `verify_phase_goal` já apresenta o caminho de gap-closure (`/planejar-fase {X} --gaps`). Nenhum roteamento adicional necessário — pular avanço automático.
750
+
751
+ **Verificação sem transição (criado por cadeia de avanço automático):**
752
+
753
+ Analisar flag `--no-transition` de $ARGUMENTS.
754
+
755
+ **Se flag `--no-transition` presente:**
756
+
757
+ Execute-phase foi criado por avanço automático do plan-phase. NÃO executar transition.md.
758
+ Após verificação passar e roadmap ser atualizado, retornar status de conclusão ao pai:
759
+
760
+ ```
761
+ ## FASE CONCLUÍDA
762
+
763
+ Fase: ${PHASE_NUMBER} - ${PHASE_NAME}
764
+ Planos: ${completed_count}/${total_count}
765
+ Verificação: {Passou | Lacunas Encontradas}
766
+
767
+ [Incluir saída de aggregate_results]
768
+ ```
769
+
770
+ PARAR. Não prosseguir para avanço automático ou transição.
771
+
772
+ **Se flag `--no-transition` NÃO estiver presente:**
773
+
774
+ **Detecção de avanço automático:**
775
+
776
+ 1. Analisar flag `--auto` de $ARGUMENTS
777
+ 2. Ler tanto a flag de cadeia quanto a preferência do usuário (flag de cadeia já sincronizada no passo init):
778
+ ```bash
779
+ AUTO_CHAIN=$(node "./.claude/framework/bin/tools.cjs" config-get workflow._auto_chain_active 2>/dev/null || echo "false")
780
+ AUTO_CFG=$(node "./.claude/framework/bin/tools.cjs" config-get workflow.auto_advance 2>/dev/null || echo "false")
781
+ ```
782
+
783
+ **Se flag `--auto` presente OU `AUTO_CHAIN` for true OU `AUTO_CFG` for true (E verificação passou sem lacunas):**
784
+
785
+ ```
786
+ ╔══════════════════════════════════════════╗
787
+ ║ AVANÇANDO AUTOMATICAMENTE → TRANSIÇÃO ║
788
+ ║ Fase {X} verificada, continuando cadeia ║
789
+ ╚══════════════════════════════════════════╝
790
+ ```
791
+
792
+ Executar o workflow de transição inline (NÃO usar Task — contexto do orquestrador está ~10-15%, transição precisa de dados de conclusão de fase já no contexto):
793
+
794
+ Ler e seguir `./.claude/framework/workflows/transition.md`, propagando a flag `--auto` para que ela se propague para a invocação da próxima fase.
795
+
796
+ **Se nenhum de `--auto`, `AUTO_CHAIN` ou `AUTO_CFG` for true:**
797
+
798
+ **PARAR. Não avançar automaticamente. Não executar transição. Não planejar próxima fase. Apresentar opções ao usuário e aguardar.**
799
+
800
+ **IMPORTANTE: NÃO existe comando `/transition`. Nunca sugeri-lo. O workflow de transição é interno apenas.**
801
+
802
+ ```
803
+ ## ✓ Fase {X}: {Nome} Concluída
804
+
805
+ /progresso ${WS} — ver roadmap atualizado
806
+ /discutir-fase {next} ${WS} — discutir próxima fase antes de planejar
807
+ /planejar-fase {next} ${WS} — planejar próxima fase
808
+ /executar-fase {next} ${WS} — executar próxima fase
809
+ ```
810
+
811
+ Sugira apenas os comandos listados acima. Não invente ou alucine nomes de comandos.
812
+ </step>
813
+
814
+ </process>
815
+
816
+ <context_efficiency>
817
+ Orquestrador: ~10-15% do contexto para janelas 200k, pode usar mais para janelas 1M+.
818
+ Subagentes: contexto fresco por agente (200k-1M dependendo do modelo). Sem polling (Task bloqueia). Sem vazamento de contexto.
819
+
820
+ Para modelos de contexto 1M+, considerar:
821
+ - Passar contexto mais rico (snippets de código, saídas de dependências) diretamente para executores em vez de apenas caminhos de arquivo
822
+ - Executar fases pequenas (≤3 planos, sem dependências) inline sem overhead de criação de subagente
823
+ - Relaxar recomendações de /clear — início de degradação de contexto é muito mais distante com janela 5x
824
+ </context_efficiency>
825
+
826
+ <failure_handling>
827
+ - **Falha falsa classifyHandoffIfNeeded:** Agente reporta "falhado" mas erro é `classifyHandoffIfNeeded is not defined` → Bug do Claude Code, não framework. Spot-check (SUMMARY existe, commits presentes) → se passou, tratar como sucesso
828
+ - **Agente falha no meio do plano:** SUMMARY.md ausente → reportar, perguntar ao usuário como prosseguir
829
+ - **Cadeia de dependências quebra:** Onda 1 falha → Dependentes da Onda 2 provavelmente falham → usuário escolhe tentar ou pular
830
+ - **Todos os agentes na onda falham:** Problema sistêmico → parar, reportar para investigação
831
+ - **Checkpoint não resolvível:** "Pular este plano?" ou "Abortar execução da fase?" → registrar progresso parcial no STATE.md
832
+ </failure_handling>
833
+
834
+ <resumption>
835
+ Re-executar `/executar-fase {phase}` → discover_plans encontra SUMMARYs concluídos → os pula → retoma do primeiro plano incompleto → continua execução de ondas.
836
+
837
+ STATE.md rastreia: último plano concluído, onda atual, checkpoints pendentes.
838
+ </resumption>