@luanpdd/kit-mcp 1.21.0 → 1.26.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 (275) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +914 -648
  3. package/kit/COMANDOS.md +138 -138
  4. package/kit/README.md +76 -52
  5. package/kit/agents/advisor-researcher.md +106 -106
  6. package/kit/agents/assumptions-analyzer.md +107 -107
  7. package/kit/agents/audit-log-implementer.md +138 -0
  8. package/kit/agents/auditor-consistencia-isolamento.md +413 -0
  9. package/kit/agents/codebase-mapper.md +768 -768
  10. package/kit/agents/crm-pipeline-implementer.md +106 -0
  11. package/kit/agents/debugger.md +813 -772
  12. package/kit/agents/detector-tenant-quente.md +337 -0
  13. package/kit/agents/evolution-go-integrator.md +21 -0
  14. package/kit/agents/example-reviewer.md +21 -21
  15. package/kit/agents/executor.md +564 -523
  16. package/kit/agents/integration-checker.md +200 -200
  17. package/kit/agents/invite-flow-implementer.md +52 -0
  18. package/kit/agents/lgpd-compliance-auditor.md +89 -0
  19. package/kit/agents/multi-tenant-isolation-auditor.md +10 -0
  20. package/kit/agents/multi-tenant-rls-writer.md +78 -0
  21. package/kit/agents/nyquist-auditor.md +178 -178
  22. package/kit/agents/org-onboarding-implementer.md +21 -0
  23. package/kit/agents/phase-researcher.md +696 -696
  24. package/kit/agents/plan-checker.md +272 -272
  25. package/kit/agents/planner.md +922 -891
  26. package/kit/agents/project-researcher.md +652 -652
  27. package/kit/agents/research-synthesizer.md +245 -245
  28. package/kit/agents/roadmapper.md +677 -677
  29. package/kit/agents/supabase-architect.md +27 -0
  30. package/kit/agents/supabase-auth-bootstrapper.md +80 -0
  31. package/kit/agents/supabase-column-privileges-writer.md +399 -0
  32. package/kit/agents/supabase-migration-writer.md +141 -14
  33. package/kit/agents/supabase-rbac-implementer.md +392 -0
  34. package/kit/agents/supabase-rls-hardener.md +521 -0
  35. package/kit/agents/supabase-rls-writer.md +105 -9
  36. package/kit/agents/supabase-roles-implementer.md +355 -0
  37. package/kit/agents/super-admin-implementer.md +99 -0
  38. package/kit/agents/ui-auditor.md +437 -437
  39. package/kit/agents/ui-checker.md +302 -302
  40. package/kit/agents/ui-researcher.md +355 -355
  41. package/kit/agents/user-profiler.md +175 -175
  42. package/kit/agents/validador-evolucao-schema.md +335 -0
  43. package/kit/agents/verifier.md +728 -728
  44. package/kit/commands/adicionar-backlog.md +75 -75
  45. package/kit/commands/adicionar-fase.md +42 -42
  46. package/kit/commands/adicionar-tarefa.md +45 -45
  47. package/kit/commands/adicionar-testes.md +41 -41
  48. package/kit/commands/ajuda.md +21 -21
  49. package/kit/commands/atualizar.md +37 -37
  50. package/kit/commands/auditar-marco.md +179 -179
  51. package/kit/commands/auditar-uat.md +23 -23
  52. package/kit/commands/autonomo.md +40 -40
  53. package/kit/commands/branch-pr.md +24 -24
  54. package/kit/commands/concluir-marco.md +247 -247
  55. package/kit/commands/configuracoes.md +36 -36
  56. package/kit/commands/dados-distribuidos.md +188 -0
  57. package/kit/commands/definir-perfil.md +10 -10
  58. package/kit/commands/depurar.md +190 -190
  59. package/kit/commands/discutir-fase.md +131 -131
  60. package/kit/commands/entrar-discord.md +17 -17
  61. package/kit/commands/estatisticas.md +18 -18
  62. package/kit/commands/example-greeting.md +33 -33
  63. package/kit/commands/executar-fase.md +58 -58
  64. package/kit/commands/expresso.md +56 -56
  65. package/kit/commands/fase-ui.md +34 -34
  66. package/kit/commands/fazer.md +57 -57
  67. package/kit/commands/fio.md +125 -125
  68. package/kit/commands/fluxos-trabalho.md +64 -64
  69. package/kit/commands/forense.md +176 -176
  70. package/kit/commands/gerenciador.md +38 -38
  71. package/kit/commands/inserir-fase.md +31 -31
  72. package/kit/commands/limpeza.md +17 -17
  73. package/kit/commands/listar-hipoteses-fase.md +45 -45
  74. package/kit/commands/listar-workspaces.md +18 -18
  75. package/kit/commands/mapear-codebase.md +70 -70
  76. package/kit/commands/nota.md +33 -33
  77. package/kit/commands/novo-marco.md +43 -43
  78. package/kit/commands/novo-projeto.md +41 -41
  79. package/kit/commands/novo-workspace.md +43 -43
  80. package/kit/commands/pausar-trabalho.md +37 -37
  81. package/kit/commands/perfil-usuario.md +45 -45
  82. package/kit/commands/pesquisar-fase.md +195 -195
  83. package/kit/commands/planejar-fase.md +67 -67
  84. package/kit/commands/planejar-lacunas.md +33 -33
  85. package/kit/commands/plantar-ideia.md +25 -25
  86. package/kit/commands/progresso.md +24 -24
  87. package/kit/commands/proximo.md +30 -30
  88. package/kit/commands/publicar.md +490 -490
  89. package/kit/commands/rapido.md +35 -35
  90. package/kit/commands/reaplicar-patches.md +124 -124
  91. package/kit/commands/relatorio-sessao.md +19 -19
  92. package/kit/commands/remover-fase.md +31 -31
  93. package/kit/commands/remover-workspace.md +26 -26
  94. package/kit/commands/resumo-marco.md +50 -50
  95. package/kit/commands/retomar-trabalho.md +40 -40
  96. package/kit/commands/revisar-backlog.md +60 -60
  97. package/kit/commands/revisar-ui.md +32 -32
  98. package/kit/commands/revisar.md +37 -37
  99. package/kit/commands/saude.md +21 -21
  100. package/kit/commands/setup-notion.md +93 -93
  101. package/kit/commands/supabase.md +55 -8
  102. package/kit/commands/sync-main.md +68 -68
  103. package/kit/commands/validar-fase.md +35 -35
  104. package/kit/commands/verificar-tarefas.md +44 -44
  105. package/kit/commands/verificar-trabalho.md +64 -64
  106. package/kit/file-manifest.json +52 -32
  107. package/kit/framework/bin/lib/commands.cjs +959 -959
  108. package/kit/framework/bin/lib/config.cjs +442 -442
  109. package/kit/framework/bin/lib/core.cjs +1230 -1230
  110. package/kit/framework/bin/lib/frontmatter.cjs +336 -336
  111. package/kit/framework/bin/lib/init.cjs +1442 -1442
  112. package/kit/framework/bin/lib/milestone.cjs +252 -252
  113. package/kit/framework/bin/lib/model-profiles.cjs +68 -68
  114. package/kit/framework/bin/lib/phase.cjs +888 -888
  115. package/kit/framework/bin/lib/profile-output.cjs +952 -952
  116. package/kit/framework/bin/lib/profile-pipeline.cjs +539 -539
  117. package/kit/framework/bin/lib/roadmap.cjs +329 -329
  118. package/kit/framework/bin/lib/security.cjs +382 -382
  119. package/kit/framework/bin/lib/state.cjs +1031 -1031
  120. package/kit/framework/bin/lib/template.cjs +222 -222
  121. package/kit/framework/bin/lib/uat.cjs +282 -282
  122. package/kit/framework/bin/lib/verify.cjs +888 -888
  123. package/kit/framework/bin/lib/workstream.cjs +491 -491
  124. package/kit/framework/bin/tools.cjs +918 -918
  125. package/kit/framework/commands/workstreams.md +63 -63
  126. package/kit/framework/references/checkpoints.md +778 -778
  127. package/kit/framework/references/continuation-format.md +249 -249
  128. package/kit/framework/references/decimal-phase-calculation.md +64 -64
  129. package/kit/framework/references/git-integration.md +295 -295
  130. package/kit/framework/references/git-planning-commit.md +38 -38
  131. package/kit/framework/references/model-profile-resolution.md +36 -36
  132. package/kit/framework/references/model-profiles.md +139 -139
  133. package/kit/framework/references/phase-argument-parsing.md +61 -61
  134. package/kit/framework/references/planning-config.md +202 -202
  135. package/kit/framework/references/questioning.md +162 -162
  136. package/kit/framework/references/tdd.md +263 -263
  137. package/kit/framework/references/ui-brand.md +160 -160
  138. package/kit/framework/references/user-profiling.md +657 -657
  139. package/kit/framework/references/verification-patterns.md +612 -612
  140. package/kit/framework/references/workstream-flag.md +58 -58
  141. package/kit/framework/templates/DEBUG.md +164 -164
  142. package/kit/framework/templates/UAT.md +265 -265
  143. package/kit/framework/templates/UI-SPEC.md +100 -100
  144. package/kit/framework/templates/VALIDATION.md +76 -76
  145. package/kit/framework/templates/claude-md.md +122 -122
  146. package/kit/framework/templates/codebase/architecture.md +185 -185
  147. package/kit/framework/templates/codebase/concerns.md +205 -205
  148. package/kit/framework/templates/codebase/conventions.md +204 -204
  149. package/kit/framework/templates/codebase/integrations.md +192 -192
  150. package/kit/framework/templates/codebase/stack.md +158 -158
  151. package/kit/framework/templates/codebase/structure.md +199 -199
  152. package/kit/framework/templates/codebase/testing.md +301 -301
  153. package/kit/framework/templates/config.json +44 -44
  154. package/kit/framework/templates/context.md +352 -352
  155. package/kit/framework/templates/continue-here.md +78 -78
  156. package/kit/framework/templates/copilot-instructions.md +7 -7
  157. package/kit/framework/templates/debug-subagent-prompt.md +91 -91
  158. package/kit/framework/templates/dev-preferences.md +20 -20
  159. package/kit/framework/templates/discovery.md +146 -146
  160. package/kit/framework/templates/discussion-log.md +63 -63
  161. package/kit/framework/templates/milestone-archive.md +123 -123
  162. package/kit/framework/templates/milestone.md +115 -115
  163. package/kit/framework/templates/phase-prompt.md +610 -610
  164. package/kit/framework/templates/planner-subagent-prompt.md +117 -117
  165. package/kit/framework/templates/project.md +186 -186
  166. package/kit/framework/templates/requirements.md +231 -231
  167. package/kit/framework/templates/research-project/ARCHITECTURE.md +204 -204
  168. package/kit/framework/templates/research-project/FEATURES.md +147 -147
  169. package/kit/framework/templates/research-project/PITFALLS.md +200 -200
  170. package/kit/framework/templates/research-project/STACK.md +120 -120
  171. package/kit/framework/templates/research-project/SUMMARY.md +170 -170
  172. package/kit/framework/templates/research.md +419 -419
  173. package/kit/framework/templates/retrospective.md +54 -54
  174. package/kit/framework/templates/roadmap.md +202 -202
  175. package/kit/framework/templates/state.md +176 -176
  176. package/kit/framework/templates/summary-complex.md +59 -59
  177. package/kit/framework/templates/summary-minimal.md +41 -41
  178. package/kit/framework/templates/summary-standard.md +48 -48
  179. package/kit/framework/templates/summary.md +209 -209
  180. package/kit/framework/templates/user-profile.md +146 -146
  181. package/kit/framework/templates/user-setup.md +256 -256
  182. package/kit/framework/templates/verification-report.md +258 -258
  183. package/kit/framework/workflows/add-phase.md +112 -112
  184. package/kit/framework/workflows/add-tests.md +351 -351
  185. package/kit/framework/workflows/add-todo.md +158 -158
  186. package/kit/framework/workflows/audit-milestone.md +340 -340
  187. package/kit/framework/workflows/audit-uat.md +109 -109
  188. package/kit/framework/workflows/autonomous.md +891 -891
  189. package/kit/framework/workflows/check-todos.md +177 -177
  190. package/kit/framework/workflows/cleanup.md +152 -152
  191. package/kit/framework/workflows/complete-milestone.md +696 -696
  192. package/kit/framework/workflows/diagnose-issues.md +231 -231
  193. package/kit/framework/workflows/discovery-phase.md +289 -289
  194. package/kit/framework/workflows/discuss-phase-assumptions.md +653 -653
  195. package/kit/framework/workflows/discuss-phase.md +784 -784
  196. package/kit/framework/workflows/do.md +104 -104
  197. package/kit/framework/workflows/execute-phase.md +838 -838
  198. package/kit/framework/workflows/execute-plan.md +510 -510
  199. package/kit/framework/workflows/fast.md +102 -102
  200. package/kit/framework/workflows/forensics.md +265 -265
  201. package/kit/framework/workflows/health.md +181 -181
  202. package/kit/framework/workflows/help.md +619 -619
  203. package/kit/framework/workflows/insert-phase.md +130 -130
  204. package/kit/framework/workflows/list-phase-assumptions.md +178 -178
  205. package/kit/framework/workflows/list-workspaces.md +56 -56
  206. package/kit/framework/workflows/manager.md +362 -362
  207. package/kit/framework/workflows/map-codebase.md +377 -377
  208. package/kit/framework/workflows/milestone-summary.md +223 -223
  209. package/kit/framework/workflows/new-milestone.md +486 -486
  210. package/kit/framework/workflows/new-project.md +1159 -1159
  211. package/kit/framework/workflows/new-workspace.md +237 -237
  212. package/kit/framework/workflows/next.md +97 -97
  213. package/kit/framework/workflows/node-repair.md +92 -92
  214. package/kit/framework/workflows/note.md +156 -156
  215. package/kit/framework/workflows/pause-work.md +176 -176
  216. package/kit/framework/workflows/plan-milestone-gaps.md +273 -273
  217. package/kit/framework/workflows/plan-phase.md +765 -765
  218. package/kit/framework/workflows/plant-seed.md +169 -169
  219. package/kit/framework/workflows/pr-branch.md +129 -129
  220. package/kit/framework/workflows/profile-user.md +450 -450
  221. package/kit/framework/workflows/progress.md +507 -507
  222. package/kit/framework/workflows/quick.md +757 -757
  223. package/kit/framework/workflows/remove-phase.md +155 -155
  224. package/kit/framework/workflows/remove-workspace.md +90 -90
  225. package/kit/framework/workflows/research-phase.md +82 -82
  226. package/kit/framework/workflows/resume-project.md +326 -326
  227. package/kit/framework/workflows/review.md +228 -228
  228. package/kit/framework/workflows/session-report.md +146 -146
  229. package/kit/framework/workflows/settings.md +283 -283
  230. package/kit/framework/workflows/ship.md +228 -228
  231. package/kit/framework/workflows/stats.md +60 -60
  232. package/kit/framework/workflows/transition.md +671 -671
  233. package/kit/framework/workflows/ui-phase.md +302 -302
  234. package/kit/framework/workflows/ui-review.md +165 -165
  235. package/kit/framework/workflows/update.md +323 -323
  236. package/kit/framework/workflows/validate-phase.md +174 -174
  237. package/kit/framework/workflows/verify-phase.md +252 -252
  238. package/kit/framework/workflows/verify-work.md +637 -637
  239. package/kit/hooks/check-update.js +118 -118
  240. package/kit/hooks/context-monitor.js +163 -163
  241. package/kit/hooks/prompt-guard.js +103 -103
  242. package/kit/hooks/statusline.js +125 -125
  243. package/kit/hooks/workflow-guard.js +101 -101
  244. package/kit/settings.json +45 -45
  245. package/kit/skills/_shared-dados-distribuidos/glossary.md +224 -0
  246. package/kit/skills/_shared-supabase/glossary.md +27 -0
  247. package/kit/skills/armadilhas-sistemas-distribuidos/SKILL.md +447 -0
  248. package/kit/skills/audit-log-multi-tenant/SKILL.md +6 -0
  249. package/kit/skills/cascading-failures/SKILL.md +4 -0
  250. package/kit/skills/consistencia-leitura-replica/SKILL.md +385 -0
  251. package/kit/skills/crm-lead-pipeline-patterns/SKILL.md +17 -0
  252. package/kit/skills/escolha-modelo-consistencia/SKILL.md +495 -0
  253. package/kit/skills/evolucao-schema-compativel/SKILL.md +448 -0
  254. package/kit/skills/example-skill/SKILL.md +42 -42
  255. package/kit/skills/multi-tenant-performance-scaling/SKILL.md +4 -0
  256. package/kit/skills/multi-tenant-rls-hierarchy/SKILL.md +4 -0
  257. package/kit/skills/postgres-isolamento-concorrencia/SKILL.md +552 -0
  258. package/kit/skills/rbac-permissions-matrix-supabase/SKILL.md +37 -0
  259. package/kit/skills/streams-eventos-cdc/SKILL.md +712 -0
  260. package/kit/skills/supabase-column-level-security/SKILL.md +426 -0
  261. package/kit/skills/supabase-cron-queues/SKILL.md +9 -0
  262. package/kit/skills/supabase-custom-claims-rbac/SKILL.md +472 -0
  263. package/kit/skills/supabase-database-functions/SKILL.md +85 -0
  264. package/kit/skills/supabase-migrations/SKILL.md +133 -11
  265. package/kit/skills/supabase-postgres-roles/SKILL.md +392 -0
  266. package/kit/skills/supabase-rls-defense-in-depth/SKILL.md +418 -0
  267. package/kit/skills/supabase-rls-policies/SKILL.md +462 -12
  268. package/kit/skills/super-admin-platform-pattern/SKILL.md +4 -0
  269. package/kit/skills/tenant-quente-mitigacao/SKILL.md +605 -0
  270. package/package.json +63 -63
  271. package/src/core/kit.js +216 -216
  272. package/src/core/reflect.js +247 -247
  273. package/src/core/reverse-sync.js +372 -372
  274. package/src/core/sync.js +418 -418
  275. package/src/core/watch.js +121 -121
@@ -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>