@saulwade/swl-ses 2.6.0 → 2.8.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 (435) hide show
  1. package/CLAUDE.md +209 -197
  2. package/README.md +647 -600
  3. package/agentes/accesibilidad-wcag-swl.md +690 -690
  4. package/agentes/arquitecto-swl.md +267 -267
  5. package/agentes/auto-evolucion-swl.md +932 -932
  6. package/agentes/backend-csharp-swl.md +420 -420
  7. package/agentes/backend-go-swl.md +390 -390
  8. package/agentes/backend-java-swl.md +281 -281
  9. package/agentes/backend-rust-swl.md +364 -364
  10. package/agentes/backend-workers-swl.md +482 -482
  11. package/agentes/cloud-infra-swl.md +509 -509
  12. package/agentes/consolidador-swl.md +541 -541
  13. package/agentes/depurador-swl.md +352 -352
  14. package/agentes/devops-ci-swl.md +400 -400
  15. package/agentes/disenador-ui-swl.md +569 -569
  16. package/agentes/documentador-swl.md +345 -345
  17. package/agentes/frontend-angular-swl.md +621 -621
  18. package/agentes/frontend-css-swl.md +716 -716
  19. package/agentes/frontend-react-swl.md +692 -692
  20. package/agentes/frontend-swl.md +496 -496
  21. package/agentes/frontend-tailwind-swl.md +826 -826
  22. package/agentes/investigador-swl.md +432 -432
  23. package/agentes/investigador-ux-swl.md +505 -505
  24. package/agentes/migrador-swl.md +442 -442
  25. package/agentes/mobile-android-swl.md +511 -511
  26. package/agentes/mobile-cross-swl.md +541 -541
  27. package/agentes/mobile-ios-swl.md +502 -502
  28. package/agentes/mobile-testing-swl.md +302 -302
  29. package/agentes/nemesis-auditor-swl.md +285 -285
  30. package/agentes/observabilidad-swl.md +438 -438
  31. package/agentes/pagos-swl.md +310 -310
  32. package/agentes/perfilador-usuario-swl.md +321 -321
  33. package/agentes/planificador-swl.md +399 -399
  34. package/agentes/producto-prd-swl.md +589 -589
  35. package/agentes/red-team-swl.md +218 -218
  36. package/agentes/release-manager-swl.md +590 -590
  37. package/agentes/rendimiento-swl.md +713 -713
  38. package/agentes/revisor-angular-swl.md +278 -278
  39. package/agentes/revisor-csharp-swl.md +264 -264
  40. package/agentes/revisor-go-swl.md +259 -259
  41. package/agentes/revisor-java-swl.md +257 -257
  42. package/agentes/revisor-kotlin-swl.md +273 -273
  43. package/agentes/revisor-nextjs-swl.md +281 -281
  44. package/agentes/revisor-php-swl.md +271 -271
  45. package/agentes/revisor-react-swl.md +278 -278
  46. package/agentes/revisor-rust-swl.md +346 -346
  47. package/agentes/revisor-seguridad-swl.md +399 -399
  48. package/agentes/revisor-swift-swl.md +268 -268
  49. package/agentes/revisor-typescript-swl.md +346 -346
  50. package/agentes/tdd-qa-swl.md +393 -393
  51. package/bin/swl-ses.js +10 -0
  52. package/comandos/swl/actualizar.md +174 -174
  53. package/comandos/swl/adoptar-proyecto.md +265 -265
  54. package/comandos/swl/aprender.md +836 -836
  55. package/comandos/swl/aprobar-plan.md +146 -146
  56. package/comandos/swl/auditar-deps.md +134 -134
  57. package/comandos/swl/autoresearch.md +264 -264
  58. package/comandos/swl/ayuda.md +224 -224
  59. package/comandos/swl/brainstorm.md +52 -51
  60. package/comandos/swl/checkpoint.md +325 -325
  61. package/comandos/swl/claudemd.md +234 -234
  62. package/comandos/swl/compactar.md +310 -310
  63. package/comandos/swl/configurar-ci.md +235 -235
  64. package/comandos/swl/contexto.md +110 -110
  65. package/comandos/swl/crear-skill.md +292 -292
  66. package/comandos/swl/cron.md +194 -194
  67. package/comandos/swl/deuda-codigo.md +97 -97
  68. package/comandos/swl/discutir-fase.md +169 -169
  69. package/comandos/swl/ejecutar-fase.md +233 -233
  70. package/comandos/swl/evaluar-skill.md +520 -520
  71. package/comandos/swl/evolucion-continua.md +73 -73
  72. package/comandos/swl/evolucionar.md +267 -267
  73. package/comandos/swl/exportar-vault.md +583 -583
  74. package/comandos/swl/fix.md +118 -118
  75. package/comandos/swl/gateway.md +158 -158
  76. package/comandos/swl/inbox.md +116 -116
  77. package/comandos/swl/instalar.md +220 -220
  78. package/comandos/swl/instintos.md +86 -86
  79. package/comandos/swl/mapear-codebase.md +312 -312
  80. package/comandos/swl/mcp-status.md +176 -175
  81. package/comandos/swl/modelo.md +100 -100
  82. package/comandos/swl/nemesis.md +433 -433
  83. package/comandos/swl/notificaciones.md +299 -299
  84. package/comandos/swl/nuevo-proyecto.md +251 -251
  85. package/comandos/swl/planear-fase.md +263 -263
  86. package/comandos/swl/plugins.md +256 -256
  87. package/comandos/swl/predecir.md +169 -169
  88. package/comandos/swl/reflect-skills.md +125 -125
  89. package/comandos/swl/release.md +450 -450
  90. package/comandos/swl/revisar-impacto.md +201 -201
  91. package/comandos/swl/revisar.md +330 -330
  92. package/comandos/swl/seguridad.md +189 -189
  93. package/comandos/swl/sesiones.md +200 -200
  94. package/comandos/swl/skill-search.md +113 -113
  95. package/comandos/swl/status.md +345 -345
  96. package/comandos/swl/verificar.md +817 -817
  97. package/comandos/swl/wiki.md +620 -620
  98. package/gateway/cron/jobs.example.json +12 -12
  99. package/gateway/lib/event-channel.js +191 -191
  100. package/habilidades/agent-deep-links/SKILL.md +148 -148
  101. package/habilidades/auto-evolucion-protocolo/SKILL.md +294 -294
  102. package/habilidades/backend-async-postgres-testing/SKILL.md +216 -215
  103. package/habilidades/backend-error-design/SKILL.md +221 -221
  104. package/habilidades/backend-production-resilience/SKILL.md +288 -288
  105. package/habilidades/calidad-anti-patrones-universales/SKILL.md +105 -1
  106. package/habilidades/calidad-contract-testing/SKILL.md +165 -165
  107. package/habilidades/calidad-mutation-testing/SKILL.md +25 -1
  108. package/habilidades/changelog-generator/SKILL.md +174 -174
  109. package/habilidades/checklist-seguridad/recursos/stride-cobertura.md +60 -60
  110. package/habilidades/ci-cd-pipelines/SKILL.md +5 -1
  111. package/habilidades/compactacion-contexto/SKILL.md +2 -1
  112. package/habilidades/contenedores-docker/SKILL.md +4 -2
  113. package/habilidades/css-moderno/SKILL.md +7 -1
  114. package/habilidades/diagrama-arquitectura/assets/template.html +276 -276
  115. package/habilidades/doubt-driven-review/SKILL.md +207 -207
  116. package/habilidades/doubt-driven-review/recursos/EXAMPLES.md +130 -130
  117. package/habilidades/drift-detection/SKILL.md +1 -1
  118. package/habilidades/ejecutar-task-iterativo/SKILL.md +278 -278
  119. package/habilidades/estructura-proyecto-claude/recursos/mcp-json-template.json +57 -57
  120. package/habilidades/extractor-de-aprendizajes/SKILL.md +12 -2
  121. package/habilidades/feynman-auditor-swl/recursos/preguntas-language-agnostic.md +108 -108
  122. package/habilidades/git-worktrees-paralelo/SKILL.md +19 -1
  123. package/habilidades/harness-claude-code/SKILL.md +315 -314
  124. package/habilidades/instalar-sistema/SKILL.md +227 -227
  125. package/habilidades/meta-skills-estandar/recursos/convencion-examples.md +93 -93
  126. package/habilidades/patrones-python/recursos/patrones-avanzados.md +469 -469
  127. package/habilidades/perfil-usuario/SKILL.md +200 -200
  128. package/habilidades/planear-fase/SKILL.md +358 -358
  129. package/habilidades/prevencion-sobreingenieria/recursos/EXAMPLES.md +580 -580
  130. package/habilidades/proceso-ddia-streaming/SKILL.md +231 -231
  131. package/habilidades/proceso-discovery-machote/SKILL.md +157 -157
  132. package/habilidades/proceso-dynamic-workflows/SKILL.md +60 -0
  133. package/habilidades/proceso-dynamic-workflows/recursos/template-adversarial-verify.js +65 -65
  134. package/habilidades/proceso-dynamic-workflows/recursos/template-triage.js +65 -65
  135. package/habilidades/proceso-ingenieria-requerimientos/SKILL.md +147 -147
  136. package/habilidades/proceso-intent-engineering/SKILL.md +269 -269
  137. package/habilidades/proceso-modular-split/SKILL.md +256 -256
  138. package/habilidades/release-semver/SKILL.md +2 -2
  139. package/habilidades/state-inconsistency-auditor-swl/recursos/coupled-state-patterns.md +147 -147
  140. package/habilidades/swl-claudemd/recursos/contrato-aprender.md +83 -83
  141. package/habilidades/swl-claudemd/recursos/duplicacion-reglas-globales.md +85 -85
  142. package/habilidades/swl-claudemd/recursos/plantillas-init.md +94 -94
  143. package/habilidades/tdd-workflow/SKILL.md +749 -749
  144. package/habilidades/tdd-workflow/recursos/gherkin-bdd.md +111 -111
  145. package/hooks/agente-lifecycle.js +1 -1
  146. package/hooks/audit-trail.js +1 -1
  147. package/hooks/auto-consolidacion.js +1 -1
  148. package/hooks/calidad-pre-commit.js +159 -10
  149. package/hooks/captura-acciones-post.js +1 -1
  150. package/hooks/captura-acciones-session.js +1 -1
  151. package/hooks/captura-feedback-usuario.js +1 -1
  152. package/hooks/ciclo-evolucion-subagente.js +26 -26
  153. package/hooks/ciclo-evolucion.js +26 -26
  154. package/hooks/contexto-iteracion.js +1 -1
  155. package/hooks/degradacion-instintos.js +1 -1
  156. package/hooks/grafo-contexto.js +1 -1
  157. package/hooks/guardrail-modelo.js +1 -1
  158. package/hooks/inbox-aviso.js +1 -1
  159. package/hooks/inyeccion-contexto.js +1 -1
  160. package/hooks/lib/agent-matcher.js +1 -1
  161. package/hooks/lib/agent-routing.js +1 -1
  162. package/hooks/lib/auto-consolidator.js +335 -335
  163. package/hooks/lib/captura-acciones.js +1 -1
  164. package/hooks/lib/ciclo-evolucion.js +47 -47
  165. package/hooks/lib/deep-links.js +185 -185
  166. package/hooks/lib/error-classifier.js +308 -308
  167. package/hooks/lib/etapa-metricas.js +1 -1
  168. package/hooks/lib/evolution-tracker.js +1 -1
  169. package/hooks/lib/gateway-notify.js +193 -193
  170. package/hooks/lib/mcp-health.js +1 -1
  171. package/hooks/lib/notificacion-formato.js +92 -0
  172. package/hooks/lib/nudge-tracker.js +1 -1
  173. package/hooks/lib/otlp-exporter.js +1 -1
  174. package/hooks/lib/propose-step.js +1 -1
  175. package/hooks/lib/provenance-tracker.js +191 -191
  176. package/hooks/lib/raiz-proyecto.js +158 -102
  177. package/hooks/lib/resource-quota.js +122 -122
  178. package/hooks/lib/retry-jitter.js +165 -165
  179. package/hooks/lib/run-log.js +1 -1
  180. package/hooks/lib/security-net.js +201 -201
  181. package/hooks/lib/singleton-guard.js +20 -13
  182. package/hooks/lib/skill-auditor.js +588 -588
  183. package/hooks/lib/sync-status.js +228 -228
  184. package/hooks/lib/taint-tracker.js +107 -107
  185. package/hooks/lib/telegram-cliente.js +11 -3
  186. package/hooks/lib/text-similarity.js +241 -241
  187. package/hooks/lib/toon-compressor.js +245 -245
  188. package/hooks/notificacion-telegram.js +17 -13
  189. package/hooks/preservar-estado-pre-compact.js +1 -1
  190. package/hooks/registro-turnos.js +1 -1
  191. package/hooks/resumen-sesion.js +1 -1
  192. package/hooks/risk-scoring.js +1 -1
  193. package/hooks/session-briefing.js +13 -5
  194. package/hooks/spec-gate.js +1 -1
  195. package/hooks/sugerir-regenerar-inventario.js +1 -1
  196. package/hooks/tdd-gate.js +1 -1
  197. package/hooks/telemetria-agentes.js +1 -1
  198. package/hooks/telemetria-skill-routing.js +1 -1
  199. package/hooks/tracking-costos.js +1 -1
  200. package/hooks/validar-formato-post-subagente.js +1 -1
  201. package/hooks/validar-intent-spec.js +1 -1
  202. package/hooks/validar-planning-paths.js +1 -1
  203. package/instintos/autonomia.yaml +27 -27
  204. package/instintos/prompt-appendices.yaml +57 -57
  205. package/llms.txt +29 -29
  206. package/manifiestos/agent-output-schemas.json +57 -57
  207. package/manifiestos/canonical-hashes.json +6250 -5257
  208. package/manifiestos/harness-ir.json +47536 -0
  209. package/manifiestos/modulos.json +1429 -1428
  210. package/manifiestos/policy-bundle.json +2065 -0
  211. package/manifiestos/policy-corpus-w2.json +3926 -0
  212. package/manifiestos/runtime-adapters-core3.json +208 -0
  213. package/manifiestos/runtime-conformance.json +139 -0
  214. package/manifiestos/skills-lock.json +1275 -1275
  215. package/package.json +94 -94
  216. package/plantillas/auditor-veto-template.md +105 -105
  217. package/plantillas/github-workflows/release-please.yml +44 -44
  218. package/plantillas/github-workflows/swl-ci.yml +107 -107
  219. package/plantillas/github-workflows/swl-security.yml +51 -51
  220. package/plugin.json +369 -369
  221. package/reglas/accesibilidad.md +10 -10
  222. package/reglas/auditorias-documentales-estructurales.md +7 -7
  223. package/reglas/cloud-infra.md +8 -8
  224. package/reglas/consultar-vault-primero.md +195 -195
  225. package/reglas/git-workflow.md +1 -0
  226. package/reglas/hooks.md +6 -6
  227. package/reglas/intent-engineering.md +218 -218
  228. package/reglas/markitdown.md +8 -8
  229. package/reglas/monitor-ci.md +12 -0
  230. package/reglas/patrones.md +6 -6
  231. package/reglas/testing.md +7 -7
  232. package/reglas/tests-cleanup.md +224 -224
  233. package/schemas/agent-message.schema.json +73 -73
  234. package/schemas/agent-output-implementacion.schema.json +114 -114
  235. package/schemas/agent-output-planificacion.schema.json +150 -150
  236. package/schemas/agent-output-review.schema.json +98 -98
  237. package/schemas/diary-entry.schema.json +112 -112
  238. package/schemas/gate-state.schema.json +76 -0
  239. package/schemas/harness-ir.schema.json +369 -0
  240. package/schemas/hook-profiles.schema.json +54 -54
  241. package/schemas/hooks-config.schema.json +89 -89
  242. package/schemas/legacy-gates.schema.json +45 -0
  243. package/schemas/modulos.schema.json +38 -38
  244. package/schemas/perfiles.schema.json +36 -36
  245. package/schemas/plugin.schema.json +77 -77
  246. package/schemas/policy-bundle.schema.json +140 -0
  247. package/schemas/policy-enforcement.schema.json +117 -0
  248. package/schemas/policy-operation.schema.json +261 -0
  249. package/schemas/runtime-adapter.schema.json +176 -0
  250. package/schemas/runtime-build-attestation.schema.json +100 -0
  251. package/schemas/runtime-conformance.schema.json +239 -0
  252. package/schemas/runtime-diagnostic.schema.json +395 -0
  253. package/schemas/skill-evals.schema.json +119 -119
  254. package/schemas/skill-frontmatter.schema.json +245 -245
  255. package/schemas/w4-certification-request.schema.json +72 -0
  256. package/schemas/w4-certification-verdict.schema.json +224 -0
  257. package/schemas/w4-corpus.schema.json +172 -0
  258. package/schemas/w4-mutation-report.schema.json +116 -0
  259. package/schemas/w4-replay-result.schema.json +164 -0
  260. package/schemas/w4-scoring-report.schema.json +89 -0
  261. package/scripts/audit-tools/audit-history.js +330 -330
  262. package/scripts/audit-tools/bundle-tracker.js +290 -290
  263. package/scripts/audit-tools/canary-monitor.js +352 -352
  264. package/scripts/audit-tools/code-profiler.js +605 -605
  265. package/scripts/audit-tools/dep-doctor.js +320 -320
  266. package/scripts/audit-tools/env-validator.js +206 -206
  267. package/scripts/audit-tools/lib/fs-walk.js +48 -48
  268. package/scripts/audit-tools/lib/output.js +23 -23
  269. package/scripts/audit-tools/migration-checker.js +392 -392
  270. package/scripts/audit-tools/pentest-scanner.js +1436 -1436
  271. package/scripts/auditar-clases-conocidas.js +134 -134
  272. package/scripts/bootstrap-instintos.js +88 -14
  273. package/scripts/canario-hooks.js +166 -166
  274. package/scripts/cli/aprobar-plan.js +73 -73
  275. package/scripts/cli/autonomia.js +23 -23
  276. package/scripts/cli/benchmark-memoria.js +37 -37
  277. package/scripts/cli/briefing.js +23 -23
  278. package/scripts/cli/ciclo-autonomo.js +73 -73
  279. package/scripts/cli/ciclo-evolucion.js +26 -26
  280. package/scripts/cli/ciclo-fase-b.js +102 -102
  281. package/scripts/cli/derivar-feature-list.js +25 -25
  282. package/scripts/cli/detectar-host.js +27 -27
  283. package/scripts/cli/diary-entry.js +69 -69
  284. package/scripts/cli/execution-state.js +18 -18
  285. package/scripts/cli/gateway-notify.js +41 -41
  286. package/scripts/cli/guardrail-metrics.js +39 -39
  287. package/scripts/cli/liberar-fase.js +42 -42
  288. package/scripts/cli/mark-evolved.js +56 -56
  289. package/scripts/cli/memoria-search.js +69 -69
  290. package/scripts/cli/metricas-dora.js +26 -26
  291. package/scripts/cli/near-duplicate.js +55 -55
  292. package/scripts/cli/notificaciones.js +123 -123
  293. package/scripts/cli/nudge-accionar.js +39 -39
  294. package/scripts/cli/propose-step.js +29 -29
  295. package/scripts/cli/run-eval.js +38 -38
  296. package/scripts/cli/schedule-parse.js +19 -19
  297. package/scripts/cli/sugerir-modelo.js +20 -20
  298. package/scripts/cli/verificar-plan.js +36 -36
  299. package/scripts/cli/verificar-trazabilidad.js +35 -35
  300. package/scripts/comandos/install-asistido.js +8 -7
  301. package/scripts/configurar-branch-protection.js +418 -418
  302. package/scripts/detectar-aprendizajes-duplicados.js +151 -151
  303. package/scripts/doctor.js +61 -13
  304. package/scripts/evidencia-valor.js +101 -101
  305. package/scripts/field-report.js +16 -16
  306. package/scripts/generar-checklists-consolidados.js +273 -273
  307. package/scripts/generar-claims-runtime.js +1342 -0
  308. package/scripts/generar-harness-ir.js +257 -0
  309. package/scripts/generar-inventario.js +52 -54
  310. package/scripts/generar-policy-bundle.js +202 -0
  311. package/scripts/instalador.js +39 -7
  312. package/scripts/lib/activar-hooks-proyecto.js +116 -116
  313. package/scripts/lib/approval-receipts.js +190 -0
  314. package/scripts/lib/artefactos-python.js +43 -43
  315. package/scripts/lib/benchmark-metrics.js +160 -160
  316. package/scripts/lib/budget-enforcer.js +252 -252
  317. package/scripts/lib/certificacion-loop-state.js +421 -0
  318. package/scripts/lib/ci-reader.js +193 -193
  319. package/scripts/lib/ciclo-autonomo/candidatos.js +174 -174
  320. package/scripts/lib/ciclo-autonomo/config.js +165 -165
  321. package/scripts/lib/ciclo-autonomo/drenador-feedback.js +174 -174
  322. package/scripts/lib/ciclo-autonomo/fallback.js +77 -77
  323. package/scripts/lib/ciclo-autonomo/guard-convivencia.js +139 -139
  324. package/scripts/lib/ciclo-autonomo/higiene-nudges.js +112 -112
  325. package/scripts/lib/ciclo-autonomo/index.js +301 -301
  326. package/scripts/lib/ciclo-autonomo/lock.js +124 -124
  327. package/scripts/lib/ciclo-autonomo/presupuesto.js +122 -122
  328. package/scripts/lib/ciclo-autonomo/puente-degradacion.js +240 -240
  329. package/scripts/lib/ciclo-autonomo/runner-fase-b.js +248 -248
  330. package/scripts/lib/ciclo-autonomo/writer-instintos.js +190 -190
  331. package/scripts/lib/ciclo-autonomo/yaml-instintos.js +591 -535
  332. package/scripts/lib/clasificar-directorio.js +92 -0
  333. package/scripts/lib/contadores-inventario.js +217 -217
  334. package/scripts/lib/detectar-host-swl.js +175 -175
  335. package/scripts/lib/detectar-runtime.js +29 -20
  336. package/scripts/lib/detectar-stack-detallado.js +307 -307
  337. package/scripts/lib/detector-autoduplicacion-intra-archivo.js +234 -234
  338. package/scripts/lib/detector-reglas-duplicadas.js +220 -220
  339. package/scripts/lib/eval-metrics-store.js +218 -218
  340. package/scripts/lib/eval-quality.js +171 -171
  341. package/scripts/lib/eval-schemas.js +144 -144
  342. package/scripts/lib/eval-self-correct.js +106 -106
  343. package/scripts/lib/eval-validator.js +185 -185
  344. package/scripts/lib/evidence-verifier.js +192 -0
  345. package/scripts/lib/evidencia-release.js +322 -322
  346. package/scripts/lib/evidencia-valor.js +228 -228
  347. package/scripts/lib/expandir-targets.js +71 -71
  348. package/scripts/lib/frontmatter-canonico.js +509 -0
  349. package/scripts/lib/gate-engine.js +871 -0
  350. package/scripts/lib/gate-hooks-requires.js +249 -249
  351. package/scripts/lib/gate-licencias.js +212 -212
  352. package/scripts/lib/git-config-preflight.js +48 -0
  353. package/scripts/lib/git-metricas.js +257 -257
  354. package/scripts/lib/harness-ir.js +778 -0
  355. package/scripts/lib/harness-source-snapshot.js +309 -0
  356. package/scripts/lib/integrity-ledger.js +1147 -0
  357. package/scripts/lib/jaccard-similarity.js +98 -98
  358. package/scripts/lib/legacy-gate-migration.js +324 -0
  359. package/scripts/lib/limpiar-basura-global.js +204 -0
  360. package/scripts/lib/longmemeval-runner.js +125 -125
  361. package/scripts/lib/metricas-dora.js +204 -204
  362. package/scripts/lib/notificaciones-telegram.js +1 -0
  363. package/scripts/lib/npm-version.js +1 -0
  364. package/scripts/lib/paquetes-conocidos.js +50 -50
  365. package/scripts/lib/plan-lock.js +61 -13
  366. package/scripts/lib/policy-broker.js +338 -0
  367. package/scripts/lib/policy-bundle.js +342 -0
  368. package/scripts/lib/policy-context-provider.js +310 -0
  369. package/scripts/lib/policy-contract.js +479 -0
  370. package/scripts/lib/policy-verifier-utils.js +65 -0
  371. package/scripts/lib/pr-analyzer.js +399 -399
  372. package/scripts/lib/principal-verifier.js +178 -0
  373. package/scripts/lib/prompt-builder.js +264 -264
  374. package/scripts/lib/resolver-plan-fase.js +37 -37
  375. package/scripts/lib/rrf-fusion.js +175 -175
  376. package/scripts/lib/runtime-adapter-contract.js +267 -0
  377. package/scripts/lib/runtime-artifact-verifier.js +426 -0
  378. package/scripts/lib/runtime-build-attestation.js +127 -0
  379. package/scripts/lib/runtime-bundle-installer.js +586 -0
  380. package/scripts/lib/runtime-compiler.js +327 -0
  381. package/scripts/lib/runtime-conformance.js +202 -0
  382. package/scripts/lib/runtime-doctor-core3.js +567 -0
  383. package/scripts/lib/runtime-doctor-input.js +59 -0
  384. package/scripts/lib/runtime-operation-adapter.js +267 -0
  385. package/scripts/lib/schema-version.js +164 -164
  386. package/scripts/lib/semantic-search.js +252 -252
  387. package/scripts/lib/signed-envelope.js +545 -0
  388. package/scripts/lib/single-use-store.js +359 -0
  389. package/scripts/lib/skills-externas.js +31 -0
  390. package/scripts/lib/toml-merge.js +204 -204
  391. package/scripts/lib/transformadores/codex.js +15 -8
  392. package/scripts/lib/transformadores/gemini.js +79 -5
  393. package/scripts/lib/w4-attestation-adapter.js +158 -0
  394. package/scripts/lib/w4-canario.js +337 -0
  395. package/scripts/lib/w4-claims.js +182 -0
  396. package/scripts/lib/w4-corpus-generador.js +542 -0
  397. package/scripts/lib/w4-gate-c5.js +115 -0
  398. package/scripts/lib/w4-harness-bajo-prueba.js +155 -0
  399. package/scripts/lib/w4-matriz-combos.js +55 -0
  400. package/scripts/lib/w4-motor-mutacion.js +1348 -0
  401. package/scripts/lib/w4-motor-replay.js +735 -0
  402. package/scripts/lib/w4-pin-origen.js +54 -0
  403. package/scripts/lib/w4-publicar-request.js +132 -0
  404. package/scripts/lib/w4-revocacion.js +62 -0
  405. package/scripts/lib/w4-runtimes-core3.js +38 -0
  406. package/scripts/lib/w4-scorer-certificacion.js +692 -0
  407. package/scripts/lib/w4-superficie-candidato.js +49 -0
  408. package/scripts/lib/w4-veredicto.js +452 -0
  409. package/scripts/lib/w4-verificar-veredicto.js +302 -0
  410. package/scripts/limpiar-artefactos-python.js +131 -131
  411. package/scripts/mcp-server/auth.js +105 -105
  412. package/scripts/mcp-server/cache.js +106 -106
  413. package/scripts/migrar-csv-a-array.js +168 -168
  414. package/scripts/migrar-fase-dominio.js +200 -200
  415. package/scripts/migrar-gates-legacy.js +108 -0
  416. package/scripts/publicar-certification-request.js +115 -0
  417. package/scripts/runtime-doctor.js +107 -0
  418. package/scripts/tui/componentes/selector-multi.js +189 -189
  419. package/scripts/tui/componentes/selector-unico.js +158 -158
  420. package/scripts/tui/ejecutores.js +375 -375
  421. package/scripts/tui/lib/colores.js +129 -129
  422. package/scripts/tui/lib/render.js +264 -264
  423. package/scripts/tui/lib/teclas.js +113 -113
  424. package/scripts/tui/pantallas/install-wizard.js +408 -403
  425. package/scripts/tui/pantallas/menu-principal.js +52 -52
  426. package/scripts/tui/pantallas/progreso.js +274 -274
  427. package/scripts/tui/pantallas/resumen.js +132 -132
  428. package/scripts/validar-userland-vacio.js +110 -110
  429. package/scripts/verificar-aislamiento-swl-eval.js +87 -0
  430. package/scripts/verificar-empaquetado-downstream.js +375 -0
  431. package/scripts/verificar-loop-constructor.js +215 -0
  432. package/scripts/verificar-trazabilidad.js +13 -6
  433. package/scripts/verificar-veredicto-real.js +84 -0
  434. package/instintos/.backups/perfil-usuario.yaml.2026-07-10-165128.bak +0 -53
  435. package/instintos/.backups/proyecto.yaml.2026-07-10-165128.bak +0 -372
