@luanpdd/kit-mcp 1.21.0 → 1.22.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 +648 -648
- package/kit/COMANDOS.md +138 -138
- package/kit/README.md +76 -52
- package/kit/agents/advisor-researcher.md +106 -106
- package/kit/agents/assumptions-analyzer.md +107 -107
- package/kit/agents/auditor-consistencia-isolamento.md +380 -0
- package/kit/agents/codebase-mapper.md +768 -768
- package/kit/agents/crm-pipeline-implementer.md +17 -0
- package/kit/agents/debugger.md +772 -772
- package/kit/agents/detector-tenant-quente.md +337 -0
- package/kit/agents/example-reviewer.md +21 -21
- package/kit/agents/executor.md +523 -523
- package/kit/agents/integration-checker.md +200 -200
- package/kit/agents/multi-tenant-isolation-auditor.md +10 -0
- package/kit/agents/nyquist-auditor.md +178 -178
- package/kit/agents/phase-researcher.md +696 -696
- package/kit/agents/plan-checker.md +272 -272
- package/kit/agents/planner.md +891 -891
- package/kit/agents/project-researcher.md +652 -652
- package/kit/agents/research-synthesizer.md +245 -245
- package/kit/agents/roadmapper.md +677 -677
- package/kit/agents/supabase-architect.md +10 -0
- package/kit/agents/supabase-migration-writer.md +12 -0
- package/kit/agents/ui-auditor.md +437 -437
- package/kit/agents/ui-checker.md +302 -302
- package/kit/agents/ui-researcher.md +355 -355
- package/kit/agents/user-profiler.md +175 -175
- package/kit/agents/validador-evolucao-schema.md +335 -0
- 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-marco.md +179 -179
- 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/concluir-marco.md +247 -247
- package/kit/commands/configuracoes.md +36 -36
- package/kit/commands/dados-distribuidos.md +188 -0
- package/kit/commands/definir-perfil.md +10 -10
- package/kit/commands/depurar.md +190 -190
- package/kit/commands/discutir-fase.md +131 -131
- 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/limpeza.md +17 -17
- package/kit/commands/listar-hipoteses-fase.md +45 -45
- package/kit/commands/listar-workspaces.md +18 -18
- package/kit/commands/mapear-codebase.md +70 -70
- 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/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/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 +27 -15
- 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-dados-distribuidos/glossary.md +224 -0
- package/kit/skills/armadilhas-sistemas-distribuidos/SKILL.md +447 -0
- package/kit/skills/audit-log-multi-tenant/SKILL.md +6 -0
- package/kit/skills/cascading-failures/SKILL.md +4 -0
- package/kit/skills/consistencia-leitura-replica/SKILL.md +385 -0
- package/kit/skills/crm-lead-pipeline-patterns/SKILL.md +17 -0
- package/kit/skills/escolha-modelo-consistencia/SKILL.md +495 -0
- package/kit/skills/evolucao-schema-compativel/SKILL.md +448 -0
- package/kit/skills/example-skill/SKILL.md +42 -42
- package/kit/skills/multi-tenant-performance-scaling/SKILL.md +4 -0
- package/kit/skills/multi-tenant-rls-hierarchy/SKILL.md +4 -0
- package/kit/skills/postgres-isolamento-concorrencia/SKILL.md +552 -0
- package/kit/skills/streams-eventos-cdc/SKILL.md +712 -0
- package/kit/skills/supabase-cron-queues/SKILL.md +9 -0
- package/kit/skills/supabase-migrations/SKILL.md +10 -0
- package/kit/skills/super-admin-platform-pattern/SKILL.md +4 -0
- package/kit/skills/tenant-quente-mitigacao/SKILL.md +605 -0
- package/package.json +63 -63
- package/src/core/kit.js +216 -216
- package/src/core/reflect.js +247 -247
- package/src/core/reverse-sync.js +372 -372
- package/src/core/sync.js +418 -418
- package/src/core/watch.js +121 -121
|
@@ -1,507 +1,507 @@
|
|
|
1
|
-
<purpose>
|
|
2
|
-
Verificar o progresso do projeto, resumir trabalhos recentes e o que está por vir, então rotear inteligentemente para a próxima ação — seja executando um plano existente ou criando o próximo. Fornece consciência situacional antes de continuar o trabalho.
|
|
3
|
-
</purpose>
|
|
4
|
-
|
|
5
|
-
<required_reading>
|
|
6
|
-
Ler todos os arquivos referenciados pelo execution_context do prompt invocador antes de começar.
|
|
7
|
-
</required_reading>
|
|
8
|
-
|
|
9
|
-
<process>
|
|
10
|
-
|
|
11
|
-
<step name="init_context">
|
|
12
|
-
**Carregar contexto de progresso (apenas caminhos):**
|
|
13
|
-
|
|
14
|
-
```bash
|
|
15
|
-
INIT=$(node "./.claude/framework/bin/tools.cjs" init progress)
|
|
16
|
-
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
Extrair do JSON do init: `project_exists`, `roadmap_exists`, `state_exists`, `phases`, `current_phase`, `next_phase`, `milestone_version`, `completed_count`, `phase_count`, `paused_at`, `state_path`, `roadmap_path`, `project_path`, `config_path`.
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
DISCUSS_MODE=$(node "./.claude/framework/bin/tools.cjs" config-get workflow.discuss_mode 2>/dev/null || echo "discuss")
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
Se `project_exists` for false (sem diretório `.planning/`):
|
|
26
|
-
|
|
27
|
-
```
|
|
28
|
-
Estrutura de planejamento não encontrada.
|
|
29
|
-
|
|
30
|
-
Execute /novo-projeto para iniciar um novo projeto.
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
Sair.
|
|
34
|
-
|
|
35
|
-
Se STATE.md estiver ausente: sugerir `/novo-projeto`.
|
|
36
|
-
|
|
37
|
-
**Se ROADMAP.md ausente mas PROJECT.md existir:**
|
|
38
|
-
|
|
39
|
-
Isso significa que um milestone foi concluído e arquivado. Ir para **Rota F** (entre milestones).
|
|
40
|
-
|
|
41
|
-
Se ambos ROADMAP.md e PROJECT.md estiverem ausentes: sugerir `/novo-projeto`.
|
|
42
|
-
</step>
|
|
43
|
-
|
|
44
|
-
<step name="load">
|
|
45
|
-
**Usar extração estruturada do tools:**
|
|
46
|
-
|
|
47
|
-
Em vez de ler arquivos completos, usar ferramentas direcionadas para obter apenas os dados necessários para o relatório:
|
|
48
|
-
- `ROADMAP=$(node "./.claude/framework/bin/tools.cjs" roadmap analyze)`
|
|
49
|
-
- `STATE=$(node "./.claude/framework/bin/tools.cjs" state-snapshot)`
|
|
50
|
-
|
|
51
|
-
Isso minimiza o uso de contexto do orquestrador.
|
|
52
|
-
</step>
|
|
53
|
-
|
|
54
|
-
<step name="analyze_roadmap">
|
|
55
|
-
**Obter análise abrangente do roadmap (substitui análise manual):**
|
|
56
|
-
|
|
57
|
-
```bash
|
|
58
|
-
ROADMAP=$(node "./.claude/framework/bin/tools.cjs" roadmap analyze)
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
Retorna JSON estruturado com:
|
|
62
|
-
- Todas as fases com status no disco (completo/parcial/planejado/vazio/sem_diretório)
|
|
63
|
-
- Objetivo e dependências por fase
|
|
64
|
-
- Contagens de plano e summary por fase
|
|
65
|
-
- Estatísticas agregadas: total de planos, summaries, percentual de progresso
|
|
66
|
-
- Identificação de fase atual e próxima
|
|
67
|
-
|
|
68
|
-
Usar isso em vez de ler/analisar manualmente ROADMAP.md.
|
|
69
|
-
</step>
|
|
70
|
-
|
|
71
|
-
<step name="recent">
|
|
72
|
-
**Coletar contexto de trabalho recente:**
|
|
73
|
-
|
|
74
|
-
- Encontrar os 2-3 arquivos SUMMARY.md mais recentes
|
|
75
|
-
- Usar `summary-extract` para análise eficiente:
|
|
76
|
-
```bash
|
|
77
|
-
node "./.claude/framework/bin/tools.cjs" summary-extract <path> --fields one_liner
|
|
78
|
-
```
|
|
79
|
-
- Isso mostra "no que estivemos trabalhando"
|
|
80
|
-
</step>
|
|
81
|
-
|
|
82
|
-
<step name="position">
|
|
83
|
-
**Analisar posição atual do contexto init e análise do roadmap:**
|
|
84
|
-
|
|
85
|
-
- Usar `current_phase` e `next_phase` do `$ROADMAP`
|
|
86
|
-
- Notar `paused_at` se o trabalho foi pausado (do `$STATE`)
|
|
87
|
-
- Contar todos pendentes: usar `init todos` ou `list-todos`
|
|
88
|
-
- Verificar sessões de debug ativas: `(ls .planning/debug/*.md 2>/dev/null || true) | grep -v resolved | wc -l`
|
|
89
|
-
</step>
|
|
90
|
-
|
|
91
|
-
<step name="report">
|
|
92
|
-
**Gerar barra de progresso do tools, então apresentar relatório de status rico:**
|
|
93
|
-
|
|
94
|
-
```bash
|
|
95
|
-
# Obter barra de progresso formatada
|
|
96
|
-
PROGRESS_BAR=$(node "./.claude/framework/bin/tools.cjs" progress bar --raw)
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
Apresentar:
|
|
100
|
-
|
|
101
|
-
```
|
|
102
|
-
# [Nome do Projeto]
|
|
103
|
-
|
|
104
|
-
**Progresso:** {PROGRESS_BAR}
|
|
105
|
-
**Perfil:** [quality/balanced/budget/inherit]
|
|
106
|
-
**Modo de discussão:** {DISCUSS_MODE}
|
|
107
|
-
|
|
108
|
-
## Trabalho Recente
|
|
109
|
-
- [Fase X, Plano Y]: [o que foi realizado - 1 linha do summary-extract]
|
|
110
|
-
- [Fase X, Plano Z]: [o que foi realizado - 1 linha do summary-extract]
|
|
111
|
-
|
|
112
|
-
## Posição Atual
|
|
113
|
-
Fase [N] de [total]: [nome-da-fase]
|
|
114
|
-
Plano [M] de [fase-total]: [status]
|
|
115
|
-
CONTEXTO: [✓ se has_context | - se não]
|
|
116
|
-
|
|
117
|
-
## Decisões-Chave Tomadas
|
|
118
|
-
- [extrair de $STATE.decisions[]]
|
|
119
|
-
- [ex: jq -r '.decisions[].decision' do state-snapshot]
|
|
120
|
-
|
|
121
|
-
## Bloqueadores/Preocupações
|
|
122
|
-
- [extrair de $STATE.blockers[]]
|
|
123
|
-
- [ex: jq -r '.blockers[].text' do state-snapshot]
|
|
124
|
-
|
|
125
|
-
## Todos Pendentes
|
|
126
|
-
- [contagem] pendentes — /verificar-todos para revisar
|
|
127
|
-
|
|
128
|
-
## Sessões de Debug Ativas
|
|
129
|
-
- [contagem] ativas — /depurar para continuar
|
|
130
|
-
(Mostrar esta seção apenas se contagem > 0)
|
|
131
|
-
|
|
132
|
-
## O Que Vem a Seguir
|
|
133
|
-
[Objetivo da próxima fase/plano da análise do roadmap]
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
</step>
|
|
137
|
-
|
|
138
|
-
<step name="route">
|
|
139
|
-
**Determinar próxima ação com base em contagens verificadas.**
|
|
140
|
-
|
|
141
|
-
**Passo 1: Contar planos, summaries e problemas na fase atual**
|
|
142
|
-
|
|
143
|
-
Listar arquivos no diretório da fase atual:
|
|
144
|
-
|
|
145
|
-
```bash
|
|
146
|
-
(ls -1 .planning/phases/[current-phase-dir]/*-PLAN.md 2>/dev/null || true) | wc -l
|
|
147
|
-
(ls -1 .planning/phases/[current-phase-dir]/*-SUMMARY.md 2>/dev/null || true) | wc -l
|
|
148
|
-
(ls -1 .planning/phases/[current-phase-dir]/*-UAT.md 2>/dev/null || true) | wc -l
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
Declarar: "Esta fase tem {X} planos, {Y} summaries."
|
|
152
|
-
|
|
153
|
-
**Passo 1.5: Verificar lacunas UAT não resolvidas**
|
|
154
|
-
|
|
155
|
-
Verificar arquivos UAT.md com status "diagnosed" (tem lacunas precisando de correções).
|
|
156
|
-
|
|
157
|
-
```bash
|
|
158
|
-
# Verificar UAT diagnosticado com lacunas ou parcial (teste incompleto)
|
|
159
|
-
grep -l "status: diagnosed\|status: partial" .planning/phases/[current-phase-dir]/*-UAT.md 2>/dev/null || true
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
Rastrear:
|
|
163
|
-
- `uat_with_gaps`: Arquivos UAT.md com status "diagnosed" (lacunas precisam de correção)
|
|
164
|
-
- `uat_partial`: Arquivos UAT.md com status "partial" (teste incompleto)
|
|
165
|
-
|
|
166
|
-
**Passo 1.6: Verificação de saúde entre fases**
|
|
167
|
-
|
|
168
|
-
Escanear TODAS as fases no milestone atual por dívida de verificação pendente usando o CLI (que respeita limites de milestone via `getMilestonePhaseFilter`):
|
|
169
|
-
|
|
170
|
-
```bash
|
|
171
|
-
DEBT=$(node "./.claude/framework/bin/tools.cjs" audit-uat --raw 2>/dev/null)
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
Analisar JSON para `summary.total_items` e `summary.total_files`.
|
|
175
|
-
|
|
176
|
-
Rastrear: `outstanding_debt` — `summary.total_items` da auditoria.
|
|
177
|
-
|
|
178
|
-
**Se outstanding_debt > 0:** Adicionar uma seção de aviso ao relatório de progresso (no passo `report`), colocada entre "## O Que Vem a Seguir" e a sugestão de rota:
|
|
179
|
-
|
|
180
|
-
```markdown
|
|
181
|
-
## Dívida de Verificação ({N} arquivos em fases anteriores)
|
|
182
|
-
|
|
183
|
-
| Fase | Arquivo | Problema |
|
|
184
|
-
|------|---------|---------|
|
|
185
|
-
| {phase} | {filename} | {pending_count} pendentes, {skipped_count} pulados, {blocked_count} bloqueados |
|
|
186
|
-
| {phase} | {filename} | human_needed — {count} itens |
|
|
187
|
-
|
|
188
|
-
Revisar: `/auditar-uat ${WS}` — auditoria completa entre fases
|
|
189
|
-
Retomar teste: `/verificar-trabalho {phase} ${WS}` — retestar fase específica
|
|
190
|
-
```
|
|
191
|
-
|
|
192
|
-
Isso é um AVISO, não um bloqueador — o roteamento prossegue normalmente. A dívida é visível para que o usuário possa fazer uma escolha informada.
|
|
193
|
-
|
|
194
|
-
**Passo 2: Rotear com base nas contagens**
|
|
195
|
-
|
|
196
|
-
| Condição | Significado | Ação |
|
|
197
|
-
|----------|-------------|------|
|
|
198
|
-
| uat_partial > 0 | Teste UAT incompleto | Ir para **Rota E.2** |
|
|
199
|
-
| uat_with_gaps > 0 | Lacunas UAT precisam de planos de correção | Ir para **Rota E** |
|
|
200
|
-
| summaries < plans | Planos não executados existem | Ir para **Rota A** |
|
|
201
|
-
| summaries = plans E plans > 0 | Fase completa | Ir para Passo 3 |
|
|
202
|
-
| plans = 0 | Fase ainda não planejada | Ir para **Rota B** |
|
|
203
|
-
|
|
204
|
-
---
|
|
205
|
-
|
|
206
|
-
**Rota A: Plano não executado existe**
|
|
207
|
-
|
|
208
|
-
Encontrar o primeiro PLAN.md sem SUMMARY.md correspondente.
|
|
209
|
-
Ler sua seção `<objective>`.
|
|
210
|
-
|
|
211
|
-
```
|
|
212
|
-
---
|
|
213
|
-
|
|
214
|
-
## ▶ Próximo Passo
|
|
215
|
-
|
|
216
|
-
**{phase}-{plan}: [Nome do Plano]** — [resumo do objetivo do PLAN.md]
|
|
217
|
-
|
|
218
|
-
`/executar-fase {phase} ${WS}`
|
|
219
|
-
|
|
220
|
-
<sub>`/clear` primeiro → janela de contexto fresca</sub>
|
|
221
|
-
|
|
222
|
-
---
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
---
|
|
226
|
-
|
|
227
|
-
**Rota B: Fase precisa de planejamento**
|
|
228
|
-
|
|
229
|
-
Verificar se `{phase_num}-CONTEXT.md` existe no diretório da fase.
|
|
230
|
-
|
|
231
|
-
Verificar se a fase atual tem indicadores de UI:
|
|
232
|
-
|
|
233
|
-
```bash
|
|
234
|
-
PHASE_SECTION=$(node "./.claude/framework/bin/tools.cjs" roadmap get-phase "${CURRENT_PHASE}" 2>/dev/null)
|
|
235
|
-
PHASE_HAS_UI=$(echo "$PHASE_SECTION" | grep -qi "UI hint.*yes" && echo "true" || echo "false")
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
**Se CONTEXT.md existir:**
|
|
239
|
-
|
|
240
|
-
```
|
|
241
|
-
---
|
|
242
|
-
|
|
243
|
-
## ▶ Próximo Passo
|
|
244
|
-
|
|
245
|
-
**Fase {N}: {Nome}** — {Objetivo do ROADMAP.md}
|
|
246
|
-
<sub>✓ Contexto coletado, pronto para planejar</sub>
|
|
247
|
-
|
|
248
|
-
`/planejar-fase {phase-number} ${WS}`
|
|
249
|
-
|
|
250
|
-
<sub>`/clear` primeiro → janela de contexto fresca</sub>
|
|
251
|
-
|
|
252
|
-
---
|
|
253
|
-
```
|
|
254
|
-
|
|
255
|
-
**Se CONTEXT.md NÃO existir E fase tem UI (`PHASE_HAS_UI` for `true`):**
|
|
256
|
-
|
|
257
|
-
```
|
|
258
|
-
---
|
|
259
|
-
|
|
260
|
-
## ▶ Próximo Passo
|
|
261
|
-
|
|
262
|
-
**Fase {N}: {Nome}** — {Objetivo do ROADMAP.md}
|
|
263
|
-
|
|
264
|
-
`/discutir-fase {phase}` — coletar contexto e clarificar abordagem
|
|
265
|
-
|
|
266
|
-
<sub>`/clear` primeiro → janela de contexto fresca</sub>
|
|
267
|
-
|
|
268
|
-
---
|
|
269
|
-
|
|
270
|
-
**Também disponível:**
|
|
271
|
-
- `/fase-ui {phase}` — gerar contrato de design de UI (recomendado para fases de frontend)
|
|
272
|
-
- `/planejar-fase {phase}` — pular discussão, planejar diretamente
|
|
273
|
-
- `/listar-hipoteses-fase {phase}` — ver hipóteses do Claude
|
|
274
|
-
|
|
275
|
-
---
|
|
276
|
-
```
|
|
277
|
-
|
|
278
|
-
**Se CONTEXT.md NÃO existir E fase não tem UI:**
|
|
279
|
-
|
|
280
|
-
```
|
|
281
|
-
---
|
|
282
|
-
|
|
283
|
-
## ▶ Próximo Passo
|
|
284
|
-
|
|
285
|
-
**Fase {N}: {Nome}** — {Objetivo do ROADMAP.md}
|
|
286
|
-
|
|
287
|
-
`/discutir-fase {phase} ${WS}` — coletar contexto e clarificar abordagem
|
|
288
|
-
|
|
289
|
-
<sub>`/clear` primeiro → janela de contexto fresca</sub>
|
|
290
|
-
|
|
291
|
-
---
|
|
292
|
-
|
|
293
|
-
**Também disponível:**
|
|
294
|
-
- `/planejar-fase {phase} ${WS}` — pular discussão, planejar diretamente
|
|
295
|
-
- `/listar-hipoteses-fase {phase} ${WS}` — ver hipóteses do Claude
|
|
296
|
-
|
|
297
|
-
---
|
|
298
|
-
```
|
|
299
|
-
|
|
300
|
-
---
|
|
301
|
-
|
|
302
|
-
**Rota E: Lacunas UAT precisam de planos de correção**
|
|
303
|
-
|
|
304
|
-
UAT.md existe com lacunas (problemas diagnosticados). Usuário precisa planejar correções.
|
|
305
|
-
|
|
306
|
-
```
|
|
307
|
-
---
|
|
308
|
-
|
|
309
|
-
## ⚠ Lacunas UAT Encontradas
|
|
310
|
-
|
|
311
|
-
**{phase_num}-UAT.md** tem {N} lacunas requerendo correções.
|
|
312
|
-
|
|
313
|
-
`/planejar-fase {phase} --gaps ${WS}`
|
|
314
|
-
|
|
315
|
-
<sub>`/clear` primeiro → janela de contexto fresca</sub>
|
|
316
|
-
|
|
317
|
-
---
|
|
318
|
-
|
|
319
|
-
**Também disponível:**
|
|
320
|
-
- `/executar-fase {phase} ${WS}` — executar planos da fase
|
|
321
|
-
- `/verificar-trabalho {phase} ${WS}` — executar mais testes UAT
|
|
322
|
-
|
|
323
|
-
---
|
|
324
|
-
```
|
|
325
|
-
|
|
326
|
-
---
|
|
327
|
-
|
|
328
|
-
**Rota E.2: Teste UAT incompleto (parcial)**
|
|
329
|
-
|
|
330
|
-
UAT.md existe com `status: partial` — sessão de teste encerrou antes de todos os itens serem resolvidos.
|
|
331
|
-
|
|
332
|
-
```
|
|
333
|
-
---
|
|
334
|
-
|
|
335
|
-
## Teste UAT Incompleto
|
|
336
|
-
|
|
337
|
-
**{phase_num}-UAT.md** tem {N} testes não resolvidos (pendentes, bloqueados ou pulados).
|
|
338
|
-
|
|
339
|
-
`/verificar-trabalho {phase} ${WS}` — retomar teste de onde parou
|
|
340
|
-
|
|
341
|
-
<sub>`/clear` primeiro → janela de contexto fresca</sub>
|
|
342
|
-
|
|
343
|
-
---
|
|
344
|
-
|
|
345
|
-
**Também disponível:**
|
|
346
|
-
- `/auditar-uat ${WS}` — auditoria UAT completa entre fases
|
|
347
|
-
- `/executar-fase {phase} ${WS}` — executar planos da fase
|
|
348
|
-
|
|
349
|
-
---
|
|
350
|
-
```
|
|
351
|
-
|
|
352
|
-
---
|
|
353
|
-
|
|
354
|
-
**Passo 3: Verificar status do milestone (apenas quando fase completa)**
|
|
355
|
-
|
|
356
|
-
Ler ROADMAP.md e identificar:
|
|
357
|
-
1. Número da fase atual
|
|
358
|
-
2. Todos os números de fase na seção do milestone atual
|
|
359
|
-
|
|
360
|
-
Contar fases totais e identificar o número de fase mais alto.
|
|
361
|
-
|
|
362
|
-
Declarar: "Fase atual é {X}. Milestone tem {N} fases (mais alta: {Y})."
|
|
363
|
-
|
|
364
|
-
**Rotear com base no status do milestone:**
|
|
365
|
-
|
|
366
|
-
| Condição | Significado | Ação |
|
|
367
|
-
|----------|-------------|------|
|
|
368
|
-
| fase atual < fase mais alta | Mais fases restam | Ir para **Rota C** |
|
|
369
|
-
| fase atual = fase mais alta | Milestone completo | Ir para **Rota D** |
|
|
370
|
-
|
|
371
|
-
---
|
|
372
|
-
|
|
373
|
-
**Rota C: Fase completa, mais fases restam**
|
|
374
|
-
|
|
375
|
-
Ler ROADMAP.md para obter o nome e objetivo da próxima fase.
|
|
376
|
-
|
|
377
|
-
Verificar se a próxima fase tem indicadores de UI:
|
|
378
|
-
|
|
379
|
-
```bash
|
|
380
|
-
NEXT_PHASE_SECTION=$(node "./.claude/framework/bin/tools.cjs" roadmap get-phase "$((Z+1))" 2>/dev/null)
|
|
381
|
-
NEXT_HAS_UI=$(echo "$NEXT_PHASE_SECTION" | grep -qi "UI hint.*yes" && echo "true" || echo "false")
|
|
382
|
-
```
|
|
383
|
-
|
|
384
|
-
**Se próxima fase tem UI (`NEXT_HAS_UI` for `true`):**
|
|
385
|
-
|
|
386
|
-
```
|
|
387
|
-
---
|
|
388
|
-
|
|
389
|
-
## ✓ Fase {Z} Concluída
|
|
390
|
-
|
|
391
|
-
## ▶ Próximo Passo
|
|
392
|
-
|
|
393
|
-
**Fase {Z+1}: {Nome}** — {Objetivo do ROADMAP.md}
|
|
394
|
-
|
|
395
|
-
`/discutir-fase {Z+1}` — coletar contexto e clarificar abordagem
|
|
396
|
-
|
|
397
|
-
<sub>`/clear` primeiro → janela de contexto fresca</sub>
|
|
398
|
-
|
|
399
|
-
---
|
|
400
|
-
|
|
401
|
-
**Também disponível:**
|
|
402
|
-
- `/fase-ui {Z+1}` — gerar contrato de design de UI (recomendado para fases de frontend)
|
|
403
|
-
- `/planejar-fase {Z+1}` — pular discussão, planejar diretamente
|
|
404
|
-
- `/verificar-trabalho {Z}` — teste de aceitação do usuário antes de continuar
|
|
405
|
-
|
|
406
|
-
---
|
|
407
|
-
```
|
|
408
|
-
|
|
409
|
-
**Se próxima fase não tem UI:**
|
|
410
|
-
|
|
411
|
-
```
|
|
412
|
-
---
|
|
413
|
-
|
|
414
|
-
## ✓ Fase {Z} Concluída
|
|
415
|
-
|
|
416
|
-
## ▶ Próximo Passo
|
|
417
|
-
|
|
418
|
-
**Fase {Z+1}: {Nome}** — {Objetivo do ROADMAP.md}
|
|
419
|
-
|
|
420
|
-
`/discutir-fase {Z+1} ${WS}` — coletar contexto e clarificar abordagem
|
|
421
|
-
|
|
422
|
-
<sub>`/clear` primeiro → janela de contexto fresca</sub>
|
|
423
|
-
|
|
424
|
-
---
|
|
425
|
-
|
|
426
|
-
**Também disponível:**
|
|
427
|
-
- `/planejar-fase {Z+1} ${WS}` — pular discussão, planejar diretamente
|
|
428
|
-
- `/verificar-trabalho {Z} ${WS}` — teste de aceitação do usuário antes de continuar
|
|
429
|
-
|
|
430
|
-
---
|
|
431
|
-
```
|
|
432
|
-
|
|
433
|
-
---
|
|
434
|
-
|
|
435
|
-
**Rota D: Milestone completo**
|
|
436
|
-
|
|
437
|
-
```
|
|
438
|
-
---
|
|
439
|
-
|
|
440
|
-
## 🎉 Milestone Concluído
|
|
441
|
-
|
|
442
|
-
Todas as {N} fases finalizadas!
|
|
443
|
-
|
|
444
|
-
## ▶ Próximo Passo
|
|
445
|
-
|
|
446
|
-
**Concluir Milestone** — arquivar e preparar para o próximo
|
|
447
|
-
|
|
448
|
-
`/concluir-marco ${WS}`
|
|
449
|
-
|
|
450
|
-
<sub>`/clear` primeiro → janela de contexto fresca</sub>
|
|
451
|
-
|
|
452
|
-
---
|
|
453
|
-
|
|
454
|
-
**Também disponível:**
|
|
455
|
-
- `/verificar-trabalho ${WS}` — teste de aceitação do usuário antes de concluir milestone
|
|
456
|
-
|
|
457
|
-
---
|
|
458
|
-
```
|
|
459
|
-
|
|
460
|
-
---
|
|
461
|
-
|
|
462
|
-
**Rota F: Entre milestones (ROADMAP.md ausente, PROJECT.md existe)**
|
|
463
|
-
|
|
464
|
-
Um milestone foi concluído e arquivado. Pronto para iniciar o próximo ciclo de milestone.
|
|
465
|
-
|
|
466
|
-
Ler MILESTONES.md para encontrar a versão do último milestone concluído.
|
|
467
|
-
|
|
468
|
-
```
|
|
469
|
-
---
|
|
470
|
-
|
|
471
|
-
## ✓ Milestone v{X.Y} Concluído
|
|
472
|
-
|
|
473
|
-
Pronto para planejar o próximo milestone.
|
|
474
|
-
|
|
475
|
-
## ▶ Próximo Passo
|
|
476
|
-
|
|
477
|
-
**Iniciar Próximo Milestone** — questionamento → pesquisa → requisitos → roadmap
|
|
478
|
-
|
|
479
|
-
`/novo-marco ${WS}`
|
|
480
|
-
|
|
481
|
-
<sub>`/clear` primeiro → janela de contexto fresca</sub>
|
|
482
|
-
|
|
483
|
-
---
|
|
484
|
-
```
|
|
485
|
-
|
|
486
|
-
</step>
|
|
487
|
-
|
|
488
|
-
<step name="edge_cases">
|
|
489
|
-
**Tratar casos de borda:**
|
|
490
|
-
|
|
491
|
-
- Fase completa mas próxima fase não planejada → oferecer `/planejar-fase [próxima] ${WS}`
|
|
492
|
-
- Todo o trabalho completo → oferecer conclusão do milestone
|
|
493
|
-
- Bloqueadores presentes → destacar antes de oferecer continuar
|
|
494
|
-
- Arquivo de handoff existe → mencioná-lo, oferecer `/retomar-trabalho ${WS}`
|
|
495
|
-
</step>
|
|
496
|
-
|
|
497
|
-
</process>
|
|
498
|
-
|
|
499
|
-
<success_criteria>
|
|
500
|
-
|
|
501
|
-
- [ ] Contexto rico fornecido (trabalho recente, decisões, problemas)
|
|
502
|
-
- [ ] Posição atual clara com progresso visual
|
|
503
|
-
- [ ] O que vem a seguir claramente explicado
|
|
504
|
-
- [ ] Roteamento inteligente: /executar-fase se planos existem, /planejar-fase se não
|
|
505
|
-
- [ ] Usuário confirma antes de qualquer ação
|
|
506
|
-
- [ ] Transferência perfeita para o comando framework apropriado
|
|
507
|
-
</success_criteria>
|
|
1
|
+
<purpose>
|
|
2
|
+
Verificar o progresso do projeto, resumir trabalhos recentes e o que está por vir, então rotear inteligentemente para a próxima ação — seja executando um plano existente ou criando o próximo. Fornece consciência situacional antes de continuar o trabalho.
|
|
3
|
+
</purpose>
|
|
4
|
+
|
|
5
|
+
<required_reading>
|
|
6
|
+
Ler todos os arquivos referenciados pelo execution_context do prompt invocador antes de começar.
|
|
7
|
+
</required_reading>
|
|
8
|
+
|
|
9
|
+
<process>
|
|
10
|
+
|
|
11
|
+
<step name="init_context">
|
|
12
|
+
**Carregar contexto de progresso (apenas caminhos):**
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
INIT=$(node "./.claude/framework/bin/tools.cjs" init progress)
|
|
16
|
+
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Extrair do JSON do init: `project_exists`, `roadmap_exists`, `state_exists`, `phases`, `current_phase`, `next_phase`, `milestone_version`, `completed_count`, `phase_count`, `paused_at`, `state_path`, `roadmap_path`, `project_path`, `config_path`.
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
DISCUSS_MODE=$(node "./.claude/framework/bin/tools.cjs" config-get workflow.discuss_mode 2>/dev/null || echo "discuss")
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Se `project_exists` for false (sem diretório `.planning/`):
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
Estrutura de planejamento não encontrada.
|
|
29
|
+
|
|
30
|
+
Execute /novo-projeto para iniciar um novo projeto.
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Sair.
|
|
34
|
+
|
|
35
|
+
Se STATE.md estiver ausente: sugerir `/novo-projeto`.
|
|
36
|
+
|
|
37
|
+
**Se ROADMAP.md ausente mas PROJECT.md existir:**
|
|
38
|
+
|
|
39
|
+
Isso significa que um milestone foi concluído e arquivado. Ir para **Rota F** (entre milestones).
|
|
40
|
+
|
|
41
|
+
Se ambos ROADMAP.md e PROJECT.md estiverem ausentes: sugerir `/novo-projeto`.
|
|
42
|
+
</step>
|
|
43
|
+
|
|
44
|
+
<step name="load">
|
|
45
|
+
**Usar extração estruturada do tools:**
|
|
46
|
+
|
|
47
|
+
Em vez de ler arquivos completos, usar ferramentas direcionadas para obter apenas os dados necessários para o relatório:
|
|
48
|
+
- `ROADMAP=$(node "./.claude/framework/bin/tools.cjs" roadmap analyze)`
|
|
49
|
+
- `STATE=$(node "./.claude/framework/bin/tools.cjs" state-snapshot)`
|
|
50
|
+
|
|
51
|
+
Isso minimiza o uso de contexto do orquestrador.
|
|
52
|
+
</step>
|
|
53
|
+
|
|
54
|
+
<step name="analyze_roadmap">
|
|
55
|
+
**Obter análise abrangente do roadmap (substitui análise manual):**
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
ROADMAP=$(node "./.claude/framework/bin/tools.cjs" roadmap analyze)
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Retorna JSON estruturado com:
|
|
62
|
+
- Todas as fases com status no disco (completo/parcial/planejado/vazio/sem_diretório)
|
|
63
|
+
- Objetivo e dependências por fase
|
|
64
|
+
- Contagens de plano e summary por fase
|
|
65
|
+
- Estatísticas agregadas: total de planos, summaries, percentual de progresso
|
|
66
|
+
- Identificação de fase atual e próxima
|
|
67
|
+
|
|
68
|
+
Usar isso em vez de ler/analisar manualmente ROADMAP.md.
|
|
69
|
+
</step>
|
|
70
|
+
|
|
71
|
+
<step name="recent">
|
|
72
|
+
**Coletar contexto de trabalho recente:**
|
|
73
|
+
|
|
74
|
+
- Encontrar os 2-3 arquivos SUMMARY.md mais recentes
|
|
75
|
+
- Usar `summary-extract` para análise eficiente:
|
|
76
|
+
```bash
|
|
77
|
+
node "./.claude/framework/bin/tools.cjs" summary-extract <path> --fields one_liner
|
|
78
|
+
```
|
|
79
|
+
- Isso mostra "no que estivemos trabalhando"
|
|
80
|
+
</step>
|
|
81
|
+
|
|
82
|
+
<step name="position">
|
|
83
|
+
**Analisar posição atual do contexto init e análise do roadmap:**
|
|
84
|
+
|
|
85
|
+
- Usar `current_phase` e `next_phase` do `$ROADMAP`
|
|
86
|
+
- Notar `paused_at` se o trabalho foi pausado (do `$STATE`)
|
|
87
|
+
- Contar todos pendentes: usar `init todos` ou `list-todos`
|
|
88
|
+
- Verificar sessões de debug ativas: `(ls .planning/debug/*.md 2>/dev/null || true) | grep -v resolved | wc -l`
|
|
89
|
+
</step>
|
|
90
|
+
|
|
91
|
+
<step name="report">
|
|
92
|
+
**Gerar barra de progresso do tools, então apresentar relatório de status rico:**
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
# Obter barra de progresso formatada
|
|
96
|
+
PROGRESS_BAR=$(node "./.claude/framework/bin/tools.cjs" progress bar --raw)
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Apresentar:
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
# [Nome do Projeto]
|
|
103
|
+
|
|
104
|
+
**Progresso:** {PROGRESS_BAR}
|
|
105
|
+
**Perfil:** [quality/balanced/budget/inherit]
|
|
106
|
+
**Modo de discussão:** {DISCUSS_MODE}
|
|
107
|
+
|
|
108
|
+
## Trabalho Recente
|
|
109
|
+
- [Fase X, Plano Y]: [o que foi realizado - 1 linha do summary-extract]
|
|
110
|
+
- [Fase X, Plano Z]: [o que foi realizado - 1 linha do summary-extract]
|
|
111
|
+
|
|
112
|
+
## Posição Atual
|
|
113
|
+
Fase [N] de [total]: [nome-da-fase]
|
|
114
|
+
Plano [M] de [fase-total]: [status]
|
|
115
|
+
CONTEXTO: [✓ se has_context | - se não]
|
|
116
|
+
|
|
117
|
+
## Decisões-Chave Tomadas
|
|
118
|
+
- [extrair de $STATE.decisions[]]
|
|
119
|
+
- [ex: jq -r '.decisions[].decision' do state-snapshot]
|
|
120
|
+
|
|
121
|
+
## Bloqueadores/Preocupações
|
|
122
|
+
- [extrair de $STATE.blockers[]]
|
|
123
|
+
- [ex: jq -r '.blockers[].text' do state-snapshot]
|
|
124
|
+
|
|
125
|
+
## Todos Pendentes
|
|
126
|
+
- [contagem] pendentes — /verificar-todos para revisar
|
|
127
|
+
|
|
128
|
+
## Sessões de Debug Ativas
|
|
129
|
+
- [contagem] ativas — /depurar para continuar
|
|
130
|
+
(Mostrar esta seção apenas se contagem > 0)
|
|
131
|
+
|
|
132
|
+
## O Que Vem a Seguir
|
|
133
|
+
[Objetivo da próxima fase/plano da análise do roadmap]
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
</step>
|
|
137
|
+
|
|
138
|
+
<step name="route">
|
|
139
|
+
**Determinar próxima ação com base em contagens verificadas.**
|
|
140
|
+
|
|
141
|
+
**Passo 1: Contar planos, summaries e problemas na fase atual**
|
|
142
|
+
|
|
143
|
+
Listar arquivos no diretório da fase atual:
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
(ls -1 .planning/phases/[current-phase-dir]/*-PLAN.md 2>/dev/null || true) | wc -l
|
|
147
|
+
(ls -1 .planning/phases/[current-phase-dir]/*-SUMMARY.md 2>/dev/null || true) | wc -l
|
|
148
|
+
(ls -1 .planning/phases/[current-phase-dir]/*-UAT.md 2>/dev/null || true) | wc -l
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
Declarar: "Esta fase tem {X} planos, {Y} summaries."
|
|
152
|
+
|
|
153
|
+
**Passo 1.5: Verificar lacunas UAT não resolvidas**
|
|
154
|
+
|
|
155
|
+
Verificar arquivos UAT.md com status "diagnosed" (tem lacunas precisando de correções).
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
# Verificar UAT diagnosticado com lacunas ou parcial (teste incompleto)
|
|
159
|
+
grep -l "status: diagnosed\|status: partial" .planning/phases/[current-phase-dir]/*-UAT.md 2>/dev/null || true
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
Rastrear:
|
|
163
|
+
- `uat_with_gaps`: Arquivos UAT.md com status "diagnosed" (lacunas precisam de correção)
|
|
164
|
+
- `uat_partial`: Arquivos UAT.md com status "partial" (teste incompleto)
|
|
165
|
+
|
|
166
|
+
**Passo 1.6: Verificação de saúde entre fases**
|
|
167
|
+
|
|
168
|
+
Escanear TODAS as fases no milestone atual por dívida de verificação pendente usando o CLI (que respeita limites de milestone via `getMilestonePhaseFilter`):
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
DEBT=$(node "./.claude/framework/bin/tools.cjs" audit-uat --raw 2>/dev/null)
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
Analisar JSON para `summary.total_items` e `summary.total_files`.
|
|
175
|
+
|
|
176
|
+
Rastrear: `outstanding_debt` — `summary.total_items` da auditoria.
|
|
177
|
+
|
|
178
|
+
**Se outstanding_debt > 0:** Adicionar uma seção de aviso ao relatório de progresso (no passo `report`), colocada entre "## O Que Vem a Seguir" e a sugestão de rota:
|
|
179
|
+
|
|
180
|
+
```markdown
|
|
181
|
+
## Dívida de Verificação ({N} arquivos em fases anteriores)
|
|
182
|
+
|
|
183
|
+
| Fase | Arquivo | Problema |
|
|
184
|
+
|------|---------|---------|
|
|
185
|
+
| {phase} | {filename} | {pending_count} pendentes, {skipped_count} pulados, {blocked_count} bloqueados |
|
|
186
|
+
| {phase} | {filename} | human_needed — {count} itens |
|
|
187
|
+
|
|
188
|
+
Revisar: `/auditar-uat ${WS}` — auditoria completa entre fases
|
|
189
|
+
Retomar teste: `/verificar-trabalho {phase} ${WS}` — retestar fase específica
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
Isso é um AVISO, não um bloqueador — o roteamento prossegue normalmente. A dívida é visível para que o usuário possa fazer uma escolha informada.
|
|
193
|
+
|
|
194
|
+
**Passo 2: Rotear com base nas contagens**
|
|
195
|
+
|
|
196
|
+
| Condição | Significado | Ação |
|
|
197
|
+
|----------|-------------|------|
|
|
198
|
+
| uat_partial > 0 | Teste UAT incompleto | Ir para **Rota E.2** |
|
|
199
|
+
| uat_with_gaps > 0 | Lacunas UAT precisam de planos de correção | Ir para **Rota E** |
|
|
200
|
+
| summaries < plans | Planos não executados existem | Ir para **Rota A** |
|
|
201
|
+
| summaries = plans E plans > 0 | Fase completa | Ir para Passo 3 |
|
|
202
|
+
| plans = 0 | Fase ainda não planejada | Ir para **Rota B** |
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
**Rota A: Plano não executado existe**
|
|
207
|
+
|
|
208
|
+
Encontrar o primeiro PLAN.md sem SUMMARY.md correspondente.
|
|
209
|
+
Ler sua seção `<objective>`.
|
|
210
|
+
|
|
211
|
+
```
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## ▶ Próximo Passo
|
|
215
|
+
|
|
216
|
+
**{phase}-{plan}: [Nome do Plano]** — [resumo do objetivo do PLAN.md]
|
|
217
|
+
|
|
218
|
+
`/executar-fase {phase} ${WS}`
|
|
219
|
+
|
|
220
|
+
<sub>`/clear` primeiro → janela de contexto fresca</sub>
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
**Rota B: Fase precisa de planejamento**
|
|
228
|
+
|
|
229
|
+
Verificar se `{phase_num}-CONTEXT.md` existe no diretório da fase.
|
|
230
|
+
|
|
231
|
+
Verificar se a fase atual tem indicadores de UI:
|
|
232
|
+
|
|
233
|
+
```bash
|
|
234
|
+
PHASE_SECTION=$(node "./.claude/framework/bin/tools.cjs" roadmap get-phase "${CURRENT_PHASE}" 2>/dev/null)
|
|
235
|
+
PHASE_HAS_UI=$(echo "$PHASE_SECTION" | grep -qi "UI hint.*yes" && echo "true" || echo "false")
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
**Se CONTEXT.md existir:**
|
|
239
|
+
|
|
240
|
+
```
|
|
241
|
+
---
|
|
242
|
+
|
|
243
|
+
## ▶ Próximo Passo
|
|
244
|
+
|
|
245
|
+
**Fase {N}: {Nome}** — {Objetivo do ROADMAP.md}
|
|
246
|
+
<sub>✓ Contexto coletado, pronto para planejar</sub>
|
|
247
|
+
|
|
248
|
+
`/planejar-fase {phase-number} ${WS}`
|
|
249
|
+
|
|
250
|
+
<sub>`/clear` primeiro → janela de contexto fresca</sub>
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
**Se CONTEXT.md NÃO existir E fase tem UI (`PHASE_HAS_UI` for `true`):**
|
|
256
|
+
|
|
257
|
+
```
|
|
258
|
+
---
|
|
259
|
+
|
|
260
|
+
## ▶ Próximo Passo
|
|
261
|
+
|
|
262
|
+
**Fase {N}: {Nome}** — {Objetivo do ROADMAP.md}
|
|
263
|
+
|
|
264
|
+
`/discutir-fase {phase}` — coletar contexto e clarificar abordagem
|
|
265
|
+
|
|
266
|
+
<sub>`/clear` primeiro → janela de contexto fresca</sub>
|
|
267
|
+
|
|
268
|
+
---
|
|
269
|
+
|
|
270
|
+
**Também disponível:**
|
|
271
|
+
- `/fase-ui {phase}` — gerar contrato de design de UI (recomendado para fases de frontend)
|
|
272
|
+
- `/planejar-fase {phase}` — pular discussão, planejar diretamente
|
|
273
|
+
- `/listar-hipoteses-fase {phase}` — ver hipóteses do Claude
|
|
274
|
+
|
|
275
|
+
---
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
**Se CONTEXT.md NÃO existir E fase não tem UI:**
|
|
279
|
+
|
|
280
|
+
```
|
|
281
|
+
---
|
|
282
|
+
|
|
283
|
+
## ▶ Próximo Passo
|
|
284
|
+
|
|
285
|
+
**Fase {N}: {Nome}** — {Objetivo do ROADMAP.md}
|
|
286
|
+
|
|
287
|
+
`/discutir-fase {phase} ${WS}` — coletar contexto e clarificar abordagem
|
|
288
|
+
|
|
289
|
+
<sub>`/clear` primeiro → janela de contexto fresca</sub>
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
293
|
+
**Também disponível:**
|
|
294
|
+
- `/planejar-fase {phase} ${WS}` — pular discussão, planejar diretamente
|
|
295
|
+
- `/listar-hipoteses-fase {phase} ${WS}` — ver hipóteses do Claude
|
|
296
|
+
|
|
297
|
+
---
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
---
|
|
301
|
+
|
|
302
|
+
**Rota E: Lacunas UAT precisam de planos de correção**
|
|
303
|
+
|
|
304
|
+
UAT.md existe com lacunas (problemas diagnosticados). Usuário precisa planejar correções.
|
|
305
|
+
|
|
306
|
+
```
|
|
307
|
+
---
|
|
308
|
+
|
|
309
|
+
## ⚠ Lacunas UAT Encontradas
|
|
310
|
+
|
|
311
|
+
**{phase_num}-UAT.md** tem {N} lacunas requerendo correções.
|
|
312
|
+
|
|
313
|
+
`/planejar-fase {phase} --gaps ${WS}`
|
|
314
|
+
|
|
315
|
+
<sub>`/clear` primeiro → janela de contexto fresca</sub>
|
|
316
|
+
|
|
317
|
+
---
|
|
318
|
+
|
|
319
|
+
**Também disponível:**
|
|
320
|
+
- `/executar-fase {phase} ${WS}` — executar planos da fase
|
|
321
|
+
- `/verificar-trabalho {phase} ${WS}` — executar mais testes UAT
|
|
322
|
+
|
|
323
|
+
---
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
---
|
|
327
|
+
|
|
328
|
+
**Rota E.2: Teste UAT incompleto (parcial)**
|
|
329
|
+
|
|
330
|
+
UAT.md existe com `status: partial` — sessão de teste encerrou antes de todos os itens serem resolvidos.
|
|
331
|
+
|
|
332
|
+
```
|
|
333
|
+
---
|
|
334
|
+
|
|
335
|
+
## Teste UAT Incompleto
|
|
336
|
+
|
|
337
|
+
**{phase_num}-UAT.md** tem {N} testes não resolvidos (pendentes, bloqueados ou pulados).
|
|
338
|
+
|
|
339
|
+
`/verificar-trabalho {phase} ${WS}` — retomar teste de onde parou
|
|
340
|
+
|
|
341
|
+
<sub>`/clear` primeiro → janela de contexto fresca</sub>
|
|
342
|
+
|
|
343
|
+
---
|
|
344
|
+
|
|
345
|
+
**Também disponível:**
|
|
346
|
+
- `/auditar-uat ${WS}` — auditoria UAT completa entre fases
|
|
347
|
+
- `/executar-fase {phase} ${WS}` — executar planos da fase
|
|
348
|
+
|
|
349
|
+
---
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
---
|
|
353
|
+
|
|
354
|
+
**Passo 3: Verificar status do milestone (apenas quando fase completa)**
|
|
355
|
+
|
|
356
|
+
Ler ROADMAP.md e identificar:
|
|
357
|
+
1. Número da fase atual
|
|
358
|
+
2. Todos os números de fase na seção do milestone atual
|
|
359
|
+
|
|
360
|
+
Contar fases totais e identificar o número de fase mais alto.
|
|
361
|
+
|
|
362
|
+
Declarar: "Fase atual é {X}. Milestone tem {N} fases (mais alta: {Y})."
|
|
363
|
+
|
|
364
|
+
**Rotear com base no status do milestone:**
|
|
365
|
+
|
|
366
|
+
| Condição | Significado | Ação |
|
|
367
|
+
|----------|-------------|------|
|
|
368
|
+
| fase atual < fase mais alta | Mais fases restam | Ir para **Rota C** |
|
|
369
|
+
| fase atual = fase mais alta | Milestone completo | Ir para **Rota D** |
|
|
370
|
+
|
|
371
|
+
---
|
|
372
|
+
|
|
373
|
+
**Rota C: Fase completa, mais fases restam**
|
|
374
|
+
|
|
375
|
+
Ler ROADMAP.md para obter o nome e objetivo da próxima fase.
|
|
376
|
+
|
|
377
|
+
Verificar se a próxima fase tem indicadores de UI:
|
|
378
|
+
|
|
379
|
+
```bash
|
|
380
|
+
NEXT_PHASE_SECTION=$(node "./.claude/framework/bin/tools.cjs" roadmap get-phase "$((Z+1))" 2>/dev/null)
|
|
381
|
+
NEXT_HAS_UI=$(echo "$NEXT_PHASE_SECTION" | grep -qi "UI hint.*yes" && echo "true" || echo "false")
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
**Se próxima fase tem UI (`NEXT_HAS_UI` for `true`):**
|
|
385
|
+
|
|
386
|
+
```
|
|
387
|
+
---
|
|
388
|
+
|
|
389
|
+
## ✓ Fase {Z} Concluída
|
|
390
|
+
|
|
391
|
+
## ▶ Próximo Passo
|
|
392
|
+
|
|
393
|
+
**Fase {Z+1}: {Nome}** — {Objetivo do ROADMAP.md}
|
|
394
|
+
|
|
395
|
+
`/discutir-fase {Z+1}` — coletar contexto e clarificar abordagem
|
|
396
|
+
|
|
397
|
+
<sub>`/clear` primeiro → janela de contexto fresca</sub>
|
|
398
|
+
|
|
399
|
+
---
|
|
400
|
+
|
|
401
|
+
**Também disponível:**
|
|
402
|
+
- `/fase-ui {Z+1}` — gerar contrato de design de UI (recomendado para fases de frontend)
|
|
403
|
+
- `/planejar-fase {Z+1}` — pular discussão, planejar diretamente
|
|
404
|
+
- `/verificar-trabalho {Z}` — teste de aceitação do usuário antes de continuar
|
|
405
|
+
|
|
406
|
+
---
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
**Se próxima fase não tem UI:**
|
|
410
|
+
|
|
411
|
+
```
|
|
412
|
+
---
|
|
413
|
+
|
|
414
|
+
## ✓ Fase {Z} Concluída
|
|
415
|
+
|
|
416
|
+
## ▶ Próximo Passo
|
|
417
|
+
|
|
418
|
+
**Fase {Z+1}: {Nome}** — {Objetivo do ROADMAP.md}
|
|
419
|
+
|
|
420
|
+
`/discutir-fase {Z+1} ${WS}` — coletar contexto e clarificar abordagem
|
|
421
|
+
|
|
422
|
+
<sub>`/clear` primeiro → janela de contexto fresca</sub>
|
|
423
|
+
|
|
424
|
+
---
|
|
425
|
+
|
|
426
|
+
**Também disponível:**
|
|
427
|
+
- `/planejar-fase {Z+1} ${WS}` — pular discussão, planejar diretamente
|
|
428
|
+
- `/verificar-trabalho {Z} ${WS}` — teste de aceitação do usuário antes de continuar
|
|
429
|
+
|
|
430
|
+
---
|
|
431
|
+
```
|
|
432
|
+
|
|
433
|
+
---
|
|
434
|
+
|
|
435
|
+
**Rota D: Milestone completo**
|
|
436
|
+
|
|
437
|
+
```
|
|
438
|
+
---
|
|
439
|
+
|
|
440
|
+
## 🎉 Milestone Concluído
|
|
441
|
+
|
|
442
|
+
Todas as {N} fases finalizadas!
|
|
443
|
+
|
|
444
|
+
## ▶ Próximo Passo
|
|
445
|
+
|
|
446
|
+
**Concluir Milestone** — arquivar e preparar para o próximo
|
|
447
|
+
|
|
448
|
+
`/concluir-marco ${WS}`
|
|
449
|
+
|
|
450
|
+
<sub>`/clear` primeiro → janela de contexto fresca</sub>
|
|
451
|
+
|
|
452
|
+
---
|
|
453
|
+
|
|
454
|
+
**Também disponível:**
|
|
455
|
+
- `/verificar-trabalho ${WS}` — teste de aceitação do usuário antes de concluir milestone
|
|
456
|
+
|
|
457
|
+
---
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
---
|
|
461
|
+
|
|
462
|
+
**Rota F: Entre milestones (ROADMAP.md ausente, PROJECT.md existe)**
|
|
463
|
+
|
|
464
|
+
Um milestone foi concluído e arquivado. Pronto para iniciar o próximo ciclo de milestone.
|
|
465
|
+
|
|
466
|
+
Ler MILESTONES.md para encontrar a versão do último milestone concluído.
|
|
467
|
+
|
|
468
|
+
```
|
|
469
|
+
---
|
|
470
|
+
|
|
471
|
+
## ✓ Milestone v{X.Y} Concluído
|
|
472
|
+
|
|
473
|
+
Pronto para planejar o próximo milestone.
|
|
474
|
+
|
|
475
|
+
## ▶ Próximo Passo
|
|
476
|
+
|
|
477
|
+
**Iniciar Próximo Milestone** — questionamento → pesquisa → requisitos → roadmap
|
|
478
|
+
|
|
479
|
+
`/novo-marco ${WS}`
|
|
480
|
+
|
|
481
|
+
<sub>`/clear` primeiro → janela de contexto fresca</sub>
|
|
482
|
+
|
|
483
|
+
---
|
|
484
|
+
```
|
|
485
|
+
|
|
486
|
+
</step>
|
|
487
|
+
|
|
488
|
+
<step name="edge_cases">
|
|
489
|
+
**Tratar casos de borda:**
|
|
490
|
+
|
|
491
|
+
- Fase completa mas próxima fase não planejada → oferecer `/planejar-fase [próxima] ${WS}`
|
|
492
|
+
- Todo o trabalho completo → oferecer conclusão do milestone
|
|
493
|
+
- Bloqueadores presentes → destacar antes de oferecer continuar
|
|
494
|
+
- Arquivo de handoff existe → mencioná-lo, oferecer `/retomar-trabalho ${WS}`
|
|
495
|
+
</step>
|
|
496
|
+
|
|
497
|
+
</process>
|
|
498
|
+
|
|
499
|
+
<success_criteria>
|
|
500
|
+
|
|
501
|
+
- [ ] Contexto rico fornecido (trabalho recente, decisões, problemas)
|
|
502
|
+
- [ ] Posição atual clara com progresso visual
|
|
503
|
+
- [ ] O que vem a seguir claramente explicado
|
|
504
|
+
- [ ] Roteamento inteligente: /executar-fase se planos existem, /planejar-fase se não
|
|
505
|
+
- [ ] Usuário confirma antes de qualquer ação
|
|
506
|
+
- [ ] Transferência perfeita para o comando framework apropriado
|
|
507
|
+
</success_criteria>
|