@saulwade/swl-ses 2.5.3 → 2.6.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/CLAUDE.md +192 -192
- package/README.md +600 -600
- package/agentes/auto-evolucion-swl.md +27 -3
- package/bin/swl-ses.js +32 -7
- package/comandos/swl/actualizar.md +174 -174
- package/comandos/swl/adoptar-proyecto.md +265 -265
- package/comandos/swl/aprender.md +836 -823
- package/comandos/swl/aprobar-plan.md +146 -146
- package/comandos/swl/auditar-deps.md +134 -134
- package/comandos/swl/autoresearch.md +264 -264
- package/comandos/swl/ayuda.md +224 -224
- package/comandos/swl/brainstorm.md +51 -51
- package/comandos/swl/briefing.md +119 -119
- package/comandos/swl/checkpoint.md +325 -325
- package/comandos/swl/claudemd.md +234 -234
- package/comandos/swl/compactar.md +310 -310
- package/comandos/swl/configurar-ci.md +235 -235
- package/comandos/swl/contexto.md +110 -110
- package/comandos/swl/contribuir.md +233 -233
- package/comandos/swl/crear-skill.md +292 -292
- package/comandos/swl/cron.md +194 -194
- package/comandos/swl/deuda-codigo.md +97 -97
- package/comandos/swl/discutir-fase.md +169 -169
- package/comandos/swl/ejecutar-fase.md +233 -233
- package/comandos/swl/evaluar-skill.md +520 -505
- package/comandos/swl/evolucion-continua.md +73 -0
- package/comandos/swl/evolucionar.md +267 -254
- package/comandos/swl/exportar-vault.md +583 -583
- package/comandos/swl/fix.md +118 -118
- package/comandos/swl/gateway.md +158 -158
- package/comandos/swl/inbox.md +116 -116
- package/comandos/swl/instalar.md +220 -220
- package/comandos/swl/instintos.md +86 -86
- package/comandos/swl/mapear-codebase.md +312 -312
- package/comandos/swl/mcp-status.md +175 -175
- package/comandos/swl/modelo.md +100 -100
- package/comandos/swl/nemesis.md +433 -433
- package/comandos/swl/notificaciones.md +299 -299
- package/comandos/swl/nuevo-proyecto.md +251 -251
- package/comandos/swl/planear-fase.md +263 -263
- package/comandos/swl/plugins.md +256 -256
- package/comandos/swl/predecir.md +169 -169
- package/comandos/swl/reflect-skills.md +125 -125
- package/comandos/swl/release.md +450 -450
- package/comandos/swl/revisar-impacto.md +201 -201
- package/comandos/swl/revisar.md +330 -330
- package/comandos/swl/seguridad.md +189 -189
- package/comandos/swl/sesiones.md +200 -200
- package/comandos/swl/skill-search.md +113 -113
- package/comandos/swl/status.md +343 -343
- package/comandos/swl/verificar.md +817 -817
- package/comandos/swl/wiki.md +620 -620
- package/gateway/cron/jobs.example.json +12 -0
- package/habilidades/auto-evolucion-protocolo/SKILL.md +294 -276
- package/habilidades/autoresearch/SKILL.md +3 -2
- package/habilidades/benchmark-memoria/SKILL.md +7 -7
- package/habilidades/changelog-generator/SKILL.md +174 -174
- package/habilidades/changelog-generator/scripts/parse-commits.js +2 -1
- package/habilidades/checkpoints-verificacion/SKILL.md +6 -0
- package/habilidades/context-builder/SKILL.md +4 -0
- package/habilidades/doubt-driven-review/SKILL.md +207 -191
- package/habilidades/drift-detection/SKILL.md +6 -1
- package/habilidades/ejecutar-fase/SKILL.md +6 -6
- package/habilidades/eval-framework/SKILL.md +8 -3
- package/habilidades/harness-claude-code/SKILL.md +312 -308
- package/habilidades/infra-github-actions/SKILL.md +4 -3
- package/habilidades/instalar-sistema/SKILL.md +227 -223
- package/habilidades/memoria-busqueda/SKILL.md +31 -39
- package/habilidades/planear-fase/SKILL.md +358 -350
- package/habilidades/proceso-ddia-fundamentos/SKILL.md +3 -2
- package/habilidades/swl-claudemd/SKILL.md +6 -7
- package/habilidades/swl-dashboard/SKILL.md +11 -43
- package/habilidades/tdd-workflow/SKILL.md +749 -744
- package/habilidades/validacion-ci-sistema/SKILL.md +1 -1
- package/hooks/agente-lifecycle.js +2 -1
- package/hooks/aiisms-detector.js +13 -4
- package/hooks/audit-trail.js +2 -1
- package/hooks/auto-consolidacion.js +2 -1
- package/hooks/captura-acciones-post.js +2 -1
- package/hooks/captura-acciones-session.js +2 -1
- package/hooks/captura-feedback-usuario.js +3 -2
- package/hooks/claudemd-bloat-detector.js +12 -3
- package/hooks/claudemd-duplicacion-detector.js +13 -3
- package/hooks/contexto-iteracion.js +2 -1
- package/hooks/degradacion-instintos.js +2 -1
- package/hooks/extraccion-aprendizajes.js +109 -15
- package/hooks/grafo-contexto.js +2 -1
- package/hooks/guardrail-modelo.js +2 -1
- package/hooks/inbox-aviso.js +2 -1
- package/hooks/inyeccion-contexto.js +2 -1
- package/hooks/lib/agent-matcher.js +2 -1
- package/hooks/lib/agent-routing.js +2 -1
- package/hooks/lib/autonomia.js +5 -3
- package/hooks/lib/captura-acciones.js +2 -1
- package/hooks/lib/consolidation-lock.js +21 -10
- package/hooks/lib/etapa-auto-evolucion.js +10 -4
- package/hooks/lib/etapa-metricas.js +2 -1
- package/hooks/lib/etapa-perfil-usuario.js +20 -4
- package/hooks/lib/evolution-tracker.js +2 -1
- package/hooks/lib/gateway-notify.js +193 -179
- package/hooks/lib/loop-telemetry.js +5 -4
- package/hooks/lib/mcp-health.js +2 -1
- package/hooks/lib/memory-search.js +4 -0
- package/hooks/lib/merkle-audit.js +58 -6
- package/hooks/lib/nudge-tracker.js +2 -1
- package/hooks/lib/otlp-exporter.js +2 -1
- package/hooks/lib/propose-step.js +3 -2
- package/hooks/lib/raiz-proyecto.js +102 -0
- package/hooks/lib/run-log.js +2 -1
- package/hooks/lib/singleton-guard.js +218 -27
- package/hooks/lib/telegram-cliente.js +17 -8
- package/hooks/preservar-estado-pre-compact.js +2 -1
- package/hooks/proteccion-rutas.js +59 -3
- package/hooks/registro-turnos.js +2 -1
- package/hooks/resumen-sesion.js +2 -1
- package/hooks/risk-scoring.js +2 -1
- package/hooks/rotar-audit-auto.js +46 -20
- package/hooks/session-briefing.js +127 -1
- package/hooks/spec-gate.js +2 -1
- package/hooks/sugerir-contribuir.js +6 -3
- package/hooks/sugerir-regenerar-inventario.js +3 -2
- package/hooks/tdd-gate.js +2 -1
- package/hooks/telemetria-agentes.js +2 -1
- package/hooks/telemetria-skill-routing.js +2 -1
- package/hooks/tracking-costos.js +4 -3
- package/hooks/validar-formato-post-subagente.js +2 -1
- package/hooks/validar-intent-spec.js +2 -1
- package/hooks/validar-memoria-hook.js +13 -3
- package/hooks/validar-planning-paths.js +2 -1
- package/instintos/.backups/perfil-usuario.yaml.2026-07-10-165128.bak +53 -0
- package/instintos/.backups/proyecto.yaml.2026-07-10-165128.bak +372 -0
- package/instintos/perfil-usuario.yaml +506 -3
- package/instintos/proyecto.yaml +78 -0
- package/llms.txt +2 -2
- package/manifiestos/canonical-hashes.json +335 -3
- package/manifiestos/modulos.json +19 -14
- package/manifiestos/planning-paths.json +1 -0
- package/manifiestos/skills-lock.json +50 -50
- package/package.json +2 -3
- package/plugin.json +2 -2
- package/scripts/actualizar.js +3 -0
- package/scripts/auditar-clases-conocidas.js +32 -4
- package/scripts/benchmark-memoria.js +1 -0
- package/scripts/cli/autonomia.js +23 -0
- package/scripts/cli/benchmark-memoria.js +37 -0
- package/scripts/cli/ciclo-autonomo.js +73 -0
- package/scripts/cli/ciclo-fase-b.js +102 -0
- package/scripts/cli/guardrail-metrics.js +39 -0
- package/scripts/cli/loop-telemetry.js +4 -2
- package/scripts/cli/memoria-search.js +69 -0
- package/scripts/cli/nudge-accionar.js +39 -0
- package/scripts/cli/run-eval.js +38 -0
- package/scripts/cli/run-skill-evals.js +13 -2
- package/scripts/derivar-feature-list.js +15 -14
- package/scripts/desinstalar.js +11 -0
- package/scripts/doctor.js +24 -10
- package/scripts/instalador.js +85 -7
- package/scripts/lib/activar-hooks-proyecto.js +12 -0
- package/scripts/lib/auditar-invocaciones-comandos.js +96 -6
- package/scripts/lib/ciclo-autonomo/candidatos.js +174 -0
- package/scripts/lib/ciclo-autonomo/config.js +165 -0
- package/scripts/lib/ciclo-autonomo/drenador-feedback.js +174 -0
- package/scripts/lib/ciclo-autonomo/fallback.js +77 -0
- package/scripts/lib/ciclo-autonomo/guard-convivencia.js +139 -0
- package/scripts/lib/ciclo-autonomo/higiene-nudges.js +112 -0
- package/scripts/lib/ciclo-autonomo/index.js +301 -0
- package/scripts/lib/ciclo-autonomo/lock.js +124 -0
- package/scripts/lib/ciclo-autonomo/presupuesto.js +122 -0
- package/scripts/lib/ciclo-autonomo/puente-degradacion.js +240 -0
- package/scripts/lib/ciclo-autonomo/runner-fase-b.js +248 -0
- package/scripts/lib/ciclo-autonomo/writer-instintos.js +190 -0
- package/scripts/lib/ciclo-autonomo/yaml-instintos.js +535 -0
- package/scripts/lib/estado.js +9 -0
- package/scripts/lib/gitignore-manifest.js +8 -1
- package/scripts/lib/hooks-settings.js +45 -0
- package/scripts/rotar-audit-logs.js +48 -2
- package/scripts/run-eval.js +1 -0
- package/scripts/run-skill-evals.js +287 -8
- package/scripts/smoke-test.js +16 -8
- package/scripts/tui/pantallas/install-wizard.js +403 -347
- package/scripts/validar.js +40 -1
|
@@ -15,7 +15,7 @@ modeloAlterno: haiku
|
|
|
15
15
|
ventanaContexto: 200k
|
|
16
16
|
permissionMode: acceptEdits
|
|
17
17
|
color: gold
|
|
18
|
-
version: 1.6.
|
|
18
|
+
version: 1.6.1
|
|
19
19
|
nivelRiesgo: ALTO
|
|
20
20
|
skillsInvocables: [auto-evolucion-protocolo, aprendizaje-continuo, validacion-ci-sistema, extractor-de-aprendizajes, autoresearch, evaluacion-agentes, seguridad-skills-ia]
|
|
21
21
|
skillsRestringidos: [fastapi-python, angular-component, django-expert, postgresql-table-design]
|
|
@@ -173,17 +173,41 @@ probablemente no resolverá el problema observado. El `score_after` caerá y el
|
|
|
173
173
|
gate revertirá. Deja claro en la hipótesis por qué el cambio aborda el tipo de
|
|
174
174
|
fallo reportado.
|
|
175
175
|
|
|
176
|
+
### Cierre del nudge atendido (obligatorio)
|
|
177
|
+
|
|
178
|
+
Al terminar una evolución disparada por un nudge, márcalo como accionado con
|
|
179
|
+
`swl-ses nudge-accionar <id> --por auto-evolucion-swl` (el `id` viene en el
|
|
180
|
+
JSONL del nudge). Sin este cierre, `session-briefing` seguirá reportándolo
|
|
181
|
+
como pendiente y el escalamiento a alerta persistente contará ruido.
|
|
182
|
+
|
|
176
183
|
### Formato de hipótesis a registrar en `evoluciones.jsonl`
|
|
177
184
|
|
|
178
185
|
Al llamar a `run-skill-evals.js --record-baseline` y `--record-after`, usa
|
|
179
|
-
`--hypothesis=` con un enunciado causal explícito
|
|
186
|
+
`--hypothesis=` con un enunciado causal explícito.
|
|
187
|
+
|
|
188
|
+
**Anti-gaming (obligatorio — regla `seguridad-agentes.md § Anti-gaming`)**:
|
|
189
|
+
NUNCA declares tú el score de `--record-after`. El score que aprueba una
|
|
190
|
+
evolución debe venir del artefacto de evaluación con procedencia que emite
|
|
191
|
+
`/swl:evaluar-skill` (actor independiente). El flujo correcto:
|
|
180
192
|
|
|
181
193
|
```bash
|
|
182
|
-
|
|
194
|
+
# 1. Evaluación INDEPENDIENTE del target (no la corres tú sobre tu propio
|
|
195
|
+
# cambio — la ejecuta /swl:evaluar-skill, que emite el artefacto):
|
|
196
|
+
# /swl:evaluar-skill TU_TARGET
|
|
197
|
+
# → escribe .planning/evolution/evaluaciones/TU_TARGET.json
|
|
198
|
+
|
|
199
|
+
# 2. Registro del after: el score se LEE del artefacto (sin --score):
|
|
200
|
+
node scripts/run-skill-evals.js TU_TARGET --record-after \
|
|
183
201
|
--hypothesis="reforce seccion OUTPUT con template explicito; esperaba reducir bad_output_format" \
|
|
184
202
|
--check-invariants
|
|
185
203
|
```
|
|
186
204
|
|
|
205
|
+
`--record-after` FALLA (exit 8) si el artefacto no existe, está vencido
|
|
206
|
+
(>7 días) o declara `producido_por` igual al target; y FALLA (exit 9) si
|
|
207
|
+
pasas un `--score` que discrepa del artefacto. El evento en
|
|
208
|
+
`evoluciones.jsonl` registra `producido_por`, `evaluacion_path` y
|
|
209
|
+
`evaluacion_fecha` — la cadena de procedencia que audita `validar.js`.
|
|
210
|
+
|
|
187
211
|
El texto de la hipótesis queda en el log y será consultado después por
|
|
188
212
|
`/swl:status evolucion` y por la consolidación de aprendizajes.
|
|
189
213
|
|
package/bin/swl-ses.js
CHANGED
|
@@ -106,8 +106,8 @@ const COMANDOS = {
|
|
|
106
106
|
doctor: '../scripts/doctor.js',
|
|
107
107
|
update: '../scripts/actualizar.js',
|
|
108
108
|
uninstall: '../scripts/desinstalar.js',
|
|
109
|
-
prune: '../scripts/prune.js',
|
|
110
|
-
valor: '../scripts/evidencia-valor.js',
|
|
109
|
+
prune: '../scripts/prune.js',
|
|
110
|
+
valor: '../scripts/evidencia-valor.js',
|
|
111
111
|
'field-report': '../scripts/field-report.js',
|
|
112
112
|
'check-update': '../scripts/check-update.js',
|
|
113
113
|
'install-git-hook': '../scripts/instalar-git-hook.js',
|
|
@@ -141,7 +141,14 @@ const COMANDOS = {
|
|
|
141
141
|
'loop-telemetry': '../scripts/cli/loop-telemetry.js',
|
|
142
142
|
'configurar-ci': '../scripts/cli/configurar-ci.js',
|
|
143
143
|
'ciclo-evolucion': '../scripts/cli/ciclo-evolucion.js',
|
|
144
|
+
'ciclo-autonomo': '../scripts/cli/ciclo-autonomo.js',
|
|
145
|
+
'ciclo-fase-b': '../scripts/cli/ciclo-fase-b.js',
|
|
144
146
|
notificaciones: '../scripts/cli/notificaciones.js',
|
|
147
|
+
autonomia: '../scripts/cli/autonomia.js',
|
|
148
|
+
'memoria-search': '../scripts/cli/memoria-search.js',
|
|
149
|
+
'guardrail-metrics': '../scripts/cli/guardrail-metrics.js',
|
|
150
|
+
'run-eval': '../scripts/cli/run-eval.js',
|
|
151
|
+
'benchmark-memoria': '../scripts/cli/benchmark-memoria.js',
|
|
145
152
|
};
|
|
146
153
|
|
|
147
154
|
// Comandos con subcomandos (nivel 2)
|
|
@@ -164,9 +171,9 @@ COMANDOS PRINCIPALES:
|
|
|
164
171
|
doctor Diagnóstica problemas de instalación
|
|
165
172
|
update Actualiza componentes instalados
|
|
166
173
|
uninstall Desinstala componentes del runtime
|
|
167
|
-
prune Purga componentes retirados del paquete (dry-run; --confirmar ejecuta)
|
|
168
|
-
valor Panel de evidencia de valor del harness (intercepciones, defectos, DORA/CI, uso; --json, --dias N)
|
|
169
|
-
install --solo-hooks Activa hooks (telemetría) a nivel proyecto apuntando al scope global — sin duplicar componentes en la UI
|
|
174
|
+
prune Purga componentes retirados del paquete (dry-run; --confirmar ejecuta)
|
|
175
|
+
valor Panel de evidencia de valor del harness (intercepciones, defectos, DORA/CI, uso; --json, --dias N)
|
|
176
|
+
install --solo-hooks Activa hooks (telemetría) a nivel proyecto apuntando al scope global — sin duplicar componentes en la UI
|
|
170
177
|
field-report Reporte de agregados anónimos para compartir con el autor (opt-in, revisión manual)
|
|
171
178
|
check-update Fuerza consulta inmediata de nueva versión en npm (sin throttle)
|
|
172
179
|
install-git-hook [--force] Instala pre-commit hook que avisa de nuevas versiones.
|
|
@@ -244,9 +251,26 @@ COMANDOS PRINCIPALES:
|
|
|
244
251
|
Usado por /swl:configurar-ci.
|
|
245
252
|
ciclo-evolucion Regenera .planning/evolution/metricas.json.
|
|
246
253
|
Usado por /swl:status.
|
|
254
|
+
ciclo-autonomo [on|off|status] Motor determinista de aprendizaje (Fase A,
|
|
255
|
+
ADR-0041). Nace encendido; off = kill-switch.
|
|
256
|
+
Usado por /swl:evolucion-continua.
|
|
257
|
+
ciclo-fase-b [--dry-run|status] Runner headless de Fase B (ADR-0042 gate
|
|
258
|
+
G-B). En esta versión siempre dry-run.
|
|
259
|
+
nudge-accionar <id> [--por X] Marca un nudge como accionado (cierra el
|
|
260
|
+
ciclo). Usado por /swl:aprender y /swl:evolucionar.
|
|
247
261
|
notificaciones <op> Telegram: init|status|disable|repair|bot-start|
|
|
248
262
|
bot-stop|bot-status|bot-restart|bot-enable-autostart|
|
|
249
263
|
bot-disable-autostart. Usado por /swl:notificaciones.
|
|
264
|
+
autonomia --accion="..." Registra auto-checkpoint según el dial de
|
|
265
|
+
autonomía. Usado por ejecutar-fase.
|
|
266
|
+
memoria-search <op> Búsqueda en memoria del proyecto: search|timeline|
|
|
267
|
+
fetch (JSON). Usado por memoria-busqueda.
|
|
268
|
+
guardrail-metrics [--json] Métricas + diagnóstico de guardrails de la sesión.
|
|
269
|
+
Usado por /swl:status (dashboard).
|
|
270
|
+
run-eval <eval.json> Ejecuta un eval del framework de validación de
|
|
271
|
+
outputs. --rebuild-aggregate reconstruye métricas.
|
|
272
|
+
benchmark-memoria [--json] Benchmark de retrieval de memoria (--dataset,
|
|
273
|
+
--limit, --verbose).
|
|
250
274
|
info [--target <runtime>] Muestra información del sistema instalado
|
|
251
275
|
help Muestra esta ayuda (alias de --help)
|
|
252
276
|
list [--target <runtime>] Lista todos los agentes y skills instalados
|
|
@@ -263,8 +287,9 @@ OPCIONES DE INSTALL:
|
|
|
263
287
|
--target <runtime> Runtime destino: claude|openclaude|copilot|opencode|codex|gemini|cursor (default: claude)
|
|
264
288
|
--profile <perfil> Perfil: core|backend-python|backend-node|frontend-react|frontend-angular|
|
|
265
289
|
fullstack-python-angular|fullstack-node-react|mobile|devops|completo (default: completo)
|
|
266
|
-
--with <
|
|
267
|
-
|
|
290
|
+
--with <modulos> Incluir módulos adicionales, incluidos los opt-in fuera de todo perfil
|
|
291
|
+
(p. ej. reglas-personales). Quedan en el install-state y update los preserva
|
|
292
|
+
--without <modulos> Excluir módulos (separados por coma; también quita extras preservados)
|
|
268
293
|
--global Instalar en directorio global del runtime (~/.claude, etc.)
|
|
269
294
|
--local Instalar en directorio local del proyecto (.claude/, etc.)
|
|
270
295
|
--dry-run Mostrar plan sin aplicar cambios
|
|
@@ -1,174 +1,174 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: swl:actualizar
|
|
3
|
-
description: Actualiza el sistema SWL a la última versión disponible. Detecta automáticamente el perfil instalado y re-instala con --force preservando la configuración del usuario. No requiere desinstalar primero.
|
|
4
|
-
allowed_tools: ["Read", "Bash", "Glob"]
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# /swl:actualizar — Actualizar sistema SWL
|
|
8
|
-
|
|
9
|
-
Eres el actualizador del sistema SWL dentro de Claude Code. Tu misión es actualizar los componentes instalados a la última versión disponible sin perder la configuración del usuario ni requerir desinstalación previa.
|
|
10
|
-
|
|
11
|
-
## Cuándo usar este comando
|
|
12
|
-
|
|
13
|
-
- Cuando se publicó una nueva versión del sistema SWL y quieres obtener las mejoras
|
|
14
|
-
- Después de que `/swl:status salud` reporta que la versión instalada está desactualizada
|
|
15
|
-
- Cuando otro miembro del equipo indica que hay actualización disponible
|
|
16
|
-
- Para re-instalar el mismo perfil después de modificaciones manuales que dejaron el sistema inconsistente
|
|
17
|
-
|
|
18
|
-
No usar si SWL no está instalado — en ese caso usar `/swl:instalar`.
|
|
19
|
-
|
|
20
|
-
## Paso 0 — Verificar que SWL está instalado
|
|
21
|
-
|
|
22
|
-
```bash
|
|
23
|
-
cat .claude/.swl-install-state.json 2>/dev/null
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
Si NO existe archivo de estado:
|
|
27
|
-
- Informa: "No se encontró una instalación de SWL en este proyecto."
|
|
28
|
-
- Sugiere: "Usa `/swl:instalar` para instalar SWL por primera vez."
|
|
29
|
-
- DETENTE.
|
|
30
|
-
|
|
31
|
-
Si existe, extrae:
|
|
32
|
-
- `perfil`: el perfil actualmente instalado
|
|
33
|
-
- `versionSistema`: la versión instalada
|
|
34
|
-
- `global`: si fue instalación global
|
|
35
|
-
- `archivosInstalados`: cantidad de archivos
|
|
36
|
-
|
|
37
|
-
Informa al usuario:
|
|
38
|
-
```
|
|
39
|
-
SWL instalado:
|
|
40
|
-
Versión: <versionSistema>
|
|
41
|
-
Perfil: <perfil>
|
|
42
|
-
Archivos: <N>
|
|
43
|
-
Tipo: <local|global>
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
## Paso 1 — Verificar versión disponible
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
npm view @saulwade/swl-ses version 2>/dev/null \
|
|
50
|
-
|| npm view @saul-wade/swl-ses version --registry=https://npm.pkg.github.com 2>/dev/null
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
Si hay una versión más nueva, informa:
|
|
54
|
-
- "Versión instalada: **X**. Versión disponible: **Y**."
|
|
55
|
-
|
|
56
|
-
Si ya está en la última versión:
|
|
57
|
-
- "Ya tienes la última versión (**X**). ¿Deseas re-instalar de todos modos?"
|
|
58
|
-
- Si el usuario dice no, DETENTE.
|
|
59
|
-
|
|
60
|
-
## Paso 1.5 — Descubrimiento de features nuevas
|
|
61
|
-
|
|
62
|
-
Cuando hay una versión nueva disponible, mostrar qué cambió entre la versión
|
|
63
|
-
instalada y la disponible para que el usuario tome una decisión informada.
|
|
64
|
-
|
|
65
|
-
```bash
|
|
66
|
-
# Obtener changelog entre versiones (si está disponible localmente o via npm)
|
|
67
|
-
CURRENT="<version_instalada>"
|
|
68
|
-
AVAILABLE="<version_disponible>"
|
|
69
|
-
|
|
70
|
-
# Opción 1: Si el repo SWL está disponible como referencia
|
|
71
|
-
if [ -f "CHANGELOG.md" ]; then
|
|
72
|
-
# Extraer entradas del changelog entre las dos versiones
|
|
73
|
-
sed -n "/## \[$AVAILABLE\]/,/## \[$CURRENT\]/p" CHANGELOG.md | head -50
|
|
74
|
-
fi
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
Presentar al usuario un resumen categorizado:
|
|
78
|
-
|
|
79
|
-
```
|
|
80
|
-
=== Novedades entre v<CURRENT> y v<AVAILABLE> ===
|
|
81
|
-
|
|
82
|
-
📦 Componentes nuevos:
|
|
83
|
-
- [agentes/skills/hooks/comandos nuevos]
|
|
84
|
-
|
|
85
|
-
🔧 Mejoras:
|
|
86
|
-
- [mejoras a componentes existentes]
|
|
87
|
-
|
|
88
|
-
🐛 Correcciones:
|
|
89
|
-
- [bugs corregidos]
|
|
90
|
-
|
|
91
|
-
⚠ Cambios que requieren atención:
|
|
92
|
-
- [breaking changes o migraciones necesarias]
|
|
93
|
-
- [reglas nuevas obligatorias]
|
|
94
|
-
- [hooks nuevos que podrían afectar el flujo]
|
|
95
|
-
|
|
96
|
-
💡 Guía de migración:
|
|
97
|
-
- [Si hay cambios breaking, pasos concretos para adaptar el proyecto]
|
|
98
|
-
- [Si hay hooks nuevos, cómo configurarlos]
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
Si no se puede obtener el changelog, informar:
|
|
102
|
-
```
|
|
103
|
-
No se pudo obtener el detalle de cambios entre versiones.
|
|
104
|
-
Consulta el CHANGELOG.md del repositorio SWL para ver las novedades.
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
## Paso 2 — Confirmar actualización
|
|
108
|
-
|
|
109
|
-
```
|
|
110
|
-
=== Actualización SWL ===
|
|
111
|
-
|
|
112
|
-
Versión actual: <version instalada>
|
|
113
|
-
Versión disponible: <version nueva>
|
|
114
|
-
Perfil: <perfil>
|
|
115
|
-
Tipo: <local|global>
|
|
116
|
-
|
|
117
|
-
La actualización:
|
|
118
|
-
- Sobrescribe agentes, skills, comandos, reglas y hooks
|
|
119
|
-
- Actualiza hooks en settings.json
|
|
120
|
-
- Preserva _userland/ (extensiones del usuario)
|
|
121
|
-
- Preserva .planning/ (estado del proyecto)
|
|
122
|
-
|
|
123
|
-
¿Proceder?
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
Espera confirmación del usuario.
|
|
127
|
-
|
|
128
|
-
## Paso 3 — Ejecutar actualización
|
|
129
|
-
|
|
130
|
-
```bash
|
|
131
|
-
npx @saulwade/swl-ses@latest install --target claude --profile <PERFIL> [--global] --force
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
Usa el mismo perfil y ubicación de la instalación original.
|
|
135
|
-
|
|
136
|
-
## Paso 4 — Ejecutar doctor
|
|
137
|
-
|
|
138
|
-
```bash
|
|
139
|
-
npx @saulwade/swl-ses@latest doctor
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
## Paso 5 — Reportar resultado
|
|
143
|
-
|
|
144
|
-
```
|
|
145
|
-
=== Actualización SWL completada ===
|
|
146
|
-
|
|
147
|
-
Versión anterior: <X>
|
|
148
|
-
Versión nueva: <Y>
|
|
149
|
-
Perfil: <perfil>
|
|
150
|
-
Archivos: <N> actualizados
|
|
151
|
-
|
|
152
|
-
Doctor: <resultado>
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
## Cambio de perfil durante actualización
|
|
156
|
-
|
|
157
|
-
Si el usuario dice algo como "actualiza y cambia a perfil completo", ejecuta:
|
|
158
|
-
|
|
159
|
-
```bash
|
|
160
|
-
npx @saulwade/swl-ses@latest install --target claude --profile <NUEVO_PERFIL> [--global] --force
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
Informa que el cambio de perfil puede agregar componentes nuevos pero no elimina los del perfil anterior. Si quiere una instalación limpia con otro perfil, sugiere:
|
|
164
|
-
1. `npx swl-ses uninstall --target claude`
|
|
165
|
-
2. `/swl:instalar` con el nuevo perfil
|
|
166
|
-
|
|
167
|
-
## Reglas de comportamiento
|
|
168
|
-
|
|
169
|
-
- SIEMPRE verifica que SWL está instalado antes de intentar actualizar.
|
|
170
|
-
- SIEMPRE muestra versión actual vs disponible.
|
|
171
|
-
- SIEMPRE confirma antes de ejecutar.
|
|
172
|
-
- NUNCA cambia el perfil sin que el usuario lo pida explícitamente.
|
|
173
|
-
- Preserva `_userland/` y `.planning/` siempre.
|
|
174
|
-
- Si la actualización falla, el sistema queda en el estado anterior (los archivos existentes no se borran antes de copiar los nuevos).
|
|
1
|
+
---
|
|
2
|
+
name: swl:actualizar
|
|
3
|
+
description: Actualiza el sistema SWL a la última versión disponible. Detecta automáticamente el perfil instalado y re-instala con --force preservando la configuración del usuario. No requiere desinstalar primero.
|
|
4
|
+
allowed_tools: ["Read", "Bash", "Glob"]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /swl:actualizar — Actualizar sistema SWL
|
|
8
|
+
|
|
9
|
+
Eres el actualizador del sistema SWL dentro de Claude Code. Tu misión es actualizar los componentes instalados a la última versión disponible sin perder la configuración del usuario ni requerir desinstalación previa.
|
|
10
|
+
|
|
11
|
+
## Cuándo usar este comando
|
|
12
|
+
|
|
13
|
+
- Cuando se publicó una nueva versión del sistema SWL y quieres obtener las mejoras
|
|
14
|
+
- Después de que `/swl:status salud` reporta que la versión instalada está desactualizada
|
|
15
|
+
- Cuando otro miembro del equipo indica que hay actualización disponible
|
|
16
|
+
- Para re-instalar el mismo perfil después de modificaciones manuales que dejaron el sistema inconsistente
|
|
17
|
+
|
|
18
|
+
No usar si SWL no está instalado — en ese caso usar `/swl:instalar`.
|
|
19
|
+
|
|
20
|
+
## Paso 0 — Verificar que SWL está instalado
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
cat .claude/.swl-install-state.json 2>/dev/null
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Si NO existe archivo de estado:
|
|
27
|
+
- Informa: "No se encontró una instalación de SWL en este proyecto."
|
|
28
|
+
- Sugiere: "Usa `/swl:instalar` para instalar SWL por primera vez."
|
|
29
|
+
- DETENTE.
|
|
30
|
+
|
|
31
|
+
Si existe, extrae:
|
|
32
|
+
- `perfil`: el perfil actualmente instalado
|
|
33
|
+
- `versionSistema`: la versión instalada
|
|
34
|
+
- `global`: si fue instalación global
|
|
35
|
+
- `archivosInstalados`: cantidad de archivos
|
|
36
|
+
|
|
37
|
+
Informa al usuario:
|
|
38
|
+
```
|
|
39
|
+
SWL instalado:
|
|
40
|
+
Versión: <versionSistema>
|
|
41
|
+
Perfil: <perfil>
|
|
42
|
+
Archivos: <N>
|
|
43
|
+
Tipo: <local|global>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Paso 1 — Verificar versión disponible
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
npm view @saulwade/swl-ses version 2>/dev/null \
|
|
50
|
+
|| npm view @saul-wade/swl-ses version --registry=https://npm.pkg.github.com 2>/dev/null
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Si hay una versión más nueva, informa:
|
|
54
|
+
- "Versión instalada: **X**. Versión disponible: **Y**."
|
|
55
|
+
|
|
56
|
+
Si ya está en la última versión:
|
|
57
|
+
- "Ya tienes la última versión (**X**). ¿Deseas re-instalar de todos modos?"
|
|
58
|
+
- Si el usuario dice no, DETENTE.
|
|
59
|
+
|
|
60
|
+
## Paso 1.5 — Descubrimiento de features nuevas
|
|
61
|
+
|
|
62
|
+
Cuando hay una versión nueva disponible, mostrar qué cambió entre la versión
|
|
63
|
+
instalada y la disponible para que el usuario tome una decisión informada.
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
# Obtener changelog entre versiones (si está disponible localmente o via npm)
|
|
67
|
+
CURRENT="<version_instalada>"
|
|
68
|
+
AVAILABLE="<version_disponible>"
|
|
69
|
+
|
|
70
|
+
# Opción 1: Si el repo SWL está disponible como referencia
|
|
71
|
+
if [ -f "CHANGELOG.md" ]; then
|
|
72
|
+
# Extraer entradas del changelog entre las dos versiones
|
|
73
|
+
sed -n "/## \[$AVAILABLE\]/,/## \[$CURRENT\]/p" CHANGELOG.md | head -50
|
|
74
|
+
fi
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Presentar al usuario un resumen categorizado:
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
=== Novedades entre v<CURRENT> y v<AVAILABLE> ===
|
|
81
|
+
|
|
82
|
+
📦 Componentes nuevos:
|
|
83
|
+
- [agentes/skills/hooks/comandos nuevos]
|
|
84
|
+
|
|
85
|
+
🔧 Mejoras:
|
|
86
|
+
- [mejoras a componentes existentes]
|
|
87
|
+
|
|
88
|
+
🐛 Correcciones:
|
|
89
|
+
- [bugs corregidos]
|
|
90
|
+
|
|
91
|
+
⚠ Cambios que requieren atención:
|
|
92
|
+
- [breaking changes o migraciones necesarias]
|
|
93
|
+
- [reglas nuevas obligatorias]
|
|
94
|
+
- [hooks nuevos que podrían afectar el flujo]
|
|
95
|
+
|
|
96
|
+
💡 Guía de migración:
|
|
97
|
+
- [Si hay cambios breaking, pasos concretos para adaptar el proyecto]
|
|
98
|
+
- [Si hay hooks nuevos, cómo configurarlos]
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Si no se puede obtener el changelog, informar:
|
|
102
|
+
```
|
|
103
|
+
No se pudo obtener el detalle de cambios entre versiones.
|
|
104
|
+
Consulta el CHANGELOG.md del repositorio SWL para ver las novedades.
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Paso 2 — Confirmar actualización
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
=== Actualización SWL ===
|
|
111
|
+
|
|
112
|
+
Versión actual: <version instalada>
|
|
113
|
+
Versión disponible: <version nueva>
|
|
114
|
+
Perfil: <perfil>
|
|
115
|
+
Tipo: <local|global>
|
|
116
|
+
|
|
117
|
+
La actualización:
|
|
118
|
+
- Sobrescribe agentes, skills, comandos, reglas y hooks
|
|
119
|
+
- Actualiza hooks en settings.json
|
|
120
|
+
- Preserva _userland/ (extensiones del usuario)
|
|
121
|
+
- Preserva .planning/ (estado del proyecto)
|
|
122
|
+
|
|
123
|
+
¿Proceder?
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Espera confirmación del usuario.
|
|
127
|
+
|
|
128
|
+
## Paso 3 — Ejecutar actualización
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
npx -y @saulwade/swl-ses@latest install --target claude --profile <PERFIL> [--global] --force
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Usa el mismo perfil y ubicación de la instalación original.
|
|
135
|
+
|
|
136
|
+
## Paso 4 — Ejecutar doctor
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
npx -y @saulwade/swl-ses@latest doctor
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
## Paso 5 — Reportar resultado
|
|
143
|
+
|
|
144
|
+
```
|
|
145
|
+
=== Actualización SWL completada ===
|
|
146
|
+
|
|
147
|
+
Versión anterior: <X>
|
|
148
|
+
Versión nueva: <Y>
|
|
149
|
+
Perfil: <perfil>
|
|
150
|
+
Archivos: <N> actualizados
|
|
151
|
+
|
|
152
|
+
Doctor: <resultado>
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## Cambio de perfil durante actualización
|
|
156
|
+
|
|
157
|
+
Si el usuario dice algo como "actualiza y cambia a perfil completo", ejecuta:
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
npx -y @saulwade/swl-ses@latest install --target claude --profile <NUEVO_PERFIL> [--global] --force
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
Informa que el cambio de perfil puede agregar componentes nuevos pero no elimina los del perfil anterior. Si quiere una instalación limpia con otro perfil, sugiere:
|
|
164
|
+
1. `npx swl-ses uninstall --target claude`
|
|
165
|
+
2. `/swl:instalar` con el nuevo perfil
|
|
166
|
+
|
|
167
|
+
## Reglas de comportamiento
|
|
168
|
+
|
|
169
|
+
- SIEMPRE verifica que SWL está instalado antes de intentar actualizar.
|
|
170
|
+
- SIEMPRE muestra versión actual vs disponible.
|
|
171
|
+
- SIEMPRE confirma antes de ejecutar.
|
|
172
|
+
- NUNCA cambia el perfil sin que el usuario lo pida explícitamente.
|
|
173
|
+
- Preserva `_userland/` y `.planning/` siempre.
|
|
174
|
+
- Si la actualización falla, el sistema queda en el estado anterior (los archivos existentes no se borran antes de copiar los nuevos).
|