@luanpdd/kit-mcp 0.2.1 → 0.3.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/kit/COMANDOS.md +123 -0
- package/kit/agents/advisor-researcher.md +121 -0
- package/kit/agents/assumptions-analyzer.md +122 -0
- package/kit/agents/codebase-mapper.md +787 -0
- package/kit/agents/debugger.md +796 -0
- package/kit/agents/executor.md +516 -0
- package/kit/agents/integration-checker.md +217 -0
- package/kit/agents/nyquist-auditor.md +195 -0
- package/kit/agents/phase-researcher.md +715 -0
- package/kit/agents/plan-checker.md +289 -0
- package/kit/agents/planner.md +1373 -0
- package/kit/agents/project-researcher.md +671 -0
- package/kit/agents/research-synthesizer.md +259 -0
- package/kit/agents/roadmapper.md +696 -0
- package/kit/agents/ui-auditor.md +458 -0
- package/kit/agents/ui-checker.md +319 -0
- package/kit/agents/ui-researcher.md +374 -0
- package/kit/agents/user-profiler.md +183 -0
- package/kit/agents/verifier.md +719 -0
- package/kit/commands/adicionar-backlog.md +76 -0
- package/kit/commands/adicionar-fase.md +43 -0
- package/kit/commands/adicionar-tarefa.md +47 -0
- package/kit/commands/adicionar-testes.md +41 -0
- package/kit/commands/ajuda.md +22 -0
- package/kit/commands/atualizar.md +37 -0
- package/kit/commands/auditar-marco.md +36 -0
- package/kit/commands/auditar-uat.md +24 -0
- package/kit/commands/autonomo.md +41 -0
- package/kit/commands/branch-pr.md +25 -0
- package/kit/commands/concluir-marco.md +136 -0
- package/kit/commands/configuracoes.md +36 -0
- package/kit/commands/definir-perfil.md +12 -0
- package/kit/commands/depurar.md +173 -0
- package/kit/commands/discutir-fase.md +64 -0
- package/kit/commands/entrar-discord.md +18 -0
- package/kit/commands/estatisticas.md +18 -0
- package/kit/commands/executar-fase.md +59 -0
- package/kit/commands/expresso.md +47 -0
- package/kit/commands/fase-ui.md +34 -0
- package/kit/commands/fazer.md +30 -0
- package/kit/commands/fio.md +126 -0
- package/kit/commands/fluxos-trabalho.md +64 -0
- package/kit/commands/forense.md +56 -0
- package/kit/commands/gerenciador.md +39 -0
- package/kit/commands/inserir-fase.md +32 -0
- package/kit/commands/limpeza.md +18 -0
- package/kit/commands/listar-hipoteses-fase.md +46 -0
- package/kit/commands/listar-workspaces.md +19 -0
- package/kit/commands/mapear-codebase.md +71 -0
- package/kit/commands/nota.md +34 -0
- package/kit/commands/novo-marco.md +44 -0
- package/kit/commands/novo-projeto.md +42 -0
- package/kit/commands/novo-workspace.md +44 -0
- package/kit/commands/pausar-trabalho.md +38 -0
- package/kit/commands/perfil-usuario.md +46 -0
- package/kit/commands/pesquisar-fase.md +195 -0
- package/kit/commands/planejar-fase.md +47 -0
- package/kit/commands/planejar-lacunas.md +34 -0
- package/kit/commands/plantar-ideia.md +26 -0
- package/kit/commands/progresso.md +24 -0
- package/kit/commands/proximo.md +24 -0
- package/kit/commands/publicar.md +370 -0
- package/kit/commands/rapido.md +30 -0
- package/kit/commands/reaplicar-patches.md +124 -0
- package/kit/commands/relatorio-sessao.md +19 -0
- package/kit/commands/remover-fase.md +31 -0
- package/kit/commands/remover-workspace.md +26 -0
- package/kit/commands/resumo-marco.md +51 -0
- package/kit/commands/retomar-trabalho.md +40 -0
- package/kit/commands/revisar-backlog.md +60 -0
- package/kit/commands/revisar-ui.md +32 -0
- package/kit/commands/revisar.md +37 -0
- package/kit/commands/saude.md +22 -0
- package/kit/commands/setup-notion.md +93 -0
- package/kit/commands/sync-main.md +68 -0
- package/kit/commands/validar-fase.md +35 -0
- package/kit/commands/verificar-tarefas.md +45 -0
- package/kit/commands/verificar-trabalho.md +38 -0
- package/kit/file-manifest.json +219 -0
- package/kit/framework/VERSION +1 -0
- package/kit/framework/bin/lib/commands.cjs +959 -0
- package/kit/framework/bin/lib/config.cjs +442 -0
- package/kit/framework/bin/lib/core.cjs +1230 -0
- package/kit/framework/bin/lib/frontmatter.cjs +336 -0
- package/kit/framework/bin/lib/init.cjs +1442 -0
- package/kit/framework/bin/lib/milestone.cjs +252 -0
- package/kit/framework/bin/lib/model-profiles.cjs +68 -0
- package/kit/framework/bin/lib/phase.cjs +888 -0
- package/kit/framework/bin/lib/profile-output.cjs +952 -0
- package/kit/framework/bin/lib/profile-pipeline.cjs +539 -0
- package/kit/framework/bin/lib/roadmap.cjs +329 -0
- package/kit/framework/bin/lib/security.cjs +382 -0
- package/kit/framework/bin/lib/state.cjs +1031 -0
- package/kit/framework/bin/lib/template.cjs +222 -0
- package/kit/framework/bin/lib/uat.cjs +282 -0
- package/kit/framework/bin/lib/verify.cjs +888 -0
- package/kit/framework/bin/lib/workstream.cjs +491 -0
- package/kit/framework/bin/tools.cjs +918 -0
- package/kit/framework/commands/workstreams.md +63 -0
- package/kit/framework/references/checkpoints.md +778 -0
- package/kit/framework/references/continuation-format.md +249 -0
- package/kit/framework/references/decimal-phase-calculation.md +64 -0
- package/kit/framework/references/git-integration.md +295 -0
- package/kit/framework/references/git-planning-commit.md +38 -0
- package/kit/framework/references/model-profile-resolution.md +36 -0
- package/kit/framework/references/model-profiles.md +139 -0
- package/kit/framework/references/phase-argument-parsing.md +61 -0
- package/kit/framework/references/planning-config.md +202 -0
- package/kit/framework/references/questioning.md +162 -0
- package/kit/framework/references/tdd.md +263 -0
- package/kit/framework/references/ui-brand.md +160 -0
- package/kit/framework/references/user-profiling.md +657 -0
- package/kit/framework/references/verification-patterns.md +612 -0
- package/kit/framework/references/workstream-flag.md +58 -0
- package/kit/framework/templates/DEBUG.md +164 -0
- package/kit/framework/templates/UAT.md +265 -0
- package/kit/framework/templates/UI-SPEC.md +100 -0
- package/kit/framework/templates/VALIDATION.md +76 -0
- package/kit/framework/templates/claude-md.md +122 -0
- package/kit/framework/templates/codebase/architecture.md +185 -0
- package/kit/framework/templates/codebase/concerns.md +205 -0
- package/kit/framework/templates/codebase/conventions.md +204 -0
- package/kit/framework/templates/codebase/integrations.md +192 -0
- package/kit/framework/templates/codebase/stack.md +158 -0
- package/kit/framework/templates/codebase/structure.md +199 -0
- package/kit/framework/templates/codebase/testing.md +301 -0
- package/kit/framework/templates/config.json +44 -0
- package/kit/framework/templates/context.md +352 -0
- package/kit/framework/templates/continue-here.md +78 -0
- package/kit/framework/templates/copilot-instructions.md +7 -0
- package/kit/framework/templates/debug-subagent-prompt.md +91 -0
- package/kit/framework/templates/dev-preferences.md +20 -0
- package/kit/framework/templates/discovery.md +146 -0
- package/kit/framework/templates/discussion-log.md +63 -0
- package/kit/framework/templates/milestone-archive.md +123 -0
- package/kit/framework/templates/milestone.md +115 -0
- package/kit/framework/templates/phase-prompt.md +610 -0
- package/kit/framework/templates/planner-subagent-prompt.md +117 -0
- package/kit/framework/templates/project.md +186 -0
- package/kit/framework/templates/requirements.md +231 -0
- package/kit/framework/templates/research-project/ARCHITECTURE.md +204 -0
- package/kit/framework/templates/research-project/FEATURES.md +147 -0
- package/kit/framework/templates/research-project/PITFALLS.md +200 -0
- package/kit/framework/templates/research-project/STACK.md +120 -0
- package/kit/framework/templates/research-project/SUMMARY.md +170 -0
- package/kit/framework/templates/research.md +419 -0
- package/kit/framework/templates/retrospective.md +54 -0
- package/kit/framework/templates/roadmap.md +202 -0
- package/kit/framework/templates/state.md +176 -0
- package/kit/framework/templates/summary-complex.md +59 -0
- package/kit/framework/templates/summary-minimal.md +41 -0
- package/kit/framework/templates/summary-standard.md +48 -0
- package/kit/framework/templates/summary.md +209 -0
- package/kit/framework/templates/user-profile.md +146 -0
- package/kit/framework/templates/user-setup.md +256 -0
- package/kit/framework/templates/verification-report.md +258 -0
- package/kit/framework/workflows/add-phase.md +112 -0
- package/kit/framework/workflows/add-tests.md +351 -0
- package/kit/framework/workflows/add-todo.md +158 -0
- package/kit/framework/workflows/audit-milestone.md +340 -0
- package/kit/framework/workflows/audit-uat.md +109 -0
- package/kit/framework/workflows/autonomous.md +891 -0
- package/kit/framework/workflows/check-todos.md +177 -0
- package/kit/framework/workflows/cleanup.md +152 -0
- package/kit/framework/workflows/complete-milestone.md +696 -0
- package/kit/framework/workflows/diagnose-issues.md +231 -0
- package/kit/framework/workflows/discovery-phase.md +289 -0
- package/kit/framework/workflows/discuss-phase-assumptions.md +653 -0
- package/kit/framework/workflows/discuss-phase.md +1049 -0
- package/kit/framework/workflows/do.md +104 -0
- package/kit/framework/workflows/execute-phase.md +838 -0
- package/kit/framework/workflows/execute-plan.md +510 -0
- package/kit/framework/workflows/fast.md +102 -0
- package/kit/framework/workflows/forensics.md +265 -0
- package/kit/framework/workflows/health.md +181 -0
- package/kit/framework/workflows/help.md +606 -0
- package/kit/framework/workflows/insert-phase.md +130 -0
- package/kit/framework/workflows/list-phase-assumptions.md +178 -0
- package/kit/framework/workflows/list-workspaces.md +56 -0
- package/kit/framework/workflows/manager.md +362 -0
- package/kit/framework/workflows/map-codebase.md +377 -0
- package/kit/framework/workflows/milestone-summary.md +223 -0
- package/kit/framework/workflows/new-milestone.md +486 -0
- package/kit/framework/workflows/new-project.md +1250 -0
- package/kit/framework/workflows/new-workspace.md +237 -0
- package/kit/framework/workflows/next.md +97 -0
- package/kit/framework/workflows/node-repair.md +92 -0
- package/kit/framework/workflows/note.md +156 -0
- package/kit/framework/workflows/pause-work.md +176 -0
- package/kit/framework/workflows/plan-milestone-gaps.md +273 -0
- package/kit/framework/workflows/plan-phase.md +859 -0
- package/kit/framework/workflows/plant-seed.md +169 -0
- package/kit/framework/workflows/pr-branch.md +129 -0
- package/kit/framework/workflows/profile-user.md +450 -0
- package/kit/framework/workflows/progress.md +507 -0
- package/kit/framework/workflows/quick.md +757 -0
- package/kit/framework/workflows/remove-phase.md +155 -0
- package/kit/framework/workflows/remove-workspace.md +90 -0
- package/kit/framework/workflows/research-phase.md +82 -0
- package/kit/framework/workflows/resume-project.md +326 -0
- package/kit/framework/workflows/review.md +228 -0
- package/kit/framework/workflows/session-report.md +146 -0
- package/kit/framework/workflows/settings.md +283 -0
- package/kit/framework/workflows/ship.md +228 -0
- package/kit/framework/workflows/stats.md +60 -0
- package/kit/framework/workflows/transition.md +671 -0
- package/kit/framework/workflows/ui-phase.md +302 -0
- package/kit/framework/workflows/ui-review.md +165 -0
- package/kit/framework/workflows/update.md +323 -0
- package/kit/framework/workflows/validate-phase.md +174 -0
- package/kit/framework/workflows/verify-phase.md +252 -0
- package/kit/framework/workflows/verify-work.md +637 -0
- package/kit/hooks/check-update.js +114 -0
- package/kit/hooks/context-monitor.js +156 -0
- package/kit/hooks/prompt-guard.js +96 -0
- package/kit/hooks/statusline.js +119 -0
- package/kit/hooks/workflow-guard.js +94 -0
- package/kit/settings.json +45 -0
- package/package.json +1 -1
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Remove uma fase futura não iniciada do roadmap do projeto, exclui seu diretório, renumera todas as fases subsequentes para manter uma sequência linear limpa e commita a mudança. O commit git serve como registro histórico da remoção.
|
|
3
|
+
</purpose>
|
|
4
|
+
|
|
5
|
+
<required_reading>
|
|
6
|
+
Leia todos os arquivos referenciados pelo execution_context do prompt invocador antes de começar.
|
|
7
|
+
</required_reading>
|
|
8
|
+
|
|
9
|
+
<process>
|
|
10
|
+
|
|
11
|
+
<step name="parse_arguments">
|
|
12
|
+
Analise os argumentos do comando:
|
|
13
|
+
- O argumento é o número da fase a remover (inteiro ou decimal)
|
|
14
|
+
- Exemplo: `/remover-fase 17` → fase = 17
|
|
15
|
+
- Exemplo: `/remover-fase 16.1` → fase = 16.1
|
|
16
|
+
|
|
17
|
+
Se nenhum argumento fornecido:
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
ERRO: Número de fase obrigatório
|
|
21
|
+
Uso: /remover-fase <número-da-fase>
|
|
22
|
+
Exemplo: /remover-fase 17
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Encerre.
|
|
26
|
+
</step>
|
|
27
|
+
|
|
28
|
+
<step name="init_context">
|
|
29
|
+
Carregue o contexto de operação de fase:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
INIT=$(node "./.claude/framework/bin/tools.cjs" init phase-op "${target}")
|
|
33
|
+
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Extraia: `phase_found`, `phase_dir`, `phase_number`, `commit_docs`, `roadmap_exists`.
|
|
37
|
+
|
|
38
|
+
Leia também o conteúdo do STATE.md e ROADMAP.md para analisar a posição atual.
|
|
39
|
+
</step>
|
|
40
|
+
|
|
41
|
+
<step name="validate_future_phase">
|
|
42
|
+
Verifique se a fase é uma fase futura (não iniciada):
|
|
43
|
+
|
|
44
|
+
1. Compare a fase alvo com a fase atual do STATE.md
|
|
45
|
+
2. O alvo deve ser > número da fase atual
|
|
46
|
+
|
|
47
|
+
Se alvo <= fase atual:
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
ERRO: Não é possível remover a Fase {alvo}
|
|
51
|
+
|
|
52
|
+
Apenas fases futuras podem ser removidas:
|
|
53
|
+
- Fase atual: {atual}
|
|
54
|
+
- A Fase {alvo} é atual ou está concluída
|
|
55
|
+
|
|
56
|
+
Para abandonar o trabalho atual, use /pausar-trabalho.
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Encerre.
|
|
60
|
+
</step>
|
|
61
|
+
|
|
62
|
+
<step name="confirm_removal">
|
|
63
|
+
Apresente o resumo da remoção e confirme:
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
Removendo Fase {alvo}: {Nome}
|
|
67
|
+
|
|
68
|
+
Isso irá:
|
|
69
|
+
- Excluir: .planning/phases/{alvo}-{slug}/
|
|
70
|
+
- Renumerar todas as fases subsequentes
|
|
71
|
+
- Atualizar: ROADMAP.md, STATE.md
|
|
72
|
+
|
|
73
|
+
Prosseguir? (s/n)
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Aguarde a confirmação.
|
|
77
|
+
</step>
|
|
78
|
+
|
|
79
|
+
<step name="execute_removal">
|
|
80
|
+
**Delegue toda a operação de remoção ao tools:**
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
RESULT=$(node "./.claude/framework/bin/tools.cjs" phase remove "${target}")
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Se a fase tiver planos executados (arquivos SUMMARY.md), tools retornará um erro. Use `--force` apenas se o usuário confirmar:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
RESULT=$(node "./.claude/framework/bin/tools.cjs" phase remove "${target}" --force)
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
O CLI cuida de:
|
|
93
|
+
- Excluir o diretório da fase
|
|
94
|
+
- Renumerar todos os diretórios subsequentes (em ordem reversa para evitar conflitos)
|
|
95
|
+
- Renomear todos os arquivos dentro dos diretórios renumerados (PLAN.md, SUMMARY.md, etc.)
|
|
96
|
+
- Atualizar o ROADMAP.md (removendo a seção, renumerando todas as referências de fase, atualizando dependências)
|
|
97
|
+
- Atualizar o STATE.md (decrementando a contagem de fases)
|
|
98
|
+
|
|
99
|
+
Extraia do resultado: `removed`, `directory_deleted`, `renamed_directories`, `renamed_files`, `roadmap_updated`, `state_updated`.
|
|
100
|
+
</step>
|
|
101
|
+
|
|
102
|
+
<step name="commit">
|
|
103
|
+
Stage e commit da remoção:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
node "./.claude/framework/bin/tools.cjs" commit "chore: remover fase {alvo} ({nome-original-da-fase})" --files .planning/
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
A mensagem do commit preserva o registro histórico do que foi removido.
|
|
110
|
+
</step>
|
|
111
|
+
|
|
112
|
+
<step name="completion">
|
|
113
|
+
Apresente o resumo de conclusão:
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
Fase {alvo} ({nome-original}) removida.
|
|
117
|
+
|
|
118
|
+
Mudanças:
|
|
119
|
+
- Excluído: .planning/phases/{alvo}-{slug}/
|
|
120
|
+
- Renumerados: {N} diretórios e {M} arquivos
|
|
121
|
+
- Atualizado: ROADMAP.md, STATE.md
|
|
122
|
+
- Commitado: chore: remover fase {alvo} ({nome-original})
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## O Que Vem A Seguir
|
|
127
|
+
|
|
128
|
+
Gostaria de:
|
|
129
|
+
- `/progresso` — ver status do roadmap atualizado
|
|
130
|
+
- Continuar com a fase atual
|
|
131
|
+
- Revisar o roadmap
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
```
|
|
135
|
+
</step>
|
|
136
|
+
|
|
137
|
+
</process>
|
|
138
|
+
|
|
139
|
+
<anti_patterns>
|
|
140
|
+
|
|
141
|
+
- Não remover fases concluídas (com arquivos SUMMARY.md) sem --force
|
|
142
|
+
- Não remover fases atuais ou passadas
|
|
143
|
+
- Não renumerar manualmente — use `tools phase remove` que trata toda a renumeração
|
|
144
|
+
- Não adicionar notas de "fase removida" ao STATE.md — o commit git é o registro
|
|
145
|
+
- Não modificar diretórios de fases concluídas
|
|
146
|
+
</anti_patterns>
|
|
147
|
+
|
|
148
|
+
<success_criteria>
|
|
149
|
+
A remoção da fase está concluída quando:
|
|
150
|
+
|
|
151
|
+
- [ ] Fase alvo validada como futura/não iniciada
|
|
152
|
+
- [ ] `tools phase remove` executado com sucesso
|
|
153
|
+
- [ ] Mudanças commitadas com mensagem descritiva
|
|
154
|
+
- [ ] Usuário informado das mudanças
|
|
155
|
+
</success_criteria>
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Remove um workspace framework, limpando git worktrees e excluindo o diretório do workspace.
|
|
3
|
+
</purpose>
|
|
4
|
+
|
|
5
|
+
<required_reading>
|
|
6
|
+
Leia todos os arquivos referenciados pelo execution_context do prompt invocador antes de começar.
|
|
7
|
+
</required_reading>
|
|
8
|
+
|
|
9
|
+
<process>
|
|
10
|
+
|
|
11
|
+
## 1. Configuração
|
|
12
|
+
|
|
13
|
+
Extraia o nome do workspace de $ARGUMENTS.
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
INIT=$(node "./.claude/framework/bin/tools.cjs" init remove-workspace "$WORKSPACE_NAME")
|
|
17
|
+
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Analise o JSON para: `workspace_name`, `workspace_path`, `has_manifest`, `strategy`, `repos`, `repo_count`, `dirty_repos`, `has_dirty_repos`.
|
|
21
|
+
|
|
22
|
+
**Se nenhum nome de workspace fornecido:**
|
|
23
|
+
|
|
24
|
+
Primeiro execute `/listar-workspaces` para mostrar os workspaces disponíveis, depois pergunte:
|
|
25
|
+
|
|
26
|
+
Use AskUserQuestion:
|
|
27
|
+
- header: "Remover Workspace"
|
|
28
|
+
- question: "Qual workspace você quer remover?"
|
|
29
|
+
- requireAnswer: true
|
|
30
|
+
|
|
31
|
+
Execute init novamente com o nome fornecido.
|
|
32
|
+
|
|
33
|
+
## 2. Verificações de Segurança
|
|
34
|
+
|
|
35
|
+
**Se `has_dirty_repos` for true:**
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
Não é possível remover o workspace "$WORKSPACE_NAME" — os seguintes repositórios têm mudanças não commitadas:
|
|
39
|
+
|
|
40
|
+
- repo1
|
|
41
|
+
- repo2
|
|
42
|
+
|
|
43
|
+
Faça commit ou stash das mudanças nesses repositórios antes de remover o workspace:
|
|
44
|
+
cd $WORKSPACE_PATH/repo1
|
|
45
|
+
git stash # ou git commit
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Encerre. NÃO prossiga.
|
|
49
|
+
|
|
50
|
+
## 3. Confirmar Remoção
|
|
51
|
+
|
|
52
|
+
Use AskUserQuestion:
|
|
53
|
+
- header: "Confirmar Remoção"
|
|
54
|
+
- question: "Remover o workspace '$WORKSPACE_NAME' em $WORKSPACE_PATH? Isso excluirá todos os arquivos no diretório do workspace. Digite o nome do workspace para confirmar:"
|
|
55
|
+
- requireAnswer: true
|
|
56
|
+
|
|
57
|
+
**Se a resposta não corresponder a `$WORKSPACE_NAME`:** Encerre com "Remoção cancelada."
|
|
58
|
+
|
|
59
|
+
## 4. Limpar Worktrees
|
|
60
|
+
|
|
61
|
+
**Se a estratégia for `worktree`:**
|
|
62
|
+
|
|
63
|
+
Para cada repositório no workspace:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
cd "$SOURCE_REPO_PATH"
|
|
67
|
+
git worktree remove "$WORKSPACE_PATH/$REPO_NAME" 2>&1 || true
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Se `git worktree remove` falhar, avise mas continue:
|
|
71
|
+
```
|
|
72
|
+
Aviso: Não foi possível remover o worktree de $REPO_NAME — o repositório fonte pode ter sido movido ou excluído.
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## 5. Excluir Diretório do Workspace
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
rm -rf "$WORKSPACE_PATH"
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## 6. Relatório
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
Workspace "$WORKSPACE_NAME" removido.
|
|
85
|
+
|
|
86
|
+
Caminho: $WORKSPACE_PATH (excluído)
|
|
87
|
+
Repositórios: $REPO_COUNT worktrees limpos
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
</process>
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Pesquisa como implementar uma fase. Spawna phase-researcher com o contexto da fase.
|
|
3
|
+
|
|
4
|
+
Comando de pesquisa independente. Para a maioria dos workflows, use `/planejar-fase` que integra a pesquisa automaticamente.
|
|
5
|
+
</purpose>
|
|
6
|
+
|
|
7
|
+
<available_agent_types>
|
|
8
|
+
Tipos de subagente framework válidos (use os nomes exatos — não use 'general-purpose' como fallback):
|
|
9
|
+
- phase-researcher — Pesquisa abordagens técnicas para uma fase
|
|
10
|
+
</available_agent_types>
|
|
11
|
+
|
|
12
|
+
<process>
|
|
13
|
+
|
|
14
|
+
## Passo 0: Resolver Perfil de Modelo
|
|
15
|
+
|
|
16
|
+
@./.claude/framework/references/model-profile-resolution.md
|
|
17
|
+
|
|
18
|
+
Resolva o modelo para:
|
|
19
|
+
- `phase-researcher`
|
|
20
|
+
|
|
21
|
+
## Passo 1: Normalizar e Validar a Fase
|
|
22
|
+
|
|
23
|
+
@./.claude/framework/references/phase-argument-parsing.md
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
PHASE_INFO=$(node "./.claude/framework/bin/tools.cjs" roadmap get-phase "${PHASE}")
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Se `found` for false: Erro e encerre.
|
|
30
|
+
|
|
31
|
+
## Passo 2: Verificar Pesquisa Existente
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
ls .planning/phases/${PHASE}-*/RESEARCH.md 2>/dev/null || true
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Se existir: Ofereça opções de atualizar/visualizar/pular.
|
|
38
|
+
|
|
39
|
+
## Passo 3: Coletar Contexto da Fase
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
INIT=$(node "./.claude/framework/bin/tools.cjs" init phase-op "${PHASE}")
|
|
43
|
+
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
44
|
+
# Extrair: phase_dir, padded_phase, phase_number, state_path, requirements_path, context_path
|
|
45
|
+
AGENT_SKILLS_RESEARCHER=$(node "./.claude/framework/bin/tools.cjs" agent-skills researcher 2>/dev/null)
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Passo 4: Spawnar Pesquisador
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
Task(
|
|
52
|
+
prompt="<objective>
|
|
53
|
+
Research implementation approach for Phase {phase}: {name}
|
|
54
|
+
</objective>
|
|
55
|
+
|
|
56
|
+
<files_to_read>
|
|
57
|
+
- {context_path} (USER DECISIONS from /discuss-phase)
|
|
58
|
+
- {requirements_path} (Project requirements)
|
|
59
|
+
- {state_path} (Project decisions and history)
|
|
60
|
+
</files_to_read>
|
|
61
|
+
|
|
62
|
+
${AGENT_SKILLS_RESEARCHER}
|
|
63
|
+
|
|
64
|
+
<additional_context>
|
|
65
|
+
Phase description: {description}
|
|
66
|
+
</additional_context>
|
|
67
|
+
|
|
68
|
+
<output>
|
|
69
|
+
Write to: .planning/phases/${PHASE}-{slug}/${PHASE}-RESEARCH.md
|
|
70
|
+
</output>",
|
|
71
|
+
subagent_type="phase-researcher",
|
|
72
|
+
model="{researcher_model}"
|
|
73
|
+
)
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Passo 5: Tratar Retorno
|
|
77
|
+
|
|
78
|
+
- `## RESEARCH COMPLETE` — Exibir resumo, oferecer: Planejar/Aprofundar/Revisar/Concluído
|
|
79
|
+
- `## CHECKPOINT REACHED` — Apresentar ao usuário, spawnar continuação
|
|
80
|
+
- `## RESEARCH INCONCLUSIVE` — Mostrar tentativas, oferecer: Adicionar contexto/Tentar modo diferente/Manual
|
|
81
|
+
|
|
82
|
+
</process>
|
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
<trigger>
|
|
2
|
+
Use este workflow quando:
|
|
3
|
+
- Iniciando uma nova sessão em um projeto existente
|
|
4
|
+
- Usuário diz "continuar", "o que vem depois", "onde paramos", "retomar"
|
|
5
|
+
- Qualquer operação de planejamento quando .planning/ já existe
|
|
6
|
+
- Usuário retorna após um período afastado do projeto
|
|
7
|
+
</trigger>
|
|
8
|
+
|
|
9
|
+
<purpose>
|
|
10
|
+
Restaurar instantaneamente o contexto completo do projeto para que "Onde paramos?" tenha uma resposta imediata e completa.
|
|
11
|
+
</purpose>
|
|
12
|
+
|
|
13
|
+
<required_reading>
|
|
14
|
+
@./.claude/framework/references/continuation-format.md
|
|
15
|
+
</required_reading>
|
|
16
|
+
|
|
17
|
+
<process>
|
|
18
|
+
|
|
19
|
+
<step name="initialize">
|
|
20
|
+
Carregue todo o contexto em uma única chamada:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
INIT=$(node "./.claude/framework/bin/tools.cjs" init resume)
|
|
24
|
+
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Analise o JSON para: `state_exists`, `roadmap_exists`, `project_exists`, `planning_exists`, `has_interrupted_agent`, `interrupted_agent_id`, `commit_docs`.
|
|
28
|
+
|
|
29
|
+
**Se `state_exists` for true:** Prossiga para load_state
|
|
30
|
+
**Se `state_exists` for false mas `roadmap_exists` ou `project_exists` for true:** Ofereça reconstruir o STATE.md
|
|
31
|
+
**Se `planning_exists` for false:** Este é um novo projeto — roteie para /novo-projeto
|
|
32
|
+
</step>
|
|
33
|
+
|
|
34
|
+
<step name="load_state">
|
|
35
|
+
|
|
36
|
+
Leia e analise STATE.md, depois PROJECT.md:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
cat .planning/STATE.md
|
|
40
|
+
cat .planning/PROJECT.md
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
**Do STATE.md extraia:**
|
|
44
|
+
|
|
45
|
+
- **Referência do Projeto**: Valor central e foco atual
|
|
46
|
+
- **Posição Atual**: Fase X de Y, Plano A de B, Status
|
|
47
|
+
- **Progresso**: Barra de progresso visual
|
|
48
|
+
- **Decisões Recentes**: Decisões-chave que afetam o trabalho atual
|
|
49
|
+
- **Todos Pendentes**: Ideias capturadas durante as sessões
|
|
50
|
+
- **Bloqueadores/Preocupações**: Problemas carregados para frente
|
|
51
|
+
- **Continuidade de Sessão**: Onde paramos, quaisquer arquivos de retomada
|
|
52
|
+
|
|
53
|
+
**Do PROJECT.md extraia:**
|
|
54
|
+
|
|
55
|
+
- **O Que É**: Descrição atual e precisa
|
|
56
|
+
- **Requisitos**: Validados, Ativos, Fora do Escopo
|
|
57
|
+
- **Decisões-Chave**: Log completo de decisões com resultados
|
|
58
|
+
- **Restrições**: Limites rígidos de implementação
|
|
59
|
+
|
|
60
|
+
</step>
|
|
61
|
+
|
|
62
|
+
<step name="check_incomplete_work">
|
|
63
|
+
Procure trabalho incompleto que precisa de atenção:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
# Verificar handoff estruturado (preferido — legível por máquina)
|
|
67
|
+
cat .planning/HANDOFF.json 2>/dev/null || true
|
|
68
|
+
|
|
69
|
+
# Verificar arquivos continue-here (retomada no meio do plano)
|
|
70
|
+
ls .planning/phases/*/.continue-here*.md 2>/dev/null || true
|
|
71
|
+
|
|
72
|
+
# Verificar planos sem resumos (execução incompleta)
|
|
73
|
+
for plan in .planning/phases/*/*-PLAN.md; do
|
|
74
|
+
[ -e "$plan" ] || continue
|
|
75
|
+
summary="${plan/PLAN/SUMMARY}"
|
|
76
|
+
[ ! -f "$summary" ] && echo "Incompleto: $plan"
|
|
77
|
+
done 2>/dev/null || true
|
|
78
|
+
|
|
79
|
+
# Verificar agentes interrompidos (use has_interrupted_agent e interrupted_agent_id do init)
|
|
80
|
+
if [ "$has_interrupted_agent" = "true" ]; then
|
|
81
|
+
echo "Agente interrompido: $interrupted_agent_id"
|
|
82
|
+
fi
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
**Se HANDOFF.json existir:**
|
|
86
|
+
|
|
87
|
+
- Esta é a fonte primária de retomada — dados estruturados do `/pausar-trabalho`
|
|
88
|
+
- Analise `status`, `phase`, `plan`, `task`, `total_tasks`, `next_action`
|
|
89
|
+
- Verifique `blockers` e `human_actions_pending` — apresente-os imediatamente
|
|
90
|
+
- Verifique `completed_tasks` para itens `in_progress` — estes precisam de atenção primeiro
|
|
91
|
+
- Valide `uncommitted_files` contra `git status` — sinalize divergências
|
|
92
|
+
- Use `context_notes` para restaurar o modelo mental
|
|
93
|
+
- Sinalize: "Handoff estruturado encontrado — retomando da tarefa {tarefa}/{total_tarefas}"
|
|
94
|
+
- **Após retomada bem-sucedida, exclua o HANDOFF.json** (é um artefato de uso único)
|
|
95
|
+
|
|
96
|
+
**Se arquivo .continue-here existir (fallback):**
|
|
97
|
+
|
|
98
|
+
- Este é um ponto de retomada no meio do plano
|
|
99
|
+
- Leia o arquivo para contexto específico de retomada
|
|
100
|
+
- Sinalize: "Checkpoint de meio de plano encontrado"
|
|
101
|
+
|
|
102
|
+
**Se PLAN sem SUMMARY existir:**
|
|
103
|
+
|
|
104
|
+
- A execução foi iniciada mas não concluída
|
|
105
|
+
- Sinalize: "Execução de plano incompleta encontrada"
|
|
106
|
+
|
|
107
|
+
**Se agente interrompido encontrado:**
|
|
108
|
+
|
|
109
|
+
- Um subagente foi spawnado mas a sessão terminou antes da conclusão
|
|
110
|
+
- Leia agent-history.json para detalhes da tarefa
|
|
111
|
+
- Sinalize: "Agente interrompido encontrado"
|
|
112
|
+
</step>
|
|
113
|
+
|
|
114
|
+
<step name="present_status">
|
|
115
|
+
Apresente o status completo do projeto ao usuário:
|
|
116
|
+
|
|
117
|
+
```
|
|
118
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
119
|
+
║ STATUS DO PROJETO ║
|
|
120
|
+
╠══════════════════════════════════════════════════════════════╣
|
|
121
|
+
║ Construindo: [frase do PROJECT.md "O Que É"] ║
|
|
122
|
+
║ ║
|
|
123
|
+
║ Fase: [X] de [Y] - [Nome da fase] ║
|
|
124
|
+
║ Plano: [A] de [B] - [Status] ║
|
|
125
|
+
║ Progresso: [██████░░░░] XX% ║
|
|
126
|
+
║ ║
|
|
127
|
+
║ Última atividade: [data] - [o que aconteceu] ║
|
|
128
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
129
|
+
|
|
130
|
+
[Se trabalho incompleto encontrado:]
|
|
131
|
+
⚠️ Trabalho incompleto detectado:
|
|
132
|
+
- [arquivo .continue-here ou plano incompleto]
|
|
133
|
+
|
|
134
|
+
[Se agente interrompido encontrado:]
|
|
135
|
+
⚠️ Agente interrompido detectado:
|
|
136
|
+
ID do Agente: [id]
|
|
137
|
+
Tarefa: [descrição da tarefa do agent-history.json]
|
|
138
|
+
Interrompido em: [timestamp]
|
|
139
|
+
|
|
140
|
+
Retome com: ferramenta Task (parâmetro resume com ID do agente)
|
|
141
|
+
|
|
142
|
+
[Se todos pendentes existirem:]
|
|
143
|
+
📋 [N] todos pendentes — /verificar-tarefas para revisar
|
|
144
|
+
|
|
145
|
+
[Se bloqueadores existirem:]
|
|
146
|
+
⚠️ Preocupações carregadas:
|
|
147
|
+
- [bloqueador 1]
|
|
148
|
+
- [bloqueador 2]
|
|
149
|
+
|
|
150
|
+
[Se o alinhamento não for ✓:]
|
|
151
|
+
⚠️ Alinhamento breve: [status] - [avaliação]
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
</step>
|
|
155
|
+
|
|
156
|
+
<step name="determine_next_action">
|
|
157
|
+
Com base no estado do projeto, determine a próxima ação mais lógica:
|
|
158
|
+
|
|
159
|
+
**Se agente interrompido existir:**
|
|
160
|
+
→ Primária: Retomar agente interrompido (ferramenta Task com parâmetro resume)
|
|
161
|
+
→ Opção: Começar do zero (abandonar trabalho do agente)
|
|
162
|
+
|
|
163
|
+
**Se HANDOFF.json existir:**
|
|
164
|
+
→ Primária: Retomar do handoff estruturado (prioridade mais alta — contexto específico de tarefa/bloqueador)
|
|
165
|
+
→ Opção: Descartar handoff e reavaliação a partir dos arquivos
|
|
166
|
+
|
|
167
|
+
**Se arquivo .continue-here existir:**
|
|
168
|
+
→ Fallback: Retomar do checkpoint
|
|
169
|
+
→ Opção: Começar do zero no plano atual
|
|
170
|
+
|
|
171
|
+
**Se plano incompleto (PLAN sem SUMMARY):**
|
|
172
|
+
→ Primária: Concluir o plano incompleto
|
|
173
|
+
→ Opção: Abandonar e seguir em frente
|
|
174
|
+
|
|
175
|
+
**Se fase em progresso, todos os planos concluídos:**
|
|
176
|
+
→ Primária: Avançar para a próxima fase (via workflow de transição interno)
|
|
177
|
+
→ Opção: Revisar o trabalho concluído
|
|
178
|
+
|
|
179
|
+
**Se fase pronta para planejar:**
|
|
180
|
+
→ Verifique se CONTEXT.md existe para esta fase:
|
|
181
|
+
|
|
182
|
+
- Se CONTEXT.md ausente:
|
|
183
|
+
→ Primária: Discutir a visão da fase (como o usuário imagina que funcionará)
|
|
184
|
+
→ Secundária: Planejar diretamente (pular coleta de contexto)
|
|
185
|
+
- Se CONTEXT.md existir:
|
|
186
|
+
→ Primária: Planejar a fase
|
|
187
|
+
→ Opção: Revisar o roadmap
|
|
188
|
+
|
|
189
|
+
**Se fase pronta para executar:**
|
|
190
|
+
→ Primária: Executar o próximo plano
|
|
191
|
+
→ Opção: Revisar o plano primeiro
|
|
192
|
+
</step>
|
|
193
|
+
|
|
194
|
+
<step name="offer_options">
|
|
195
|
+
Apresente opções contextuais com base no estado do projeto:
|
|
196
|
+
|
|
197
|
+
```
|
|
198
|
+
O que você gostaria de fazer?
|
|
199
|
+
|
|
200
|
+
[Ação primária baseada no estado — ex.:]
|
|
201
|
+
1. Retomar agente interrompido [se agente interrompido encontrado]
|
|
202
|
+
OU
|
|
203
|
+
1. Executar fase (/executar-fase {fase} ${WS})
|
|
204
|
+
OU
|
|
205
|
+
1. Discutir contexto da Fase 3 (/discutir-fase 3 ${WS}) [se CONTEXT.md ausente]
|
|
206
|
+
OU
|
|
207
|
+
1. Planejar Fase 3 (/planejar-fase 3 ${WS}) [se CONTEXT.md existir ou opção de discutir recusada]
|
|
208
|
+
|
|
209
|
+
[Opções secundárias:]
|
|
210
|
+
2. Revisar status da fase atual
|
|
211
|
+
3. Verificar todos pendentes ([N] pendentes)
|
|
212
|
+
4. Revisar alinhamento breve
|
|
213
|
+
5. Outra coisa
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
**Nota:** Ao oferecer planejamento de fase, verifique primeiro a existência do CONTEXT.md:
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
ls .planning/phases/XX-name/*-CONTEXT.md 2>/dev/null || true
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
Se ausente, sugira discuss-phase antes do plan. Se existir, ofereça plan diretamente.
|
|
223
|
+
|
|
224
|
+
Aguarde a seleção do usuário.
|
|
225
|
+
</step>
|
|
226
|
+
|
|
227
|
+
<step name="route_to_workflow">
|
|
228
|
+
Com base na seleção do usuário, roteie para o workflow apropriado:
|
|
229
|
+
|
|
230
|
+
- **Executar plano** → Mostre o comando para o usuário executar após limpar:
|
|
231
|
+
```
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
## ▶ Próximo Passo
|
|
235
|
+
|
|
236
|
+
**{fase}-{plano}: [Nome do Plano]** — [objetivo do PLAN.md]
|
|
237
|
+
|
|
238
|
+
`/executar-fase {fase} ${WS}`
|
|
239
|
+
|
|
240
|
+
<sub>`/clear` primeiro → contexto limpo</sub>
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
```
|
|
244
|
+
- **Planejar fase** → Mostre o comando para o usuário executar após limpar:
|
|
245
|
+
```
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
## ▶ Próximo Passo
|
|
249
|
+
|
|
250
|
+
**Fase [N]: [Nome]** — [Objetivo do ROADMAP.md]
|
|
251
|
+
|
|
252
|
+
`/planejar-fase [número-da-fase] ${WS}`
|
|
253
|
+
|
|
254
|
+
<sub>`/clear` primeiro → contexto limpo</sub>
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
**Também disponível:**
|
|
259
|
+
- `/discutir-fase [N] ${WS}` — coletar contexto primeiro
|
|
260
|
+
- `/pesquisar-fase [N] ${WS}` — investigar incógnitas
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
```
|
|
264
|
+
- **Avançar para próxima fase** → ./transition.md (workflow interno, invocado inline — NÃO é um comando do usuário)
|
|
265
|
+
- **Verificar todos** → Ler .planning/todos/pending/, apresentar resumo
|
|
266
|
+
- **Revisar alinhamento** → Ler PROJECT.md, comparar com o estado atual
|
|
267
|
+
- **Outra coisa** → Perguntar o que precisam
|
|
268
|
+
</step>
|
|
269
|
+
|
|
270
|
+
<step name="update_session">
|
|
271
|
+
Antes de prosseguir para o workflow roteado, atualize a continuidade da sessão:
|
|
272
|
+
|
|
273
|
+
Atualize STATE.md:
|
|
274
|
+
|
|
275
|
+
```markdown
|
|
276
|
+
## Continuidade de Sessão
|
|
277
|
+
|
|
278
|
+
Última sessão: [agora]
|
|
279
|
+
Parou em: Sessão retomada, prosseguindo para [ação]
|
|
280
|
+
Arquivo de retomada: [atualizado se aplicável]
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
Isso garante que, se a sessão terminar inesperadamente, a próxima retomada saiba o estado.
|
|
284
|
+
</step>
|
|
285
|
+
|
|
286
|
+
</process>
|
|
287
|
+
|
|
288
|
+
<reconstruction>
|
|
289
|
+
Se STATE.md estiver ausente mas outros artefatos existirem:
|
|
290
|
+
|
|
291
|
+
"STATE.md ausente. Reconstruindo a partir dos artefatos..."
|
|
292
|
+
|
|
293
|
+
1. Ler PROJECT.md → Extrair "O Que É" e Valor Central
|
|
294
|
+
2. Ler ROADMAP.md → Determinar fases, encontrar posição atual
|
|
295
|
+
3. Varrer arquivos \*-SUMMARY.md → Extrair decisões, preocupações
|
|
296
|
+
4. Contar todos pendentes em .planning/todos/pending/
|
|
297
|
+
5. Verificar arquivos .continue-here → Continuidade de sessão
|
|
298
|
+
|
|
299
|
+
Reconstrua e escreva STATE.md, depois prossiga normalmente.
|
|
300
|
+
|
|
301
|
+
Isso trata casos onde:
|
|
302
|
+
|
|
303
|
+
- O projeto é anterior à introdução do STATE.md
|
|
304
|
+
- O arquivo foi acidentalmente excluído
|
|
305
|
+
- Clonagem do repositório sem o estado completo .planning/
|
|
306
|
+
</reconstruction>
|
|
307
|
+
|
|
308
|
+
<quick_resume>
|
|
309
|
+
Se o usuário disser "continuar" ou "ir":
|
|
310
|
+
- Carregue o estado silenciosamente
|
|
311
|
+
- Determine a ação primária
|
|
312
|
+
- Execute imediatamente sem apresentar opções
|
|
313
|
+
|
|
314
|
+
"Continuando de [estado]... [ação]"
|
|
315
|
+
</quick_resume>
|
|
316
|
+
|
|
317
|
+
<success_criteria>
|
|
318
|
+
A retomada está completa quando:
|
|
319
|
+
|
|
320
|
+
- [ ] STATE.md carregado (ou reconstruído)
|
|
321
|
+
- [ ] Trabalho incompleto detectado e sinalizado
|
|
322
|
+
- [ ] Status claro apresentado ao usuário
|
|
323
|
+
- [ ] Próximas ações contextuais oferecidas
|
|
324
|
+
- [ ] Usuário sabe exatamente onde o projeto está
|
|
325
|
+
- [ ] Continuidade de sessão atualizada
|
|
326
|
+
</success_criteria>
|