@saulwade/swl-ses 2.5.3 → 2.6.1

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 (214) hide show
  1. package/CLAUDE.md +9 -9
  2. package/README.md +37 -37
  3. package/agentes/_intent-spec.md +73 -73
  4. package/agentes/_propose-step.md +90 -90
  5. package/agentes/accesibilidad-wcag-swl.md +690 -690
  6. package/agentes/arquitecto-swl.md +267 -267
  7. package/agentes/auto-evolucion-swl.md +932 -908
  8. package/agentes/backend-csharp-swl.md +420 -420
  9. package/agentes/backend-go-swl.md +390 -390
  10. package/agentes/backend-java-swl.md +281 -281
  11. package/agentes/backend-rust-swl.md +364 -364
  12. package/agentes/backend-workers-swl.md +482 -482
  13. package/agentes/cloud-infra-swl.md +509 -509
  14. package/agentes/consolidador-swl.md +541 -541
  15. package/agentes/depurador-swl.md +352 -352
  16. package/agentes/devops-ci-swl.md +400 -400
  17. package/agentes/disenador-ui-swl.md +569 -569
  18. package/agentes/documentador-swl.md +345 -345
  19. package/agentes/frontend-angular-swl.md +621 -621
  20. package/agentes/frontend-css-swl.md +716 -716
  21. package/agentes/frontend-react-swl.md +692 -692
  22. package/agentes/frontend-swl.md +496 -496
  23. package/agentes/frontend-tailwind-swl.md +826 -826
  24. package/agentes/investigador-swl.md +432 -432
  25. package/agentes/investigador-ux-swl.md +505 -505
  26. package/agentes/migrador-swl.md +442 -442
  27. package/agentes/mobile-android-swl.md +511 -511
  28. package/agentes/mobile-cross-swl.md +541 -541
  29. package/agentes/mobile-ios-swl.md +502 -502
  30. package/agentes/mobile-testing-swl.md +302 -302
  31. package/agentes/nemesis-auditor-swl.md +285 -285
  32. package/agentes/observabilidad-swl.md +438 -438
  33. package/agentes/pagos-swl.md +310 -310
  34. package/agentes/perfilador-usuario-swl.md +321 -321
  35. package/agentes/planificador-swl.md +399 -399
  36. package/agentes/producto-prd-swl.md +589 -589
  37. package/agentes/red-team-swl.md +218 -218
  38. package/agentes/release-manager-swl.md +590 -590
  39. package/agentes/rendimiento-swl.md +713 -713
  40. package/agentes/revisor-angular-swl.md +278 -278
  41. package/agentes/revisor-csharp-swl.md +264 -264
  42. package/agentes/revisor-go-swl.md +259 -259
  43. package/agentes/revisor-java-swl.md +257 -257
  44. package/agentes/revisor-kotlin-swl.md +273 -273
  45. package/agentes/revisor-nextjs-swl.md +281 -281
  46. package/agentes/revisor-php-swl.md +271 -271
  47. package/agentes/revisor-react-swl.md +278 -278
  48. package/agentes/revisor-rust-swl.md +346 -346
  49. package/agentes/revisor-seguridad-swl.md +399 -399
  50. package/agentes/revisor-swift-swl.md +268 -268
  51. package/agentes/revisor-typescript-swl.md +346 -346
  52. package/agentes/tdd-qa-swl.md +393 -393
  53. package/bin/swl-ses.js +32 -7
  54. package/comandos/swl/actualizar.md +3 -3
  55. package/comandos/swl/aprender.md +13 -0
  56. package/comandos/swl/deuda-codigo.md +97 -97
  57. package/comandos/swl/evaluar-skill.md +18 -3
  58. package/comandos/swl/evolucion-continua.md +73 -0
  59. package/comandos/swl/evolucionar.md +13 -0
  60. package/comandos/swl/instalar.md +4 -4
  61. package/comandos/swl/notificaciones.md +1 -1
  62. package/comandos/swl/status.md +2 -2
  63. package/gateway/cron/jobs.example.json +12 -0
  64. package/habilidades/auto-evolucion-protocolo/SKILL.md +19 -1
  65. package/habilidades/autoresearch/SKILL.md +3 -2
  66. package/habilidades/backend-async-postgres-testing/SKILL.md +2 -1
  67. package/habilidades/benchmark-memoria/SKILL.md +7 -7
  68. package/habilidades/changelog-generator/SKILL.md +1 -1
  69. package/habilidades/changelog-generator/scripts/parse-commits.js +2 -1
  70. package/habilidades/checkpoints-verificacion/SKILL.md +6 -0
  71. package/habilidades/compactacion-contexto/SKILL.md +2 -1
  72. package/habilidades/contenedores-docker/SKILL.md +4 -2
  73. package/habilidades/context-builder/SKILL.md +4 -0
  74. package/habilidades/doubt-driven-review/SKILL.md +17 -1
  75. package/habilidades/drift-detection/SKILL.md +6 -1
  76. package/habilidades/ejecutar-fase/SKILL.md +6 -6
  77. package/habilidades/ejecutar-task-iterativo/SKILL.md +278 -278
  78. package/habilidades/eval-framework/SKILL.md +8 -3
  79. package/habilidades/extractor-de-aprendizajes/SKILL.md +8 -2
  80. package/habilidades/git-worktrees-paralelo/SKILL.md +19 -1
  81. package/habilidades/harness-claude-code/SKILL.md +7 -3
  82. package/habilidades/infra-github-actions/SKILL.md +4 -3
  83. package/habilidades/instalar-sistema/SKILL.md +5 -1
  84. package/habilidades/memoria-busqueda/SKILL.md +31 -39
  85. package/habilidades/planear-fase/SKILL.md +9 -1
  86. package/habilidades/prevencion-sobreingenieria/recursos/soluciones-nativas.md +166 -166
  87. package/habilidades/prevencion-sobreingenieria/recursos/variables-residuales-post-refactor.md +85 -85
  88. package/habilidades/proceso-ddia-fundamentos/SKILL.md +3 -2
  89. package/habilidades/proceso-ingenieria-requerimientos/SKILL.md +147 -147
  90. package/habilidades/release-semver/SKILL.md +2 -2
  91. package/habilidades/swl-claudemd/SKILL.md +6 -7
  92. package/habilidades/swl-dashboard/SKILL.md +11 -43
  93. package/habilidades/tdd-workflow/SKILL.md +12 -7
  94. package/habilidades/validacion-ci-sistema/SKILL.md +1 -1
  95. package/hooks/agente-lifecycle.js +2 -1
  96. package/hooks/aiisms-detector.js +13 -4
  97. package/hooks/audit-trail.js +2 -1
  98. package/hooks/auto-consolidacion.js +2 -1
  99. package/hooks/captura-acciones-post.js +2 -1
  100. package/hooks/captura-acciones-session.js +2 -1
  101. package/hooks/captura-feedback-usuario.js +3 -2
  102. package/hooks/claudemd-bloat-detector.js +12 -3
  103. package/hooks/claudemd-duplicacion-detector.js +13 -3
  104. package/hooks/contexto-iteracion.js +2 -1
  105. package/hooks/contexto-subagente.js +68 -68
  106. package/hooks/degradacion-instintos.js +2 -1
  107. package/hooks/extraccion-aprendizajes.js +109 -15
  108. package/hooks/grafo-contexto.js +2 -1
  109. package/hooks/guardrail-modelo.js +2 -1
  110. package/hooks/inbox-aviso.js +2 -1
  111. package/hooks/inyeccion-contexto.js +2 -1
  112. package/hooks/lib/agent-matcher.js +2 -1
  113. package/hooks/lib/agent-routing.js +2 -1
  114. package/hooks/lib/autonomia.js +5 -3
  115. package/hooks/lib/captura-acciones.js +2 -1
  116. package/hooks/lib/consolidation-lock.js +21 -10
  117. package/hooks/lib/etapa-auto-evolucion.js +10 -4
  118. package/hooks/lib/etapa-metricas.js +2 -1
  119. package/hooks/lib/etapa-perfil-usuario.js +20 -4
  120. package/hooks/lib/evolution-tracker.js +2 -1
  121. package/hooks/lib/gateway-notify.js +17 -3
  122. package/hooks/lib/loop-telemetry.js +5 -4
  123. package/hooks/lib/mcp-health.js +2 -1
  124. package/hooks/lib/memory-search.js +4 -0
  125. package/hooks/lib/merkle-audit.js +58 -6
  126. package/hooks/lib/notificacion-formato.js +58 -0
  127. package/hooks/lib/nudge-tracker.js +2 -1
  128. package/hooks/lib/otlp-exporter.js +2 -1
  129. package/hooks/lib/propose-step.js +3 -2
  130. package/hooks/lib/raiz-proyecto.js +127 -0
  131. package/hooks/lib/run-log.js +2 -1
  132. package/hooks/lib/singleton-guard.js +225 -27
  133. package/hooks/lib/telegram-cliente.js +28 -11
  134. package/hooks/notificacion-telegram.js +13 -3
  135. package/hooks/preservar-estado-pre-compact.js +2 -1
  136. package/hooks/proteccion-rutas.js +59 -3
  137. package/hooks/registro-turnos.js +2 -1
  138. package/hooks/resumen-sesion.js +2 -1
  139. package/hooks/risk-scoring.js +2 -1
  140. package/hooks/rotar-audit-auto.js +46 -20
  141. package/hooks/session-briefing.js +127 -1
  142. package/hooks/spec-gate.js +2 -1
  143. package/hooks/sugerir-contribuir.js +6 -3
  144. package/hooks/sugerir-regenerar-inventario.js +3 -2
  145. package/hooks/tdd-gate.js +2 -1
  146. package/hooks/telemetria-agentes.js +2 -1
  147. package/hooks/telemetria-skill-routing.js +2 -1
  148. package/hooks/tracking-costos.js +4 -3
  149. package/hooks/validar-formato-post-subagente.js +2 -1
  150. package/hooks/validar-intent-spec.js +2 -1
  151. package/hooks/validar-memoria-hook.js +13 -3
  152. package/hooks/validar-planning-paths.js +2 -1
  153. package/instintos/perfil-usuario.yaml +506 -3
  154. package/instintos/proyecto.yaml +78 -0
  155. package/llms.txt +29 -29
  156. package/manifiestos/canonical-hashes.json +5588 -4925
  157. package/manifiestos/hooks-config.json +469 -469
  158. package/manifiestos/invariantes-criticos.json +30 -30
  159. package/manifiestos/modulos.json +1429 -1423
  160. package/manifiestos/planning-paths.json +1 -0
  161. package/manifiestos/skills-lock.json +1275 -1275
  162. package/package.json +94 -95
  163. package/plugin.json +369 -369
  164. package/scripts/actualizar.js +3 -0
  165. package/scripts/auditar-clases-conocidas.js +134 -106
  166. package/scripts/benchmark-memoria.js +1 -0
  167. package/scripts/bootstrap-instintos.js +85 -14
  168. package/scripts/canario-hooks.js +166 -166
  169. package/scripts/cli/autonomia.js +23 -0
  170. package/scripts/cli/benchmark-memoria.js +37 -0
  171. package/scripts/cli/ciclo-autonomo.js +73 -0
  172. package/scripts/cli/ciclo-fase-b.js +102 -0
  173. package/scripts/cli/guardrail-metrics.js +39 -0
  174. package/scripts/cli/loop-telemetry.js +4 -2
  175. package/scripts/cli/memoria-search.js +69 -0
  176. package/scripts/cli/nudge-accionar.js +39 -0
  177. package/scripts/cli/run-eval.js +38 -0
  178. package/scripts/cli/run-skill-evals.js +13 -2
  179. package/scripts/derivar-feature-list.js +15 -14
  180. package/scripts/desinstalar.js +11 -0
  181. package/scripts/doctor.js +50 -13
  182. package/scripts/evidencia-valor.js +101 -101
  183. package/scripts/field-report.js +16 -16
  184. package/scripts/instalador.js +98 -7
  185. package/scripts/lib/activar-hooks-proyecto.js +116 -104
  186. package/scripts/lib/auditar-invocaciones-comandos.js +96 -6
  187. package/scripts/lib/ciclo-autonomo/candidatos.js +174 -0
  188. package/scripts/lib/ciclo-autonomo/config.js +165 -0
  189. package/scripts/lib/ciclo-autonomo/drenador-feedback.js +174 -0
  190. package/scripts/lib/ciclo-autonomo/fallback.js +77 -0
  191. package/scripts/lib/ciclo-autonomo/guard-convivencia.js +139 -0
  192. package/scripts/lib/ciclo-autonomo/higiene-nudges.js +112 -0
  193. package/scripts/lib/ciclo-autonomo/index.js +301 -0
  194. package/scripts/lib/ciclo-autonomo/lock.js +124 -0
  195. package/scripts/lib/ciclo-autonomo/presupuesto.js +122 -0
  196. package/scripts/lib/ciclo-autonomo/puente-degradacion.js +240 -0
  197. package/scripts/lib/ciclo-autonomo/runner-fase-b.js +248 -0
  198. package/scripts/lib/ciclo-autonomo/writer-instintos.js +190 -0
  199. package/scripts/lib/ciclo-autonomo/yaml-instintos.js +535 -0
  200. package/scripts/lib/estado.js +9 -0
  201. package/scripts/lib/evidencia-valor.js +228 -228
  202. package/scripts/lib/expandir-targets.js +71 -71
  203. package/scripts/lib/gitignore-manifest.js +8 -1
  204. package/scripts/lib/hooks-settings.js +45 -0
  205. package/scripts/lib/limpiar-basura-global.js +161 -0
  206. package/scripts/lib/toml-merge.js +204 -204
  207. package/scripts/mcp-server/auth.js +105 -105
  208. package/scripts/mcp-server/cache.js +106 -106
  209. package/scripts/rotar-audit-logs.js +48 -2
  210. package/scripts/run-eval.js +1 -0
  211. package/scripts/run-skill-evals.js +287 -8
  212. package/scripts/smoke-test.js +16 -8
  213. package/scripts/tui/pantallas/install-wizard.js +69 -13
  214. package/scripts/validar.js +40 -1
