@luanpdd/kit-mcp 1.26.0 → 1.28.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/release-pipeline-auditor.md +11 -0
- 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-architect.md +14 -0
- package/kit/agents/supabase-branching-architect.md +562 -0
- package/kit/agents/supabase-cicd-pipeline-implementer.md +777 -0
- package/kit/agents/supabase-column-privileges-writer.md +1 -1
- package/kit/agents/supabase-migration-writer.md +13 -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 +93 -86
- 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 +10 -0
- 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 +544 -0
- package/kit/skills/supabase-ci-cd-github-actions/SKILL.md +880 -0
- package/kit/skills/supabase-column-level-security/SKILL.md +1 -1
- package/kit/skills/supabase-config-toml-remotes/SKILL.md +807 -0
- package/kit/skills/supabase-custom-claims-rbac/SKILL.md +1 -1
- package/kit/skills/supabase-migration-repair/SKILL.md +823 -0
- package/kit/skills/supabase-migrations/SKILL.md +1 -1
- package/kit/skills/supabase-pgtap-testing/SKILL.md +1053 -0
- 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 +345 -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 +65 -2
|
@@ -1,653 +1,653 @@
|
|
|
1
|
-
<purpose>
|
|
2
|
-
Extrair decisões de implementação que agentes downstream precisam — usando análise primeiro da base de código
|
|
3
|
-
e surfacing de premissas em vez de questionamento estilo entrevista.
|
|
4
|
-
|
|
5
|
-
Você é um parceiro de pensamento, não um entrevistador. Analise a base de código profundamente, surfeie o que
|
|
6
|
-
você acredita com base em evidências, e pergunte ao usuário apenas para corrigir o que está errado.
|
|
7
|
-
</purpose>
|
|
8
|
-
|
|
9
|
-
<available_agent_types>
|
|
10
|
-
Tipos de subagentes framework válidos (use nomes exatos — não use 'general-purpose' como fallback):
|
|
11
|
-
- assumptions-analyzer — Analisa a base de código para surfaçar premissas de implementação
|
|
12
|
-
</available_agent_types>
|
|
13
|
-
|
|
14
|
-
<downstream_awareness>
|
|
15
|
-
**CONTEXT.md alimenta:**
|
|
16
|
-
|
|
17
|
-
1. **phase-researcher** — Lê CONTEXT.md para saber O QUE pesquisar
|
|
18
|
-
2. **planner** — Lê CONTEXT.md para saber QUAIS decisões estão bloqueadas
|
|
19
|
-
|
|
20
|
-
**Seu trabalho:** Capturar decisões de forma clara o suficiente para que agentes downstream possam agir sobre elas
|
|
21
|
-
sem perguntar ao usuário novamente. A saída é idêntica ao modo discuss — mesmo formato CONTEXT.md.
|
|
22
|
-
</downstream_awareness>
|
|
23
|
-
|
|
24
|
-
<philosophy>
|
|
25
|
-
**Filosofia do modo assumptions:**
|
|
26
|
-
|
|
27
|
-
O usuário é um visionário, não um arqueólogo de base de código. Eles precisam de contexto suficiente para avaliar
|
|
28
|
-
se suas premissas correspondem à intenção deles — não para responder perguntas que você poderia descobrir
|
|
29
|
-
lendo o código.
|
|
30
|
-
|
|
31
|
-
- Leia a base de código PRIMEIRO, forme opiniões SEGUNDO, pergunte APENAS sobre o que é genuinamente incerto
|
|
32
|
-
- Cada premissa deve citar evidências (caminhos de arquivo, padrões encontrados)
|
|
33
|
-
- Cada premissa deve declarar consequências se estiver errada
|
|
34
|
-
- Minimize interações com o usuário: ~2-4 correções vs ~15-20 perguntas
|
|
35
|
-
</philosophy>
|
|
36
|
-
|
|
37
|
-
<scope_guardrail>
|
|
38
|
-
**CRÍTICO: Sem expansão de escopo.**
|
|
39
|
-
|
|
40
|
-
O limite da fase vem do ROADMAP.md e é FIXO. A discussão esclarece COMO implementar
|
|
41
|
-
o que está no escopo, nunca SE adicionar novas capacidades.
|
|
42
|
-
|
|
43
|
-
Quando o usuário sugere expansão de escopo:
|
|
44
|
-
"[Funcionalidade X] seria uma nova capacidade — isso é sua própria fase.
|
|
45
|
-
Quer que eu anote para o backlog do roadmap? Por enquanto, vamos focar em [domínio da fase]."
|
|
46
|
-
|
|
47
|
-
Capturar a ideia em "Ideias Adiadas". Não perder, não agir.
|
|
48
|
-
</scope_guardrail>
|
|
49
|
-
|
|
50
|
-
<answer_validation>
|
|
51
|
-
**IMPORTANTE: Validação de resposta** — Após cada chamada AskUserQuestion, verificar se a resposta
|
|
52
|
-
está vazia ou apenas com espaços em branco. Se sim:
|
|
53
|
-
1. Tentar a pergunta novamente uma vez com os mesmos parâmetros
|
|
54
|
-
2. Se ainda vazia, apresentar as opções como uma lista numerada em texto simples
|
|
55
|
-
|
|
56
|
-
**Modo texto (`workflow.text_mode: true` na config ou flag `--text`):**
|
|
57
|
-
Quando o modo texto estiver ativo, não usar AskUserQuestion de forma alguma. Apresentar cada pergunta como uma
|
|
58
|
-
lista numerada em texto simples e pedir ao usuário que digite o número da escolha.
|
|
59
|
-
</answer_validation>
|
|
60
|
-
|
|
61
|
-
<process>
|
|
62
|
-
|
|
63
|
-
<step name="initialize" priority="first">
|
|
64
|
-
Número da fase do argumento (obrigatório).
|
|
65
|
-
|
|
66
|
-
```bash
|
|
67
|
-
INIT=$(node "./.claude/framework/bin/tools.cjs" init phase-op "${PHASE}")
|
|
68
|
-
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
69
|
-
AGENT_SKILLS_ANALYZER=$(node "./.claude/framework/bin/tools.cjs" agent-skills assumptions-analyzer 2>/dev/null)
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
Analisar JSON para: `commit_docs`, `phase_found`, `phase_dir`, `phase_number`, `phase_name`,
|
|
73
|
-
`phase_slug`, `padded_phase`, `has_research`, `has_context`, `has_plans`, `has_verification`,
|
|
74
|
-
`plan_count`, `roadmap_exists`, `planning_exists`.
|
|
75
|
-
|
|
76
|
-
**Se `phase_found` for falso:**
|
|
77
|
-
```
|
|
78
|
-
Fase [X] não encontrada no roadmap.
|
|
79
|
-
|
|
80
|
-
Use /progresso para ver as fases disponíveis.
|
|
81
|
-
```
|
|
82
|
-
Sair do workflow.
|
|
83
|
-
|
|
84
|
-
**Se `phase_found` for verdadeiro:** Continuar para check_existing.
|
|
85
|
-
|
|
86
|
-
**Modo auto** — Se `--auto` estiver presente em ARGUMENTS:
|
|
87
|
-
- Em `check_existing`: auto-selecionar "Atualizar" (se contexto existe) ou continuar sem perguntar
|
|
88
|
-
- Em `present_assumptions`: pular portão de confirmação, prosseguir diretamente para escrever CONTEXT.md
|
|
89
|
-
- Em `correct_assumptions`: auto-selecionar opção recomendada para cada correção
|
|
90
|
-
- Registrar cada escolha auto-selecionada inline
|
|
91
|
-
- Após conclusão, avançar automaticamente para plan-phase
|
|
92
|
-
</step>
|
|
93
|
-
|
|
94
|
-
<step name="check_existing">
|
|
95
|
-
Verificar se CONTEXT.md já existe usando `has_context` do init.
|
|
96
|
-
|
|
97
|
-
```bash
|
|
98
|
-
ls ${phase_dir}/*-CONTEXT.md 2>/dev/null || true
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
**Se existir:**
|
|
102
|
-
|
|
103
|
-
**Se `--auto`:** Auto-selecionar "Atualizar". Registrar: `[auto] Contexto existe — atualizando com análise baseada em premissas.`
|
|
104
|
-
|
|
105
|
-
**Caso contrário:** Usar AskUserQuestion:
|
|
106
|
-
- header: "Contexto"
|
|
107
|
-
- question: "A Fase [X] já tem contexto. O que você quer fazer?"
|
|
108
|
-
- options:
|
|
109
|
-
- "Atualizar" — Re-analisar base de código e atualizar premissas
|
|
110
|
-
- "Ver" — Mostrar o que está lá
|
|
111
|
-
- "Pular" — Usar contexto existente como está
|
|
112
|
-
|
|
113
|
-
Se "Atualizar": Carregar existente, continuar para load_prior_context
|
|
114
|
-
Se "Ver": Exibir CONTEXT.md, então oferecer atualizar/pular
|
|
115
|
-
Se "Pular": Sair do workflow
|
|
116
|
-
|
|
117
|
-
**Se não existir:**
|
|
118
|
-
|
|
119
|
-
Verificar `has_plans` e `plan_count` do init. **Se `has_plans` for verdadeiro:**
|
|
120
|
-
|
|
121
|
-
**Se `--auto`:** Auto-selecionar "Continuar e replanejar depois". Registrar: `[auto] Planos existem — continuando com análise de premissas, replanejará depois.`
|
|
122
|
-
|
|
123
|
-
**Caso contrário:** Usar AskUserQuestion:
|
|
124
|
-
- header: "Planos existem"
|
|
125
|
-
- question: "A Fase [X] já tem {plan_count} plano(s) criado(s) sem contexto do usuário. Suas decisões aqui não afetarão planos existentes a menos que você replaneje."
|
|
126
|
-
- options:
|
|
127
|
-
- "Continuar e replanejar depois"
|
|
128
|
-
- "Ver planos existentes"
|
|
129
|
-
- "Cancelar"
|
|
130
|
-
|
|
131
|
-
Se "Continuar e replanejar depois": Continuar para load_prior_context.
|
|
132
|
-
Se "Ver planos existentes": Exibir arquivos de plano, então oferecer "Continuar" / "Cancelar".
|
|
133
|
-
Se "Cancelar": Sair do workflow.
|
|
134
|
-
|
|
135
|
-
**Se `has_plans` for falso:** Continuar para load_prior_context.
|
|
136
|
-
</step>
|
|
137
|
-
|
|
138
|
-
<step name="load_prior_context">
|
|
139
|
-
Ler contexto de nível de projeto e fase anterior para evitar re-fazer perguntas já decididas.
|
|
140
|
-
|
|
141
|
-
**Passo 1: Ler arquivos de nível de projeto**
|
|
142
|
-
```bash
|
|
143
|
-
cat .planning/PROJECT.md 2>/dev/null || true
|
|
144
|
-
cat .planning/REQUIREMENTS.md 2>/dev/null || true
|
|
145
|
-
cat .planning/STATE.md 2>/dev/null || true
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
Extrair destes:
|
|
149
|
-
- **PROJECT.md** — Visão, princípios, não-negociáveis, preferências do usuário
|
|
150
|
-
- **REQUIREMENTS.md** — Critérios de aceitação, restrições
|
|
151
|
-
- **STATE.md** — Progresso atual, quaisquer flags
|
|
152
|
-
|
|
153
|
-
**Passo 2: Ler todos os arquivos CONTEXT.md anteriores**
|
|
154
|
-
```bash
|
|
155
|
-
(find .planning/phases -name "*-CONTEXT.md" 2>/dev/null || true) | sort
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
Para cada CONTEXT.md onde o número da fase < fase atual:
|
|
159
|
-
- Ler a seção `<decisions>` — estas são preferências bloqueadas
|
|
160
|
-
- Ler `<specifics>` — referências particulares ou momentos "eu quero como X"
|
|
161
|
-
- Notar padrões (ex: "usuário consistentemente prefere UI mínima")
|
|
162
|
-
|
|
163
|
-
**Passo 3: Construir contexto interno `<prior_decisions>`**
|
|
164
|
-
|
|
165
|
-
Estruturar as informações extraídas para uso na geração de premissas.
|
|
166
|
-
|
|
167
|
-
**Se nenhum contexto anterior existir:** Continuar sem — esperado para fases iniciais.
|
|
168
|
-
</step>
|
|
169
|
-
|
|
170
|
-
<step name="cross_reference_todos">
|
|
171
|
-
Verificar se algum todo pendente é relevante para o escopo desta fase.
|
|
172
|
-
|
|
173
|
-
```bash
|
|
174
|
-
TODO_MATCHES=$(node "./.claude/framework/bin/tools.cjs" todo match-phase "${PHASE_NUMBER}")
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
Analisar JSON para: `todo_count`, `matches[]`.
|
|
178
|
-
|
|
179
|
-
**Se `todo_count` for 0:** Pular silenciosamente.
|
|
180
|
-
|
|
181
|
-
**Se correspondências encontradas:** Apresentar todos correspondentes, usar AskUserQuestion (multiSelect) para dobrar os relevantes no escopo.
|
|
182
|
-
|
|
183
|
-
**Para todos selecionados (dobrados):** Armazenar como `<folded_todos>` para a seção `<decisions>` do CONTEXT.md.
|
|
184
|
-
**Para não selecionados:** Armazenar como `<reviewed_todos>` para a seção `<deferred>` do CONTEXT.md.
|
|
185
|
-
|
|
186
|
-
**Modo auto (`--auto`):** Dobrar automaticamente todos os todos com score >= 0.4. Registrar a seleção.
|
|
187
|
-
</step>
|
|
188
|
-
|
|
189
|
-
<step name="scout_codebase">
|
|
190
|
-
Varredura leve do código existente para informar a geração de premissas.
|
|
191
|
-
|
|
192
|
-
**Passo 1: Verificar mapas de base de código existentes**
|
|
193
|
-
```bash
|
|
194
|
-
ls .planning/codebase/*.md 2>/dev/null || true
|
|
195
|
-
```
|
|
196
|
-
|
|
197
|
-
**Se mapas de base de código existirem:** Ler os relevantes (CONVENTIONS.md, STRUCTURE.md, STACK.md). Extrair componentes reutilizáveis, padrões, pontos de integração. Pular para o Passo 3.
|
|
198
|
-
|
|
199
|
-
**Passo 2: Se não houver mapas de base de código, fazer grep direcionado**
|
|
200
|
-
|
|
201
|
-
Extrair termos-chave do objetivo da fase, buscar arquivos relacionados.
|
|
202
|
-
|
|
203
|
-
```bash
|
|
204
|
-
grep -rl "{termo1}\|{termo2}" src/ app/ --include="*.ts" --include="*.tsx" 2>/dev/null | head -10
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
Ler os 3-5 arquivos mais relevantes.
|
|
208
|
-
|
|
209
|
-
**Passo 3: Construir `<codebase_context>` interno**
|
|
210
|
-
|
|
211
|
-
Identificar ativos reutilizáveis, padrões estabelecidos, pontos de integração e opções criativas. Armazenar internamente para uso em deep_codebase_analysis.
|
|
212
|
-
</step>
|
|
213
|
-
|
|
214
|
-
<step name="deep_codebase_analysis">
|
|
215
|
-
Criar um agente `assumptions-analyzer` para analisar profundamente a base de código para esta fase. Isso
|
|
216
|
-
mantém conteúdos brutos de arquivos fora da janela de contexto principal, protegendo o orçamento de tokens.
|
|
217
|
-
|
|
218
|
-
**Resolver tier de calibração (se USER-PROFILE.md existir):**
|
|
219
|
-
|
|
220
|
-
```bash
|
|
221
|
-
PROFILE_PATH="./.claude/framework/USER-PROFILE.md"
|
|
222
|
-
```
|
|
223
|
-
|
|
224
|
-
Se o arquivo existir em PROFILE_PATH:
|
|
225
|
-
- Prioridade 1: Ler config.json > preferences.vendor_philosophy (substituição de nível de projeto)
|
|
226
|
-
- Prioridade 2: Ler avaliação de Vendor Choices/Philosophy do USER-PROFILE.md (global)
|
|
227
|
-
- Prioridade 3: Padrão para "standard"
|
|
228
|
-
|
|
229
|
-
Mapear para tier de calibração:
|
|
230
|
-
- conservative OU thorough-evaluator → full_maturity (mais alternativas, evidência detalhada)
|
|
231
|
-
- opinionated → minimal_decisive (menos alternativas, recomendações decisivas)
|
|
232
|
-
- pragmatic-fast OU qualquer outro valor → standard
|
|
233
|
-
|
|
234
|
-
Se não houver USER-PROFILE.md: calibration_tier = "standard"
|
|
235
|
-
|
|
236
|
-
**Criar subagente Explore:**
|
|
237
|
-
|
|
238
|
-
```
|
|
239
|
-
Task(subagent_type="assumptions-analyzer", prompt="""
|
|
240
|
-
Analisar a base de código para a Fase {PHASE}: {phase_name}.
|
|
241
|
-
|
|
242
|
-
Objetivo da fase: {roadmap_description}
|
|
243
|
-
Decisões anteriores: {prior_decisions_summary}
|
|
244
|
-
Dicas do scout de base de código: {codebase_context_summary}
|
|
245
|
-
Calibração: {calibration_tier}
|
|
246
|
-
|
|
247
|
-
Seu trabalho:
|
|
248
|
-
1. Ler descrição da fase {PHASE} do ROADMAP.md
|
|
249
|
-
2. Ler quaisquer arquivos CONTEXT.md anteriores de fases anteriores
|
|
250
|
-
3. Glob/Grep para arquivos relacionados a: {phase_relevant_terms}
|
|
251
|
-
4. Ler 5-15 arquivos fonte mais relevantes
|
|
252
|
-
5. Retornar premissas estruturadas
|
|
253
|
-
|
|
254
|
-
## Formato de Saída
|
|
255
|
-
|
|
256
|
-
Retornar EXATAMENTE esta estrutura:
|
|
257
|
-
|
|
258
|
-
## Premissas
|
|
259
|
-
|
|
260
|
-
### [Nome da Área] (ex: "Abordagem Técnica")
|
|
261
|
-
- **Premissa:** [Declaração de decisão]
|
|
262
|
-
- **Por quê desta forma:** [Evidência da base de código — citar caminhos de arquivo]
|
|
263
|
-
- **Se errado:** [Consequência concreta de estar errado]
|
|
264
|
-
- **Confiança:** Confiante | Provável | Incerto
|
|
265
|
-
|
|
266
|
-
(3-5 áreas, calibradas por tier:
|
|
267
|
-
- full_maturity: 3-5 áreas, 2-3 alternativas por item Provável/Incerto
|
|
268
|
-
- standard: 3-4 áreas, 2 alternativas por item Provável/Incerto
|
|
269
|
-
- minimal_decisive: 2-3 áreas, recomendação única decisiva por item)
|
|
270
|
-
|
|
271
|
-
## Precisa de Pesquisa Externa
|
|
272
|
-
[Tópicos onde a base de código sozinha é insuficiente — compatibilidade de versão de biblioteca,
|
|
273
|
-
melhores práticas do ecossistema, etc. Deixar vazio se a base de código fornece evidência suficiente.]
|
|
274
|
-
|
|
275
|
-
${AGENT_SKILLS_ANALYZER}
|
|
276
|
-
""")
|
|
277
|
-
```
|
|
278
|
-
|
|
279
|
-
Analisar a resposta do subagente. Extrair:
|
|
280
|
-
- `assumptions[]` — cada um com área, declaração, evidência, consequência, confiança
|
|
281
|
-
- `needs_research[]` — tópicos que requerem pesquisa externa (pode estar vazio)
|
|
282
|
-
|
|
283
|
-
**Inicializar acumulador de refs canônicas:**
|
|
284
|
-
- Fonte 1: Copiar `Canonical refs:` do ROADMAP.md para esta fase, expandir para caminhos completos
|
|
285
|
-
- Fonte 2: Verificar REQUIREMENTS.md e PROJECT.md para specs/ADRs referenciados
|
|
286
|
-
- Fonte 3: Adicionar quaisquer docs referenciados nos resultados do scout de base de código
|
|
287
|
-
</step>
|
|
288
|
-
|
|
289
|
-
<step name="external_research">
|
|
290
|
-
**Pular se:** `needs_research` do deep_codebase_analysis estiver vazio.
|
|
291
|
-
|
|
292
|
-
Se tópicos de pesquisa foram sinalizados, criar um agente de pesquisa geral:
|
|
293
|
-
|
|
294
|
-
```
|
|
295
|
-
Task(subagent_type="general-purpose", prompt="""
|
|
296
|
-
Pesquisar os seguintes tópicos para a Fase {PHASE}: {phase_name}.
|
|
297
|
-
|
|
298
|
-
Tópicos precisando de pesquisa:
|
|
299
|
-
{needs_research_content}
|
|
300
|
-
|
|
301
|
-
Para cada tópico, retornar:
|
|
302
|
-
- **Achado:** [O que você aprendeu]
|
|
303
|
-
- **Fonte:** [URL ou referência de docs de biblioteca]
|
|
304
|
-
- **Impacto na confiança:** [Qual premissa isso resolve e para qual nível de confiança]
|
|
305
|
-
|
|
306
|
-
Use Context7 (resolve-library-id então query-docs) para perguntas específicas de biblioteca.
|
|
307
|
-
Use WebSearch para perguntas de ecossistema/melhores práticas.
|
|
308
|
-
""")
|
|
309
|
-
```
|
|
310
|
-
|
|
311
|
-
Mesclar achados de volta nas premissas:
|
|
312
|
-
- Atualizar níveis de confiança onde a pesquisa resolve ambiguidade
|
|
313
|
-
- Adicionar atribuição de fonte às premissas afetadas
|
|
314
|
-
- Armazenar achados de pesquisa para DISCUSSION-LOG.md
|
|
315
|
-
|
|
316
|
-
**Se nenhuma lacuna sinalizada:** Pular completamente. A maioria das fases pulará esta etapa.
|
|
317
|
-
</step>
|
|
318
|
-
|
|
319
|
-
<step name="present_assumptions">
|
|
320
|
-
Exibir todas as premissas agrupadas por área com badges de confiança.
|
|
321
|
-
|
|
322
|
-
**Formato para exibição:**
|
|
323
|
-
|
|
324
|
-
```
|
|
325
|
-
## Fase {PHASE}: {phase_name} — Premissas
|
|
326
|
-
|
|
327
|
-
Com base na análise da base de código, aqui está o que eu usaria:
|
|
328
|
-
|
|
329
|
-
### {Nome da Área}
|
|
330
|
-
{Badge de confiança} **{Declaração de premissa}**
|
|
331
|
-
↳ Evidência: {caminhos de arquivo citados}
|
|
332
|
-
↳ Se errado: {consequência}
|
|
333
|
-
|
|
334
|
-
### {Nome da Área 2}
|
|
335
|
-
...
|
|
336
|
-
|
|
337
|
-
[Se pesquisa externa foi realizada:]
|
|
338
|
-
### Pesquisa Externa Aplicada
|
|
339
|
-
- {Tópico}: {Achado} (Fonte: {URL})
|
|
340
|
-
```
|
|
341
|
-
|
|
342
|
-
**Se `--auto`:**
|
|
343
|
-
- Se todas as premissas são Confiante ou Provável: registrar premissas, pular para write_context.
|
|
344
|
-
Registrar: `[auto] Todas as premissas Confiante/Provável — prosseguindo para captura de contexto.`
|
|
345
|
-
- Se alguma premissa é Incerto: registrar um aviso, auto-selecionar alternativa recomendada para
|
|
346
|
-
cada item Incerto. Registrar: `[auto] {N} premissas Incertas auto-resolvidas com padrões recomendados.`
|
|
347
|
-
Prosseguir para write_context.
|
|
348
|
-
|
|
349
|
-
**Caso contrário:** Usar AskUserQuestion:
|
|
350
|
-
- header: "Premissas"
|
|
351
|
-
- question: "Tudo parece correto?"
|
|
352
|
-
- options:
|
|
353
|
-
- "Sim, prosseguir" — Escrever CONTEXT.md com estas premissas como decisões
|
|
354
|
-
- "Deixe-me corrigir algumas" — Selecionar quais premissas mudar
|
|
355
|
-
|
|
356
|
-
**Se "Sim, prosseguir":** Pular para write_context.
|
|
357
|
-
**Se "Deixe-me corrigir algumas":** Continuar para correct_assumptions.
|
|
358
|
-
</step>
|
|
359
|
-
|
|
360
|
-
<step name="correct_assumptions">
|
|
361
|
-
As premissas já estão exibidas acima do present_assumptions.
|
|
362
|
-
|
|
363
|
-
Apresentar um multiSelect onde o rótulo de cada opção é a declaração de premissa e a descrição
|
|
364
|
-
é a consequência "Se errado":
|
|
365
|
-
|
|
366
|
-
Usar AskUserQuestion (multiSelect):
|
|
367
|
-
- header: "Correções"
|
|
368
|
-
- question: "Quais premissas precisam de correção?"
|
|
369
|
-
- options: [uma por premissa, rótulo = declaração de premissa, descrição = "Se errado: {consequência}"]
|
|
370
|
-
|
|
371
|
-
Para cada correção selecionada, fazer UMA pergunta focada:
|
|
372
|
-
|
|
373
|
-
Usar AskUserQuestion:
|
|
374
|
-
- header: "{Nome da Área}"
|
|
375
|
-
- question: "O que devemos fazer em vez disso para: {declaração de premissa}?"
|
|
376
|
-
- options: [2-3 alternativas concretas descrevendo resultados visíveis ao usuário, opção recomendada primeiro]
|
|
377
|
-
|
|
378
|
-
Registrar cada correção:
|
|
379
|
-
- Premissa original
|
|
380
|
-
- Alternativa escolhida pelo usuário
|
|
381
|
-
- Motivo (se fornecido via texto livre "Outro")
|
|
382
|
-
|
|
383
|
-
Após todas as correções processadas, continuar para write_context com premissas atualizadas.
|
|
384
|
-
|
|
385
|
-
**Modo auto:** Não deve atingir esta etapa (--auto pula de present_assumptions).
|
|
386
|
-
</step>
|
|
387
|
-
|
|
388
|
-
<step name="write_context">
|
|
389
|
-
Criar diretório de fase se necessário. Escrever CONTEXT.md usando o formato padrão de 6 seções.
|
|
390
|
-
|
|
391
|
-
**Arquivo:** `${phase_dir}/${padded_phase}-CONTEXT.md`
|
|
392
|
-
|
|
393
|
-
Mapear premissas para seções do CONTEXT.md:
|
|
394
|
-
- Premissas → `<decisions>` (cada premissa se torna uma decisão bloqueada: D-01, D-02, etc.)
|
|
395
|
-
- Correções → substituir a premissa original em `<decisions>`
|
|
396
|
-
- Áreas onde todas as premissas eram Confiante → marcadas como decisões bloqueadas
|
|
397
|
-
- Áreas com correções → incluir alternativa escolhida pelo usuário como a decisão
|
|
398
|
-
- Todos dobrados → incluídos em `<decisions>` em "### Todos Dobrados"
|
|
399
|
-
|
|
400
|
-
```markdown
|
|
401
|
-
# Fase {PHASE}: {phase_name} - Contexto
|
|
402
|
-
|
|
403
|
-
**Coletado:** {data} (modo assumptions)
|
|
404
|
-
**Status:** Pronto para planejamento
|
|
405
|
-
|
|
406
|
-
<domain>
|
|
407
|
-
## Limite da Fase
|
|
408
|
-
|
|
409
|
-
{Limite de domínio do ROADMAP.md — declaração clara de âncora de escopo}
|
|
410
|
-
</domain>
|
|
411
|
-
|
|
412
|
-
<decisions>
|
|
413
|
-
## Decisões de Implementação
|
|
414
|
-
|
|
415
|
-
### {Nome da Área 1}
|
|
416
|
-
- **D-01:** {Decisão — de premissa ou correção}
|
|
417
|
-
- **D-02:** {Decisão}
|
|
418
|
-
|
|
419
|
-
### {Nome da Área 2}
|
|
420
|
-
- **D-03:** {Decisão}
|
|
421
|
-
|
|
422
|
-
### Discrição do Claude
|
|
423
|
-
{Quaisquer premissas onde o usuário confirmou "você decide" ou deixou como está com confiança Provável}
|
|
424
|
-
|
|
425
|
-
### Todos Dobrados
|
|
426
|
-
{Se algum todo foi dobrado no escopo}
|
|
427
|
-
</decisions>
|
|
428
|
-
|
|
429
|
-
<canonical_refs>
|
|
430
|
-
## Referências Canônicas
|
|
431
|
-
|
|
432
|
-
**Agentes downstream DEVEM ler estas antes de planejar ou implementar.**
|
|
433
|
-
|
|
434
|
-
{Refs canônicas acumuladas do passo de análise — caminhos relativos completos}
|
|
435
|
-
|
|
436
|
-
[Se não houver specs externas: "Sem specs externas — requisitos totalmente capturados nas decisões acima"]
|
|
437
|
-
</canonical_refs>
|
|
438
|
-
|
|
439
|
-
<code_context>
|
|
440
|
-
## Insights do Código Existente
|
|
441
|
-
|
|
442
|
-
### Ativos Reutilizáveis
|
|
443
|
-
{Do scout de base de código + achados do subagente Explore}
|
|
444
|
-
|
|
445
|
-
### Padrões Estabelecidos
|
|
446
|
-
{Padrões que restringem/habilitam esta fase}
|
|
447
|
-
|
|
448
|
-
### Pontos de Integração
|
|
449
|
-
{Onde o novo código se conecta ao sistema existente}
|
|
450
|
-
</code_context>
|
|
451
|
-
|
|
452
|
-
<specifics>
|
|
453
|
-
## Ideias Específicas
|
|
454
|
-
|
|
455
|
-
{Quaisquer referências particulares das correções ou input do usuário}
|
|
456
|
-
|
|
457
|
-
[Se nenhuma: "Sem requisitos específicos — aberto a abordagens padrão"]
|
|
458
|
-
</specifics>
|
|
459
|
-
|
|
460
|
-
<deferred>
|
|
461
|
-
## Ideias Adiadas
|
|
462
|
-
|
|
463
|
-
{Ideias mencionadas durante correções que estão fora do escopo}
|
|
464
|
-
|
|
465
|
-
### Todos Revisados (não dobrados)
|
|
466
|
-
{Todos revisados mas não dobrados — com motivo}
|
|
467
|
-
|
|
468
|
-
[Se nenhum: "Nenhum — análise permaneceu dentro do escopo da fase"]
|
|
469
|
-
</deferred>
|
|
470
|
-
```
|
|
471
|
-
|
|
472
|
-
Escrever arquivo.
|
|
473
|
-
</step>
|
|
474
|
-
|
|
475
|
-
<step name="write_discussion_log">
|
|
476
|
-
Escrever trilha de auditoria das premissas e correções.
|
|
477
|
-
|
|
478
|
-
**Arquivo:** `${phase_dir}/${padded_phase}-DISCUSSION-LOG.md`
|
|
479
|
-
|
|
480
|
-
```markdown
|
|
481
|
-
# Fase {PHASE}: {phase_name} - Log de Discussão (Modo Assumptions)
|
|
482
|
-
|
|
483
|
-
> **Apenas trilha de auditoria.** Não usar como input para agentes de planejamento, pesquisa ou execução.
|
|
484
|
-
> Decisões capturadas no CONTEXT.md — este log preserva a análise.
|
|
485
|
-
|
|
486
|
-
**Data:** {data ISO}
|
|
487
|
-
**Fase:** {padded_phase}-{phase_name}
|
|
488
|
-
**Modo:** assumptions
|
|
489
|
-
**Áreas analisadas:** {nomes de área separados por vírgula}
|
|
490
|
-
|
|
491
|
-
## Premissas Apresentadas
|
|
492
|
-
|
|
493
|
-
### {Nome da Área}
|
|
494
|
-
| Premissa | Confiança | Evidência |
|
|
495
|
-
|----------|-----------|-----------|
|
|
496
|
-
| {Declaração} | {Confiante/Provável/Incerto} | {caminhos de arquivo} |
|
|
497
|
-
|
|
498
|
-
{Repetir para cada área}
|
|
499
|
-
|
|
500
|
-
## Correções Feitas
|
|
501
|
-
|
|
502
|
-
{Se correções foram feitas:}
|
|
503
|
-
|
|
504
|
-
### {Nome da Área}
|
|
505
|
-
- **Premissa original:** {o que Claude assumiu}
|
|
506
|
-
- **Correção do usuário:** {o que o usuário escolheu em vez disso}
|
|
507
|
-
- **Motivo:** {raciocínio do usuário, se fornecido}
|
|
508
|
-
|
|
509
|
-
{Se nenhuma correção: "Sem correções — todas as premissas confirmadas."}
|
|
510
|
-
|
|
511
|
-
## Auto-Resolvido
|
|
512
|
-
|
|
513
|
-
{Se --auto e itens Incertos existiam:}
|
|
514
|
-
- {Premissa}: auto-selecionou {opção recomendada}
|
|
515
|
-
|
|
516
|
-
{Se não aplicável: omitir esta seção}
|
|
517
|
-
|
|
518
|
-
## Pesquisa Externa
|
|
519
|
-
|
|
520
|
-
{Se pesquisa foi realizada:}
|
|
521
|
-
- {Tópico}: {Achado} (Fonte: {URL})
|
|
522
|
-
|
|
523
|
-
{Se nenhuma pesquisa: omitir esta seção}
|
|
524
|
-
```
|
|
525
|
-
|
|
526
|
-
Escrever arquivo.
|
|
527
|
-
</step>
|
|
528
|
-
|
|
529
|
-
<step name="git_commit">
|
|
530
|
-
Commitar contexto da fase e log de discussão:
|
|
531
|
-
|
|
532
|
-
```bash
|
|
533
|
-
node "./.claude/framework/bin/tools.cjs" commit "docs(${padded_phase}): capturar contexto da fase (modo assumptions)" --files "${phase_dir}/${padded_phase}-CONTEXT.md" "${phase_dir}/${padded_phase}-DISCUSSION-LOG.md"
|
|
534
|
-
```
|
|
535
|
-
|
|
536
|
-
Confirmar: "Commitado: docs(${padded_phase}): capturar contexto da fase (modo assumptions)"
|
|
537
|
-
</step>
|
|
538
|
-
|
|
539
|
-
<step name="update_state">
|
|
540
|
-
Atualizar STATE.md com informações da sessão:
|
|
541
|
-
|
|
542
|
-
```bash
|
|
543
|
-
node "./.claude/framework/bin/tools.cjs" state record-session \
|
|
544
|
-
--stopped-at "Contexto da Fase ${PHASE} coletado (modo assumptions)" \
|
|
545
|
-
--resume-file "${phase_dir}/${padded_phase}-CONTEXT.md"
|
|
546
|
-
```
|
|
547
|
-
|
|
548
|
-
Commitar STATE.md:
|
|
549
|
-
|
|
550
|
-
```bash
|
|
551
|
-
node "./.claude/framework/bin/tools.cjs" commit "docs(state): registrar sessão de contexto da fase ${PHASE}" --files .planning/STATE.md
|
|
552
|
-
```
|
|
553
|
-
</step>
|
|
554
|
-
|
|
555
|
-
<step name="confirm_creation">
|
|
556
|
-
Apresentar resumo e próximos passos:
|
|
557
|
-
|
|
558
|
-
```
|
|
559
|
-
Criado: .planning/phases/${PADDED_PHASE}-${SLUG}/${PADDED_PHASE}-CONTEXT.md
|
|
560
|
-
|
|
561
|
-
## Decisões Capturadas (Modo Assumptions)
|
|
562
|
-
|
|
563
|
-
### {Nome da Área}
|
|
564
|
-
- {Decisão-chave} (de premissa / corrigida)
|
|
565
|
-
|
|
566
|
-
{Repetir por área}
|
|
567
|
-
|
|
568
|
-
[Se correções foram feitas:]
|
|
569
|
-
## Correções Aplicadas
|
|
570
|
-
- {Área}: {original} → {corrigido}
|
|
571
|
-
|
|
572
|
-
[Se ideias adiadas existirem:]
|
|
573
|
-
## Anotado para Depois
|
|
574
|
-
- {Ideia adiada} — fase futura
|
|
575
|
-
|
|
576
|
-
---
|
|
577
|
-
|
|
578
|
-
## ▶ Próximo Passo
|
|
579
|
-
|
|
580
|
-
**Fase ${PHASE}: {phase_name}** — {Objetivo do ROADMAP.md}
|
|
581
|
-
|
|
582
|
-
`/planejar-fase ${PHASE}`
|
|
583
|
-
|
|
584
|
-
<sub>`/clear` primeiro → janela de contexto fresca</sub>
|
|
585
|
-
|
|
586
|
-
---
|
|
587
|
-
|
|
588
|
-
**Também disponível:**
|
|
589
|
-
- `/planejar-fase ${PHASE} --skip-research` — planejar sem pesquisa
|
|
590
|
-
- `/fase-ui ${PHASE}` — gerar contrato de design UI (se trabalho de frontend)
|
|
591
|
-
- Revisar/editar CONTEXT.md antes de continuar
|
|
592
|
-
|
|
593
|
-
---
|
|
594
|
-
```
|
|
595
|
-
</step>
|
|
596
|
-
|
|
597
|
-
<step name="auto_advance">
|
|
598
|
-
Verificar gatilho de avanço automático:
|
|
599
|
-
|
|
600
|
-
1. Analisar flag `--auto` de $ARGUMENTS
|
|
601
|
-
2. Flag de cadeia de sincronização:
|
|
602
|
-
```bash
|
|
603
|
-
if [[ ! "$ARGUMENTS" =~ --auto ]]; then
|
|
604
|
-
node "./.claude/framework/bin/tools.cjs" config-set workflow._auto_chain_active false 2>/dev/null
|
|
605
|
-
fi
|
|
606
|
-
```
|
|
607
|
-
3. Ler flag de cadeia e preferência do usuário:
|
|
608
|
-
```bash
|
|
609
|
-
AUTO_CHAIN=$(node "./.claude/framework/bin/tools.cjs" config-get workflow._auto_chain_active 2>/dev/null || echo "false")
|
|
610
|
-
AUTO_CFG=$(node "./.claude/framework/bin/tools.cjs" config-get workflow.auto_advance 2>/dev/null || echo "false")
|
|
611
|
-
```
|
|
612
|
-
|
|
613
|
-
**Se flag `--auto` presente E `AUTO_CHAIN` não for verdadeiro:**
|
|
614
|
-
```bash
|
|
615
|
-
node "./.claude/framework/bin/tools.cjs" config-set workflow._auto_chain_active true
|
|
616
|
-
```
|
|
617
|
-
|
|
618
|
-
**Se flag `--auto` presente OU `AUTO_CHAIN` for verdadeiro OU `AUTO_CFG` for verdadeiro:**
|
|
619
|
-
|
|
620
|
-
Exibir banner:
|
|
621
|
-
```
|
|
622
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
623
|
-
framework ► AVANÇANDO AUTOMATICAMENTE PARA PLANEJAMENTO
|
|
624
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
625
|
-
|
|
626
|
-
Contexto capturado (modo assumptions). Iniciando plan-phase...
|
|
627
|
-
```
|
|
628
|
-
|
|
629
|
-
Iniciar: `Skill(skill="framework:planejar-fase", args="${PHASE} --auto")`
|
|
630
|
-
|
|
631
|
-
Tratar retorno: PHASE COMPLETE / PLANNING COMPLETE / INCONCLUSIVE / GAPS FOUND
|
|
632
|
-
(tratamento idêntico ao passo auto_advance do discuss-phase.md)
|
|
633
|
-
|
|
634
|
-
**Se nem `--auto` nem config habilitado:**
|
|
635
|
-
Rotear para o passo confirm_creation.
|
|
636
|
-
</step>
|
|
637
|
-
|
|
638
|
-
</process>
|
|
639
|
-
|
|
640
|
-
<success_criteria>
|
|
641
|
-
- Fase validada contra o roadmap
|
|
642
|
-
- Contexto anterior carregado (sem re-fazer perguntas já decididas)
|
|
643
|
-
- Base de código profundamente analisada via subagente Explore (5-15 arquivos lidos)
|
|
644
|
-
- Premissas surfaçadas com evidências e níveis de confiança
|
|
645
|
-
- Usuário confirmou ou corrigiu premissas (~2-4 interações no máximo)
|
|
646
|
-
- Expansão de escopo redirecionada para ideias adiadas
|
|
647
|
-
- CONTEXT.md captura decisões reais (formato idêntico ao modo discuss)
|
|
648
|
-
- CONTEXT.md inclui canonical_refs com caminhos completos de arquivo (OBRIGATÓRIO)
|
|
649
|
-
- CONTEXT.md inclui code_context da análise de base de código
|
|
650
|
-
- DISCUSSION-LOG.md registra premissas e correções como trilha de auditoria
|
|
651
|
-
- STATE.md atualizado com informações da sessão
|
|
652
|
-
- Usuário conhece os próximos passos
|
|
653
|
-
</success_criteria>
|
|
1
|
+
<purpose>
|
|
2
|
+
Extrair decisões de implementação que agentes downstream precisam — usando análise primeiro da base de código
|
|
3
|
+
e surfacing de premissas em vez de questionamento estilo entrevista.
|
|
4
|
+
|
|
5
|
+
Você é um parceiro de pensamento, não um entrevistador. Analise a base de código profundamente, surfeie o que
|
|
6
|
+
você acredita com base em evidências, e pergunte ao usuário apenas para corrigir o que está errado.
|
|
7
|
+
</purpose>
|
|
8
|
+
|
|
9
|
+
<available_agent_types>
|
|
10
|
+
Tipos de subagentes framework válidos (use nomes exatos — não use 'general-purpose' como fallback):
|
|
11
|
+
- assumptions-analyzer — Analisa a base de código para surfaçar premissas de implementação
|
|
12
|
+
</available_agent_types>
|
|
13
|
+
|
|
14
|
+
<downstream_awareness>
|
|
15
|
+
**CONTEXT.md alimenta:**
|
|
16
|
+
|
|
17
|
+
1. **phase-researcher** — Lê CONTEXT.md para saber O QUE pesquisar
|
|
18
|
+
2. **planner** — Lê CONTEXT.md para saber QUAIS decisões estão bloqueadas
|
|
19
|
+
|
|
20
|
+
**Seu trabalho:** Capturar decisões de forma clara o suficiente para que agentes downstream possam agir sobre elas
|
|
21
|
+
sem perguntar ao usuário novamente. A saída é idêntica ao modo discuss — mesmo formato CONTEXT.md.
|
|
22
|
+
</downstream_awareness>
|
|
23
|
+
|
|
24
|
+
<philosophy>
|
|
25
|
+
**Filosofia do modo assumptions:**
|
|
26
|
+
|
|
27
|
+
O usuário é um visionário, não um arqueólogo de base de código. Eles precisam de contexto suficiente para avaliar
|
|
28
|
+
se suas premissas correspondem à intenção deles — não para responder perguntas que você poderia descobrir
|
|
29
|
+
lendo o código.
|
|
30
|
+
|
|
31
|
+
- Leia a base de código PRIMEIRO, forme opiniões SEGUNDO, pergunte APENAS sobre o que é genuinamente incerto
|
|
32
|
+
- Cada premissa deve citar evidências (caminhos de arquivo, padrões encontrados)
|
|
33
|
+
- Cada premissa deve declarar consequências se estiver errada
|
|
34
|
+
- Minimize interações com o usuário: ~2-4 correções vs ~15-20 perguntas
|
|
35
|
+
</philosophy>
|
|
36
|
+
|
|
37
|
+
<scope_guardrail>
|
|
38
|
+
**CRÍTICO: Sem expansão de escopo.**
|
|
39
|
+
|
|
40
|
+
O limite da fase vem do ROADMAP.md e é FIXO. A discussão esclarece COMO implementar
|
|
41
|
+
o que está no escopo, nunca SE adicionar novas capacidades.
|
|
42
|
+
|
|
43
|
+
Quando o usuário sugere expansão de escopo:
|
|
44
|
+
"[Funcionalidade X] seria uma nova capacidade — isso é sua própria fase.
|
|
45
|
+
Quer que eu anote para o backlog do roadmap? Por enquanto, vamos focar em [domínio da fase]."
|
|
46
|
+
|
|
47
|
+
Capturar a ideia em "Ideias Adiadas". Não perder, não agir.
|
|
48
|
+
</scope_guardrail>
|
|
49
|
+
|
|
50
|
+
<answer_validation>
|
|
51
|
+
**IMPORTANTE: Validação de resposta** — Após cada chamada AskUserQuestion, verificar se a resposta
|
|
52
|
+
está vazia ou apenas com espaços em branco. Se sim:
|
|
53
|
+
1. Tentar a pergunta novamente uma vez com os mesmos parâmetros
|
|
54
|
+
2. Se ainda vazia, apresentar as opções como uma lista numerada em texto simples
|
|
55
|
+
|
|
56
|
+
**Modo texto (`workflow.text_mode: true` na config ou flag `--text`):**
|
|
57
|
+
Quando o modo texto estiver ativo, não usar AskUserQuestion de forma alguma. Apresentar cada pergunta como uma
|
|
58
|
+
lista numerada em texto simples e pedir ao usuário que digite o número da escolha.
|
|
59
|
+
</answer_validation>
|
|
60
|
+
|
|
61
|
+
<process>
|
|
62
|
+
|
|
63
|
+
<step name="initialize" priority="first">
|
|
64
|
+
Número da fase do argumento (obrigatório).
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
INIT=$(node "./.claude/framework/bin/tools.cjs" init phase-op "${PHASE}")
|
|
68
|
+
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
69
|
+
AGENT_SKILLS_ANALYZER=$(node "./.claude/framework/bin/tools.cjs" agent-skills assumptions-analyzer 2>/dev/null)
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Analisar JSON para: `commit_docs`, `phase_found`, `phase_dir`, `phase_number`, `phase_name`,
|
|
73
|
+
`phase_slug`, `padded_phase`, `has_research`, `has_context`, `has_plans`, `has_verification`,
|
|
74
|
+
`plan_count`, `roadmap_exists`, `planning_exists`.
|
|
75
|
+
|
|
76
|
+
**Se `phase_found` for falso:**
|
|
77
|
+
```
|
|
78
|
+
Fase [X] não encontrada no roadmap.
|
|
79
|
+
|
|
80
|
+
Use /progresso para ver as fases disponíveis.
|
|
81
|
+
```
|
|
82
|
+
Sair do workflow.
|
|
83
|
+
|
|
84
|
+
**Se `phase_found` for verdadeiro:** Continuar para check_existing.
|
|
85
|
+
|
|
86
|
+
**Modo auto** — Se `--auto` estiver presente em ARGUMENTS:
|
|
87
|
+
- Em `check_existing`: auto-selecionar "Atualizar" (se contexto existe) ou continuar sem perguntar
|
|
88
|
+
- Em `present_assumptions`: pular portão de confirmação, prosseguir diretamente para escrever CONTEXT.md
|
|
89
|
+
- Em `correct_assumptions`: auto-selecionar opção recomendada para cada correção
|
|
90
|
+
- Registrar cada escolha auto-selecionada inline
|
|
91
|
+
- Após conclusão, avançar automaticamente para plan-phase
|
|
92
|
+
</step>
|
|
93
|
+
|
|
94
|
+
<step name="check_existing">
|
|
95
|
+
Verificar se CONTEXT.md já existe usando `has_context` do init.
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
ls ${phase_dir}/*-CONTEXT.md 2>/dev/null || true
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
**Se existir:**
|
|
102
|
+
|
|
103
|
+
**Se `--auto`:** Auto-selecionar "Atualizar". Registrar: `[auto] Contexto existe — atualizando com análise baseada em premissas.`
|
|
104
|
+
|
|
105
|
+
**Caso contrário:** Usar AskUserQuestion:
|
|
106
|
+
- header: "Contexto"
|
|
107
|
+
- question: "A Fase [X] já tem contexto. O que você quer fazer?"
|
|
108
|
+
- options:
|
|
109
|
+
- "Atualizar" — Re-analisar base de código e atualizar premissas
|
|
110
|
+
- "Ver" — Mostrar o que está lá
|
|
111
|
+
- "Pular" — Usar contexto existente como está
|
|
112
|
+
|
|
113
|
+
Se "Atualizar": Carregar existente, continuar para load_prior_context
|
|
114
|
+
Se "Ver": Exibir CONTEXT.md, então oferecer atualizar/pular
|
|
115
|
+
Se "Pular": Sair do workflow
|
|
116
|
+
|
|
117
|
+
**Se não existir:**
|
|
118
|
+
|
|
119
|
+
Verificar `has_plans` e `plan_count` do init. **Se `has_plans` for verdadeiro:**
|
|
120
|
+
|
|
121
|
+
**Se `--auto`:** Auto-selecionar "Continuar e replanejar depois". Registrar: `[auto] Planos existem — continuando com análise de premissas, replanejará depois.`
|
|
122
|
+
|
|
123
|
+
**Caso contrário:** Usar AskUserQuestion:
|
|
124
|
+
- header: "Planos existem"
|
|
125
|
+
- question: "A Fase [X] já tem {plan_count} plano(s) criado(s) sem contexto do usuário. Suas decisões aqui não afetarão planos existentes a menos que você replaneje."
|
|
126
|
+
- options:
|
|
127
|
+
- "Continuar e replanejar depois"
|
|
128
|
+
- "Ver planos existentes"
|
|
129
|
+
- "Cancelar"
|
|
130
|
+
|
|
131
|
+
Se "Continuar e replanejar depois": Continuar para load_prior_context.
|
|
132
|
+
Se "Ver planos existentes": Exibir arquivos de plano, então oferecer "Continuar" / "Cancelar".
|
|
133
|
+
Se "Cancelar": Sair do workflow.
|
|
134
|
+
|
|
135
|
+
**Se `has_plans` for falso:** Continuar para load_prior_context.
|
|
136
|
+
</step>
|
|
137
|
+
|
|
138
|
+
<step name="load_prior_context">
|
|
139
|
+
Ler contexto de nível de projeto e fase anterior para evitar re-fazer perguntas já decididas.
|
|
140
|
+
|
|
141
|
+
**Passo 1: Ler arquivos de nível de projeto**
|
|
142
|
+
```bash
|
|
143
|
+
cat .planning/PROJECT.md 2>/dev/null || true
|
|
144
|
+
cat .planning/REQUIREMENTS.md 2>/dev/null || true
|
|
145
|
+
cat .planning/STATE.md 2>/dev/null || true
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
Extrair destes:
|
|
149
|
+
- **PROJECT.md** — Visão, princípios, não-negociáveis, preferências do usuário
|
|
150
|
+
- **REQUIREMENTS.md** — Critérios de aceitação, restrições
|
|
151
|
+
- **STATE.md** — Progresso atual, quaisquer flags
|
|
152
|
+
|
|
153
|
+
**Passo 2: Ler todos os arquivos CONTEXT.md anteriores**
|
|
154
|
+
```bash
|
|
155
|
+
(find .planning/phases -name "*-CONTEXT.md" 2>/dev/null || true) | sort
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
Para cada CONTEXT.md onde o número da fase < fase atual:
|
|
159
|
+
- Ler a seção `<decisions>` — estas são preferências bloqueadas
|
|
160
|
+
- Ler `<specifics>` — referências particulares ou momentos "eu quero como X"
|
|
161
|
+
- Notar padrões (ex: "usuário consistentemente prefere UI mínima")
|
|
162
|
+
|
|
163
|
+
**Passo 3: Construir contexto interno `<prior_decisions>`**
|
|
164
|
+
|
|
165
|
+
Estruturar as informações extraídas para uso na geração de premissas.
|
|
166
|
+
|
|
167
|
+
**Se nenhum contexto anterior existir:** Continuar sem — esperado para fases iniciais.
|
|
168
|
+
</step>
|
|
169
|
+
|
|
170
|
+
<step name="cross_reference_todos">
|
|
171
|
+
Verificar se algum todo pendente é relevante para o escopo desta fase.
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
TODO_MATCHES=$(node "./.claude/framework/bin/tools.cjs" todo match-phase "${PHASE_NUMBER}")
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
Analisar JSON para: `todo_count`, `matches[]`.
|
|
178
|
+
|
|
179
|
+
**Se `todo_count` for 0:** Pular silenciosamente.
|
|
180
|
+
|
|
181
|
+
**Se correspondências encontradas:** Apresentar todos correspondentes, usar AskUserQuestion (multiSelect) para dobrar os relevantes no escopo.
|
|
182
|
+
|
|
183
|
+
**Para todos selecionados (dobrados):** Armazenar como `<folded_todos>` para a seção `<decisions>` do CONTEXT.md.
|
|
184
|
+
**Para não selecionados:** Armazenar como `<reviewed_todos>` para a seção `<deferred>` do CONTEXT.md.
|
|
185
|
+
|
|
186
|
+
**Modo auto (`--auto`):** Dobrar automaticamente todos os todos com score >= 0.4. Registrar a seleção.
|
|
187
|
+
</step>
|
|
188
|
+
|
|
189
|
+
<step name="scout_codebase">
|
|
190
|
+
Varredura leve do código existente para informar a geração de premissas.
|
|
191
|
+
|
|
192
|
+
**Passo 1: Verificar mapas de base de código existentes**
|
|
193
|
+
```bash
|
|
194
|
+
ls .planning/codebase/*.md 2>/dev/null || true
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
**Se mapas de base de código existirem:** Ler os relevantes (CONVENTIONS.md, STRUCTURE.md, STACK.md). Extrair componentes reutilizáveis, padrões, pontos de integração. Pular para o Passo 3.
|
|
198
|
+
|
|
199
|
+
**Passo 2: Se não houver mapas de base de código, fazer grep direcionado**
|
|
200
|
+
|
|
201
|
+
Extrair termos-chave do objetivo da fase, buscar arquivos relacionados.
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
grep -rl "{termo1}\|{termo2}" src/ app/ --include="*.ts" --include="*.tsx" 2>/dev/null | head -10
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
Ler os 3-5 arquivos mais relevantes.
|
|
208
|
+
|
|
209
|
+
**Passo 3: Construir `<codebase_context>` interno**
|
|
210
|
+
|
|
211
|
+
Identificar ativos reutilizáveis, padrões estabelecidos, pontos de integração e opções criativas. Armazenar internamente para uso em deep_codebase_analysis.
|
|
212
|
+
</step>
|
|
213
|
+
|
|
214
|
+
<step name="deep_codebase_analysis">
|
|
215
|
+
Criar um agente `assumptions-analyzer` para analisar profundamente a base de código para esta fase. Isso
|
|
216
|
+
mantém conteúdos brutos de arquivos fora da janela de contexto principal, protegendo o orçamento de tokens.
|
|
217
|
+
|
|
218
|
+
**Resolver tier de calibração (se USER-PROFILE.md existir):**
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
PROFILE_PATH="./.claude/framework/USER-PROFILE.md"
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
Se o arquivo existir em PROFILE_PATH:
|
|
225
|
+
- Prioridade 1: Ler config.json > preferences.vendor_philosophy (substituição de nível de projeto)
|
|
226
|
+
- Prioridade 2: Ler avaliação de Vendor Choices/Philosophy do USER-PROFILE.md (global)
|
|
227
|
+
- Prioridade 3: Padrão para "standard"
|
|
228
|
+
|
|
229
|
+
Mapear para tier de calibração:
|
|
230
|
+
- conservative OU thorough-evaluator → full_maturity (mais alternativas, evidência detalhada)
|
|
231
|
+
- opinionated → minimal_decisive (menos alternativas, recomendações decisivas)
|
|
232
|
+
- pragmatic-fast OU qualquer outro valor → standard
|
|
233
|
+
|
|
234
|
+
Se não houver USER-PROFILE.md: calibration_tier = "standard"
|
|
235
|
+
|
|
236
|
+
**Criar subagente Explore:**
|
|
237
|
+
|
|
238
|
+
```
|
|
239
|
+
Task(subagent_type="assumptions-analyzer", prompt="""
|
|
240
|
+
Analisar a base de código para a Fase {PHASE}: {phase_name}.
|
|
241
|
+
|
|
242
|
+
Objetivo da fase: {roadmap_description}
|
|
243
|
+
Decisões anteriores: {prior_decisions_summary}
|
|
244
|
+
Dicas do scout de base de código: {codebase_context_summary}
|
|
245
|
+
Calibração: {calibration_tier}
|
|
246
|
+
|
|
247
|
+
Seu trabalho:
|
|
248
|
+
1. Ler descrição da fase {PHASE} do ROADMAP.md
|
|
249
|
+
2. Ler quaisquer arquivos CONTEXT.md anteriores de fases anteriores
|
|
250
|
+
3. Glob/Grep para arquivos relacionados a: {phase_relevant_terms}
|
|
251
|
+
4. Ler 5-15 arquivos fonte mais relevantes
|
|
252
|
+
5. Retornar premissas estruturadas
|
|
253
|
+
|
|
254
|
+
## Formato de Saída
|
|
255
|
+
|
|
256
|
+
Retornar EXATAMENTE esta estrutura:
|
|
257
|
+
|
|
258
|
+
## Premissas
|
|
259
|
+
|
|
260
|
+
### [Nome da Área] (ex: "Abordagem Técnica")
|
|
261
|
+
- **Premissa:** [Declaração de decisão]
|
|
262
|
+
- **Por quê desta forma:** [Evidência da base de código — citar caminhos de arquivo]
|
|
263
|
+
- **Se errado:** [Consequência concreta de estar errado]
|
|
264
|
+
- **Confiança:** Confiante | Provável | Incerto
|
|
265
|
+
|
|
266
|
+
(3-5 áreas, calibradas por tier:
|
|
267
|
+
- full_maturity: 3-5 áreas, 2-3 alternativas por item Provável/Incerto
|
|
268
|
+
- standard: 3-4 áreas, 2 alternativas por item Provável/Incerto
|
|
269
|
+
- minimal_decisive: 2-3 áreas, recomendação única decisiva por item)
|
|
270
|
+
|
|
271
|
+
## Precisa de Pesquisa Externa
|
|
272
|
+
[Tópicos onde a base de código sozinha é insuficiente — compatibilidade de versão de biblioteca,
|
|
273
|
+
melhores práticas do ecossistema, etc. Deixar vazio se a base de código fornece evidência suficiente.]
|
|
274
|
+
|
|
275
|
+
${AGENT_SKILLS_ANALYZER}
|
|
276
|
+
""")
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
Analisar a resposta do subagente. Extrair:
|
|
280
|
+
- `assumptions[]` — cada um com área, declaração, evidência, consequência, confiança
|
|
281
|
+
- `needs_research[]` — tópicos que requerem pesquisa externa (pode estar vazio)
|
|
282
|
+
|
|
283
|
+
**Inicializar acumulador de refs canônicas:**
|
|
284
|
+
- Fonte 1: Copiar `Canonical refs:` do ROADMAP.md para esta fase, expandir para caminhos completos
|
|
285
|
+
- Fonte 2: Verificar REQUIREMENTS.md e PROJECT.md para specs/ADRs referenciados
|
|
286
|
+
- Fonte 3: Adicionar quaisquer docs referenciados nos resultados do scout de base de código
|
|
287
|
+
</step>
|
|
288
|
+
|
|
289
|
+
<step name="external_research">
|
|
290
|
+
**Pular se:** `needs_research` do deep_codebase_analysis estiver vazio.
|
|
291
|
+
|
|
292
|
+
Se tópicos de pesquisa foram sinalizados, criar um agente de pesquisa geral:
|
|
293
|
+
|
|
294
|
+
```
|
|
295
|
+
Task(subagent_type="general-purpose", prompt="""
|
|
296
|
+
Pesquisar os seguintes tópicos para a Fase {PHASE}: {phase_name}.
|
|
297
|
+
|
|
298
|
+
Tópicos precisando de pesquisa:
|
|
299
|
+
{needs_research_content}
|
|
300
|
+
|
|
301
|
+
Para cada tópico, retornar:
|
|
302
|
+
- **Achado:** [O que você aprendeu]
|
|
303
|
+
- **Fonte:** [URL ou referência de docs de biblioteca]
|
|
304
|
+
- **Impacto na confiança:** [Qual premissa isso resolve e para qual nível de confiança]
|
|
305
|
+
|
|
306
|
+
Use Context7 (resolve-library-id então query-docs) para perguntas específicas de biblioteca.
|
|
307
|
+
Use WebSearch para perguntas de ecossistema/melhores práticas.
|
|
308
|
+
""")
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
Mesclar achados de volta nas premissas:
|
|
312
|
+
- Atualizar níveis de confiança onde a pesquisa resolve ambiguidade
|
|
313
|
+
- Adicionar atribuição de fonte às premissas afetadas
|
|
314
|
+
- Armazenar achados de pesquisa para DISCUSSION-LOG.md
|
|
315
|
+
|
|
316
|
+
**Se nenhuma lacuna sinalizada:** Pular completamente. A maioria das fases pulará esta etapa.
|
|
317
|
+
</step>
|
|
318
|
+
|
|
319
|
+
<step name="present_assumptions">
|
|
320
|
+
Exibir todas as premissas agrupadas por área com badges de confiança.
|
|
321
|
+
|
|
322
|
+
**Formato para exibição:**
|
|
323
|
+
|
|
324
|
+
```
|
|
325
|
+
## Fase {PHASE}: {phase_name} — Premissas
|
|
326
|
+
|
|
327
|
+
Com base na análise da base de código, aqui está o que eu usaria:
|
|
328
|
+
|
|
329
|
+
### {Nome da Área}
|
|
330
|
+
{Badge de confiança} **{Declaração de premissa}**
|
|
331
|
+
↳ Evidência: {caminhos de arquivo citados}
|
|
332
|
+
↳ Se errado: {consequência}
|
|
333
|
+
|
|
334
|
+
### {Nome da Área 2}
|
|
335
|
+
...
|
|
336
|
+
|
|
337
|
+
[Se pesquisa externa foi realizada:]
|
|
338
|
+
### Pesquisa Externa Aplicada
|
|
339
|
+
- {Tópico}: {Achado} (Fonte: {URL})
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
**Se `--auto`:**
|
|
343
|
+
- Se todas as premissas são Confiante ou Provável: registrar premissas, pular para write_context.
|
|
344
|
+
Registrar: `[auto] Todas as premissas Confiante/Provável — prosseguindo para captura de contexto.`
|
|
345
|
+
- Se alguma premissa é Incerto: registrar um aviso, auto-selecionar alternativa recomendada para
|
|
346
|
+
cada item Incerto. Registrar: `[auto] {N} premissas Incertas auto-resolvidas com padrões recomendados.`
|
|
347
|
+
Prosseguir para write_context.
|
|
348
|
+
|
|
349
|
+
**Caso contrário:** Usar AskUserQuestion:
|
|
350
|
+
- header: "Premissas"
|
|
351
|
+
- question: "Tudo parece correto?"
|
|
352
|
+
- options:
|
|
353
|
+
- "Sim, prosseguir" — Escrever CONTEXT.md com estas premissas como decisões
|
|
354
|
+
- "Deixe-me corrigir algumas" — Selecionar quais premissas mudar
|
|
355
|
+
|
|
356
|
+
**Se "Sim, prosseguir":** Pular para write_context.
|
|
357
|
+
**Se "Deixe-me corrigir algumas":** Continuar para correct_assumptions.
|
|
358
|
+
</step>
|
|
359
|
+
|
|
360
|
+
<step name="correct_assumptions">
|
|
361
|
+
As premissas já estão exibidas acima do present_assumptions.
|
|
362
|
+
|
|
363
|
+
Apresentar um multiSelect onde o rótulo de cada opção é a declaração de premissa e a descrição
|
|
364
|
+
é a consequência "Se errado":
|
|
365
|
+
|
|
366
|
+
Usar AskUserQuestion (multiSelect):
|
|
367
|
+
- header: "Correções"
|
|
368
|
+
- question: "Quais premissas precisam de correção?"
|
|
369
|
+
- options: [uma por premissa, rótulo = declaração de premissa, descrição = "Se errado: {consequência}"]
|
|
370
|
+
|
|
371
|
+
Para cada correção selecionada, fazer UMA pergunta focada:
|
|
372
|
+
|
|
373
|
+
Usar AskUserQuestion:
|
|
374
|
+
- header: "{Nome da Área}"
|
|
375
|
+
- question: "O que devemos fazer em vez disso para: {declaração de premissa}?"
|
|
376
|
+
- options: [2-3 alternativas concretas descrevendo resultados visíveis ao usuário, opção recomendada primeiro]
|
|
377
|
+
|
|
378
|
+
Registrar cada correção:
|
|
379
|
+
- Premissa original
|
|
380
|
+
- Alternativa escolhida pelo usuário
|
|
381
|
+
- Motivo (se fornecido via texto livre "Outro")
|
|
382
|
+
|
|
383
|
+
Após todas as correções processadas, continuar para write_context com premissas atualizadas.
|
|
384
|
+
|
|
385
|
+
**Modo auto:** Não deve atingir esta etapa (--auto pula de present_assumptions).
|
|
386
|
+
</step>
|
|
387
|
+
|
|
388
|
+
<step name="write_context">
|
|
389
|
+
Criar diretório de fase se necessário. Escrever CONTEXT.md usando o formato padrão de 6 seções.
|
|
390
|
+
|
|
391
|
+
**Arquivo:** `${phase_dir}/${padded_phase}-CONTEXT.md`
|
|
392
|
+
|
|
393
|
+
Mapear premissas para seções do CONTEXT.md:
|
|
394
|
+
- Premissas → `<decisions>` (cada premissa se torna uma decisão bloqueada: D-01, D-02, etc.)
|
|
395
|
+
- Correções → substituir a premissa original em `<decisions>`
|
|
396
|
+
- Áreas onde todas as premissas eram Confiante → marcadas como decisões bloqueadas
|
|
397
|
+
- Áreas com correções → incluir alternativa escolhida pelo usuário como a decisão
|
|
398
|
+
- Todos dobrados → incluídos em `<decisions>` em "### Todos Dobrados"
|
|
399
|
+
|
|
400
|
+
```markdown
|
|
401
|
+
# Fase {PHASE}: {phase_name} - Contexto
|
|
402
|
+
|
|
403
|
+
**Coletado:** {data} (modo assumptions)
|
|
404
|
+
**Status:** Pronto para planejamento
|
|
405
|
+
|
|
406
|
+
<domain>
|
|
407
|
+
## Limite da Fase
|
|
408
|
+
|
|
409
|
+
{Limite de domínio do ROADMAP.md — declaração clara de âncora de escopo}
|
|
410
|
+
</domain>
|
|
411
|
+
|
|
412
|
+
<decisions>
|
|
413
|
+
## Decisões de Implementação
|
|
414
|
+
|
|
415
|
+
### {Nome da Área 1}
|
|
416
|
+
- **D-01:** {Decisão — de premissa ou correção}
|
|
417
|
+
- **D-02:** {Decisão}
|
|
418
|
+
|
|
419
|
+
### {Nome da Área 2}
|
|
420
|
+
- **D-03:** {Decisão}
|
|
421
|
+
|
|
422
|
+
### Discrição do Claude
|
|
423
|
+
{Quaisquer premissas onde o usuário confirmou "você decide" ou deixou como está com confiança Provável}
|
|
424
|
+
|
|
425
|
+
### Todos Dobrados
|
|
426
|
+
{Se algum todo foi dobrado no escopo}
|
|
427
|
+
</decisions>
|
|
428
|
+
|
|
429
|
+
<canonical_refs>
|
|
430
|
+
## Referências Canônicas
|
|
431
|
+
|
|
432
|
+
**Agentes downstream DEVEM ler estas antes de planejar ou implementar.**
|
|
433
|
+
|
|
434
|
+
{Refs canônicas acumuladas do passo de análise — caminhos relativos completos}
|
|
435
|
+
|
|
436
|
+
[Se não houver specs externas: "Sem specs externas — requisitos totalmente capturados nas decisões acima"]
|
|
437
|
+
</canonical_refs>
|
|
438
|
+
|
|
439
|
+
<code_context>
|
|
440
|
+
## Insights do Código Existente
|
|
441
|
+
|
|
442
|
+
### Ativos Reutilizáveis
|
|
443
|
+
{Do scout de base de código + achados do subagente Explore}
|
|
444
|
+
|
|
445
|
+
### Padrões Estabelecidos
|
|
446
|
+
{Padrões que restringem/habilitam esta fase}
|
|
447
|
+
|
|
448
|
+
### Pontos de Integração
|
|
449
|
+
{Onde o novo código se conecta ao sistema existente}
|
|
450
|
+
</code_context>
|
|
451
|
+
|
|
452
|
+
<specifics>
|
|
453
|
+
## Ideias Específicas
|
|
454
|
+
|
|
455
|
+
{Quaisquer referências particulares das correções ou input do usuário}
|
|
456
|
+
|
|
457
|
+
[Se nenhuma: "Sem requisitos específicos — aberto a abordagens padrão"]
|
|
458
|
+
</specifics>
|
|
459
|
+
|
|
460
|
+
<deferred>
|
|
461
|
+
## Ideias Adiadas
|
|
462
|
+
|
|
463
|
+
{Ideias mencionadas durante correções que estão fora do escopo}
|
|
464
|
+
|
|
465
|
+
### Todos Revisados (não dobrados)
|
|
466
|
+
{Todos revisados mas não dobrados — com motivo}
|
|
467
|
+
|
|
468
|
+
[Se nenhum: "Nenhum — análise permaneceu dentro do escopo da fase"]
|
|
469
|
+
</deferred>
|
|
470
|
+
```
|
|
471
|
+
|
|
472
|
+
Escrever arquivo.
|
|
473
|
+
</step>
|
|
474
|
+
|
|
475
|
+
<step name="write_discussion_log">
|
|
476
|
+
Escrever trilha de auditoria das premissas e correções.
|
|
477
|
+
|
|
478
|
+
**Arquivo:** `${phase_dir}/${padded_phase}-DISCUSSION-LOG.md`
|
|
479
|
+
|
|
480
|
+
```markdown
|
|
481
|
+
# Fase {PHASE}: {phase_name} - Log de Discussão (Modo Assumptions)
|
|
482
|
+
|
|
483
|
+
> **Apenas trilha de auditoria.** Não usar como input para agentes de planejamento, pesquisa ou execução.
|
|
484
|
+
> Decisões capturadas no CONTEXT.md — este log preserva a análise.
|
|
485
|
+
|
|
486
|
+
**Data:** {data ISO}
|
|
487
|
+
**Fase:** {padded_phase}-{phase_name}
|
|
488
|
+
**Modo:** assumptions
|
|
489
|
+
**Áreas analisadas:** {nomes de área separados por vírgula}
|
|
490
|
+
|
|
491
|
+
## Premissas Apresentadas
|
|
492
|
+
|
|
493
|
+
### {Nome da Área}
|
|
494
|
+
| Premissa | Confiança | Evidência |
|
|
495
|
+
|----------|-----------|-----------|
|
|
496
|
+
| {Declaração} | {Confiante/Provável/Incerto} | {caminhos de arquivo} |
|
|
497
|
+
|
|
498
|
+
{Repetir para cada área}
|
|
499
|
+
|
|
500
|
+
## Correções Feitas
|
|
501
|
+
|
|
502
|
+
{Se correções foram feitas:}
|
|
503
|
+
|
|
504
|
+
### {Nome da Área}
|
|
505
|
+
- **Premissa original:** {o que Claude assumiu}
|
|
506
|
+
- **Correção do usuário:** {o que o usuário escolheu em vez disso}
|
|
507
|
+
- **Motivo:** {raciocínio do usuário, se fornecido}
|
|
508
|
+
|
|
509
|
+
{Se nenhuma correção: "Sem correções — todas as premissas confirmadas."}
|
|
510
|
+
|
|
511
|
+
## Auto-Resolvido
|
|
512
|
+
|
|
513
|
+
{Se --auto e itens Incertos existiam:}
|
|
514
|
+
- {Premissa}: auto-selecionou {opção recomendada}
|
|
515
|
+
|
|
516
|
+
{Se não aplicável: omitir esta seção}
|
|
517
|
+
|
|
518
|
+
## Pesquisa Externa
|
|
519
|
+
|
|
520
|
+
{Se pesquisa foi realizada:}
|
|
521
|
+
- {Tópico}: {Achado} (Fonte: {URL})
|
|
522
|
+
|
|
523
|
+
{Se nenhuma pesquisa: omitir esta seção}
|
|
524
|
+
```
|
|
525
|
+
|
|
526
|
+
Escrever arquivo.
|
|
527
|
+
</step>
|
|
528
|
+
|
|
529
|
+
<step name="git_commit">
|
|
530
|
+
Commitar contexto da fase e log de discussão:
|
|
531
|
+
|
|
532
|
+
```bash
|
|
533
|
+
node "./.claude/framework/bin/tools.cjs" commit "docs(${padded_phase}): capturar contexto da fase (modo assumptions)" --files "${phase_dir}/${padded_phase}-CONTEXT.md" "${phase_dir}/${padded_phase}-DISCUSSION-LOG.md"
|
|
534
|
+
```
|
|
535
|
+
|
|
536
|
+
Confirmar: "Commitado: docs(${padded_phase}): capturar contexto da fase (modo assumptions)"
|
|
537
|
+
</step>
|
|
538
|
+
|
|
539
|
+
<step name="update_state">
|
|
540
|
+
Atualizar STATE.md com informações da sessão:
|
|
541
|
+
|
|
542
|
+
```bash
|
|
543
|
+
node "./.claude/framework/bin/tools.cjs" state record-session \
|
|
544
|
+
--stopped-at "Contexto da Fase ${PHASE} coletado (modo assumptions)" \
|
|
545
|
+
--resume-file "${phase_dir}/${padded_phase}-CONTEXT.md"
|
|
546
|
+
```
|
|
547
|
+
|
|
548
|
+
Commitar STATE.md:
|
|
549
|
+
|
|
550
|
+
```bash
|
|
551
|
+
node "./.claude/framework/bin/tools.cjs" commit "docs(state): registrar sessão de contexto da fase ${PHASE}" --files .planning/STATE.md
|
|
552
|
+
```
|
|
553
|
+
</step>
|
|
554
|
+
|
|
555
|
+
<step name="confirm_creation">
|
|
556
|
+
Apresentar resumo e próximos passos:
|
|
557
|
+
|
|
558
|
+
```
|
|
559
|
+
Criado: .planning/phases/${PADDED_PHASE}-${SLUG}/${PADDED_PHASE}-CONTEXT.md
|
|
560
|
+
|
|
561
|
+
## Decisões Capturadas (Modo Assumptions)
|
|
562
|
+
|
|
563
|
+
### {Nome da Área}
|
|
564
|
+
- {Decisão-chave} (de premissa / corrigida)
|
|
565
|
+
|
|
566
|
+
{Repetir por área}
|
|
567
|
+
|
|
568
|
+
[Se correções foram feitas:]
|
|
569
|
+
## Correções Aplicadas
|
|
570
|
+
- {Área}: {original} → {corrigido}
|
|
571
|
+
|
|
572
|
+
[Se ideias adiadas existirem:]
|
|
573
|
+
## Anotado para Depois
|
|
574
|
+
- {Ideia adiada} — fase futura
|
|
575
|
+
|
|
576
|
+
---
|
|
577
|
+
|
|
578
|
+
## ▶ Próximo Passo
|
|
579
|
+
|
|
580
|
+
**Fase ${PHASE}: {phase_name}** — {Objetivo do ROADMAP.md}
|
|
581
|
+
|
|
582
|
+
`/planejar-fase ${PHASE}`
|
|
583
|
+
|
|
584
|
+
<sub>`/clear` primeiro → janela de contexto fresca</sub>
|
|
585
|
+
|
|
586
|
+
---
|
|
587
|
+
|
|
588
|
+
**Também disponível:**
|
|
589
|
+
- `/planejar-fase ${PHASE} --skip-research` — planejar sem pesquisa
|
|
590
|
+
- `/fase-ui ${PHASE}` — gerar contrato de design UI (se trabalho de frontend)
|
|
591
|
+
- Revisar/editar CONTEXT.md antes de continuar
|
|
592
|
+
|
|
593
|
+
---
|
|
594
|
+
```
|
|
595
|
+
</step>
|
|
596
|
+
|
|
597
|
+
<step name="auto_advance">
|
|
598
|
+
Verificar gatilho de avanço automático:
|
|
599
|
+
|
|
600
|
+
1. Analisar flag `--auto` de $ARGUMENTS
|
|
601
|
+
2. Flag de cadeia de sincronização:
|
|
602
|
+
```bash
|
|
603
|
+
if [[ ! "$ARGUMENTS" =~ --auto ]]; then
|
|
604
|
+
node "./.claude/framework/bin/tools.cjs" config-set workflow._auto_chain_active false 2>/dev/null
|
|
605
|
+
fi
|
|
606
|
+
```
|
|
607
|
+
3. Ler flag de cadeia e preferência do usuário:
|
|
608
|
+
```bash
|
|
609
|
+
AUTO_CHAIN=$(node "./.claude/framework/bin/tools.cjs" config-get workflow._auto_chain_active 2>/dev/null || echo "false")
|
|
610
|
+
AUTO_CFG=$(node "./.claude/framework/bin/tools.cjs" config-get workflow.auto_advance 2>/dev/null || echo "false")
|
|
611
|
+
```
|
|
612
|
+
|
|
613
|
+
**Se flag `--auto` presente E `AUTO_CHAIN` não for verdadeiro:**
|
|
614
|
+
```bash
|
|
615
|
+
node "./.claude/framework/bin/tools.cjs" config-set workflow._auto_chain_active true
|
|
616
|
+
```
|
|
617
|
+
|
|
618
|
+
**Se flag `--auto` presente OU `AUTO_CHAIN` for verdadeiro OU `AUTO_CFG` for verdadeiro:**
|
|
619
|
+
|
|
620
|
+
Exibir banner:
|
|
621
|
+
```
|
|
622
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
623
|
+
framework ► AVANÇANDO AUTOMATICAMENTE PARA PLANEJAMENTO
|
|
624
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
625
|
+
|
|
626
|
+
Contexto capturado (modo assumptions). Iniciando plan-phase...
|
|
627
|
+
```
|
|
628
|
+
|
|
629
|
+
Iniciar: `Skill(skill="framework:planejar-fase", args="${PHASE} --auto")`
|
|
630
|
+
|
|
631
|
+
Tratar retorno: PHASE COMPLETE / PLANNING COMPLETE / INCONCLUSIVE / GAPS FOUND
|
|
632
|
+
(tratamento idêntico ao passo auto_advance do discuss-phase.md)
|
|
633
|
+
|
|
634
|
+
**Se nem `--auto` nem config habilitado:**
|
|
635
|
+
Rotear para o passo confirm_creation.
|
|
636
|
+
</step>
|
|
637
|
+
|
|
638
|
+
</process>
|
|
639
|
+
|
|
640
|
+
<success_criteria>
|
|
641
|
+
- Fase validada contra o roadmap
|
|
642
|
+
- Contexto anterior carregado (sem re-fazer perguntas já decididas)
|
|
643
|
+
- Base de código profundamente analisada via subagente Explore (5-15 arquivos lidos)
|
|
644
|
+
- Premissas surfaçadas com evidências e níveis de confiança
|
|
645
|
+
- Usuário confirmou ou corrigiu premissas (~2-4 interações no máximo)
|
|
646
|
+
- Expansão de escopo redirecionada para ideias adiadas
|
|
647
|
+
- CONTEXT.md captura decisões reais (formato idêntico ao modo discuss)
|
|
648
|
+
- CONTEXT.md inclui canonical_refs com caminhos completos de arquivo (OBRIGATÓRIO)
|
|
649
|
+
- CONTEXT.md inclui code_context da análise de base de código
|
|
650
|
+
- DISCUSSION-LOG.md registra premissas e correções como trilha de auditoria
|
|
651
|
+
- STATE.md atualizado com informações da sessão
|
|
652
|
+
- Usuário conhece os próximos passos
|
|
653
|
+
</success_criteria>
|