@@ -1,294 +1,294 @@
1
- ---
2
- name: auto-evolucion-protocolo
3
- description: >
4
- Protocolo de auto-evolución del sistema SWL. Cómo los agentes aprenden y se mejoran,
5
- proponen cambios, versionado semántico de agentes, changelog, métricas de evolución,
6
- governance de cambios, parser de señales de fricción y safety checks.
7
- version: "1.1.2"
8
- herramientasPermitidas: [Read, Bash, Grep]
9
- evolvable: false # bloqueado por lista (skill de seguridad/privacidad)
10
- exclusiones:
11
- - "No cargar para evolución del código de aplicación del usuario (migración de APIs de frameworks, refactors de módulos propios) — para eso cargar el skill del framework correspondiente (`angular-moderno`, `react-optimizacion`, backend-*) o invocar `implementador-swl`."
12
- - "No cargar para migraciones de schema de base de datos o datos en reposo — para migraciones de persistencia cargar `postgresql-experto` y usar `migrador-swl`."
13
- - "No cargar para aplicar automáticamente cambios sobre skills o agentes con `evolvable: false` — estos artefactos requieren ADR explícito y decisión humana fuera del ciclo AGP."
14
- - "No cargar para evoluciones de dependencias externas (bumps de versión, deprecación de librerías) — para eso cargar `dependencias-auditoria` + `deprecacion-migracion`."
15
- ---
16
- # Protocolo de Auto-Evolución del Sistema SWL
17
-
18
- ## Cuándo NO cargar
19
-
20
- - La evolución es sobre código de aplicación del usuario (API de un framework cambió, hay que actualizar componentes): cargar el skill del framework (`angular-moderno`, `react-optimizacion`, backend-*) o invocar `implementador-swl`. Este skill es para evolución de artefactos del sistema SWL (agentes, skills, reglas), no del producto.
21
- - La tarea es migrar schemas de base de datos o datos en producción: cargar `postgresql-experto` y delegar a `migrador-swl`. La auto-evolución no cubre migraciones de persistencia — son irreversibles y requieren plan propio.
22
- - El artefacto objetivo tiene `evolvable: false`: este skill NO se auto-aplica sobre artefactos bloqueados. Requiere ADR explícito y edición manual por decisión humana.
23
- - La evolución es un bump de versión de dependencia externa (npm, pip): cargar `dependencias-auditoria` y `deprecacion-migracion`. Este skill cubre evolución de conocimiento interno del sistema, no del árbol de deps.
24
-
25
- ## ¿Por qué auto-evolución?
26
-
27
- El sistema SWL es una colección de agentes y skills que guían la implementación
28
- de software. Con el tiempo, estos artefactos envejecen:
29
- - Los frameworks cambian sus APIs.
30
- - Los equipos descubren nuevos anti-patrones.
31
- - Los errores recurrentes revelan gaps en los skills.
32
- - Los workflows ineficientes se vuelven visibles a través de la práctica.
33
-
34
- La auto-evolución es el proceso sistemático por el cual el sistema actualiza su propio
35
- conocimiento de forma controlada, versionada y auditable.
36
-
37
- ---
38
-
39
- ## Anatomía de un Cambio Evolutivo
40
-
41
- Todo cambio al sistema SWL pasa por este ciclo:
42
-
43
- ```
44
- Observación → Diagnóstico → Propuesta → Revisión → Aplicación → Verificación → Registro
45
- ```
46
-
47
- ### 1. Observación — ¿Qué triggerea un cambio?
48
-
49
- | Trigger | Ejemplo | Prioridad |
50
- |---------|---------|-----------|
51
- | Error recurrente en producción | `MissingGreenlet` en SQLAlchemy aparece 3+ veces | ALTA |
52
- | Nueva versión mayor de framework | Angular v20 cambia la Resource API | ALTA |
53
- | Patrón nuevo identificado | `satisfies` operator mejora type safety | MEDIA |
54
- | Deprecación de API | `*ngIf` eliminado en Angular v21 | ALTA |
55
- | Feedback de desarrollador | "Este skill no cubre migrations con datos" | MEDIA |
56
-
57
- ### 2. Diagnóstico — ¿Qué está desactualizado exactamente?
58
-
59
- Documentar: fecha, observador, error recurrente, síntoma, causa raíz,
60
- artefacto afectado (archivo + línea), severidad del gap.
61
-
62
- ---
63
-
64
- ## Versionado Semántico de Agentes y Skills
65
-
66
- ```
67
- MAYOR.MENOR.PARCHE
68
-
69
- MAYOR: cambio que rompe compatibilidad backward con proyectos existentes
70
- Requiere: aprobación de revisor humano
71
-
72
- MENOR: nueva funcionalidad o cobertura de nuevos casos
73
- Requiere: revisión del plan-checker
74
-
75
- PARCHE: corrección de error, clarificación, ejemplo mejorado
76
- Requiere: auto-aplicable por el verificador
77
- ```
78
-
79
- ---
80
-
81
- ## Protocolo de Propuesta de Cambio
82
-
83
- Formato estándar:
84
-
85
- ```markdown
86
- # PROPUESTA-EVOLUCION-NNN
87
-
88
- ## Metadatos
89
- - **Fecha**: YYYY-MM-DD
90
- - **Proponente**: agente
91
- - **Tipo**: PARCHE | MENOR | MAYOR
92
- - **Artefacto**: ruta/al/archivo
93
- - **Urgencia**: Alta | Media | Baja
94
-
95
- ## Problema Observado
96
- Descripción del error o gap.
97
-
98
- ## Evidencia
99
- - PR/sesión donde se observó (mínimo 2 instancias)
100
-
101
- ## Cambio Propuesto
102
- Diff o descripción del cambio.
103
-
104
- ## Impacto Estimado
105
- Breaking changes, estimación de mejora.
106
-
107
- ## Verificación Post-Cambio
108
- Cómo verificar que el cambio resolvió el problema.
109
- ```
110
-
111
- ---
112
-
113
- ## Governance — Quién Puede Cambiar Qué
114
-
115
- ```yaml
116
- cambios_autonomos:
117
- - tipo: PARCHE
118
- condicion: "corrección de ejemplo de código erróneo"
119
- - tipo: PARCHE
120
- condicion: "agregar anti-patrón observado 3+ veces"
121
-
122
- cambios_con_revision:
123
- - tipo: MENOR
124
- condicion: "nueva sección temática en un skill"
125
- aprobadores: ["planificador"]
126
- - tipo: MENOR
127
- condicion: "nuevo skill creado desde cero"
128
- aprobadores: ["planificador", "revisor"]
129
-
130
- cambios_con_aprobacion_humana:
131
- - tipo: MAYOR
132
- condicion: "cambio de convención que afecta código existente"
133
- - tipo: cualquiera
134
- condicion: "modificar agentes (no skills)"
135
- - tipo: cualquiera
136
- condicion: "cambiar reglas en CLAUDE.md"
137
- ```
138
-
139
- ---
140
-
141
- ## Safety Checks — Antes de Aplicar un Cambio
142
-
143
- Todo agente que proponga modificar un artefacto del sistema DEBE verificar:
144
-
145
- 1. **Consistencia**: Un PARCHE no modifica más de 50 líneas
146
- 2. **Scope**: Modificar agentes requiere aprobación humana
147
- 3. **Evidencia**: Mínimo 2 instancias de evidencia para un cambio
148
- 4. **Reversibilidad**: Todo cambio tiene un plan de rollback documentado
149
- 5. **No contradicciones**: El cambio no contradice otros skills o reglas
150
-
151
- ### Default de features autónomas: opt-out con kill-switch sagrado, no opt-in
152
-
153
- [Decisión validada 2026-07-10, motor determinista Fase 21/ADR-0041] Un ciclo
154
- autónomo que exige encendido explícito es un ciclo muerto en downstream —
155
- nadie lo opera. El diseño correcto es **nacer encendido** SOLO si se cumplen
156
- las 4 precondiciones que lo hacen inofensivo:
157
-
158
- 1. **No-op sin señales**: en un proyecto sin datos, la corrida no escribe nada.
159
- 2. **Backup pre-mutación**: toda escritura sobre memoria/estado tiene respaldo previo.
160
- 3. **Kill-switch doble y sagrado**: config persistente (`off`) + variable por
161
- sesión (`=0`); apagado = cero corridas, cero escrituras, sin excepción.
162
- 4. **Visibilidad**: cada corrida deja digest/telemetría que el usuario ve sin pedirla.
163
-
164
- Sin las 4, el default sigue siendo opt-in. La autonomía de MUTACIÓN (cambiar
165
- skills/agentes) queda además detrás de sus propios gates (checklist
166
- humano-validado, canary con quórum) — el default-on aplica al ciclo
167
- determinista, no a la aplicación de cambios.
168
-
169
- ---
170
-
171
- ## Formato de Commit Evolutivo
172
-
173
- ```
174
- evolucion(nombre-artefacto): descripción [TIPO v.anterior→v.nueva]
175
- ```
176
-
177
- Rollback: `git revert <hash-del-commit-evolutivo>`
178
-
179
- ---
180
-
181
- ## Escalera de Adquisición de Capacidades
182
-
183
- Cuando se identifica un patrón útil, la tentación es saltar de "lo resolví una vez"
184
- a "crear un skill". Pero la maduración tiene niveles intermedios. Saltar niveles
185
- produce skills frágiles que no se activan, workflows sin verificación y automatizaciones
186
- que fallan silenciosamente.
187
-
188
- | Nivel | Nombre | Qué implica | Criterio para avanzar al siguiente |
189
- |-------|--------|-------------|-----------------------------------|
190
- | 1 | **Solución ad hoc** | Se resolvió el problema una vez, en una sesión | El mismo problema aparece en otra sesión |
191
- | 2 | **Repetible** | Pasos documentados en ESTADO.md o DECISIONS.md | Se ejecutó 3+ veces con éxito siguiendo los pasos |
192
- | 3 | **Skill** | Codificado en SKILL.md con gotchas y restricciones | El skill se activa correctamente y cambia comportamiento (3-arm test) |
193
- | 4 | **Workflow** | Orquestación multi-agente con delegación definida | Los agentes completan el flujo sin intervención manual en 70%+ |
194
- | 5 | **Harness determinista** | Scripts en `scripts/` que validan output automáticamente | La validación detecta 90%+ de los errores conocidos |
195
- | 6 | **Cobertura evaluativa** | Métricas pass@k registradas en EVALUACION.md | pass@1 ≥ objetivo del tipo de agente durante 10+ ejecuciones |
196
- | 7 | **Automatizado** | Hook o cron que dispara la capacidad sin invocación manual | El hook se ejecuta sin errores en 95%+ de las veces |
197
- | 8 | **Monitoreado** | Métricas observables: latencia, tasa de error, drift | Dashboards activos y alertas configuradas |
198
- | 9 | **Autónomo con evidencia** | El sistema decide cuándo usar la capacidad basado en métricas, no en heurísticas | Decisiones autónomas acertadas en 85%+ |
199
- | 10 | **Empaquetado** | Reutilizable entre proyectos como plugin o módulo independiente | Funciona en 2+ proyectos distintos sin modificación |
200
-
201
- **Cómo usar**: Al proponer una evolución, identificar en qué nivel está la capacidad
202
- actual y proponer avanzar **un solo nivel**. Saltar niveles requiere justificación
203
- explícita en la propuesta de evolución — la mayoría de las veces es síntoma de
204
- optimismo injustificado.
205
-
206
- Para métricas de evolución, plantilla de changelog, proceso de retroalimentación
207
- del verificador y checklist completo de revisión,
208
- ver [recursos/referencia-completa.md](recursos/referencia-completa.md).
209
-
210
- ---
211
-
212
- ## Parser de señales de fricción (v1.1)
213
-
214
- El hook `hooks/lib/etapa-auto-evolucion.js` (SubagentStop) alimenta el log
215
- `.planning/auto-evolution/agentes.jsonl` y emite *nudges* hacia
216
- `auto-evolucion-swl` cuando detecta umbrales cruzados. Este skill define
217
- **qué cuenta como fricción** para que el agente tenga criterio uniforme al
218
- interpretar el log.
219
-
220
- ### Categorías de fricción
221
-
222
- | Categoría | Fuente | Fuerza | Contraseña en el log |
223
- |-----------|--------|--------|----------------------|
224
- | **Fallo duro** | Subagente terminó con `is_error:true` o excepción | Alta | `status: "failed"` |
225
- | **Run vacío** | Subagente terminó sin producir cambios útiles (0 Edit/Write) | Media | `toolCalls < 3` en agente de implementación |
226
- | **Trivial recurrente** | 10+ runs triviales (≤5 tool calls) del mismo agente | Baja | `trivial: true` |
227
- | **Corrección del usuario** | Mensaje del usuario con keywords de corrección en el turno posterior al run | Alta | detectada por `etapa-perfil-usuario.js` |
228
- | **Repetición de error** | Mismo tipo de error documentado ya en `APRENDIZAJES.md` | Alta | cruzar log con grep |
229
- | **Reintento manual** | Usuario vuelve a invocar el mismo agente con instrucciones ajustadas | Media | comparar `session_id` + `agente` consecutivos |
230
-
231
- ### Keywords de corrección (es-MX)
232
-
233
- Reutilizar la lista definida en `hooks/lib/etapa-perfil-usuario.js`:
234
-
235
- ```
236
- KEYWORDS_CORRECCION = [
237
- 'no así', 'no asi', 'mejor', 'en vez de', 'en lugar de',
238
- 'evita', 'evites', 'no uses', 'nunca uses', 'nunca hagas',
239
- 'siempre quiero', 'siempre usa', 'prefiero', 'prefiere',
240
- 'no me gusta', 'deja de',
241
- ]
242
- ```
243
-
244
- Si el mensaje del usuario inmediatamente posterior a un SubagentStop contiene
245
- ≥1 keyword de esta lista, **el último agente registrado hereda un punto de
246
- fricción** en el reporte del próximo `/swl:evolucionar`.
247
-
248
- ### Cómo usar el log al evolucionar
249
-
250
- Al invocar `auto-evolucion-swl` o `/swl:evolucionar <agente>`:
251
-
252
- 1. **Leer el log filtrado por agente:**
253
- ```bash
254
- grep "\"agente\":\"<nombre>\"" .planning/auto-evolution/agentes.jsonl | tail -50
255
- ```
256
-
257
- 2. **Cuantificar las 6 categorías** (fallo duro, run vacío, trivial recurrente,
258
- corrección, repetición, reintento).
259
-
260
- 3. **Priorizar la hipótesis de evolución** según la categoría dominante:
261
-
262
- | Categoría dominante | Hipótesis más probable |
263
- |---------------------|------------------------|
264
- | Fallo duro | Skills faltantes o instrucciones ambiguas del agente |
265
- | Corrección del usuario | Contradicción entre el comportamiento del agente y el perfil/instintos |
266
- | Repetición de error | Gap en `APRENDIZAJES.md` que no fue promovido a skill |
267
- | Trivial recurrente | El agente se invoca para trabajo que debería ir a uno más liviano (Haiku) |
268
- | Reintento manual | Prompts del agente con defaults malos; faltan preguntas de clarificación |
269
-
270
- 4. **Aplicar la escalera de adquisición** de capacidades (sección anterior)
271
- para decidir si el arreglo es un patch del skill, un skill nuevo, o un
272
- agente nuevo.
273
-
274
- ### Límites del parser
275
-
276
- - **No interpretar sentimiento** ("esto está mal" es ambiguo; requiere contexto).
277
- - **No evolucionar por 1 señal** sin importar la fuerza — mínimo 3 señales
278
- correlacionadas o 1 corrección explícita en CLAUDE.md.
279
- - **No modificar agentes con `nivelRiesgo: ALTO`** automáticamente — siempre
280
- requieren confirmación humana (ver CLAUDE.md regla de privilegio mínimo).
281
- - **No borrar entradas del log** — el log es append-only auditoría.
282
-
283
- ### Gotchas / Errores comunes no obvios
284
-
285
- - **Saltar niveles de la escalera de adquisición**: proponer crear un skill nuevo cuando la capacidad está en nivel 1 ("se resolvió una vez") produce skills frágiles que no se activan y workflows sin verificación. Causa: la presión por capturar el patrón rápido ignora que cada nivel exige un criterio medible para avanzar. Solución: identificar el nivel actual según la tabla, proponer avanzar un solo nivel, y si se salta, justificar explícitamente en la propuesta por qué no es optimismo injustificado.
286
- - **Evolucionar por 1 señal aislada**: aplicar un cambio tras detectar un solo fallo duro o una sola trivial recurrente produce churn sobre el artefacto sin evidencia real. Causa: el parser emite nudges por umbral cruzado, pero un nudge individual no prueba un patrón. Solución: requerir mínimo 3 señales correlacionadas del log o 1 corrección explícita en CLAUDE.md antes de redactar la propuesta; documentar ambas evidencias en el campo "Evidencia" de PROPUESTA-EVOLUCION.
287
- - **Auto-aplicar sobre agentes con `nivelRiesgo: ALTO`**: el ciclo automatizado puede intentar modificar agentes de alto riesgo si el gate de governance no se consulta primero, violando el principio de privilegio mínimo de CLAUDE.md. Causa: los cambios tipo PARCHE son auto-aplicables por default, pero esa regla aplica a skills — no a agentes de alto riesgo. Solución: antes de aplicar cualquier cambio, verificar el frontmatter del artefacto; si es agente con `nivelRiesgo: ALTO` o si el artefacto tiene `evolvable: false`, escalar a aprobación humana sin importar el tipo de bump.
288
- - **Interpretar sentimiento del usuario como señal de fricción**: capturar frases ambiguas ("esto está mal", "no me convence") como corrección atribuible al último agente produce evoluciones por ruido semántico. Causa: el parser reconoce solo keywords concretas de corrección; ampliar la lista por interpretación lleva a falsos positivos. Solución: usar exclusivamente la lista `KEYWORDS_CORRECCION` definida en `hooks/lib/etapa-perfil-usuario.js`; si el mensaje es ambiguo, no imputar fricción y esperar la siguiente señal.
289
-
290
- ### CHANGELOG del skill
291
-
292
- - **v1.1.0** (2026-04-18): añadido parser de señales de fricción y tabla de
293
- categorías. Cierra gap "skill autoevolutiva tras cada tarea" vs. Hermes.
294
- - **v1.0.0**: versión inicial del protocolo.
1
+ ---
2
+ name: auto-evolucion-protocolo
3
+ description: >
4
+ Protocolo de auto-evolución del sistema SWL. Cómo los agentes aprenden y se mejoran,
5
+ proponen cambios, versionado semántico de agentes, changelog, métricas de evolución,
6
+ governance de cambios, parser de señales de fricción y safety checks.
7
+ version: "1.1.2"
8
+ herramientasPermitidas: [Read, Bash, Grep]
9
+ evolvable: false # bloqueado por lista (skill de seguridad/privacidad)
10
+ exclusiones:
11
+ - "No cargar para evolución del código de aplicación del usuario (migración de APIs de frameworks, refactors de módulos propios) — para eso cargar el skill del framework correspondiente (`angular-moderno`, `react-optimizacion`, backend-*) o invocar `implementador-swl`."
12
+ - "No cargar para migraciones de schema de base de datos o datos en reposo — para migraciones de persistencia cargar `postgresql-experto` y usar `migrador-swl`."
13
+ - "No cargar para aplicar automáticamente cambios sobre skills o agentes con `evolvable: false` — estos artefactos requieren ADR explícito y decisión humana fuera del ciclo AGP."
14
+ - "No cargar para evoluciones de dependencias externas (bumps de versión, deprecación de librerías) — para eso cargar `dependencias-auditoria` + `deprecacion-migracion`."
15
+ ---
16
+ # Protocolo de Auto-Evolución del Sistema SWL
17
+
18
+ ## Cuándo NO cargar
19
+
20
+ - La evolución es sobre código de aplicación del usuario (API de un framework cambió, hay que actualizar componentes): cargar el skill del framework (`angular-moderno`, `react-optimizacion`, backend-*) o invocar `implementador-swl`. Este skill es para evolución de artefactos del sistema SWL (agentes, skills, reglas), no del producto.
21
+ - La tarea es migrar schemas de base de datos o datos en producción: cargar `postgresql-experto` y delegar a `migrador-swl`. La auto-evolución no cubre migraciones de persistencia — son irreversibles y requieren plan propio.
22
+ - El artefacto objetivo tiene `evolvable: false`: este skill NO se auto-aplica sobre artefactos bloqueados. Requiere ADR explícito y edición manual por decisión humana.
23
+ - La evolución es un bump de versión de dependencia externa (npm, pip): cargar `dependencias-auditoria` y `deprecacion-migracion`. Este skill cubre evolución de conocimiento interno del sistema, no del árbol de deps.
24
+
25
+ ## ¿Por qué auto-evolución?
26
+
27
+ El sistema SWL es una colección de agentes y skills que guían la implementación
28
+ de software. Con el tiempo, estos artefactos envejecen:
29
+ - Los frameworks cambian sus APIs.
30
+ - Los equipos descubren nuevos anti-patrones.
31
+ - Los errores recurrentes revelan gaps en los skills.
32
+ - Los workflows ineficientes se vuelven visibles a través de la práctica.
33
+
34
+ La auto-evolución es el proceso sistemático por el cual el sistema actualiza su propio
35
+ conocimiento de forma controlada, versionada y auditable.
36
+
37
+ ---
38
+
39
+ ## Anatomía de un Cambio Evolutivo
40
+
41
+ Todo cambio al sistema SWL pasa por este ciclo:
42
+
43
+ ```
44
+ Observación → Diagnóstico → Propuesta → Revisión → Aplicación → Verificación → Registro
45
+ ```
46
+
47
+ ### 1. Observación — ¿Qué triggerea un cambio?
48
+
49
+ | Trigger | Ejemplo | Prioridad |
50
+ |---------|---------|-----------|
51
+ | Error recurrente en producción | `MissingGreenlet` en SQLAlchemy aparece 3+ veces | ALTA |
52
+ | Nueva versión mayor de framework | Angular v20 cambia la Resource API | ALTA |
53
+ | Patrón nuevo identificado | `satisfies` operator mejora type safety | MEDIA |
54
+ | Deprecación de API | `*ngIf` eliminado en Angular v21 | ALTA |
55
+ | Feedback de desarrollador | "Este skill no cubre migrations con datos" | MEDIA |
56
+
57
+ ### 2. Diagnóstico — ¿Qué está desactualizado exactamente?
58
+
59
+ Documentar: fecha, observador, error recurrente, síntoma, causa raíz,
60
+ artefacto afectado (archivo + línea), severidad del gap.
61
+
62
+ ---
63
+
64
+ ## Versionado Semántico de Agentes y Skills
65
+
66
+ ```
67
+ MAYOR.MENOR.PARCHE
68
+
69
+ MAYOR: cambio que rompe compatibilidad backward con proyectos existentes
70
+ Requiere: aprobación de revisor humano
71
+
72
+ MENOR: nueva funcionalidad o cobertura de nuevos casos
73
+ Requiere: revisión del plan-checker
74
+
75
+ PARCHE: corrección de error, clarificación, ejemplo mejorado
76
+ Requiere: auto-aplicable por el verificador
77
+ ```
78
+
79
+ ---
80
+
81
+ ## Protocolo de Propuesta de Cambio
82
+
83
+ Formato estándar:
84
+
85
+ ```markdown
86
+ # PROPUESTA-EVOLUCION-NNN
87
+
88
+ ## Metadatos
89
+ - **Fecha**: YYYY-MM-DD
90
+ - **Proponente**: agente
91
+ - **Tipo**: PARCHE | MENOR | MAYOR
92
+ - **Artefacto**: ruta/al/archivo
93
+ - **Urgencia**: Alta | Media | Baja
94
+
95
+ ## Problema Observado
96
+ Descripción del error o gap.
97
+
98
+ ## Evidencia
99
+ - PR/sesión donde se observó (mínimo 2 instancias)
100
+
101
+ ## Cambio Propuesto
102
+ Diff o descripción del cambio.
103
+
104
+ ## Impacto Estimado
105
+ Breaking changes, estimación de mejora.
106
+
107
+ ## Verificación Post-Cambio
108
+ Cómo verificar que el cambio resolvió el problema.
109
+ ```
110
+
111
+ ---
112
+
113
+ ## Governance — Quién Puede Cambiar Qué
114
+
115
+ ```yaml
116
+ cambios_autonomos:
117
+ - tipo: PARCHE
118
+ condicion: "corrección de ejemplo de código erróneo"
119
+ - tipo: PARCHE
120
+ condicion: "agregar anti-patrón observado 3+ veces"
121
+
122
+ cambios_con_revision:
123
+ - tipo: MENOR
124
+ condicion: "nueva sección temática en un skill"
125
+ aprobadores: ["planificador"]
126
+ - tipo: MENOR
127
+ condicion: "nuevo skill creado desde cero"
128
+ aprobadores: ["planificador", "revisor"]
129
+
130
+ cambios_con_aprobacion_humana:
131
+ - tipo: MAYOR
132
+ condicion: "cambio de convención que afecta código existente"
133
+ - tipo: cualquiera
134
+ condicion: "modificar agentes (no skills)"
135
+ - tipo: cualquiera
136
+ condicion: "cambiar reglas en CLAUDE.md"
137
+ ```
138
+
139
+ ---
140
+
141
+ ## Safety Checks — Antes de Aplicar un Cambio
142
+
143
+ Todo agente que proponga modificar un artefacto del sistema DEBE verificar:
144
+
145
+ 1. **Consistencia**: Un PARCHE no modifica más de 50 líneas
146
+ 2. **Scope**: Modificar agentes requiere aprobación humana
147
+ 3. **Evidencia**: Mínimo 2 instancias de evidencia para un cambio
148
+ 4. **Reversibilidad**: Todo cambio tiene un plan de rollback documentado
149
+ 5. **No contradicciones**: El cambio no contradice otros skills o reglas
150
+
151
+ ### Default de features autónomas: opt-out con kill-switch sagrado, no opt-in
152
+
153
+ [Decisión validada 2026-07-10, motor determinista Fase 21/ADR-0041] Un ciclo
154
+ autónomo que exige encendido explícito es un ciclo muerto en downstream —
155
+ nadie lo opera. El diseño correcto es **nacer encendido** SOLO si se cumplen
156
+ las 4 precondiciones que lo hacen inofensivo:
157
+
158
+ 1. **No-op sin señales**: en un proyecto sin datos, la corrida no escribe nada.
159
+ 2. **Backup pre-mutación**: toda escritura sobre memoria/estado tiene respaldo previo.
160
+ 3. **Kill-switch doble y sagrado**: config persistente (`off`) + variable por
161
+ sesión (`=0`); apagado = cero corridas, cero escrituras, sin excepción.
162
+ 4. **Visibilidad**: cada corrida deja digest/telemetría que el usuario ve sin pedirla.
163
+
164
+ Sin las 4, el default sigue siendo opt-in. La autonomía de MUTACIÓN (cambiar
165
+ skills/agentes) queda además detrás de sus propios gates (checklist
166
+ humano-validado, canary con quórum) — el default-on aplica al ciclo
167
+ determinista, no a la aplicación de cambios.
168
+
169
+ ---
170
+
171
+ ## Formato de Commit Evolutivo
172
+
173
+ ```
174
+ evolucion(nombre-artefacto): descripción [TIPO v.anterior→v.nueva]
175
+ ```
176
+
177
+ Rollback: `git revert <hash-del-commit-evolutivo>`
178
+
179
+ ---
180
+
181
+ ## Escalera de Adquisición de Capacidades
182
+
183
+ Cuando se identifica un patrón útil, la tentación es saltar de "lo resolví una vez"
184
+ a "crear un skill". Pero la maduración tiene niveles intermedios. Saltar niveles
185
+ produce skills frágiles que no se activan, workflows sin verificación y automatizaciones
186
+ que fallan silenciosamente.
187
+
188
+ | Nivel | Nombre | Qué implica | Criterio para avanzar al siguiente |
189
+ |-------|--------|-------------|-----------------------------------|
190
+ | 1 | **Solución ad hoc** | Se resolvió el problema una vez, en una sesión | El mismo problema aparece en otra sesión |
191
+ | 2 | **Repetible** | Pasos documentados en ESTADO.md o DECISIONS.md | Se ejecutó 3+ veces con éxito siguiendo los pasos |
192
+ | 3 | **Skill** | Codificado en SKILL.md con gotchas y restricciones | El skill se activa correctamente y cambia comportamiento (3-arm test) |
193
+ | 4 | **Workflow** | Orquestación multi-agente con delegación definida | Los agentes completan el flujo sin intervención manual en 70%+ |
194
+ | 5 | **Harness determinista** | Scripts en `scripts/` que validan output automáticamente | La validación detecta 90%+ de los errores conocidos |
195
+ | 6 | **Cobertura evaluativa** | Métricas pass@k registradas en EVALUACION.md | pass@1 ≥ objetivo del tipo de agente durante 10+ ejecuciones |
196
+ | 7 | **Automatizado** | Hook o cron que dispara la capacidad sin invocación manual | El hook se ejecuta sin errores en 95%+ de las veces |
197
+ | 8 | **Monitoreado** | Métricas observables: latencia, tasa de error, drift | Dashboards activos y alertas configuradas |
198
+ | 9 | **Autónomo con evidencia** | El sistema decide cuándo usar la capacidad basado en métricas, no en heurísticas | Decisiones autónomas acertadas en 85%+ |
199
+ | 10 | **Empaquetado** | Reutilizable entre proyectos como plugin o módulo independiente | Funciona en 2+ proyectos distintos sin modificación |
200
+
201
+ **Cómo usar**: Al proponer una evolución, identificar en qué nivel está la capacidad
202
+ actual y proponer avanzar **un solo nivel**. Saltar niveles requiere justificación
203
+ explícita en la propuesta de evolución — la mayoría de las veces es síntoma de
204
+ optimismo injustificado.
205
+
206
+ Para métricas de evolución, plantilla de changelog, proceso de retroalimentación
207
+ del verificador y checklist completo de revisión,
208
+ ver [recursos/referencia-completa.md](recursos/referencia-completa.md).
209
+
210
+ ---
211
+
212
+ ## Parser de señales de fricción (v1.1)
213
+
214
+ El hook `hooks/lib/etapa-auto-evolucion.js` (SubagentStop) alimenta el log
215
+ `.planning/auto-evolution/agentes.jsonl` y emite *nudges* hacia
216
+ `auto-evolucion-swl` cuando detecta umbrales cruzados. Este skill define
217
+ **qué cuenta como fricción** para que el agente tenga criterio uniforme al
218
+ interpretar el log.
219
+
220
+ ### Categorías de fricción
221
+
222
+ | Categoría | Fuente | Fuerza | Contraseña en el log |
223
+ |-----------|--------|--------|----------------------|
224
+ | **Fallo duro** | Subagente terminó con `is_error:true` o excepción | Alta | `status: "failed"` |
225
+ | **Run vacío** | Subagente terminó sin producir cambios útiles (0 Edit/Write) | Media | `toolCalls < 3` en agente de implementación |
226
+ | **Trivial recurrente** | 10+ runs triviales (≤5 tool calls) del mismo agente | Baja | `trivial: true` |
227
+ | **Corrección del usuario** | Mensaje del usuario con keywords de corrección en el turno posterior al run | Alta | detectada por `etapa-perfil-usuario.js` |
228
+ | **Repetición de error** | Mismo tipo de error documentado ya en `APRENDIZAJES.md` | Alta | cruzar log con grep |
229
+ | **Reintento manual** | Usuario vuelve a invocar el mismo agente con instrucciones ajustadas | Media | comparar `session_id` + `agente` consecutivos |
230
+
231
+ ### Keywords de corrección (es-MX)
232
+
233
+ Reutilizar la lista definida en `hooks/lib/etapa-perfil-usuario.js`:
234
+
235
+ ```
236
+ KEYWORDS_CORRECCION = [
237
+ 'no así', 'no asi', 'mejor', 'en vez de', 'en lugar de',
238
+ 'evita', 'evites', 'no uses', 'nunca uses', 'nunca hagas',
239
+ 'siempre quiero', 'siempre usa', 'prefiero', 'prefiere',
240
+ 'no me gusta', 'deja de',
241
+ ]
242
+ ```
243
+
244
+ Si el mensaje del usuario inmediatamente posterior a un SubagentStop contiene
245
+ ≥1 keyword de esta lista, **el último agente registrado hereda un punto de
246
+ fricción** en el reporte del próximo `/swl:evolucionar`.
247
+
248
+ ### Cómo usar el log al evolucionar
249
+
250
+ Al invocar `auto-evolucion-swl` o `/swl:evolucionar <agente>`:
251
+
252
+ 1. **Leer el log filtrado por agente:**
253
+ ```bash
254
+ grep "\"agente\":\"<nombre>\"" .planning/auto-evolution/agentes.jsonl | tail -50
255
+ ```
256
+
257
+ 2. **Cuantificar las 6 categorías** (fallo duro, run vacío, trivial recurrente,
258
+ corrección, repetición, reintento).
259
+
260
+ 3. **Priorizar la hipótesis de evolución** según la categoría dominante:
261
+
262
+ | Categoría dominante | Hipótesis más probable |
263
+ |---------------------|------------------------|
264
+ | Fallo duro | Skills faltantes o instrucciones ambiguas del agente |
265
+ | Corrección del usuario | Contradicción entre el comportamiento del agente y el perfil/instintos |
266
+ | Repetición de error | Gap en `APRENDIZAJES.md` que no fue promovido a skill |
267
+ | Trivial recurrente | El agente se invoca para trabajo que debería ir a uno más liviano (Haiku) |
268
+ | Reintento manual | Prompts del agente con defaults malos; faltan preguntas de clarificación |
269
+
270
+ 4. **Aplicar la escalera de adquisición** de capacidades (sección anterior)
271
+ para decidir si el arreglo es un patch del skill, un skill nuevo, o un
272
+ agente nuevo.
273
+
274
+ ### Límites del parser
275
+
276
+ - **No interpretar sentimiento** ("esto está mal" es ambiguo; requiere contexto).
277
+ - **No evolucionar por 1 señal** sin importar la fuerza — mínimo 3 señales
278
+ correlacionadas o 1 corrección explícita en CLAUDE.md.
279
+ - **No modificar agentes con `nivelRiesgo: ALTO`** automáticamente — siempre
280
+ requieren confirmación humana (ver CLAUDE.md regla de privilegio mínimo).
281
+ - **No borrar entradas del log** — el log es append-only auditoría.
282
+
283
+ ### Gotchas / Errores comunes no obvios
284
+
285
+ - **Saltar niveles de la escalera de adquisición**: proponer crear un skill nuevo cuando la capacidad está en nivel 1 ("se resolvió una vez") produce skills frágiles que no se activan y workflows sin verificación. Causa: la presión por capturar el patrón rápido ignora que cada nivel exige un criterio medible para avanzar. Solución: identificar el nivel actual según la tabla, proponer avanzar un solo nivel, y si se salta, justificar explícitamente en la propuesta por qué no es optimismo injustificado.
286
+ - **Evolucionar por 1 señal aislada**: aplicar un cambio tras detectar un solo fallo duro o una sola trivial recurrente produce churn sobre el artefacto sin evidencia real. Causa: el parser emite nudges por umbral cruzado, pero un nudge individual no prueba un patrón. Solución: requerir mínimo 3 señales correlacionadas del log o 1 corrección explícita en CLAUDE.md antes de redactar la propuesta; documentar ambas evidencias en el campo "Evidencia" de PROPUESTA-EVOLUCION.
287
+ - **Auto-aplicar sobre agentes con `nivelRiesgo: ALTO`**: el ciclo automatizado puede intentar modificar agentes de alto riesgo si el gate de governance no se consulta primero, violando el principio de privilegio mínimo de CLAUDE.md. Causa: los cambios tipo PARCHE son auto-aplicables por default, pero esa regla aplica a skills — no a agentes de alto riesgo. Solución: antes de aplicar cualquier cambio, verificar el frontmatter del artefacto; si es agente con `nivelRiesgo: ALTO` o si el artefacto tiene `evolvable: false`, escalar a aprobación humana sin importar el tipo de bump.
288
+ - **Interpretar sentimiento del usuario como señal de fricción**: capturar frases ambiguas ("esto está mal", "no me convence") como corrección atribuible al último agente produce evoluciones por ruido semántico. Causa: el parser reconoce solo keywords concretas de corrección; ampliar la lista por interpretación lleva a falsos positivos. Solución: usar exclusivamente la lista `KEYWORDS_CORRECCION` definida en `hooks/lib/etapa-perfil-usuario.js`; si el mensaje es ambiguo, no imputar fricción y esperar la siguiente señal.
289
+
290
+ ### CHANGELOG del skill
291
+
292
+ - **v1.1.0** (2026-04-18): añadido parser de señales de fricción y tabla de
293
+ categorías. Cierra gap "skill autoevolutiva tras cada tarea" vs. Hermes.
294
+ - **v1.0.0**: versión inicial del protocolo.