@luanpdd/kit-mcp 1.30.1 → 1.31.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.
- package/LICENSE +21 -21
- package/README.md +168 -168
- package/gates/agent-no-recursive-dispatch.md +84 -82
- package/kit/COMANDOS.md +138 -138
- package/kit/README.md +76 -76
- package/kit/agents/advisor-researcher.md +107 -106
- package/kit/agents/ai-mutation-tester.md +1 -0
- package/kit/agents/assumptions-analyzer.md +108 -107
- package/kit/agents/audit-log-implementer.md +314 -313
- package/kit/agents/auditor-consistencia-isolamento.md +414 -413
- package/kit/agents/b2b-saas-architect.md +157 -156
- package/kit/agents/burn-rate-forecaster.md +1 -0
- package/kit/agents/cascading-failures-auditor.md +299 -298
- package/kit/agents/codebase-mapper.md +769 -768
- package/kit/agents/crm-pipeline-implementer.md +257 -256
- package/kit/agents/debugger.md +814 -813
- package/kit/agents/detector-tenant-quente.md +338 -337
- package/kit/agents/evolution-go-integrator.md +201 -200
- package/kit/agents/example-reviewer.md +22 -21
- package/kit/agents/executor.md +565 -564
- package/kit/agents/golden-signals-instrumenter.md +1 -0
- package/kit/agents/incident-investigator.md +1 -0
- package/kit/agents/integration-checker.md +201 -200
- package/kit/agents/invite-flow-implementer.md +190 -189
- package/kit/agents/legacy-characterizer.md +369 -368
- package/kit/agents/lgpd-compliance-auditor.md +296 -295
- package/kit/agents/load-shedding-instrumenter.md +1 -0
- package/kit/agents/multi-tenant-isolation-auditor.md +254 -253
- package/kit/agents/multi-tenant-rls-writer.md +341 -340
- package/kit/agents/nyquist-auditor.md +179 -178
- package/kit/agents/observability-coverage-auditor.md +316 -315
- package/kit/agents/observability-instrumenter.md +1 -0
- package/kit/agents/omm-auditor.md +1 -0
- package/kit/agents/org-onboarding-implementer.md +224 -223
- package/kit/agents/payload-capture-instrumenter.md +274 -273
- package/kit/agents/phase-researcher.md +697 -696
- package/kit/agents/plan-checker.md +273 -272
- package/kit/agents/planner.md +923 -922
- package/kit/agents/postmortem-writer.md +1 -0
- package/kit/agents/project-researcher.md +653 -652
- package/kit/agents/prr-conductor.md +1 -0
- package/kit/agents/refactor-safety-auditor.md +405 -404
- package/kit/agents/release-pipeline-auditor.md +1 -0
- package/kit/agents/research-synthesizer.md +246 -245
- package/kit/agents/roadmapper.md +678 -677
- package/kit/agents/schema-checker.md +1 -0
- package/kit/agents/seam-finder.md +360 -359
- package/kit/agents/shotgun-surgery-detector.md +350 -349
- package/kit/agents/slo-engineer.md +1 -0
- package/kit/agents/storytelling-analyst.md +1 -0
- package/kit/agents/supabase-architect.md +1 -0
- package/kit/agents/supabase-auth-bootstrapper.md +1 -0
- package/kit/agents/supabase-branching-architect.md +563 -562
- package/kit/agents/supabase-cicd-pipeline-implementer.md +778 -777
- package/kit/agents/supabase-column-privileges-writer.md +400 -399
- package/kit/agents/supabase-edge-fn-tester.md +2 -1
- package/kit/agents/supabase-edge-fn-writer.md +2 -1
- package/kit/agents/supabase-migration-writer.md +386 -385
- package/kit/agents/supabase-rbac-implementer.md +393 -392
- package/kit/agents/supabase-realtime-implementer.md +364 -363
- package/kit/agents/supabase-rls-hardener.md +522 -521
- package/kit/agents/supabase-rls-writer.md +324 -323
- package/kit/agents/supabase-roles-implementer.md +356 -355
- package/kit/agents/supabase-storage-implementer.md +1 -0
- package/kit/agents/super-admin-implementer.md +282 -281
- package/kit/agents/toil-auditor.md +1 -0
- package/kit/agents/ui-auditor.md +438 -437
- package/kit/agents/ui-checker.md +303 -302
- package/kit/agents/ui-researcher.md +356 -355
- package/kit/agents/user-profiler.md +176 -175
- package/kit/agents/validador-evolucao-schema.md +336 -335
- package/kit/agents/verifier.md +729 -728
- package/kit/commands/adicionar-backlog.md +75 -75
- package/kit/commands/adicionar-fase.md +42 -42
- package/kit/commands/adicionar-tarefa.md +45 -45
- package/kit/commands/adicionar-testes.md +41 -41
- package/kit/commands/ajuda.md +21 -21
- package/kit/commands/atualizar.md +37 -37
- package/kit/commands/auditar-cascading.md +111 -111
- package/kit/commands/auditar-marco.md +179 -179
- package/kit/commands/auditar-observabilidade-cobertura.md +183 -183
- package/kit/commands/auditar-refactor.md +219 -219
- package/kit/commands/auditar-release.md +109 -109
- package/kit/commands/auditar-uat.md +23 -23
- package/kit/commands/autonomo.md +40 -40
- package/kit/commands/branch-pr.md +24 -24
- package/kit/commands/burn-rate-status.md +408 -408
- package/kit/commands/capturar-payloads.md +193 -193
- package/kit/commands/caracterizar.md +212 -212
- package/kit/commands/concluir-marco.md +247 -247
- package/kit/commands/configuracoes.md +36 -36
- package/kit/commands/dados-distribuidos.md +188 -188
- package/kit/commands/definir-perfil.md +10 -10
- package/kit/commands/depurar.md +190 -190
- package/kit/commands/detectar-duplicacao.md +197 -197
- package/kit/commands/discutir-fase.md +131 -131
- package/kit/commands/encontrar-seams.md +136 -136
- package/kit/commands/entrar-discord.md +17 -17
- package/kit/commands/estatisticas.md +18 -18
- package/kit/commands/example-greeting.md +33 -33
- package/kit/commands/executar-fase.md +58 -58
- package/kit/commands/expresso.md +56 -56
- package/kit/commands/fase-ui.md +34 -34
- package/kit/commands/fazer.md +57 -57
- package/kit/commands/fio.md +125 -125
- package/kit/commands/fluxos-trabalho.md +64 -64
- package/kit/commands/forense.md +176 -176
- package/kit/commands/gerenciador.md +38 -38
- package/kit/commands/inserir-fase.md +31 -31
- package/kit/commands/legacy.md +263 -263
- package/kit/commands/limpeza.md +17 -17
- package/kit/commands/listar-hipoteses-fase.md +45 -45
- package/kit/commands/listar-workspaces.md +18 -18
- package/kit/commands/load-shedding.md +117 -117
- package/kit/commands/mapear-codebase.md +70 -70
- package/kit/commands/multi-tenant.md +163 -163
- package/kit/commands/nota.md +33 -33
- package/kit/commands/novo-marco.md +43 -43
- package/kit/commands/novo-projeto.md +41 -41
- package/kit/commands/novo-workspace.md +43 -43
- package/kit/commands/pausar-trabalho.md +37 -37
- package/kit/commands/perfil-usuario.md +45 -45
- package/kit/commands/pesquisar-fase.md +195 -195
- package/kit/commands/planejar-fase.md +67 -67
- package/kit/commands/planejar-lacunas.md +33 -33
- package/kit/commands/plantar-ideia.md +25 -25
- package/kit/commands/progresso.md +24 -24
- package/kit/commands/proximo.md +30 -30
- package/kit/commands/publicar.md +490 -490
- package/kit/commands/rapido.md +35 -35
- package/kit/commands/reaplicar-patches.md +124 -124
- package/kit/commands/refactor-seguro.md +321 -321
- package/kit/commands/relatorio-sessao.md +19 -19
- package/kit/commands/remover-fase.md +31 -31
- package/kit/commands/remover-workspace.md +26 -26
- package/kit/commands/resumo-marco.md +50 -50
- package/kit/commands/retomar-trabalho.md +40 -40
- package/kit/commands/revisar-backlog.md +60 -60
- package/kit/commands/revisar-ui.md +32 -32
- package/kit/commands/revisar.md +37 -37
- package/kit/commands/saude.md +21 -21
- package/kit/commands/setup-notion.md +93 -93
- package/kit/commands/storytelling.md +179 -179
- package/kit/commands/sync-main.md +68 -68
- package/kit/commands/validar-fase.md +35 -35
- package/kit/commands/verificar-tarefas.md +44 -44
- package/kit/commands/verificar-trabalho.md +64 -64
- package/kit/file-manifest.json +82 -81
- package/kit/framework/bin/lib/commands.cjs +959 -959
- package/kit/framework/bin/lib/config.cjs +442 -442
- package/kit/framework/bin/lib/core.cjs +1230 -1230
- package/kit/framework/bin/lib/frontmatter.cjs +336 -336
- package/kit/framework/bin/lib/init.cjs +1442 -1442
- package/kit/framework/bin/lib/milestone.cjs +252 -252
- package/kit/framework/bin/lib/model-profiles.cjs +68 -68
- package/kit/framework/bin/lib/phase.cjs +888 -888
- package/kit/framework/bin/lib/profile-output.cjs +952 -952
- package/kit/framework/bin/lib/profile-pipeline.cjs +539 -539
- package/kit/framework/bin/lib/roadmap.cjs +329 -329
- package/kit/framework/bin/lib/security.cjs +382 -382
- package/kit/framework/bin/lib/state.cjs +1031 -1031
- package/kit/framework/bin/lib/template.cjs +222 -222
- package/kit/framework/bin/lib/uat.cjs +282 -282
- package/kit/framework/bin/lib/verify.cjs +888 -888
- package/kit/framework/bin/lib/workstream.cjs +491 -491
- package/kit/framework/bin/tools.cjs +918 -918
- package/kit/framework/commands/workstreams.md +63 -63
- package/kit/framework/references/checkpoints.md +778 -778
- package/kit/framework/references/continuation-format.md +249 -249
- package/kit/framework/references/decimal-phase-calculation.md +64 -64
- package/kit/framework/references/git-integration.md +295 -295
- package/kit/framework/references/git-planning-commit.md +38 -38
- package/kit/framework/references/model-profile-resolution.md +36 -36
- package/kit/framework/references/model-profiles.md +139 -139
- package/kit/framework/references/phase-argument-parsing.md +61 -61
- package/kit/framework/references/planning-config.md +202 -202
- package/kit/framework/references/questioning.md +162 -162
- package/kit/framework/references/tdd.md +263 -263
- package/kit/framework/references/ui-brand.md +160 -160
- package/kit/framework/references/user-profiling.md +657 -657
- package/kit/framework/references/verification-patterns.md +612 -612
- package/kit/framework/references/workstream-flag.md +58 -58
- package/kit/framework/templates/DEBUG.md +164 -164
- package/kit/framework/templates/UAT.md +265 -265
- package/kit/framework/templates/UI-SPEC.md +100 -100
- package/kit/framework/templates/VALIDATION.md +76 -76
- package/kit/framework/templates/claude-md.md +122 -122
- package/kit/framework/templates/codebase/architecture.md +185 -185
- package/kit/framework/templates/codebase/concerns.md +205 -205
- package/kit/framework/templates/codebase/conventions.md +204 -204
- package/kit/framework/templates/codebase/integrations.md +192 -192
- package/kit/framework/templates/codebase/stack.md +158 -158
- package/kit/framework/templates/codebase/structure.md +199 -199
- package/kit/framework/templates/codebase/testing.md +301 -301
- package/kit/framework/templates/config.json +44 -44
- package/kit/framework/templates/context.md +352 -352
- package/kit/framework/templates/continue-here.md +78 -78
- package/kit/framework/templates/copilot-instructions.md +7 -7
- package/kit/framework/templates/debug-subagent-prompt.md +91 -91
- package/kit/framework/templates/dev-preferences.md +20 -20
- package/kit/framework/templates/discovery.md +146 -146
- package/kit/framework/templates/discussion-log.md +63 -63
- package/kit/framework/templates/milestone-archive.md +123 -123
- package/kit/framework/templates/milestone.md +115 -115
- package/kit/framework/templates/phase-prompt.md +610 -610
- package/kit/framework/templates/planner-subagent-prompt.md +117 -117
- package/kit/framework/templates/project.md +186 -186
- package/kit/framework/templates/requirements.md +231 -231
- package/kit/framework/templates/research-project/ARCHITECTURE.md +204 -204
- package/kit/framework/templates/research-project/FEATURES.md +147 -147
- package/kit/framework/templates/research-project/PITFALLS.md +200 -200
- package/kit/framework/templates/research-project/STACK.md +120 -120
- package/kit/framework/templates/research-project/SUMMARY.md +170 -170
- package/kit/framework/templates/research.md +419 -419
- package/kit/framework/templates/retrospective.md +54 -54
- package/kit/framework/templates/roadmap.md +202 -202
- package/kit/framework/templates/state.md +176 -176
- package/kit/framework/templates/summary-complex.md +59 -59
- package/kit/framework/templates/summary-minimal.md +41 -41
- package/kit/framework/templates/summary-standard.md +48 -48
- package/kit/framework/templates/summary.md +209 -209
- package/kit/framework/templates/user-profile.md +146 -146
- package/kit/framework/templates/user-setup.md +256 -256
- package/kit/framework/templates/verification-report.md +258 -258
- package/kit/framework/workflows/add-phase.md +112 -112
- package/kit/framework/workflows/add-tests.md +351 -351
- package/kit/framework/workflows/add-todo.md +158 -158
- package/kit/framework/workflows/audit-milestone.md +340 -340
- package/kit/framework/workflows/audit-uat.md +109 -109
- package/kit/framework/workflows/autonomous.md +891 -891
- package/kit/framework/workflows/check-todos.md +177 -177
- package/kit/framework/workflows/cleanup.md +152 -152
- package/kit/framework/workflows/complete-milestone.md +696 -696
- package/kit/framework/workflows/diagnose-issues.md +231 -231
- package/kit/framework/workflows/discovery-phase.md +289 -289
- package/kit/framework/workflows/discuss-phase-assumptions.md +653 -653
- package/kit/framework/workflows/discuss-phase.md +784 -784
- package/kit/framework/workflows/do.md +104 -104
- package/kit/framework/workflows/execute-phase.md +838 -838
- package/kit/framework/workflows/execute-plan.md +510 -510
- package/kit/framework/workflows/fast.md +102 -102
- package/kit/framework/workflows/forensics.md +265 -265
- package/kit/framework/workflows/health.md +181 -181
- package/kit/framework/workflows/help.md +619 -619
- package/kit/framework/workflows/insert-phase.md +130 -130
- package/kit/framework/workflows/list-phase-assumptions.md +178 -178
- package/kit/framework/workflows/list-workspaces.md +56 -56
- package/kit/framework/workflows/manager.md +362 -362
- package/kit/framework/workflows/map-codebase.md +377 -377
- package/kit/framework/workflows/milestone-summary.md +223 -223
- package/kit/framework/workflows/new-milestone.md +486 -486
- package/kit/framework/workflows/new-project.md +1159 -1159
- package/kit/framework/workflows/new-workspace.md +237 -237
- package/kit/framework/workflows/next.md +97 -97
- package/kit/framework/workflows/node-repair.md +92 -92
- package/kit/framework/workflows/note.md +156 -156
- package/kit/framework/workflows/pause-work.md +176 -176
- package/kit/framework/workflows/plan-milestone-gaps.md +273 -273
- package/kit/framework/workflows/plan-phase.md +765 -765
- package/kit/framework/workflows/plant-seed.md +169 -169
- package/kit/framework/workflows/pr-branch.md +129 -129
- package/kit/framework/workflows/profile-user.md +450 -450
- package/kit/framework/workflows/progress.md +507 -507
- package/kit/framework/workflows/quick.md +757 -757
- package/kit/framework/workflows/remove-phase.md +155 -155
- package/kit/framework/workflows/remove-workspace.md +90 -90
- package/kit/framework/workflows/research-phase.md +82 -82
- package/kit/framework/workflows/resume-project.md +326 -326
- package/kit/framework/workflows/review.md +228 -228
- package/kit/framework/workflows/session-report.md +146 -146
- package/kit/framework/workflows/settings.md +283 -283
- package/kit/framework/workflows/ship.md +228 -228
- package/kit/framework/workflows/stats.md +60 -60
- package/kit/framework/workflows/transition.md +671 -671
- package/kit/framework/workflows/ui-phase.md +302 -302
- package/kit/framework/workflows/ui-review.md +165 -165
- package/kit/framework/workflows/update.md +323 -323
- package/kit/framework/workflows/validate-phase.md +174 -174
- package/kit/framework/workflows/verify-phase.md +252 -252
- package/kit/framework/workflows/verify-work.md +637 -637
- package/kit/hooks/check-update.js +118 -118
- package/kit/hooks/context-monitor.js +163 -163
- package/kit/hooks/kit-attribution-reminder.cjs +30 -36
- package/kit/hooks/kit-router.cjs +137 -0
- package/kit/hooks/prompt-guard.js +103 -103
- package/kit/hooks/statusline.js +125 -125
- package/kit/hooks/workflow-guard.js +101 -101
- package/kit/settings.json +45 -45
- package/kit/skills/ai-prompt-characterization/SKILL.md +335 -335
- package/kit/skills/armadilhas-sistemas-distribuidos/SKILL.md +447 -447
- package/kit/skills/audit-log-multi-tenant/SKILL.md +340 -340
- package/kit/skills/b2b-saas-architecture/SKILL.md +300 -300
- package/kit/skills/consistencia-leitura-replica/SKILL.md +385 -385
- package/kit/skills/crm-lead-pipeline-patterns/SKILL.md +343 -343
- package/kit/skills/escolha-modelo-consistencia/SKILL.md +494 -494
- package/kit/skills/evolucao-schema-compativel/SKILL.md +448 -448
- package/kit/skills/evolution-go-whatsapp-integration/SKILL.md +322 -322
- package/kit/skills/example-skill/SKILL.md +42 -42
- package/kit/skills/legacy-api-only-applications/SKILL.md +358 -358
- package/kit/skills/legacy-characterization-tests/SKILL.md +330 -330
- package/kit/skills/legacy-effect-analysis/SKILL.md +331 -331
- package/kit/skills/legacy-extract-class/SKILL.md +203 -203
- package/kit/skills/legacy-programming-by-difference/SKILL.md +252 -252
- package/kit/skills/legacy-seams-and-test-harness/SKILL.md +460 -460
- package/kit/skills/legacy-shotgun-surgery/SKILL.md +286 -286
- package/kit/skills/legacy-sprout-wrap-techniques/SKILL.md +434 -434
- package/kit/skills/legacy-storytelling-naked-crc/SKILL.md +270 -270
- package/kit/skills/lgpd-multi-tenant-compliance/SKILL.md +340 -340
- package/kit/skills/member-invite-flow/SKILL.md +305 -305
- package/kit/skills/member-management-react-shadcn/SKILL.md +328 -328
- package/kit/skills/multi-tenant-performance-scaling/SKILL.md +316 -316
- package/kit/skills/multi-tenant-rls-hierarchy/SKILL.md +342 -342
- package/kit/skills/org-onboarding-flow/SKILL.md +257 -257
- package/kit/skills/org-switcher-react-pattern/SKILL.md +349 -349
- package/kit/skills/permission-gate-react-pattern/SKILL.md +271 -271
- package/kit/skills/postgres-isolamento-concorrencia/SKILL.md +552 -552
- package/kit/skills/pre-refactor-characterization/SKILL.md +421 -421
- package/kit/skills/rbac-permissions-matrix-supabase/SKILL.md +338 -338
- package/kit/skills/streams-eventos-cdc/SKILL.md +711 -711
- package/kit/skills/supabase-branching-workflow/SKILL.md +544 -544
- package/kit/skills/supabase-ci-cd-github-actions/SKILL.md +880 -880
- package/kit/skills/supabase-column-level-security/SKILL.md +426 -426
- package/kit/skills/supabase-config-toml-remotes/SKILL.md +807 -807
- package/kit/skills/supabase-custom-claims-rbac/SKILL.md +472 -472
- package/kit/skills/supabase-edge-functions/SKILL.md +1 -1
- package/kit/skills/supabase-edge-functions-auth/SKILL.md +1 -1
- package/kit/skills/supabase-edge-functions-limits/SKILL.md +1 -1
- package/kit/skills/supabase-edge-functions-mcp-server/SKILL.md +1 -1
- package/kit/skills/supabase-edge-functions-testing/SKILL.md +1 -1
- package/kit/skills/supabase-edge-runtime-builtins/SKILL.md +1 -1
- package/kit/skills/supabase-migration-repair/SKILL.md +823 -823
- package/kit/skills/supabase-migrations/SKILL.md +297 -297
- package/kit/skills/supabase-pgtap-testing/SKILL.md +1053 -1053
- package/kit/skills/supabase-postgres-roles/SKILL.md +392 -392
- package/kit/skills/supabase-realtime/SKILL.md +460 -460
- package/kit/skills/supabase-rls-defense-in-depth/SKILL.md +418 -418
- package/kit/skills/supabase-rls-policies/SKILL.md +635 -635
- package/kit/skills/super-admin-platform-pattern/SKILL.md +326 -326
- package/kit/skills/tenant-quente-mitigacao/SKILL.md +605 -605
- package/kit/skills/whatsapp-conversation-state-machine/SKILL.md +287 -287
- package/package.json +1 -1
- package/src/core/kit.js +216 -216
- package/src/core/reflect.js +247 -247
- package/src/core/reverse-sync.js +372 -372
- package/src/core/sync.js +437 -418
- package/src/core/watch.js +121 -121
- package/src/mcp-server/index.js +794 -715
|
@@ -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>
|