@luanpdd/kit-mcp 1.29.0 → 1.30.1

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 (331) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +168 -168
  3. package/gates/agent-no-recursive-dispatch.md +82 -82
  4. package/kit/COMANDOS.md +138 -138
  5. package/kit/README.md +76 -76
  6. package/kit/agents/advisor-researcher.md +106 -106
  7. package/kit/agents/assumptions-analyzer.md +107 -107
  8. package/kit/agents/audit-log-implementer.md +313 -313
  9. package/kit/agents/auditor-consistencia-isolamento.md +413 -413
  10. package/kit/agents/b2b-saas-architect.md +156 -156
  11. package/kit/agents/cascading-failures-auditor.md +298 -298
  12. package/kit/agents/codebase-mapper.md +768 -768
  13. package/kit/agents/crm-pipeline-implementer.md +256 -256
  14. package/kit/agents/debugger.md +813 -813
  15. package/kit/agents/detector-tenant-quente.md +337 -337
  16. package/kit/agents/evolution-go-integrator.md +200 -200
  17. package/kit/agents/example-reviewer.md +21 -21
  18. package/kit/agents/executor.md +564 -564
  19. package/kit/agents/integration-checker.md +200 -200
  20. package/kit/agents/invite-flow-implementer.md +189 -189
  21. package/kit/agents/legacy-characterizer.md +368 -368
  22. package/kit/agents/lgpd-compliance-auditor.md +295 -295
  23. package/kit/agents/multi-tenant-isolation-auditor.md +253 -253
  24. package/kit/agents/multi-tenant-rls-writer.md +340 -340
  25. package/kit/agents/nyquist-auditor.md +178 -178
  26. package/kit/agents/observability-coverage-auditor.md +315 -315
  27. package/kit/agents/org-onboarding-implementer.md +223 -223
  28. package/kit/agents/payload-capture-instrumenter.md +273 -273
  29. package/kit/agents/phase-researcher.md +696 -696
  30. package/kit/agents/plan-checker.md +272 -272
  31. package/kit/agents/planner.md +922 -922
  32. package/kit/agents/project-researcher.md +652 -652
  33. package/kit/agents/refactor-safety-auditor.md +404 -404
  34. package/kit/agents/research-synthesizer.md +245 -245
  35. package/kit/agents/roadmapper.md +677 -677
  36. package/kit/agents/seam-finder.md +359 -359
  37. package/kit/agents/shotgun-surgery-detector.md +349 -349
  38. package/kit/agents/supabase-branching-architect.md +562 -562
  39. package/kit/agents/supabase-cicd-pipeline-implementer.md +777 -777
  40. package/kit/agents/supabase-column-privileges-writer.md +399 -399
  41. package/kit/agents/supabase-edge-fn-tester.md +287 -0
  42. package/kit/agents/supabase-edge-fn-writer.md +239 -210
  43. package/kit/agents/supabase-migration-writer.md +385 -385
  44. package/kit/agents/supabase-rbac-implementer.md +392 -392
  45. package/kit/agents/supabase-realtime-implementer.md +363 -267
  46. package/kit/agents/supabase-rls-hardener.md +521 -521
  47. package/kit/agents/supabase-rls-writer.md +323 -323
  48. package/kit/agents/supabase-roles-implementer.md +355 -355
  49. package/kit/agents/super-admin-implementer.md +281 -281
  50. package/kit/agents/ui-auditor.md +437 -437
  51. package/kit/agents/ui-checker.md +302 -302
  52. package/kit/agents/ui-researcher.md +355 -355
  53. package/kit/agents/user-profiler.md +175 -175
  54. package/kit/agents/validador-evolucao-schema.md +335 -335
  55. package/kit/agents/verifier.md +728 -728
  56. package/kit/commands/adicionar-backlog.md +75 -75
  57. package/kit/commands/adicionar-fase.md +42 -42
  58. package/kit/commands/adicionar-tarefa.md +45 -45
  59. package/kit/commands/adicionar-testes.md +41 -41
  60. package/kit/commands/ajuda.md +21 -21
  61. package/kit/commands/atualizar.md +37 -37
  62. package/kit/commands/auditar-cascading.md +111 -111
  63. package/kit/commands/auditar-marco.md +179 -179
  64. package/kit/commands/auditar-observabilidade-cobertura.md +183 -183
  65. package/kit/commands/auditar-refactor.md +219 -219
  66. package/kit/commands/auditar-release.md +109 -109
  67. package/kit/commands/auditar-uat.md +23 -23
  68. package/kit/commands/autonomo.md +40 -40
  69. package/kit/commands/branch-pr.md +24 -24
  70. package/kit/commands/burn-rate-status.md +408 -408
  71. package/kit/commands/capturar-payloads.md +193 -193
  72. package/kit/commands/caracterizar.md +212 -212
  73. package/kit/commands/concluir-marco.md +247 -247
  74. package/kit/commands/configuracoes.md +36 -36
  75. package/kit/commands/dados-distribuidos.md +188 -188
  76. package/kit/commands/definir-perfil.md +10 -10
  77. package/kit/commands/depurar.md +190 -190
  78. package/kit/commands/detectar-duplicacao.md +197 -197
  79. package/kit/commands/discutir-fase.md +131 -131
  80. package/kit/commands/encontrar-seams.md +136 -136
  81. package/kit/commands/entrar-discord.md +17 -17
  82. package/kit/commands/estatisticas.md +18 -18
  83. package/kit/commands/example-greeting.md +33 -33
  84. package/kit/commands/executar-fase.md +58 -58
  85. package/kit/commands/expresso.md +56 -56
  86. package/kit/commands/fase-ui.md +34 -34
  87. package/kit/commands/fazer.md +57 -57
  88. package/kit/commands/fio.md +125 -125
  89. package/kit/commands/fluxos-trabalho.md +64 -64
  90. package/kit/commands/forense.md +176 -176
  91. package/kit/commands/gerenciador.md +38 -38
  92. package/kit/commands/inserir-fase.md +31 -31
  93. package/kit/commands/legacy.md +263 -263
  94. package/kit/commands/limpeza.md +17 -17
  95. package/kit/commands/listar-hipoteses-fase.md +45 -45
  96. package/kit/commands/listar-workspaces.md +18 -18
  97. package/kit/commands/load-shedding.md +117 -117
  98. package/kit/commands/mapear-codebase.md +70 -70
  99. package/kit/commands/multi-tenant.md +163 -163
  100. package/kit/commands/nota.md +33 -33
  101. package/kit/commands/novo-marco.md +43 -43
  102. package/kit/commands/novo-projeto.md +41 -41
  103. package/kit/commands/novo-workspace.md +43 -43
  104. package/kit/commands/pausar-trabalho.md +37 -37
  105. package/kit/commands/perfil-usuario.md +45 -45
  106. package/kit/commands/pesquisar-fase.md +195 -195
  107. package/kit/commands/planejar-fase.md +67 -67
  108. package/kit/commands/planejar-lacunas.md +33 -33
  109. package/kit/commands/plantar-ideia.md +25 -25
  110. package/kit/commands/progresso.md +24 -24
  111. package/kit/commands/proximo.md +30 -30
  112. package/kit/commands/publicar.md +490 -490
  113. package/kit/commands/rapido.md +35 -35
  114. package/kit/commands/reaplicar-patches.md +124 -124
  115. package/kit/commands/refactor-seguro.md +321 -321
  116. package/kit/commands/relatorio-sessao.md +19 -19
  117. package/kit/commands/remover-fase.md +31 -31
  118. package/kit/commands/remover-workspace.md +26 -26
  119. package/kit/commands/resumo-marco.md +50 -50
  120. package/kit/commands/retomar-trabalho.md +40 -40
  121. package/kit/commands/revisar-backlog.md +60 -60
  122. package/kit/commands/revisar-ui.md +32 -32
  123. package/kit/commands/revisar.md +37 -37
  124. package/kit/commands/saude.md +21 -21
  125. package/kit/commands/setup-notion.md +93 -93
  126. package/kit/commands/storytelling.md +179 -179
  127. package/kit/commands/supabase.md +30 -7
  128. package/kit/commands/sync-main.md +68 -68
  129. package/kit/commands/validar-fase.md +35 -35
  130. package/kit/commands/verificar-tarefas.md +44 -44
  131. package/kit/commands/verificar-trabalho.md +64 -64
  132. package/kit/file-manifest.json +15 -8
  133. package/kit/framework/bin/lib/commands.cjs +959 -959
  134. package/kit/framework/bin/lib/config.cjs +442 -442
  135. package/kit/framework/bin/lib/core.cjs +1230 -1230
  136. package/kit/framework/bin/lib/frontmatter.cjs +336 -336
  137. package/kit/framework/bin/lib/init.cjs +1442 -1442
  138. package/kit/framework/bin/lib/milestone.cjs +252 -252
  139. package/kit/framework/bin/lib/model-profiles.cjs +68 -68
  140. package/kit/framework/bin/lib/phase.cjs +888 -888
  141. package/kit/framework/bin/lib/profile-output.cjs +952 -952
  142. package/kit/framework/bin/lib/profile-pipeline.cjs +539 -539
  143. package/kit/framework/bin/lib/roadmap.cjs +329 -329
  144. package/kit/framework/bin/lib/security.cjs +382 -382
  145. package/kit/framework/bin/lib/state.cjs +1031 -1031
  146. package/kit/framework/bin/lib/template.cjs +222 -222
  147. package/kit/framework/bin/lib/uat.cjs +282 -282
  148. package/kit/framework/bin/lib/verify.cjs +888 -888
  149. package/kit/framework/bin/lib/workstream.cjs +491 -491
  150. package/kit/framework/bin/tools.cjs +918 -918
  151. package/kit/framework/commands/workstreams.md +63 -63
  152. package/kit/framework/references/checkpoints.md +778 -778
  153. package/kit/framework/references/continuation-format.md +249 -249
  154. package/kit/framework/references/decimal-phase-calculation.md +64 -64
  155. package/kit/framework/references/git-integration.md +295 -295
  156. package/kit/framework/references/git-planning-commit.md +38 -38
  157. package/kit/framework/references/model-profile-resolution.md +36 -36
  158. package/kit/framework/references/model-profiles.md +139 -139
  159. package/kit/framework/references/phase-argument-parsing.md +61 -61
  160. package/kit/framework/references/planning-config.md +202 -202
  161. package/kit/framework/references/questioning.md +162 -162
  162. package/kit/framework/references/tdd.md +263 -263
  163. package/kit/framework/references/ui-brand.md +160 -160
  164. package/kit/framework/references/user-profiling.md +657 -657
  165. package/kit/framework/references/verification-patterns.md +612 -612
  166. package/kit/framework/references/workstream-flag.md +58 -58
  167. package/kit/framework/templates/DEBUG.md +164 -164
  168. package/kit/framework/templates/UAT.md +265 -265
  169. package/kit/framework/templates/UI-SPEC.md +100 -100
  170. package/kit/framework/templates/VALIDATION.md +76 -76
  171. package/kit/framework/templates/claude-md.md +122 -122
  172. package/kit/framework/templates/codebase/architecture.md +185 -185
  173. package/kit/framework/templates/codebase/concerns.md +205 -205
  174. package/kit/framework/templates/codebase/conventions.md +204 -204
  175. package/kit/framework/templates/codebase/integrations.md +192 -192
  176. package/kit/framework/templates/codebase/stack.md +158 -158
  177. package/kit/framework/templates/codebase/structure.md +199 -199
  178. package/kit/framework/templates/codebase/testing.md +301 -301
  179. package/kit/framework/templates/config.json +44 -44
  180. package/kit/framework/templates/context.md +352 -352
  181. package/kit/framework/templates/continue-here.md +78 -78
  182. package/kit/framework/templates/copilot-instructions.md +7 -7
  183. package/kit/framework/templates/debug-subagent-prompt.md +91 -91
  184. package/kit/framework/templates/dev-preferences.md +20 -20
  185. package/kit/framework/templates/discovery.md +146 -146
  186. package/kit/framework/templates/discussion-log.md +63 -63
  187. package/kit/framework/templates/milestone-archive.md +123 -123
  188. package/kit/framework/templates/milestone.md +115 -115
  189. package/kit/framework/templates/phase-prompt.md +610 -610
  190. package/kit/framework/templates/planner-subagent-prompt.md +117 -117
  191. package/kit/framework/templates/project.md +186 -186
  192. package/kit/framework/templates/requirements.md +231 -231
  193. package/kit/framework/templates/research-project/ARCHITECTURE.md +204 -204
  194. package/kit/framework/templates/research-project/FEATURES.md +147 -147
  195. package/kit/framework/templates/research-project/PITFALLS.md +200 -200
  196. package/kit/framework/templates/research-project/STACK.md +120 -120
  197. package/kit/framework/templates/research-project/SUMMARY.md +170 -170
  198. package/kit/framework/templates/research.md +419 -419
  199. package/kit/framework/templates/retrospective.md +54 -54
  200. package/kit/framework/templates/roadmap.md +202 -202
  201. package/kit/framework/templates/state.md +176 -176
  202. package/kit/framework/templates/summary-complex.md +59 -59
  203. package/kit/framework/templates/summary-minimal.md +41 -41
  204. package/kit/framework/templates/summary-standard.md +48 -48
  205. package/kit/framework/templates/summary.md +209 -209
  206. package/kit/framework/templates/user-profile.md +146 -146
  207. package/kit/framework/templates/user-setup.md +256 -256
  208. package/kit/framework/templates/verification-report.md +258 -258
  209. package/kit/framework/workflows/add-phase.md +112 -112
  210. package/kit/framework/workflows/add-tests.md +351 -351
  211. package/kit/framework/workflows/add-todo.md +158 -158
  212. package/kit/framework/workflows/audit-milestone.md +340 -340
  213. package/kit/framework/workflows/audit-uat.md +109 -109
  214. package/kit/framework/workflows/autonomous.md +891 -891
  215. package/kit/framework/workflows/check-todos.md +177 -177
  216. package/kit/framework/workflows/cleanup.md +152 -152
  217. package/kit/framework/workflows/complete-milestone.md +696 -696
  218. package/kit/framework/workflows/diagnose-issues.md +231 -231
  219. package/kit/framework/workflows/discovery-phase.md +289 -289
  220. package/kit/framework/workflows/discuss-phase-assumptions.md +653 -653
  221. package/kit/framework/workflows/discuss-phase.md +784 -784
  222. package/kit/framework/workflows/do.md +104 -104
  223. package/kit/framework/workflows/execute-phase.md +838 -838
  224. package/kit/framework/workflows/execute-plan.md +510 -510
  225. package/kit/framework/workflows/fast.md +102 -102
  226. package/kit/framework/workflows/forensics.md +265 -265
  227. package/kit/framework/workflows/health.md +181 -181
  228. package/kit/framework/workflows/help.md +619 -619
  229. package/kit/framework/workflows/insert-phase.md +130 -130
  230. package/kit/framework/workflows/list-phase-assumptions.md +178 -178
  231. package/kit/framework/workflows/list-workspaces.md +56 -56
  232. package/kit/framework/workflows/manager.md +362 -362
  233. package/kit/framework/workflows/map-codebase.md +377 -377
  234. package/kit/framework/workflows/milestone-summary.md +223 -223
  235. package/kit/framework/workflows/new-milestone.md +486 -486
  236. package/kit/framework/workflows/new-project.md +1159 -1159
  237. package/kit/framework/workflows/new-workspace.md +237 -237
  238. package/kit/framework/workflows/next.md +97 -97
  239. package/kit/framework/workflows/node-repair.md +92 -92
  240. package/kit/framework/workflows/note.md +156 -156
  241. package/kit/framework/workflows/pause-work.md +176 -176
  242. package/kit/framework/workflows/plan-milestone-gaps.md +273 -273
  243. package/kit/framework/workflows/plan-phase.md +765 -765
  244. package/kit/framework/workflows/plant-seed.md +169 -169
  245. package/kit/framework/workflows/pr-branch.md +129 -129
  246. package/kit/framework/workflows/profile-user.md +450 -450
  247. package/kit/framework/workflows/progress.md +507 -507
  248. package/kit/framework/workflows/quick.md +757 -757
  249. package/kit/framework/workflows/remove-phase.md +155 -155
  250. package/kit/framework/workflows/remove-workspace.md +90 -90
  251. package/kit/framework/workflows/research-phase.md +82 -82
  252. package/kit/framework/workflows/resume-project.md +326 -326
  253. package/kit/framework/workflows/review.md +228 -228
  254. package/kit/framework/workflows/session-report.md +146 -146
  255. package/kit/framework/workflows/settings.md +283 -283
  256. package/kit/framework/workflows/ship.md +228 -228
  257. package/kit/framework/workflows/stats.md +60 -60
  258. package/kit/framework/workflows/transition.md +671 -671
  259. package/kit/framework/workflows/ui-phase.md +302 -302
  260. package/kit/framework/workflows/ui-review.md +165 -165
  261. package/kit/framework/workflows/update.md +323 -323
  262. package/kit/framework/workflows/validate-phase.md +174 -174
  263. package/kit/framework/workflows/verify-phase.md +252 -252
  264. package/kit/framework/workflows/verify-work.md +637 -637
  265. package/kit/hooks/check-update.js +118 -118
  266. package/kit/hooks/context-monitor.js +163 -163
  267. package/kit/hooks/kit-attribution-reminder.cjs +98 -0
  268. package/kit/hooks/prompt-guard.js +103 -103
  269. package/kit/hooks/statusline.js +125 -125
  270. package/kit/hooks/workflow-guard.js +101 -101
  271. package/kit/settings.json +45 -45
  272. package/kit/skills/_shared-supabase/glossary.md +17 -0
  273. package/kit/skills/ai-prompt-characterization/SKILL.md +335 -335
  274. package/kit/skills/armadilhas-sistemas-distribuidos/SKILL.md +447 -447
  275. package/kit/skills/audit-log-multi-tenant/SKILL.md +340 -340
  276. package/kit/skills/b2b-saas-architecture/SKILL.md +300 -300
  277. package/kit/skills/consistencia-leitura-replica/SKILL.md +385 -385
  278. package/kit/skills/crm-lead-pipeline-patterns/SKILL.md +343 -343
  279. package/kit/skills/escolha-modelo-consistencia/SKILL.md +494 -494
  280. package/kit/skills/evolucao-schema-compativel/SKILL.md +448 -448
  281. package/kit/skills/evolution-go-whatsapp-integration/SKILL.md +322 -322
  282. package/kit/skills/example-skill/SKILL.md +42 -42
  283. package/kit/skills/legacy-api-only-applications/SKILL.md +358 -358
  284. package/kit/skills/legacy-characterization-tests/SKILL.md +330 -330
  285. package/kit/skills/legacy-effect-analysis/SKILL.md +331 -331
  286. package/kit/skills/legacy-extract-class/SKILL.md +203 -203
  287. package/kit/skills/legacy-programming-by-difference/SKILL.md +252 -252
  288. package/kit/skills/legacy-seams-and-test-harness/SKILL.md +460 -460
  289. package/kit/skills/legacy-shotgun-surgery/SKILL.md +286 -286
  290. package/kit/skills/legacy-sprout-wrap-techniques/SKILL.md +434 -434
  291. package/kit/skills/legacy-storytelling-naked-crc/SKILL.md +270 -270
  292. package/kit/skills/lgpd-multi-tenant-compliance/SKILL.md +340 -340
  293. package/kit/skills/member-invite-flow/SKILL.md +305 -305
  294. package/kit/skills/member-management-react-shadcn/SKILL.md +328 -328
  295. package/kit/skills/multi-tenant-performance-scaling/SKILL.md +316 -316
  296. package/kit/skills/multi-tenant-rls-hierarchy/SKILL.md +342 -342
  297. package/kit/skills/org-onboarding-flow/SKILL.md +257 -257
  298. package/kit/skills/org-switcher-react-pattern/SKILL.md +349 -349
  299. package/kit/skills/permission-gate-react-pattern/SKILL.md +271 -271
  300. package/kit/skills/postgres-isolamento-concorrencia/SKILL.md +552 -552
  301. package/kit/skills/pre-refactor-characterization/SKILL.md +421 -421
  302. package/kit/skills/rbac-permissions-matrix-supabase/SKILL.md +338 -338
  303. package/kit/skills/streams-eventos-cdc/SKILL.md +711 -711
  304. package/kit/skills/supabase-branching-workflow/SKILL.md +544 -544
  305. package/kit/skills/supabase-ci-cd-github-actions/SKILL.md +880 -880
  306. package/kit/skills/supabase-column-level-security/SKILL.md +426 -426
  307. package/kit/skills/supabase-config-toml-remotes/SKILL.md +807 -807
  308. package/kit/skills/supabase-custom-claims-rbac/SKILL.md +472 -472
  309. package/kit/skills/supabase-edge-functions/SKILL.md +229 -141
  310. package/kit/skills/supabase-edge-functions-auth/SKILL.md +309 -0
  311. package/kit/skills/supabase-edge-functions-limits/SKILL.md +302 -0
  312. package/kit/skills/supabase-edge-functions-mcp-server/SKILL.md +279 -0
  313. package/kit/skills/supabase-edge-functions-testing/SKILL.md +277 -0
  314. package/kit/skills/supabase-edge-runtime-builtins/SKILL.md +357 -0
  315. package/kit/skills/supabase-migration-repair/SKILL.md +823 -823
  316. package/kit/skills/supabase-migrations/SKILL.md +297 -297
  317. package/kit/skills/supabase-pgtap-testing/SKILL.md +1053 -1053
  318. package/kit/skills/supabase-postgres-roles/SKILL.md +392 -392
  319. package/kit/skills/supabase-realtime/SKILL.md +460 -236
  320. package/kit/skills/supabase-rls-defense-in-depth/SKILL.md +418 -418
  321. package/kit/skills/supabase-rls-policies/SKILL.md +635 -635
  322. package/kit/skills/super-admin-platform-pattern/SKILL.md +326 -326
  323. package/kit/skills/tenant-quente-mitigacao/SKILL.md +605 -605
  324. package/kit/skills/whatsapp-conversation-state-machine/SKILL.md +287 -287
  325. package/package.json +1 -1
  326. package/src/core/kit.js +216 -216
  327. package/src/core/reflect.js +247 -247
  328. package/src/core/reverse-sync.js +372 -372
  329. package/src/core/sync.js +418 -418
  330. package/src/core/watch.js +121 -121
  331. package/src/mcp-server/index.js +715 -693
@@ -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>