@luanpdd/kit-mcp 1.20.0 → 1.21.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/gates/dept-cycle-prevention.md +179 -0
- package/gates/multi-tenant-rls-coverage.md +102 -0
- package/gates/service-role-not-in-user-facing.md +113 -0
- package/kit/COMANDOS.md +138 -138
- package/kit/README.md +52 -52
- package/kit/agents/advisor-researcher.md +106 -106
- package/kit/agents/assumptions-analyzer.md +107 -107
- package/kit/agents/audit-log-implementer.md +175 -0
- package/kit/agents/b2b-saas-architect.md +156 -0
- package/kit/agents/codebase-mapper.md +768 -768
- package/kit/agents/crm-pipeline-implementer.md +150 -0
- package/kit/agents/debugger.md +772 -772
- package/kit/agents/evolution-go-integrator.md +179 -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/invite-flow-implementer.md +137 -0
- package/kit/agents/lgpd-compliance-auditor.md +206 -0
- package/kit/agents/multi-tenant-isolation-auditor.md +243 -0
- package/kit/agents/multi-tenant-rls-writer.md +262 -0
- package/kit/agents/nyquist-auditor.md +178 -178
- package/kit/agents/org-onboarding-implementer.md +202 -0
- 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/super-admin-implementer.md +182 -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/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/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/multi-tenant.md +163 -0
- 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 +30 -3
- 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-multi-tenant/glossary.md +186 -0
- package/kit/skills/audit-log-multi-tenant/SKILL.md +334 -0
- package/kit/skills/b2b-saas-architecture/SKILL.md +300 -0
- package/kit/skills/crm-lead-pipeline-patterns/SKILL.md +326 -0
- package/kit/skills/evolution-go-whatsapp-integration/SKILL.md +322 -0
- package/kit/skills/example-skill/SKILL.md +42 -42
- package/kit/skills/lgpd-multi-tenant-compliance/SKILL.md +340 -0
- package/kit/skills/member-invite-flow/SKILL.md +305 -0
- package/kit/skills/member-management-react-shadcn/SKILL.md +328 -0
- package/kit/skills/multi-tenant-performance-scaling/SKILL.md +312 -0
- package/kit/skills/multi-tenant-rls-hierarchy/SKILL.md +338 -0
- package/kit/skills/org-onboarding-flow/SKILL.md +257 -0
- package/kit/skills/org-switcher-react-pattern/SKILL.md +349 -0
- package/kit/skills/permission-gate-react-pattern/SKILL.md +271 -0
- package/kit/skills/rbac-permissions-matrix-supabase/SKILL.md +301 -0
- package/kit/skills/super-admin-platform-pattern/SKILL.md +322 -0
- package/kit/skills/whatsapp-conversation-state-machine/SKILL.md +287 -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,323 +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>
|
|
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>
|