@luanpdd/kit-mcp 0.2.1 → 0.4.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 (221) hide show
  1. package/CHANGELOG.md +43 -1
  2. package/README.md +35 -18
  3. package/kit/COMANDOS.md +123 -0
  4. package/kit/agents/advisor-researcher.md +121 -0
  5. package/kit/agents/assumptions-analyzer.md +122 -0
  6. package/kit/agents/codebase-mapper.md +787 -0
  7. package/kit/agents/debugger.md +796 -0
  8. package/kit/agents/executor.md +516 -0
  9. package/kit/agents/integration-checker.md +217 -0
  10. package/kit/agents/nyquist-auditor.md +195 -0
  11. package/kit/agents/phase-researcher.md +715 -0
  12. package/kit/agents/plan-checker.md +289 -0
  13. package/kit/agents/planner.md +1373 -0
  14. package/kit/agents/project-researcher.md +671 -0
  15. package/kit/agents/research-synthesizer.md +259 -0
  16. package/kit/agents/roadmapper.md +696 -0
  17. package/kit/agents/ui-auditor.md +458 -0
  18. package/kit/agents/ui-checker.md +319 -0
  19. package/kit/agents/ui-researcher.md +374 -0
  20. package/kit/agents/user-profiler.md +183 -0
  21. package/kit/agents/verifier.md +719 -0
  22. package/kit/commands/adicionar-backlog.md +76 -0
  23. package/kit/commands/adicionar-fase.md +43 -0
  24. package/kit/commands/adicionar-tarefa.md +47 -0
  25. package/kit/commands/adicionar-testes.md +41 -0
  26. package/kit/commands/ajuda.md +22 -0
  27. package/kit/commands/atualizar.md +37 -0
  28. package/kit/commands/auditar-marco.md +36 -0
  29. package/kit/commands/auditar-uat.md +24 -0
  30. package/kit/commands/autonomo.md +41 -0
  31. package/kit/commands/branch-pr.md +25 -0
  32. package/kit/commands/concluir-marco.md +136 -0
  33. package/kit/commands/configuracoes.md +36 -0
  34. package/kit/commands/definir-perfil.md +12 -0
  35. package/kit/commands/depurar.md +173 -0
  36. package/kit/commands/discutir-fase.md +64 -0
  37. package/kit/commands/entrar-discord.md +18 -0
  38. package/kit/commands/estatisticas.md +18 -0
  39. package/kit/commands/executar-fase.md +59 -0
  40. package/kit/commands/expresso.md +47 -0
  41. package/kit/commands/fase-ui.md +34 -0
  42. package/kit/commands/fazer.md +30 -0
  43. package/kit/commands/fio.md +126 -0
  44. package/kit/commands/fluxos-trabalho.md +64 -0
  45. package/kit/commands/forense.md +56 -0
  46. package/kit/commands/gerenciador.md +39 -0
  47. package/kit/commands/inserir-fase.md +32 -0
  48. package/kit/commands/limpeza.md +18 -0
  49. package/kit/commands/listar-hipoteses-fase.md +46 -0
  50. package/kit/commands/listar-workspaces.md +19 -0
  51. package/kit/commands/mapear-codebase.md +71 -0
  52. package/kit/commands/nota.md +34 -0
  53. package/kit/commands/novo-marco.md +44 -0
  54. package/kit/commands/novo-projeto.md +42 -0
  55. package/kit/commands/novo-workspace.md +44 -0
  56. package/kit/commands/pausar-trabalho.md +38 -0
  57. package/kit/commands/perfil-usuario.md +46 -0
  58. package/kit/commands/pesquisar-fase.md +195 -0
  59. package/kit/commands/planejar-fase.md +47 -0
  60. package/kit/commands/planejar-lacunas.md +34 -0
  61. package/kit/commands/plantar-ideia.md +26 -0
  62. package/kit/commands/progresso.md +24 -0
  63. package/kit/commands/proximo.md +24 -0
  64. package/kit/commands/publicar.md +370 -0
  65. package/kit/commands/rapido.md +30 -0
  66. package/kit/commands/reaplicar-patches.md +124 -0
  67. package/kit/commands/relatorio-sessao.md +19 -0
  68. package/kit/commands/remover-fase.md +31 -0
  69. package/kit/commands/remover-workspace.md +26 -0
  70. package/kit/commands/resumo-marco.md +51 -0
  71. package/kit/commands/retomar-trabalho.md +40 -0
  72. package/kit/commands/revisar-backlog.md +60 -0
  73. package/kit/commands/revisar-ui.md +32 -0
  74. package/kit/commands/revisar.md +37 -0
  75. package/kit/commands/saude.md +22 -0
  76. package/kit/commands/setup-notion.md +93 -0
  77. package/kit/commands/sync-main.md +68 -0
  78. package/kit/commands/validar-fase.md +35 -0
  79. package/kit/commands/verificar-tarefas.md +45 -0
  80. package/kit/commands/verificar-trabalho.md +38 -0
  81. package/kit/file-manifest.json +219 -0
  82. package/kit/framework/VERSION +1 -0
  83. package/kit/framework/bin/lib/commands.cjs +959 -0
  84. package/kit/framework/bin/lib/config.cjs +442 -0
  85. package/kit/framework/bin/lib/core.cjs +1230 -0
  86. package/kit/framework/bin/lib/frontmatter.cjs +336 -0
  87. package/kit/framework/bin/lib/init.cjs +1442 -0
  88. package/kit/framework/bin/lib/milestone.cjs +252 -0
  89. package/kit/framework/bin/lib/model-profiles.cjs +68 -0
  90. package/kit/framework/bin/lib/phase.cjs +888 -0
  91. package/kit/framework/bin/lib/profile-output.cjs +952 -0
  92. package/kit/framework/bin/lib/profile-pipeline.cjs +539 -0
  93. package/kit/framework/bin/lib/roadmap.cjs +329 -0
  94. package/kit/framework/bin/lib/security.cjs +382 -0
  95. package/kit/framework/bin/lib/state.cjs +1031 -0
  96. package/kit/framework/bin/lib/template.cjs +222 -0
  97. package/kit/framework/bin/lib/uat.cjs +282 -0
  98. package/kit/framework/bin/lib/verify.cjs +888 -0
  99. package/kit/framework/bin/lib/workstream.cjs +491 -0
  100. package/kit/framework/bin/tools.cjs +918 -0
  101. package/kit/framework/commands/workstreams.md +63 -0
  102. package/kit/framework/references/checkpoints.md +778 -0
  103. package/kit/framework/references/continuation-format.md +249 -0
  104. package/kit/framework/references/decimal-phase-calculation.md +64 -0
  105. package/kit/framework/references/git-integration.md +295 -0
  106. package/kit/framework/references/git-planning-commit.md +38 -0
  107. package/kit/framework/references/model-profile-resolution.md +36 -0
  108. package/kit/framework/references/model-profiles.md +139 -0
  109. package/kit/framework/references/phase-argument-parsing.md +61 -0
  110. package/kit/framework/references/planning-config.md +202 -0
  111. package/kit/framework/references/questioning.md +162 -0
  112. package/kit/framework/references/tdd.md +263 -0
  113. package/kit/framework/references/ui-brand.md +160 -0
  114. package/kit/framework/references/user-profiling.md +657 -0
  115. package/kit/framework/references/verification-patterns.md +612 -0
  116. package/kit/framework/references/workstream-flag.md +58 -0
  117. package/kit/framework/templates/DEBUG.md +164 -0
  118. package/kit/framework/templates/UAT.md +265 -0
  119. package/kit/framework/templates/UI-SPEC.md +100 -0
  120. package/kit/framework/templates/VALIDATION.md +76 -0
  121. package/kit/framework/templates/claude-md.md +122 -0
  122. package/kit/framework/templates/codebase/architecture.md +185 -0
  123. package/kit/framework/templates/codebase/concerns.md +205 -0
  124. package/kit/framework/templates/codebase/conventions.md +204 -0
  125. package/kit/framework/templates/codebase/integrations.md +192 -0
  126. package/kit/framework/templates/codebase/stack.md +158 -0
  127. package/kit/framework/templates/codebase/structure.md +199 -0
  128. package/kit/framework/templates/codebase/testing.md +301 -0
  129. package/kit/framework/templates/config.json +44 -0
  130. package/kit/framework/templates/context.md +352 -0
  131. package/kit/framework/templates/continue-here.md +78 -0
  132. package/kit/framework/templates/copilot-instructions.md +7 -0
  133. package/kit/framework/templates/debug-subagent-prompt.md +91 -0
  134. package/kit/framework/templates/dev-preferences.md +20 -0
  135. package/kit/framework/templates/discovery.md +146 -0
  136. package/kit/framework/templates/discussion-log.md +63 -0
  137. package/kit/framework/templates/milestone-archive.md +123 -0
  138. package/kit/framework/templates/milestone.md +115 -0
  139. package/kit/framework/templates/phase-prompt.md +610 -0
  140. package/kit/framework/templates/planner-subagent-prompt.md +117 -0
  141. package/kit/framework/templates/project.md +186 -0
  142. package/kit/framework/templates/requirements.md +231 -0
  143. package/kit/framework/templates/research-project/ARCHITECTURE.md +204 -0
  144. package/kit/framework/templates/research-project/FEATURES.md +147 -0
  145. package/kit/framework/templates/research-project/PITFALLS.md +200 -0
  146. package/kit/framework/templates/research-project/STACK.md +120 -0
  147. package/kit/framework/templates/research-project/SUMMARY.md +170 -0
  148. package/kit/framework/templates/research.md +419 -0
  149. package/kit/framework/templates/retrospective.md +54 -0
  150. package/kit/framework/templates/roadmap.md +202 -0
  151. package/kit/framework/templates/state.md +176 -0
  152. package/kit/framework/templates/summary-complex.md +59 -0
  153. package/kit/framework/templates/summary-minimal.md +41 -0
  154. package/kit/framework/templates/summary-standard.md +48 -0
  155. package/kit/framework/templates/summary.md +209 -0
  156. package/kit/framework/templates/user-profile.md +146 -0
  157. package/kit/framework/templates/user-setup.md +256 -0
  158. package/kit/framework/templates/verification-report.md +258 -0
  159. package/kit/framework/workflows/add-phase.md +112 -0
  160. package/kit/framework/workflows/add-tests.md +351 -0
  161. package/kit/framework/workflows/add-todo.md +158 -0
  162. package/kit/framework/workflows/audit-milestone.md +340 -0
  163. package/kit/framework/workflows/audit-uat.md +109 -0
  164. package/kit/framework/workflows/autonomous.md +891 -0
  165. package/kit/framework/workflows/check-todos.md +177 -0
  166. package/kit/framework/workflows/cleanup.md +152 -0
  167. package/kit/framework/workflows/complete-milestone.md +696 -0
  168. package/kit/framework/workflows/diagnose-issues.md +231 -0
  169. package/kit/framework/workflows/discovery-phase.md +289 -0
  170. package/kit/framework/workflows/discuss-phase-assumptions.md +653 -0
  171. package/kit/framework/workflows/discuss-phase.md +1049 -0
  172. package/kit/framework/workflows/do.md +104 -0
  173. package/kit/framework/workflows/execute-phase.md +838 -0
  174. package/kit/framework/workflows/execute-plan.md +510 -0
  175. package/kit/framework/workflows/fast.md +102 -0
  176. package/kit/framework/workflows/forensics.md +265 -0
  177. package/kit/framework/workflows/health.md +181 -0
  178. package/kit/framework/workflows/help.md +606 -0
  179. package/kit/framework/workflows/insert-phase.md +130 -0
  180. package/kit/framework/workflows/list-phase-assumptions.md +178 -0
  181. package/kit/framework/workflows/list-workspaces.md +56 -0
  182. package/kit/framework/workflows/manager.md +362 -0
  183. package/kit/framework/workflows/map-codebase.md +377 -0
  184. package/kit/framework/workflows/milestone-summary.md +223 -0
  185. package/kit/framework/workflows/new-milestone.md +486 -0
  186. package/kit/framework/workflows/new-project.md +1250 -0
  187. package/kit/framework/workflows/new-workspace.md +237 -0
  188. package/kit/framework/workflows/next.md +97 -0
  189. package/kit/framework/workflows/node-repair.md +92 -0
  190. package/kit/framework/workflows/note.md +156 -0
  191. package/kit/framework/workflows/pause-work.md +176 -0
  192. package/kit/framework/workflows/plan-milestone-gaps.md +273 -0
  193. package/kit/framework/workflows/plan-phase.md +859 -0
  194. package/kit/framework/workflows/plant-seed.md +169 -0
  195. package/kit/framework/workflows/pr-branch.md +129 -0
  196. package/kit/framework/workflows/profile-user.md +450 -0
  197. package/kit/framework/workflows/progress.md +507 -0
  198. package/kit/framework/workflows/quick.md +757 -0
  199. package/kit/framework/workflows/remove-phase.md +155 -0
  200. package/kit/framework/workflows/remove-workspace.md +90 -0
  201. package/kit/framework/workflows/research-phase.md +82 -0
  202. package/kit/framework/workflows/resume-project.md +326 -0
  203. package/kit/framework/workflows/review.md +228 -0
  204. package/kit/framework/workflows/session-report.md +146 -0
  205. package/kit/framework/workflows/settings.md +283 -0
  206. package/kit/framework/workflows/ship.md +228 -0
  207. package/kit/framework/workflows/stats.md +60 -0
  208. package/kit/framework/workflows/transition.md +671 -0
  209. package/kit/framework/workflows/ui-phase.md +302 -0
  210. package/kit/framework/workflows/ui-review.md +165 -0
  211. package/kit/framework/workflows/update.md +323 -0
  212. package/kit/framework/workflows/validate-phase.md +174 -0
  213. package/kit/framework/workflows/verify-phase.md +252 -0
  214. package/kit/framework/workflows/verify-work.md +637 -0
  215. package/kit/hooks/check-update.js +114 -0
  216. package/kit/hooks/context-monitor.js +156 -0
  217. package/kit/hooks/prompt-guard.js +96 -0
  218. package/kit/hooks/statusline.js +119 -0
  219. package/kit/hooks/workflow-guard.js +94 -0
  220. package/kit/settings.json +45 -0
  221. package/package.json +1 -1
