@luanpdd/kit-mcp 1.28.0 → 1.30.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 +82 -82
- package/kit/COMANDOS.md +138 -138
- package/kit/README.md +76 -76
- package/kit/agents/advisor-researcher.md +106 -106
- package/kit/agents/assumptions-analyzer.md +107 -107
- package/kit/agents/audit-log-implementer.md +313 -313
- package/kit/agents/auditor-consistencia-isolamento.md +413 -413
- package/kit/agents/b2b-saas-architect.md +156 -156
- package/kit/agents/cascading-failures-auditor.md +298 -298
- package/kit/agents/codebase-mapper.md +768 -768
- package/kit/agents/crm-pipeline-implementer.md +256 -256
- package/kit/agents/debugger.md +813 -813
- package/kit/agents/detector-tenant-quente.md +337 -337
- package/kit/agents/evolution-go-integrator.md +200 -200
- package/kit/agents/example-reviewer.md +21 -21
- package/kit/agents/executor.md +564 -564
- package/kit/agents/integration-checker.md +200 -200
- package/kit/agents/invite-flow-implementer.md +189 -189
- package/kit/agents/legacy-characterizer.md +368 -368
- package/kit/agents/lgpd-compliance-auditor.md +295 -295
- package/kit/agents/multi-tenant-isolation-auditor.md +253 -253
- package/kit/agents/multi-tenant-rls-writer.md +340 -340
- package/kit/agents/nyquist-auditor.md +178 -178
- package/kit/agents/observability-coverage-auditor.md +315 -315
- package/kit/agents/org-onboarding-implementer.md +223 -223
- package/kit/agents/payload-capture-instrumenter.md +273 -273
- package/kit/agents/phase-researcher.md +696 -696
- package/kit/agents/plan-checker.md +272 -272
- package/kit/agents/planner.md +922 -922
- package/kit/agents/project-researcher.md +652 -652
- package/kit/agents/refactor-safety-auditor.md +404 -404
- package/kit/agents/research-synthesizer.md +245 -245
- package/kit/agents/roadmapper.md +677 -677
- package/kit/agents/seam-finder.md +359 -359
- package/kit/agents/shotgun-surgery-detector.md +349 -349
- package/kit/agents/supabase-branching-architect.md +562 -562
- package/kit/agents/supabase-cicd-pipeline-implementer.md +777 -777
- package/kit/agents/supabase-column-privileges-writer.md +399 -399
- package/kit/agents/supabase-edge-fn-tester.md +287 -0
- package/kit/agents/supabase-edge-fn-writer.md +239 -210
- package/kit/agents/supabase-migration-writer.md +385 -385
- package/kit/agents/supabase-rbac-implementer.md +392 -392
- package/kit/agents/supabase-realtime-implementer.md +363 -267
- package/kit/agents/supabase-rls-hardener.md +521 -521
- package/kit/agents/supabase-rls-writer.md +323 -323
- package/kit/agents/supabase-roles-implementer.md +355 -355
- package/kit/agents/super-admin-implementer.md +281 -281
- package/kit/agents/ui-auditor.md +437 -437
- package/kit/agents/ui-checker.md +302 -302
- package/kit/agents/ui-researcher.md +355 -355
- package/kit/agents/user-profiler.md +175 -175
- package/kit/agents/validador-evolucao-schema.md +335 -335
- package/kit/agents/verifier.md +728 -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/supabase.md +30 -7
- 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 +14 -8
- 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/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/_shared-supabase/glossary.md +17 -0
- 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 +229 -141
- package/kit/skills/supabase-edge-functions-auth/SKILL.md +309 -0
- package/kit/skills/supabase-edge-functions-limits/SKILL.md +302 -0
- package/kit/skills/supabase-edge-functions-mcp-server/SKILL.md +279 -0
- package/kit/skills/supabase-edge-functions-testing/SKILL.md +277 -0
- package/kit/skills/supabase-edge-runtime-builtins/SKILL.md +357 -0
- 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 -236
- 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/cli/index.js +33 -0
- 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 +418 -418
- package/src/core/watch.js +121 -121
- package/src/mcp-server/index.js +693 -490
- package/src/mcp-server/roots.js +124 -0
|
@@ -1,169 +1,169 @@
|
|
|
1
|
-
<purpose>
|
|
2
|
-
Captura uma ideia prospectiva como um arquivo de semente estruturado com condições de ativação.
|
|
3
|
-
As sementes se apresentam automaticamente durante /novo-marco quando as condições de ativação
|
|
4
|
-
correspondem ao escopo do novo marco.
|
|
5
|
-
|
|
6
|
-
Sementes superam itens adiados porque:
|
|
7
|
-
- Preservam POR QUE a ideia é importante (não apenas O QUE)
|
|
8
|
-
- Definem QUANDO apresentar (condições de ativação, não varredura manual)
|
|
9
|
-
- Rastreiam trilhas de evidências (referências de código, decisões relacionadas)
|
|
10
|
-
- Se apresentam automaticamente no momento certo via varredura de novo-marco
|
|
11
|
-
</purpose>
|
|
12
|
-
|
|
13
|
-
<process>
|
|
14
|
-
|
|
15
|
-
<step name="parse_idea">
|
|
16
|
-
Analise `$ARGUMENTS` para o resumo da ideia.
|
|
17
|
-
|
|
18
|
-
Se vazio, pergunte:
|
|
19
|
-
```
|
|
20
|
-
Qual é a ideia? (uma frase)
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
Armazene como `$IDEA`.
|
|
24
|
-
</step>
|
|
25
|
-
|
|
26
|
-
<step name="create_seed_dir">
|
|
27
|
-
```bash
|
|
28
|
-
mkdir -p .planning/seeds
|
|
29
|
-
```
|
|
30
|
-
</step>
|
|
31
|
-
|
|
32
|
-
<step name="gather_context">
|
|
33
|
-
Faça perguntas focadas para construir uma semente completa:
|
|
34
|
-
|
|
35
|
-
```
|
|
36
|
-
AskUserQuestion(
|
|
37
|
-
header: "Gatilho",
|
|
38
|
-
question: "Quando esta ideia deve se apresentar? (ex.: 'quando adicionarmos contas de usuário', 'na próxima versão principal', 'quando desempenho se tornar prioridade')",
|
|
39
|
-
options: [] // texto livre
|
|
40
|
-
)
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
Armazene como `$TRIGGER`.
|
|
44
|
-
|
|
45
|
-
```
|
|
46
|
-
AskUserQuestion(
|
|
47
|
-
header: "Por quê",
|
|
48
|
-
question: "Por que isso é importante? Que problema resolve ou que oportunidade cria?",
|
|
49
|
-
options: []
|
|
50
|
-
)
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
Armazene como `$WHY`.
|
|
54
|
-
|
|
55
|
-
```
|
|
56
|
-
AskUserQuestion(
|
|
57
|
-
header: "Escopo",
|
|
58
|
-
question: "Qual o tamanho disso? (estimativa aproximada)",
|
|
59
|
-
options: [
|
|
60
|
-
{ label: "Pequeno", description: "Algumas horas — pode ser uma tarefa rápida" },
|
|
61
|
-
{ label: "Médio", description: "Uma fase ou duas — precisa de planejamento" },
|
|
62
|
-
{ label: "Grande", description: "Um marco completo — esforço significativo" }
|
|
63
|
-
]
|
|
64
|
-
)
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
Armazene como `$SCOPE`.
|
|
68
|
-
</step>
|
|
69
|
-
|
|
70
|
-
<step name="collect_breadcrumbs">
|
|
71
|
-
Pesquise no codebase referências relevantes:
|
|
72
|
-
|
|
73
|
-
```bash
|
|
74
|
-
# Encontrar arquivos relacionados às palavras-chave da ideia
|
|
75
|
-
grep -rl "$KEYWORD" --include="*.ts" --include="*.js" --include="*.md" . 2>/dev/null | head -10
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
Verifique também:
|
|
79
|
-
- STATE.md atual para decisões relacionadas
|
|
80
|
-
- ROADMAP.md para fases relacionadas
|
|
81
|
-
- todos/ para ideias capturadas relacionadas
|
|
82
|
-
|
|
83
|
-
Armazene os caminhos de arquivo relevantes como `$BREADCRUMBS`.
|
|
84
|
-
</step>
|
|
85
|
-
|
|
86
|
-
<step name="generate_seed_id">
|
|
87
|
-
```bash
|
|
88
|
-
# Encontrar o próximo número de semente
|
|
89
|
-
EXISTING=$( (ls .planning/seeds/SEED-*.md 2>/dev/null || true) | wc -l )
|
|
90
|
-
NEXT=$((EXISTING + 1))
|
|
91
|
-
PADDED=$(printf "%03d" $NEXT)
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
Gere um slug a partir do resumo da ideia.
|
|
95
|
-
</step>
|
|
96
|
-
|
|
97
|
-
<step name="write_seed">
|
|
98
|
-
Escreva `.planning/seeds/SEED-{PADDED}-{slug}.md`:
|
|
99
|
-
|
|
100
|
-
```markdown
|
|
101
|
-
---
|
|
102
|
-
id: SEED-{PADDED}
|
|
103
|
-
status: dormant
|
|
104
|
-
planted: {data ISO}
|
|
105
|
-
planted_during: {marco/fase atual do STATE.md}
|
|
106
|
-
trigger_when: {$TRIGGER}
|
|
107
|
-
scope: {$SCOPE}
|
|
108
|
-
---
|
|
109
|
-
|
|
110
|
-
# SEED-{PADDED}: {$IDEA}
|
|
111
|
-
|
|
112
|
-
## Por Que Isso Importa
|
|
113
|
-
|
|
114
|
-
{$WHY}
|
|
115
|
-
|
|
116
|
-
## Quando Apresentar
|
|
117
|
-
|
|
118
|
-
**Gatilho:** {$TRIGGER}
|
|
119
|
-
|
|
120
|
-
Esta semente deve ser apresentada durante `/novo-marco` quando o escopo
|
|
121
|
-
do marco corresponder a qualquer uma destas condições:
|
|
122
|
-
- {condição de ativação 1}
|
|
123
|
-
- {condição de ativação 2}
|
|
124
|
-
|
|
125
|
-
## Estimativa de Escopo
|
|
126
|
-
|
|
127
|
-
**{$SCOPE}** — {elaboração baseada na escolha de escopo}
|
|
128
|
-
|
|
129
|
-
## Trilhas de Evidências
|
|
130
|
-
|
|
131
|
-
Código e decisões relacionados encontrados no codebase atual:
|
|
132
|
-
|
|
133
|
-
{lista de $BREADCRUMBS com caminhos de arquivo}
|
|
134
|
-
|
|
135
|
-
## Notas
|
|
136
|
-
|
|
137
|
-
{qualquer contexto adicional da sessão atual}
|
|
138
|
-
```
|
|
139
|
-
</step>
|
|
140
|
-
|
|
141
|
-
<step name="commit_seed">
|
|
142
|
-
```bash
|
|
143
|
-
node "./.claude/framework/bin/tools.cjs" commit "docs: plantar semente — {$IDEA}" --files .planning/seeds/SEED-{PADDED}-{slug}.md
|
|
144
|
-
```
|
|
145
|
-
</step>
|
|
146
|
-
|
|
147
|
-
<step name="confirm">
|
|
148
|
-
```
|
|
149
|
-
✅ Semente plantada: SEED-{PADDED}
|
|
150
|
-
|
|
151
|
-
"{$IDEA}"
|
|
152
|
-
Gatilho: {$TRIGGER}
|
|
153
|
-
Escopo: {$SCOPE}
|
|
154
|
-
Arquivo: .planning/seeds/SEED-{PADDED}-{slug}.md
|
|
155
|
-
|
|
156
|
-
Esta semente se apresentará automaticamente quando você executar /novo-marco
|
|
157
|
-
e o escopo do marco corresponder à condição de ativação.
|
|
158
|
-
```
|
|
159
|
-
</step>
|
|
160
|
-
|
|
161
|
-
</process>
|
|
162
|
-
|
|
163
|
-
<success_criteria>
|
|
164
|
-
- [ ] Arquivo de semente criado em .planning/seeds/
|
|
165
|
-
- [ ] Frontmatter inclui status, gatilho, escopo
|
|
166
|
-
- [ ] Trilhas de evidências coletadas do codebase
|
|
167
|
-
- [ ] Commitado no git
|
|
168
|
-
- [ ] Usuário visualiza confirmação com informações do gatilho
|
|
169
|
-
</success_criteria>
|
|
1
|
+
<purpose>
|
|
2
|
+
Captura uma ideia prospectiva como um arquivo de semente estruturado com condições de ativação.
|
|
3
|
+
As sementes se apresentam automaticamente durante /novo-marco quando as condições de ativação
|
|
4
|
+
correspondem ao escopo do novo marco.
|
|
5
|
+
|
|
6
|
+
Sementes superam itens adiados porque:
|
|
7
|
+
- Preservam POR QUE a ideia é importante (não apenas O QUE)
|
|
8
|
+
- Definem QUANDO apresentar (condições de ativação, não varredura manual)
|
|
9
|
+
- Rastreiam trilhas de evidências (referências de código, decisões relacionadas)
|
|
10
|
+
- Se apresentam automaticamente no momento certo via varredura de novo-marco
|
|
11
|
+
</purpose>
|
|
12
|
+
|
|
13
|
+
<process>
|
|
14
|
+
|
|
15
|
+
<step name="parse_idea">
|
|
16
|
+
Analise `$ARGUMENTS` para o resumo da ideia.
|
|
17
|
+
|
|
18
|
+
Se vazio, pergunte:
|
|
19
|
+
```
|
|
20
|
+
Qual é a ideia? (uma frase)
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Armazene como `$IDEA`.
|
|
24
|
+
</step>
|
|
25
|
+
|
|
26
|
+
<step name="create_seed_dir">
|
|
27
|
+
```bash
|
|
28
|
+
mkdir -p .planning/seeds
|
|
29
|
+
```
|
|
30
|
+
</step>
|
|
31
|
+
|
|
32
|
+
<step name="gather_context">
|
|
33
|
+
Faça perguntas focadas para construir uma semente completa:
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
AskUserQuestion(
|
|
37
|
+
header: "Gatilho",
|
|
38
|
+
question: "Quando esta ideia deve se apresentar? (ex.: 'quando adicionarmos contas de usuário', 'na próxima versão principal', 'quando desempenho se tornar prioridade')",
|
|
39
|
+
options: [] // texto livre
|
|
40
|
+
)
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Armazene como `$TRIGGER`.
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
AskUserQuestion(
|
|
47
|
+
header: "Por quê",
|
|
48
|
+
question: "Por que isso é importante? Que problema resolve ou que oportunidade cria?",
|
|
49
|
+
options: []
|
|
50
|
+
)
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Armazene como `$WHY`.
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
AskUserQuestion(
|
|
57
|
+
header: "Escopo",
|
|
58
|
+
question: "Qual o tamanho disso? (estimativa aproximada)",
|
|
59
|
+
options: [
|
|
60
|
+
{ label: "Pequeno", description: "Algumas horas — pode ser uma tarefa rápida" },
|
|
61
|
+
{ label: "Médio", description: "Uma fase ou duas — precisa de planejamento" },
|
|
62
|
+
{ label: "Grande", description: "Um marco completo — esforço significativo" }
|
|
63
|
+
]
|
|
64
|
+
)
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Armazene como `$SCOPE`.
|
|
68
|
+
</step>
|
|
69
|
+
|
|
70
|
+
<step name="collect_breadcrumbs">
|
|
71
|
+
Pesquise no codebase referências relevantes:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
# Encontrar arquivos relacionados às palavras-chave da ideia
|
|
75
|
+
grep -rl "$KEYWORD" --include="*.ts" --include="*.js" --include="*.md" . 2>/dev/null | head -10
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Verifique também:
|
|
79
|
+
- STATE.md atual para decisões relacionadas
|
|
80
|
+
- ROADMAP.md para fases relacionadas
|
|
81
|
+
- todos/ para ideias capturadas relacionadas
|
|
82
|
+
|
|
83
|
+
Armazene os caminhos de arquivo relevantes como `$BREADCRUMBS`.
|
|
84
|
+
</step>
|
|
85
|
+
|
|
86
|
+
<step name="generate_seed_id">
|
|
87
|
+
```bash
|
|
88
|
+
# Encontrar o próximo número de semente
|
|
89
|
+
EXISTING=$( (ls .planning/seeds/SEED-*.md 2>/dev/null || true) | wc -l )
|
|
90
|
+
NEXT=$((EXISTING + 1))
|
|
91
|
+
PADDED=$(printf "%03d" $NEXT)
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Gere um slug a partir do resumo da ideia.
|
|
95
|
+
</step>
|
|
96
|
+
|
|
97
|
+
<step name="write_seed">
|
|
98
|
+
Escreva `.planning/seeds/SEED-{PADDED}-{slug}.md`:
|
|
99
|
+
|
|
100
|
+
```markdown
|
|
101
|
+
---
|
|
102
|
+
id: SEED-{PADDED}
|
|
103
|
+
status: dormant
|
|
104
|
+
planted: {data ISO}
|
|
105
|
+
planted_during: {marco/fase atual do STATE.md}
|
|
106
|
+
trigger_when: {$TRIGGER}
|
|
107
|
+
scope: {$SCOPE}
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
# SEED-{PADDED}: {$IDEA}
|
|
111
|
+
|
|
112
|
+
## Por Que Isso Importa
|
|
113
|
+
|
|
114
|
+
{$WHY}
|
|
115
|
+
|
|
116
|
+
## Quando Apresentar
|
|
117
|
+
|
|
118
|
+
**Gatilho:** {$TRIGGER}
|
|
119
|
+
|
|
120
|
+
Esta semente deve ser apresentada durante `/novo-marco` quando o escopo
|
|
121
|
+
do marco corresponder a qualquer uma destas condições:
|
|
122
|
+
- {condição de ativação 1}
|
|
123
|
+
- {condição de ativação 2}
|
|
124
|
+
|
|
125
|
+
## Estimativa de Escopo
|
|
126
|
+
|
|
127
|
+
**{$SCOPE}** — {elaboração baseada na escolha de escopo}
|
|
128
|
+
|
|
129
|
+
## Trilhas de Evidências
|
|
130
|
+
|
|
131
|
+
Código e decisões relacionados encontrados no codebase atual:
|
|
132
|
+
|
|
133
|
+
{lista de $BREADCRUMBS com caminhos de arquivo}
|
|
134
|
+
|
|
135
|
+
## Notas
|
|
136
|
+
|
|
137
|
+
{qualquer contexto adicional da sessão atual}
|
|
138
|
+
```
|
|
139
|
+
</step>
|
|
140
|
+
|
|
141
|
+
<step name="commit_seed">
|
|
142
|
+
```bash
|
|
143
|
+
node "./.claude/framework/bin/tools.cjs" commit "docs: plantar semente — {$IDEA}" --files .planning/seeds/SEED-{PADDED}-{slug}.md
|
|
144
|
+
```
|
|
145
|
+
</step>
|
|
146
|
+
|
|
147
|
+
<step name="confirm">
|
|
148
|
+
```
|
|
149
|
+
✅ Semente plantada: SEED-{PADDED}
|
|
150
|
+
|
|
151
|
+
"{$IDEA}"
|
|
152
|
+
Gatilho: {$TRIGGER}
|
|
153
|
+
Escopo: {$SCOPE}
|
|
154
|
+
Arquivo: .planning/seeds/SEED-{PADDED}-{slug}.md
|
|
155
|
+
|
|
156
|
+
Esta semente se apresentará automaticamente quando você executar /novo-marco
|
|
157
|
+
e o escopo do marco corresponder à condição de ativação.
|
|
158
|
+
```
|
|
159
|
+
</step>
|
|
160
|
+
|
|
161
|
+
</process>
|
|
162
|
+
|
|
163
|
+
<success_criteria>
|
|
164
|
+
- [ ] Arquivo de semente criado em .planning/seeds/
|
|
165
|
+
- [ ] Frontmatter inclui status, gatilho, escopo
|
|
166
|
+
- [ ] Trilhas de evidências coletadas do codebase
|
|
167
|
+
- [ ] Commitado no git
|
|
168
|
+
- [ ] Usuário visualiza confirmação com informações do gatilho
|
|
169
|
+
</success_criteria>
|
|
@@ -1,129 +1,129 @@
|
|
|
1
|
-
<purpose>
|
|
2
|
-
Cria uma branch limpa para pull requests, filtrando commits do diretório .planning/.
|
|
3
|
-
A branch de PR contém apenas mudanças de código — revisores não veem artefatos framework
|
|
4
|
-
(PLAN.md, SUMMARY.md, STATE.md, CONTEXT.md, etc.).
|
|
5
|
-
|
|
6
|
-
Usa git cherry-pick com filtragem de caminho para reconstruir um histórico limpo.
|
|
7
|
-
</purpose>
|
|
8
|
-
|
|
9
|
-
<process>
|
|
10
|
-
|
|
11
|
-
<step name="detect_state">
|
|
12
|
-
Analise `$ARGUMENTS` para branch alvo (padrão: `main`).
|
|
13
|
-
|
|
14
|
-
```bash
|
|
15
|
-
CURRENT_BRANCH=$(git branch --show-current)
|
|
16
|
-
TARGET=${1:-main}
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
Verifique pré-condições:
|
|
20
|
-
- Deve estar em uma branch de feature (não main/master)
|
|
21
|
-
- Deve ter commits à frente do alvo
|
|
22
|
-
|
|
23
|
-
```bash
|
|
24
|
-
AHEAD=$(git rev-list --count "$TARGET".."$CURRENT_BRANCH" 2>/dev/null)
|
|
25
|
-
if [ "$AHEAD" = "0" ]; then
|
|
26
|
-
echo "Nenhum commit à frente de $TARGET — nada para filtrar."
|
|
27
|
-
exit 0
|
|
28
|
-
fi
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
Exiba:
|
|
32
|
-
```
|
|
33
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
34
|
-
framework ► BRANCH DE PR
|
|
35
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
36
|
-
|
|
37
|
-
Branch: {CURRENT_BRANCH}
|
|
38
|
-
Alvo: {TARGET}
|
|
39
|
-
Commits: {AHEAD} à frente
|
|
40
|
-
```
|
|
41
|
-
</step>
|
|
42
|
-
|
|
43
|
-
<step name="analyze_commits">
|
|
44
|
-
Classifique os commits:
|
|
45
|
-
|
|
46
|
-
```bash
|
|
47
|
-
# Obter todos os commits à frente do alvo
|
|
48
|
-
git log --oneline "$TARGET".."$CURRENT_BRANCH" --no-merges
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
Para cada commit, verifique se ele toca APENAS arquivos em .planning/:
|
|
52
|
-
|
|
53
|
-
```bash
|
|
54
|
-
# Para cada hash de commit
|
|
55
|
-
FILES=$(git diff-tree --no-commit-id --name-only -r $HASH)
|
|
56
|
-
ALL_PLANNING=$(echo "$FILES" | grep -v "^\.planning/" | wc -l)
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
Classifique:
|
|
60
|
-
- **Commits de código**: Tocam ao menos um arquivo fora de .planning/ → INCLUIR
|
|
61
|
-
- **Commits apenas de planejamento**: Tocam apenas arquivos em .planning/ → EXCLUIR
|
|
62
|
-
- **Commits mistos**: Tocam ambos → INCLUIR (mudanças de planejamento vêm junto)
|
|
63
|
-
|
|
64
|
-
Exiba a análise:
|
|
65
|
-
```
|
|
66
|
-
Commits a incluir: {N} (mudanças de código)
|
|
67
|
-
Commits a excluir: {N} (apenas planejamento)
|
|
68
|
-
Commits mistos: {N} (código + planejamento — incluídos)
|
|
69
|
-
```
|
|
70
|
-
</step>
|
|
71
|
-
|
|
72
|
-
<step name="create_pr_branch">
|
|
73
|
-
```bash
|
|
74
|
-
PR_BRANCH="${CURRENT_BRANCH}-pr"
|
|
75
|
-
|
|
76
|
-
# Criar branch de PR a partir do alvo
|
|
77
|
-
git checkout -b "$PR_BRANCH" "$TARGET"
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
Cherry-pick apenas commits de código (em ordem):
|
|
81
|
-
|
|
82
|
-
```bash
|
|
83
|
-
for HASH in $CODE_COMMITS; do
|
|
84
|
-
git cherry-pick "$HASH" --no-commit
|
|
85
|
-
# Remover qualquer arquivo .planning/ que veio em commits mistos
|
|
86
|
-
git rm -r --cached .planning/ 2>/dev/null || true
|
|
87
|
-
git commit -C "$HASH"
|
|
88
|
-
done
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
Retorne à branch original:
|
|
92
|
-
```bash
|
|
93
|
-
git checkout "$CURRENT_BRANCH"
|
|
94
|
-
```
|
|
95
|
-
</step>
|
|
96
|
-
|
|
97
|
-
<step name="verify">
|
|
98
|
-
```bash
|
|
99
|
-
# Verificar se há arquivos .planning/ na branch de PR
|
|
100
|
-
PLANNING_FILES=$(git diff --name-only "$TARGET".."$PR_BRANCH" | grep "^\.planning/" | wc -l)
|
|
101
|
-
TOTAL_FILES=$(git diff --name-only "$TARGET".."$PR_BRANCH" | wc -l)
|
|
102
|
-
PR_COMMITS=$(git rev-list --count "$TARGET".."$PR_BRANCH")
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
Exiba os resultados:
|
|
106
|
-
```
|
|
107
|
-
✅ Branch de PR criada: {PR_BRANCH}
|
|
108
|
-
|
|
109
|
-
Original: {AHEAD} commits, {ORIGINAL_FILES} arquivos
|
|
110
|
-
Branch de PR: {PR_COMMITS} commits, {TOTAL_FILES} arquivos
|
|
111
|
-
Arquivos de planejamento: {PLANNING_FILES} (deve ser 0)
|
|
112
|
-
|
|
113
|
-
Próximos passos:
|
|
114
|
-
git push origin {PR_BRANCH}
|
|
115
|
-
gh pr create --base {TARGET} --head {PR_BRANCH}
|
|
116
|
-
|
|
117
|
-
Ou use /publicar para criar o PR automaticamente.
|
|
118
|
-
```
|
|
119
|
-
</step>
|
|
120
|
-
|
|
121
|
-
</process>
|
|
122
|
-
|
|
123
|
-
<success_criteria>
|
|
124
|
-
- [ ] Branch de PR criada a partir do alvo
|
|
125
|
-
- [ ] Commits somente de planejamento excluídos
|
|
126
|
-
- [ ] Sem arquivos .planning/ no diff da branch de PR
|
|
127
|
-
- [ ] Mensagens de commit preservadas do original
|
|
128
|
-
- [ ] Usuário visualiza os próximos passos
|
|
129
|
-
</success_criteria>
|
|
1
|
+
<purpose>
|
|
2
|
+
Cria uma branch limpa para pull requests, filtrando commits do diretório .planning/.
|
|
3
|
+
A branch de PR contém apenas mudanças de código — revisores não veem artefatos framework
|
|
4
|
+
(PLAN.md, SUMMARY.md, STATE.md, CONTEXT.md, etc.).
|
|
5
|
+
|
|
6
|
+
Usa git cherry-pick com filtragem de caminho para reconstruir um histórico limpo.
|
|
7
|
+
</purpose>
|
|
8
|
+
|
|
9
|
+
<process>
|
|
10
|
+
|
|
11
|
+
<step name="detect_state">
|
|
12
|
+
Analise `$ARGUMENTS` para branch alvo (padrão: `main`).
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
CURRENT_BRANCH=$(git branch --show-current)
|
|
16
|
+
TARGET=${1:-main}
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Verifique pré-condições:
|
|
20
|
+
- Deve estar em uma branch de feature (não main/master)
|
|
21
|
+
- Deve ter commits à frente do alvo
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
AHEAD=$(git rev-list --count "$TARGET".."$CURRENT_BRANCH" 2>/dev/null)
|
|
25
|
+
if [ "$AHEAD" = "0" ]; then
|
|
26
|
+
echo "Nenhum commit à frente de $TARGET — nada para filtrar."
|
|
27
|
+
exit 0
|
|
28
|
+
fi
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Exiba:
|
|
32
|
+
```
|
|
33
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
34
|
+
framework ► BRANCH DE PR
|
|
35
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
36
|
+
|
|
37
|
+
Branch: {CURRENT_BRANCH}
|
|
38
|
+
Alvo: {TARGET}
|
|
39
|
+
Commits: {AHEAD} à frente
|
|
40
|
+
```
|
|
41
|
+
</step>
|
|
42
|
+
|
|
43
|
+
<step name="analyze_commits">
|
|
44
|
+
Classifique os commits:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# Obter todos os commits à frente do alvo
|
|
48
|
+
git log --oneline "$TARGET".."$CURRENT_BRANCH" --no-merges
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Para cada commit, verifique se ele toca APENAS arquivos em .planning/:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
# Para cada hash de commit
|
|
55
|
+
FILES=$(git diff-tree --no-commit-id --name-only -r $HASH)
|
|
56
|
+
ALL_PLANNING=$(echo "$FILES" | grep -v "^\.planning/" | wc -l)
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Classifique:
|
|
60
|
+
- **Commits de código**: Tocam ao menos um arquivo fora de .planning/ → INCLUIR
|
|
61
|
+
- **Commits apenas de planejamento**: Tocam apenas arquivos em .planning/ → EXCLUIR
|
|
62
|
+
- **Commits mistos**: Tocam ambos → INCLUIR (mudanças de planejamento vêm junto)
|
|
63
|
+
|
|
64
|
+
Exiba a análise:
|
|
65
|
+
```
|
|
66
|
+
Commits a incluir: {N} (mudanças de código)
|
|
67
|
+
Commits a excluir: {N} (apenas planejamento)
|
|
68
|
+
Commits mistos: {N} (código + planejamento — incluídos)
|
|
69
|
+
```
|
|
70
|
+
</step>
|
|
71
|
+
|
|
72
|
+
<step name="create_pr_branch">
|
|
73
|
+
```bash
|
|
74
|
+
PR_BRANCH="${CURRENT_BRANCH}-pr"
|
|
75
|
+
|
|
76
|
+
# Criar branch de PR a partir do alvo
|
|
77
|
+
git checkout -b "$PR_BRANCH" "$TARGET"
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Cherry-pick apenas commits de código (em ordem):
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
for HASH in $CODE_COMMITS; do
|
|
84
|
+
git cherry-pick "$HASH" --no-commit
|
|
85
|
+
# Remover qualquer arquivo .planning/ que veio em commits mistos
|
|
86
|
+
git rm -r --cached .planning/ 2>/dev/null || true
|
|
87
|
+
git commit -C "$HASH"
|
|
88
|
+
done
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Retorne à branch original:
|
|
92
|
+
```bash
|
|
93
|
+
git checkout "$CURRENT_BRANCH"
|
|
94
|
+
```
|
|
95
|
+
</step>
|
|
96
|
+
|
|
97
|
+
<step name="verify">
|
|
98
|
+
```bash
|
|
99
|
+
# Verificar se há arquivos .planning/ na branch de PR
|
|
100
|
+
PLANNING_FILES=$(git diff --name-only "$TARGET".."$PR_BRANCH" | grep "^\.planning/" | wc -l)
|
|
101
|
+
TOTAL_FILES=$(git diff --name-only "$TARGET".."$PR_BRANCH" | wc -l)
|
|
102
|
+
PR_COMMITS=$(git rev-list --count "$TARGET".."$PR_BRANCH")
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Exiba os resultados:
|
|
106
|
+
```
|
|
107
|
+
✅ Branch de PR criada: {PR_BRANCH}
|
|
108
|
+
|
|
109
|
+
Original: {AHEAD} commits, {ORIGINAL_FILES} arquivos
|
|
110
|
+
Branch de PR: {PR_COMMITS} commits, {TOTAL_FILES} arquivos
|
|
111
|
+
Arquivos de planejamento: {PLANNING_FILES} (deve ser 0)
|
|
112
|
+
|
|
113
|
+
Próximos passos:
|
|
114
|
+
git push origin {PR_BRANCH}
|
|
115
|
+
gh pr create --base {TARGET} --head {PR_BRANCH}
|
|
116
|
+
|
|
117
|
+
Ou use /publicar para criar o PR automaticamente.
|
|
118
|
+
```
|
|
119
|
+
</step>
|
|
120
|
+
|
|
121
|
+
</process>
|
|
122
|
+
|
|
123
|
+
<success_criteria>
|
|
124
|
+
- [ ] Branch de PR criada a partir do alvo
|
|
125
|
+
- [ ] Commits somente de planejamento excluídos
|
|
126
|
+
- [ ] Sem arquivos .planning/ no diff da branch de PR
|
|
127
|
+
- [ ] Mensagens de commit preservadas do original
|
|
128
|
+
- [ ] Usuário visualiza os próximos passos
|
|
129
|
+
</success_criteria>
|