package/CLAUDE.md CHANGED
@@ -1,4 +1,4 @@
1
- # CLAUDE.md — @saulwade/swl-ses v2.5.3
1
+ # CLAUDE.md — @saulwade/swl-ses v2.6.1
2
2
 
3
3
  ## Reglas de máxima prioridad (aplican SIEMPRE, sin excepción)
4
4
 
@@ -51,8 +51,8 @@ NUNCA asumir, sugerir como hecho consumado, ni escribir en ADRs/manifiestos/CHAN
51
51
  | `node scripts/verificar-release.js` | Gate pre-release: 15+ ubicaciones de versión, sincronización, AI-isms (si `SWL_AIISMS_GATE=1`) |
52
52
  | `node scripts/generar-inventario.js` | Regenera contadores oficiales + catálogos de INVENTARIO/SALUD/llms.txt (NUNCA contar a mano) |
53
53
  | `npm run gen-comandos` | Regenera los bloques `CATALOGO-COMANDOS` de COMANDOS.md y AGENTS.md desde frontmatter; `--check` (en test:all) detecta drift |
54
- | `node scripts/auditar-clases-conocidas.js` | Gate anti-reincidencia de clases de bug documentadas (C1 fecha UTC, C2 comparación sin normalizar EOL, C3 bloqueo ciego en hooks). En test:all |
55
- | `node scripts/canario-hooks.js [--smoke]` | Canario de hooks: grafo de requires distribuido en modulos.json (clase check-update); --smoke ejecuta los 49 en sandbox (en test:release) |
54
+ | `node scripts/auditar-clases-conocidas.js` | Gate anti-reincidencia de clases de bug documentadas (C1 fecha UTC, C2 comparación sin normalizar EOL, C3 bloqueo ciego en hooks). En test:all |
55
+ | `node scripts/canario-hooks.js [--smoke]` | Canario de hooks: grafo de requires distribuido en modulos.json (clase check-update); --smoke ejecuta los 49 en sandbox (en test:release) |
56
56
  | `node scripts/derivar-feature-list.js` | Genera `.planning/feature-list.json` (derivado de `HOJA-RUTA.md`, gitignored, regenerable). Modo `--check` exit 2 si drift detectado. Consumido por `/swl:status metricas fases`. |
