@luanpdd/kit-mcp 1.30.2 → 1.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (365) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +168 -168
  3. package/gates/agent-no-recursive-dispatch.md +84 -82
  4. package/kit/COMANDOS.md +138 -138
  5. package/kit/COMPATIBILITY.md +5 -0
  6. package/kit/README.md +76 -76
  7. package/kit/agents/advisor-researcher.md +107 -106
  8. package/kit/agents/ai-mutation-tester.md +1 -0
  9. package/kit/agents/assumptions-analyzer.md +108 -107
  10. package/kit/agents/audit-log-implementer.md +314 -313
  11. package/kit/agents/auditor-consistencia-isolamento.md +414 -413
  12. package/kit/agents/b2b-saas-architect.md +157 -156
  13. package/kit/agents/burn-rate-forecaster.md +1 -0
  14. package/kit/agents/cascading-failures-auditor.md +299 -298
  15. package/kit/agents/codebase-mapper.md +769 -768
  16. package/kit/agents/crm-pipeline-implementer.md +257 -256
  17. package/kit/agents/debugger.md +814 -813
  18. package/kit/agents/detector-tenant-quente.md +338 -337
  19. package/kit/agents/evolution-go-integrator.md +201 -200
  20. package/kit/agents/example-reviewer.md +22 -21
  21. package/kit/agents/executor.md +565 -564
  22. package/kit/agents/golden-signals-instrumenter.md +1 -0
  23. package/kit/agents/incident-investigator.md +1 -0
  24. package/kit/agents/integration-checker.md +201 -200
  25. package/kit/agents/invite-flow-implementer.md +190 -189
  26. package/kit/agents/legacy-characterizer.md +369 -368
  27. package/kit/agents/lgpd-compliance-auditor.md +296 -295
  28. package/kit/agents/load-shedding-instrumenter.md +1 -0
  29. package/kit/agents/multi-tenant-isolation-auditor.md +254 -253
  30. package/kit/agents/multi-tenant-rls-writer.md +341 -340
  31. package/kit/agents/nyquist-auditor.md +179 -178
  32. package/kit/agents/observability-coverage-auditor.md +316 -315
  33. package/kit/agents/observability-instrumenter.md +1 -0
  34. package/kit/agents/omm-auditor.md +1 -0
  35. package/kit/agents/org-onboarding-implementer.md +224 -223
  36. package/kit/agents/payload-capture-instrumenter.md +274 -273
  37. package/kit/agents/phase-researcher.md +697 -696
  38. package/kit/agents/plan-checker.md +273 -272
  39. package/kit/agents/planner.md +923 -922
  40. package/kit/agents/postmortem-writer.md +1 -0
  41. package/kit/agents/project-researcher.md +653 -652
  42. package/kit/agents/prr-conductor.md +1 -0
  43. package/kit/agents/refactor-safety-auditor.md +405 -404
  44. package/kit/agents/release-pipeline-auditor.md +1 -0
  45. package/kit/agents/research-synthesizer.md +246 -245
  46. package/kit/agents/roadmapper.md +678 -677
  47. package/kit/agents/schema-checker.md +1 -0
  48. package/kit/agents/seam-finder.md +360 -359
  49. package/kit/agents/shotgun-surgery-detector.md +350 -349
  50. package/kit/agents/slo-engineer.md +1 -0
  51. package/kit/agents/storytelling-analyst.md +1 -0
  52. package/kit/agents/supabase-architect.md +1 -0
  53. package/kit/agents/supabase-auth-bootstrapper.md +16 -1
  54. package/kit/agents/supabase-auth-hook-writer.md +418 -0
  55. package/kit/agents/supabase-branching-architect.md +563 -562
  56. package/kit/agents/supabase-cicd-pipeline-implementer.md +778 -777
  57. package/kit/agents/supabase-column-privileges-writer.md +400 -399
  58. package/kit/agents/supabase-edge-fn-tester.md +2 -1
  59. package/kit/agents/supabase-edge-fn-writer.md +2 -1
  60. package/kit/agents/supabase-mfa-implementer.md +439 -0
  61. package/kit/agents/supabase-migration-writer.md +386 -385
  62. package/kit/agents/supabase-oauth-server-implementer.md +507 -0
  63. package/kit/agents/supabase-rbac-implementer.md +393 -392
  64. package/kit/agents/supabase-realtime-implementer.md +364 -363
  65. package/kit/agents/supabase-rls-hardener.md +522 -521
  66. package/kit/agents/supabase-rls-writer.md +324 -323
  67. package/kit/agents/supabase-roles-implementer.md +356 -355
  68. package/kit/agents/supabase-social-auth-implementer.md +451 -0
  69. package/kit/agents/supabase-sso-saml-architect.md +549 -0
  70. package/kit/agents/supabase-storage-implementer.md +1 -0
  71. package/kit/agents/super-admin-implementer.md +282 -281
  72. package/kit/agents/toil-auditor.md +1 -0
  73. package/kit/agents/ui-auditor.md +438 -437
  74. package/kit/agents/ui-checker.md +303 -302
  75. package/kit/agents/ui-researcher.md +356 -355
  76. package/kit/agents/user-profiler.md +176 -175
  77. package/kit/agents/validador-evolucao-schema.md +336 -335
  78. package/kit/agents/verifier.md +729 -728
  79. package/kit/commands/adicionar-backlog.md +75 -75
  80. package/kit/commands/adicionar-fase.md +42 -42
  81. package/kit/commands/adicionar-tarefa.md +45 -45
  82. package/kit/commands/adicionar-testes.md +41 -41
  83. package/kit/commands/ajuda.md +21 -21
  84. package/kit/commands/atualizar.md +37 -37
  85. package/kit/commands/auditar-cascading.md +111 -111
  86. package/kit/commands/auditar-marco.md +179 -179
  87. package/kit/commands/auditar-observabilidade-cobertura.md +183 -183
  88. package/kit/commands/auditar-refactor.md +219 -219
  89. package/kit/commands/auditar-release.md +109 -109
  90. package/kit/commands/auditar-uat.md +23 -23
  91. package/kit/commands/autonomo.md +40 -40
  92. package/kit/commands/branch-pr.md +24 -24
  93. package/kit/commands/burn-rate-status.md +408 -408
  94. package/kit/commands/capturar-payloads.md +193 -193
  95. package/kit/commands/caracterizar.md +212 -212
  96. package/kit/commands/concluir-marco.md +247 -247
  97. package/kit/commands/configuracoes.md +36 -36
  98. package/kit/commands/dados-distribuidos.md +188 -188
  99. package/kit/commands/definir-perfil.md +10 -10
  100. package/kit/commands/depurar.md +190 -190
  101. package/kit/commands/detectar-duplicacao.md +197 -197
  102. package/kit/commands/discutir-fase.md +131 -131
  103. package/kit/commands/encontrar-seams.md +136 -136
  104. package/kit/commands/entrar-discord.md +17 -17
  105. package/kit/commands/estatisticas.md +18 -18
  106. package/kit/commands/example-greeting.md +33 -33
  107. package/kit/commands/executar-fase.md +58 -58
  108. package/kit/commands/expresso.md +56 -56
  109. package/kit/commands/fase-ui.md +34 -34
  110. package/kit/commands/fazer.md +57 -57
  111. package/kit/commands/fio.md +125 -125
  112. package/kit/commands/fluxos-trabalho.md +64 -64
  113. package/kit/commands/forense.md +176 -176
  114. package/kit/commands/gerenciador.md +38 -38
  115. package/kit/commands/inserir-fase.md +31 -31
  116. package/kit/commands/legacy.md +263 -263
  117. package/kit/commands/limpeza.md +17 -17
  118. package/kit/commands/listar-hipoteses-fase.md +45 -45
  119. package/kit/commands/listar-workspaces.md +18 -18
  120. package/kit/commands/load-shedding.md +117 -117
  121. package/kit/commands/mapear-codebase.md +70 -70
  122. package/kit/commands/multi-tenant.md +163 -163
  123. package/kit/commands/nota.md +33 -33
  124. package/kit/commands/novo-marco.md +43 -43
  125. package/kit/commands/novo-projeto.md +41 -41
  126. package/kit/commands/novo-workspace.md +43 -43
  127. package/kit/commands/pausar-trabalho.md +37 -37
  128. package/kit/commands/perfil-usuario.md +45 -45
  129. package/kit/commands/pesquisar-fase.md +195 -195
  130. package/kit/commands/planejar-fase.md +67 -67
  131. package/kit/commands/planejar-lacunas.md +33 -33
  132. package/kit/commands/plantar-ideia.md +25 -25
  133. package/kit/commands/progresso.md +24 -24
  134. package/kit/commands/proximo.md +30 -30
  135. package/kit/commands/publicar.md +490 -490
  136. package/kit/commands/rapido.md +35 -35
  137. package/kit/commands/reaplicar-patches.md +124 -124
  138. package/kit/commands/refactor-seguro.md +321 -321
  139. package/kit/commands/relatorio-sessao.md +19 -19
  140. package/kit/commands/remover-fase.md +31 -31
  141. package/kit/commands/remover-workspace.md +26 -26
  142. package/kit/commands/resumo-marco.md +50 -50
  143. package/kit/commands/retomar-trabalho.md +40 -40
  144. package/kit/commands/revisar-backlog.md +60 -60
  145. package/kit/commands/revisar-ui.md +32 -32
  146. package/kit/commands/revisar.md +37 -37
  147. package/kit/commands/saude.md +21 -21
  148. package/kit/commands/setup-notion.md +93 -93
  149. package/kit/commands/storytelling.md +179 -179
  150. package/kit/commands/supabase.md +21 -1
  151. package/kit/commands/sync-main.md +68 -68
  152. package/kit/commands/validar-fase.md +35 -35
  153. package/kit/commands/verificar-tarefas.md +44 -44
  154. package/kit/commands/verificar-trabalho.md +64 -64
  155. package/kit/file-manifest.json +100 -84
  156. package/kit/framework/bin/lib/commands.cjs +959 -959
  157. package/kit/framework/bin/lib/config.cjs +442 -442
  158. package/kit/framework/bin/lib/core.cjs +1230 -1230
  159. package/kit/framework/bin/lib/frontmatter.cjs +336 -336
  160. package/kit/framework/bin/lib/init.cjs +1442 -1442
  161. package/kit/framework/bin/lib/milestone.cjs +252 -252
  162. package/kit/framework/bin/lib/model-profiles.cjs +68 -68
  163. package/kit/framework/bin/lib/phase.cjs +888 -888
  164. package/kit/framework/bin/lib/profile-output.cjs +952 -952
  165. package/kit/framework/bin/lib/profile-pipeline.cjs +539 -539
  166. package/kit/framework/bin/lib/roadmap.cjs +329 -329
  167. package/kit/framework/bin/lib/security.cjs +382 -382
  168. package/kit/framework/bin/lib/state.cjs +1031 -1031
  169. package/kit/framework/bin/lib/template.cjs +222 -222
  170. package/kit/framework/bin/lib/uat.cjs +282 -282
  171. package/kit/framework/bin/lib/verify.cjs +888 -888
  172. package/kit/framework/bin/lib/workstream.cjs +491 -491
  173. package/kit/framework/bin/tools.cjs +918 -918
  174. package/kit/framework/commands/workstreams.md +63 -63
  175. package/kit/framework/references/checkpoints.md +778 -778
  176. package/kit/framework/references/continuation-format.md +249 -249
  177. package/kit/framework/references/decimal-phase-calculation.md +64 -64
  178. package/kit/framework/references/git-integration.md +295 -295
  179. package/kit/framework/references/git-planning-commit.md +38 -38
  180. package/kit/framework/references/model-profile-resolution.md +36 -36
  181. package/kit/framework/references/model-profiles.md +139 -139
  182. package/kit/framework/references/phase-argument-parsing.md +61 -61
  183. package/kit/framework/references/planning-config.md +202 -202
  184. package/kit/framework/references/questioning.md +162 -162
  185. package/kit/framework/references/tdd.md +263 -263
  186. package/kit/framework/references/ui-brand.md +160 -160
  187. package/kit/framework/references/user-profiling.md +657 -657
  188. package/kit/framework/references/verification-patterns.md +612 -612
  189. package/kit/framework/references/workstream-flag.md +58 -58
  190. package/kit/framework/templates/DEBUG.md +164 -164
  191. package/kit/framework/templates/UAT.md +265 -265
  192. package/kit/framework/templates/UI-SPEC.md +100 -100
  193. package/kit/framework/templates/VALIDATION.md +76 -76
  194. package/kit/framework/templates/claude-md.md +122 -122
  195. package/kit/framework/templates/codebase/architecture.md +185 -185
  196. package/kit/framework/templates/codebase/concerns.md +205 -205
  197. package/kit/framework/templates/codebase/conventions.md +204 -204
  198. package/kit/framework/templates/codebase/integrations.md +192 -192
  199. package/kit/framework/templates/codebase/stack.md +158 -158
  200. package/kit/framework/templates/codebase/structure.md +199 -199
  201. package/kit/framework/templates/codebase/testing.md +301 -301
  202. package/kit/framework/templates/config.json +44 -44
  203. package/kit/framework/templates/context.md +352 -352
  204. package/kit/framework/templates/continue-here.md +78 -78
  205. package/kit/framework/templates/copilot-instructions.md +7 -7
  206. package/kit/framework/templates/debug-subagent-prompt.md +91 -91
  207. package/kit/framework/templates/dev-preferences.md +20 -20
  208. package/kit/framework/templates/discovery.md +146 -146
  209. package/kit/framework/templates/discussion-log.md +63 -63
  210. package/kit/framework/templates/milestone-archive.md +123 -123
  211. package/kit/framework/templates/milestone.md +115 -115
  212. package/kit/framework/templates/phase-prompt.md +610 -610
  213. package/kit/framework/templates/planner-subagent-prompt.md +117 -117
  214. package/kit/framework/templates/project.md +186 -186
  215. package/kit/framework/templates/requirements.md +231 -231
  216. package/kit/framework/templates/research-project/ARCHITECTURE.md +204 -204
  217. package/kit/framework/templates/research-project/FEATURES.md +147 -147
  218. package/kit/framework/templates/research-project/PITFALLS.md +200 -200
  219. package/kit/framework/templates/research-project/STACK.md +120 -120
  220. package/kit/framework/templates/research-project/SUMMARY.md +170 -170
  221. package/kit/framework/templates/research.md +419 -419
  222. package/kit/framework/templates/retrospective.md +54 -54
  223. package/kit/framework/templates/roadmap.md +202 -202
  224. package/kit/framework/templates/state.md +176 -176
  225. package/kit/framework/templates/summary-complex.md +59 -59
  226. package/kit/framework/templates/summary-minimal.md +41 -41
  227. package/kit/framework/templates/summary-standard.md +48 -48
  228. package/kit/framework/templates/summary.md +209 -209
  229. package/kit/framework/templates/user-profile.md +146 -146
  230. package/kit/framework/templates/user-setup.md +256 -256
  231. package/kit/framework/templates/verification-report.md +258 -258
  232. package/kit/framework/workflows/add-phase.md +112 -112
  233. package/kit/framework/workflows/add-tests.md +351 -351
  234. package/kit/framework/workflows/add-todo.md +158 -158
  235. package/kit/framework/workflows/audit-milestone.md +340 -340
  236. package/kit/framework/workflows/audit-uat.md +109 -109
  237. package/kit/framework/workflows/autonomous.md +891 -891
  238. package/kit/framework/workflows/check-todos.md +177 -177
  239. package/kit/framework/workflows/cleanup.md +152 -152
  240. package/kit/framework/workflows/complete-milestone.md +696 -696
  241. package/kit/framework/workflows/diagnose-issues.md +231 -231
  242. package/kit/framework/workflows/discovery-phase.md +289 -289
  243. package/kit/framework/workflows/discuss-phase-assumptions.md +653 -653
  244. package/kit/framework/workflows/discuss-phase.md +784 -784
  245. package/kit/framework/workflows/do.md +104 -104
  246. package/kit/framework/workflows/execute-phase.md +838 -838
  247. package/kit/framework/workflows/execute-plan.md +510 -510
  248. package/kit/framework/workflows/fast.md +102 -102
  249. package/kit/framework/workflows/forensics.md +265 -265
  250. package/kit/framework/workflows/health.md +181 -181
  251. package/kit/framework/workflows/help.md +619 -619
  252. package/kit/framework/workflows/insert-phase.md +130 -130
  253. package/kit/framework/workflows/list-phase-assumptions.md +178 -178
  254. package/kit/framework/workflows/list-workspaces.md +56 -56
  255. package/kit/framework/workflows/manager.md +362 -362
  256. package/kit/framework/workflows/map-codebase.md +377 -377
  257. package/kit/framework/workflows/milestone-summary.md +223 -223
  258. package/kit/framework/workflows/new-milestone.md +486 -486
  259. package/kit/framework/workflows/new-project.md +1159 -1159
  260. package/kit/framework/workflows/new-workspace.md +237 -237
  261. package/kit/framework/workflows/next.md +97 -97
  262. package/kit/framework/workflows/node-repair.md +92 -92
  263. package/kit/framework/workflows/note.md +156 -156
  264. package/kit/framework/workflows/pause-work.md +176 -176
  265. package/kit/framework/workflows/plan-milestone-gaps.md +273 -273
  266. package/kit/framework/workflows/plan-phase.md +765 -765
  267. package/kit/framework/workflows/plant-seed.md +169 -169
  268. package/kit/framework/workflows/pr-branch.md +129 -129
  269. package/kit/framework/workflows/profile-user.md +450 -450
  270. package/kit/framework/workflows/progress.md +507 -507
  271. package/kit/framework/workflows/quick.md +757 -757
  272. package/kit/framework/workflows/remove-phase.md +155 -155
  273. package/kit/framework/workflows/remove-workspace.md +90 -90
  274. package/kit/framework/workflows/research-phase.md +82 -82
  275. package/kit/framework/workflows/resume-project.md +326 -326
  276. package/kit/framework/workflows/review.md +228 -228
  277. package/kit/framework/workflows/session-report.md +146 -146
  278. package/kit/framework/workflows/settings.md +283 -283
  279. package/kit/framework/workflows/ship.md +228 -228
  280. package/kit/framework/workflows/stats.md +60 -60
  281. package/kit/framework/workflows/transition.md +671 -671
  282. package/kit/framework/workflows/ui-phase.md +302 -302
  283. package/kit/framework/workflows/ui-review.md +165 -165
  284. package/kit/framework/workflows/update.md +323 -323
  285. package/kit/framework/workflows/validate-phase.md +174 -174
  286. package/kit/framework/workflows/verify-phase.md +252 -252
  287. package/kit/framework/workflows/verify-work.md +637 -637
  288. package/kit/hooks/check-update.js +118 -118
  289. package/kit/hooks/context-monitor.js +163 -163
  290. package/kit/hooks/kit-attribution-reminder.cjs +29 -50
  291. package/kit/hooks/kit-router.cjs +137 -0
  292. package/kit/hooks/prompt-guard.js +103 -103
  293. package/kit/hooks/statusline.js +125 -125
  294. package/kit/hooks/workflow-guard.js +101 -101
  295. package/kit/settings.json +45 -45
  296. package/kit/skills/ai-prompt-characterization/SKILL.md +335 -335
  297. package/kit/skills/armadilhas-sistemas-distribuidos/SKILL.md +447 -447
  298. package/kit/skills/audit-log-multi-tenant/SKILL.md +340 -340
  299. package/kit/skills/b2b-saas-architecture/SKILL.md +300 -300
  300. package/kit/skills/consistencia-leitura-replica/SKILL.md +385 -385
  301. package/kit/skills/crm-lead-pipeline-patterns/SKILL.md +343 -343
  302. package/kit/skills/escolha-modelo-consistencia/SKILL.md +494 -494
  303. package/kit/skills/evolucao-schema-compativel/SKILL.md +448 -448
  304. package/kit/skills/evolution-go-whatsapp-integration/SKILL.md +322 -322
  305. package/kit/skills/example-skill/SKILL.md +42 -42
  306. package/kit/skills/legacy-api-only-applications/SKILL.md +358 -358
  307. package/kit/skills/legacy-characterization-tests/SKILL.md +330 -330
  308. package/kit/skills/legacy-effect-analysis/SKILL.md +331 -331
  309. package/kit/skills/legacy-extract-class/SKILL.md +203 -203
  310. package/kit/skills/legacy-programming-by-difference/SKILL.md +252 -252
  311. package/kit/skills/legacy-seams-and-test-harness/SKILL.md +460 -460
  312. package/kit/skills/legacy-shotgun-surgery/SKILL.md +286 -286
  313. package/kit/skills/legacy-sprout-wrap-techniques/SKILL.md +434 -434
  314. package/kit/skills/legacy-storytelling-naked-crc/SKILL.md +270 -270
  315. package/kit/skills/lgpd-multi-tenant-compliance/SKILL.md +340 -340
  316. package/kit/skills/member-invite-flow/SKILL.md +305 -305
  317. package/kit/skills/member-management-react-shadcn/SKILL.md +328 -328
  318. package/kit/skills/multi-tenant-performance-scaling/SKILL.md +316 -316
  319. package/kit/skills/multi-tenant-rls-hierarchy/SKILL.md +342 -342
  320. package/kit/skills/org-onboarding-flow/SKILL.md +257 -257
  321. package/kit/skills/org-switcher-react-pattern/SKILL.md +349 -349
  322. package/kit/skills/permission-gate-react-pattern/SKILL.md +271 -271
  323. package/kit/skills/postgres-isolamento-concorrencia/SKILL.md +552 -552
  324. package/kit/skills/pre-refactor-characterization/SKILL.md +421 -421
  325. package/kit/skills/rbac-permissions-matrix-supabase/SKILL.md +338 -338
  326. package/kit/skills/streams-eventos-cdc/SKILL.md +711 -711
  327. package/kit/skills/supabase-auth-hardening/SKILL.md +674 -0
  328. package/kit/skills/supabase-auth-hooks/SKILL.md +875 -0
  329. package/kit/skills/supabase-auth-methods/SKILL.md +486 -0
  330. package/kit/skills/supabase-auth-sessions/SKILL.md +579 -0
  331. package/kit/skills/supabase-auth-ssr/SKILL.md +60 -14
  332. package/kit/skills/supabase-branching-workflow/SKILL.md +544 -544
  333. package/kit/skills/supabase-ci-cd-github-actions/SKILL.md +880 -880
  334. package/kit/skills/supabase-column-level-security/SKILL.md +426 -426
  335. package/kit/skills/supabase-config-toml-remotes/SKILL.md +807 -807
  336. package/kit/skills/supabase-custom-claims-rbac/SKILL.md +472 -472
  337. package/kit/skills/supabase-edge-functions/SKILL.md +1 -1
  338. package/kit/skills/supabase-edge-functions-auth/SKILL.md +1 -1
  339. package/kit/skills/supabase-edge-functions-limits/SKILL.md +1 -1
  340. package/kit/skills/supabase-edge-functions-mcp-server/SKILL.md +1 -1
  341. package/kit/skills/supabase-edge-functions-testing/SKILL.md +1 -1
  342. package/kit/skills/supabase-edge-runtime-builtins/SKILL.md +1 -1
  343. package/kit/skills/supabase-enterprise-sso-saml/SKILL.md +545 -0
  344. package/kit/skills/supabase-jwt-signing-keys/SKILL.md +399 -0
  345. package/kit/skills/supabase-mfa/SKILL.md +488 -0
  346. package/kit/skills/supabase-migration-repair/SKILL.md +823 -823
  347. package/kit/skills/supabase-migrations/SKILL.md +297 -297
  348. package/kit/skills/supabase-oauth-server/SKILL.md +537 -0
  349. package/kit/skills/supabase-pgtap-testing/SKILL.md +1053 -1053
  350. package/kit/skills/supabase-postgres-roles/SKILL.md +392 -392
  351. package/kit/skills/supabase-realtime/SKILL.md +460 -460
  352. package/kit/skills/supabase-rls-defense-in-depth/SKILL.md +418 -418
  353. package/kit/skills/supabase-rls-policies/SKILL.md +635 -635
  354. package/kit/skills/supabase-social-oauth/SKILL.md +480 -0
  355. package/kit/skills/supabase-third-party-auth/SKILL.md +450 -0
  356. package/kit/skills/super-admin-platform-pattern/SKILL.md +326 -326
  357. package/kit/skills/tenant-quente-mitigacao/SKILL.md +605 -605
  358. package/kit/skills/whatsapp-conversation-state-machine/SKILL.md +287 -287
  359. package/package.json +1 -1
  360. package/src/core/kit.js +216 -216
  361. package/src/core/reflect.js +247 -247
  362. package/src/core/reverse-sync.js +372 -372
  363. package/src/core/sync.js +437 -418
  364. package/src/core/watch.js +121 -121
  365. package/src/mcp-server/index.js +794 -746
