@luanpdd/kit-mcp 1.20.0 → 1.21.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 (259) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +648 -648
  3. package/gates/dept-cycle-prevention.md +179 -0
  4. package/gates/multi-tenant-rls-coverage.md +102 -0
  5. package/gates/service-role-not-in-user-facing.md +113 -0
  6. package/kit/COMANDOS.md +138 -138
  7. package/kit/README.md +52 -52
  8. package/kit/agents/advisor-researcher.md +106 -106
  9. package/kit/agents/assumptions-analyzer.md +107 -107
  10. package/kit/agents/audit-log-implementer.md +175 -0
  11. package/kit/agents/b2b-saas-architect.md +156 -0
  12. package/kit/agents/codebase-mapper.md +768 -768
  13. package/kit/agents/crm-pipeline-implementer.md +150 -0
  14. package/kit/agents/debugger.md +772 -772
  15. package/kit/agents/evolution-go-integrator.md +179 -0
  16. package/kit/agents/example-reviewer.md +21 -21
  17. package/kit/agents/executor.md +523 -523
  18. package/kit/agents/integration-checker.md +200 -200
  19. package/kit/agents/invite-flow-implementer.md +137 -0
  20. package/kit/agents/lgpd-compliance-auditor.md +206 -0
  21. package/kit/agents/multi-tenant-isolation-auditor.md +243 -0
  22. package/kit/agents/multi-tenant-rls-writer.md +262 -0
  23. package/kit/agents/nyquist-auditor.md +178 -178
  24. package/kit/agents/org-onboarding-implementer.md +202 -0
  25. package/kit/agents/phase-researcher.md +696 -696
  26. package/kit/agents/plan-checker.md +272 -272
  27. package/kit/agents/planner.md +891 -891
  28. package/kit/agents/project-researcher.md +652 -652
  29. package/kit/agents/research-synthesizer.md +245 -245
  30. package/kit/agents/roadmapper.md +677 -677
  31. package/kit/agents/super-admin-implementer.md +182 -0
  32. package/kit/agents/ui-auditor.md +437 -437
  33. package/kit/agents/ui-checker.md +302 -302
  34. package/kit/agents/ui-researcher.md +355 -355
  35. package/kit/agents/user-profiler.md +175 -175
  36. package/kit/agents/verifier.md +728 -728
  37. package/kit/commands/adicionar-backlog.md +75 -75
  38. package/kit/commands/adicionar-fase.md +42 -42
  39. package/kit/commands/adicionar-tarefa.md +45 -45
  40. package/kit/commands/adicionar-testes.md +41 -41
  41. package/kit/commands/ajuda.md +21 -21
  42. package/kit/commands/atualizar.md +37 -37
  43. package/kit/commands/auditar-marco.md +179 -179
  44. package/kit/commands/auditar-uat.md +23 -23
  45. package/kit/commands/autonomo.md +40 -40
  46. package/kit/commands/branch-pr.md +24 -24
  47. package/kit/commands/concluir-marco.md +247 -247
  48. package/kit/commands/configuracoes.md +36 -36
  49. package/kit/commands/definir-perfil.md +10 -10
  50. package/kit/commands/depurar.md +190 -190
  51. package/kit/commands/discutir-fase.md +131 -131
  52. package/kit/commands/entrar-discord.md +17 -17
  53. package/kit/commands/estatisticas.md +18 -18
  54. package/kit/commands/example-greeting.md +33 -33
  55. package/kit/commands/executar-fase.md +58 -58
  56. package/kit/commands/expresso.md +56 -56
  57. package/kit/commands/fase-ui.md +34 -34
  58. package/kit/commands/fazer.md +57 -57
  59. package/kit/commands/fio.md +125 -125
  60. package/kit/commands/fluxos-trabalho.md +64 -64
  61. package/kit/commands/forense.md +176 -176
  62. package/kit/commands/gerenciador.md +38 -38
  63. package/kit/commands/inserir-fase.md +31 -31
  64. package/kit/commands/limpeza.md +17 -17
  65. package/kit/commands/listar-hipoteses-fase.md +45 -45
  66. package/kit/commands/listar-workspaces.md +18 -18
  67. package/kit/commands/mapear-codebase.md +70 -70
  68. package/kit/commands/multi-tenant.md +163 -0
  69. package/kit/commands/nota.md +33 -33
  70. package/kit/commands/novo-marco.md +43 -43
  71. package/kit/commands/novo-projeto.md +41 -41
  72. package/kit/commands/novo-workspace.md +43 -43
  73. package/kit/commands/pausar-trabalho.md +37 -37
  74. package/kit/commands/perfil-usuario.md +45 -45
  75. package/kit/commands/pesquisar-fase.md +195 -195
  76. package/kit/commands/planejar-fase.md +67 -67
  77. package/kit/commands/planejar-lacunas.md +33 -33
  78. package/kit/commands/plantar-ideia.md +25 -25
  79. package/kit/commands/progresso.md +24 -24
  80. package/kit/commands/proximo.md +30 -30
  81. package/kit/commands/publicar.md +490 -490
  82. package/kit/commands/rapido.md +35 -35
  83. package/kit/commands/reaplicar-patches.md +124 -124
  84. package/kit/commands/relatorio-sessao.md +19 -19
  85. package/kit/commands/remover-fase.md +31 -31
  86. package/kit/commands/remover-workspace.md +26 -26
  87. package/kit/commands/resumo-marco.md +50 -50
  88. package/kit/commands/retomar-trabalho.md +40 -40
  89. package/kit/commands/revisar-backlog.md +60 -60
  90. package/kit/commands/revisar-ui.md +32 -32
  91. package/kit/commands/revisar.md +37 -37
  92. package/kit/commands/saude.md +21 -21
  93. package/kit/commands/setup-notion.md +93 -93
  94. package/kit/commands/sync-main.md +68 -68
  95. package/kit/commands/validar-fase.md +35 -35
  96. package/kit/commands/verificar-tarefas.md +44 -44
  97. package/kit/commands/verificar-trabalho.md +64 -64
  98. package/kit/file-manifest.json +30 -3
  99. package/kit/framework/bin/lib/commands.cjs +959 -959
  100. package/kit/framework/bin/lib/config.cjs +442 -442
  101. package/kit/framework/bin/lib/core.cjs +1230 -1230
  102. package/kit/framework/bin/lib/frontmatter.cjs +336 -336
  103. package/kit/framework/bin/lib/init.cjs +1442 -1442
  104. package/kit/framework/bin/lib/milestone.cjs +252 -252
  105. package/kit/framework/bin/lib/model-profiles.cjs +68 -68
  106. package/kit/framework/bin/lib/phase.cjs +888 -888
  107. package/kit/framework/bin/lib/profile-output.cjs +952 -952
  108. package/kit/framework/bin/lib/profile-pipeline.cjs +539 -539
  109. package/kit/framework/bin/lib/roadmap.cjs +329 -329
  110. package/kit/framework/bin/lib/security.cjs +382 -382
  111. package/kit/framework/bin/lib/state.cjs +1031 -1031
  112. package/kit/framework/bin/lib/template.cjs +222 -222
  113. package/kit/framework/bin/lib/uat.cjs +282 -282
  114. package/kit/framework/bin/lib/verify.cjs +888 -888
  115. package/kit/framework/bin/lib/workstream.cjs +491 -491
  116. package/kit/framework/bin/tools.cjs +918 -918
  117. package/kit/framework/commands/workstreams.md +63 -63
  118. package/kit/framework/references/checkpoints.md +778 -778
  119. package/kit/framework/references/continuation-format.md +249 -249
  120. package/kit/framework/references/decimal-phase-calculation.md +64 -64
  121. package/kit/framework/references/git-integration.md +295 -295
  122. package/kit/framework/references/git-planning-commit.md +38 -38
  123. package/kit/framework/references/model-profile-resolution.md +36 -36
  124. package/kit/framework/references/model-profiles.md +139 -139
  125. package/kit/framework/references/phase-argument-parsing.md +61 -61
  126. package/kit/framework/references/planning-config.md +202 -202
  127. package/kit/framework/references/questioning.md +162 -162
  128. package/kit/framework/references/tdd.md +263 -263
  129. package/kit/framework/references/ui-brand.md +160 -160
  130. package/kit/framework/references/user-profiling.md +657 -657
  131. package/kit/framework/references/verification-patterns.md +612 -612
  132. package/kit/framework/references/workstream-flag.md +58 -58
  133. package/kit/framework/templates/DEBUG.md +164 -164
  134. package/kit/framework/templates/UAT.md +265 -265
  135. package/kit/framework/templates/UI-SPEC.md +100 -100
  136. package/kit/framework/templates/VALIDATION.md +76 -76
  137. package/kit/framework/templates/claude-md.md +122 -122
  138. package/kit/framework/templates/codebase/architecture.md +185 -185
  139. package/kit/framework/templates/codebase/concerns.md +205 -205
  140. package/kit/framework/templates/codebase/conventions.md +204 -204
  141. package/kit/framework/templates/codebase/integrations.md +192 -192
  142. package/kit/framework/templates/codebase/stack.md +158 -158
  143. package/kit/framework/templates/codebase/structure.md +199 -199
  144. package/kit/framework/templates/codebase/testing.md +301 -301
  145. package/kit/framework/templates/config.json +44 -44
  146. package/kit/framework/templates/context.md +352 -352
  147. package/kit/framework/templates/continue-here.md +78 -78
  148. package/kit/framework/templates/copilot-instructions.md +7 -7
  149. package/kit/framework/templates/debug-subagent-prompt.md +91 -91
  150. package/kit/framework/templates/dev-preferences.md +20 -20
  151. package/kit/framework/templates/discovery.md +146 -146
  152. package/kit/framework/templates/discussion-log.md +63 -63
  153. package/kit/framework/templates/milestone-archive.md +123 -123
  154. package/kit/framework/templates/milestone.md +115 -115
  155. package/kit/framework/templates/phase-prompt.md +610 -610
  156. package/kit/framework/templates/planner-subagent-prompt.md +117 -117
  157. package/kit/framework/templates/project.md +186 -186
  158. package/kit/framework/templates/requirements.md +231 -231
  159. package/kit/framework/templates/research-project/ARCHITECTURE.md +204 -204
  160. package/kit/framework/templates/research-project/FEATURES.md +147 -147
  161. package/kit/framework/templates/research-project/PITFALLS.md +200 -200
  162. package/kit/framework/templates/research-project/STACK.md +120 -120
  163. package/kit/framework/templates/research-project/SUMMARY.md +170 -170
  164. package/kit/framework/templates/research.md +419 -419
  165. package/kit/framework/templates/retrospective.md +54 -54
  166. package/kit/framework/templates/roadmap.md +202 -202
  167. package/kit/framework/templates/state.md +176 -176
  168. package/kit/framework/templates/summary-complex.md +59 -59
  169. package/kit/framework/templates/summary-minimal.md +41 -41
  170. package/kit/framework/templates/summary-standard.md +48 -48
  171. package/kit/framework/templates/summary.md +209 -209
  172. package/kit/framework/templates/user-profile.md +146 -146
  173. package/kit/framework/templates/user-setup.md +256 -256
  174. package/kit/framework/templates/verification-report.md +258 -258
  175. package/kit/framework/workflows/add-phase.md +112 -112
  176. package/kit/framework/workflows/add-tests.md +351 -351
  177. package/kit/framework/workflows/add-todo.md +158 -158
  178. package/kit/framework/workflows/audit-milestone.md +340 -340
  179. package/kit/framework/workflows/audit-uat.md +109 -109
  180. package/kit/framework/workflows/autonomous.md +891 -891
  181. package/kit/framework/workflows/check-todos.md +177 -177
  182. package/kit/framework/workflows/cleanup.md +152 -152
  183. package/kit/framework/workflows/complete-milestone.md +696 -696
  184. package/kit/framework/workflows/diagnose-issues.md +231 -231
  185. package/kit/framework/workflows/discovery-phase.md +289 -289
  186. package/kit/framework/workflows/discuss-phase-assumptions.md +653 -653
  187. package/kit/framework/workflows/discuss-phase.md +784 -784
  188. package/kit/framework/workflows/do.md +104 -104
  189. package/kit/framework/workflows/execute-phase.md +838 -838
  190. package/kit/framework/workflows/execute-plan.md +510 -510
  191. package/kit/framework/workflows/fast.md +102 -102
  192. package/kit/framework/workflows/forensics.md +265 -265
  193. package/kit/framework/workflows/health.md +181 -181
  194. package/kit/framework/workflows/help.md +619 -619
  195. package/kit/framework/workflows/insert-phase.md +130 -130
  196. package/kit/framework/workflows/list-phase-assumptions.md +178 -178
  197. package/kit/framework/workflows/list-workspaces.md +56 -56
  198. package/kit/framework/workflows/manager.md +362 -362
  199. package/kit/framework/workflows/map-codebase.md +377 -377
  200. package/kit/framework/workflows/milestone-summary.md +223 -223
  201. package/kit/framework/workflows/new-milestone.md +486 -486
  202. package/kit/framework/workflows/new-project.md +1159 -1159
  203. package/kit/framework/workflows/new-workspace.md +237 -237
  204. package/kit/framework/workflows/next.md +97 -97
  205. package/kit/framework/workflows/node-repair.md +92 -92
  206. package/kit/framework/workflows/note.md +156 -156
  207. package/kit/framework/workflows/pause-work.md +176 -176
  208. package/kit/framework/workflows/plan-milestone-gaps.md +273 -273
  209. package/kit/framework/workflows/plan-phase.md +765 -765
  210. package/kit/framework/workflows/plant-seed.md +169 -169
  211. package/kit/framework/workflows/pr-branch.md +129 -129
  212. package/kit/framework/workflows/profile-user.md +450 -450
  213. package/kit/framework/workflows/progress.md +507 -507
  214. package/kit/framework/workflows/quick.md +757 -757
  215. package/kit/framework/workflows/remove-phase.md +155 -155
  216. package/kit/framework/workflows/remove-workspace.md +90 -90
  217. package/kit/framework/workflows/research-phase.md +82 -82
  218. package/kit/framework/workflows/resume-project.md +326 -326
  219. package/kit/framework/workflows/review.md +228 -228
  220. package/kit/framework/workflows/session-report.md +146 -146
  221. package/kit/framework/workflows/settings.md +283 -283
  222. package/kit/framework/workflows/ship.md +228 -228
  223. package/kit/framework/workflows/stats.md +60 -60
  224. package/kit/framework/workflows/transition.md +671 -671
  225. package/kit/framework/workflows/ui-phase.md +302 -302
  226. package/kit/framework/workflows/ui-review.md +165 -165
  227. package/kit/framework/workflows/update.md +323 -323
  228. package/kit/framework/workflows/validate-phase.md +174 -174
  229. package/kit/framework/workflows/verify-phase.md +252 -252
  230. package/kit/framework/workflows/verify-work.md +637 -637
  231. package/kit/hooks/check-update.js +118 -118
  232. package/kit/hooks/context-monitor.js +163 -163
  233. package/kit/hooks/prompt-guard.js +103 -103
  234. package/kit/hooks/statusline.js +125 -125
  235. package/kit/hooks/workflow-guard.js +101 -101
  236. package/kit/settings.json +45 -45
  237. package/kit/skills/_shared-multi-tenant/glossary.md +186 -0
  238. package/kit/skills/audit-log-multi-tenant/SKILL.md +334 -0
  239. package/kit/skills/b2b-saas-architecture/SKILL.md +300 -0
  240. package/kit/skills/crm-lead-pipeline-patterns/SKILL.md +326 -0
  241. package/kit/skills/evolution-go-whatsapp-integration/SKILL.md +322 -0
  242. package/kit/skills/example-skill/SKILL.md +42 -42
  243. package/kit/skills/lgpd-multi-tenant-compliance/SKILL.md +340 -0
  244. package/kit/skills/member-invite-flow/SKILL.md +305 -0
  245. package/kit/skills/member-management-react-shadcn/SKILL.md +328 -0
  246. package/kit/skills/multi-tenant-performance-scaling/SKILL.md +312 -0
  247. package/kit/skills/multi-tenant-rls-hierarchy/SKILL.md +338 -0
  248. package/kit/skills/org-onboarding-flow/SKILL.md +257 -0
  249. package/kit/skills/org-switcher-react-pattern/SKILL.md +349 -0
  250. package/kit/skills/permission-gate-react-pattern/SKILL.md +271 -0
  251. package/kit/skills/rbac-permissions-matrix-supabase/SKILL.md +301 -0
  252. package/kit/skills/super-admin-platform-pattern/SKILL.md +322 -0
  253. package/kit/skills/whatsapp-conversation-state-machine/SKILL.md +287 -0
  254. package/package.json +63 -63
  255. package/src/core/kit.js +216 -216
  256. package/src/core/reflect.js +247 -247
  257. package/src/core/reverse-sync.js +372 -372
  258. package/src/core/sync.js +418 -418
  259. package/src/core/watch.js +121 -121