57
57
 
58
58
  ## Code style
@@ -63,8 +63,8 @@ NUNCA asumir, sugerir como hecho consumado, ni escribir en ADRs/manifiestos/CHAN
63
63
  - **JSONL para alta frecuencia**: usar `fs.appendFileSync(ruta, JSON.stringify(evento) + '\n')` en hooks de telemetría/auditoría — no `atomicWriteJSON` que reescribe todo
64
64
  - **Fechas de artefactos generados SIEMPRE locales**: `toLocaleDateString('sv')`, NUNCA `toISOString().slice(0,10)` — desde México la tarde ya es "mañana" en UTC (x7 sitios corregidos 2026-07-08)
65
65
  - **Reemplazos con backticks/regex vía `node -e` en bash mangean escapes en silencio** ("aplica" sin aplicar): usar heredoc `node <<'EOF'` + `String.raw` (x3 incidentes 2026-07-08)
66
- - **`plugin.json#agents`/`#skills` son alfabéticos**: insertar en posición — ningún gate valida el orden
67
- - **Todo gate de escaneo nuevo lleva test anti-regresión viva** ("el repo real pasa con exit 0") en `npm test`: pre-commit el gate no se escanea a sí mismo (`git ls-files` ignora untracked) y su doc NO escribe el patrón prohibido literal (se auto-detectó y tumbó el publish v2.5.1)
66
+ - **`plugin.json#agents`/`#skills` son alfabéticos**: insertar en posición — ningún gate valida el orden
67
+ - **Todo gate de escaneo nuevo lleva test anti-regresión viva** ("el repo real pasa con exit 0") en `npm test`: pre-commit el gate no se escanea a sí mismo (`git ls-files` ignora untracked) y su doc NO escribe el patrón prohibido literal (se auto-detectó y tumbó el publish v2.5.1)
68
68
  - **Contrato del CLI (`bin/swl-ses.js`)**: todo subcomando exporta UNA función(opciones) sin efectos al require — test viviente `bin-contrato-comandos.test.js` (3 violaciones cazadas, una en campo)
69
69
  - **YAML inline en frontmatter**: `tools: [Read, Write]`, `skillsInvocables: [skill-a]`. NUNCA CSV string ni mezcla con lista multilínea
70
70
  - **Mensajes de commit**: imperativo en español, formato `<tipo>(<scope>): <descripción>`
@@ -100,7 +100,7 @@ NUNCA asumir, sugerir como hecho consumado, ni escribir en ADRs/manifiestos/CHAN
100
100
  - `@AGENTS.md` — catálogo de agentes con capacidades
101
101
  - `@INVENTARIO.md` — conteos oficiales (regenerado por script)
102
102
  - `@docs/variables-entorno.md` — variables opt-in completas
103
- - `@docs/CI-CD-SETUP.md` — setup de pipelines
103
+ - `@docs/CI-CD-SETUP.md` — setup de pipelines
104
104
  - `@docs/evidencia-valor.md` — medición de valor en campo (`swl-ses valor`), frontera de datos downstream↔repo madre
105
105
  - `@.planning/adrs/README.md` — índice de decisiones arquitecturales
106
106
 