@@ -0,0 +1,859 @@
1
+ <purpose>
2
+ Criar prompts de fase executáveis (arquivos PLAN.md) para uma fase do roadmap com pesquisa e verificação integradas. Fluxo padrão: Pesquisa (se necessário) -> Planejar -> Verificar -> Concluído. Orquestra agentes phase-researcher, planner e plan-checker com loop de revisão (máx 3 iterações).
3
+ </purpose>
4
+
5
+ <required_reading>
6
+ Ler todos os arquivos referenciados pelo execution_context do prompt invocador antes de começar.
7
+
8
+ @./.claude/framework/references/ui-brand.md
9
+ </required_reading>
10
+
11
+ <available_agent_types>
12
+ Tipos de subagentes framework válidos (use nomes exatos — não use 'general-purpose' como fallback):
13
+ - phase-researcher — Pesquisa abordagens técnicas para uma fase
14
+ - planner — Cria planos detalhados a partir do escopo da fase
15
+ - plan-checker — Revisa qualidade do plano antes da execução
16
+ </available_agent_types>
17
+
18
+ <process>
19
+
20
+ ## 1. Inicializar
21
+
22
+ Carregar todo o contexto em uma chamada (apenas caminhos para minimizar contexto do orquestrador):
23
+
24
+ ```bash
25
+ INIT=$(node "./.claude/framework/bin/tools.cjs" init plan-phase "$PHASE")
26
+ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
27
+ AGENT_SKILLS_RESEARCHER=$(node "./.claude/framework/bin/tools.cjs" agent-skills researcher 2>/dev/null)
28
+ AGENT_SKILLS_PLANNER=$(node "./.claude/framework/bin/tools.cjs" agent-skills planner 2>/dev/null)
29
+ AGENT_SKILLS_CHECKER=$(node "./.claude/framework/bin/tools.cjs" agent-skills checker 2>/dev/null)
30
+ ```
31
+
32
+ Analisar JSON para: `researcher_model`, `planner_model`, `checker_model`, `research_enabled`, `plan_checker_enabled`, `nyquist_validation_enabled`, `commit_docs`, `text_mode`, `phase_found`, `phase_dir`, `phase_number`, `phase_name`, `phase_slug`, `padded_phase`, `has_research`, `has_context`, `has_reviews`, `has_plans`, `plan_count`, `planning_exists`, `roadmap_exists`, `phase_req_ids`.
33
+
34
+ **Caminhos de arquivo (para blocos `<files_to_read>`):** `state_path`, `roadmap_path`, `requirements_path`, `context_path`, `research_path`, `verification_path`, `uat_path`, `reviews_path`. Estes são null se os arquivos não existirem.
35
+
36
+ **Se `planning_exists` for false:** Erro — executar `/novo-projeto` primeiro.
37
+
38
+ ## 2. Analisar e Normalizar Argumentos
39
+
40
+ Extrair de $ARGUMENTS: número da fase (inteiro ou decimal como `2.1`), flags (`--research`, `--skip-research`, `--gaps`, `--skip-verify`, `--prd <filepath>`, `--reviews`, `--text`).
41
+
42
+ Definir `TEXT_MODE=true` se `--text` estiver presente em $ARGUMENTS OU `text_mode` do JSON do init for `true`. Quando `TEXT_MODE` estiver ativo, substituir cada chamada `AskUserQuestion` por uma lista numerada de texto simples e pedir ao usuário que digite o número da sua escolha. Isso é necessário para sessões remotas do Claude Code (modo `/rc`) onde menus TUI não funcionam através do App Claude.
43
+
44
+ Extrair `--prd <filepath>` de $ARGUMENTS. Se presente, definir PRD_FILE para o filepath.
45
+
46
+ **Se sem número de fase:** Detectar próxima fase não planejada do roadmap.
47
+
48
+ **Se `phase_found` for false:** Validar que a fase existe no ROADMAP.md. Se válida, criar o diretório usando `phase_slug` e `padded_phase` do init:
49
+ ```bash
50
+ mkdir -p ".planning/phases/${padded_phase}-${phase_slug}"
51
+ ```
52
+
53
+ **Artefatos existentes do init:** `has_research`, `has_plans`, `plan_count`.
54
+
55
+ ## 2.5. Validar Pré-requisito `--reviews`
56
+
57
+ **Pular se:** Sem flag `--reviews`.
58
+
59
+ **Se `--reviews` E `--gaps`:** Erro — não é possível combinar `--reviews` com `--gaps`. Estes são modos conflitantes.
60
+
61
+ **Se `--reviews` E `has_reviews` for false (sem REVIEWS.md no diretório da fase):**
62
+
63
+ Erro:
64
+ ```
65
+ Nenhum REVIEWS.md encontrado para a Fase {N}. Execute reviews primeiro:
66
+
67
+ /revisar --phase {N}
68
+
69
+ Então re-execute /planejar-fase {N} --reviews
70
+ ```
71
+ Sair do workflow.
72
+
73
+ ## 3. Validar Fase
74
+
75
+ ```bash
76
+ PHASE_INFO=$(node "./.claude/framework/bin/tools.cjs" roadmap get-phase "${PHASE}")
77
+ ```
78
+
79
+ **Se `found` for false:** Erro com fases disponíveis. **Se `found` for true:** Extrair `phase_number`, `phase_name`, `goal` do JSON.
80
+
81
+ ## 3.5. Tratar Caminho Expresso PRD
82
+
83
+ **Pular se:** Sem flag `--prd` nos argumentos.
84
+
85
+ **Se `--prd <filepath>` fornecido:**
86
+
87
+ 1. Ler o arquivo PRD:
88
+ ```bash
89
+ PRD_CONTENT=$(cat "$PRD_FILE" 2>/dev/null)
90
+ if [ -z "$PRD_CONTENT" ]; then
91
+ echo "Erro: Arquivo PRD não encontrado: $PRD_FILE"
92
+ exit 1
93
+ fi
94
+ ```
95
+
96
+ 2. Exibir banner:
97
+ ```
98
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
99
+ framework ► CAMINHO EXPRESSO PRD
100
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
101
+
102
+ Usando PRD: {PRD_FILE}
103
+ Gerando CONTEXT.md a partir dos requisitos...
104
+ ```
105
+
106
+ 3. Analisar o conteúdo do PRD e gerar CONTEXT.md. O orquestrador deve:
107
+ - Extrair todos os requisitos, histórias de usuário, critérios de aceitação e restrições do PRD
108
+ - Mapear cada um para uma decisão bloqueada (tudo no PRD é tratado como decisão bloqueada)
109
+ - Identificar quaisquer áreas que o PRD não cobre e marcar como "Discrição do Claude"
110
+ - **Extrair refs canônicas** do ROADMAP.md para esta fase, mais quaisquer specs/ADRs referenciados no PRD — expandir para caminhos de arquivo completos (OBRIGATÓRIO)
111
+ - Criar CONTEXT.md no diretório da fase
112
+
113
+ 4. Escrever CONTEXT.md:
114
+ ```markdown
115
+ # Fase [X]: [Nome] - Contexto
116
+
117
+ **Coletado:** [data]
118
+ **Status:** Pronto para planejamento
119
+ **Fonte:** Caminho Expresso PRD ({PRD_FILE})
120
+
121
+ <domain>
122
+ ## Limite da Fase
123
+
124
+ [Extraído do PRD — o que esta fase entrega]
125
+
126
+ </domain>
127
+
128
+ <decisions>
129
+ ## Decisões de Implementação
130
+
131
+ {Para cada requisito/história/critério no PRD:}
132
+ ### [Categoria derivada do conteúdo]
133
+ - [Requisito como decisão bloqueada]
134
+
135
+ ### Discrição do Claude
136
+ [Áreas não cobertas pelo PRD — detalhes de implementação, escolhas técnicas]
137
+
138
+ </decisions>
139
+
140
+ <canonical_refs>
141
+ ## Referências Canônicas
142
+
143
+ **Agentes downstream DEVEM ler estas antes de planejar ou implementar.**
144
+
145
+ [OBRIGATÓRIO. Extrair do ROADMAP.md e quaisquer docs referenciados no PRD.
146
+ Usar caminhos relativos completos. Agrupar por área de tópico.]
147
+
148
+ ### [Área de tópico]
149
+ - `caminho/para/spec-ou-adr.md` — [O que decide/define]
150
+
151
+ [Se sem specs externas: "Sem specs externas — requisitos totalmente capturados nas decisões acima"]
152
+
153
+ </canonical_refs>
154
+
155
+ <specifics>
156
+ ## Ideias Específicas
157
+
158
+ [Quaisquer referências específicas, exemplos ou requisitos concretos do PRD]
159
+
160
+ </specifics>
161
+
162
+ <deferred>
163
+ ## Ideias Adiadas
164
+
165
+ [Itens no PRD explicitamente marcados como futuro/v2/fora do escopo]
166
+ [Se nenhum: "Nenhum — PRD cobre o escopo da fase"]
167
+
168
+ </deferred>
169
+
170
+ ---
171
+
172
+ *Fase: XX-nome*
173
+ *Contexto coletado: [data] via Caminho Expresso PRD*
174
+ ```
175
+
176
+ 5. Commitar:
177
+ ```bash
178
+ node "./.claude/framework/bin/tools.cjs" commit "docs(${padded_phase}): generate context from PRD" --files "${phase_dir}/${padded_phase}-CONTEXT.md"
179
+ ```
180
+
181
+ 6. Definir `context_content` para o conteúdo do CONTEXT.md gerado e continuar para o passo 5 (Tratar Pesquisa).
182
+
183
+ **Efeito:** Isso ignora completamente o passo 4 (Carregar CONTEXT.md) já que acabamos de criá-lo. O restante do workflow (pesquisa, planejamento, verificação) prossegue normalmente com o contexto derivado do PRD.
184
+
185
+ ## 4. Carregar CONTEXT.md
186
+
187
+ **Pular se:** O caminho expresso PRD foi usado (CONTEXT.md já criado no passo 3.5).
188
+
189
+ Verificar `context_path` do JSON do init.
190
+
191
+ Se `context_path` não for null, exibir: `Usando contexto da fase de: ${context_path}`
192
+
193
+ **Se `context_path` for null (sem CONTEXT.md existe):**
194
+
195
+ Ler modo de discussão para rótulo do gate de contexto:
196
+ ```bash
197
+ DISCUSS_MODE=$(node "./.claude/framework/bin/tools.cjs" config-get workflow.discuss_mode 2>/dev/null || echo "discuss")
198
+ ```
199
+
200
+ Se `TEXT_MODE` for true, apresentar como lista numerada de texto simples:
201
+ ```
202
+ Nenhum CONTEXT.md encontrado para a Fase {X}. Planos usarão pesquisa e requisitos apenas — suas preferências de design não serão incluídas.
203
+
204
+ 1. Continuar sem contexto — Planejar usando pesquisa + requisitos apenas
205
+ [Se DISCUSS_MODE for "assumptions":]
206
+ 2. Coletar contexto (modo assumptions) — Analisar codebase e exibir hipóteses antes do planejamento
207
+ [Se DISCUSS_MODE for "discuss" ou não definido:]
208
+ 2. Executar discuss-phase primeiro — Capturar decisões de design antes do planejamento
209
+
210
+ Digite o número:
211
+ ```
212
+
213
+ Caso contrário usar AskUserQuestion:
214
+ - header: "Sem contexto"
215
+ - question: "Nenhum CONTEXT.md encontrado para a Fase {X}. Planos usarão pesquisa e requisitos apenas — suas preferências de design não serão incluídas. Continuar ou capturar contexto primeiro?"
216
+ - options:
217
+ - "Continuar sem contexto" — Planejar usando pesquisa + requisitos apenas
218
+ Se `DISCUSS_MODE` for `"assumptions"`:
219
+ - "Coletar contexto (modo assumptions)" — Analisar codebase e exibir hipóteses antes do planejamento
220
+ Se `DISCUSS_MODE` for `"discuss"` (ou não definido):
221
+ - "Executar discuss-phase primeiro" — Capturar decisões de design antes do planejamento
222
+
223
+ Se "Continuar sem contexto": Prosseguir para o passo 5.
224
+ Se "Executar discuss-phase primeiro":
225
+ **IMPORTANTE:** NÃO invocar discuss-phase como uma chamada Skill/Task aninhada — AskUserQuestion
226
+ não funciona corretamente em subcontextos aninhados (#1009). Em vez disso, exibir o comando
227
+ e sair para que o usuário o execute como um comando de nível superior:
228
+ ```
229
+ Execute este comando primeiro, então re-execute /planejar-fase {X} ${WS}:
230
+
231
+ /discutir-fase {X} ${WS}
232
+ ```
233
+ **Sair do workflow plan-phase. Não continuar.**
234
+
235
+ ## 5. Tratar Pesquisa
236
+
237
+ **Pular se:** flag `--gaps` ou flag `--skip-research` ou flag `--reviews`.
238
+
239
+ **Se `has_research` for true (do init) E sem flag `--research`:** Usar existente, pular para o passo 6.
240
+
241
+ **Se RESEARCH.md ausente OU flag `--research`:**
242
+
243
+ **Se sem flag explícita (`--research` ou `--skip-research`) e não `--auto`:**
244
+ Perguntar ao usuário se deseja pesquisar, com uma recomendação contextual baseada na fase:
245
+
246
+ Se `TEXT_MODE` for true, apresentar como lista numerada de texto simples:
247
+ ```
248
+ Pesquisar antes de planejar a Fase {X}: {phase_name}?
249
+
250
+ 1. Pesquisar primeiro (Recomendado) — Investigar domínio, padrões e dependências antes do planejamento. Melhor para novas funcionalidades, integrações desconhecidas ou mudanças arquiteturais.
251
+ 2. Pular pesquisa — Planejar diretamente a partir do contexto e requisitos. Melhor para correções de bugs, refatorações simples ou tarefas bem compreendidas.
252
+
253
+ Digite o número:
254
+ ```
255
+
256
+ Caso contrário usar AskUserQuestion:
257
+ ```
258
+ AskUserQuestion([
259
+ {
260
+ question: "Pesquisar antes de planejar a Fase {X}: {phase_name}?",
261
+ header: "Pesquisa",
262
+ multiSelect: false,
263
+ options: [
264
+ { label: "Pesquisar primeiro (Recomendado)", description: "Investigar domínio, padrões e dependências antes do planejamento. Melhor para novas funcionalidades, integrações desconhecidas ou mudanças arquiteturais." },
265
+ { label: "Pular pesquisa", description: "Planejar diretamente a partir do contexto e requisitos. Melhor para correções de bugs, refatorações simples ou tarefas bem compreendidas." }
266
+ ]
267
+ }
268
+ ])
269
+ ```
270
+
271
+ Se o usuário selecionar "Pular pesquisa": pular para o passo 6.
272
+
273
+ **Se `--auto` e `research_enabled` for false:** Pular pesquisa silenciosamente (preserva comportamento automatizado).
274
+
275
+ Exibir banner:
276
+ ```
277
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
278
+ framework ► PESQUISANDO FASE {X}
279
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
280
+
281
+ ◆ Criando pesquisador...
282
+ ```
283
+
284
+ ### Criar phase-researcher
285
+
286
+ ```bash
287
+ PHASE_DESC=$(node "./.claude/framework/bin/tools.cjs" roadmap get-phase "${PHASE}" --pick section)
288
+ ```
289
+
290
+ Prompt de pesquisa:
291
+
292
+ ```markdown
293
+ <objective>
294
+ Research how to implement Phase {phase_number}: {phase_name}
295
+ Answer: "What do I need to know to PLAN this phase well?"
296
+ </objective>
297
+
298
+ <files_to_read>
299
+ - {context_path} (USER DECISIONS from /discuss-phase)
300
+ - {requirements_path} (Project requirements)
301
+ - {state_path} (Project decisions and history)
302
+ </files_to_read>
303
+
304
+ ${AGENT_SKILLS_RESEARCHER}
305
+
306
+ <additional_context>
307
+ **Phase description:** {phase_description}
308
+ **Phase requirement IDs (MUST address):** {phase_req_ids}
309
+
310
+ **Project instructions:** Read ./CLAUDE.md if exists — follow project-specific guidelines
311
+ **Project skills:** Check .claude/skills/ or .agents/skills/ directory (if either exists) — read SKILL.md files, research should account for project skill patterns
312
+ </additional_context>
313
+
314
+ <output>
315
+ Write to: {phase_dir}/{phase_num}-RESEARCH.md
316
+ </output>
317
+ ```
318
+
319
+ ```
320
+ Task(
321
+ prompt=research_prompt,
322
+ subagent_type="phase-researcher",
323
+ model="{researcher_model}",
324
+ description="Research Phase {phase}"
325
+ )
326
+ ```
327
+
328
+ ### Lidar com Retorno do Pesquisador
329
+
330
+ - **`## RESEARCH COMPLETE`:** Exibir confirmação, continuar para o passo 6
331
+ - **`## RESEARCH BLOCKED`:** Exibir bloqueador, oferecer: 1) Fornecer contexto, 2) Pular pesquisa, 3) Abortar
332
+
333
+ ## 5.5. Criar Estratégia de Validação
334
+
335
+ Pular se `nyquist_validation_enabled` for false OU `research_enabled` for false.
336
+
337
+ Se `research_enabled` for false e `nyquist_validation_enabled` for true: avisar "Validação Nyquist habilitada mas pesquisa desabilitada — VALIDATION.md não pode ser criado sem RESEARCH.md. Planos não terão requisitos de validação (Dimensão 8)." Continuar para o passo 6.
338
+
339
+ **Mas Nyquist não é aplicável para esta execução** quando todos os seguintes forem verdadeiros:
340
+ - `research_enabled` for false
341
+ - `has_research` for false
342
+ - nenhuma flag `--research` foi fornecida
343
+
344
+ Nesse caso: **pular completamente a criação da estratégia de validação**. **Não** esperar `RESEARCH.md` ou `VALIDATION.md` para esta execução, e continuar para o Passo 6.
345
+
346
+ ```bash
347
+ grep -l "## Validation Architecture" "${PHASE_DIR}"/*-RESEARCH.md 2>/dev/null || true
348
+ ```
349
+
350
+ **Se encontrado:**
351
+ 1. Ler template: `./.claude/framework/templates/VALIDATION.md`
352
+ 2. Escrever em `${PHASE_DIR}/${PADDED_PHASE}-VALIDATION.md` (usar ferramenta Write)
353
+ 3. Preencher frontmatter: `{N}` → número da fase, `{phase-slug}` → slug, `{date}` → data atual
354
+ 4. Verificar:
355
+ ```bash
356
+ test -f "${PHASE_DIR}/${PADDED_PHASE}-VALIDATION.md" && echo "VALIDATION_CREATED=true" || echo "VALIDATION_CREATED=false"
357
+ ```
358
+ 5. Se `VALIDATION_CREATED=false`: PARAR — não prosseguir para o Passo 6
359
+ 6. Se `commit_docs`: `commit "docs(phase-${PHASE}): add validation strategy"`
360
+
361
+ **Se não encontrado:** Avisar e continuar — planos podem falhar na Dimensão 8.
362
+
363
+ ## 5.6. Gate de Contrato de Design de UI
364
+
365
+ > Pular se `workflow.ui_phase` for explicitamente `false` E `workflow.ui_safety_gate` for explicitamente `false` em `.planning/config.json`. Se as chaves estiverem ausentes, tratar como habilitado.
366
+
367
+ ```bash
368
+ UI_PHASE_CFG=$(node "./.claude/framework/bin/tools.cjs" config-get workflow.ui_phase 2>/dev/null || echo "true")
369
+ UI_GATE_CFG=$(node "./.claude/framework/bin/tools.cjs" config-get workflow.ui_safety_gate 2>/dev/null || echo "true")
370
+ ```
371
+
372
+ **Se ambos forem `false`:** Pular para o passo 6.
373
+
374
+ Verificar se a fase tem indicadores de frontend:
375
+
376
+ ```bash
377
+ PHASE_SECTION=$(node "./.claude/framework/bin/tools.cjs" roadmap get-phase "${PHASE}" 2>/dev/null)
378
+ echo "$PHASE_SECTION" | grep -iE "UI|interface|frontend|component|layout|page|screen|view|form|dashboard|widget" > /dev/null 2>&1
379
+ HAS_UI=$?
380
+ ```
381
+
382
+ **Se `HAS_UI` for 0 (indicadores de frontend encontrados):**
383
+
384
+ Verificar UI-SPEC existente:
385
+ ```bash
386
+ UI_SPEC_FILE=$(ls "${PHASE_DIR}"/*-UI-SPEC.md 2>/dev/null | head -1)
387
+ ```
388
+
389
+ **Se UI-SPEC.md encontrado:** Definir `UI_SPEC_PATH=$UI_SPEC_FILE`. Exibir: `Usando contrato de design de UI: ${UI_SPEC_PATH}`
390
+
391
+ **Se UI-SPEC.md ausente E `UI_GATE_CFG` for `true`:**
392
+
393
+ Se `TEXT_MODE` for true, apresentar como lista numerada de texto simples:
394
+ ```
395
+ A Fase {N} tem indicadores de frontend mas sem UI-SPEC.md. Gerar um contrato de design antes do planejamento?
396
+
397
+ 1. Gerar UI-SPEC primeiro — Execute /fase-ui {N} então re-execute /planejar-fase {N}
398
+ 2. Continuar sem UI-SPEC
399
+ 3. Não é uma fase de frontend
400
+
401
+ Digite o número:
402
+ ```
403
+
404
+ Caso contrário usar AskUserQuestion:
405
+ - header: "Contrato de Design de UI"
406
+ - question: "A Fase {N} tem indicadores de frontend mas sem UI-SPEC.md. Gerar um contrato de design antes do planejamento?"
407
+ - options:
408
+ - "Gerar UI-SPEC primeiro" → Exibir: "Execute `/fase-ui {N} ${WS}` então re-execute `/planejar-fase {N} ${WS}`". Sair do workflow.
409
+ - "Continuar sem UI-SPEC" → Continuar para o passo 6.
410
+ - "Não é uma fase de frontend" → Continuar para o passo 6.
411
+
412
+ **Se `HAS_UI` for 1 (sem indicadores de frontend):** Pular silenciosamente para o passo 6.
413
+
414
+ ## 6. Verificar Planos Existentes
415
+
416
+ ```bash
417
+ ls "${PHASE_DIR}"/*-PLAN.md 2>/dev/null || true
418
+ ```
419
+
420
+ **Se existir E flag `--reviews`:** Pular prompt — ir diretamente para replanejamento (o propósito de `--reviews` é replanejar com feedback de revisão).
421
+
422
+ **Se existir E sem flag `--reviews`:** Oferecer: 1) Adicionar mais planos, 2) Visualizar existentes, 3) Replanejar do zero.
423
+
424
+ ## 7. Usar Caminhos de Contexto do INIT
425
+
426
+ Extrair do JSON do INIT:
427
+
428
+ ```bash
429
+ _field() { node -e "const o=JSON.parse(process.argv[1]); const v=o[process.argv[2]]; process.stdout.write(v==null?'':String(v))" "$1" "$2"; }
430
+ STATE_PATH=$(_field "$INIT" state_path)
431
+ ROADMAP_PATH=$(_field "$INIT" roadmap_path)
432
+ REQUIREMENTS_PATH=$(_field "$INIT" requirements_path)
433
+ RESEARCH_PATH=$(_field "$INIT" research_path)
434
+ VERIFICATION_PATH=$(_field "$INIT" verification_path)
435
+ UAT_PATH=$(_field "$INIT" uat_path)
436
+ CONTEXT_PATH=$(_field "$INIT" context_path)
437
+ REVIEWS_PATH=$(_field "$INIT" reviews_path)
438
+ ```
439
+
440
+ ## 7.5. Verificar Artefatos Nyquist
441
+
442
+ Pular se `nyquist_validation_enabled` for false OU `research_enabled` for false.
443
+
444
+ Também pular se todos os seguintes forem verdadeiros:
445
+ - `research_enabled` for false
446
+ - `has_research` for false
447
+ - nenhuma flag `--research` foi fornecida
448
+
449
+ No caminho sem-pesquisa, artefatos Nyquist **não são necessários** para esta execução.
450
+
451
+ ```bash
452
+ VALIDATION_EXISTS=$(ls "${PHASE_DIR}"/*-VALIDATION.md 2>/dev/null | head -1)
453
+ ```
454
+
455
+ Se ausente e Nyquist ainda estiver habilitado/aplicável — perguntar ao usuário:
456
+ 1. Re-executar: `/planejar-fase {PHASE} --research ${WS}`
457
+ 2. Desabilitar Nyquist com o comando exato:
458
+ `node "./.claude/framework/bin/tools.cjs" config-set workflow.nyquist_validation false`
459
+ 3. Continuar mesmo assim (planos falham na Dimensão 8)
460
+
461
+ Prosseguir para o Passo 8 apenas se o usuário selecionar 2 ou 3.
462
+
463
+ ## 8. Criar Agente planner
464
+
465
+ Exibir banner:
466
+ ```
467
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
468
+ framework ► PLANEJANDO FASE {X}
469
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
470
+
471
+ ◆ Criando planejador...
472
+ ```
473
+
474
+ Prompt do planejador:
475
+
476
+ ```markdown
477
+ <planning_context>
478
+ **Phase:** {phase_number}
479
+ **Mode:** {standard | gap_closure | reviews}
480
+
481
+ <files_to_read>
482
+ - {state_path} (Project State)
483
+ - {roadmap_path} (Roadmap)
484
+ - {requirements_path} (Requirements)
485
+ - {context_path} (USER DECISIONS from /discuss-phase)
486
+ - {research_path} (Technical Research)
487
+ - {verification_path} (Verification Gaps - if --gaps)
488
+ - {uat_path} (UAT Gaps - if --gaps)
489
+ - {reviews_path} (Cross-AI Review Feedback - if --reviews)
490
+ - {UI_SPEC_PATH} (UI Design Contract — visual/interaction specs, if exists)
491
+ </files_to_read>
492
+
493
+ ${AGENT_SKILLS_PLANNER}
494
+
495
+ **Phase requirement IDs (every ID MUST appear in a plan's `requirements` field):** {phase_req_ids}
496
+
497
+ **Project instructions:** Read ./CLAUDE.md if exists — follow project-specific guidelines
498
+ **Project skills:** Check .claude/skills/ or .agents/skills/ directory (if either exists) — read SKILL.md files, plans should account for project skill rules
499
+ </planning_context>
500
+
501
+ <downstream_consumer>
502
+ Output consumed by /execute-phase. Plans need:
503
+ - Frontmatter (wave, depends_on, files_modified, autonomous)
504
+ - Tasks in XML format with read_first and acceptance_criteria fields (MANDATORY on every task)
505
+ - Verification criteria
506
+ - must_haves for goal-backward verification
507
+ </downstream_consumer>
508
+
509
+ <deep_work_rules>
510
+ ## Anti-Shallow Execution Rules (MANDATORY)
511
+
512
+ Every task MUST include these fields — they are NOT optional:
513
+
514
+ 1. **`<read_first>`** — Files the executor MUST read before touching anything. Always include:
515
+ - The file being modified (so executor sees current state, not assumptions)
516
+ - Any "source of truth" file referenced in CONTEXT.md (reference implementations, existing patterns, config files, schemas)
517
+ - Any file whose patterns, signatures, types, or conventions must be replicated or respected
518
+
519
+ 2. **`<acceptance_criteria>`** — Verifiable conditions that prove the task was done correctly. Rules:
520
+ - Every criterion must be checkable with grep, file read, test command, or CLI output
521
+ - NEVER use subjective language ("looks correct", "properly configured", "consistent with")
522
+ - ALWAYS include exact strings, patterns, values, or command outputs that must be present
523
+ - Examples:
524
+ - Code: `auth.py contains def verify_token(` / `test_auth.py exits 0`
525
+ - Config: `.env.example contains DATABASE_URL=` / `Dockerfile contains HEALTHCHECK`
526
+ - Docs: `README.md contains '## Installation'` / `API.md lists all endpoints`
527
+ - Infra: `deploy.yml has rollback step` / `docker-compose.yml has healthcheck for db`
528
+
529
+ 3. **`<action>`** — Must include CONCRETE values, not references. Rules:
530
+ - NEVER say "align X with Y", "match X to Y", "update to be consistent" without specifying the exact target state
531
+ - ALWAYS include the actual values: config keys, function signatures, SQL statements, class names, import paths, env vars, etc.
532
+ - If CONTEXT.md has a comparison table or expected values, copy them into the action verbatim
533
+ - The executor should be able to complete the task from the action text alone, without needing to read CONTEXT.md or reference files (read_first is for verification, not discovery)
534
+
535
+ **Why this matters:** Executor agents work from the plan text. Vague instructions like "update the config to match production" produce shallow one-line changes. Concrete instructions like "add DATABASE_URL=postgresql://... , set POOL_SIZE=20, add REDIS_URL=redis://..." produce complete work. The cost of verbose plans is far less than the cost of re-doing shallow execution.
536
+ </deep_work_rules>
537
+
538
+ <quality_gate>
539
+ - [ ] PLAN.md files created in phase directory
540
+ - [ ] Each plan has valid frontmatter
541
+ - [ ] Tasks are specific and actionable
542
+ - [ ] Every task has `<read_first>` with at least the file being modified
543
+ - [ ] Every task has `<acceptance_criteria>` with grep-verifiable conditions
544
+ - [ ] Every `<action>` contains concrete values (no "align X with Y" without specifying what)
545
+ - [ ] Dependencies correctly identified
546
+ - [ ] Waves assigned for parallel execution
547
+ - [ ] must_haves derived from phase goal
548
+ </quality_gate>
549
+ ```
550
+
551
+ ```
552
+ Task(
553
+ prompt=filled_prompt,
554
+ subagent_type="planner",
555
+ model="{planner_model}",
556
+ description="Plan Phase {phase}"
557
+ )
558
+ ```
559
+
560
+ ## 9. Lidar com Retorno do Planejador
561
+
562
+ - **`## PLANNING COMPLETE`:** Exibir contagem de planos. Se `--skip-verify` ou `plan_checker_enabled` for false (do init): pular para o passo 13. Caso contrário: passo 10.
563
+ - **`## CHECKPOINT REACHED`:** Apresentar ao usuário, obter resposta, criar continuação (passo 12)
564
+ - **`## PLANNING INCONCLUSIVE`:** Mostrar tentativas, oferecer: Adicionar contexto / Tentar novamente / Manual
565
+
566
+ ## 10. Criar Agente plan-checker
567
+
568
+ Exibir banner:
569
+ ```
570
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
571
+ framework ► VERIFICANDO PLANOS
572
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
573
+
574
+ ◆ Criando verificador de planos...
575
+ ```
576
+
577
+ Prompt do verificador:
578
+
579
+ ```markdown
580
+ <verification_context>
581
+ **Phase:** {phase_number}
582
+ **Phase Goal:** {goal from ROADMAP}
583
+
584
+ <files_to_read>
585
+ - {PHASE_DIR}/*-PLAN.md (Plans to verify)
586
+ - {roadmap_path} (Roadmap)
587
+ - {requirements_path} (Requirements)
588
+ - {context_path} (USER DECISIONS from /discuss-phase)
589
+ - {research_path} (Technical Research — includes Validation Architecture)
590
+ </files_to_read>
591
+
592
+ ${AGENT_SKILLS_CHECKER}
593
+
594
+ **Phase requirement IDs (MUST ALL be covered):** {phase_req_ids}
595
+
596
+ **Project instructions:** Read ./CLAUDE.md if exists — verify plans honor project guidelines
597
+ **Project skills:** Check .claude/skills/ or .agents/skills/ directory (if either exists) — verify plans account for project skill rules
598
+ </verification_context>
599
+
600
+ <expected_output>
601
+ - ## VERIFICATION PASSED — all checks pass
602
+ - ## ISSUES FOUND — structured issue list
603
+ </expected_output>
604
+ ```
605
+
606
+ ```
607
+ Task(
608
+ prompt=checker_prompt,
609
+ subagent_type="plan-checker",
610
+ model="{checker_model}",
611
+ description="Verify Phase {phase} plans"
612
+ )
613
+ ```
614
+
615
+ ## 11. Lidar com Retorno do Verificador
616
+
617
+ - **`## VERIFICATION PASSED`:** Exibir confirmação, prosseguir para o passo 13.
618
+ - **`## ISSUES FOUND`:** Exibir problemas, verificar contagem de iteração, prosseguir para o passo 12.
619
+
620
+ ## 12. Loop de Revisão (Máx 3 Iterações)
621
+
622
+ Rastrear `iteration_count` (começa em 1 após plano inicial + verificação).
623
+
624
+ **Se iteration_count < 3:**
625
+
626
+ Exibir: `Enviando de volta ao planejador para revisão... (iteração {N}/3)`
627
+
628
+ Prompt de revisão:
629
+
630
+ ```markdown
631
+ <revision_context>
632
+ **Phase:** {phase_number}
633
+ **Mode:** revision
634
+
635
+ <files_to_read>
636
+ - {PHASE_DIR}/*-PLAN.md (Existing plans)
637
+ - {context_path} (USER DECISIONS from /discuss-phase)
638
+ </files_to_read>
639
+
640
+ ${AGENT_SKILLS_PLANNER}
641
+
642
+ **Checker issues:** {structured_issues_from_checker}
643
+ </revision_context>
644
+
645
+ <instructions>
646
+ Make targeted updates to address checker issues.
647
+ Do NOT replan from scratch unless issues are fundamental.
648
+ Return what changed.
649
+ </instructions>
650
+ ```
651
+
652
+ ```
653
+ Task(
654
+ prompt=revision_prompt,
655
+ subagent_type="planner",
656
+ model="{planner_model}",
657
+ description="Revise Phase {phase} plans"
658
+ )
659
+ ```
660
+
661
+ Após planejador retornar -> criar verificador novamente (passo 10), incrementar iteration_count.
662
+
663
+ **Se iteration_count >= 3:**
664
+
665
+ Exibir: `Máximo de iterações atingido. {N} problemas restam:` + lista de problemas
666
+
667
+ Oferecer: 1) Forçar prosseguimento, 2) Fornecer orientação e tentar novamente, 3) Abandonar
668
+
669
+ ## 13. Gate de Cobertura de Requisitos
670
+
671
+ Após os planos passarem pelo verificador (ou verificador ser pulado), verificar se todos os requisitos de fase são cobertos por pelo menos um plano.
672
+
673
+ **Pular se:** `phase_req_ids` for null ou TBD (sem requisitos mapeados para esta fase).
674
+
675
+ **Passo 1: Extrair IDs de requisito reivindicados pelos planos**
676
+ ```bash
677
+ # Coletar todos os IDs de requisito do frontmatter dos planos
678
+ PLAN_REQS=$(grep -h "requirements_addressed\|requirements:" ${PHASE_DIR}/*-PLAN.md 2>/dev/null | tr -d '[]' | tr ',' '\n' | sed 's/^[[:space:]]*//' | sort -u)
679
+ ```
680
+
681
+ **Passo 2: Comparar com requisitos de fase do ROADMAP**
682
+
683
+ Para cada REQ-ID em `phase_req_ids`:
684
+ - Se REQ-ID aparecer em `PLAN_REQS` → coberto ✓
685
+ - Se REQ-ID NÃO aparecer em nenhum plano → não coberto ✗
686
+
687
+ **Passo 3: Verificar funcionalidades do CONTEXT.md contra objetivos do plano**
688
+
689
+ Ler seção `<decisions>` do CONTEXT.md. Extrair nomes de funcionalidade/capacidade. Verificar cada um contra blocos `<objective>` do plano. Funcionalidades não mencionadas em nenhum objetivo de plano → potencialmente descartadas.
690
+
691
+ **Passo 4: Reportar**
692
+
693
+ Se todos os requisitos cobertos e sem funcionalidades descartadas:
694
+ ```
695
+ ✓ Cobertura de requisitos: {N}/{N} REQ-IDs cobertos pelos planos
696
+ ```
697
+ → Prosseguir para o passo 14.
698
+
699
+ Se lacunas encontradas:
700
+ ```
701
+ ## ⚠ Lacuna de Cobertura de Requisitos
702
+
703
+ {M} de {N} requisitos de fase não estão atribuídos a nenhum plano:
704
+
705
+ | REQ-ID | Descrição | Planos |
706
+ |--------|-----------|--------|
707
+ | {id} | {do REQUIREMENTS.md} | Nenhum |
708
+
709
+ {K} funcionalidades do CONTEXT.md não encontradas nos objetivos dos planos:
710
+ - {feature_name} — descrito no CONTEXT.md mas nenhum plano cobre
711
+
712
+ Opções:
713
+ 1. Replanejar para incluir requisitos faltantes (recomendado)
714
+ 2. Mover requisitos não cobertos para a próxima fase
715
+ 3. Prosseguir mesmo assim — aceitar lacunas de cobertura
716
+ ```
717
+
718
+ Se `TEXT_MODE` for true, apresentar como lista numerada de texto simples (opções já mostradas no bloco acima). Caso contrário usar AskUserQuestion para apresentar as opções.
719
+
720
+ ## 14. Apresentar Status Final
721
+
722
+ Rotear para `<offer_next>` OU `auto_advance` dependendo de flags/config.
723
+
724
+ ## 15. Verificação de Avanço Automático
725
+
726
+ Verificar gatilho de avanço automático:
727
+
728
+ 1. Analisar flag `--auto` de $ARGUMENTS
729
+ 2. **Sincronizar flag de cadeia com intenção** — se o usuário invocou manualmente (sem `--auto`), limpar a flag de cadeia efêmera de qualquer cadeia `--auto` anterior interrompida. Isso NÃO toca em `workflow.auto_advance` (preferência persistente do usuário):
730
+ ```bash
731
+ if [[ ! "$ARGUMENTS" =~ --auto ]]; then
732
+ node "./.claude/framework/bin/tools.cjs" config-set workflow._auto_chain_active false 2>/dev/null
733
+ fi
734
+ ```
735
+ 3. Ler tanto a flag de cadeia quanto a preferência do usuário:
736
+ ```bash
737
+ AUTO_CHAIN=$(node "./.claude/framework/bin/tools.cjs" config-get workflow._auto_chain_active 2>/dev/null || echo "false")
738
+ AUTO_CFG=$(node "./.claude/framework/bin/tools.cjs" config-get workflow.auto_advance 2>/dev/null || echo "false")
739
+ ```
740
+
741
+ **Se flag `--auto` presente OU `AUTO_CHAIN` for true OU `AUTO_CFG` for true:**
742
+
743
+ Exibir banner:
744
+ ```
745
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
746
+ framework ► AVANÇANDO AUTOMATICAMENTE PARA EXECUÇÃO
747
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
748
+
749
+ Planos prontos. Iniciando execute-phase...
750
+ ```
751
+
752
+ Iniciar execute-phase usando a ferramenta Skill para evitar sessões Task aninhadas (que causam freezes de runtime devido ao aninhamento profundo de agentes):
753
+ ```
754
+ Skill(skill="framework:executar-fase", args="${PHASE} --auto --no-transition ${WS}")
755
+ ```
756
+
757
+ A flag `--no-transition` diz ao execute-phase para retornar status após verificação em vez de encadear mais. Isso mantém a cadeia de avanço automático plana — cada fase roda no mesmo nível de aninhamento em vez de criar agentes Task mais profundos.
758
+
759
+ **Lidar com retorno do execute-phase:**
760
+ - **FASE CONCLUÍDA** → Exibir resumo final:
761
+ ```
762
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
763
+ framework ► FASE ${PHASE} CONCLUÍDA ✓
764
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
765
+
766
+ Pipeline de avanço automático finalizado.
767
+
768
+ Próximo: /discutir-fase ${NEXT_PHASE} --auto ${WS}
769
+ ```
770
+ - **LACUNAS ENCONTRADAS / VERIFICAÇÃO FALHOU** → Exibir resultado, parar cadeia:
771
+ ```
772
+ Avanço automático parado: Execução precisa de revisão.
773
+
774
+ Revisar a saída acima e continuar manualmente:
775
+ /executar-fase ${PHASE} ${WS}
776
+ ```
777
+
778
+ **Se nem `--auto` nem config habilitado:**
779
+ Rotear para `<offer_next>` (comportamento existente).
780
+
781
+ </process>
782
+
783
+ <offer_next>
784
+ Produzir este markdown diretamente (não como bloco de código):
785
+
786
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
787
+ framework ► FASE {X} PLANEJADA ✓
788
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
789
+
790
+ **Fase {X}: {Nome}** — {N} plano(s) em {M} onda(s)
791
+
792
+ | Onda | Planos | O que constrói |
793
+ |------|--------|----------------|
794
+ | 1 | 01, 02 | [objetivos] |
795
+ | 2 | 03 | [objetivo] |
796
+
797
+ Pesquisa: {Concluída | Existente usada | Pulada}
798
+ Verificação: {Passou | Passou com override | Pulada}
799
+
800
+ ───────────────────────────────────────────────────────────────
801
+
802
+ ## ▶ Próximo Passo
803
+
804
+ **Executar Fase {X}** — executar todos os {N} planos
805
+
806
+ /executar-fase {X} ${WS}
807
+
808
+ <sub>/clear primeiro → janela de contexto fresca</sub>
809
+
810
+ ───────────────────────────────────────────────────────────────
811
+
812
+ **Também disponível:**
813
+ - cat .planning/phases/{phase-dir}/*-PLAN.md — revisar planos
814
+ - /planejar-fase {X} --research — pesquisar primeiro
815
+ - /revisar --phase {X} --all — revisão por pares com IAs externas
816
+ - /planejar-fase {X} --reviews — replanejar incorporando feedback de revisão
817
+
818
+ ───────────────────────────────────────────────────────────────
819
+ </offer_next>
820
+
821
+ <windows_troubleshooting>
822
+ **Usuários Windows:** Se plan-phase travar durante a criação de agentes (comum no Windows devido a
823
+ deadlocks de stdio com servidores MCP — ver issue do Claude Code anthropics/claude-code#28126):
824
+
825
+ 1. **Forçar encerramento:** Fechar o terminal (Ctrl+C pode não funcionar)
826
+ 2. **Limpar processos órfãos:**
827
+ ```powershell
828
+ # Encerrar processos node órfãos de servidores MCP obsoletos
829
+ Get-Process node -ErrorAction SilentlyContinue | Where-Object {$_.StartTime -lt (Get-Date).AddHours(-1)} | Stop-Process -Force
830
+ ```
831
+ 3. **Limpar diretórios de tarefa obsoletos:**
832
+ ```powershell
833
+ # Remover diretórios de tarefa de subagente obsoletos (Claude Code nunca limpa no crash)
834
+ Remove-Item -Recurse -Force "$env:USERPROFILE\.claude\tasks\*" -ErrorAction SilentlyContinue
835
+ ```
836
+ 4. **Reduzir contagem de servidores MCP:** Desabilitar temporariamente servidores MCP não essenciais em settings.json
837
+ 5. **Tentar novamente:** Reiniciar Claude Code e executar `/planejar-fase` novamente
838
+
839
+ Se travamentos persistirem, tente `--skip-research` para reduzir a cadeia de agentes de 3 para 2:
840
+ ```
841
+ /planejar-fase N --skip-research
842
+ ```
843
+ </windows_troubleshooting>
844
+
845
+ <success_criteria>
846
+ - [ ] Diretório .planning/ validado
847
+ - [ ] Fase validada contra o roadmap
848
+ - [ ] Diretório da fase criado se necessário
849
+ - [ ] CONTEXT.md carregado cedo (passo 4) e passado para TODOS os agentes
850
+ - [ ] Pesquisa concluída (a menos que --skip-research ou --gaps ou existente)
851
+ - [ ] phase-researcher criado com CONTEXT.md
852
+ - [ ] Planos existentes verificados
853
+ - [ ] planner criado com CONTEXT.md + RESEARCH.md
854
+ - [ ] Planos criados (PLANNING COMPLETE ou CHECKPOINT tratado)
855
+ - [ ] plan-checker criado com CONTEXT.md
856
+ - [ ] Verificação passou OU override do usuário OU máximo de iterações com decisão do usuário
857
+ - [ ] Usuário vê status entre criações de agente
858
+ - [ ] Usuário sabe os próximos passos
859
+ </success_criteria>