@@ -1,92 +1,92 @@
1
- <purpose>
2
- Operador de reparo autônomo para verificação de tarefas com falha. Invocado pelo execute-plan quando uma tarefa não passa nos critérios de conclusão. Propõe e tenta correções estruturadas antes de escalar ao usuário.
3
- </purpose>
4
-
5
- <inputs>
6
- - FAILED_TASK: Número, nome e critérios de conclusão da tarefa no plano
7
- - ERROR: O que a verificação produziu — resultado real vs. esperado
8
- - PLAN_CONTEXT: Tarefas adjacentes e objetivo da fase (para consciência de restrições)
9
- - REPAIR_BUDGET: Máximo de tentativas de reparo restantes (padrão: 2)
10
- </inputs>
11
-
12
- <repair_directive>
13
- Analise a falha e escolha exatamente uma estratégia de reparo:
14
-
15
- **RETRY** — A abordagem estava correta, mas a execução falhou. Tente novamente com um ajuste concreto.
16
- - Usar quando: erro de comando, dependência ausente, caminho errado, problema de ambiente, falha transiente
17
- - Saída: `RETRY: [ajuste específico a fazer antes de tentar novamente]`
18
-
19
- **DECOMPOSE** — A tarefa é muito ampla. Divida em sub-etapas menores verificáveis.
20
- - Usar quando: os critérios de conclusão cobrem múltiplos aspectos, lacunas de implementação são estruturais
21
- - Saída: `DECOMPOSE: [sub-tarefa 1] | [sub-tarefa 2] | ...` (máx. 3 sub-tarefas)
22
- - Sub-tarefas devem ter, cada uma, um único resultado verificável
23
-
24
- **PRUNE** — A tarefa é inviável dadas as restrições atuais. Pule com justificativa.
25
- - Usar quando: pré-requisito ausente e não corrigível aqui, fora do escopo, contradiz uma decisão anterior
26
- - Saída: `PRUNE: [justificativa em uma frase]`
27
-
28
- **ESCALATE** — Orçamento de reparo esgotado, ou esta é uma decisão arquitetural (Regra 4).
29
- - Usar quando: RETRY falhou mais de uma vez com abordagens diferentes, ou a correção requer mudança estrutural
30
- - Saída: `ESCALATE: [o que foi tentado] | [qual decisão é necessária]`
31
- </repair_directive>
32
-
33
- <process>
34
-
35
- <step name="diagnose">
36
- Leia o erro e os critérios de conclusão com atenção. Pergunte:
37
- 1. É um problema transitório/ambiental? → RETRY
38
- 2. A tarefa é verificavelmente muito ampla? → DECOMPOSE
39
- 3. Um pré-requisito está genuinamente ausente e não pode ser corrigido no escopo? → PRUNE
40
- 4. RETRY já foi tentado para esta tarefa? Verifique REPAIR_BUDGET. Se 0 → ESCALATE
41
- </step>
42
-
43
- <step name="execute_retry">
44
- Se RETRY:
45
- 1. Aplique o ajuste específico declarado na diretiva
46
- 2. Execute novamente a implementação da tarefa
47
- 3. Execute novamente a verificação
48
- 4. Se passar → continue normalmente, registre `[Node Repair - RETRY] Tarefa [X]: [ajuste feito]`
49
- 5. Se falhar novamente → decremente REPAIR_BUDGET, invoque node-repair novamente com contexto atualizado
50
- </step>
51
-
52
- <step name="execute_decompose">
53
- Se DECOMPOSE:
54
- 1. Substitua a tarefa com falha pelas sub-tarefas inline (não modifique PLAN.md em disco)
55
- 2. Execute as sub-tarefas sequencialmente, cada uma com sua própria verificação
56
- 3. Se todas passarem → trate a tarefa original como bem-sucedida, registre `[Node Repair - DECOMPOSE] Tarefa [X] → [N] sub-tarefas`
57
- 4. Se uma sub-tarefa falhar → invoque node-repair novamente para essa sub-tarefa (REPAIR_BUDGET aplica-se por sub-tarefa)
58
- </step>
59
-
60
- <step name="execute_prune">
61
- Se PRUNE:
62
- 1. Marque a tarefa como pulada com justificativa
63
- 2. Registre no SUMMARY "Problemas Encontrados": `[Node Repair - PRUNE] Tarefa [X]: [justificativa]`
64
- 3. Continue para a próxima tarefa
65
- </step>
66
-
67
- <step name="execute_escalate">
68
- Se ESCALATE:
69
- 1. Suba para o usuário via verification_failure_gate com histórico completo de reparo
70
- 2. Apresente: o que foi tentado (cada tentativa RETRY/DECOMPOSE), qual é o bloqueador, opções disponíveis
71
- 3. Aguarde a direção do usuário antes de continuar
72
- </step>
73
-
74
- </process>
75
-
76
- <logging>
77
- Todas as ações de reparo devem aparecer no SUMMARY.md em "## Desvios do Plano":
78
-
79
- | Tipo | Formato |
80
- |------|--------|
81
- | RETRY com sucesso | `[Node Repair - RETRY] Tarefa X: [ajuste] — resolvido` |
82
- | RETRY falha → ESCALATE | `[Node Repair - RETRY] Tarefa X: [N] tentativas esgotadas — escalado ao usuário` |
83
- | DECOMPOSE | `[Node Repair - DECOMPOSE] Tarefa X dividida em [N] sub-tarefas — todas passaram` |
84
- | PRUNE | `[Node Repair - PRUNE] Tarefa X pulada: [justificativa]` |
85
- </logging>
86
-
87
- <constraints>
88
- - REPAIR_BUDGET padrão é 2 por tarefa. Configurável via config.json `workflow.node_repair_budget`.
89
- - Nunca modifique PLAN.md em disco — sub-tarefas decompostas existem apenas em memória.
90
- - Sub-tarefas DECOMPOSE devem ser mais específicas que a original, não apenas reescritas sinônimas.
91
- - Se config.json `workflow.node_repair` for `false`, pule diretamente para verification_failure_gate (o usuário mantém o comportamento original).
92
- </constraints>
1
+ <purpose>
2
+ Operador de reparo autônomo para verificação de tarefas com falha. Invocado pelo execute-plan quando uma tarefa não passa nos critérios de conclusão. Propõe e tenta correções estruturadas antes de escalar ao usuário.
3
+ </purpose>
4
+
5
+ <inputs>
6
+ - FAILED_TASK: Número, nome e critérios de conclusão da tarefa no plano
7
+ - ERROR: O que a verificação produziu — resultado real vs. esperado
8
+ - PLAN_CONTEXT: Tarefas adjacentes e objetivo da fase (para consciência de restrições)
9
+ - REPAIR_BUDGET: Máximo de tentativas de reparo restantes (padrão: 2)
10
+ </inputs>
11
+
12
+ <repair_directive>
13
+ Analise a falha e escolha exatamente uma estratégia de reparo:
14
+
15
+ **RETRY** — A abordagem estava correta, mas a execução falhou. Tente novamente com um ajuste concreto.
16
+ - Usar quando: erro de comando, dependência ausente, caminho errado, problema de ambiente, falha transiente
17
+ - Saída: `RETRY: [ajuste específico a fazer antes de tentar novamente]`
18
+
19
+ **DECOMPOSE** — A tarefa é muito ampla. Divida em sub-etapas menores verificáveis.
20
+ - Usar quando: os critérios de conclusão cobrem múltiplos aspectos, lacunas de implementação são estruturais
21
+ - Saída: `DECOMPOSE: [sub-tarefa 1] | [sub-tarefa 2] | ...` (máx. 3 sub-tarefas)
22
+ - Sub-tarefas devem ter, cada uma, um único resultado verificável
23
+
24
+ **PRUNE** — A tarefa é inviável dadas as restrições atuais. Pule com justificativa.
25
+ - Usar quando: pré-requisito ausente e não corrigível aqui, fora do escopo, contradiz uma decisão anterior
26
+ - Saída: `PRUNE: [justificativa em uma frase]`
27
+
28
+ **ESCALATE** — Orçamento de reparo esgotado, ou esta é uma decisão arquitetural (Regra 4).
29
+ - Usar quando: RETRY falhou mais de uma vez com abordagens diferentes, ou a correção requer mudança estrutural
30
+ - Saída: `ESCALATE: [o que foi tentado] | [qual decisão é necessária]`
31
+ </repair_directive>
32
+
33
+ <process>
34
+
35
+ <step name="diagnose">
36
+ Leia o erro e os critérios de conclusão com atenção. Pergunte:
37
+ 1. É um problema transitório/ambiental? → RETRY
38
+ 2. A tarefa é verificavelmente muito ampla? → DECOMPOSE
39
+ 3. Um pré-requisito está genuinamente ausente e não pode ser corrigido no escopo? → PRUNE
40
+ 4. RETRY já foi tentado para esta tarefa? Verifique REPAIR_BUDGET. Se 0 → ESCALATE
41
+ </step>
42
+
43
+ <step name="execute_retry">
44
+ Se RETRY:
45
+ 1. Aplique o ajuste específico declarado na diretiva
46
+ 2. Execute novamente a implementação da tarefa
47
+ 3. Execute novamente a verificação
48
+ 4. Se passar → continue normalmente, registre `[Node Repair - RETRY] Tarefa [X]: [ajuste feito]`
49
+ 5. Se falhar novamente → decremente REPAIR_BUDGET, invoque node-repair novamente com contexto atualizado
50
+ </step>
51
+
52
+ <step name="execute_decompose">
53
+ Se DECOMPOSE:
54
+ 1. Substitua a tarefa com falha pelas sub-tarefas inline (não modifique PLAN.md em disco)
55
+ 2. Execute as sub-tarefas sequencialmente, cada uma com sua própria verificação
56
+ 3. Se todas passarem → trate a tarefa original como bem-sucedida, registre `[Node Repair - DECOMPOSE] Tarefa [X] → [N] sub-tarefas`
57
+ 4. Se uma sub-tarefa falhar → invoque node-repair novamente para essa sub-tarefa (REPAIR_BUDGET aplica-se por sub-tarefa)
58
+ </step>
59
+
60
+ <step name="execute_prune">
61
+ Se PRUNE:
62
+ 1. Marque a tarefa como pulada com justificativa
63
+ 2. Registre no SUMMARY "Problemas Encontrados": `[Node Repair - PRUNE] Tarefa [X]: [justificativa]`
64
+ 3. Continue para a próxima tarefa
65
+ </step>
66
+
67
+ <step name="execute_escalate">
68
+ Se ESCALATE:
69
+ 1. Suba para o usuário via verification_failure_gate com histórico completo de reparo
70
+ 2. Apresente: o que foi tentado (cada tentativa RETRY/DECOMPOSE), qual é o bloqueador, opções disponíveis
71
+ 3. Aguarde a direção do usuário antes de continuar
72
+ </step>
73
+
74
+ </process>
75
+
76
+ <logging>
77
+ Todas as ações de reparo devem aparecer no SUMMARY.md em "## Desvios do Plano":
78
+
79
+ | Tipo | Formato |
80
+ |------|--------|
81
+ | RETRY com sucesso | `[Node Repair - RETRY] Tarefa X: [ajuste] — resolvido` |
82
+ | RETRY falha → ESCALATE | `[Node Repair - RETRY] Tarefa X: [N] tentativas esgotadas — escalado ao usuário` |
83
+ | DECOMPOSE | `[Node Repair - DECOMPOSE] Tarefa X dividida em [N] sub-tarefas — todas passaram` |
84
+ | PRUNE | `[Node Repair - PRUNE] Tarefa X pulada: [justificativa]` |
85
+ </logging>
86
+
87
+ <constraints>
88
+ - REPAIR_BUDGET padrão é 2 por tarefa. Configurável via config.json `workflow.node_repair_budget`.
89
+ - Nunca modifique PLAN.md em disco — sub-tarefas decompostas existem apenas em memória.
90
+ - Sub-tarefas DECOMPOSE devem ser mais específicas que a original, não apenas reescritas sinônimas.
91
+ - Se config.json `workflow.node_repair` for `false`, pule diretamente para verification_failure_gate (o usuário mantém o comportamento original).
92
+ </constraints>
@@ -1,156 +1,156 @@
1
- <purpose>
2
- Captura de ideias sem fricção. Uma chamada Write, uma linha de confirmação. Sem perguntas, sem prompts.
3
- Executa inline — sem Task, sem AskUserQuestion, sem Bash.
4
- </purpose>
5
-
6
- <required_reading>
7
- Ler todos os arquivos referenciados pelo execution_context do prompt invocador antes de começar.
8
- </required_reading>
9
-
10
- <process>
11
-
12
- <step name="storage_format">
13
- **Formato de armazenamento de notas.**
14
-
15
- Notas são armazenadas como arquivos markdown individuais:
16
-
17
- - **Escopo do projeto**: `.planning/notes/{AAAA-MM-DD}-{slug}.md` — usado quando `.planning/` existe no cwd
18
- - **Escopo global**: `./.claude/notes/{AAAA-MM-DD}-{slug}.md` — fallback quando não há `.planning/`, ou quando a flag `--global` está presente
19
-
20
- Cada arquivo de nota:
21
-
22
- ```markdown
23
- ---
24
- date: "AAAA-MM-DD HH:mm"
25
- promoted: false
26
- ---
27
-
28
- {texto da nota verbatim}
29
- ```
30
-
31
- **Flag `--global`**: Remover `--global` de qualquer lugar em `$ARGUMENTS` antes de analisar. Quando presente, forçar escopo global independentemente de `.planning/` existir.
32
-
33
- **Importante**: NÃO criar `.planning/` se não existir. Usar escopo global silenciosamente como fallback.
34
- </step>
35
-
36
- <step name="parse_subcommand">
37
- **Analisar subcomando de $ARGUMENTS (após remover --global).**
38
-
39
- | Condição | Subcomando |
40
- |----------|------------|
41
- | Argumentos são exatamente `list` (sem distinção maiúscula/minúscula) | **list** |
42
- | Argumentos são exatamente `promote <N>` onde N é um número | **promote** |
43
- | Argumentos estão vazios (sem texto algum) | **list** |
44
- | Qualquer outra coisa | **append** (o texto É a nota) |
45
-
46
- **Crítico**: `list` é somente um subcomando quando é o ARGUMENTO INTEIRO. `/nota lista de compras` salva uma nota com o texto "lista de compras". O mesmo para `promote` — somente um subcomando quando seguido por exatamente um número.
47
- </step>
48
-
49
- <step name="append">
50
- **Subcomando: append — criar um arquivo de nota com timestamp.**
51
-
52
- 1. Determinar escopo (projeto ou global) conforme formato de armazenamento acima
53
- 2. Garantir que o diretório de notas existe (`.planning/notes/` ou `./.claude/notes/`)
54
- 3. Gerar slug: primeiras ~4 palavras significativas do texto da nota, minúsculo, separado por hífen (remover artigos/preposições do início)
55
- 4. Gerar nome de arquivo: `{AAAA-MM-DD}-{slug}.md`
56
- - Se um arquivo com esse nome já existir, adicionar `-2`, `-3`, etc.
57
- 5. Escrever o arquivo com frontmatter e texto da nota (ver formato de armazenamento)
58
- 6. Confirmar com exatamente uma linha: `Anotado ({escopo}): {texto da nota}`
59
- - Onde `{escopo}` é "projeto" ou "global"
60
-
61
- **Restrições:**
62
- - **Nunca modificar o texto da nota** — capturar verbatim, incluindo erros de digitação
63
- - **Nunca fazer perguntas** — apenas escrever e confirmar
64
- - **Formato de timestamp**: Usar horário local, `AAAA-MM-DD HH:mm` (24 horas, sem segundos)
65
- </step>
66
-
67
- <step name="list">
68
- **Subcomando: list — mostrar notas de ambos os escopos.**
69
-
70
- 1. Glob `.planning/notes/*.md` (se diretório existir) — notas do projeto
71
- 2. Glob `./.claude/notes/*.md` (se diretório existir) — notas globais
72
- 3. Para cada arquivo, ler frontmatter para obter `date` e status `promoted`
73
- 4. Excluir arquivos onde `promoted: true` das contagens ativas (mas ainda mostrar, dimmed)
74
- 5. Ordenar por data, numerar todas as entradas ativas sequencialmente começando em 1
75
- 6. Se total de entradas ativas > 20, mostrar apenas as últimas 10 com nota sobre quantas foram omitidas
76
-
77
- **Formato de exibição:**
78
-
79
- ```
80
- Notas:
81
-
82
- Projeto (.planning/notes/):
83
- 1. [2026-02-08 14:32] refatorar o sistema de hook para suportar validadores assíncronos
84
- 2. [promovido] [2026-02-08 14:40] adicionar rate limiting nos endpoints da API
85
- 3. [2026-02-08 15:10] considerar adicionar flag --dry-run ao build
86
-
87
- Global (./.claude/notes/):
88
- 4. [2026-02-08 10:00] ideia entre projetos sobre config compartilhada
89
-
90
- {contagem} nota(s) ativa(s). Use `/nota promote <N>` para converter em uma tarefa.
91
- ```
92
-
93
- Se um escopo não tiver diretório ou entradas, mostrar: `(sem notas)`
94
- </step>
95
-
96
- <step name="promote">
97
- **Subcomando: promote — converter uma nota em uma tarefa.**
98
-
99
- 1. Executar a lógica de **list** para construir o índice numerado (ambos os escopos)
100
- 2. Encontrar a entrada N da lista numerada
101
- 3. Se N for inválido ou referir a uma nota já promovida, informar o usuário e parar
102
- 4. **Requer diretório `.planning/`** — se não existir, avisar: "Tarefas requerem um projeto framework. Execute `/novo-projeto` para inicializar um."
103
- 5. Garantir que o diretório `.planning/todos/pending/` existe
104
- 6. Gerar ID da tarefa: `{NNN}-{slug}` onde NNN é o próximo número sequencial (escanear tanto `.planning/todos/pending/` quanto `.planning/todos/done/` pelo maior número existente, incrementar em 1, preencher com zeros à esquerda até 3 dígitos) e slug são as primeiras ~4 palavras significativas do texto da nota
105
- 7. Extrair o texto da nota do arquivo fonte (corpo após frontmatter)
106
- 8. Criar `.planning/todos/pending/{id}.md`:
107
-
108
- ```yaml
109
- ---
110
- title: "{texto da nota}"
111
- status: pending
112
- priority: P2
113
- source: "promoted from /nota"
114
- created: {AAAA-MM-DD}
115
- theme: general
116
- ---
117
-
118
- ## Objetivo
119
-
120
- {texto da nota}
121
-
122
- ## Contexto
123
-
124
- Promovido de nota rápida capturada em {data original}.
125
-
126
- ## Critérios de Aceitação
127
-
128
- - [ ] {critério principal derivado do texto da nota}
129
- ```
130
-
131
- 9. Marcar o arquivo de nota fonte como promovido: atualizar seu frontmatter para `promoted: true`
132
- 10. Confirmar: `Nota {N} promovida para tarefa {id}: {texto da nota}`
133
- </step>
134
-
135
- </process>
136
-
137
- <edge_cases>
138
- 1. **"list" como texto de nota**: `/nota lista de coisas` salva nota "lista de coisas" (subcomando apenas quando `list` é o argumento inteiro)
139
- 2. **Sem `.planning/`**: Fallback para `./.claude/notes/` global — funciona em qualquer diretório
140
- 3. **Promote sem projeto**: Avisa que tarefas requerem `.planning/`, sugere `/novo-projeto`
141
- 4. **Arquivos grandes**: `list` mostra as últimas 10 quando há > 20 entradas ativas
142
- 5. **Slugs duplicados**: Adicionar `-2`, `-3` etc. ao nome do arquivo se slug já usado na mesma data
143
- 6. **Posição de `--global`**: Removido de qualquer lugar — `--global minha ideia` e `minha ideia --global` ambos salvam "minha ideia" globalmente
144
- 7. **Promote já promovido**: Informar usuário "Nota {N} já está promovida" e parar
145
- 8. **Texto de nota vazio após remover flags**: Tratar como subcomando `list`
146
- </edge_cases>
147
-
148
- <success_criteria>
149
- - [ ] Append: Arquivo de nota escrito com frontmatter correto e texto verbatim
150
- - [ ] Append: Nenhuma pergunta feita — captura instantânea
151
- - [ ] List: Ambos os escopos mostrados com numeração sequencial
152
- - [ ] List: Notas promovidas mostradas mas dimmed
153
- - [ ] Promote: Tarefa criada com formato correto
154
- - [ ] Promote: Nota fonte marcada como promovida
155
- - [ ] Fallback global: Funciona quando `.planning/` não existe
156
- </success_criteria>
1
+ <purpose>
2
+ Captura de ideias sem fricção. Uma chamada Write, uma linha de confirmação. Sem perguntas, sem prompts.
3
+ Executa inline — sem Task, sem AskUserQuestion, sem Bash.
4
+ </purpose>
5
+
6
+ <required_reading>
7
+ Ler todos os arquivos referenciados pelo execution_context do prompt invocador antes de começar.
8
+ </required_reading>
9
+
10
+ <process>
11
+
12
+ <step name="storage_format">
13
+ **Formato de armazenamento de notas.**
14
+
15
+ Notas são armazenadas como arquivos markdown individuais:
16
+
17
+ - **Escopo do projeto**: `.planning/notes/{AAAA-MM-DD}-{slug}.md` — usado quando `.planning/` existe no cwd
18
+ - **Escopo global**: `./.claude/notes/{AAAA-MM-DD}-{slug}.md` — fallback quando não há `.planning/`, ou quando a flag `--global` está presente
19
+
20
+ Cada arquivo de nota:
21
+
22
+ ```markdown
23
+ ---
24
+ date: "AAAA-MM-DD HH:mm"
25
+ promoted: false
26
+ ---
27
+
28
+ {texto da nota verbatim}
29
+ ```
30
+
31
+ **Flag `--global`**: Remover `--global` de qualquer lugar em `$ARGUMENTS` antes de analisar. Quando presente, forçar escopo global independentemente de `.planning/` existir.
32
+
33
+ **Importante**: NÃO criar `.planning/` se não existir. Usar escopo global silenciosamente como fallback.
34
+ </step>
35
+
36
+ <step name="parse_subcommand">
37
+ **Analisar subcomando de $ARGUMENTS (após remover --global).**
38
+
39
+ | Condição | Subcomando |
40
+ |----------|------------|
41
+ | Argumentos são exatamente `list` (sem distinção maiúscula/minúscula) | **list** |
42
+ | Argumentos são exatamente `promote <N>` onde N é um número | **promote** |
43
+ | Argumentos estão vazios (sem texto algum) | **list** |
44
+ | Qualquer outra coisa | **append** (o texto É a nota) |
45
+
46
+ **Crítico**: `list` é somente um subcomando quando é o ARGUMENTO INTEIRO. `/nota lista de compras` salva uma nota com o texto "lista de compras". O mesmo para `promote` — somente um subcomando quando seguido por exatamente um número.
47
+ </step>
48
+
49
+ <step name="append">
50
+ **Subcomando: append — criar um arquivo de nota com timestamp.**
51
+
52
+ 1. Determinar escopo (projeto ou global) conforme formato de armazenamento acima
53
+ 2. Garantir que o diretório de notas existe (`.planning/notes/` ou `./.claude/notes/`)
54
+ 3. Gerar slug: primeiras ~4 palavras significativas do texto da nota, minúsculo, separado por hífen (remover artigos/preposições do início)
55
+ 4. Gerar nome de arquivo: `{AAAA-MM-DD}-{slug}.md`
56
+ - Se um arquivo com esse nome já existir, adicionar `-2`, `-3`, etc.
57
+ 5. Escrever o arquivo com frontmatter e texto da nota (ver formato de armazenamento)
58
+ 6. Confirmar com exatamente uma linha: `Anotado ({escopo}): {texto da nota}`
59
+ - Onde `{escopo}` é "projeto" ou "global"
60
+
61
+ **Restrições:**
62
+ - **Nunca modificar o texto da nota** — capturar verbatim, incluindo erros de digitação
63
+ - **Nunca fazer perguntas** — apenas escrever e confirmar
64
+ - **Formato de timestamp**: Usar horário local, `AAAA-MM-DD HH:mm` (24 horas, sem segundos)
65
+ </step>
66
+
67
+ <step name="list">
68
+ **Subcomando: list — mostrar notas de ambos os escopos.**
69
+
70
+ 1. Glob `.planning/notes/*.md` (se diretório existir) — notas do projeto
71
+ 2. Glob `./.claude/notes/*.md` (se diretório existir) — notas globais
72
+ 3. Para cada arquivo, ler frontmatter para obter `date` e status `promoted`
73
+ 4. Excluir arquivos onde `promoted: true` das contagens ativas (mas ainda mostrar, dimmed)
74
+ 5. Ordenar por data, numerar todas as entradas ativas sequencialmente começando em 1
75
+ 6. Se total de entradas ativas > 20, mostrar apenas as últimas 10 com nota sobre quantas foram omitidas
76
+
77
+ **Formato de exibição:**
78
+
79
+ ```
80
+ Notas:
81
+
82
+ Projeto (.planning/notes/):
83
+ 1. [2026-02-08 14:32] refatorar o sistema de hook para suportar validadores assíncronos
84
+ 2. [promovido] [2026-02-08 14:40] adicionar rate limiting nos endpoints da API
85
+ 3. [2026-02-08 15:10] considerar adicionar flag --dry-run ao build
86
+
87
+ Global (./.claude/notes/):
88
+ 4. [2026-02-08 10:00] ideia entre projetos sobre config compartilhada
89
+
90
+ {contagem} nota(s) ativa(s). Use `/nota promote <N>` para converter em uma tarefa.
91
+ ```
92
+
93
+ Se um escopo não tiver diretório ou entradas, mostrar: `(sem notas)`
94
+ </step>
95
+
96
+ <step name="promote">
97
+ **Subcomando: promote — converter uma nota em uma tarefa.**
98
+
99
+ 1. Executar a lógica de **list** para construir o índice numerado (ambos os escopos)
100
+ 2. Encontrar a entrada N da lista numerada
101
+ 3. Se N for inválido ou referir a uma nota já promovida, informar o usuário e parar
102
+ 4. **Requer diretório `.planning/`** — se não existir, avisar: "Tarefas requerem um projeto framework. Execute `/novo-projeto` para inicializar um."
103
+ 5. Garantir que o diretório `.planning/todos/pending/` existe
104
+ 6. Gerar ID da tarefa: `{NNN}-{slug}` onde NNN é o próximo número sequencial (escanear tanto `.planning/todos/pending/` quanto `.planning/todos/done/` pelo maior número existente, incrementar em 1, preencher com zeros à esquerda até 3 dígitos) e slug são as primeiras ~4 palavras significativas do texto da nota
105
+ 7. Extrair o texto da nota do arquivo fonte (corpo após frontmatter)
106
+ 8. Criar `.planning/todos/pending/{id}.md`:
107
+
108
+ ```yaml
109
+ ---
110
+ title: "{texto da nota}"
111
+ status: pending
112
+ priority: P2
113
+ source: "promoted from /nota"
114
+ created: {AAAA-MM-DD}
115
+ theme: general
116
+ ---
117
+
118
+ ## Objetivo
119
+
120
+ {texto da nota}
121
+
122
+ ## Contexto
123
+
124
+ Promovido de nota rápida capturada em {data original}.
125
+
126
+ ## Critérios de Aceitação
127
+
128
+ - [ ] {critério principal derivado do texto da nota}
129
+ ```
130
+
131
+ 9. Marcar o arquivo de nota fonte como promovido: atualizar seu frontmatter para `promoted: true`
132
+ 10. Confirmar: `Nota {N} promovida para tarefa {id}: {texto da nota}`
133
+ </step>
134
+
135
+ </process>
136
+
137
+ <edge_cases>
138
+ 1. **"list" como texto de nota**: `/nota lista de coisas` salva nota "lista de coisas" (subcomando apenas quando `list` é o argumento inteiro)
139
+ 2. **Sem `.planning/`**: Fallback para `./.claude/notes/` global — funciona em qualquer diretório
140
+ 3. **Promote sem projeto**: Avisa que tarefas requerem `.planning/`, sugere `/novo-projeto`
141
+ 4. **Arquivos grandes**: `list` mostra as últimas 10 quando há > 20 entradas ativas
142
+ 5. **Slugs duplicados**: Adicionar `-2`, `-3` etc. ao nome do arquivo se slug já usado na mesma data
143
+ 6. **Posição de `--global`**: Removido de qualquer lugar — `--global minha ideia` e `minha ideia --global` ambos salvam "minha ideia" globalmente
144
+ 7. **Promote já promovido**: Informar usuário "Nota {N} já está promovida" e parar
145
+ 8. **Texto de nota vazio após remover flags**: Tratar como subcomando `list`
146
+ </edge_cases>
147
+
148
+ <success_criteria>
149
+ - [ ] Append: Arquivo de nota escrito com frontmatter correto e texto verbatim
150
+ - [ ] Append: Nenhuma pergunta feita — captura instantânea
151
+ - [ ] List: Ambos os escopos mostrados com numeração sequencial
152
+ - [ ] List: Notas promovidas mostradas mas dimmed
153
+ - [ ] Promote: Tarefa criada com formato correto
154
+ - [ ] Promote: Nota fonte marcada como promovida
155
+ - [ ] Fallback global: Funciona quando `.planning/` não existe
156
+ </success_criteria>