@@ -109,7 +109,7 @@ NUNCA asumir, sugerir como hecho consumado, ni escribir en ADRs/manifiestos/CHAN
109
109
  ## Qué es este repositorio
110
110
 
111
111
  Sistema de ingeniería de software auto-evolutivo multi-runtime polyglot (SDLC completo).
112
- 11 lenguajes, 7 runtimes (Claude, OpenClaude, OpenCode, Gemini, Cursor, Codex, Copilot), 61 agentes, 181 skills, 47 comandos, 77 reglas, 49 hooks.
112
+ 11 lenguajes, 7 runtimes (Claude, OpenClaude, OpenCode, Gemini, Cursor, Codex, Copilot), 61 agentes, 181 skills, 48 comandos, 77 reglas, 49 hooks.
113
113
 
114
114
  ## Estructura del repositorio
115
115
 
@@ -129,11 +129,11 @@ scripts/ bin/ _userland/ .claude/ .planning/
129
129
 
130
130
  ## Comandos del sistema (/swl:*)
131
131
 
132
- Catálogo completo de 47 comandos `/swl:*` en `@COMANDOS.md`. Atajos mentales por categoría:
132
+ Catálogo completo de 48 comandos `/swl:*` en `@COMANDOS.md`. Atajos mentales por categoría:
133
133
 
134
134
  - **Ciclo GSD por fase**: `discutir-fase` → `planear-fase` → `ejecutar-fase` → `verificar` (con discovery routing, modo iterativo `--iterative` y `--until-converge`).
135
135
  - **Anti-context-rot**: `checkpoint`, `compactar`.
136
- - **Aprendizaje**: `aprender`, `evolucionar`, `autoresearch`, `reflect-skills`.
136
+ - **Aprendizaje**: `aprender`, `evolucionar`, `evolucion-continua` (motor determinista on|off|status, ADR-0041), `autoresearch`, `reflect-skills`.
137
137
  - **Calidad**: `revisar`, `verificar`, `nemesis` (auditoría Feynman + State, opcional `--remediar`), `deuda-codigo` (cosecha de marcadores `simplificado:`), `seguridad` (postura del proyecto completo), `fix` (triage y despacho de reparaciones), `predecir` (panel pre-implementación; `--abogado-diablo` critica la decisión).
138
138
  - **Diagnóstico**: `salud`, `metricas`, `dashboard`, `evolucion-estado`.
139
139
  - **Release**: `release`, `configurar-ci`.
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # swl-ses v2.5.3
1
+ # swl-ses v2.6.1
2
2
 
3
3
  > El paquete anterior `@saulwadeleon/swl-software-engineering-system` está deprecado. Migrar a `@saulwade/swl-ses` (npmjs.org canónico) o `@saul-wade/swl-ses` (mirror en GitHub Packages) — el CLI `swl-ses` no cambia.
4
4
 
@@ -47,8 +47,8 @@ El setup requiere **dos comandos en orden**, con propósitos distintos:
47
47
 
48
48
  | Comando | Qué crea | Dónde | Instala agentes/skills |
49
49
  |---------|----------|-------|------------------------|
50
- | `npx @saulwade/swl-ses@latest init` | `.planning/` y `_userland/` (plantillas vacías) | En el proyecto actual | ❌ No |
51
- | `npx @saulwade/swl-ses@latest install` | Agentes, skills, reglas, hooks, comandos `/swl:*` | En `.claude/` del proyecto o en `~/.claude/` global | ✅ Sí |
50
+ | `npx -y @saulwade/swl-ses@latest init` | `.planning/` y `_userland/` (plantillas vacías) | En el proyecto actual | ❌ No |
51
+ | `npx -y @saulwade/swl-ses@latest install` | Agentes, skills, reglas, hooks, comandos `/swl:*` | En `.claude/` del proyecto o en `~/.claude/` global | ✅ Sí |
52
52
 
53
53
  **`init` siempre es local al proyecto.** `install` puede ser local (`--local`, default) o global (`--global`).
54
54
 
@@ -77,9 +77,9 @@ TUI visual" para capturas ASCII de cada pantalla.
77
77
 
78
78
  ```bash
79
79
  cd /ruta/a/tu/proyecto
80
- npx @saulwade/swl-ses@latest init # Crea .planning/ y _userland/
81
- npx @saulwade/swl-ses@latest install --target claude --profile core # Instala agentes, skills, hooks y reglas
82
- npx @saulwade/swl-ses@latest doctor # Verifica que todo quedó correcto
80
+ npx -y @saulwade/swl-ses@latest init # Crea .planning/ y _userland/
81
+ npx -y @saulwade/swl-ses@latest install --target claude --profile core # Instala agentes, skills, hooks y reglas
82
+ npx -y @saulwade/swl-ses@latest doctor # Verifica que todo quedó correcto
83
83
  ```
84
84
 
85
85
  No requiere autenticación. El paquete `swl-ses` está publicado en npmjs.
