@luanpdd/kit-mcp 1.18.0 → 1.20.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.
Files changed (232) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +648 -648
  3. package/kit/COMANDOS.md +138 -138
  4. package/kit/README.md +52 -52
  5. package/kit/agents/advisor-researcher.md +106 -106
  6. package/kit/agents/assumptions-analyzer.md +107 -107
  7. package/kit/agents/codebase-mapper.md +768 -768
  8. package/kit/agents/debugger.md +772 -772
  9. package/kit/agents/example-reviewer.md +21 -21
  10. package/kit/agents/executor.md +523 -523
  11. package/kit/agents/integration-checker.md +200 -200
  12. package/kit/agents/nyquist-auditor.md +178 -178
  13. package/kit/agents/phase-researcher.md +696 -696
  14. package/kit/agents/plan-checker.md +272 -272
  15. package/kit/agents/planner.md +891 -891
  16. package/kit/agents/project-researcher.md +652 -652
  17. package/kit/agents/research-synthesizer.md +245 -245
  18. package/kit/agents/roadmapper.md +677 -677
  19. package/kit/agents/ui-auditor.md +437 -437
  20. package/kit/agents/ui-checker.md +302 -302
  21. package/kit/agents/ui-researcher.md +355 -355
  22. package/kit/agents/user-profiler.md +175 -175
  23. package/kit/agents/verifier.md +728 -728
  24. package/kit/commands/adicionar-backlog.md +75 -75
  25. package/kit/commands/adicionar-fase.md +42 -42
  26. package/kit/commands/adicionar-tarefa.md +45 -45
  27. package/kit/commands/adicionar-testes.md +41 -41
  28. package/kit/commands/ajuda.md +21 -21
  29. package/kit/commands/atualizar.md +37 -37
  30. package/kit/commands/auditar-marco.md +179 -179
  31. package/kit/commands/auditar-uat.md +23 -23
  32. package/kit/commands/autonomo.md +40 -40
  33. package/kit/commands/branch-pr.md +24 -24
  34. package/kit/commands/burn-rate-status.md +338 -70
  35. package/kit/commands/concluir-marco.md +247 -247
  36. package/kit/commands/configuracoes.md +36 -36
  37. package/kit/commands/definir-perfil.md +10 -10
  38. package/kit/commands/depurar.md +190 -190
  39. package/kit/commands/discutir-fase.md +131 -131
  40. package/kit/commands/entrar-discord.md +17 -17
  41. package/kit/commands/estatisticas.md +18 -18
  42. package/kit/commands/example-greeting.md +33 -33
  43. package/kit/commands/executar-fase.md +58 -58
  44. package/kit/commands/expresso.md +56 -56
  45. package/kit/commands/fase-ui.md +34 -34
  46. package/kit/commands/fazer.md +57 -57
  47. package/kit/commands/fio.md +125 -125
  48. package/kit/commands/fluxos-trabalho.md +64 -64
  49. package/kit/commands/forense.md +176 -176
  50. package/kit/commands/gerenciador.md +38 -38
  51. package/kit/commands/inserir-fase.md +31 -31
  52. package/kit/commands/limpeza.md +17 -17
  53. package/kit/commands/listar-hipoteses-fase.md +45 -45
  54. package/kit/commands/listar-workspaces.md +18 -18
  55. package/kit/commands/mapear-codebase.md +70 -70
  56. package/kit/commands/nota.md +33 -33
  57. package/kit/commands/novo-marco.md +43 -43
  58. package/kit/commands/novo-projeto.md +41 -41
  59. package/kit/commands/novo-workspace.md +43 -43
  60. package/kit/commands/pausar-trabalho.md +37 -37
  61. package/kit/commands/perfil-usuario.md +45 -45
  62. package/kit/commands/pesquisar-fase.md +195 -195
  63. package/kit/commands/planejar-fase.md +67 -67
  64. package/kit/commands/planejar-lacunas.md +33 -33
  65. package/kit/commands/plantar-ideia.md +25 -25
  66. package/kit/commands/progresso.md +24 -24
  67. package/kit/commands/proximo.md +30 -30
  68. package/kit/commands/publicar.md +490 -490
  69. package/kit/commands/rapido.md +35 -35
  70. package/kit/commands/reaplicar-patches.md +124 -124
  71. package/kit/commands/relatorio-sessao.md +19 -19
  72. package/kit/commands/remover-fase.md +31 -31
  73. package/kit/commands/remover-workspace.md +26 -26
  74. package/kit/commands/resumo-marco.md +50 -50
  75. package/kit/commands/retomar-trabalho.md +40 -40
  76. package/kit/commands/revisar-backlog.md +60 -60
  77. package/kit/commands/revisar-ui.md +32 -32
  78. package/kit/commands/revisar.md +37 -37
  79. package/kit/commands/saude.md +21 -21
  80. package/kit/commands/setup-notion.md +93 -93
  81. package/kit/commands/sync-main.md +68 -68
  82. package/kit/commands/validar-fase.md +35 -35
  83. package/kit/commands/verificar-tarefas.md +44 -44
  84. package/kit/commands/verificar-trabalho.md +64 -64
  85. package/kit/file-manifest.json +3 -3
  86. package/kit/framework/bin/lib/commands.cjs +959 -959
  87. package/kit/framework/bin/lib/config.cjs +442 -442
  88. package/kit/framework/bin/lib/core.cjs +1230 -1230
  89. package/kit/framework/bin/lib/frontmatter.cjs +336 -336
  90. package/kit/framework/bin/lib/init.cjs +1442 -1442
  91. package/kit/framework/bin/lib/milestone.cjs +252 -252
  92. package/kit/framework/bin/lib/model-profiles.cjs +68 -68
  93. package/kit/framework/bin/lib/phase.cjs +888 -888
  94. package/kit/framework/bin/lib/profile-output.cjs +952 -952
  95. package/kit/framework/bin/lib/profile-pipeline.cjs +539 -539
  96. package/kit/framework/bin/lib/roadmap.cjs +329 -329
  97. package/kit/framework/bin/lib/security.cjs +382 -382
  98. package/kit/framework/bin/lib/state.cjs +1031 -1031
  99. package/kit/framework/bin/lib/template.cjs +222 -222
  100. package/kit/framework/bin/lib/uat.cjs +282 -282
  101. package/kit/framework/bin/lib/verify.cjs +888 -888
  102. package/kit/framework/bin/lib/workstream.cjs +491 -491
  103. package/kit/framework/bin/tools.cjs +918 -918
  104. package/kit/framework/commands/workstreams.md +63 -63
  105. package/kit/framework/references/checkpoints.md +778 -778
  106. package/kit/framework/references/continuation-format.md +249 -249
  107. package/kit/framework/references/decimal-phase-calculation.md +64 -64
  108. package/kit/framework/references/git-integration.md +295 -295
  109. package/kit/framework/references/git-planning-commit.md +38 -38
  110. package/kit/framework/references/model-profile-resolution.md +36 -36
  111. package/kit/framework/references/model-profiles.md +139 -139
  112. package/kit/framework/references/phase-argument-parsing.md +61 -61
  113. package/kit/framework/references/planning-config.md +202 -202
  114. package/kit/framework/references/questioning.md +162 -162
  115. package/kit/framework/references/tdd.md +263 -263
  116. package/kit/framework/references/ui-brand.md +160 -160
  117. package/kit/framework/references/user-profiling.md +657 -657
  118. package/kit/framework/references/verification-patterns.md +612 -612
  119. package/kit/framework/references/workstream-flag.md +58 -58
  120. package/kit/framework/templates/DEBUG.md +164 -164
  121. package/kit/framework/templates/UAT.md +265 -265
  122. package/kit/framework/templates/UI-SPEC.md +100 -100
  123. package/kit/framework/templates/VALIDATION.md +76 -76
  124. package/kit/framework/templates/claude-md.md +122 -122
  125. package/kit/framework/templates/codebase/architecture.md +185 -185
  126. package/kit/framework/templates/codebase/concerns.md +205 -205
  127. package/kit/framework/templates/codebase/conventions.md +204 -204
  128. package/kit/framework/templates/codebase/integrations.md +192 -192
  129. package/kit/framework/templates/codebase/stack.md +158 -158
  130. package/kit/framework/templates/codebase/structure.md +199 -199
  131. package/kit/framework/templates/codebase/testing.md +301 -301
  132. package/kit/framework/templates/config.json +44 -44
  133. package/kit/framework/templates/context.md +352 -352
  134. package/kit/framework/templates/continue-here.md +78 -78
  135. package/kit/framework/templates/copilot-instructions.md +7 -7
  136. package/kit/framework/templates/debug-subagent-prompt.md +91 -91
  137. package/kit/framework/templates/dev-preferences.md +20 -20
  138. package/kit/framework/templates/discovery.md +146 -146
  139. package/kit/framework/templates/discussion-log.md +63 -63
  140. package/kit/framework/templates/milestone-archive.md +123 -123
  141. package/kit/framework/templates/milestone.md +115 -115
  142. package/kit/framework/templates/phase-prompt.md +610 -610
  143. package/kit/framework/templates/planner-subagent-prompt.md +117 -117
  144. package/kit/framework/templates/project.md +186 -186
  145. package/kit/framework/templates/requirements.md +231 -231
  146. package/kit/framework/templates/research-project/ARCHITECTURE.md +204 -204
  147. package/kit/framework/templates/research-project/FEATURES.md +147 -147
  148. package/kit/framework/templates/research-project/PITFALLS.md +200 -200
  149. package/kit/framework/templates/research-project/STACK.md +120 -120
  150. package/kit/framework/templates/research-project/SUMMARY.md +170 -170
  151. package/kit/framework/templates/research.md +419 -419
  152. package/kit/framework/templates/retrospective.md +54 -54
  153. package/kit/framework/templates/roadmap.md +202 -202
  154. package/kit/framework/templates/state.md +176 -176
  155. package/kit/framework/templates/summary-complex.md +59 -59
  156. package/kit/framework/templates/summary-minimal.md +41 -41
  157. package/kit/framework/templates/summary-standard.md +48 -48
  158. package/kit/framework/templates/summary.md +209 -209
  159. package/kit/framework/templates/user-profile.md +146 -146
  160. package/kit/framework/templates/user-setup.md +256 -256
  161. package/kit/framework/templates/verification-report.md +258 -258
  162. package/kit/framework/workflows/add-phase.md +112 -112
  163. package/kit/framework/workflows/add-tests.md +351 -351
  164. package/kit/framework/workflows/add-todo.md +158 -158
  165. package/kit/framework/workflows/audit-milestone.md +340 -340
  166. package/kit/framework/workflows/audit-uat.md +109 -109
  167. package/kit/framework/workflows/autonomous.md +891 -891
  168. package/kit/framework/workflows/check-todos.md +177 -177
  169. package/kit/framework/workflows/cleanup.md +152 -152
  170. package/kit/framework/workflows/complete-milestone.md +696 -696
  171. package/kit/framework/workflows/diagnose-issues.md +231 -231
  172. package/kit/framework/workflows/discovery-phase.md +289 -289
  173. package/kit/framework/workflows/discuss-phase-assumptions.md +653 -653
  174. package/kit/framework/workflows/discuss-phase.md +784 -784
  175. package/kit/framework/workflows/do.md +104 -104
  176. package/kit/framework/workflows/execute-phase.md +838 -838
  177. package/kit/framework/workflows/execute-plan.md +510 -510
  178. package/kit/framework/workflows/fast.md +102 -102
  179. package/kit/framework/workflows/forensics.md +265 -265
  180. package/kit/framework/workflows/health.md +181 -181
  181. package/kit/framework/workflows/help.md +619 -619
  182. package/kit/framework/workflows/insert-phase.md +130 -130
  183. package/kit/framework/workflows/list-phase-assumptions.md +178 -178
  184. package/kit/framework/workflows/list-workspaces.md +56 -56
  185. package/kit/framework/workflows/manager.md +362 -362
  186. package/kit/framework/workflows/map-codebase.md +377 -377
  187. package/kit/framework/workflows/milestone-summary.md +223 -223
  188. package/kit/framework/workflows/new-milestone.md +486 -486
  189. package/kit/framework/workflows/new-project.md +1159 -1159
  190. package/kit/framework/workflows/new-workspace.md +237 -237
  191. package/kit/framework/workflows/next.md +97 -97
  192. package/kit/framework/workflows/node-repair.md +92 -92
  193. package/kit/framework/workflows/note.md +156 -156
  194. package/kit/framework/workflows/pause-work.md +176 -176
  195. package/kit/framework/workflows/plan-milestone-gaps.md +273 -273
  196. package/kit/framework/workflows/plan-phase.md +765 -765
  197. package/kit/framework/workflows/plant-seed.md +169 -169
  198. package/kit/framework/workflows/pr-branch.md +129 -129
  199. package/kit/framework/workflows/profile-user.md +450 -450
  200. package/kit/framework/workflows/progress.md +507 -507
  201. package/kit/framework/workflows/quick.md +757 -757
  202. package/kit/framework/workflows/remove-phase.md +155 -155
  203. package/kit/framework/workflows/remove-workspace.md +90 -90
  204. package/kit/framework/workflows/research-phase.md +82 -82
  205. package/kit/framework/workflows/resume-project.md +326 -326
  206. package/kit/framework/workflows/review.md +228 -228
  207. package/kit/framework/workflows/session-report.md +146 -146
  208. package/kit/framework/workflows/settings.md +283 -283
  209. package/kit/framework/workflows/ship.md +228 -228
  210. package/kit/framework/workflows/stats.md +60 -60
  211. package/kit/framework/workflows/transition.md +671 -671
  212. package/kit/framework/workflows/ui-phase.md +302 -302
  213. package/kit/framework/workflows/ui-review.md +165 -165
  214. package/kit/framework/workflows/update.md +323 -323
  215. package/kit/framework/workflows/validate-phase.md +174 -174
  216. package/kit/framework/workflows/verify-phase.md +252 -252
  217. package/kit/framework/workflows/verify-work.md +637 -637
  218. package/kit/hooks/check-update.js +118 -118
  219. package/kit/hooks/context-monitor.js +163 -163
  220. package/kit/hooks/prompt-guard.js +103 -103
  221. package/kit/hooks/statusline.js +125 -125
  222. package/kit/hooks/workflow-guard.js +101 -101
  223. package/kit/settings.json +45 -45
  224. package/kit/skills/example-skill/SKILL.md +42 -42
  225. package/package.json +63 -59
  226. package/src/core/kit.js +216 -216
  227. package/src/core/metrics.js +135 -10
  228. package/src/core/reflect.js +247 -247
  229. package/src/core/reverse-sync.js +372 -372
  230. package/src/core/sync.js +418 -418
  231. package/src/core/watch.js +121 -121
  232. package/src/mcp-server/index.js +34 -3
@@ -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>