@luanpdd/kit-mcp 1.27.0 → 1.29.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 -914
- package/gates/agent-no-recursive-dispatch.md +45 -11
- 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 +1 -1
- package/kit/agents/auditor-consistencia-isolamento.md +1 -1
- package/kit/agents/b2b-saas-architect.md +1 -1
- package/kit/agents/cascading-failures-auditor.md +1 -1
- package/kit/agents/codebase-mapper.md +768 -768
- package/kit/agents/crm-pipeline-implementer.md +1 -1
- package/kit/agents/debugger.md +813 -813
- package/kit/agents/detector-tenant-quente.md +1 -1
- package/kit/agents/evolution-go-integrator.md +1 -1
- 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 +1 -1
- package/kit/agents/legacy-characterizer.md +1 -1
- package/kit/agents/lgpd-compliance-auditor.md +1 -1
- package/kit/agents/multi-tenant-isolation-auditor.md +1 -1
- package/kit/agents/multi-tenant-rls-writer.md +1 -1
- package/kit/agents/nyquist-auditor.md +178 -178
- package/kit/agents/observability-coverage-auditor.md +1 -1
- package/kit/agents/org-onboarding-implementer.md +1 -1
- package/kit/agents/payload-capture-instrumenter.md +1 -1
- 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 +1 -1
- package/kit/agents/research-synthesizer.md +245 -245
- package/kit/agents/roadmapper.md +677 -677
- package/kit/agents/seam-finder.md +1 -1
- package/kit/agents/shotgun-surgery-detector.md +1 -1
- package/kit/agents/supabase-branching-architect.md +1 -1
- package/kit/agents/supabase-cicd-pipeline-implementer.md +1 -1
- package/kit/agents/supabase-column-privileges-writer.md +1 -1
- package/kit/agents/supabase-migration-writer.md +1 -1
- package/kit/agents/supabase-rbac-implementer.md +1 -1
- package/kit/agents/supabase-rls-hardener.md +1 -1
- package/kit/agents/supabase-rls-writer.md +1 -1
- package/kit/agents/supabase-roles-implementer.md +1 -1
- package/kit/agents/super-admin-implementer.md +1 -1
- 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 +1 -1
- 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 +1 -1
- package/kit/commands/auditar-marco.md +179 -179
- package/kit/commands/auditar-observabilidade-cobertura.md +1 -1
- package/kit/commands/auditar-refactor.md +1 -1
- package/kit/commands/auditar-release.md +1 -1
- 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 +1 -1
- package/kit/commands/capturar-payloads.md +1 -1
- package/kit/commands/caracterizar.md +1 -1
- package/kit/commands/concluir-marco.md +247 -247
- package/kit/commands/configuracoes.md +36 -36
- package/kit/commands/dados-distribuidos.md +1 -1
- package/kit/commands/definir-perfil.md +10 -10
- package/kit/commands/depurar.md +190 -190
- package/kit/commands/detectar-duplicacao.md +1 -1
- package/kit/commands/discutir-fase.md +131 -131
- package/kit/commands/encontrar-seams.md +1 -1
- 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 +1 -1
- 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 +1 -1
- package/kit/commands/mapear-codebase.md +70 -70
- package/kit/commands/multi-tenant.md +1 -1
- 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 +1 -1
- 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 +1 -1
- package/kit/commands/supabase.md +1 -1
- 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 +90 -90
- 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/ai-prompt-characterization/SKILL.md +1 -1
- package/kit/skills/armadilhas-sistemas-distribuidos/SKILL.md +1 -1
- package/kit/skills/audit-log-multi-tenant/SKILL.md +1 -1
- package/kit/skills/b2b-saas-architecture/SKILL.md +1 -1
- package/kit/skills/consistencia-leitura-replica/SKILL.md +1 -1
- package/kit/skills/crm-lead-pipeline-patterns/SKILL.md +1 -1
- package/kit/skills/escolha-modelo-consistencia/SKILL.md +1 -1
- package/kit/skills/evolucao-schema-compativel/SKILL.md +1 -1
- package/kit/skills/evolution-go-whatsapp-integration/SKILL.md +1 -1
- package/kit/skills/example-skill/SKILL.md +42 -42
- package/kit/skills/legacy-api-only-applications/SKILL.md +1 -1
- package/kit/skills/legacy-characterization-tests/SKILL.md +1 -1
- package/kit/skills/legacy-effect-analysis/SKILL.md +1 -1
- package/kit/skills/legacy-extract-class/SKILL.md +1 -1
- package/kit/skills/legacy-programming-by-difference/SKILL.md +1 -1
- package/kit/skills/legacy-seams-and-test-harness/SKILL.md +1 -1
- package/kit/skills/legacy-shotgun-surgery/SKILL.md +1 -1
- package/kit/skills/legacy-sprout-wrap-techniques/SKILL.md +1 -1
- package/kit/skills/legacy-storytelling-naked-crc/SKILL.md +1 -1
- package/kit/skills/lgpd-multi-tenant-compliance/SKILL.md +1 -1
- package/kit/skills/member-invite-flow/SKILL.md +1 -1
- package/kit/skills/member-management-react-shadcn/SKILL.md +1 -1
- package/kit/skills/multi-tenant-performance-scaling/SKILL.md +1 -1
- package/kit/skills/multi-tenant-rls-hierarchy/SKILL.md +1 -1
- package/kit/skills/org-onboarding-flow/SKILL.md +1 -1
- package/kit/skills/org-switcher-react-pattern/SKILL.md +1 -1
- package/kit/skills/permission-gate-react-pattern/SKILL.md +1 -1
- package/kit/skills/postgres-isolamento-concorrencia/SKILL.md +1 -1
- package/kit/skills/pre-refactor-characterization/SKILL.md +1 -1
- package/kit/skills/rbac-permissions-matrix-supabase/SKILL.md +1 -1
- package/kit/skills/streams-eventos-cdc/SKILL.md +1 -1
- package/kit/skills/supabase-branching-workflow/SKILL.md +1 -1
- package/kit/skills/supabase-ci-cd-github-actions/SKILL.md +1 -1
- package/kit/skills/supabase-column-level-security/SKILL.md +1 -1
- package/kit/skills/supabase-config-toml-remotes/SKILL.md +1 -1
- package/kit/skills/supabase-custom-claims-rbac/SKILL.md +1 -1
- package/kit/skills/supabase-migration-repair/SKILL.md +1 -1
- package/kit/skills/supabase-migrations/SKILL.md +1 -1
- package/kit/skills/supabase-pgtap-testing/SKILL.md +1 -1
- package/kit/skills/supabase-postgres-roles/SKILL.md +1 -1
- package/kit/skills/supabase-rls-defense-in-depth/SKILL.md +1 -1
- package/kit/skills/supabase-rls-policies/SKILL.md +1 -1
- package/kit/skills/super-admin-platform-pattern/SKILL.md +1 -1
- package/kit/skills/tenant-quente-mitigacao/SKILL.md +1 -1
- package/kit/skills/whatsapp-conversation-state-machine/SKILL.md +1 -1
- package/package.json +63 -63
- package/src/cli/index.js +378 -6
- package/src/cli/render.js +7 -0
- package/src/core/kit.js +216 -216
- package/src/core/logger.js +170 -0
- package/src/core/notify.js +60 -0
- 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 +276 -10
- package/src/mcp-server/roots.js +124 -0
|
@@ -1,486 +1,486 @@
|
|
|
1
|
-
<purpose>
|
|
2
|
-
|
|
3
|
-
Iniciar um novo ciclo de milestone para um projeto existente. Carrega contexto do projeto, coleta objetivos do milestone (do MILESTONE-CONTEXT.md ou conversa), atualiza PROJECT.md e STATE.md, opcionalmente executa pesquisa paralela, define requisitos com REQ-IDs, cria o roadmapper para gerar plano de execução por fases, e comita todos os artefatos. Equivalente brownfield do new-project.
|
|
4
|
-
|
|
5
|
-
</purpose>
|
|
6
|
-
|
|
7
|
-
<required_reading>
|
|
8
|
-
|
|
9
|
-
Ler todos os arquivos referenciados pelo execution_context do prompt invocador antes de começar.
|
|
10
|
-
|
|
11
|
-
</required_reading>
|
|
12
|
-
|
|
13
|
-
<available_agent_types>
|
|
14
|
-
Tipos de subagentes framework válidos (use nomes exatos — não use 'general-purpose' como fallback):
|
|
15
|
-
- project-researcher — Pesquisa decisões técnicas em nível de projeto
|
|
16
|
-
- research-synthesizer — Sintetiza descobertas de agentes de pesquisa paralelos
|
|
17
|
-
- roadmapper — Cria roadmaps de execução por fases
|
|
18
|
-
</available_agent_types>
|
|
19
|
-
|
|
20
|
-
<process>
|
|
21
|
-
|
|
22
|
-
## 1. Carregar Contexto
|
|
23
|
-
|
|
24
|
-
Analisar `$ARGUMENTS` antes de fazer qualquer coisa:
|
|
25
|
-
- flag `--reset-phase-numbers` → opt-in para reiniciar numeração de fases do roadmap em `1`
|
|
26
|
-
- texto restante → usar como nome do milestone se presente
|
|
27
|
-
|
|
28
|
-
Se a flag estiver ausente, manter o comportamento atual de continuar numeração de fases do milestone anterior.
|
|
29
|
-
|
|
30
|
-
- Ler PROJECT.md (projeto existente, requisitos validados, decisões)
|
|
31
|
-
- Ler MILESTONES.md (o que foi entregue anteriormente)
|
|
32
|
-
- Ler STATE.md (todos pendentes, bloqueadores)
|
|
33
|
-
- Verificar MILESTONE-CONTEXT.md (de /discutir-milestone)
|
|
34
|
-
|
|
35
|
-
## 2. Coletar Objetivos do Milestone
|
|
36
|
-
|
|
37
|
-
**Se MILESTONE-CONTEXT.md existir:**
|
|
38
|
-
- Usar funcionalidades e escopo de discuss-milestone
|
|
39
|
-
- Apresentar resumo para confirmação
|
|
40
|
-
|
|
41
|
-
**Se não houver arquivo de contexto:**
|
|
42
|
-
- Apresentar o que foi entregue no último milestone
|
|
43
|
-
- Perguntar inline (texto livre, NÃO AskUserQuestion): "O que você quer construir a seguir?"
|
|
44
|
-
- Aguardar resposta, depois usar AskUserQuestion para sondar detalhes
|
|
45
|
-
- Se o usuário selecionar "Outro" para fornecer entrada livre, perguntar como texto simples — não outro AskUserQuestion
|
|
46
|
-
|
|
47
|
-
## 3. Determinar Versão do Milestone
|
|
48
|
-
|
|
49
|
-
- Analisar última versão do MILESTONES.md
|
|
50
|
-
- Sugerir próxima versão (v1.0 → v1.1, ou v2.0 para major)
|
|
51
|
-
- Confirmar com usuário
|
|
52
|
-
|
|
53
|
-
## 3.5. Verificar Compreensão do Milestone
|
|
54
|
-
|
|
55
|
-
Antes de escrever qualquer arquivo, apresentar um resumo do que foi coletado e pedir confirmação.
|
|
56
|
-
|
|
57
|
-
```
|
|
58
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
59
|
-
framework ► RESUMO DO MILESTONE
|
|
60
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
61
|
-
|
|
62
|
-
**Milestone v[X.Y]: [Nome]**
|
|
63
|
-
|
|
64
|
-
**Objetivo:** [Uma frase]
|
|
65
|
-
|
|
66
|
-
**Funcionalidades alvo:**
|
|
67
|
-
- [Funcionalidade 1]
|
|
68
|
-
- [Funcionalidade 2]
|
|
69
|
-
- [Funcionalidade 3]
|
|
70
|
-
|
|
71
|
-
**Contexto-chave:** [Quaisquer restrições, decisões ou notas importantes do questionamento]
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
AskUserQuestion:
|
|
75
|
-
- header: "Confirmar?"
|
|
76
|
-
- question: "Isso captura o que você quer construir neste milestone?"
|
|
77
|
-
- options:
|
|
78
|
-
- "Parece bom" — Prosseguir para escrever PROJECT.md
|
|
79
|
-
- "Ajustar" — Deixa eu corrigir ou adicionar detalhes
|
|
80
|
-
|
|
81
|
-
**Se "Ajustar":** Perguntar o que precisa mudar (texto simples, NÃO AskUserQuestion). Incorporar mudanças, reapresentar o resumo. Loop até "Parece bom" ser selecionado.
|
|
82
|
-
|
|
83
|
-
**Se "Parece bom":** Prosseguir para o Passo 4.
|
|
84
|
-
|
|
85
|
-
## 4. Atualizar PROJECT.md
|
|
86
|
-
|
|
87
|
-
Adicionar/atualizar:
|
|
88
|
-
|
|
89
|
-
```markdown
|
|
90
|
-
## Milestone Atual: v[X.Y] [Nome]
|
|
91
|
-
|
|
92
|
-
**Objetivo:** [Uma frase descrevendo o foco do milestone]
|
|
93
|
-
|
|
94
|
-
**Funcionalidades alvo:**
|
|
95
|
-
- [Funcionalidade 1]
|
|
96
|
-
- [Funcionalidade 2]
|
|
97
|
-
- [Funcionalidade 3]
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
Atualizar seção de requisitos Ativos e rodapé "Última atualização".
|
|
101
|
-
|
|
102
|
-
Garantir que a seção `## Evolução` existe no PROJECT.md. Se ausente (projetos criados antes desta funcionalidade), adicionar antes do rodapé:
|
|
103
|
-
|
|
104
|
-
```markdown
|
|
105
|
-
## Evolução
|
|
106
|
-
|
|
107
|
-
Este documento evolui nas transições de fase e limites de milestone.
|
|
108
|
-
|
|
109
|
-
**Após cada transição de fase** (via `/transicao`):
|
|
110
|
-
1. Requisitos invalidados? → Mover para Fora do Escopo com motivo
|
|
111
|
-
2. Requisitos validados? → Mover para Validados com referência de fase
|
|
112
|
-
3. Novos requisitos surgiram? → Adicionar em Ativos
|
|
113
|
-
4. Decisões a registrar? → Adicionar em Decisões-chave
|
|
114
|
-
5. "O Que É" ainda está preciso? → Atualizar se driftar
|
|
115
|
-
|
|
116
|
-
**Após cada milestone** (via `/concluir-marco`):
|
|
117
|
-
1. Revisão completa de todas as seções
|
|
118
|
-
2. Verificação do Valor Central — ainda é a prioridade certa?
|
|
119
|
-
3. Auditar Fora do Escopo — motivos ainda são válidos?
|
|
120
|
-
4. Atualizar Contexto com estado atual
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
## 5. Atualizar STATE.md
|
|
124
|
-
|
|
125
|
-
```markdown
|
|
126
|
-
## Posição Atual
|
|
127
|
-
|
|
128
|
-
Fase: Não iniciada (definindo requisitos)
|
|
129
|
-
Plano: —
|
|
130
|
-
Status: Definindo requisitos
|
|
131
|
-
Última atividade: [hoje] — Milestone v[X.Y] iniciado
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
Manter seção de Contexto Acumulado do milestone anterior.
|
|
135
|
-
|
|
136
|
-
## 6. Limpeza e Commit
|
|
137
|
-
|
|
138
|
-
Deletar MILESTONE-CONTEXT.md se existir (consumido).
|
|
139
|
-
|
|
140
|
-
```bash
|
|
141
|
-
node "./.claude/framework/bin/tools.cjs" commit "docs: start milestone v[X.Y] [Name]" --files .planning/PROJECT.md .planning/STATE.md
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
## 7. Carregar Contexto e Resolver Modelos
|
|
145
|
-
|
|
146
|
-
```bash
|
|
147
|
-
INIT=$(node "./.claude/framework/bin/tools.cjs" init new-milestone)
|
|
148
|
-
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
149
|
-
AGENT_SKILLS_RESEARCHER=$(node "./.claude/framework/bin/tools.cjs" agent-skills project-researcher 2>/dev/null)
|
|
150
|
-
AGENT_SKILLS_SYNTHESIZER=$(node "./.claude/framework/bin/tools.cjs" agent-skills synthesizer 2>/dev/null)
|
|
151
|
-
AGENT_SKILLS_ROADMAPPER=$(node "./.claude/framework/bin/tools.cjs" agent-skills roadmapper 2>/dev/null)
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
Extrair do JSON de init: `researcher_model`, `synthesizer_model`, `roadmapper_model`, `commit_docs`, `research_enabled`, `current_milestone`, `project_exists`, `roadmap_exists`, `latest_completed_milestone`, `phase_dir_count`, `phase_archive_path`.
|
|
155
|
-
|
|
156
|
-
## 7.5 Segurança de reset-phase (apenas quando `--reset-phase-numbers`)
|
|
157
|
-
|
|
158
|
-
Se `--reset-phase-numbers` estiver ativo:
|
|
159
|
-
|
|
160
|
-
1. Definir número de fase inicial como `1` para o roadmap futuro.
|
|
161
|
-
2. Se `phase_dir_count > 0`, arquivar os diretórios de fase antigos antes do roadmapping para que novos diretórios `01-*` / `02-*` não colidam com diretórios de milestone obsoletos.
|
|
162
|
-
|
|
163
|
-
Se `phase_dir_count > 0` e `phase_archive_path` estiver disponível:
|
|
164
|
-
|
|
165
|
-
```bash
|
|
166
|
-
mkdir -p "${phase_archive_path}"
|
|
167
|
-
find .planning/phases -mindepth 1 -maxdepth 1 -type d -exec mv {} "${phase_archive_path}/" \;
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
Então verificar que `.planning/phases/` não contém mais diretórios de milestone antigos antes de continuar.
|
|
171
|
-
|
|
172
|
-
Se `phase_dir_count > 0` mas `phase_archive_path` estiver ausente:
|
|
173
|
-
- Parar e explicar que reiniciar numeração é inseguro sem um alvo de arquivo de milestone concluído.
|
|
174
|
-
- Dizer ao usuário para concluir/arquivar o milestone anterior primeiro, então reexecutar `/novo-marco --reset-phase-numbers ${WS}`.
|
|
175
|
-
|
|
176
|
-
## 8. Decisão de Pesquisa
|
|
177
|
-
|
|
178
|
-
Verificar `research_enabled` do JSON de init (carregado da config).
|
|
179
|
-
|
|
180
|
-
**Se `research_enabled` for `true`:**
|
|
181
|
-
|
|
182
|
-
AskUserQuestion: "Pesquisar o ecossistema do domínio para novas funcionalidades antes de definir requisitos?"
|
|
183
|
-
- "Pesquisar primeiro (Recomendado)" — Descobrir padrões, funcionalidades, arquitetura para NOVAS capacidades
|
|
184
|
-
- "Pular pesquisa para este milestone" — Ir direto para requisitos (não muda seu padrão)
|
|
185
|
-
|
|
186
|
-
**Se `research_enabled` for `false`:**
|
|
187
|
-
|
|
188
|
-
AskUserQuestion: "Pesquisar o ecossistema do domínio para novas funcionalidades antes de definir requisitos?"
|
|
189
|
-
- "Pular pesquisa (padrão atual)" — Ir direto para requisitos
|
|
190
|
-
- "Pesquisar primeiro" — Descobrir padrões, funcionalidades, arquitetura para NOVAS capacidades
|
|
191
|
-
|
|
192
|
-
**IMPORTANTE:** NÃO persistir esta escolha em config.json. A configuração `workflow.research` é uma preferência persistente do usuário que controla o comportamento de plan-phase em todo o projeto. Alterá-la aqui mudaria silenciosamente o comportamento futuro do `/planejar-fase`. Para mudar o padrão, use `/configuracoes`.
|
|
193
|
-
|
|
194
|
-
**Se o usuário escolheu "Pesquisar primeiro":**
|
|
195
|
-
|
|
196
|
-
```
|
|
197
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
198
|
-
framework ► PESQUISANDO
|
|
199
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
200
|
-
|
|
201
|
-
◆ Criando 4 pesquisadores em paralelo...
|
|
202
|
-
→ Stack, Features, Architecture, Pitfalls
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
```bash
|
|
206
|
-
mkdir -p .planning/research
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
Criar 4 agentes project-researcher em paralelo. Cada um usa este template com campos específicos por dimensão:
|
|
210
|
-
|
|
211
|
-
**Estrutura comum para todos os 4 pesquisadores:**
|
|
212
|
-
```
|
|
213
|
-
Task(prompt="
|
|
214
|
-
<research_type>Project Research — {DIMENSION} for [new features].</research_type>
|
|
215
|
-
|
|
216
|
-
<milestone_context>
|
|
217
|
-
SUBSEQUENT MILESTONE — Adding [target features] to existing app.
|
|
218
|
-
{EXISTING_CONTEXT}
|
|
219
|
-
Focus ONLY on what's needed for the NEW features.
|
|
220
|
-
</milestone_context>
|
|
221
|
-
|
|
222
|
-
<question>{QUESTION}</question>
|
|
223
|
-
|
|
224
|
-
<files_to_read>
|
|
225
|
-
- .planning/PROJECT.md (Project context)
|
|
226
|
-
</files_to_read>
|
|
227
|
-
|
|
228
|
-
${AGENT_SKILLS_RESEARCHER}
|
|
229
|
-
|
|
230
|
-
<downstream_consumer>{CONSUMER}</downstream_consumer>
|
|
231
|
-
|
|
232
|
-
<quality_gate>{GATES}</quality_gate>
|
|
233
|
-
|
|
234
|
-
<output>
|
|
235
|
-
Write to: .planning/research/{FILE}
|
|
236
|
-
Use template: ./.claude/framework/templates/research-project/{FILE}
|
|
237
|
-
</output>
|
|
238
|
-
", subagent_type="project-researcher", model="{researcher_model}", description="{DIMENSION} research")
|
|
239
|
-
```
|
|
240
|
-
|
|
241
|
-
**Campos específicos por dimensão:**
|
|
242
|
-
|
|
243
|
-
| Campo | Stack | Features | Architecture | Pitfalls |
|
|
244
|
-
|-------|-------|----------|-------------|----------|
|
|
245
|
-
| EXISTING_CONTEXT | Existing validated capabilities (DO NOT re-research): [from PROJECT.md] | Existing features (already built): [from PROJECT.md] | Existing architecture: [from PROJECT.md or codebase map] | Focus on common mistakes when ADDING these features to existing system |
|
|
246
|
-
| QUESTION | What stack additions/changes are needed for [new features]? | How do [target features] typically work? Expected behavior? | How do [target features] integrate with existing architecture? | Common mistakes when adding [target features] to [domain]? |
|
|
247
|
-
| CONSUMER | Specific libraries with versions for NEW capabilities, integration points, what NOT to add | Table stakes vs differentiators vs anti-features, complexity noted, dependencies on existing | Integration points, new components, data flow changes, suggested build order | Warning signs, prevention strategy, which phase should address it |
|
|
248
|
-
| GATES | Versions current (verify with Context7), rationale explains WHY, integration considered | Categories clear, complexity noted, dependencies identified | Integration points identified, new vs modified explicit, build order considers deps | Pitfalls specific to adding these features, integration pitfalls covered, prevention actionable |
|
|
249
|
-
| FILE | STACK.md | FEATURES.md | ARCHITECTURE.md | PITFALLS.md |
|
|
250
|
-
|
|
251
|
-
Após todos os 4 concluírem, criar sintetizador:
|
|
252
|
-
|
|
253
|
-
```
|
|
254
|
-
Task(prompt="
|
|
255
|
-
Synthesize research outputs into SUMMARY.md.
|
|
256
|
-
|
|
257
|
-
<files_to_read>
|
|
258
|
-
- .planning/research/STACK.md
|
|
259
|
-
- .planning/research/FEATURES.md
|
|
260
|
-
- .planning/research/ARCHITECTURE.md
|
|
261
|
-
- .planning/research/PITFALLS.md
|
|
262
|
-
</files_to_read>
|
|
263
|
-
|
|
264
|
-
${AGENT_SKILLS_SYNTHESIZER}
|
|
265
|
-
|
|
266
|
-
Write to: .planning/research/SUMMARY.md
|
|
267
|
-
Use template: ./.claude/framework/templates/research-project/SUMMARY.md
|
|
268
|
-
Commit after writing.
|
|
269
|
-
", subagent_type="research-synthesizer", model="{synthesizer_model}", description="Synthesize research")
|
|
270
|
-
```
|
|
271
|
-
|
|
272
|
-
Exibir descobertas principais do SUMMARY.md:
|
|
273
|
-
```
|
|
274
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
275
|
-
framework ► PESQUISA CONCLUÍDA ✓
|
|
276
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
277
|
-
|
|
278
|
-
**Adições à stack:** [do SUMMARY.md]
|
|
279
|
-
**Funcionalidades essenciais:** [do SUMMARY.md]
|
|
280
|
-
**Fique Atento a:** [do SUMMARY.md]
|
|
281
|
-
```
|
|
282
|
-
|
|
283
|
-
**Se "Pular pesquisa":** Continuar para o Passo 9.
|
|
284
|
-
|
|
285
|
-
## 9. Definir Requisitos
|
|
286
|
-
|
|
287
|
-
```
|
|
288
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
289
|
-
framework ► DEFININDO REQUISITOS
|
|
290
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
291
|
-
```
|
|
292
|
-
|
|
293
|
-
Ler PROJECT.md: valor central, objetivos do milestone atual, requisitos validados (o que existe).
|
|
294
|
-
|
|
295
|
-
**Se pesquisa existir:** Ler FEATURES.md, extrair categorias de funcionalidades.
|
|
296
|
-
|
|
297
|
-
Apresentar funcionalidades por categoria:
|
|
298
|
-
```
|
|
299
|
-
## [Categoria 1]
|
|
300
|
-
**Essenciais:** Funcionalidade A, Funcionalidade B
|
|
301
|
-
**Diferenciais:** Funcionalidade C, Funcionalidade D
|
|
302
|
-
**Notas de pesquisa:** [quaisquer notas relevantes]
|
|
303
|
-
```
|
|
304
|
-
|
|
305
|
-
**Se não houver pesquisa:** Coletar requisitos por conversa. Perguntar: "Quais são as principais coisas que os usuários precisam fazer com [novas funcionalidades]?" Clarificar, sondar capacidades relacionadas, agrupar em categorias.
|
|
306
|
-
|
|
307
|
-
**Definir escopo de cada categoria** via AskUserQuestion (multiSelect: true, header máx 12 chars):
|
|
308
|
-
- "[Funcionalidade 1]" — [breve descrição]
|
|
309
|
-
- "[Funcionalidade 2]" — [breve descrição]
|
|
310
|
-
- "Nenhuma para este milestone" — Adiar categoria inteira
|
|
311
|
-
|
|
312
|
-
Rastrear: Selecionado → este milestone. Essenciais não selecionados → futuro. Diferenciais não selecionados → fora do escopo.
|
|
313
|
-
|
|
314
|
-
**Identificar lacunas** via AskUserQuestion:
|
|
315
|
-
- "Não, a pesquisa cobriu" — Prosseguir
|
|
316
|
-
- "Sim, deixa eu adicionar alguns" — Capturar adições
|
|
317
|
-
|
|
318
|
-
**Gerar REQUIREMENTS.md:**
|
|
319
|
-
- Requisitos v1 agrupados por categoria (checkboxes, REQ-IDs)
|
|
320
|
-
- Requisitos Futuros (adiados)
|
|
321
|
-
- Fora do Escopo (exclusões explícitas com raciocínio)
|
|
322
|
-
- Seção de Rastreabilidade (vazia, preenchida pelo roadmap)
|
|
323
|
-
|
|
324
|
-
**Formato REQ-ID:** `[CATEGORIA]-[NUMERO]` (AUTH-01, NOTIF-02). Continuar numeração dos existentes.
|
|
325
|
-
|
|
326
|
-
**Critérios de qualidade de requisito:**
|
|
327
|
-
|
|
328
|
-
Bons requisitos são:
|
|
329
|
-
- **Específicos e testáveis:** "Usuário pode redefinir senha via link de e-mail" (não "Gerenciar redefinição de senha")
|
|
330
|
-
- **Centrados no usuário:** "Usuário pode X" (não "Sistema faz Y")
|
|
331
|
-
- **Atômicos:** Uma capacidade por requisito (não "Usuário pode fazer login e gerenciar perfil")
|
|
332
|
-
- **Independentes:** Dependências mínimas de outros requisitos
|
|
333
|
-
|
|
334
|
-
Apresentar lista COMPLETA de requisitos para confirmação:
|
|
335
|
-
|
|
336
|
-
```
|
|
337
|
-
## Requisitos do Milestone v[X.Y]
|
|
338
|
-
|
|
339
|
-
### [Categoria 1]
|
|
340
|
-
- [ ] **CAT1-01**: Usuário pode fazer X
|
|
341
|
-
- [ ] **CAT1-02**: Usuário pode fazer Y
|
|
342
|
-
|
|
343
|
-
### [Categoria 2]
|
|
344
|
-
- [ ] **CAT2-01**: Usuário pode fazer Z
|
|
345
|
-
|
|
346
|
-
Isso captura o que você está construindo? (sim / ajustar)
|
|
347
|
-
```
|
|
348
|
-
|
|
349
|
-
Se "ajustar": Voltar para definição de escopo.
|
|
350
|
-
|
|
351
|
-
**Commitar requisitos:**
|
|
352
|
-
```bash
|
|
353
|
-
node "./.claude/framework/bin/tools.cjs" commit "docs: define milestone v[X.Y] requirements" --files .planning/REQUIREMENTS.md
|
|
354
|
-
```
|
|
355
|
-
|
|
356
|
-
## 10. Criar Roadmap
|
|
357
|
-
|
|
358
|
-
```
|
|
359
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
360
|
-
framework ► CRIANDO ROADMAP
|
|
361
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
362
|
-
|
|
363
|
-
◆ Criando roadmapper...
|
|
364
|
-
```
|
|
365
|
-
|
|
366
|
-
**Número de fase inicial:**
|
|
367
|
-
- Se `--reset-phase-numbers` estiver ativo, iniciar na **Fase 1**
|
|
368
|
-
- Caso contrário, continuar a partir do último número de fase do milestone anterior (v1.0 terminou na fase 5 → v1.1 começa na fase 6)
|
|
369
|
-
|
|
370
|
-
```
|
|
371
|
-
Task(prompt="
|
|
372
|
-
<planning_context>
|
|
373
|
-
<files_to_read>
|
|
374
|
-
- .planning/PROJECT.md
|
|
375
|
-
- .planning/REQUIREMENTS.md
|
|
376
|
-
- .planning/research/SUMMARY.md (if exists)
|
|
377
|
-
- .planning/config.json
|
|
378
|
-
- .planning/MILESTONES.md
|
|
379
|
-
</files_to_read>
|
|
380
|
-
|
|
381
|
-
${AGENT_SKILLS_ROADMAPPER}
|
|
382
|
-
|
|
383
|
-
</planning_context>
|
|
384
|
-
|
|
385
|
-
<instructions>
|
|
386
|
-
Create roadmap for milestone v[X.Y]:
|
|
387
|
-
1. Respect the selected numbering mode:
|
|
388
|
-
- `--reset-phase-numbers` → start at Phase 1
|
|
389
|
-
- default behavior → continue from the previous milestone's last phase number
|
|
390
|
-
2. Derive phases from THIS MILESTONE's requirements only
|
|
391
|
-
3. Map every requirement to exactly one phase
|
|
392
|
-
4. Derive 2-5 success criteria per phase (observable user behaviors)
|
|
393
|
-
5. Validate 100% coverage
|
|
394
|
-
6. Write files immediately (ROADMAP.md, STATE.md, update REQUIREMENTS.md traceability)
|
|
395
|
-
7. Return ROADMAP CREATED with summary
|
|
396
|
-
|
|
397
|
-
Write files first, then return.
|
|
398
|
-
</instructions>
|
|
399
|
-
", subagent_type="roadmapper", model="{roadmapper_model}", description="Create roadmap")
|
|
400
|
-
```
|
|
401
|
-
|
|
402
|
-
**Lidar com retorno:**
|
|
403
|
-
|
|
404
|
-
**Se `## ROADMAP BLOCKED`:** Apresentar bloqueador, trabalhar com usuário, recriar agente.
|
|
405
|
-
|
|
406
|
-
**Se `## ROADMAP CREATED`:** Ler ROADMAP.md, apresentar inline:
|
|
407
|
-
|
|
408
|
-
```
|
|
409
|
-
## Roadmap Proposto
|
|
410
|
-
|
|
411
|
-
**[N] fases** | **[X] requisitos mapeados** | Todos cobertos ✓
|
|
412
|
-
|
|
413
|
-
| # | Fase | Objetivo | Requisitos | Critérios de Sucesso |
|
|
414
|
-
|---|------|----------|------------|----------------------|
|
|
415
|
-
| [N] | [Nome] | [Objetivo] | [REQ-IDs] | [contagem] |
|
|
416
|
-
|
|
417
|
-
### Detalhes da Fase
|
|
418
|
-
|
|
419
|
-
**Fase [N]: [Nome]**
|
|
420
|
-
Objetivo: [objetivo]
|
|
421
|
-
Requisitos: [REQ-IDs]
|
|
422
|
-
Critérios de sucesso:
|
|
423
|
-
1. [critério]
|
|
424
|
-
2. [critério]
|
|
425
|
-
```
|
|
426
|
-
|
|
427
|
-
**Pedir aprovação** via AskUserQuestion:
|
|
428
|
-
- "Aprovar" — Commitar e continuar
|
|
429
|
-
- "Ajustar fases" — Me diga o que mudar
|
|
430
|
-
- "Revisar arquivo completo" — Mostrar ROADMAP.md bruto
|
|
431
|
-
|
|
432
|
-
**Se "Ajustar":** Obter notas, recriar roadmapper com contexto de revisão, loop até aprovado.
|
|
433
|
-
**Se "Revisar":** Exibir ROADMAP.md bruto, re-perguntar.
|
|
434
|
-
|
|
435
|
-
**Commitar roadmap** (após aprovação):
|
|
436
|
-
```bash
|
|
437
|
-
node "./.claude/framework/bin/tools.cjs" commit "docs: create milestone v[X.Y] roadmap ([N] phases)" --files .planning/ROADMAP.md .planning/STATE.md .planning/REQUIREMENTS.md
|
|
438
|
-
```
|
|
439
|
-
|
|
440
|
-
## 11. Concluído
|
|
441
|
-
|
|
442
|
-
```
|
|
443
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
444
|
-
framework ► MILESTONE INICIALIZADO ✓
|
|
445
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
446
|
-
|
|
447
|
-
**Milestone v[X.Y]: [Nome]**
|
|
448
|
-
|
|
449
|
-
| Artefato | Localização |
|
|
450
|
-
|----------------|-----------------------------|
|
|
451
|
-
| Projeto | `.planning/PROJECT.md` |
|
|
452
|
-
| Pesquisa | `.planning/research/` |
|
|
453
|
-
| Requisitos | `.planning/REQUIREMENTS.md` |
|
|
454
|
-
| Roadmap | `.planning/ROADMAP.md` |
|
|
455
|
-
|
|
456
|
-
**[N] fases** | **[X] requisitos** | Pronto para construir ✓
|
|
457
|
-
|
|
458
|
-
## ▶ Próximo Passo
|
|
459
|
-
|
|
460
|
-
**Fase [N]: [Nome da Fase]** — [Objetivo]
|
|
461
|
-
|
|
462
|
-
`/discutir-fase [N] ${WS}` — coletar contexto e clarificar abordagem
|
|
463
|
-
|
|
464
|
-
<sub>`/clear` primeiro → janela de contexto fresca</sub>
|
|
465
|
-
|
|
466
|
-
Também: `/planejar-fase [N] ${WS}` — pular discussão, planejar diretamente
|
|
467
|
-
```
|
|
468
|
-
|
|
469
|
-
</process>
|
|
470
|
-
|
|
471
|
-
<success_criteria>
|
|
472
|
-
- [ ] PROJECT.md atualizado com seção de Milestone Atual
|
|
473
|
-
- [ ] STATE.md reiniciado para novo milestone
|
|
474
|
-
- [ ] MILESTONE-CONTEXT.md consumido e deletado (se existia)
|
|
475
|
-
- [ ] Pesquisa concluída (se selecionada) — 4 agentes paralelos, cientes do milestone
|
|
476
|
-
- [ ] Requisitos coletados e definidos por categoria
|
|
477
|
-
- [ ] REQUIREMENTS.md criado com REQ-IDs
|
|
478
|
-
- [ ] roadmapper criado com contexto de numeração de fases
|
|
479
|
-
- [ ] Arquivos de roadmap escritos imediatamente (não rascunho)
|
|
480
|
-
- [ ] Feedback do usuário incorporado (se houver)
|
|
481
|
-
- [ ] Modo de numeração de fases respeitado (continuado ou reiniciado)
|
|
482
|
-
- [ ] Todos os commits feitos (se docs de planejamento commitados)
|
|
483
|
-
- [ ] Usuário sabe próximo passo: `/discutir-fase [N] ${WS}`
|
|
484
|
-
|
|
485
|
-
**Commits atômicos:** Cada fase comita seus artefatos imediatamente.
|
|
486
|
-
</success_criteria>
|
|
1
|
+
<purpose>
|
|
2
|
+
|
|
3
|
+
Iniciar um novo ciclo de milestone para um projeto existente. Carrega contexto do projeto, coleta objetivos do milestone (do MILESTONE-CONTEXT.md ou conversa), atualiza PROJECT.md e STATE.md, opcionalmente executa pesquisa paralela, define requisitos com REQ-IDs, cria o roadmapper para gerar plano de execução por fases, e comita todos os artefatos. Equivalente brownfield do new-project.
|
|
4
|
+
|
|
5
|
+
</purpose>
|
|
6
|
+
|
|
7
|
+
<required_reading>
|
|
8
|
+
|
|
9
|
+
Ler todos os arquivos referenciados pelo execution_context do prompt invocador antes de começar.
|
|
10
|
+
|
|
11
|
+
</required_reading>
|
|
12
|
+
|
|
13
|
+
<available_agent_types>
|
|
14
|
+
Tipos de subagentes framework válidos (use nomes exatos — não use 'general-purpose' como fallback):
|
|
15
|
+
- project-researcher — Pesquisa decisões técnicas em nível de projeto
|
|
16
|
+
- research-synthesizer — Sintetiza descobertas de agentes de pesquisa paralelos
|
|
17
|
+
- roadmapper — Cria roadmaps de execução por fases
|
|
18
|
+
</available_agent_types>
|
|
19
|
+
|
|
20
|
+
<process>
|
|
21
|
+
|
|
22
|
+
## 1. Carregar Contexto
|
|
23
|
+
|
|
24
|
+
Analisar `$ARGUMENTS` antes de fazer qualquer coisa:
|
|
25
|
+
- flag `--reset-phase-numbers` → opt-in para reiniciar numeração de fases do roadmap em `1`
|
|
26
|
+
- texto restante → usar como nome do milestone se presente
|
|
27
|
+
|
|
28
|
+
Se a flag estiver ausente, manter o comportamento atual de continuar numeração de fases do milestone anterior.
|
|
29
|
+
|
|
30
|
+
- Ler PROJECT.md (projeto existente, requisitos validados, decisões)
|
|
31
|
+
- Ler MILESTONES.md (o que foi entregue anteriormente)
|
|
32
|
+
- Ler STATE.md (todos pendentes, bloqueadores)
|
|
33
|
+
- Verificar MILESTONE-CONTEXT.md (de /discutir-milestone)
|
|
34
|
+
|
|
35
|
+
## 2. Coletar Objetivos do Milestone
|
|
36
|
+
|
|
37
|
+
**Se MILESTONE-CONTEXT.md existir:**
|
|
38
|
+
- Usar funcionalidades e escopo de discuss-milestone
|
|
39
|
+
- Apresentar resumo para confirmação
|
|
40
|
+
|
|
41
|
+
**Se não houver arquivo de contexto:**
|
|
42
|
+
- Apresentar o que foi entregue no último milestone
|
|
43
|
+
- Perguntar inline (texto livre, NÃO AskUserQuestion): "O que você quer construir a seguir?"
|
|
44
|
+
- Aguardar resposta, depois usar AskUserQuestion para sondar detalhes
|
|
45
|
+
- Se o usuário selecionar "Outro" para fornecer entrada livre, perguntar como texto simples — não outro AskUserQuestion
|
|
46
|
+
|
|
47
|
+
## 3. Determinar Versão do Milestone
|
|
48
|
+
|
|
49
|
+
- Analisar última versão do MILESTONES.md
|
|
50
|
+
- Sugerir próxima versão (v1.0 → v1.1, ou v2.0 para major)
|
|
51
|
+
- Confirmar com usuário
|
|
52
|
+
|
|
53
|
+
## 3.5. Verificar Compreensão do Milestone
|
|
54
|
+
|
|
55
|
+
Antes de escrever qualquer arquivo, apresentar um resumo do que foi coletado e pedir confirmação.
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
59
|
+
framework ► RESUMO DO MILESTONE
|
|
60
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
61
|
+
|
|
62
|
+
**Milestone v[X.Y]: [Nome]**
|
|
63
|
+
|
|
64
|
+
**Objetivo:** [Uma frase]
|
|
65
|
+
|
|
66
|
+
**Funcionalidades alvo:**
|
|
67
|
+
- [Funcionalidade 1]
|
|
68
|
+
- [Funcionalidade 2]
|
|
69
|
+
- [Funcionalidade 3]
|
|
70
|
+
|
|
71
|
+
**Contexto-chave:** [Quaisquer restrições, decisões ou notas importantes do questionamento]
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
AskUserQuestion:
|
|
75
|
+
- header: "Confirmar?"
|
|
76
|
+
- question: "Isso captura o que você quer construir neste milestone?"
|
|
77
|
+
- options:
|
|
78
|
+
- "Parece bom" — Prosseguir para escrever PROJECT.md
|
|
79
|
+
- "Ajustar" — Deixa eu corrigir ou adicionar detalhes
|
|
80
|
+
|
|
81
|
+
**Se "Ajustar":** Perguntar o que precisa mudar (texto simples, NÃO AskUserQuestion). Incorporar mudanças, reapresentar o resumo. Loop até "Parece bom" ser selecionado.
|
|
82
|
+
|
|
83
|
+
**Se "Parece bom":** Prosseguir para o Passo 4.
|
|
84
|
+
|
|
85
|
+
## 4. Atualizar PROJECT.md
|
|
86
|
+
|
|
87
|
+
Adicionar/atualizar:
|
|
88
|
+
|
|
89
|
+
```markdown
|
|
90
|
+
## Milestone Atual: v[X.Y] [Nome]
|
|
91
|
+
|
|
92
|
+
**Objetivo:** [Uma frase descrevendo o foco do milestone]
|
|
93
|
+
|
|
94
|
+
**Funcionalidades alvo:**
|
|
95
|
+
- [Funcionalidade 1]
|
|
96
|
+
- [Funcionalidade 2]
|
|
97
|
+
- [Funcionalidade 3]
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Atualizar seção de requisitos Ativos e rodapé "Última atualização".
|
|
101
|
+
|
|
102
|
+
Garantir que a seção `## Evolução` existe no PROJECT.md. Se ausente (projetos criados antes desta funcionalidade), adicionar antes do rodapé:
|
|
103
|
+
|
|
104
|
+
```markdown
|
|
105
|
+
## Evolução
|
|
106
|
+
|
|
107
|
+
Este documento evolui nas transições de fase e limites de milestone.
|
|
108
|
+
|
|
109
|
+
**Após cada transição de fase** (via `/transicao`):
|
|
110
|
+
1. Requisitos invalidados? → Mover para Fora do Escopo com motivo
|
|
111
|
+
2. Requisitos validados? → Mover para Validados com referência de fase
|
|
112
|
+
3. Novos requisitos surgiram? → Adicionar em Ativos
|
|
113
|
+
4. Decisões a registrar? → Adicionar em Decisões-chave
|
|
114
|
+
5. "O Que É" ainda está preciso? → Atualizar se driftar
|
|
115
|
+
|
|
116
|
+
**Após cada milestone** (via `/concluir-marco`):
|
|
117
|
+
1. Revisão completa de todas as seções
|
|
118
|
+
2. Verificação do Valor Central — ainda é a prioridade certa?
|
|
119
|
+
3. Auditar Fora do Escopo — motivos ainda são válidos?
|
|
120
|
+
4. Atualizar Contexto com estado atual
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## 5. Atualizar STATE.md
|
|
124
|
+
|
|
125
|
+
```markdown
|
|
126
|
+
## Posição Atual
|
|
127
|
+
|
|
128
|
+
Fase: Não iniciada (definindo requisitos)
|
|
129
|
+
Plano: —
|
|
130
|
+
Status: Definindo requisitos
|
|
131
|
+
Última atividade: [hoje] — Milestone v[X.Y] iniciado
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Manter seção de Contexto Acumulado do milestone anterior.
|
|
135
|
+
|
|
136
|
+
## 6. Limpeza e Commit
|
|
137
|
+
|
|
138
|
+
Deletar MILESTONE-CONTEXT.md se existir (consumido).
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
node "./.claude/framework/bin/tools.cjs" commit "docs: start milestone v[X.Y] [Name]" --files .planning/PROJECT.md .planning/STATE.md
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## 7. Carregar Contexto e Resolver Modelos
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
INIT=$(node "./.claude/framework/bin/tools.cjs" init new-milestone)
|
|
148
|
+
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
149
|
+
AGENT_SKILLS_RESEARCHER=$(node "./.claude/framework/bin/tools.cjs" agent-skills project-researcher 2>/dev/null)
|
|
150
|
+
AGENT_SKILLS_SYNTHESIZER=$(node "./.claude/framework/bin/tools.cjs" agent-skills synthesizer 2>/dev/null)
|
|
151
|
+
AGENT_SKILLS_ROADMAPPER=$(node "./.claude/framework/bin/tools.cjs" agent-skills roadmapper 2>/dev/null)
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Extrair do JSON de init: `researcher_model`, `synthesizer_model`, `roadmapper_model`, `commit_docs`, `research_enabled`, `current_milestone`, `project_exists`, `roadmap_exists`, `latest_completed_milestone`, `phase_dir_count`, `phase_archive_path`.
|
|
155
|
+
|
|
156
|
+
## 7.5 Segurança de reset-phase (apenas quando `--reset-phase-numbers`)
|
|
157
|
+
|
|
158
|
+
Se `--reset-phase-numbers` estiver ativo:
|
|
159
|
+
|
|
160
|
+
1. Definir número de fase inicial como `1` para o roadmap futuro.
|
|
161
|
+
2. Se `phase_dir_count > 0`, arquivar os diretórios de fase antigos antes do roadmapping para que novos diretórios `01-*` / `02-*` não colidam com diretórios de milestone obsoletos.
|
|
162
|
+
|
|
163
|
+
Se `phase_dir_count > 0` e `phase_archive_path` estiver disponível:
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
mkdir -p "${phase_archive_path}"
|
|
167
|
+
find .planning/phases -mindepth 1 -maxdepth 1 -type d -exec mv {} "${phase_archive_path}/" \;
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
Então verificar que `.planning/phases/` não contém mais diretórios de milestone antigos antes de continuar.
|
|
171
|
+
|
|
172
|
+
Se `phase_dir_count > 0` mas `phase_archive_path` estiver ausente:
|
|
173
|
+
- Parar e explicar que reiniciar numeração é inseguro sem um alvo de arquivo de milestone concluído.
|
|
174
|
+
- Dizer ao usuário para concluir/arquivar o milestone anterior primeiro, então reexecutar `/novo-marco --reset-phase-numbers ${WS}`.
|
|
175
|
+
|
|
176
|
+
## 8. Decisão de Pesquisa
|
|
177
|
+
|
|
178
|
+
Verificar `research_enabled` do JSON de init (carregado da config).
|
|
179
|
+
|
|
180
|
+
**Se `research_enabled` for `true`:**
|
|
181
|
+
|
|
182
|
+
AskUserQuestion: "Pesquisar o ecossistema do domínio para novas funcionalidades antes de definir requisitos?"
|
|
183
|
+
- "Pesquisar primeiro (Recomendado)" — Descobrir padrões, funcionalidades, arquitetura para NOVAS capacidades
|
|
184
|
+
- "Pular pesquisa para este milestone" — Ir direto para requisitos (não muda seu padrão)
|
|
185
|
+
|
|
186
|
+
**Se `research_enabled` for `false`:**
|
|
187
|
+
|
|
188
|
+
AskUserQuestion: "Pesquisar o ecossistema do domínio para novas funcionalidades antes de definir requisitos?"
|
|
189
|
+
- "Pular pesquisa (padrão atual)" — Ir direto para requisitos
|
|
190
|
+
- "Pesquisar primeiro" — Descobrir padrões, funcionalidades, arquitetura para NOVAS capacidades
|
|
191
|
+
|
|
192
|
+
**IMPORTANTE:** NÃO persistir esta escolha em config.json. A configuração `workflow.research` é uma preferência persistente do usuário que controla o comportamento de plan-phase em todo o projeto. Alterá-la aqui mudaria silenciosamente o comportamento futuro do `/planejar-fase`. Para mudar o padrão, use `/configuracoes`.
|
|
193
|
+
|
|
194
|
+
**Se o usuário escolheu "Pesquisar primeiro":**
|
|
195
|
+
|
|
196
|
+
```
|
|
197
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
198
|
+
framework ► PESQUISANDO
|
|
199
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
200
|
+
|
|
201
|
+
◆ Criando 4 pesquisadores em paralelo...
|
|
202
|
+
→ Stack, Features, Architecture, Pitfalls
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
mkdir -p .planning/research
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
Criar 4 agentes project-researcher em paralelo. Cada um usa este template com campos específicos por dimensão:
|
|
210
|
+
|
|
211
|
+
**Estrutura comum para todos os 4 pesquisadores:**
|
|
212
|
+
```
|
|
213
|
+
Task(prompt="
|
|
214
|
+
<research_type>Project Research — {DIMENSION} for [new features].</research_type>
|
|
215
|
+
|
|
216
|
+
<milestone_context>
|
|
217
|
+
SUBSEQUENT MILESTONE — Adding [target features] to existing app.
|
|
218
|
+
{EXISTING_CONTEXT}
|
|
219
|
+
Focus ONLY on what's needed for the NEW features.
|
|
220
|
+
</milestone_context>
|
|
221
|
+
|
|
222
|
+
<question>{QUESTION}</question>
|
|
223
|
+
|
|
224
|
+
<files_to_read>
|
|
225
|
+
- .planning/PROJECT.md (Project context)
|
|
226
|
+
</files_to_read>
|
|
227
|
+
|
|
228
|
+
${AGENT_SKILLS_RESEARCHER}
|
|
229
|
+
|
|
230
|
+
<downstream_consumer>{CONSUMER}</downstream_consumer>
|
|
231
|
+
|
|
232
|
+
<quality_gate>{GATES}</quality_gate>
|
|
233
|
+
|
|
234
|
+
<output>
|
|
235
|
+
Write to: .planning/research/{FILE}
|
|
236
|
+
Use template: ./.claude/framework/templates/research-project/{FILE}
|
|
237
|
+
</output>
|
|
238
|
+
", subagent_type="project-researcher", model="{researcher_model}", description="{DIMENSION} research")
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
**Campos específicos por dimensão:**
|
|
242
|
+
|
|
243
|
+
| Campo | Stack | Features | Architecture | Pitfalls |
|
|
244
|
+
|-------|-------|----------|-------------|----------|
|
|
245
|
+
| EXISTING_CONTEXT | Existing validated capabilities (DO NOT re-research): [from PROJECT.md] | Existing features (already built): [from PROJECT.md] | Existing architecture: [from PROJECT.md or codebase map] | Focus on common mistakes when ADDING these features to existing system |
|
|
246
|
+
| QUESTION | What stack additions/changes are needed for [new features]? | How do [target features] typically work? Expected behavior? | How do [target features] integrate with existing architecture? | Common mistakes when adding [target features] to [domain]? |
|
|
247
|
+
| CONSUMER | Specific libraries with versions for NEW capabilities, integration points, what NOT to add | Table stakes vs differentiators vs anti-features, complexity noted, dependencies on existing | Integration points, new components, data flow changes, suggested build order | Warning signs, prevention strategy, which phase should address it |
|
|
248
|
+
| GATES | Versions current (verify with Context7), rationale explains WHY, integration considered | Categories clear, complexity noted, dependencies identified | Integration points identified, new vs modified explicit, build order considers deps | Pitfalls specific to adding these features, integration pitfalls covered, prevention actionable |
|
|
249
|
+
| FILE | STACK.md | FEATURES.md | ARCHITECTURE.md | PITFALLS.md |
|
|
250
|
+
|
|
251
|
+
Após todos os 4 concluírem, criar sintetizador:
|
|
252
|
+
|
|
253
|
+
```
|
|
254
|
+
Task(prompt="
|
|
255
|
+
Synthesize research outputs into SUMMARY.md.
|
|
256
|
+
|
|
257
|
+
<files_to_read>
|
|
258
|
+
- .planning/research/STACK.md
|
|
259
|
+
- .planning/research/FEATURES.md
|
|
260
|
+
- .planning/research/ARCHITECTURE.md
|
|
261
|
+
- .planning/research/PITFALLS.md
|
|
262
|
+
</files_to_read>
|
|
263
|
+
|
|
264
|
+
${AGENT_SKILLS_SYNTHESIZER}
|
|
265
|
+
|
|
266
|
+
Write to: .planning/research/SUMMARY.md
|
|
267
|
+
Use template: ./.claude/framework/templates/research-project/SUMMARY.md
|
|
268
|
+
Commit after writing.
|
|
269
|
+
", subagent_type="research-synthesizer", model="{synthesizer_model}", description="Synthesize research")
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
Exibir descobertas principais do SUMMARY.md:
|
|
273
|
+
```
|
|
274
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
275
|
+
framework ► PESQUISA CONCLUÍDA ✓
|
|
276
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
277
|
+
|
|
278
|
+
**Adições à stack:** [do SUMMARY.md]
|
|
279
|
+
**Funcionalidades essenciais:** [do SUMMARY.md]
|
|
280
|
+
**Fique Atento a:** [do SUMMARY.md]
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
**Se "Pular pesquisa":** Continuar para o Passo 9.
|
|
284
|
+
|
|
285
|
+
## 9. Definir Requisitos
|
|
286
|
+
|
|
287
|
+
```
|
|
288
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
289
|
+
framework ► DEFININDO REQUISITOS
|
|
290
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
Ler PROJECT.md: valor central, objetivos do milestone atual, requisitos validados (o que existe).
|
|
294
|
+
|
|
295
|
+
**Se pesquisa existir:** Ler FEATURES.md, extrair categorias de funcionalidades.
|
|
296
|
+
|
|
297
|
+
Apresentar funcionalidades por categoria:
|
|
298
|
+
```
|
|
299
|
+
## [Categoria 1]
|
|
300
|
+
**Essenciais:** Funcionalidade A, Funcionalidade B
|
|
301
|
+
**Diferenciais:** Funcionalidade C, Funcionalidade D
|
|
302
|
+
**Notas de pesquisa:** [quaisquer notas relevantes]
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
**Se não houver pesquisa:** Coletar requisitos por conversa. Perguntar: "Quais são as principais coisas que os usuários precisam fazer com [novas funcionalidades]?" Clarificar, sondar capacidades relacionadas, agrupar em categorias.
|
|
306
|
+
|
|
307
|
+
**Definir escopo de cada categoria** via AskUserQuestion (multiSelect: true, header máx 12 chars):
|
|
308
|
+
- "[Funcionalidade 1]" — [breve descrição]
|
|
309
|
+
- "[Funcionalidade 2]" — [breve descrição]
|
|
310
|
+
- "Nenhuma para este milestone" — Adiar categoria inteira
|
|
311
|
+
|
|
312
|
+
Rastrear: Selecionado → este milestone. Essenciais não selecionados → futuro. Diferenciais não selecionados → fora do escopo.
|
|
313
|
+
|
|
314
|
+
**Identificar lacunas** via AskUserQuestion:
|
|
315
|
+
- "Não, a pesquisa cobriu" — Prosseguir
|
|
316
|
+
- "Sim, deixa eu adicionar alguns" — Capturar adições
|
|
317
|
+
|
|
318
|
+
**Gerar REQUIREMENTS.md:**
|
|
319
|
+
- Requisitos v1 agrupados por categoria (checkboxes, REQ-IDs)
|
|
320
|
+
- Requisitos Futuros (adiados)
|
|
321
|
+
- Fora do Escopo (exclusões explícitas com raciocínio)
|
|
322
|
+
- Seção de Rastreabilidade (vazia, preenchida pelo roadmap)
|
|
323
|
+
|
|
324
|
+
**Formato REQ-ID:** `[CATEGORIA]-[NUMERO]` (AUTH-01, NOTIF-02). Continuar numeração dos existentes.
|
|
325
|
+
|
|
326
|
+
**Critérios de qualidade de requisito:**
|
|
327
|
+
|
|
328
|
+
Bons requisitos são:
|
|
329
|
+
- **Específicos e testáveis:** "Usuário pode redefinir senha via link de e-mail" (não "Gerenciar redefinição de senha")
|
|
330
|
+
- **Centrados no usuário:** "Usuário pode X" (não "Sistema faz Y")
|
|
331
|
+
- **Atômicos:** Uma capacidade por requisito (não "Usuário pode fazer login e gerenciar perfil")
|
|
332
|
+
- **Independentes:** Dependências mínimas de outros requisitos
|
|
333
|
+
|
|
334
|
+
Apresentar lista COMPLETA de requisitos para confirmação:
|
|
335
|
+
|
|
336
|
+
```
|
|
337
|
+
## Requisitos do Milestone v[X.Y]
|
|
338
|
+
|
|
339
|
+
### [Categoria 1]
|
|
340
|
+
- [ ] **CAT1-01**: Usuário pode fazer X
|
|
341
|
+
- [ ] **CAT1-02**: Usuário pode fazer Y
|
|
342
|
+
|
|
343
|
+
### [Categoria 2]
|
|
344
|
+
- [ ] **CAT2-01**: Usuário pode fazer Z
|
|
345
|
+
|
|
346
|
+
Isso captura o que você está construindo? (sim / ajustar)
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
Se "ajustar": Voltar para definição de escopo.
|
|
350
|
+
|
|
351
|
+
**Commitar requisitos:**
|
|
352
|
+
```bash
|
|
353
|
+
node "./.claude/framework/bin/tools.cjs" commit "docs: define milestone v[X.Y] requirements" --files .planning/REQUIREMENTS.md
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
## 10. Criar Roadmap
|
|
357
|
+
|
|
358
|
+
```
|
|
359
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
360
|
+
framework ► CRIANDO ROADMAP
|
|
361
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
362
|
+
|
|
363
|
+
◆ Criando roadmapper...
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
**Número de fase inicial:**
|
|
367
|
+
- Se `--reset-phase-numbers` estiver ativo, iniciar na **Fase 1**
|
|
368
|
+
- Caso contrário, continuar a partir do último número de fase do milestone anterior (v1.0 terminou na fase 5 → v1.1 começa na fase 6)
|
|
369
|
+
|
|
370
|
+
```
|
|
371
|
+
Task(prompt="
|
|
372
|
+
<planning_context>
|
|
373
|
+
<files_to_read>
|
|
374
|
+
- .planning/PROJECT.md
|
|
375
|
+
- .planning/REQUIREMENTS.md
|
|
376
|
+
- .planning/research/SUMMARY.md (if exists)
|
|
377
|
+
- .planning/config.json
|
|
378
|
+
- .planning/MILESTONES.md
|
|
379
|
+
</files_to_read>
|
|
380
|
+
|
|
381
|
+
${AGENT_SKILLS_ROADMAPPER}
|
|
382
|
+
|
|
383
|
+
</planning_context>
|
|
384
|
+
|
|
385
|
+
<instructions>
|
|
386
|
+
Create roadmap for milestone v[X.Y]:
|
|
387
|
+
1. Respect the selected numbering mode:
|
|
388
|
+
- `--reset-phase-numbers` → start at Phase 1
|
|
389
|
+
- default behavior → continue from the previous milestone's last phase number
|
|
390
|
+
2. Derive phases from THIS MILESTONE's requirements only
|
|
391
|
+
3. Map every requirement to exactly one phase
|
|
392
|
+
4. Derive 2-5 success criteria per phase (observable user behaviors)
|
|
393
|
+
5. Validate 100% coverage
|
|
394
|
+
6. Write files immediately (ROADMAP.md, STATE.md, update REQUIREMENTS.md traceability)
|
|
395
|
+
7. Return ROADMAP CREATED with summary
|
|
396
|
+
|
|
397
|
+
Write files first, then return.
|
|
398
|
+
</instructions>
|
|
399
|
+
", subagent_type="roadmapper", model="{roadmapper_model}", description="Create roadmap")
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
**Lidar com retorno:**
|
|
403
|
+
|
|
404
|
+
**Se `## ROADMAP BLOCKED`:** Apresentar bloqueador, trabalhar com usuário, recriar agente.
|
|
405
|
+
|
|
406
|
+
**Se `## ROADMAP CREATED`:** Ler ROADMAP.md, apresentar inline:
|
|
407
|
+
|
|
408
|
+
```
|
|
409
|
+
## Roadmap Proposto
|
|
410
|
+
|
|
411
|
+
**[N] fases** | **[X] requisitos mapeados** | Todos cobertos ✓
|
|
412
|
+
|
|
413
|
+
| # | Fase | Objetivo | Requisitos | Critérios de Sucesso |
|
|
414
|
+
|---|------|----------|------------|----------------------|
|
|
415
|
+
| [N] | [Nome] | [Objetivo] | [REQ-IDs] | [contagem] |
|
|
416
|
+
|
|
417
|
+
### Detalhes da Fase
|
|
418
|
+
|
|
419
|
+
**Fase [N]: [Nome]**
|
|
420
|
+
Objetivo: [objetivo]
|
|
421
|
+
Requisitos: [REQ-IDs]
|
|
422
|
+
Critérios de sucesso:
|
|
423
|
+
1. [critério]
|
|
424
|
+
2. [critério]
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
**Pedir aprovação** via AskUserQuestion:
|
|
428
|
+
- "Aprovar" — Commitar e continuar
|
|
429
|
+
- "Ajustar fases" — Me diga o que mudar
|
|
430
|
+
- "Revisar arquivo completo" — Mostrar ROADMAP.md bruto
|
|
431
|
+
|
|
432
|
+
**Se "Ajustar":** Obter notas, recriar roadmapper com contexto de revisão, loop até aprovado.
|
|
433
|
+
**Se "Revisar":** Exibir ROADMAP.md bruto, re-perguntar.
|
|
434
|
+
|
|
435
|
+
**Commitar roadmap** (após aprovação):
|
|
436
|
+
```bash
|
|
437
|
+
node "./.claude/framework/bin/tools.cjs" commit "docs: create milestone v[X.Y] roadmap ([N] phases)" --files .planning/ROADMAP.md .planning/STATE.md .planning/REQUIREMENTS.md
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
## 11. Concluído
|
|
441
|
+
|
|
442
|
+
```
|
|
443
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
444
|
+
framework ► MILESTONE INICIALIZADO ✓
|
|
445
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
446
|
+
|
|
447
|
+
**Milestone v[X.Y]: [Nome]**
|
|
448
|
+
|
|
449
|
+
| Artefato | Localização |
|
|
450
|
+
|----------------|-----------------------------|
|
|
451
|
+
| Projeto | `.planning/PROJECT.md` |
|
|
452
|
+
| Pesquisa | `.planning/research/` |
|
|
453
|
+
| Requisitos | `.planning/REQUIREMENTS.md` |
|
|
454
|
+
| Roadmap | `.planning/ROADMAP.md` |
|
|
455
|
+
|
|
456
|
+
**[N] fases** | **[X] requisitos** | Pronto para construir ✓
|
|
457
|
+
|
|
458
|
+
## ▶ Próximo Passo
|
|
459
|
+
|
|
460
|
+
**Fase [N]: [Nome da Fase]** — [Objetivo]
|
|
461
|
+
|
|
462
|
+
`/discutir-fase [N] ${WS}` — coletar contexto e clarificar abordagem
|
|
463
|
+
|
|
464
|
+
<sub>`/clear` primeiro → janela de contexto fresca</sub>
|
|
465
|
+
|
|
466
|
+
Também: `/planejar-fase [N] ${WS}` — pular discussão, planejar diretamente
|
|
467
|
+
```
|
|
468
|
+
|
|
469
|
+
</process>
|
|
470
|
+
|
|
471
|
+
<success_criteria>
|
|
472
|
+
- [ ] PROJECT.md atualizado com seção de Milestone Atual
|
|
473
|
+
- [ ] STATE.md reiniciado para novo milestone
|
|
474
|
+
- [ ] MILESTONE-CONTEXT.md consumido e deletado (se existia)
|
|
475
|
+
- [ ] Pesquisa concluída (se selecionada) — 4 agentes paralelos, cientes do milestone
|
|
476
|
+
- [ ] Requisitos coletados e definidos por categoria
|
|
477
|
+
- [ ] REQUIREMENTS.md criado com REQ-IDs
|
|
478
|
+
- [ ] roadmapper criado com contexto de numeração de fases
|
|
479
|
+
- [ ] Arquivos de roadmap escritos imediatamente (não rascunho)
|
|
480
|
+
- [ ] Feedback do usuário incorporado (se houver)
|
|
481
|
+
- [ ] Modo de numeração de fases respeitado (continuado ou reiniciado)
|
|
482
|
+
- [ ] Todos os commits feitos (se docs de planejamento commitados)
|
|
483
|
+
- [ ] Usuário sabe próximo passo: `/discutir-fase [N] ${WS}`
|
|
484
|
+
|
|
485
|
+
**Commits atômicos:** Cada fase comita seus artefatos imediatamente.
|
|
486
|
+
</success_criteria>
|