@@ -1,653 +1,653 @@
1
- <purpose>
2
- Extrair decisões de implementação que agentes downstream precisam — usando análise primeiro da base de código
3
- e surfacing de premissas em vez de questionamento estilo entrevista.
4
-
5
- Você é um parceiro de pensamento, não um entrevistador. Analise a base de código profundamente, surfeie o que
6
- você acredita com base em evidências, e pergunte ao usuário apenas para corrigir o que está errado.
7
- </purpose>
8
-
9
- <available_agent_types>
10
- Tipos de subagentes framework válidos (use nomes exatos — não use 'general-purpose' como fallback):
11
- - assumptions-analyzer — Analisa a base de código para surfaçar premissas de implementação
12
- </available_agent_types>
13
-
14
- <downstream_awareness>
15
- **CONTEXT.md alimenta:**
16
-
17
- 1. **phase-researcher** — Lê CONTEXT.md para saber O QUE pesquisar
18
- 2. **planner** — Lê CONTEXT.md para saber QUAIS decisões estão bloqueadas
19
-
20
- **Seu trabalho:** Capturar decisões de forma clara o suficiente para que agentes downstream possam agir sobre elas
21
- sem perguntar ao usuário novamente. A saída é idêntica ao modo discuss — mesmo formato CONTEXT.md.
22
- </downstream_awareness>
23
-
24
- <philosophy>
25
- **Filosofia do modo assumptions:**
26
-
27
- O usuário é um visionário, não um arqueólogo de base de código. Eles precisam de contexto suficiente para avaliar
28
- se suas premissas correspondem à intenção deles — não para responder perguntas que você poderia descobrir
29
- lendo o código.
30
-
31
- - Leia a base de código PRIMEIRO, forme opiniões SEGUNDO, pergunte APENAS sobre o que é genuinamente incerto
32
- - Cada premissa deve citar evidências (caminhos de arquivo, padrões encontrados)
33
- - Cada premissa deve declarar consequências se estiver errada
34
- - Minimize interações com o usuário: ~2-4 correções vs ~15-20 perguntas
35
- </philosophy>
36
-
37
- <scope_guardrail>
38
- **CRÍTICO: Sem expansão de escopo.**
39
-
40
- O limite da fase vem do ROADMAP.md e é FIXO. A discussão esclarece COMO implementar
41
- o que está no escopo, nunca SE adicionar novas capacidades.
42
-
43
- Quando o usuário sugere expansão de escopo:
44
- "[Funcionalidade X] seria uma nova capacidade — isso é sua própria fase.
45
- Quer que eu anote para o backlog do roadmap? Por enquanto, vamos focar em [domínio da fase]."
46
-
47
- Capturar a ideia em "Ideias Adiadas". Não perder, não agir.
48
- </scope_guardrail>
49
-
50
- <answer_validation>
51
- **IMPORTANTE: Validação de resposta** — Após cada chamada AskUserQuestion, verificar se a resposta
52
- está vazia ou apenas com espaços em branco. Se sim:
53
- 1. Tentar a pergunta novamente uma vez com os mesmos parâmetros
54
- 2. Se ainda vazia, apresentar as opções como uma lista numerada em texto simples
55
-
56
- **Modo texto (`workflow.text_mode: true` na config ou flag `--text`):**
57
- Quando o modo texto estiver ativo, não usar AskUserQuestion de forma alguma. Apresentar cada pergunta como uma
58
- lista numerada em texto simples e pedir ao usuário que digite o número da escolha.
59
- </answer_validation>
60
-
61
- <process>
62
-
63
- <step name="initialize" priority="first">
64
- Número da fase do argumento (obrigatório).
65
-
66
- ```bash
67
- INIT=$(node "./.claude/framework/bin/tools.cjs" init phase-op "${PHASE}")
68
- if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
69
- AGENT_SKILLS_ANALYZER=$(node "./.claude/framework/bin/tools.cjs" agent-skills assumptions-analyzer 2>/dev/null)
70
- ```
71
-
72
- Analisar JSON para: `commit_docs`, `phase_found`, `phase_dir`, `phase_number`, `phase_name`,
73
- `phase_slug`, `padded_phase`, `has_research`, `has_context`, `has_plans`, `has_verification`,
74
- `plan_count`, `roadmap_exists`, `planning_exists`.
75
-
76
- **Se `phase_found` for falso:**
77
- ```
78
- Fase [X] não encontrada no roadmap.
79
-
80
- Use /progresso para ver as fases disponíveis.
81
- ```
82
- Sair do workflow.
83
-
84
- **Se `phase_found` for verdadeiro:** Continuar para check_existing.
85
-
86
- **Modo auto** — Se `--auto` estiver presente em ARGUMENTS:
87
- - Em `check_existing`: auto-selecionar "Atualizar" (se contexto existe) ou continuar sem perguntar
88
- - Em `present_assumptions`: pular portão de confirmação, prosseguir diretamente para escrever CONTEXT.md
89
- - Em `correct_assumptions`: auto-selecionar opção recomendada para cada correção
90
- - Registrar cada escolha auto-selecionada inline
91
- - Após conclusão, avançar automaticamente para plan-phase
92
- </step>
93
-
94
- <step name="check_existing">
95
- Verificar se CONTEXT.md já existe usando `has_context` do init.
96
-
97
- ```bash
98
- ls ${phase_dir}/*-CONTEXT.md 2>/dev/null || true
99
- ```
100
-
101
- **Se existir:**
102
-
103
- **Se `--auto`:** Auto-selecionar "Atualizar". Registrar: `[auto] Contexto existe — atualizando com análise baseada em premissas.`
104
-
105
- **Caso contrário:** Usar AskUserQuestion:
106
- - header: "Contexto"
107
- - question: "A Fase [X] já tem contexto. O que você quer fazer?"
108
- - options:
109
- - "Atualizar" — Re-analisar base de código e atualizar premissas
110
- - "Ver" — Mostrar o que está lá
111
- - "Pular" — Usar contexto existente como está
112
-
113
- Se "Atualizar": Carregar existente, continuar para load_prior_context
114
- Se "Ver": Exibir CONTEXT.md, então oferecer atualizar/pular
115
- Se "Pular": Sair do workflow
116
-
117
- **Se não existir:**
118
-
119
- Verificar `has_plans` e `plan_count` do init. **Se `has_plans` for verdadeiro:**
120
-
121
- **Se `--auto`:** Auto-selecionar "Continuar e replanejar depois". Registrar: `[auto] Planos existem — continuando com análise de premissas, replanejará depois.`
122
-
123
- **Caso contrário:** Usar AskUserQuestion:
124
- - header: "Planos existem"
125
- - question: "A Fase [X] já tem {plan_count} plano(s) criado(s) sem contexto do usuário. Suas decisões aqui não afetarão planos existentes a menos que você replaneje."
126
- - options:
127
- - "Continuar e replanejar depois"
128
- - "Ver planos existentes"
129
- - "Cancelar"
130
-
131
- Se "Continuar e replanejar depois": Continuar para load_prior_context.
132
- Se "Ver planos existentes": Exibir arquivos de plano, então oferecer "Continuar" / "Cancelar".
133
- Se "Cancelar": Sair do workflow.
134
-
135
- **Se `has_plans` for falso:** Continuar para load_prior_context.
136
- </step>
137
-
138
- <step name="load_prior_context">
139
- Ler contexto de nível de projeto e fase anterior para evitar re-fazer perguntas já decididas.
140
-
141
- **Passo 1: Ler arquivos de nível de projeto**
142
- ```bash
143
- cat .planning/PROJECT.md 2>/dev/null || true
144
- cat .planning/REQUIREMENTS.md 2>/dev/null || true
145
- cat .planning/STATE.md 2>/dev/null || true
146
- ```
147
-
148
- Extrair destes:
149
- - **PROJECT.md** — Visão, princípios, não-negociáveis, preferências do usuário
150
- - **REQUIREMENTS.md** — Critérios de aceitação, restrições
151
- - **STATE.md** — Progresso atual, quaisquer flags
152
-
153
- **Passo 2: Ler todos os arquivos CONTEXT.md anteriores**
154
- ```bash
155
- (find .planning/phases -name "*-CONTEXT.md" 2>/dev/null || true) | sort
156
- ```
157
-
158
- Para cada CONTEXT.md onde o número da fase < fase atual:
159
- - Ler a seção `<decisions>` — estas são preferências bloqueadas
160
- - Ler `<specifics>` — referências particulares ou momentos "eu quero como X"
161
- - Notar padrões (ex: "usuário consistentemente prefere UI mínima")
162
-
163
- **Passo 3: Construir contexto interno `<prior_decisions>`**
164
-
165
- Estruturar as informações extraídas para uso na geração de premissas.
166
-
167
- **Se nenhum contexto anterior existir:** Continuar sem — esperado para fases iniciais.
168
- </step>
169
-
170
- <step name="cross_reference_todos">
171
- Verificar se algum todo pendente é relevante para o escopo desta fase.
172
-
173
- ```bash
174
- TODO_MATCHES=$(node "./.claude/framework/bin/tools.cjs" todo match-phase "${PHASE_NUMBER}")
175
- ```
176
-
177
- Analisar JSON para: `todo_count`, `matches[]`.
178
-
179
- **Se `todo_count` for 0:** Pular silenciosamente.
180
-
181
- **Se correspondências encontradas:** Apresentar todos correspondentes, usar AskUserQuestion (multiSelect) para dobrar os relevantes no escopo.
182
-
183
- **Para todos selecionados (dobrados):** Armazenar como `<folded_todos>` para a seção `<decisions>` do CONTEXT.md.
184
- **Para não selecionados:** Armazenar como `<reviewed_todos>` para a seção `<deferred>` do CONTEXT.md.
185
-
186
- **Modo auto (`--auto`):** Dobrar automaticamente todos os todos com score >= 0.4. Registrar a seleção.
187
- </step>
188
-
189
- <step name="scout_codebase">
190
- Varredura leve do código existente para informar a geração de premissas.
191
-
192
- **Passo 1: Verificar mapas de base de código existentes**
193
- ```bash
194
- ls .planning/codebase/*.md 2>/dev/null || true
195
- ```
196
-
197
- **Se mapas de base de código existirem:** Ler os relevantes (CONVENTIONS.md, STRUCTURE.md, STACK.md). Extrair componentes reutilizáveis, padrões, pontos de integração. Pular para o Passo 3.
198
-
199
- **Passo 2: Se não houver mapas de base de código, fazer grep direcionado**
200
-
201
- Extrair termos-chave do objetivo da fase, buscar arquivos relacionados.
202
-
203
- ```bash
204
- grep -rl "{termo1}\|{termo2}" src/ app/ --include="*.ts" --include="*.tsx" 2>/dev/null | head -10
205
- ```
206
-
207
- Ler os 3-5 arquivos mais relevantes.
208
-
209
- **Passo 3: Construir `<codebase_context>` interno**
210
-
211
- Identificar ativos reutilizáveis, padrões estabelecidos, pontos de integração e opções criativas. Armazenar internamente para uso em deep_codebase_analysis.
212
- </step>
213
-
214
- <step name="deep_codebase_analysis">
215
- Criar um agente `assumptions-analyzer` para analisar profundamente a base de código para esta fase. Isso
216
- mantém conteúdos brutos de arquivos fora da janela de contexto principal, protegendo o orçamento de tokens.
217
-
218
- **Resolver tier de calibração (se USER-PROFILE.md existir):**
219
-
220
- ```bash
221
- PROFILE_PATH="./.claude/framework/USER-PROFILE.md"
222
- ```
223
-
224
- Se o arquivo existir em PROFILE_PATH:
225
- - Prioridade 1: Ler config.json > preferences.vendor_philosophy (substituição de nível de projeto)
226
- - Prioridade 2: Ler avaliação de Vendor Choices/Philosophy do USER-PROFILE.md (global)
227
- - Prioridade 3: Padrão para "standard"
228
-
229
- Mapear para tier de calibração:
230
- - conservative OU thorough-evaluator → full_maturity (mais alternativas, evidência detalhada)
231
- - opinionated → minimal_decisive (menos alternativas, recomendações decisivas)
232
- - pragmatic-fast OU qualquer outro valor → standard
233
-
234
- Se não houver USER-PROFILE.md: calibration_tier = "standard"
235
-
236
- **Criar subagente Explore:**
237
-
238
- ```
239
- Task(subagent_type="assumptions-analyzer", prompt="""
240
- Analisar a base de código para a Fase {PHASE}: {phase_name}.
241
-
242
- Objetivo da fase: {roadmap_description}
243
- Decisões anteriores: {prior_decisions_summary}
244
- Dicas do scout de base de código: {codebase_context_summary}
245
- Calibração: {calibration_tier}
246
-
247
- Seu trabalho:
248
- 1. Ler descrição da fase {PHASE} do ROADMAP.md
249
- 2. Ler quaisquer arquivos CONTEXT.md anteriores de fases anteriores
250
- 3. Glob/Grep para arquivos relacionados a: {phase_relevant_terms}
251
- 4. Ler 5-15 arquivos fonte mais relevantes
252
- 5. Retornar premissas estruturadas
253
-
254
- ## Formato de Saída
255
-
256
- Retornar EXATAMENTE esta estrutura:
257
-
258
- ## Premissas
259
-
260
- ### [Nome da Área] (ex: "Abordagem Técnica")
261
- - **Premissa:** [Declaração de decisão]
262
- - **Por quê desta forma:** [Evidência da base de código — citar caminhos de arquivo]
263
- - **Se errado:** [Consequência concreta de estar errado]
264
- - **Confiança:** Confiante | Provável | Incerto
265
-
266
- (3-5 áreas, calibradas por tier:
267
- - full_maturity: 3-5 áreas, 2-3 alternativas por item Provável/Incerto
268
- - standard: 3-4 áreas, 2 alternativas por item Provável/Incerto
269
- - minimal_decisive: 2-3 áreas, recomendação única decisiva por item)
270
-
271
- ## Precisa de Pesquisa Externa
272
- [Tópicos onde a base de código sozinha é insuficiente — compatibilidade de versão de biblioteca,
273
- melhores práticas do ecossistema, etc. Deixar vazio se a base de código fornece evidência suficiente.]
274
-
275
- ${AGENT_SKILLS_ANALYZER}
276
- """)
277
- ```
278
-
279
- Analisar a resposta do subagente. Extrair:
280
- - `assumptions[]` — cada um com área, declaração, evidência, consequência, confiança
281
- - `needs_research[]` — tópicos que requerem pesquisa externa (pode estar vazio)
282
-
283
- **Inicializar acumulador de refs canônicas:**
284
- - Fonte 1: Copiar `Canonical refs:` do ROADMAP.md para esta fase, expandir para caminhos completos
285
- - Fonte 2: Verificar REQUIREMENTS.md e PROJECT.md para specs/ADRs referenciados
286
- - Fonte 3: Adicionar quaisquer docs referenciados nos resultados do scout de base de código
287
- </step>
288
-
289
- <step name="external_research">
290
- **Pular se:** `needs_research` do deep_codebase_analysis estiver vazio.
291
-
292
- Se tópicos de pesquisa foram sinalizados, criar um agente de pesquisa geral:
293
-
294
- ```
295
- Task(subagent_type="general-purpose", prompt="""
296
- Pesquisar os seguintes tópicos para a Fase {PHASE}: {phase_name}.
297
-
298
- Tópicos precisando de pesquisa:
299
- {needs_research_content}
300
-
301
- Para cada tópico, retornar:
302
- - **Achado:** [O que você aprendeu]
303
- - **Fonte:** [URL ou referência de docs de biblioteca]
304
- - **Impacto na confiança:** [Qual premissa isso resolve e para qual nível de confiança]
305
-
306
- Use Context7 (resolve-library-id então query-docs) para perguntas específicas de biblioteca.
307
- Use WebSearch para perguntas de ecossistema/melhores práticas.
308
- """)
309
- ```
310
-
311
- Mesclar achados de volta nas premissas:
312
- - Atualizar níveis de confiança onde a pesquisa resolve ambiguidade
313
- - Adicionar atribuição de fonte às premissas afetadas
314
- - Armazenar achados de pesquisa para DISCUSSION-LOG.md
315
-
316
- **Se nenhuma lacuna sinalizada:** Pular completamente. A maioria das fases pulará esta etapa.
317
- </step>
318
-
319
- <step name="present_assumptions">
320
- Exibir todas as premissas agrupadas por área com badges de confiança.
321
-
322
- **Formato para exibição:**
323
-
324
- ```
325
- ## Fase {PHASE}: {phase_name} — Premissas
326
-
327
- Com base na análise da base de código, aqui está o que eu usaria:
328
-
329
- ### {Nome da Área}
330
- {Badge de confiança} **{Declaração de premissa}**
331
- ↳ Evidência: {caminhos de arquivo citados}
332
- ↳ Se errado: {consequência}
333
-
334
- ### {Nome da Área 2}
335
- ...
336
-
337
- [Se pesquisa externa foi realizada:]
338
- ### Pesquisa Externa Aplicada
339
- - {Tópico}: {Achado} (Fonte: {URL})
340
- ```
341
-
342
- **Se `--auto`:**
343
- - Se todas as premissas são Confiante ou Provável: registrar premissas, pular para write_context.
344
- Registrar: `[auto] Todas as premissas Confiante/Provável — prosseguindo para captura de contexto.`
345
- - Se alguma premissa é Incerto: registrar um aviso, auto-selecionar alternativa recomendada para
346
- cada item Incerto. Registrar: `[auto] {N} premissas Incertas auto-resolvidas com padrões recomendados.`
347
- Prosseguir para write_context.
348
-
349
- **Caso contrário:** Usar AskUserQuestion:
350
- - header: "Premissas"
351
- - question: "Tudo parece correto?"
352
- - options:
353
- - "Sim, prosseguir" — Escrever CONTEXT.md com estas premissas como decisões
354
- - "Deixe-me corrigir algumas" — Selecionar quais premissas mudar
355
-
356
- **Se "Sim, prosseguir":** Pular para write_context.
357
- **Se "Deixe-me corrigir algumas":** Continuar para correct_assumptions.
358
- </step>
359
-
360
- <step name="correct_assumptions">
361
- As premissas já estão exibidas acima do present_assumptions.
362
-
363
- Apresentar um multiSelect onde o rótulo de cada opção é a declaração de premissa e a descrição
364
- é a consequência "Se errado":
365
-
366
- Usar AskUserQuestion (multiSelect):
367
- - header: "Correções"
368
- - question: "Quais premissas precisam de correção?"
369
- - options: [uma por premissa, rótulo = declaração de premissa, descrição = "Se errado: {consequência}"]
370
-
371
- Para cada correção selecionada, fazer UMA pergunta focada:
372
-
373
- Usar AskUserQuestion:
374
- - header: "{Nome da Área}"
375
- - question: "O que devemos fazer em vez disso para: {declaração de premissa}?"
376
- - options: [2-3 alternativas concretas descrevendo resultados visíveis ao usuário, opção recomendada primeiro]
377
-
378
- Registrar cada correção:
379
- - Premissa original
380
- - Alternativa escolhida pelo usuário
381
- - Motivo (se fornecido via texto livre "Outro")
382
-
383
- Após todas as correções processadas, continuar para write_context com premissas atualizadas.
384
-
385
- **Modo auto:** Não deve atingir esta etapa (--auto pula de present_assumptions).
386
- </step>
387
-
388
- <step name="write_context">
389
- Criar diretório de fase se necessário. Escrever CONTEXT.md usando o formato padrão de 6 seções.
390
-
391
- **Arquivo:** `${phase_dir}/${padded_phase}-CONTEXT.md`
392
-
393
- Mapear premissas para seções do CONTEXT.md:
394
- - Premissas → `<decisions>` (cada premissa se torna uma decisão bloqueada: D-01, D-02, etc.)
395
- - Correções → substituir a premissa original em `<decisions>`
396
- - Áreas onde todas as premissas eram Confiante → marcadas como decisões bloqueadas
397
- - Áreas com correções → incluir alternativa escolhida pelo usuário como a decisão
398
- - Todos dobrados → incluídos em `<decisions>` em "### Todos Dobrados"
399
-
400
- ```markdown
401
- # Fase {PHASE}: {phase_name} - Contexto
402
-
403
- **Coletado:** {data} (modo assumptions)
404
- **Status:** Pronto para planejamento
405
-
406
- <domain>
407
- ## Limite da Fase
408
-
409
- {Limite de domínio do ROADMAP.md — declaração clara de âncora de escopo}
410
- </domain>
411
-
412
- <decisions>
413
- ## Decisões de Implementação
414
-
415
- ### {Nome da Área 1}
416
- - **D-01:** {Decisão — de premissa ou correção}
417
- - **D-02:** {Decisão}
418
-
419
- ### {Nome da Área 2}
420
- - **D-03:** {Decisão}
421
-
422
- ### Discrição do Claude
423
- {Quaisquer premissas onde o usuário confirmou "você decide" ou deixou como está com confiança Provável}
424
-
425
- ### Todos Dobrados
426
- {Se algum todo foi dobrado no escopo}
427
- </decisions>
428
-
429
- <canonical_refs>
430
- ## Referências Canônicas
431
-
432
- **Agentes downstream DEVEM ler estas antes de planejar ou implementar.**
433
-
434
- {Refs canônicas acumuladas do passo de análise — caminhos relativos completos}
435
-
436
- [Se não houver specs externas: "Sem specs externas — requisitos totalmente capturados nas decisões acima"]
437
- </canonical_refs>
438
-
439
- <code_context>
440
- ## Insights do Código Existente
441
-
442
- ### Ativos Reutilizáveis
443
- {Do scout de base de código + achados do subagente Explore}
444
-
445
- ### Padrões Estabelecidos
446
- {Padrões que restringem/habilitam esta fase}
447
-
448
- ### Pontos de Integração
449
- {Onde o novo código se conecta ao sistema existente}
450
- </code_context>
451
-
452
- <specifics>
453
- ## Ideias Específicas
454
-
455
- {Quaisquer referências particulares das correções ou input do usuário}
456
-
457
- [Se nenhuma: "Sem requisitos específicos — aberto a abordagens padrão"]
458
- </specifics>
459
-
460
- <deferred>
461
- ## Ideias Adiadas
462
-
463
- {Ideias mencionadas durante correções que estão fora do escopo}
464
-
465
- ### Todos Revisados (não dobrados)
466
- {Todos revisados mas não dobrados — com motivo}
467
-
468
- [Se nenhum: "Nenhum — análise permaneceu dentro do escopo da fase"]
469
- </deferred>
470
- ```
471
-
472
- Escrever arquivo.
473
- </step>
474
-
475
- <step name="write_discussion_log">
476
- Escrever trilha de auditoria das premissas e correções.
477
-
478
- **Arquivo:** `${phase_dir}/${padded_phase}-DISCUSSION-LOG.md`
479
-
480
- ```markdown
481
- # Fase {PHASE}: {phase_name} - Log de Discussão (Modo Assumptions)
482
-
483
- > **Apenas trilha de auditoria.** Não usar como input para agentes de planejamento, pesquisa ou execução.
484
- > Decisões capturadas no CONTEXT.md — este log preserva a análise.
485
-
486
- **Data:** {data ISO}
487
- **Fase:** {padded_phase}-{phase_name}
488
- **Modo:** assumptions
489
- **Áreas analisadas:** {nomes de área separados por vírgula}
490
-
491
- ## Premissas Apresentadas
492
-
493
- ### {Nome da Área}
494
- | Premissa | Confiança | Evidência |
495
- |----------|-----------|-----------|
496
- | {Declaração} | {Confiante/Provável/Incerto} | {caminhos de arquivo} |
497
-
498
- {Repetir para cada área}
499
-
500
- ## Correções Feitas
501
-
502
- {Se correções foram feitas:}
503
-
504
- ### {Nome da Área}
505
- - **Premissa original:** {o que Claude assumiu}
506
- - **Correção do usuário:** {o que o usuário escolheu em vez disso}
507
- - **Motivo:** {raciocínio do usuário, se fornecido}
508
-
509
- {Se nenhuma correção: "Sem correções — todas as premissas confirmadas."}
510
-
511
- ## Auto-Resolvido
512
-
513
- {Se --auto e itens Incertos existiam:}
514
- - {Premissa}: auto-selecionou {opção recomendada}
515
-
516
- {Se não aplicável: omitir esta seção}
517
-
518
- ## Pesquisa Externa
519
-
520
- {Se pesquisa foi realizada:}
521
- - {Tópico}: {Achado} (Fonte: {URL})
522
-
523
- {Se nenhuma pesquisa: omitir esta seção}
524
- ```
525
-
526
- Escrever arquivo.
527
- </step>
528
-
529
- <step name="git_commit">
530
- Commitar contexto da fase e log de discussão:
531
-
532
- ```bash
533
- node "./.claude/framework/bin/tools.cjs" commit "docs(${padded_phase}): capturar contexto da fase (modo assumptions)" --files "${phase_dir}/${padded_phase}-CONTEXT.md" "${phase_dir}/${padded_phase}-DISCUSSION-LOG.md"
534
- ```
535
-
536
- Confirmar: "Commitado: docs(${padded_phase}): capturar contexto da fase (modo assumptions)"
537
- </step>
538
-
539
- <step name="update_state">
540
- Atualizar STATE.md com informações da sessão:
541
-
542
- ```bash
543
- node "./.claude/framework/bin/tools.cjs" state record-session \
544
- --stopped-at "Contexto da Fase ${PHASE} coletado (modo assumptions)" \
545
- --resume-file "${phase_dir}/${padded_phase}-CONTEXT.md"
546
- ```
547
-
548
- Commitar STATE.md:
549
-
550
- ```bash
551
- node "./.claude/framework/bin/tools.cjs" commit "docs(state): registrar sessão de contexto da fase ${PHASE}" --files .planning/STATE.md
552
- ```
553
- </step>
554
-
555
- <step name="confirm_creation">
556
- Apresentar resumo e próximos passos:
557
-
558
- ```
559
- Criado: .planning/phases/${PADDED_PHASE}-${SLUG}/${PADDED_PHASE}-CONTEXT.md
560
-
561
- ## Decisões Capturadas (Modo Assumptions)
562
-
563
- ### {Nome da Área}
564
- - {Decisão-chave} (de premissa / corrigida)
565
-
566
- {Repetir por área}
567
-
568
- [Se correções foram feitas:]
569
- ## Correções Aplicadas
570
- - {Área}: {original} → {corrigido}
571
-
572
- [Se ideias adiadas existirem:]
573
- ## Anotado para Depois
574
- - {Ideia adiada} — fase futura
575
-
576
- ---
577
-
578
- ## ▶ Próximo Passo
579
-
580
- **Fase ${PHASE}: {phase_name}** — {Objetivo do ROADMAP.md}
581
-
582
- `/planejar-fase ${PHASE}`
583
-
584
- <sub>`/clear` primeiro → janela de contexto fresca</sub>
585
-
586
- ---
587
-
588
- **Também disponível:**
589
- - `/planejar-fase ${PHASE} --skip-research` — planejar sem pesquisa
590
- - `/fase-ui ${PHASE}` — gerar contrato de design UI (se trabalho de frontend)
591
- - Revisar/editar CONTEXT.md antes de continuar
592
-
593
- ---
594
- ```
595
- </step>
596
-
597
- <step name="auto_advance">
598
- Verificar gatilho de avanço automático:
599
-
600
- 1. Analisar flag `--auto` de $ARGUMENTS
601
- 2. Flag de cadeia de sincronização:
602
- ```bash
603
- if [[ ! "$ARGUMENTS" =~ --auto ]]; then
604
- node "./.claude/framework/bin/tools.cjs" config-set workflow._auto_chain_active false 2>/dev/null
605
- fi
606
- ```
607
- 3. Ler flag de cadeia e preferência do usuário:
608
- ```bash
609
- AUTO_CHAIN=$(node "./.claude/framework/bin/tools.cjs" config-get workflow._auto_chain_active 2>/dev/null || echo "false")
610
- AUTO_CFG=$(node "./.claude/framework/bin/tools.cjs" config-get workflow.auto_advance 2>/dev/null || echo "false")
611
- ```
612
-
613
- **Se flag `--auto` presente E `AUTO_CHAIN` não for verdadeiro:**
614
- ```bash
615
- node "./.claude/framework/bin/tools.cjs" config-set workflow._auto_chain_active true
616
- ```
617
-
618
- **Se flag `--auto` presente OU `AUTO_CHAIN` for verdadeiro OU `AUTO_CFG` for verdadeiro:**
619
-
620
- Exibir banner:
621
- ```
622
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
623
- framework ► AVANÇANDO AUTOMATICAMENTE PARA PLANEJAMENTO
624
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
625
-
626
- Contexto capturado (modo assumptions). Iniciando plan-phase...
627
- ```
628
-
629
- Iniciar: `Skill(skill="framework:planejar-fase", args="${PHASE} --auto")`
630
-
631
- Tratar retorno: PHASE COMPLETE / PLANNING COMPLETE / INCONCLUSIVE / GAPS FOUND
632
- (tratamento idêntico ao passo auto_advance do discuss-phase.md)
633
-
634
- **Se nem `--auto` nem config habilitado:**
635
- Rotear para o passo confirm_creation.
636
- </step>
637
-
638
- </process>
639
-
640
- <success_criteria>
641
- - Fase validada contra o roadmap
642
- - Contexto anterior carregado (sem re-fazer perguntas já decididas)
643
- - Base de código profundamente analisada via subagente Explore (5-15 arquivos lidos)
644
- - Premissas surfaçadas com evidências e níveis de confiança
645
- - Usuário confirmou ou corrigiu premissas (~2-4 interações no máximo)
646
- - Expansão de escopo redirecionada para ideias adiadas
647
- - CONTEXT.md captura decisões reais (formato idêntico ao modo discuss)
648
- - CONTEXT.md inclui canonical_refs com caminhos completos de arquivo (OBRIGATÓRIO)
649
- - CONTEXT.md inclui code_context da análise de base de código
650
- - DISCUSSION-LOG.md registra premissas e correções como trilha de auditoria
651
- - STATE.md atualizado com informações da sessão
652
- - Usuário conhece os próximos passos
653
- </success_criteria>
1
+ <purpose>
2
+ Extrair decisões de implementação que agentes downstream precisam — usando análise primeiro da base de código
3
+ e surfacing de premissas em vez de questionamento estilo entrevista.
4
+
5
+ Você é um parceiro de pensamento, não um entrevistador. Analise a base de código profundamente, surfeie o que
6
+ você acredita com base em evidências, e pergunte ao usuário apenas para corrigir o que está errado.
7
+ </purpose>
8
+
9
+ <available_agent_types>
10
+ Tipos de subagentes framework válidos (use nomes exatos — não use 'general-purpose' como fallback):
11
+ - assumptions-analyzer — Analisa a base de código para surfaçar premissas de implementação
12
+ </available_agent_types>
13
+
14
+ <downstream_awareness>
15
+ **CONTEXT.md alimenta:**
16
+
17
+ 1. **phase-researcher** — Lê CONTEXT.md para saber O QUE pesquisar
18
+ 2. **planner** — Lê CONTEXT.md para saber QUAIS decisões estão bloqueadas
19
+
20
+ **Seu trabalho:** Capturar decisões de forma clara o suficiente para que agentes downstream possam agir sobre elas
21
+ sem perguntar ao usuário novamente. A saída é idêntica ao modo discuss — mesmo formato CONTEXT.md.
22
+ </downstream_awareness>
23
+
24
+ <philosophy>
25
+ **Filosofia do modo assumptions:**
26
+
27
+ O usuário é um visionário, não um arqueólogo de base de código. Eles precisam de contexto suficiente para avaliar
28
+ se suas premissas correspondem à intenção deles — não para responder perguntas que você poderia descobrir
29
+ lendo o código.
30
+
31
+ - Leia a base de código PRIMEIRO, forme opiniões SEGUNDO, pergunte APENAS sobre o que é genuinamente incerto
32
+ - Cada premissa deve citar evidências (caminhos de arquivo, padrões encontrados)
33
+ - Cada premissa deve declarar consequências se estiver errada
34
+ - Minimize interações com o usuário: ~2-4 correções vs ~15-20 perguntas
35
+ </philosophy>
36
+
37
+ <scope_guardrail>
38
+ **CRÍTICO: Sem expansão de escopo.**
39
+
40
+ O limite da fase vem do ROADMAP.md e é FIXO. A discussão esclarece COMO implementar
41
+ o que está no escopo, nunca SE adicionar novas capacidades.
42
+
43
+ Quando o usuário sugere expansão de escopo:
44
+ "[Funcionalidade X] seria uma nova capacidade — isso é sua própria fase.
45
+ Quer que eu anote para o backlog do roadmap? Por enquanto, vamos focar em [domínio da fase]."
46
+
47
+ Capturar a ideia em "Ideias Adiadas". Não perder, não agir.
48
+ </scope_guardrail>
49
+
50
+ <answer_validation>
51
+ **IMPORTANTE: Validação de resposta** — Após cada chamada AskUserQuestion, verificar se a resposta
52
+ está vazia ou apenas com espaços em branco. Se sim:
53
+ 1. Tentar a pergunta novamente uma vez com os mesmos parâmetros
54
+ 2. Se ainda vazia, apresentar as opções como uma lista numerada em texto simples
55
+
56
+ **Modo texto (`workflow.text_mode: true` na config ou flag `--text`):**
57
+ Quando o modo texto estiver ativo, não usar AskUserQuestion de forma alguma. Apresentar cada pergunta como uma
58
+ lista numerada em texto simples e pedir ao usuário que digite o número da escolha.
59
+ </answer_validation>
60
+
61
+ <process>
62
+
63
+ <step name="initialize" priority="first">
64
+ Número da fase do argumento (obrigatório).
65
+
66
+ ```bash
67
+ INIT=$(node "./.claude/framework/bin/tools.cjs" init phase-op "${PHASE}")
68
+ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
69
+ AGENT_SKILLS_ANALYZER=$(node "./.claude/framework/bin/tools.cjs" agent-skills assumptions-analyzer 2>/dev/null)
70
+ ```
71
+
72
+ Analisar JSON para: `commit_docs`, `phase_found`, `phase_dir`, `phase_number`, `phase_name`,
73
+ `phase_slug`, `padded_phase`, `has_research`, `has_context`, `has_plans`, `has_verification`,
74
+ `plan_count`, `roadmap_exists`, `planning_exists`.
75
+
76
+ **Se `phase_found` for falso:**
77
+ ```
78
+ Fase [X] não encontrada no roadmap.
79
+
80
+ Use /progresso para ver as fases disponíveis.
81
+ ```
82
+ Sair do workflow.
83
+
84
+ **Se `phase_found` for verdadeiro:** Continuar para check_existing.
85
+
86
+ **Modo auto** — Se `--auto` estiver presente em ARGUMENTS:
87
+ - Em `check_existing`: auto-selecionar "Atualizar" (se contexto existe) ou continuar sem perguntar
88
+ - Em `present_assumptions`: pular portão de confirmação, prosseguir diretamente para escrever CONTEXT.md
89
+ - Em `correct_assumptions`: auto-selecionar opção recomendada para cada correção
90
+ - Registrar cada escolha auto-selecionada inline
91
+ - Após conclusão, avançar automaticamente para plan-phase
92
+ </step>
93
+
94
+ <step name="check_existing">
95
+ Verificar se CONTEXT.md já existe usando `has_context` do init.
96
+
97
+ ```bash
98
+ ls ${phase_dir}/*-CONTEXT.md 2>/dev/null || true
99
+ ```
100
+
101
+ **Se existir:**
102
+
103
+ **Se `--auto`:** Auto-selecionar "Atualizar". Registrar: `[auto] Contexto existe — atualizando com análise baseada em premissas.`
104
+
105
+ **Caso contrário:** Usar AskUserQuestion:
106
+ - header: "Contexto"
107
+ - question: "A Fase [X] já tem contexto. O que você quer fazer?"
108
+ - options:
109
+ - "Atualizar" — Re-analisar base de código e atualizar premissas
110
+ - "Ver" — Mostrar o que está lá
111
+ - "Pular" — Usar contexto existente como está
112
+
113
+ Se "Atualizar": Carregar existente, continuar para load_prior_context
114
+ Se "Ver": Exibir CONTEXT.md, então oferecer atualizar/pular
115
+ Se "Pular": Sair do workflow
116
+
117
+ **Se não existir:**
118
+
119
+ Verificar `has_plans` e `plan_count` do init. **Se `has_plans` for verdadeiro:**
120
+
121
+ **Se `--auto`:** Auto-selecionar "Continuar e replanejar depois". Registrar: `[auto] Planos existem — continuando com análise de premissas, replanejará depois.`
122
+
123
+ **Caso contrário:** Usar AskUserQuestion:
124
+ - header: "Planos existem"
125
+ - question: "A Fase [X] já tem {plan_count} plano(s) criado(s) sem contexto do usuário. Suas decisões aqui não afetarão planos existentes a menos que você replaneje."
126
+ - options:
127
+ - "Continuar e replanejar depois"
128
+ - "Ver planos existentes"
129
+ - "Cancelar"
130
+
131
+ Se "Continuar e replanejar depois": Continuar para load_prior_context.
132
+ Se "Ver planos existentes": Exibir arquivos de plano, então oferecer "Continuar" / "Cancelar".
133
+ Se "Cancelar": Sair do workflow.
134
+
135
+ **Se `has_plans` for falso:** Continuar para load_prior_context.
136
+ </step>
137
+
138
+ <step name="load_prior_context">
139
+ Ler contexto de nível de projeto e fase anterior para evitar re-fazer perguntas já decididas.
140
+
141
+ **Passo 1: Ler arquivos de nível de projeto**
142
+ ```bash
143
+ cat .planning/PROJECT.md 2>/dev/null || true
144
+ cat .planning/REQUIREMENTS.md 2>/dev/null || true
145
+ cat .planning/STATE.md 2>/dev/null || true
146
+ ```
147
+
148
+ Extrair destes:
149
+ - **PROJECT.md** — Visão, princípios, não-negociáveis, preferências do usuário
150
+ - **REQUIREMENTS.md** — Critérios de aceitação, restrições
151
+ - **STATE.md** — Progresso atual, quaisquer flags
152
+
153
+ **Passo 2: Ler todos os arquivos CONTEXT.md anteriores**
154
+ ```bash
155
+ (find .planning/phases -name "*-CONTEXT.md" 2>/dev/null || true) | sort
156
+ ```
157
+
158
+ Para cada CONTEXT.md onde o número da fase < fase atual:
159
+ - Ler a seção `<decisions>` — estas são preferências bloqueadas
160
+ - Ler `<specifics>` — referências particulares ou momentos "eu quero como X"
161
+ - Notar padrões (ex: "usuário consistentemente prefere UI mínima")
162
+
163
+ **Passo 3: Construir contexto interno `<prior_decisions>`**
164
+
165
+ Estruturar as informações extraídas para uso na geração de premissas.
166
+
167
+ **Se nenhum contexto anterior existir:** Continuar sem — esperado para fases iniciais.
168
+ </step>
169
+
170
+ <step name="cross_reference_todos">
171
+ Verificar se algum todo pendente é relevante para o escopo desta fase.
172
+
173
+ ```bash
174
+ TODO_MATCHES=$(node "./.claude/framework/bin/tools.cjs" todo match-phase "${PHASE_NUMBER}")
175
+ ```
176
+
177
+ Analisar JSON para: `todo_count`, `matches[]`.
178
+
179
+ **Se `todo_count` for 0:** Pular silenciosamente.
180
+
181
+ **Se correspondências encontradas:** Apresentar todos correspondentes, usar AskUserQuestion (multiSelect) para dobrar os relevantes no escopo.
182
+
183
+ **Para todos selecionados (dobrados):** Armazenar como `<folded_todos>` para a seção `<decisions>` do CONTEXT.md.
184
+ **Para não selecionados:** Armazenar como `<reviewed_todos>` para a seção `<deferred>` do CONTEXT.md.
185
+
186
+ **Modo auto (`--auto`):** Dobrar automaticamente todos os todos com score >= 0.4. Registrar a seleção.
187
+ </step>
188
+
189
+ <step name="scout_codebase">
190
+ Varredura leve do código existente para informar a geração de premissas.
191
+
192
+ **Passo 1: Verificar mapas de base de código existentes**
193
+ ```bash
194
+ ls .planning/codebase/*.md 2>/dev/null || true
195
+ ```
196
+
197
+ **Se mapas de base de código existirem:** Ler os relevantes (CONVENTIONS.md, STRUCTURE.md, STACK.md). Extrair componentes reutilizáveis, padrões, pontos de integração. Pular para o Passo 3.
198
+
199
+ **Passo 2: Se não houver mapas de base de código, fazer grep direcionado**
200
+
201
+ Extrair termos-chave do objetivo da fase, buscar arquivos relacionados.
202
+
203
+ ```bash
204
+ grep -rl "{termo1}\|{termo2}" src/ app/ --include="*.ts" --include="*.tsx" 2>/dev/null | head -10
205
+ ```
206
+
207
+ Ler os 3-5 arquivos mais relevantes.
208
+
209
+ **Passo 3: Construir `<codebase_context>` interno**
210
+
211
+ Identificar ativos reutilizáveis, padrões estabelecidos, pontos de integração e opções criativas. Armazenar internamente para uso em deep_codebase_analysis.
212
+ </step>
213
+
214
+ <step name="deep_codebase_analysis">
215
+ Criar um agente `assumptions-analyzer` para analisar profundamente a base de código para esta fase. Isso
216
+ mantém conteúdos brutos de arquivos fora da janela de contexto principal, protegendo o orçamento de tokens.
217
+
218
+ **Resolver tier de calibração (se USER-PROFILE.md existir):**
219
+
220
+ ```bash
221
+ PROFILE_PATH="./.claude/framework/USER-PROFILE.md"
222
+ ```
223
+
224
+ Se o arquivo existir em PROFILE_PATH:
225
+ - Prioridade 1: Ler config.json > preferences.vendor_philosophy (substituição de nível de projeto)
226
+ - Prioridade 2: Ler avaliação de Vendor Choices/Philosophy do USER-PROFILE.md (global)
227
+ - Prioridade 3: Padrão para "standard"
228
+
229
+ Mapear para tier de calibração:
230
+ - conservative OU thorough-evaluator → full_maturity (mais alternativas, evidência detalhada)
231
+ - opinionated → minimal_decisive (menos alternativas, recomendações decisivas)
232
+ - pragmatic-fast OU qualquer outro valor → standard
233
+
234
+ Se não houver USER-PROFILE.md: calibration_tier = "standard"
235
+
236
+ **Criar subagente Explore:**
237
+
238
+ ```
239
+ Task(subagent_type="assumptions-analyzer", prompt="""
240
+ Analisar a base de código para a Fase {PHASE}: {phase_name}.
241
+
242
+ Objetivo da fase: {roadmap_description}
243
+ Decisões anteriores: {prior_decisions_summary}
244
+ Dicas do scout de base de código: {codebase_context_summary}
245
+ Calibração: {calibration_tier}
246
+
247
+ Seu trabalho:
248
+ 1. Ler descrição da fase {PHASE} do ROADMAP.md
249
+ 2. Ler quaisquer arquivos CONTEXT.md anteriores de fases anteriores
250
+ 3. Glob/Grep para arquivos relacionados a: {phase_relevant_terms}
251
+ 4. Ler 5-15 arquivos fonte mais relevantes
252
+ 5. Retornar premissas estruturadas
253
+
254
+ ## Formato de Saída
255
+
256
+ Retornar EXATAMENTE esta estrutura:
257
+
258
+ ## Premissas
259
+
260
+ ### [Nome da Área] (ex: "Abordagem Técnica")
261
+ - **Premissa:** [Declaração de decisão]
262
+ - **Por quê desta forma:** [Evidência da base de código — citar caminhos de arquivo]
263
+ - **Se errado:** [Consequência concreta de estar errado]
264
+ - **Confiança:** Confiante | Provável | Incerto
265
+
266
+ (3-5 áreas, calibradas por tier:
267
+ - full_maturity: 3-5 áreas, 2-3 alternativas por item Provável/Incerto
268
+ - standard: 3-4 áreas, 2 alternativas por item Provável/Incerto
269
+ - minimal_decisive: 2-3 áreas, recomendação única decisiva por item)
270
+
271
+ ## Precisa de Pesquisa Externa
272
+ [Tópicos onde a base de código sozinha é insuficiente — compatibilidade de versão de biblioteca,
273
+ melhores práticas do ecossistema, etc. Deixar vazio se a base de código fornece evidência suficiente.]
274
+
275
+ ${AGENT_SKILLS_ANALYZER}
276
+ """)
277
+ ```
278
+
279
+ Analisar a resposta do subagente. Extrair:
280
+ - `assumptions[]` — cada um com área, declaração, evidência, consequência, confiança
281
+ - `needs_research[]` — tópicos que requerem pesquisa externa (pode estar vazio)
282
+
283
+ **Inicializar acumulador de refs canônicas:**
284
+ - Fonte 1: Copiar `Canonical refs:` do ROADMAP.md para esta fase, expandir para caminhos completos
285
+ - Fonte 2: Verificar REQUIREMENTS.md e PROJECT.md para specs/ADRs referenciados
286
+ - Fonte 3: Adicionar quaisquer docs referenciados nos resultados do scout de base de código
287
+ </step>
288
+
289
+ <step name="external_research">
290
+ **Pular se:** `needs_research` do deep_codebase_analysis estiver vazio.
291
+
292
+ Se tópicos de pesquisa foram sinalizados, criar um agente de pesquisa geral:
293
+
294
+ ```
295
+ Task(subagent_type="general-purpose", prompt="""
296
+ Pesquisar os seguintes tópicos para a Fase {PHASE}: {phase_name}.
297
+
298
+ Tópicos precisando de pesquisa:
299
+ {needs_research_content}
300
+
301
+ Para cada tópico, retornar:
302
+ - **Achado:** [O que você aprendeu]
303
+ - **Fonte:** [URL ou referência de docs de biblioteca]
304
+ - **Impacto na confiança:** [Qual premissa isso resolve e para qual nível de confiança]
305
+
306
+ Use Context7 (resolve-library-id então query-docs) para perguntas específicas de biblioteca.
307
+ Use WebSearch para perguntas de ecossistema/melhores práticas.
308
+ """)
309
+ ```
310
+
311
+ Mesclar achados de volta nas premissas:
312
+ - Atualizar níveis de confiança onde a pesquisa resolve ambiguidade
313
+ - Adicionar atribuição de fonte às premissas afetadas
314
+ - Armazenar achados de pesquisa para DISCUSSION-LOG.md
315
+
316
+ **Se nenhuma lacuna sinalizada:** Pular completamente. A maioria das fases pulará esta etapa.
317
+ </step>
318
+
319
+ <step name="present_assumptions">
320
+ Exibir todas as premissas agrupadas por área com badges de confiança.
321
+
322
+ **Formato para exibição:**
323
+
324
+ ```
325
+ ## Fase {PHASE}: {phase_name} — Premissas
326
+
327
+ Com base na análise da base de código, aqui está o que eu usaria:
328
+
329
+ ### {Nome da Área}
330
+ {Badge de confiança} **{Declaração de premissa}**
331
+ ↳ Evidência: {caminhos de arquivo citados}
332
+ ↳ Se errado: {consequência}
333
+
334
+ ### {Nome da Área 2}
335
+ ...
336
+
337
+ [Se pesquisa externa foi realizada:]
338
+ ### Pesquisa Externa Aplicada
339
+ - {Tópico}: {Achado} (Fonte: {URL})
340
+ ```
341
+
342
+ **Se `--auto`:**
343
+ - Se todas as premissas são Confiante ou Provável: registrar premissas, pular para write_context.
344
+ Registrar: `[auto] Todas as premissas Confiante/Provável — prosseguindo para captura de contexto.`
345
+ - Se alguma premissa é Incerto: registrar um aviso, auto-selecionar alternativa recomendada para
346
+ cada item Incerto. Registrar: `[auto] {N} premissas Incertas auto-resolvidas com padrões recomendados.`
347
+ Prosseguir para write_context.
348
+
349
+ **Caso contrário:** Usar AskUserQuestion:
350
+ - header: "Premissas"
351
+ - question: "Tudo parece correto?"
352
+ - options:
353
+ - "Sim, prosseguir" — Escrever CONTEXT.md com estas premissas como decisões
354
+ - "Deixe-me corrigir algumas" — Selecionar quais premissas mudar
355
+
356
+ **Se "Sim, prosseguir":** Pular para write_context.
357
+ **Se "Deixe-me corrigir algumas":** Continuar para correct_assumptions.
358
+ </step>
359
+
360
+ <step name="correct_assumptions">
361
+ As premissas já estão exibidas acima do present_assumptions.
362
+
363
+ Apresentar um multiSelect onde o rótulo de cada opção é a declaração de premissa e a descrição
364
+ é a consequência "Se errado":
365
+
366
+ Usar AskUserQuestion (multiSelect):
367
+ - header: "Correções"
368
+ - question: "Quais premissas precisam de correção?"
369
+ - options: [uma por premissa, rótulo = declaração de premissa, descrição = "Se errado: {consequência}"]
370
+
371
+ Para cada correção selecionada, fazer UMA pergunta focada:
372
+
373
+ Usar AskUserQuestion:
374
+ - header: "{Nome da Área}"
375
+ - question: "O que devemos fazer em vez disso para: {declaração de premissa}?"
376
+ - options: [2-3 alternativas concretas descrevendo resultados visíveis ao usuário, opção recomendada primeiro]
377
+
378
+ Registrar cada correção:
379
+ - Premissa original
380
+ - Alternativa escolhida pelo usuário
381
+ - Motivo (se fornecido via texto livre "Outro")
382
+
383
+ Após todas as correções processadas, continuar para write_context com premissas atualizadas.
384
+
385
+ **Modo auto:** Não deve atingir esta etapa (--auto pula de present_assumptions).
386
+ </step>
387
+
388
+ <step name="write_context">
389
+ Criar diretório de fase se necessário. Escrever CONTEXT.md usando o formato padrão de 6 seções.
390
+
391
+ **Arquivo:** `${phase_dir}/${padded_phase}-CONTEXT.md`
392
+
393
+ Mapear premissas para seções do CONTEXT.md:
394
+ - Premissas → `<decisions>` (cada premissa se torna uma decisão bloqueada: D-01, D-02, etc.)
395
+ - Correções → substituir a premissa original em `<decisions>`
396
+ - Áreas onde todas as premissas eram Confiante → marcadas como decisões bloqueadas
397
+ - Áreas com correções → incluir alternativa escolhida pelo usuário como a decisão
398
+ - Todos dobrados → incluídos em `<decisions>` em "### Todos Dobrados"
399
+
400
+ ```markdown
401
+ # Fase {PHASE}: {phase_name} - Contexto
402
+
403
+ **Coletado:** {data} (modo assumptions)
404
+ **Status:** Pronto para planejamento
405
+
406
+ <domain>
407
+ ## Limite da Fase
408
+
409
+ {Limite de domínio do ROADMAP.md — declaração clara de âncora de escopo}
410
+ </domain>
411
+
412
+ <decisions>
413
+ ## Decisões de Implementação
414
+
415
+ ### {Nome da Área 1}
416
+ - **D-01:** {Decisão — de premissa ou correção}
417
+ - **D-02:** {Decisão}
418
+
419
+ ### {Nome da Área 2}
420
+ - **D-03:** {Decisão}
421
+
422
+ ### Discrição do Claude
423
+ {Quaisquer premissas onde o usuário confirmou "você decide" ou deixou como está com confiança Provável}
424
+
425
+ ### Todos Dobrados
426
+ {Se algum todo foi dobrado no escopo}
427
+ </decisions>
428
+
429
+ <canonical_refs>
430
+ ## Referências Canônicas
431
+
432
+ **Agentes downstream DEVEM ler estas antes de planejar ou implementar.**
433
+
434
+ {Refs canônicas acumuladas do passo de análise — caminhos relativos completos}
435
+
436
+ [Se não houver specs externas: "Sem specs externas — requisitos totalmente capturados nas decisões acima"]
437
+ </canonical_refs>
438
+
439
+ <code_context>
440
+ ## Insights do Código Existente
441
+
442
+ ### Ativos Reutilizáveis
443
+ {Do scout de base de código + achados do subagente Explore}
444
+
445
+ ### Padrões Estabelecidos
446
+ {Padrões que restringem/habilitam esta fase}
447
+
448
+ ### Pontos de Integração
449
+ {Onde o novo código se conecta ao sistema existente}
450
+ </code_context>
451
+
452
+ <specifics>
453
+ ## Ideias Específicas
454
+
455
+ {Quaisquer referências particulares das correções ou input do usuário}
456
+
457
+ [Se nenhuma: "Sem requisitos específicos — aberto a abordagens padrão"]
458
+ </specifics>
459
+
460
+ <deferred>
461
+ ## Ideias Adiadas
462
+
463
+ {Ideias mencionadas durante correções que estão fora do escopo}
464
+
465
+ ### Todos Revisados (não dobrados)
466
+ {Todos revisados mas não dobrados — com motivo}
467
+
468
+ [Se nenhum: "Nenhum — análise permaneceu dentro do escopo da fase"]
469
+ </deferred>
470
+ ```
471
+
472
+ Escrever arquivo.
473
+ </step>
474
+
475
+ <step name="write_discussion_log">
476
+ Escrever trilha de auditoria das premissas e correções.
477
+
478
+ **Arquivo:** `${phase_dir}/${padded_phase}-DISCUSSION-LOG.md`
479
+
480
+ ```markdown
481
+ # Fase {PHASE}: {phase_name} - Log de Discussão (Modo Assumptions)
482
+
483
+ > **Apenas trilha de auditoria.** Não usar como input para agentes de planejamento, pesquisa ou execução.
484
+ > Decisões capturadas no CONTEXT.md — este log preserva a análise.
485
+
486
+ **Data:** {data ISO}
487
+ **Fase:** {padded_phase}-{phase_name}
488
+ **Modo:** assumptions
489
+ **Áreas analisadas:** {nomes de área separados por vírgula}
490
+
491
+ ## Premissas Apresentadas
492
+
493
+ ### {Nome da Área}
494
+ | Premissa | Confiança | Evidência |
495
+ |----------|-----------|-----------|
496
+ | {Declaração} | {Confiante/Provável/Incerto} | {caminhos de arquivo} |
497
+
498
+ {Repetir para cada área}
499
+
500
+ ## Correções Feitas
501
+
502
+ {Se correções foram feitas:}
503
+
504
+ ### {Nome da Área}
505
+ - **Premissa original:** {o que Claude assumiu}
506
+ - **Correção do usuário:** {o que o usuário escolheu em vez disso}
507
+ - **Motivo:** {raciocínio do usuário, se fornecido}
508
+
509
+ {Se nenhuma correção: "Sem correções — todas as premissas confirmadas."}
510
+
511
+ ## Auto-Resolvido
512
+
513
+ {Se --auto e itens Incertos existiam:}
514
+ - {Premissa}: auto-selecionou {opção recomendada}
515
+
516
+ {Se não aplicável: omitir esta seção}
517
+
518
+ ## Pesquisa Externa
519
+
520
+ {Se pesquisa foi realizada:}
521
+ - {Tópico}: {Achado} (Fonte: {URL})
522
+
523
+ {Se nenhuma pesquisa: omitir esta seção}
524
+ ```
525
+
526
+ Escrever arquivo.
527
+ </step>
528
+
529
+ <step name="git_commit">
530
+ Commitar contexto da fase e log de discussão:
531
+
532
+ ```bash
533
+ node "./.claude/framework/bin/tools.cjs" commit "docs(${padded_phase}): capturar contexto da fase (modo assumptions)" --files "${phase_dir}/${padded_phase}-CONTEXT.md" "${phase_dir}/${padded_phase}-DISCUSSION-LOG.md"
534
+ ```
535
+
536
+ Confirmar: "Commitado: docs(${padded_phase}): capturar contexto da fase (modo assumptions)"
537
+ </step>
538
+
539
+ <step name="update_state">
540
+ Atualizar STATE.md com informações da sessão:
541
+
542
+ ```bash
543
+ node "./.claude/framework/bin/tools.cjs" state record-session \
544
+ --stopped-at "Contexto da Fase ${PHASE} coletado (modo assumptions)" \
545
+ --resume-file "${phase_dir}/${padded_phase}-CONTEXT.md"
546
+ ```
547
+
548
+ Commitar STATE.md:
549
+
550
+ ```bash
551
+ node "./.claude/framework/bin/tools.cjs" commit "docs(state): registrar sessão de contexto da fase ${PHASE}" --files .planning/STATE.md
552
+ ```
553
+ </step>
554
+
555
+ <step name="confirm_creation">
556
+ Apresentar resumo e próximos passos:
557
+
558
+ ```
559
+ Criado: .planning/phases/${PADDED_PHASE}-${SLUG}/${PADDED_PHASE}-CONTEXT.md
560
+
561
+ ## Decisões Capturadas (Modo Assumptions)
562
+
563
+ ### {Nome da Área}
564
+ - {Decisão-chave} (de premissa / corrigida)
565
+
566
+ {Repetir por área}
567
+
568
+ [Se correções foram feitas:]
569
+ ## Correções Aplicadas
570
+ - {Área}: {original} → {corrigido}
571
+
572
+ [Se ideias adiadas existirem:]
573
+ ## Anotado para Depois
574
+ - {Ideia adiada} — fase futura
575
+
576
+ ---
577
+
578
+ ## ▶ Próximo Passo
579
+
580
+ **Fase ${PHASE}: {phase_name}** — {Objetivo do ROADMAP.md}
581
+
582
+ `/planejar-fase ${PHASE}`
583
+
584
+ <sub>`/clear` primeiro → janela de contexto fresca</sub>
585
+
586
+ ---
587
+
588
+ **Também disponível:**
589
+ - `/planejar-fase ${PHASE} --skip-research` — planejar sem pesquisa
590
+ - `/fase-ui ${PHASE}` — gerar contrato de design UI (se trabalho de frontend)
591
+ - Revisar/editar CONTEXT.md antes de continuar
592
+
593
+ ---
594
+ ```
595
+ </step>
596
+
597
+ <step name="auto_advance">
598
+ Verificar gatilho de avanço automático:
599
+
600
+ 1. Analisar flag `--auto` de $ARGUMENTS
601
+ 2. Flag de cadeia de sincronização:
602
+ ```bash
603
+ if [[ ! "$ARGUMENTS" =~ --auto ]]; then
604
+ node "./.claude/framework/bin/tools.cjs" config-set workflow._auto_chain_active false 2>/dev/null
605
+ fi
606
+ ```
607
+ 3. Ler flag de cadeia e preferência do usuário:
608
+ ```bash
609
+ AUTO_CHAIN=$(node "./.claude/framework/bin/tools.cjs" config-get workflow._auto_chain_active 2>/dev/null || echo "false")
610
+ AUTO_CFG=$(node "./.claude/framework/bin/tools.cjs" config-get workflow.auto_advance 2>/dev/null || echo "false")
611
+ ```
612
+
613
+ **Se flag `--auto` presente E `AUTO_CHAIN` não for verdadeiro:**
614
+ ```bash
615
+ node "./.claude/framework/bin/tools.cjs" config-set workflow._auto_chain_active true
616
+ ```
617
+
618
+ **Se flag `--auto` presente OU `AUTO_CHAIN` for verdadeiro OU `AUTO_CFG` for verdadeiro:**
619
+
620
+ Exibir banner:
621
+ ```
622
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
623
+ framework ► AVANÇANDO AUTOMATICAMENTE PARA PLANEJAMENTO
624
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
625
+
626
+ Contexto capturado (modo assumptions). Iniciando plan-phase...
627
+ ```
628
+
629
+ Iniciar: `Skill(skill="framework:planejar-fase", args="${PHASE} --auto")`
630
+
631
+ Tratar retorno: PHASE COMPLETE / PLANNING COMPLETE / INCONCLUSIVE / GAPS FOUND
632
+ (tratamento idêntico ao passo auto_advance do discuss-phase.md)
633
+
634
+ **Se nem `--auto` nem config habilitado:**
635
+ Rotear para o passo confirm_creation.
636
+ </step>
637
+
638
+ </process>
639
+
640
+ <success_criteria>
641
+ - Fase validada contra o roadmap
642
+ - Contexto anterior carregado (sem re-fazer perguntas já decididas)
643
+ - Base de código profundamente analisada via subagente Explore (5-15 arquivos lidos)
644
+ - Premissas surfaçadas com evidências e níveis de confiança
645
+ - Usuário confirmou ou corrigiu premissas (~2-4 interações no máximo)
646
+ - Expansão de escopo redirecionada para ideias adiadas
647
+ - CONTEXT.md captura decisões reais (formato idêntico ao modo discuss)
648
+ - CONTEXT.md inclui canonical_refs com caminhos completos de arquivo (OBRIGATÓRIO)
649
+ - CONTEXT.md inclui code_context da análise de base de código
650
+ - DISCUSSION-LOG.md registra premissas e correções como trilha de auditoria
651
+ - STATE.md atualizado com informações da sessão
652
+ - Usuário conhece os próximos passos
653
+ </success_criteria>