@@ -137,7 +137,7 @@ claude
137
137
  ```
138
138
 
139
139
  > Para forzar siempre la última versión:
140
- > `npx @saulwade/swl-ses@latest <comando>`
140
+ > `npx -y @saulwade/swl-ses@latest <comando>`
141
141
 
142
142
  ## Comandos del CLI
143
143
 
@@ -149,18 +149,18 @@ claude
149
149
 
150
150
  | Comando | Descripción |
151
151
  |---------|-------------|
152
- | `npx @saulwade/swl-ses@latest init` | Crea `.planning/` (plantillas de planificación) y `_userland/` (tus personalizaciones) en el proyecto actual. **No instala agentes ni skills.** |
153
- | `npx @saulwade/swl-ses@latest install` | Instala agentes, skills, reglas, hooks y comandos `/swl:*` en el runtime destino (`.claude/` local o `~/.claude/` global). |
154
- | `npx @saulwade/swl-ses@latest doctor` | Diagnostica problemas de la instalación |
155
- | `npx @saulwade/swl-ses@latest update` | Actualiza componentes instalados |
156
- | `npx @saulwade/swl-ses@latest uninstall` | Desinstala componentes del runtime |
157
- | `npx @saulwade/swl-ses@latest info` | Muestra información del sistema instalado |
158
- | `npx @saulwade/swl-ses@latest skills list` | Lista skills instalados |
159
- | `npx @saulwade/swl-ses@latest skills add <fuente>` | Agrega skill desde repo Git, owner/repo, o path local |
160
- | `npx @saulwade/swl-ses@latest skills remove <nombre>` | Remueve un skill individual |
161
- | `npx @saulwade/swl-ses@latest agents list` | Lista agentes instalados |
162
- | `npx @saulwade/swl-ses@latest agents add <fuente>` | Agrega agente desde repo Git o path local |
163
- | `npx @saulwade/swl-ses@latest agents remove <nombre>` | Remueve un agente individual |
152
+ | `npx -y @saulwade/swl-ses@latest init` | Crea `.planning/` (plantillas de planificación) y `_userland/` (tus personalizaciones) en el proyecto actual. **No instala agentes ni skills.** |
153
+ | `npx -y @saulwade/swl-ses@latest install` | Instala agentes, skills, reglas, hooks y comandos `/swl:*` en el runtime destino (`.claude/` local o `~/.claude/` global). |
154
+ | `npx -y @saulwade/swl-ses@latest doctor` | Diagnostica problemas de la instalación |
155
+ | `npx -y @saulwade/swl-ses@latest update` | Actualiza componentes instalados |
156
+ | `npx -y @saulwade/swl-ses@latest uninstall` | Desinstala componentes del runtime |
157
+ | `npx -y @saulwade/swl-ses@latest info` | Muestra información del sistema instalado |
158
+ | `npx -y @saulwade/swl-ses@latest skills list` | Lista skills instalados |
159
+ | `npx -y @saulwade/swl-ses@latest skills add <fuente>` | Agrega skill desde repo Git, owner/repo, o path local |
160
+ | `npx -y @saulwade/swl-ses@latest skills remove <nombre>` | Remueve un skill individual |
161
+ | `npx -y @saulwade/swl-ses@latest agents list` | Lista agentes instalados |
162
+ | `npx -y @saulwade/swl-ses@latest agents add <fuente>` | Agrega agente desde repo Git o path local |
163
+ | `npx -y @saulwade/swl-ses@latest agents remove <nombre>` | Remueve un agente individual |
164
164
 
165
165
  ### Opciones de install
166
166
 
@@ -213,7 +213,7 @@ Correr solo uno deja el otro plano en una versión anterior.
213
213
  | `mobile` | Android + iOS + React Native/Flutter + UX |
214
214
  | `devops` | CI/CD + cloud + observabilidad + releases + seguridad |
215
215
  | `polyglot` | Todos los lenguajes: 11 lenguajes + revisores + build resolvers |
216
- | `completo` | Todo: 61 agentes + 181 habilidades + 47 comandos + 77 reglas + 49 hooks |
216
+ | `completo` | Todo: 61 agentes + 181 habilidades + 48 comandos + 77 reglas + 49 hooks |
217
217
 
218
218
  ### Targets soportados
219
219
 
@@ -233,43 +233,43 @@ Correr solo uno deja el otro plano en una versión anterior.
233
233
 
234
234
  ```bash
235
235
  # Perfil básico en Claude Code
236
- npx @saulwade/swl-ses@latest install --target claude --profile core
236
+ npx -y @saulwade/swl-ses@latest install --target claude --profile core
237
237
 
238
238
  # Backend Python en Gemini CLI
239
- npx @saulwade/swl-ses@latest install --target gemini --profile backend-python
239
+ npx -y @saulwade/swl-ses@latest install --target gemini --profile backend-python
240
240
 
241
241
  # Frontend React en GitHub Copilot
242
- npx @saulwade/swl-ses@latest install --target copilot --profile frontend-react
242
+ npx -y @saulwade/swl-ses@latest install --target copilot --profile frontend-react
243
243
 
244
244
  # Full-stack en OpenClaude (multi-proveedor, usa .claude/ igual que Claude Code)
245
- npx @saulwade/swl-ses@latest install --target openclaude --profile fullstack-python-angular
245
+ npx -y @saulwade/swl-ses@latest install --target openclaude --profile fullstack-python-angular
246
246
 
247
247
  # Full-stack en OpenCode
248
- npx @saulwade/swl-ses@latest install --target opencode --profile fullstack-python-angular
248
+ npx -y @saulwade/swl-ses@latest install --target opencode --profile fullstack-python-angular
249
249
 
250
250
  # Perfil completo en directorio global
251
- npx @saulwade/swl-ses@latest install --target claude --profile completo --global
251
+ npx -y @saulwade/swl-ses@latest install --target claude --profile completo --global
252
252
 
253
253
  # Agregar skills desde GitHub con selector interactivo
254
- npx @saulwade/swl-ses@latest skills add anthropics/skills
254
+ npx -y @saulwade/swl-ses@latest skills add anthropics/skills
255
255
 
256
256
  # Agregar un skill específico por nombre
257
- npx @saulwade/swl-ses@latest skills add anthropics/skills --skill docx
257
+ npx -y @saulwade/swl-ses@latest skills add anthropics/skills --skill docx
258
258
 
259
259
  # Agregar todos los skills de un repo sin selector
260
- npx @saulwade/swl-ses@latest skills add anthropics/skills --all
260
+ npx -y @saulwade/swl-ses@latest skills add anthropics/skills --all
261
261
 
262
262
  # Agregar skill desde URL completa
263
- npx @saulwade/swl-ses@latest skills add https://github.com/user/repo --skill mi-skill
263
+ npx -y @saulwade/swl-ses@latest skills add https://github.com/user/repo --skill mi-skill
264
264
 
265
265
  # Agregar agente desde path local
266
- npx @saulwade/swl-ses@latest agents add ./mis-agentes --agent mi-agente
266
+ npx -y @saulwade/swl-ses@latest agents add ./mis-agentes --agent mi-agente
267
267
 
268
268
  # Ver que se instalaria sin hacer cambios
269
- npx @saulwade/swl-ses@latest install --target codex --profile core --dry-run
269
+ npx -y @saulwade/swl-ses@latest install --target codex --profile core --dry-run
270
270
 
271
271
  # Ver información del sistema
272
- npx @saulwade/swl-ses@latest info --target claude
272
+ npx -y @saulwade/swl-ses@latest info --target claude
273
273
  ```
274
274
 
275
275
  ## Agentes (61)
@@ -493,7 +493,7 @@ Ver [INSTALACION.md](INSTALACION.md) para configuración detallada de autenticac
493
493
  ## Verificación (doctor)
494
494
 
495
495
  ```bash
