@luanpdd/kit-mcp 0.2.0 → 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,323 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Verifica atualizações do framework via npm, exibe o changelog para versões entre a instalada e a mais recente, obtém confirmação do usuário e executa uma instalação limpa com limpeza de cache.
|
|
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="get_installed_version">
|
|
12
|
+
Detecte se o framework está instalado localmente ou globalmente verificando ambos os locais e validando a integridade da instalação.
|
|
13
|
+
|
|
14
|
+
Primeiro, derive `PREFERRED_RUNTIME` do caminho `execution_context` do prompt invocador:
|
|
15
|
+
- Caminho contém `/.codex/` -> `codex`
|
|
16
|
+
- Caminho contém `/.gemini/` -> `gemini`
|
|
17
|
+
- Caminho contém `/.config/opencode/` ou `/.opencode/` -> `opencode`
|
|
18
|
+
- Caso contrário -> `claude`
|
|
19
|
+
|
|
20
|
+
Use `PREFERRED_RUNTIME` como o primeiro runtime verificado para que `/atualizar` direcione o runtime que o invocou.
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
# Runtime candidates: "<runtime>:<config-dir>" stored as an array.
|
|
24
|
+
# Using an array instead of a space-separated string ensures correct
|
|
25
|
+
# iteration in both bash and zsh (zsh does not word-split unquoted
|
|
26
|
+
# variables by default). Fixes #1173.
|
|
27
|
+
RUNTIME_DIRS=( "claude:.claude" "opencode:.config/opencode" "opencode:.opencode" "gemini:.gemini" "codex:.codex" )
|
|
28
|
+
|
|
29
|
+
# PREFERRED_RUNTIME should be set from execution_context before running this block.
|
|
30
|
+
# If not set, infer from runtime env vars; fallback to claude.
|
|
31
|
+
if [ -z "$PREFERRED_RUNTIME" ]; then
|
|
32
|
+
if [ -n "$CODEX_HOME" ]; then
|
|
33
|
+
PREFERRED_RUNTIME="codex"
|
|
34
|
+
elif [ -n "$GEMINI_CONFIG_DIR" ]; then
|
|
35
|
+
PREFERRED_RUNTIME="gemini"
|
|
36
|
+
elif [ -n "$OPENCODE_CONFIG_DIR" ] || [ -n "$OPENCODE_CONFIG" ]; then
|
|
37
|
+
PREFERRED_RUNTIME="opencode"
|
|
38
|
+
elif [ -n "$CLAUDE_CONFIG_DIR" ]; then
|
|
39
|
+
PREFERRED_RUNTIME="claude"
|
|
40
|
+
else
|
|
41
|
+
PREFERRED_RUNTIME="claude"
|
|
42
|
+
fi
|
|
43
|
+
fi
|
|
44
|
+
|
|
45
|
+
# Reorder entries so preferred runtime is checked first.
|
|
46
|
+
ORDERED_RUNTIME_DIRS=()
|
|
47
|
+
for entry in "${RUNTIME_DIRS[@]}"; do
|
|
48
|
+
runtime="${entry%%:*}"
|
|
49
|
+
if [ "$runtime" = "$PREFERRED_RUNTIME" ]; then
|
|
50
|
+
ORDERED_RUNTIME_DIRS+=( "$entry" )
|
|
51
|
+
fi
|
|
52
|
+
done
|
|
53
|
+
for entry in "${RUNTIME_DIRS[@]}"; do
|
|
54
|
+
runtime="${entry%%:*}"
|
|
55
|
+
if [ "$runtime" != "$PREFERRED_RUNTIME" ]; then
|
|
56
|
+
ORDERED_RUNTIME_DIRS+=( "$entry" )
|
|
57
|
+
fi
|
|
58
|
+
done
|
|
59
|
+
|
|
60
|
+
# Check local first (takes priority only if valid and distinct from global)
|
|
61
|
+
LOCAL_VERSION_FILE="" LOCAL_MARKER_FILE="" LOCAL_DIR="" LOCAL_RUNTIME=""
|
|
62
|
+
for entry in "${ORDERED_RUNTIME_DIRS[@]}"; do
|
|
63
|
+
runtime="${entry%%:*}"
|
|
64
|
+
dir="${entry#*:}"
|
|
65
|
+
if [ -f "./$dir/framework/VERSION" ] || [ -f "./$dir/framework/workflows/update.md" ]; then
|
|
66
|
+
LOCAL_RUNTIME="$runtime"
|
|
67
|
+
LOCAL_VERSION_FILE="./$dir/framework/VERSION"
|
|
68
|
+
LOCAL_MARKER_FILE="./$dir/framework/workflows/update.md"
|
|
69
|
+
LOCAL_DIR="$(cd "./$dir" 2>/dev/null && pwd)"
|
|
70
|
+
break
|
|
71
|
+
fi
|
|
72
|
+
done
|
|
73
|
+
|
|
74
|
+
GLOBAL_VERSION_FILE="" GLOBAL_MARKER_FILE="" GLOBAL_DIR="" GLOBAL_RUNTIME=""
|
|
75
|
+
for entry in "${ORDERED_RUNTIME_DIRS[@]}"; do
|
|
76
|
+
runtime="${entry%%:*}"
|
|
77
|
+
dir="${entry#*:}"
|
|
78
|
+
if [ -f "$HOME/$dir/framework/VERSION" ] || [ -f "$HOME/$dir/framework/workflows/update.md" ]; then
|
|
79
|
+
GLOBAL_RUNTIME="$runtime"
|
|
80
|
+
GLOBAL_VERSION_FILE="$HOME/$dir/framework/VERSION"
|
|
81
|
+
GLOBAL_MARKER_FILE="$HOME/$dir/framework/workflows/update.md"
|
|
82
|
+
GLOBAL_DIR="$(cd "$HOME/$dir" 2>/dev/null && pwd)"
|
|
83
|
+
break
|
|
84
|
+
fi
|
|
85
|
+
done
|
|
86
|
+
|
|
87
|
+
# Only treat as LOCAL if the resolved paths differ (prevents misdetection when CWD=$HOME)
|
|
88
|
+
IS_LOCAL=false
|
|
89
|
+
if [ -n "$LOCAL_VERSION_FILE" ] && [ -f "$LOCAL_VERSION_FILE" ] && [ -f "$LOCAL_MARKER_FILE" ] && grep -Eq '^[0-9]+\.[0-9]+\.[0-9]+' "$LOCAL_VERSION_FILE"; then
|
|
90
|
+
if [ -z "$GLOBAL_DIR" ] || [ "$LOCAL_DIR" != "$GLOBAL_DIR" ]; then
|
|
91
|
+
IS_LOCAL=true
|
|
92
|
+
fi
|
|
93
|
+
fi
|
|
94
|
+
|
|
95
|
+
if [ "$IS_LOCAL" = true ]; then
|
|
96
|
+
INSTALLED_VERSION="$(cat "$LOCAL_VERSION_FILE")"
|
|
97
|
+
INSTALL_SCOPE="LOCAL"
|
|
98
|
+
TARGET_RUNTIME="$LOCAL_RUNTIME"
|
|
99
|
+
elif [ -n "$GLOBAL_VERSION_FILE" ] && [ -f "$GLOBAL_VERSION_FILE" ] && [ -f "$GLOBAL_MARKER_FILE" ] && grep -Eq '^[0-9]+\.[0-9]+\.[0-9]+' "$GLOBAL_VERSION_FILE"; then
|
|
100
|
+
INSTALLED_VERSION="$(cat "$GLOBAL_VERSION_FILE")"
|
|
101
|
+
INSTALL_SCOPE="GLOBAL"
|
|
102
|
+
TARGET_RUNTIME="$GLOBAL_RUNTIME"
|
|
103
|
+
elif [ -n "$LOCAL_RUNTIME" ] && [ -f "$LOCAL_MARKER_FILE" ]; then
|
|
104
|
+
# Runtime detected but VERSION missing/corrupt: treat as unknown version, keep runtime target
|
|
105
|
+
INSTALLED_VERSION="0.0.0"
|
|
106
|
+
INSTALL_SCOPE="LOCAL"
|
|
107
|
+
TARGET_RUNTIME="$LOCAL_RUNTIME"
|
|
108
|
+
elif [ -n "$GLOBAL_RUNTIME" ] && [ -f "$GLOBAL_MARKER_FILE" ]; then
|
|
109
|
+
INSTALLED_VERSION="0.0.0"
|
|
110
|
+
INSTALL_SCOPE="GLOBAL"
|
|
111
|
+
TARGET_RUNTIME="$GLOBAL_RUNTIME"
|
|
112
|
+
else
|
|
113
|
+
INSTALLED_VERSION="0.0.0"
|
|
114
|
+
INSTALL_SCOPE="UNKNOWN"
|
|
115
|
+
TARGET_RUNTIME="claude"
|
|
116
|
+
fi
|
|
117
|
+
|
|
118
|
+
echo "$INSTALLED_VERSION"
|
|
119
|
+
echo "$INSTALL_SCOPE"
|
|
120
|
+
echo "$TARGET_RUNTIME"
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Analise a saída:
|
|
124
|
+
- Linha 1 = versão instalada (`0.0.0` significa versão desconhecida)
|
|
125
|
+
- Linha 2 = escopo de instalação (`LOCAL`, `GLOBAL` ou `UNKNOWN`)
|
|
126
|
+
- Linha 3 = runtime alvo (`claude`, `opencode`, `gemini` ou `codex`)
|
|
127
|
+
- Se o escopo for `UNKNOWN`, prossiga para o passo de instalação usando o fallback `--claude --global`.
|
|
128
|
+
|
|
129
|
+
Se várias instalações de runtime forem detectadas e o runtime invocador não puder ser determinado a partir do execution_context, pergunte ao usuário qual runtime atualizar antes de executar a instalação.
|
|
130
|
+
|
|
131
|
+
**Se o arquivo VERSION estiver ausente:**
|
|
132
|
+
```
|
|
133
|
+
## Atualização do framework
|
|
134
|
+
|
|
135
|
+
**Versão instalada:** Desconhecida
|
|
136
|
+
|
|
137
|
+
Sua instalação não inclui rastreamento de versão.
|
|
138
|
+
|
|
139
|
+
Executando instalação limpa...
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Prossiga para o passo de instalação (trate como versão 0.0.0 para comparação).
|
|
143
|
+
</step>
|
|
144
|
+
|
|
145
|
+
<step name="check_latest_version">
|
|
146
|
+
Verifique a versão mais recente no npm:
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
npm view framework-cc version 2>/dev/null
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
**Se a verificação npm falhar:**
|
|
153
|
+
```
|
|
154
|
+
Não foi possível verificar atualizações (offline ou npm indisponível).
|
|
155
|
+
|
|
156
|
+
Para atualizar manualmente: `npx framework-cc --global`
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
Encerre.
|
|
160
|
+
</step>
|
|
161
|
+
|
|
162
|
+
<step name="compare_versions">
|
|
163
|
+
Compare instalada vs. mais recente:
|
|
164
|
+
|
|
165
|
+
**Se instalada == mais recente:**
|
|
166
|
+
```
|
|
167
|
+
## Atualização do framework
|
|
168
|
+
|
|
169
|
+
**Instalada:** X.Y.Z
|
|
170
|
+
**Mais recente:** X.Y.Z
|
|
171
|
+
|
|
172
|
+
Você já está na versão mais recente.
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
Encerre.
|
|
176
|
+
|
|
177
|
+
**Se instalada > mais recente:**
|
|
178
|
+
```
|
|
179
|
+
## Atualização do framework
|
|
180
|
+
|
|
181
|
+
**Instalada:** X.Y.Z
|
|
182
|
+
**Mais recente:** A.B.C
|
|
183
|
+
|
|
184
|
+
Você está à frente da versão mais recente (versão de desenvolvimento?).
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
Encerre.
|
|
188
|
+
</step>
|
|
189
|
+
|
|
190
|
+
<step name="show_changes_and_confirm">
|
|
191
|
+
**Se houver atualização disponível**, busque e mostre o que há de novo ANTES de atualizar:
|
|
192
|
+
|
|
193
|
+
1. Busque o changelog da URL raw do GitHub
|
|
194
|
+
2. Extraia as entradas entre as versões instalada e mais recente
|
|
195
|
+
3. Exiba a prévia e peça confirmação:
|
|
196
|
+
|
|
197
|
+
```
|
|
198
|
+
## Atualização do framework Disponível
|
|
199
|
+
|
|
200
|
+
**Instalada:** 1.5.10
|
|
201
|
+
**Mais recente:** 1.5.15
|
|
202
|
+
|
|
203
|
+
### O Que Há de Novo
|
|
204
|
+
────────────────────────────────────────────────────────────
|
|
205
|
+
|
|
206
|
+
## [1.5.15] - 2026-01-20
|
|
207
|
+
|
|
208
|
+
### Adicionado
|
|
209
|
+
- Funcionalidade X
|
|
210
|
+
|
|
211
|
+
## [1.5.14] - 2026-01-18
|
|
212
|
+
|
|
213
|
+
### Corrigido
|
|
214
|
+
- Correção de bug Y
|
|
215
|
+
|
|
216
|
+
────────────────────────────────────────────────────────────
|
|
217
|
+
|
|
218
|
+
⚠️ **Nota:** O instalador realiza uma instalação limpa das pastas framework:
|
|
219
|
+
- `commands/` será apagada e substituída
|
|
220
|
+
- `framework/` será apagada e substituída
|
|
221
|
+
- Arquivos `agents/framework-*` serão substituídos
|
|
222
|
+
|
|
223
|
+
(Os caminhos são relativos ao local de instalação do runtime detectado:
|
|
224
|
+
global: `./.claude/`, `~/.config/opencode/`, `~/.opencode/`, `~/.gemini/`, ou `~/.codex/`
|
|
225
|
+
local: `./.claude/`, `./.config/opencode/`, `./.opencode/`, `./.gemini/`, ou `./.codex/`)
|
|
226
|
+
|
|
227
|
+
Seus arquivos personalizados em outros locais são preservados:
|
|
228
|
+
- Comandos personalizados não em `commands/` ✓
|
|
229
|
+
- Agentes personalizados sem prefixo `framework-` ✓
|
|
230
|
+
- Hooks personalizados ✓
|
|
231
|
+
- Seus arquivos CLAUDE.md ✓
|
|
232
|
+
|
|
233
|
+
Se você modificou algum arquivo framework diretamente, eles serão automaticamente salvos em `local-patches/` e podem ser reaplicados com `/reaplicar-patches` após a atualização.
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
Use AskUserQuestion:
|
|
237
|
+
- Pergunta: "Prosseguir com a atualização?"
|
|
238
|
+
- Opções:
|
|
239
|
+
- "Sim, atualizar agora"
|
|
240
|
+
- "Não, cancelar"
|
|
241
|
+
|
|
242
|
+
**Se o usuário cancelar:** Encerre.
|
|
243
|
+
</step>
|
|
244
|
+
|
|
245
|
+
<step name="run_update">
|
|
246
|
+
Execute a atualização usando o tipo de instalação detectado no passo 1:
|
|
247
|
+
|
|
248
|
+
Construa o flag de runtime do passo 1:
|
|
249
|
+
```bash
|
|
250
|
+
RUNTIME_FLAG="--$TARGET_RUNTIME"
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
**Se instalação LOCAL:**
|
|
254
|
+
```bash
|
|
255
|
+
npx -y framework-cc@latest "$RUNTIME_FLAG" --local
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
**Se instalação GLOBAL:**
|
|
259
|
+
```bash
|
|
260
|
+
npx -y framework-cc@latest "$RUNTIME_FLAG" --global
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
**Se instalação UNKNOWN:**
|
|
264
|
+
```bash
|
|
265
|
+
npx -y framework-cc@latest --claude --global
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
Capture a saída. Se a instalação falhar, mostre o erro e encerre.
|
|
269
|
+
|
|
270
|
+
Limpe o cache de atualização para que o indicador de statusline desapareça:
|
|
271
|
+
|
|
272
|
+
```bash
|
|
273
|
+
# Clear update cache across all runtime directories
|
|
274
|
+
for dir in .claude .config/opencode .opencode .gemini .codex; do
|
|
275
|
+
rm -f "./$dir/cache/update-check.json"
|
|
276
|
+
rm -f "$HOME/$dir/cache/update-check.json"
|
|
277
|
+
done
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
O hook SessionStart (`check-update.js`) escreve no diretório de cache do runtime detectado, portanto todos os caminhos devem ser limpos para evitar indicadores de atualização obsoletos.
|
|
281
|
+
</step>
|
|
282
|
+
|
|
283
|
+
<step name="display_result">
|
|
284
|
+
Formate a mensagem de conclusão (o changelog já foi exibido no passo de confirmação):
|
|
285
|
+
|
|
286
|
+
```
|
|
287
|
+
╔═══════════════════════════════════════════════════════════╗
|
|
288
|
+
║ framework Atualizado: v1.5.10 → v1.5.15 ║
|
|
289
|
+
╚═══════════════════════════════════════════════════════════╝
|
|
290
|
+
|
|
291
|
+
⚠️ Reinicie seu runtime para carregar os novos comandos.
|
|
292
|
+
|
|
293
|
+
[Ver changelog completo](https://github.com/build/framework/blob/main/CHANGELOG.md)
|
|
294
|
+
```
|
|
295
|
+
</step>
|
|
296
|
+
|
|
297
|
+
|
|
298
|
+
<step name="check_local_patches">
|
|
299
|
+
Após a conclusão da atualização, verifique se o instalador detectou e fez backup de arquivos modificados localmente:
|
|
300
|
+
|
|
301
|
+
Verifique local-patches/backup-meta.json no diretório de config.
|
|
302
|
+
|
|
303
|
+
**Se patches encontrados:**
|
|
304
|
+
|
|
305
|
+
```
|
|
306
|
+
Patches locais foram salvos antes da atualização.
|
|
307
|
+
Execute /reaplicar-patches para mesclar suas modificações na nova versão.
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
**Se nenhum patch:** Continue normalmente.
|
|
311
|
+
</step>
|
|
312
|
+
</process>
|
|
313
|
+
|
|
314
|
+
<success_criteria>
|
|
315
|
+
- [ ] Versão instalada lida corretamente
|
|
316
|
+
- [ ] Versão mais recente verificada via npm
|
|
317
|
+
- [ ] Atualização pulada se já estiver atualizado
|
|
318
|
+
- [ ] Changelog buscado e exibido ANTES da atualização
|
|
319
|
+
- [ ] Aviso de instalação limpa mostrado
|
|
320
|
+
- [ ] Confirmação do usuário obtida
|
|
321
|
+
- [ ] Atualização executada com sucesso
|
|
322
|
+
- [ ] Lembrete de reinicialização exibido
|
|
323
|
+
</success_criteria>
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Auditar lacunas de validação Nyquist para uma fase concluída. Gerar testes ausentes. Atualizar VALIDATION.md.
|
|
3
|
+
</purpose>
|
|
4
|
+
|
|
5
|
+
<required_reading>
|
|
6
|
+
@./.claude/framework/references/ui-brand.md
|
|
7
|
+
</required_reading>
|
|
8
|
+
|
|
9
|
+
<available_agent_types>
|
|
10
|
+
Tipos de subagente framework válidos (use os nomes exatos — não use 'general-purpose' como fallback):
|
|
11
|
+
- nyquist-auditor — Valida cobertura de verificação
|
|
12
|
+
</available_agent_types>
|
|
13
|
+
|
|
14
|
+
<process>
|
|
15
|
+
|
|
16
|
+
## 0. Inicializar
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
INIT=$(node "./.claude/framework/bin/tools.cjs" init phase-op "${PHASE_ARG}")
|
|
20
|
+
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
21
|
+
AGENT_SKILLS_AUDITOR=$(node "./.claude/framework/bin/tools.cjs" agent-skills nyquist-auditor 2>/dev/null)
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Analise: `phase_dir`, `phase_number`, `phase_name`, `phase_slug`, `padded_phase`.
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
AUDITOR_MODEL=$(node "./.claude/framework/bin/tools.cjs" resolve-model nyquist-auditor --raw)
|
|
28
|
+
NYQUIST_CFG=$(node "./.claude/framework/bin/tools.cjs" config-get workflow.nyquist_validation --raw)
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Se `NYQUIST_CFG` for `false`: encerre com "Validação Nyquist está desabilitada. Habilite via /configuracoes."
|
|
32
|
+
|
|
33
|
+
Exiba o banner: `framework > VALIDAR FASE {N}: {nome}`
|
|
34
|
+
|
|
35
|
+
## 1. Detectar Estado de Entrada
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
VALIDATION_FILE=$(ls "${PHASE_DIR}"/*-VALIDATION.md 2>/dev/null | head -1)
|
|
39
|
+
SUMMARY_FILES=$(ls "${PHASE_DIR}"/*-SUMMARY.md 2>/dev/null)
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
- **Estado A** (`VALIDATION_FILE` não vazio): Auditar existente
|
|
43
|
+
- **Estado B** (`VALIDATION_FILE` vazio, `SUMMARY_FILES` não vazio): Reconstruir a partir dos artefatos
|
|
44
|
+
- **Estado C** (`SUMMARY_FILES` vazio): Encerre — "Fase {N} não executada. Execute /executar-fase {N} ${WS} primeiro."
|
|
45
|
+
|
|
46
|
+
## 2. Descoberta
|
|
47
|
+
|
|
48
|
+
### 2a. Ler Artefatos da Fase
|
|
49
|
+
|
|
50
|
+
Leia todos os arquivos PLAN e SUMMARY. Extraia: listas de tarefas, IDs de requisitos, arquivos-chave alterados, blocos de verificação.
|
|
51
|
+
|
|
52
|
+
### 2b. Construir Mapa de Requisito-para-Tarefa
|
|
53
|
+
|
|
54
|
+
Por tarefa: `{ task_id, plan_id, wave, requirement_ids, has_automated_command }`
|
|
55
|
+
|
|
56
|
+
### 2c. Detectar Infraestrutura de Testes
|
|
57
|
+
|
|
58
|
+
Estado A: Analise da tabela de Infraestrutura de Testes do VALIDATION.md existente.
|
|
59
|
+
Estado B: Varredura do sistema de arquivos:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
find . -name "pytest.ini" -o -name "jest.config.*" -o -name "vitest.config.*" -o -name "pyproject.toml" 2>/dev/null | head -10
|
|
63
|
+
find . \( -name "*.test.*" -o -name "*.spec.*" -o -name "test_*" \) -not -path "*/node_modules/*" 2>/dev/null | head -40
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### 2d. Referência Cruzada
|
|
67
|
+
|
|
68
|
+
Associe cada requisito aos testes existentes por nome de arquivo, imports, descrições de teste. Registre: requisito → arquivo_de_teste → status.
|
|
69
|
+
|
|
70
|
+
## 3. Análise de Lacunas
|
|
71
|
+
|
|
72
|
+
Classifique cada requisito:
|
|
73
|
+
|
|
74
|
+
| Status | Critérios |
|
|
75
|
+
|--------|-----------|
|
|
76
|
+
| COVERED | Teste existe, direciona o comportamento, passa |
|
|
77
|
+
| PARTIAL | Teste existe, falhando ou incompleto |
|
|
78
|
+
| MISSING | Nenhum teste encontrado |
|
|
79
|
+
|
|
80
|
+
Construa: `{ task_id, requirement, gap_type, suggested_test_path, suggested_command }`
|
|
81
|
+
|
|
82
|
+
Sem lacunas → pule para o Passo 6, defina `nyquist_compliant: true`.
|
|
83
|
+
|
|
84
|
+
## 4. Apresentar Plano de Lacunas
|
|
85
|
+
|
|
86
|
+
Chame AskUserQuestion com a tabela de lacunas e opções:
|
|
87
|
+
1. "Corrigir todas as lacunas" → Passo 5
|
|
88
|
+
2. "Pular — marcar apenas manual" → adicionar em Manual-Only, Passo 6
|
|
89
|
+
3. "Cancelar" → encerrar
|
|
90
|
+
|
|
91
|
+
## 5. Spawnar nyquist-auditor
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
Task(
|
|
95
|
+
prompt="Read ./.claude/agents/nyquist-auditor.md for instructions.\n\n" +
|
|
96
|
+
"<files_to_read>{PLAN, SUMMARY, impl files, VALIDATION.md}</files_to_read>" +
|
|
97
|
+
"<gaps>{gap list}</gaps>" +
|
|
98
|
+
"<test_infrastructure>{framework, config, commands}</test_infrastructure>" +
|
|
99
|
+
"<constraints>Never modify impl files. Max 3 debug iterations. Escalate impl bugs.</constraints>" +
|
|
100
|
+
"${AGENT_SKILLS_AUDITOR}",
|
|
101
|
+
subagent_type="nyquist-auditor",
|
|
102
|
+
model="{AUDITOR_MODEL}",
|
|
103
|
+
description="Fill validation gaps for Phase {N}"
|
|
104
|
+
)
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Trate o retorno:
|
|
108
|
+
- `## GAPS FILLED` → registre testes + atualizações do mapa, Passo 6
|
|
109
|
+
- `## PARTIAL` → registre resolvidos, mova escalados para manual-only, Passo 6
|
|
110
|
+
- `## ESCALATE` → mova todos para manual-only, Passo 6
|
|
111
|
+
|
|
112
|
+
## 6. Gerar/Atualizar VALIDATION.md
|
|
113
|
+
|
|
114
|
+
**Estado B (criar):**
|
|
115
|
+
1. Leia o template de `./.claude/framework/templates/VALIDATION.md`
|
|
116
|
+
2. Preencha: frontmatter, Infraestrutura de Testes, Mapa Por-Tarefa, Manual-Only, Sign-Off
|
|
117
|
+
3. Escreva em `${PHASE_DIR}/${PADDED_PHASE}-VALIDATION.md`
|
|
118
|
+
|
|
119
|
+
**Estado A (atualizar):**
|
|
120
|
+
1. Atualize os status do Mapa Por-Tarefa, adicione escalados ao Manual-Only, atualize o frontmatter
|
|
121
|
+
2. Adicione trilha de auditoria:
|
|
122
|
+
|
|
123
|
+
```markdown
|
|
124
|
+
## Auditoria de Validação {data}
|
|
125
|
+
| Métrica | Contagem |
|
|
126
|
+
|---------|----------|
|
|
127
|
+
| Lacunas encontradas | {N} |
|
|
128
|
+
| Resolvidas | {M} |
|
|
129
|
+
| Escaladas | {K} |
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## 7. Commit
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
git add {test_files}
|
|
136
|
+
git commit -m "test(phase-${PHASE}): add Nyquist validation tests"
|
|
137
|
+
|
|
138
|
+
node "./.claude/framework/bin/tools.cjs" commit "docs(phase-${PHASE}): add/update validation strategy"
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
## 8. Resultados + Roteamento
|
|
142
|
+
|
|
143
|
+
**Compatível:**
|
|
144
|
+
```
|
|
145
|
+
framework > FASE {N} É NYQUIST-COMPATÍVEL
|
|
146
|
+
Todos os requisitos têm verificação automatizada.
|
|
147
|
+
▶ Próximo: /auditar-marco ${WS}
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
**Parcial:**
|
|
151
|
+
```
|
|
152
|
+
framework > FASE {N} VALIDADA (PARCIAL)
|
|
153
|
+
{M} automatizados, {K} apenas manuais.
|
|
154
|
+
▶ Repetir: /validar-fase {N} ${WS}
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
Exiba lembrete de `/clear`.
|
|
158
|
+
|
|
159
|
+
</process>
|
|
160
|
+
|
|
161
|
+
<success_criteria>
|
|
162
|
+
- [ ] Config Nyquist verificado (encerrar se desabilitado)
|
|
163
|
+
- [ ] Estado de entrada detectado (A/B/C)
|
|
164
|
+
- [ ] Estado C encerra corretamente
|
|
165
|
+
- [ ] Arquivos PLAN/SUMMARY lidos, mapa de requisitos construído
|
|
166
|
+
- [ ] Infraestrutura de testes detectada
|
|
167
|
+
- [ ] Lacunas classificadas (COVERED/PARTIAL/MISSING)
|
|
168
|
+
- [ ] Gate do usuário com tabela de lacunas
|
|
169
|
+
- [ ] Auditor spawnado com contexto completo
|
|
170
|
+
- [ ] Todos os três formatos de retorno tratados
|
|
171
|
+
- [ ] VALIDATION.md criado ou atualizado
|
|
172
|
+
- [ ] Arquivos de teste commitados separadamente
|
|
173
|
+
- [ ] Resultados com roteamento apresentados
|
|
174
|
+
</success_criteria>
|