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