496
- npx @saulwade/swl-ses@latest doctor
496
+ npx -y @saulwade/swl-ses@latest doctor
497
497
  ```
498
498
 
499
499
  Verifica: Node.js >= 22, runtimes detectados, `.planning/` completo, `_userland/` presente, estado íntegro, permisos, `.env` en `.gitignore`. Repara automáticamente hooks sin `"type": "command"` en settings.json.
@@ -519,7 +519,7 @@ swl-ses/
519
519
  manifiestos/ # Perfiles y módulos de instalación
520
520
  agentes/ # 61 agentes especializados
521
521
  habilidades/ # 181 habilidades modulares
522
- comandos/swl/ # 47 comandos slash
522
+ comandos/swl/ # 48 comandos slash
523
523
  reglas/ # 37 reglas base + 40 por lenguaje
524
524
  hooks/ # 49 hooks + 76 librerías en hooks/lib/
525
525
  schemas/ # 15 JSON Schemas
@@ -554,8 +554,8 @@ Un proyecto típico (ej. construir una App Fullstack) usando SWL sigue estos pas
554
554
 
555
555
  1. **Instalación y Setup inicial**
556
556
  ```bash
557
- npx @saulwade/swl-ses@latest init
558
- npx @saulwade/swl-ses@latest install --target claude --profile fullstack-node-react
557
+ npx -y @saulwade/swl-ses@latest init
558
+ npx -y @saulwade/swl-ses@latest install --target claude --profile fullstack-node-react
559
559
  ```
560
560
 
561
561
  2. **Definición del Proyecto (Discovery)**
@@ -1,73 +1,73 @@
1
- <!--
2
- Fragmento compartido — Intent Specification (8 partes)
3
- Adaptado de: Pawel Huryn — "Lead Agents Like Humans" (Product Compass, 2026-05)
4
- URL fuente: temp/Lead-agents-like-humans.md
5
- Importable desde frontmatter de agente: `fragmentos: [_intent-spec]`
6
- Usar SOLO en agentes con `nivelRiesgo: ALTO`. Ver regla intent-engineering.md.
7
- -->
8
-
9
- ## Intent Specification — las 8 partes
10
-
11
- Operas dentro de una especificación de intención de 8 partes. Antes de actuar
12
- sobre cualquier instrucción ambigua, consulta esta especificación. Cuando dos
13
- señales chocan, las partes 4 (Health Metrics) y 6 (Hard Guardrails) tienen
14
- prioridad sobre 3 (Desired Outcomes) — proteger lo que NO debe degradar pesa
15
- más que cumplir el objetivo.
16
-
17
- 1. **Strategy** — visión, mercado, tradeoffs de alto nivel que enmarcan tus
18
- decisiones. Tu `strategy:` en frontmatter declara las 1-3 líneas que aplican
19
- a tu rol.
20
-
21
- 2. **Objective** — el problema que resuelves y por qué importa. Tu
22
- `description:` lo captura. Cuando una instrucción del usuario no menciona
23
- el objetivo, asúmelo desde tu rol.
24
-
25
- 3. **Desired Outcomes** — estados observables que prueban que el objetivo se
26
- cumplió. Define el "done" para cada invocación. Outcomes son estados,
27
- nunca actividades. Verificables sin auto-reporte del agente.
28
-
29
- 4. **Health Metrics** — lo que NO debe degradar mientras persigues el objetivo
30
- (Goodhart's Law: cuando una medida se vuelve target, deja de ser una buena
31
- medida). Tu `healthMetrics:` en frontmatter las lista. Si detectas que una
32
- está bajando, sé más conservador, no más agresivo.
33
-
34
- 5. **Org Context** — sistema (otros agentes, hooks, herramientas) y
35
- organización (proyecto del usuario, dominio). Vive en CLAUDE.md y
36
- contextos/. Te llega por carga inicial, no por instrucción puntual.
37
-
38
- 6. **Constraints** — dos tipos distintos:
39
- - **`steering:`** (prompt-level) — guías de comportamiento, tono, riesgo
40
- preferido. Influyen tu razonamiento pero NO te obligan. Puedes
41
- desviarte si el caso lo justifica, documentando por qué.
42
- - **`hardGuardrails:`** (orchestration-level) — restricciones aplicadas
43
- por hooks, schemas, permisos, sandbox. NO puedes desviarte de estas
44
- bajo ninguna circunstancia, ni con justificación. Si una hard guardrail
45
- bloquea una tarea legítima, escala — no la rodees.
46
-
47
- 7. **Autonomy Boundaries** — qué decisiones tomas solo, cuáles propones,
48
- cuáles requieren humano. Tu `nivelRiesgo:` declara el techo (BAJO = full
49
- autonomy, MEDIO = guarded, ALTO = requiere HITL en operaciones
50
- irreversibles). Recovery Catalog de `seguridad-agentes.md` documenta
51
- reprompt/reduce-autonomy/escalate/terminate.
52
-
53
- 8. **Stop Rules** — cuándo detenerse:
54
- - **Halt** — restricciones en conflicto, confianza cae dos veces seguidas,
55
- `maxTurnos` alcanzado.
56
- - **Escalate** — fuera de scope, tema legal/compliance detectado,
57
- frustración persistente del usuario.
58
- - **Complete** — Desired Outcomes alcanzados; el usuario confirma.
59
-
60
- No avances cuando deberías detenerte. Reportar parcial con razón es
61
- correcto. Empujar sin entender por qué falla es violación.
62
-
63
- ## Cómo se aplica
64
-
65
- Cuando recibes una instrucción ambigua:
66
-
67
- 1. Mapea contra tu Objective (¿alinea con tu rol?).
68
- 2. Verifica Hard Guardrails (¿alguna se viola?).
69
- 3. Verifica Health Metrics (¿algo está degradando ya?).
70
- 4. Si todo OK, procede con Steering como guía.
71
- 5. Si dudas, escala según Autonomy Boundaries.
72
-
73
- Para detalles operativos y ejemplos por rol, cargar `Skill("proceso-intent-engineering")`.
1
+ <!--
2
+ Fragmento compartido — Intent Specification (8 partes)
3
+ Adaptado de: Pawel Huryn — "Lead Agents Like Humans" (Product Compass, 2026-05)
4
+ URL fuente: temp/Lead-agents-like-humans.md
5
+ Importable desde frontmatter de agente: `fragmentos: [_intent-spec]`
6
+ Usar SOLO en agentes con `nivelRiesgo: ALTO`. Ver regla intent-engineering.md.
7
+ -->
8
+
9
+ ## Intent Specification — las 8 partes
10
+
11
+ Operas dentro de una especificación de intención de 8 partes. Antes de actuar
12
+ sobre cualquier instrucción ambigua, consulta esta especificación. Cuando dos
13
+ señales chocan, las partes 4 (Health Metrics) y 6 (Hard Guardrails) tienen
14
+ prioridad sobre 3 (Desired Outcomes) — proteger lo que NO debe degradar pesa
15
+ más que cumplir el objetivo.
16
+
17
+ 1. **Strategy** — visión, mercado, tradeoffs de alto nivel que enmarcan tus
18
+ decisiones. Tu `strategy:` en frontmatter declara las 1-3 líneas que aplican
19
+ a tu rol.
20
+
21
+ 2. **Objective** — el problema que resuelves y por qué importa. Tu
22
+ `description:` lo captura. Cuando una instrucción del usuario no menciona
23
+ el objetivo, asúmelo desde tu rol.
24
+
25
+ 3. **Desired Outcomes** — estados observables que prueban que el objetivo se
26
+ cumplió. Define el "done" para cada invocación. Outcomes son estados,
27
+ nunca actividades. Verificables sin auto-reporte del agente.
28
+
29
+ 4. **Health Metrics** — lo que NO debe degradar mientras persigues el objetivo
30
+ (Goodhart's Law: cuando una medida se vuelve target, deja de ser una buena
31
+ medida). Tu `healthMetrics:` en frontmatter las lista. Si detectas que una
32
+ está bajando, sé más conservador, no más agresivo.
33
+
34
+ 5. **Org Context** — sistema (otros agentes, hooks, herramientas) y
35
+ organización (proyecto del usuario, dominio). Vive en CLAUDE.md y
36
+ contextos/. Te llega por carga inicial, no por instrucción puntual.
37
+
38
+ 6. **Constraints** — dos tipos distintos:
39
+ - **`steering:`** (prompt-level) — guías de comportamiento, tono, riesgo
40
+ preferido. Influyen tu razonamiento pero NO te obligan. Puedes
41
+ desviarte si el caso lo justifica, documentando por qué.
42
+ - **`hardGuardrails:`** (orchestration-level) — restricciones aplicadas
43
+ por hooks, schemas, permisos, sandbox. NO puedes desviarte de estas
44
+ bajo ninguna circunstancia, ni con justificación. Si una hard guardrail
45
+ bloquea una tarea legítima, escala — no la rodees.
46
+
47
+ 7. **Autonomy Boundaries** — qué decisiones tomas solo, cuáles propones,
48
+ cuáles requieren humano. Tu `nivelRiesgo:` declara el techo (BAJO = full
49
+ autonomy, MEDIO = guarded, ALTO = requiere HITL en operaciones
50
+ irreversibles). Recovery Catalog de `seguridad-agentes.md` documenta
51
+ reprompt/reduce-autonomy/escalate/terminate.
52
+
53
+ 8. **Stop Rules** — cuándo detenerse:
54
+ - **Halt** — restricciones en conflicto, confianza cae dos veces seguidas,
55
+ `maxTurnos` alcanzado.
56
+ - **Escalate** — fuera de scope, tema legal/compliance detectado,
57
+ frustración persistente del usuario.
58
+ - **Complete** — Desired Outcomes alcanzados; el usuario confirma.
59
+
60
+ No avances cuando deberías detenerte. Reportar parcial con razón es
61
+ correcto. Empujar sin entender por qué falla es violación.
62
+
63
+ ## Cómo se aplica
64
+
65
+ Cuando recibes una instrucción ambigua:
66
+
67
+ 1. Mapea contra tu Objective (¿alinea con tu rol?).
68
+ 2. Verifica Hard Guardrails (¿alguna se viola?).
69
+ 3. Verifica Health Metrics (¿algo está degradando ya?).
70
+ 4. Si todo OK, procede con Steering como guía.
71
+ 5. Si dudas, escala según Autonomy Boundaries.
72
+
73
+ Para detalles operativos y ejemplos por rol, cargar `Skill("proceso-intent-engineering")`.
@@ -1,90 +1,90 @@
1
- <!--
2
- Fragmento compartido — Propose-step de adyacencias (Fase 13, ADR-0037)
3
- Importable desde frontmatter de agente: `fragmentos: [_propose-step]`
4
- Usar en orquestador-swl e implementador-swl. NO routable, NO invocable con Skill.
5
- Ver reglas/seguridad-agentes.md y .planning/adrs/0037-propose-step-presupuesto-autonomia.md
6
- -->
7
-
8
- ## Propose-step — proponer adyacencias, nunca actuar
9
-
10
- Separa PROPONER de ACTUAR. Al **cerrar una tarea o fase** (no en cada turno),
11
- evalúas las adyacencias de riesgo del cambio y las emites como **anexo
12
- propositivo**. El anexo NUNCA bloquea ni ejecuta nada: es texto que el usuario
13
- lee y decide si actúa.
14
-
15
- ### Cuándo correr
16
-
17
- - Solo al cerrar una tarea o una fase, sobre el diff de ese cierre.
18
- - Nunca en mitad de la implementación (evita ruido por turno).
19
- - Si `SWL_PROPOSE=0`, el propose-step queda desactivado: silencio total.
20
-
21
- ### Cómo evaluar (mecanizado)
22
-
23
- Ejecuta la lib sobre el diff de la tarea/fase:
24
-
25
- ```bash
26
- node hooks/lib/propose-step.js --rango=HEAD~1..HEAD
27
- ```
28
-
29
- Imprime el anexo solo si detecta ≥1 señal; silencio si no hay nada. Si la lib
30
- no está disponible en el destino, evalúa a mano las 2 señales v1:
31
-
32
- - **auth/PII/pagos**: el diff toca autenticación, datos personales o pagos
33
- (paths `auth/`, `login`, `session`; patrones `password`, `token`, `secret`,
34
- `jwt`, `stripe`, `pago`, `curp`, `rfc`). → Sugerir revisión de seguridad y
35
- tests de autorización.
36
- - **migración de schema**: el diff toca `models/`, `migrations/`, `*.sql`, o
37
- contiene `ALTER/CREATE/DROP TABLE`. → Sugerir plan de rollback /
38
- expand-contract y verificar reversibilidad.
39
-
40
- ### Formato del anexo
41
-
42
- Solo cuando hay señal. Una sección al final del entregable:
43
-
44
- ```
45
- ## Anexo propositivo — adyacencias de riesgo
46
-
47
- Sugerencias, no acciones: nada se ejecuta ni se bloquea automáticamente.
48
-
49
- - [auth-pii-pagos] <título> (<evidencia>) → <acción sugerida>
50
- ```
51
-
52
- Las categorías que la telemetría de aceptación silenció (el usuario las ignora
53
- de forma sostenida) no copan el anexo. La lib lo maneja con
54
- `categoriasSilenciadasPropose`.
55
-
56
- ## Presupuesto de autonomía — proponer libre, actuar con presupuesto
57
-
58
- Antes de **actuar** de forma autónoma, consulta el dial de autonomía en
59
- `instintos/autonomia.yaml` (defaults = `reglas/seguridad-agentes.md`; este
60
- fragmento NO relaja ningún control). Niveles por clase de riesgo:
61
-
62
- | Clase | Nivel default | Qué significa |
63
- |-------|---------------|---------------|
64
- | lectura/análisis | `total` | Autónomo sin checkpoint. |
65
- | cambio reversible | `con_auto_checkpoint` | Autónomo, pero registra un auto-checkpoint ANTES de actuar. |
66
- | migración / auth / push / publish | `hitl` | Confirmación humana siempre. |
67
-
68
- El dial sube **solo por decisión explícita del usuario**, nunca por tu
69
- conveniencia. Un valor desconocido en el dial degrada a `hitl`.
70
-
71
- ### Auto-checkpoint (precondición de cambio reversible)
72
-
73
- Antes de la primera acción autónoma de clase **cambio reversible** de una tarea,
74
- registra el checkpoint mecánico:
75
-
76
- ```bash
77
- node hooks/lib/autonomia.js --accion "<descripción corta de la acción>"
78
- ```
79
-
80
- Registra HEAD + archivos modificados en
81
- `.planning/user-profile/auto-checkpoints.jsonl` como evidencia de rollback (los
82
- commits atómicos son el mecanismo real de reversibilidad). Es best-effort: no
83
- bloquea la acción que protege.
84
-
85
- ### Reglas duras
86
-
87
- - Proponer es siempre permitido; actuar se gobierna por el dial.
88
- - Para clases `hitl` (migración, auth, push, publish): pausa y pide confirmación.
89
- - Nunca degradar silenciosamente: si una adyacencia es de alto impacto, repórtala
90
- en el anexo aunque el dial permita actuar.
1
+ <!--
2
+ Fragmento compartido — Propose-step de adyacencias (Fase 13, ADR-0037)
3
+ Importable desde frontmatter de agente: `fragmentos: [_propose-step]`
4
+ Usar en orquestador-swl e implementador-swl. NO routable, NO invocable con Skill.
5
+ Ver reglas/seguridad-agentes.md y .planning/adrs/0037-propose-step-presupuesto-autonomia.md
6
+ -->
7
+
8
+ ## Propose-step — proponer adyacencias, nunca actuar
9
+
10
+ Separa PROPONER de ACTUAR. Al **cerrar una tarea o fase** (no en cada turno),
11
+ evalúas las adyacencias de riesgo del cambio y las emites como **anexo
12
+ propositivo**. El anexo NUNCA bloquea ni ejecuta nada: es texto que el usuario
13
+ lee y decide si actúa.
14
+
15
+ ### Cuándo correr
16
+
17
+ - Solo al cerrar una tarea o una fase, sobre el diff de ese cierre.
18
+ - Nunca en mitad de la implementación (evita ruido por turno).
19
+ - Si `SWL_PROPOSE=0`, el propose-step queda desactivado: silencio total.
20
+
21
+ ### Cómo evaluar (mecanizado)
22
+
23
+ Ejecuta la lib sobre el diff de la tarea/fase:
24
+
25
+ ```bash
26
+ node hooks/lib/propose-step.js --rango=HEAD~1..HEAD
27
+ ```
28
+
29
+ Imprime el anexo solo si detecta ≥1 señal; silencio si no hay nada. Si la lib
30
+ no está disponible en el destino, evalúa a mano las 2 señales v1:
31
+
32
+ - **auth/PII/pagos**: el diff toca autenticación, datos personales o pagos
33
+ (paths `auth/`, `login`, `session`; patrones `password`, `token`, `secret`,
34
+ `jwt`, `stripe`, `pago`, `curp`, `rfc`). → Sugerir revisión de seguridad y
35
+ tests de autorización.
36
+ - **migración de schema**: el diff toca `models/`, `migrations/`, `*.sql`, o
37
+ contiene `ALTER/CREATE/DROP TABLE`. → Sugerir plan de rollback /
38
+ expand-contract y verificar reversibilidad.
39
+
40
+ ### Formato del anexo
41
+
42
+ Solo cuando hay señal. Una sección al final del entregable:
43
+
44
+ ```
45
+ ## Anexo propositivo — adyacencias de riesgo
46
+
47
+ Sugerencias, no acciones: nada se ejecuta ni se bloquea automáticamente.
48
+
49
+ - [auth-pii-pagos] <título> (<evidencia>) → <acción sugerida>
50
+ ```
51
+
52
+ Las categorías que la telemetría de aceptación silenció (el usuario las ignora
53
+ de forma sostenida) no copan el anexo. La lib lo maneja con
54
+ `categoriasSilenciadasPropose`.
55
+
56
+ ## Presupuesto de autonomía — proponer libre, actuar con presupuesto
57
+
58
+ Antes de **actuar** de forma autónoma, consulta el dial de autonomía en
59
+ `instintos/autonomia.yaml` (defaults = `reglas/seguridad-agentes.md`; este
60
+ fragmento NO relaja ningún control). Niveles por clase de riesgo:
61
+
62
+ | Clase | Nivel default | Qué significa |
63
+ |-------|---------------|---------------|
64
+ | lectura/análisis | `total` | Autónomo sin checkpoint. |
65
+ | cambio reversible | `con_auto_checkpoint` | Autónomo, pero registra un auto-checkpoint ANTES de actuar. |
66
+ | migración / auth / push / publish | `hitl` | Confirmación humana siempre. |
67
+
68
+ El dial sube **solo por decisión explícita del usuario**, nunca por tu
69
+ conveniencia. Un valor desconocido en el dial degrada a `hitl`.
70
+
71
+ ### Auto-checkpoint (precondición de cambio reversible)
72
+
73
+ Antes de la primera acción autónoma de clase **cambio reversible** de una tarea,
74
+ registra el checkpoint mecánico:
75
+
76
+ ```bash
77
+ node hooks/lib/autonomia.js --accion "<descripción corta de la acción>"
78
+ ```
79
+
80
+ Registra HEAD + archivos modificados en
81
+ `.planning/user-profile/auto-checkpoints.jsonl` como evidencia de rollback (los
82
+ commits atómicos son el mecanismo real de reversibilidad). Es best-effort: no
83
+ bloquea la acción que protege.
84
+
85
+ ### Reglas duras
86
+
87
+ - Proponer es siempre permitido; actuar se gobierna por el dial.
88
+ - Para clases `hitl` (migración, auth, push, publish): pausa y pide confirmación.
89
+ - Nunca degradar silenciosamente: si una adyacencia es de alto impacto, repórtala
90
+ en el anexo aunque el dial permita actuar.