@saulwade/swl-ses 2.2.4 → 2.3.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 (325) hide show
  1. package/CLAUDE.md +48 -7
  2. package/README.md +3 -3
  3. package/agentes/accesibilidad-wcag-swl.md +690 -690
  4. package/agentes/arquitecto-swl.md +267 -267
  5. package/agentes/auto-evolucion-swl.md +908 -908
  6. package/agentes/backend-api-swl.md +472 -472
  7. package/agentes/backend-csharp-swl.md +420 -420
  8. package/agentes/backend-go-swl.md +390 -390
  9. package/agentes/backend-java-swl.md +281 -281
  10. package/agentes/backend-node-swl.md +479 -479
  11. package/agentes/backend-python-swl.md +605 -605
  12. package/agentes/backend-rust-swl.md +364 -364
  13. package/agentes/backend-workers-swl.md +482 -482
  14. package/agentes/cloud-infra-swl.md +509 -509
  15. package/agentes/consolidador-swl.md +541 -541
  16. package/agentes/datos-swl.md +605 -605
  17. package/agentes/depurador-swl.md +352 -352
  18. package/agentes/devops-ci-swl.md +400 -400
  19. package/agentes/disenador-ui-swl.md +569 -569
  20. package/agentes/documentador-swl.md +345 -345
  21. package/agentes/frontend-angular-swl.md +621 -621
  22. package/agentes/frontend-css-swl.md +716 -716
  23. package/agentes/frontend-react-swl.md +692 -692
  24. package/agentes/frontend-swl.md +496 -496
  25. package/agentes/frontend-tailwind-swl.md +826 -826
  26. package/agentes/gh-fix-ci-swl.md +2 -2
  27. package/agentes/implementador-swl.md +328 -328
  28. package/agentes/investigador-swl.md +432 -432
  29. package/agentes/investigador-ux-swl.md +505 -505
  30. package/agentes/llm-apps-swl.md +278 -278
  31. package/agentes/migrador-swl.md +442 -442
  32. package/agentes/mobile-android-swl.md +511 -511
  33. package/agentes/mobile-cross-swl.md +541 -541
  34. package/agentes/mobile-ios-swl.md +502 -502
  35. package/agentes/mobile-testing-swl.md +302 -302
  36. package/agentes/nemesis-auditor-swl.md +285 -285
  37. package/agentes/notificador-swl.md +918 -918
  38. package/agentes/observabilidad-swl.md +438 -438
  39. package/agentes/orquestador-swl.md +1026 -1026
  40. package/agentes/pagos-swl.md +310 -310
  41. package/agentes/perfilador-usuario-swl.md +321 -321
  42. package/agentes/planificador-swl.md +399 -399
  43. package/agentes/producto-prd-swl.md +589 -589
  44. package/agentes/red-team-swl.md +1 -1
  45. package/agentes/release-manager-swl.md +590 -590
  46. package/agentes/rendimiento-swl.md +713 -713
  47. package/agentes/resolutor-build-swl.md +245 -245
  48. package/agentes/revisor-angular-swl.md +278 -278
  49. package/agentes/revisor-codigo-swl.md +505 -505
  50. package/agentes/revisor-csharp-swl.md +264 -264
  51. package/agentes/revisor-go-swl.md +259 -259
  52. package/agentes/revisor-java-swl.md +257 -257
  53. package/agentes/revisor-kotlin-swl.md +273 -273
  54. package/agentes/revisor-nextjs-swl.md +281 -281
  55. package/agentes/revisor-php-swl.md +271 -271
  56. package/agentes/revisor-react-swl.md +278 -278
  57. package/agentes/revisor-rust-swl.md +346 -346
  58. package/agentes/revisor-seguridad-swl.md +399 -399
  59. package/agentes/revisor-swift-swl.md +268 -268
  60. package/agentes/revisor-typescript-swl.md +346 -346
  61. package/agentes/sre-swl.md +291 -291
  62. package/agentes/tdd-qa-swl.md +393 -393
  63. package/comandos/swl/aprobar-plan.md +146 -141
  64. package/comandos/swl/briefing.md +119 -119
  65. package/comandos/swl/contribuir.md +233 -233
  66. package/comandos/swl/predecir.md +139 -139
  67. package/comandos/swl/release.md +30 -8
  68. package/comandos/swl/sesiones.md +1 -1
  69. package/comandos/swl/status.md +343 -333
  70. package/gateway/agent-executor.js +1 -1
  71. package/gateway/lib/event-channel.js +191 -191
  72. package/habilidades/agent-deep-links/SKILL.md +148 -148
  73. package/habilidades/agentes-como-servicio/SKILL.md +2 -2
  74. package/habilidades/angular-moderno/SKILL.md +20 -1
  75. package/habilidades/auto-evolucion-protocolo/SKILL.md +276 -276
  76. package/habilidades/backend-async-postgres-testing/SKILL.md +215 -215
  77. package/habilidades/backend-error-design/SKILL.md +221 -221
  78. package/habilidades/backend-production-resilience/SKILL.md +288 -288
  79. package/habilidades/benchmark-memoria/SKILL.md +186 -186
  80. package/habilidades/calidad-anti-patrones-universales/SKILL.md +368 -368
  81. package/habilidades/calidad-contract-testing/SKILL.md +165 -165
  82. package/habilidades/calidad-mutation-testing/SKILL.md +170 -170
  83. package/habilidades/changelog-generator/scripts/parse-commits.js +367 -367
  84. package/habilidades/checklist-seguridad/recursos/stride-cobertura.md +60 -60
  85. package/habilidades/contenedores-docker/SKILL.md +3 -1
  86. package/habilidades/diagrama-arquitectura/assets/template.html +276 -276
  87. package/habilidades/doubt-driven-review/recursos/EXAMPLES.md +130 -130
  88. package/habilidades/drift-detection/SKILL.md +179 -179
  89. package/habilidades/ejecutar-fase/SKILL.md +564 -541
  90. package/habilidades/ejecutar-task-iterativo/SKILL.md +278 -278
  91. package/habilidades/estructura-proyecto-claude/recursos/frontmatter-y-hooks-referencia.md +1 -1
  92. package/habilidades/estructura-proyecto-claude/recursos/mcp-json-template.json +57 -57
  93. package/habilidades/eval-framework/SKILL.md +212 -212
  94. package/habilidades/extractor-de-aprendizajes/SKILL.md +3 -3
  95. package/habilidades/feynman-auditor-swl/recursos/preguntas-language-agnostic.md +108 -108
  96. package/habilidades/harness-claude-code/recursos/disciplina-harness-regla.md +252 -252
  97. package/habilidades/legacy-code-rescue/SKILL.md +267 -267
  98. package/habilidades/meta-skills-estandar/recursos/convencion-examples.md +93 -93
  99. package/habilidades/patrones-python/recursos/patrones-avanzados.md +469 -469
  100. package/habilidades/perfil-usuario/SKILL.md +200 -200
  101. package/habilidades/planear-fase/SKILL.md +15 -1
  102. package/habilidades/prevencion-sobreingenieria/recursos/EXAMPLES.md +580 -580
  103. package/habilidades/proceso-ddia-fundamentos/SKILL.md +255 -255
  104. package/habilidades/proceso-ddia-streaming/SKILL.md +231 -231
  105. package/habilidades/proceso-debate-adversarial/SKILL.md +191 -164
  106. package/habilidades/proceso-debate-adversarial/recursos/personas.md +105 -105
  107. package/habilidades/proceso-discovery-machote/SKILL.md +157 -157
  108. package/habilidades/proceso-dynamic-workflows/SKILL.md +138 -138
  109. package/habilidades/proceso-dynamic-workflows/recursos/template-adversarial-verify.js +65 -65
  110. package/habilidades/proceso-dynamic-workflows/recursos/template-triage.js +65 -65
  111. package/habilidades/proceso-intent-engineering/SKILL.md +269 -269
  112. package/habilidades/proceso-modular-split/SKILL.md +256 -256
  113. package/habilidades/prompt-engineering/recursos/patrones-avanzados.md +2 -2
  114. package/habilidades/state-inconsistency-auditor-swl/recursos/coupled-state-patterns.md +147 -147
  115. package/habilidades/structured-outputs/SKILL.md +2 -2
  116. package/habilidades/swl-claudemd/recursos/contrato-aprender.md +83 -83
  117. package/habilidades/swl-claudemd/recursos/duplicacion-reglas-globales.md +85 -85
  118. package/habilidades/swl-claudemd/recursos/plantillas-init.md +94 -94
  119. package/habilidades/swl-dashboard/SKILL.md +2 -2
  120. package/habilidades/tdd-workflow/SKILL.md +33 -1
  121. package/habilidades/tdd-workflow/recursos/gherkin-bdd.md +111 -111
  122. package/habilidades/validacion-ci-sistema/recursos/validadores-completos.md +1 -1
  123. package/habilidades/validacion-ci-sistema/scripts/validar-sistema.sh +1 -1
  124. package/hooks/captura-acciones-post.js +151 -0
  125. package/hooks/captura-acciones-session.js +155 -0
  126. package/hooks/ciclo-evolucion-subagente.js +26 -26
  127. package/hooks/ciclo-evolucion.js +26 -26
  128. package/hooks/claudemd-bloat-detector.js +161 -161
  129. package/hooks/claudemd-duplicacion-detector.js +170 -170
  130. package/hooks/contexto-iteracion.js +144 -144
  131. package/hooks/guardrail-modelo.js +1 -1
  132. package/hooks/lib/agent-routing.js +107 -107
  133. package/hooks/lib/auto-consolidator.js +335 -335
  134. package/hooks/lib/autonomia.js +208 -208
  135. package/hooks/lib/briefing.js +512 -474
  136. package/hooks/lib/captura-acciones.js +392 -0
  137. package/hooks/lib/ciclo-evolucion.js +47 -47
  138. package/hooks/lib/deep-links.js +185 -185
  139. package/hooks/lib/error-classifier.js +308 -308
  140. package/hooks/lib/etapa-auto-evolucion.js +701 -701
  141. package/hooks/lib/etapa-metricas.js +388 -388
  142. package/hooks/lib/etapa-perfil-usuario.js +376 -376
  143. package/hooks/lib/loop-telemetry.js +321 -321
  144. package/hooks/lib/merkle-audit.js +96 -96
  145. package/hooks/lib/model-router.js +2 -2
  146. package/hooks/lib/propose-step.js +358 -358
  147. package/hooks/lib/provenance-tracker.js +191 -191
  148. package/hooks/lib/rate-limit-tracker.js +253 -253
  149. package/hooks/lib/resource-quota.js +122 -122
  150. package/hooks/lib/retry-jitter.js +165 -165
  151. package/hooks/lib/security-net.js +201 -201
  152. package/hooks/lib/skill-auditor.js +588 -588
  153. package/hooks/lib/sync-status.js +228 -228
  154. package/hooks/lib/taint-tracker.js +107 -107
  155. package/hooks/lib/text-similarity.js +241 -241
  156. package/hooks/lib/token-estimator.js +1 -0
  157. package/hooks/lib/toon-compressor.js +245 -245
  158. package/hooks/lib/usage-model.js +1 -1
  159. package/hooks/linea-estado.js +2 -0
  160. package/hooks/registro-turnos.js +209 -209
  161. package/hooks/session-briefing.js +98 -98
  162. package/hooks/spec-gate.js +211 -211
  163. package/hooks/sugerir-regenerar-inventario.js +170 -170
  164. package/hooks/tdd-gate.js +241 -241
  165. package/hooks/telemetria-skill-routing.js +100 -100
  166. package/hooks/validar-formato-post-subagente.js +140 -140
  167. package/hooks/validar-intent-spec.js +242 -242
  168. package/hooks/validar-memoria-hook.js +218 -218
  169. package/hooks/validar-planning-paths.js +134 -134
  170. package/instintos/autonomia.yaml +27 -27
  171. package/instintos/prompt-appendices.yaml +57 -57
  172. package/llms.txt +2 -2
  173. package/manifiestos/agent-output-schemas.json +57 -57
  174. package/manifiestos/canonical-hashes.json +2291 -1637
  175. package/manifiestos/hooks-config.json +18 -0
  176. package/manifiestos/modulos.json +4 -0
  177. package/manifiestos/planning-paths.json +44 -44
  178. package/manifiestos/skills-lock.json +1282 -1282
  179. package/package.json +2 -2
  180. package/plantillas/auditor-veto-template.md +105 -105
  181. package/plantillas/github-workflows/README.md +47 -47
  182. package/plantillas/github-workflows/release-please.yml +44 -44
  183. package/plantillas/github-workflows/swl-ci.yml +107 -107
  184. package/plantillas/github-workflows/swl-security.yml +51 -51
  185. package/plugin.json +2 -2
  186. package/reglas/accesibilidad.md +10 -10
  187. package/reglas/analisis-previo-tareas-grandes.md +172 -172
  188. package/reglas/api-diseno.md +9 -9
  189. package/reglas/arreglar-al-detectar.md +240 -240
  190. package/reglas/auditorias-documentales-estructurales.md +7 -7
  191. package/reglas/cloud-infra.md +8 -8
  192. package/reglas/consultar-vault-primero.md +195 -195
  193. package/reglas/debatir-antes-de-aceptar.md +158 -158
  194. package/reglas/fragmentos-compartidos.md +183 -183
  195. package/reglas/hooks.md +6 -6
  196. package/reglas/intent-engineering.md +218 -218
  197. package/reglas/markitdown.md +8 -8
  198. package/reglas/memoria-consolidada.md +41 -0
  199. package/reglas/monitor-ci.md +309 -309
  200. package/reglas/patrones.md +6 -6
  201. package/reglas/seguridad-agentes.md +66 -0
  202. package/reglas/sesiones-paralelas.md +180 -180
  203. package/reglas/sin-duplicacion-reglas-globales.md +182 -182
  204. package/reglas/skills-estandar.md +6 -6
  205. package/reglas/testing.md +7 -7
  206. package/reglas/tests-cleanup.md +224 -224
  207. package/reglas/usar-code-review-graph.md +155 -155
  208. package/reglas/usar-context7.md +226 -226
  209. package/reglas/verificar-citas-normativas.md +548 -548
  210. package/schemas/agent-frontmatter.schema.json +3 -3
  211. package/schemas/agent-message.schema.json +73 -73
  212. package/schemas/agent-output-implementacion.schema.json +114 -114
  213. package/schemas/agent-output-planificacion.schema.json +150 -150
  214. package/schemas/agent-output-review.schema.json +98 -98
  215. package/schemas/diary-entry.schema.json +112 -112
  216. package/schemas/hook-profiles.schema.json +54 -54
  217. package/schemas/hooks-config.schema.json +89 -89
  218. package/schemas/instinct.schema.json +161 -152
  219. package/schemas/modulos.schema.json +38 -38
  220. package/schemas/perfiles.schema.json +36 -36
  221. package/schemas/plugin.schema.json +77 -77
  222. package/schemas/skill-evals.schema.json +119 -119
  223. package/schemas/skill-frontmatter.schema.json +245 -245
  224. package/scripts/audit-tools/audit-history.js +330 -330
  225. package/scripts/audit-tools/bundle-tracker.js +290 -290
  226. package/scripts/audit-tools/canary-monitor.js +352 -352
  227. package/scripts/audit-tools/code-profiler.js +605 -605
  228. package/scripts/audit-tools/dep-doctor.js +320 -320
  229. package/scripts/audit-tools/env-validator.js +206 -206
  230. package/scripts/audit-tools/lib/fs-walk.js +48 -48
  231. package/scripts/audit-tools/lib/output.js +23 -23
  232. package/scripts/audit-tools/migration-checker.js +392 -392
  233. package/scripts/audit-tools/pentest-scanner.js +1436 -1436
  234. package/scripts/benchmark-memoria.js +167 -167
  235. package/scripts/bootstrap-instintos.js +25 -7
  236. package/scripts/cli/aprobar-plan.js +73 -73
  237. package/scripts/cli/briefing.js +23 -23
  238. package/scripts/cli/ciclo-evolucion.js +26 -26
  239. package/scripts/cli/configurar-ci.js +40 -40
  240. package/scripts/cli/derivar-feature-list.js +25 -25
  241. package/scripts/cli/detectar-host.js +27 -27
  242. package/scripts/cli/diary-entry.js +69 -69
  243. package/scripts/cli/execution-state.js +18 -18
  244. package/scripts/cli/gateway-notify.js +41 -41
  245. package/scripts/cli/liberar-fase.js +42 -42
  246. package/scripts/cli/loop-telemetry.js +125 -125
  247. package/scripts/cli/mark-evolved.js +56 -56
  248. package/scripts/cli/metricas-dora.js +26 -26
  249. package/scripts/cli/near-duplicate.js +55 -55
  250. package/scripts/cli/notificaciones.js +123 -123
  251. package/scripts/cli/propose-step.js +29 -29
  252. package/scripts/cli/schedule-parse.js +19 -19
  253. package/scripts/cli/sugerir-modelo.js +20 -20
  254. package/scripts/cli/verificar-plan.js +36 -36
  255. package/scripts/cli/verificar-trazabilidad.js +35 -35
  256. package/scripts/configurar-branch-protection.js +418 -418
  257. package/scripts/detectar-aprendizajes-duplicados.js +151 -151
  258. package/scripts/field-report.js +199 -199
  259. package/scripts/generar-checklists-consolidados.js +273 -273
  260. package/scripts/generar-matriz-lenguajes.js +271 -271
  261. package/scripts/lib/artefactos-python.js +43 -43
  262. package/scripts/lib/auditar-invocaciones-comandos.js +104 -104
  263. package/scripts/lib/benchmark-metrics.js +160 -160
  264. package/scripts/lib/budget-enforcer.js +252 -252
  265. package/scripts/lib/ci-reader.js +193 -193
  266. package/scripts/lib/claude-sessions.js +1 -0
  267. package/scripts/lib/configurar-ci.js +380 -380
  268. package/scripts/lib/contadores-inventario.js +217 -217
  269. package/scripts/lib/detectar-host-swl.js +175 -175
  270. package/scripts/lib/detectar-stack-detallado.js +307 -307
  271. package/scripts/lib/detector-autoduplicacion-intra-archivo.js +234 -234
  272. package/scripts/lib/detector-reglas-duplicadas.js +220 -220
  273. package/scripts/lib/diary-entry.js +234 -234
  274. package/scripts/lib/eval-metrics-store.js +218 -218
  275. package/scripts/lib/eval-quality.js +171 -171
  276. package/scripts/lib/eval-schemas.js +144 -144
  277. package/scripts/lib/eval-self-correct.js +106 -106
  278. package/scripts/lib/eval-validator.js +185 -185
  279. package/scripts/lib/evidencia-release.js +322 -322
  280. package/scripts/lib/expandir-targets.js +71 -71
  281. package/scripts/lib/gate-hooks-requires.js +249 -249
  282. package/scripts/lib/gate-licencias.js +212 -212
  283. package/scripts/lib/git-metricas.js +257 -257
  284. package/scripts/lib/gitignore-manifest.js +44 -11
  285. package/scripts/lib/jaccard-similarity.js +98 -98
  286. package/scripts/lib/longmemeval-runner.js +125 -125
  287. package/scripts/lib/metricas-dora.js +204 -204
  288. package/scripts/lib/npm-version.js +261 -261
  289. package/scripts/lib/paquetes-conocidos.js +50 -50
  290. package/scripts/lib/plan-lock.js +275 -275
  291. package/scripts/lib/pr-analyzer.js +399 -399
  292. package/scripts/lib/prompt-builder.js +264 -264
  293. package/scripts/lib/reglas-globales-conocidas.json +180 -180
  294. package/scripts/lib/resolver-plan-fase.js +37 -37
  295. package/scripts/lib/rrf-fusion.js +175 -175
  296. package/scripts/lib/schema-version.js +164 -164
  297. package/scripts/lib/scoring-instintos.js +277 -277
  298. package/scripts/lib/semantic-search.js +252 -252
  299. package/scripts/lib/skill-metrics.js +41 -1
  300. package/scripts/lib/toml-merge.js +204 -204
  301. package/scripts/lib/tool-cost-analyzer.js +1 -0
  302. package/scripts/limpiar-artefactos-python.js +131 -131
  303. package/scripts/mcp-server/auth.js +105 -105
  304. package/scripts/mcp-server/cache.js +106 -106
  305. package/scripts/migrar-csv-a-array.js +168 -168
  306. package/scripts/migrar-fase-dominio.js +200 -200
  307. package/scripts/publicar.js +497 -497
  308. package/scripts/run-eval.js +141 -141
  309. package/scripts/tui/componentes/selector-multi.js +189 -189
  310. package/scripts/tui/componentes/selector-unico.js +158 -158
  311. package/scripts/tui/ejecutores.js +375 -375
  312. package/scripts/tui/index.js +162 -162
  313. package/scripts/tui/lib/colores.js +129 -129
  314. package/scripts/tui/lib/render.js +264 -264
  315. package/scripts/tui/lib/teclas.js +113 -113
  316. package/scripts/tui/pantallas/inspect.js +173 -173
  317. package/scripts/tui/pantallas/install-wizard.js +334 -334
  318. package/scripts/tui/pantallas/menu-principal.js +52 -52
  319. package/scripts/tui/pantallas/progreso.js +274 -274
  320. package/scripts/tui/pantallas/resumen.js +132 -132
  321. package/scripts/tui/pantallas/uninstall-wizard.js +208 -208
  322. package/scripts/tui/pantallas/update-wizard.js +232 -232
  323. package/scripts/tui/pantallas/welcome.js +187 -187
  324. package/scripts/validar-userland-vacio.js +110 -110
  325. package/scripts/verificar-trazabilidad.js +329 -298
@@ -1,276 +1,276 @@
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.1"
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
- ---
152
-
153
- ## Formato de Commit Evolutivo
154
-
155
- ```
156
- evolucion(nombre-artefacto): descripción [TIPO v.anterior→v.nueva]
157
- ```
158
-
159
- Rollback: `git revert <hash-del-commit-evolutivo>`
160
-
161
- ---
162
-
163
- ## Escalera de Adquisición de Capacidades
164
-
165
- Cuando se identifica un patrón útil, la tentación es saltar de "lo resolví una vez"
166
- a "crear un skill". Pero la maduración tiene niveles intermedios. Saltar niveles
167
- produce skills frágiles que no se activan, workflows sin verificación y automatizaciones
168
- que fallan silenciosamente.
169
-
170
- | Nivel | Nombre | Qué implica | Criterio para avanzar al siguiente |
171
- |-------|--------|-------------|-----------------------------------|
172
- | 1 | **Solución ad hoc** | Se resolvió el problema una vez, en una sesión | El mismo problema aparece en otra sesión |
173
- | 2 | **Repetible** | Pasos documentados en ESTADO.md o DECISIONS.md | Se ejecutó 3+ veces con éxito siguiendo los pasos |
174
- | 3 | **Skill** | Codificado en SKILL.md con gotchas y restricciones | El skill se activa correctamente y cambia comportamiento (3-arm test) |
175
- | 4 | **Workflow** | Orquestación multi-agente con delegación definida | Los agentes completan el flujo sin intervención manual en 70%+ |
176
- | 5 | **Harness determinista** | Scripts en `scripts/` que validan output automáticamente | La validación detecta 90%+ de los errores conocidos |
177
- | 6 | **Cobertura evaluativa** | Métricas pass@k registradas en EVALUACION.md | pass@1 ≥ objetivo del tipo de agente durante 10+ ejecuciones |
178
- | 7 | **Automatizado** | Hook o cron que dispara la capacidad sin invocación manual | El hook se ejecuta sin errores en 95%+ de las veces |
179
- | 8 | **Monitoreado** | Métricas observables: latencia, tasa de error, drift | Dashboards activos y alertas configuradas |
180
- | 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%+ |
181
- | 10 | **Empaquetado** | Reutilizable entre proyectos como plugin o módulo independiente | Funciona en 2+ proyectos distintos sin modificación |
182
-
183
- **Cómo usar**: Al proponer una evolución, identificar en qué nivel está la capacidad
184
- actual y proponer avanzar **un solo nivel**. Saltar niveles requiere justificación
185
- explícita en la propuesta de evolución — la mayoría de las veces es síntoma de
186
- optimismo injustificado.
187
-
188
- Para métricas de evolución, plantilla de changelog, proceso de retroalimentación
189
- del verificador y checklist completo de revisión,
190
- ver [recursos/referencia-completa.md](recursos/referencia-completa.md).
191
-
192
- ---
193
-
194
- ## Parser de señales de fricción (v1.1)
195
-
196
- El hook `hooks/lib/etapa-auto-evolucion.js` (SubagentStop) alimenta el log
197
- `.planning/auto-evolution/agentes.jsonl` y emite *nudges* hacia
198
- `auto-evolucion-swl` cuando detecta umbrales cruzados. Este skill define
199
- **qué cuenta como fricción** para que el agente tenga criterio uniforme al
200
- interpretar el log.
201
-
202
- ### Categorías de fricción
203
-
204
- | Categoría | Fuente | Fuerza | Contraseña en el log |
205
- |-----------|--------|--------|----------------------|
206
- | **Fallo duro** | Subagente terminó con `is_error:true` o excepción | Alta | `status: "failed"` |
207
- | **Run vacío** | Subagente terminó sin producir cambios útiles (0 Edit/Write) | Media | `toolCalls < 3` en agente de implementación |
208
- | **Trivial recurrente** | 10+ runs triviales (≤5 tool calls) del mismo agente | Baja | `trivial: true` |
209
- | **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` |
210
- | **Repetición de error** | Mismo tipo de error documentado ya en `APRENDIZAJES.md` | Alta | cruzar log con grep |
211
- | **Reintento manual** | Usuario vuelve a invocar el mismo agente con instrucciones ajustadas | Media | comparar `session_id` + `agente` consecutivos |
212
-
213
- ### Keywords de corrección (es-MX)
214
-
215
- Reutilizar la lista definida en `hooks/lib/etapa-perfil-usuario.js`:
216
-
217
- ```
218
- KEYWORDS_CORRECCION = [
219
- 'no así', 'no asi', 'mejor', 'en vez de', 'en lugar de',
220
- 'evita', 'evites', 'no uses', 'nunca uses', 'nunca hagas',
221
- 'siempre quiero', 'siempre usa', 'prefiero', 'prefiere',
222
- 'no me gusta', 'deja de',
223
- ]
224
- ```
225
-
226
- Si el mensaje del usuario inmediatamente posterior a un SubagentStop contiene
227
- ≥1 keyword de esta lista, **el último agente registrado hereda un punto de
228
- fricción** en el reporte del próximo `/swl:evolucionar`.
229
-
230
- ### Cómo usar el log al evolucionar
231
-
232
- Al invocar `auto-evolucion-swl` o `/swl:evolucionar <agente>`:
233
-
234
- 1. **Leer el log filtrado por agente:**
235
- ```bash
236
- grep "\"agente\":\"<nombre>\"" .planning/auto-evolution/agentes.jsonl | tail -50
237
- ```
238
-
239
- 2. **Cuantificar las 6 categorías** (fallo duro, run vacío, trivial recurrente,
240
- corrección, repetición, reintento).
241
-
242
- 3. **Priorizar la hipótesis de evolución** según la categoría dominante:
243
-
244
- | Categoría dominante | Hipótesis más probable |
245
- |---------------------|------------------------|
246
- | Fallo duro | Skills faltantes o instrucciones ambiguas del agente |
247
- | Corrección del usuario | Contradicción entre el comportamiento del agente y el perfil/instintos |
248
- | Repetición de error | Gap en `APRENDIZAJES.md` que no fue promovido a skill |
249
- | Trivial recurrente | El agente se invoca para trabajo que debería ir a uno más liviano (Haiku) |
250
- | Reintento manual | Prompts del agente con defaults malos; faltan preguntas de clarificación |
251
-
252
- 4. **Aplicar la escalera de adquisición** de capacidades (sección anterior)
253
- para decidir si el arreglo es un patch del skill, un skill nuevo, o un
254
- agente nuevo.
255
-
256
- ### Límites del parser
257
-
258
- - **No interpretar sentimiento** ("esto está mal" es ambiguo; requiere contexto).
259
- - **No evolucionar por 1 señal** sin importar la fuerza — mínimo 3 señales
260
- correlacionadas o 1 corrección explícita en CLAUDE.md.
261
- - **No modificar agentes con `nivelRiesgo: ALTO`** automáticamente — siempre
262
- requieren confirmación humana (ver CLAUDE.md regla de privilegio mínimo).
263
- - **No borrar entradas del log** — el log es append-only auditoría.
264
-
265
- ### Gotchas / Errores comunes no obvios
266
-
267
- - **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.
268
- - **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.
269
- - **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.
270
- - **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.
271
-
272
- ### CHANGELOG del skill
273
-
274
- - **v1.1.0** (2026-04-18): añadido parser de señales de fricción y tabla de
275
- categorías. Cierra gap "skill autoevolutiva tras cada tarea" vs. Hermes.
276
- - **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.1"
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
+ ---
152
+
153
+ ## Formato de Commit Evolutivo
154
+
155
+ ```
156
+ evolucion(nombre-artefacto): descripción [TIPO v.anterior→v.nueva]
157
+ ```
158
+
159
+ Rollback: `git revert <hash-del-commit-evolutivo>`
160
+
161
+ ---
162
+
163
+ ## Escalera de Adquisición de Capacidades
164
+
165
+ Cuando se identifica un patrón útil, la tentación es saltar de "lo resolví una vez"
166
+ a "crear un skill". Pero la maduración tiene niveles intermedios. Saltar niveles
167
+ produce skills frágiles que no se activan, workflows sin verificación y automatizaciones
168
+ que fallan silenciosamente.
169
+
170
+ | Nivel | Nombre | Qué implica | Criterio para avanzar al siguiente |
171
+ |-------|--------|-------------|-----------------------------------|
172
+ | 1 | **Solución ad hoc** | Se resolvió el problema una vez, en una sesión | El mismo problema aparece en otra sesión |
173
+ | 2 | **Repetible** | Pasos documentados en ESTADO.md o DECISIONS.md | Se ejecutó 3+ veces con éxito siguiendo los pasos |
174
+ | 3 | **Skill** | Codificado en SKILL.md con gotchas y restricciones | El skill se activa correctamente y cambia comportamiento (3-arm test) |
175
+ | 4 | **Workflow** | Orquestación multi-agente con delegación definida | Los agentes completan el flujo sin intervención manual en 70%+ |
176
+ | 5 | **Harness determinista** | Scripts en `scripts/` que validan output automáticamente | La validación detecta 90%+ de los errores conocidos |
177
+ | 6 | **Cobertura evaluativa** | Métricas pass@k registradas en EVALUACION.md | pass@1 ≥ objetivo del tipo de agente durante 10+ ejecuciones |
178
+ | 7 | **Automatizado** | Hook o cron que dispara la capacidad sin invocación manual | El hook se ejecuta sin errores en 95%+ de las veces |
179
+ | 8 | **Monitoreado** | Métricas observables: latencia, tasa de error, drift | Dashboards activos y alertas configuradas |
180
+ | 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%+ |
181
+ | 10 | **Empaquetado** | Reutilizable entre proyectos como plugin o módulo independiente | Funciona en 2+ proyectos distintos sin modificación |
182
+
183
+ **Cómo usar**: Al proponer una evolución, identificar en qué nivel está la capacidad
184
+ actual y proponer avanzar **un solo nivel**. Saltar niveles requiere justificación
185
+ explícita en la propuesta de evolución — la mayoría de las veces es síntoma de
186
+ optimismo injustificado.
187
+
188
+ Para métricas de evolución, plantilla de changelog, proceso de retroalimentación
189
+ del verificador y checklist completo de revisión,
190
+ ver [recursos/referencia-completa.md](recursos/referencia-completa.md).
191
+
192
+ ---
193
+
194
+ ## Parser de señales de fricción (v1.1)
195
+
196
+ El hook `hooks/lib/etapa-auto-evolucion.js` (SubagentStop) alimenta el log
197
+ `.planning/auto-evolution/agentes.jsonl` y emite *nudges* hacia
198
+ `auto-evolucion-swl` cuando detecta umbrales cruzados. Este skill define
199
+ **qué cuenta como fricción** para que el agente tenga criterio uniforme al
200
+ interpretar el log.
201
+
202
+ ### Categorías de fricción
203
+
204
+ | Categoría | Fuente | Fuerza | Contraseña en el log |
205
+ |-----------|--------|--------|----------------------|
206
+ | **Fallo duro** | Subagente terminó con `is_error:true` o excepción | Alta | `status: "failed"` |
207
+ | **Run vacío** | Subagente terminó sin producir cambios útiles (0 Edit/Write) | Media | `toolCalls < 3` en agente de implementación |
208
+ | **Trivial recurrente** | 10+ runs triviales (≤5 tool calls) del mismo agente | Baja | `trivial: true` |
209
+ | **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` |
210
+ | **Repetición de error** | Mismo tipo de error documentado ya en `APRENDIZAJES.md` | Alta | cruzar log con grep |
211
+ | **Reintento manual** | Usuario vuelve a invocar el mismo agente con instrucciones ajustadas | Media | comparar `session_id` + `agente` consecutivos |
212
+
213
+ ### Keywords de corrección (es-MX)
214
+
215
+ Reutilizar la lista definida en `hooks/lib/etapa-perfil-usuario.js`:
216
+
217
+ ```
218
+ KEYWORDS_CORRECCION = [
219
+ 'no así', 'no asi', 'mejor', 'en vez de', 'en lugar de',
220
+ 'evita', 'evites', 'no uses', 'nunca uses', 'nunca hagas',
221
+ 'siempre quiero', 'siempre usa', 'prefiero', 'prefiere',
222
+ 'no me gusta', 'deja de',
223
+ ]
224
+ ```
225
+
226
+ Si el mensaje del usuario inmediatamente posterior a un SubagentStop contiene
227
+ ≥1 keyword de esta lista, **el último agente registrado hereda un punto de
228
+ fricción** en el reporte del próximo `/swl:evolucionar`.
229
+
230
+ ### Cómo usar el log al evolucionar
231
+
232
+ Al invocar `auto-evolucion-swl` o `/swl:evolucionar <agente>`:
233
+
234
+ 1. **Leer el log filtrado por agente:**
235
+ ```bash
236
+ grep "\"agente\":\"<nombre>\"" .planning/auto-evolution/agentes.jsonl | tail -50
237
+ ```
238
+
239
+ 2. **Cuantificar las 6 categorías** (fallo duro, run vacío, trivial recurrente,
240
+ corrección, repetición, reintento).
241
+
242
+ 3. **Priorizar la hipótesis de evolución** según la categoría dominante:
243
+
244
+ | Categoría dominante | Hipótesis más probable |
245
+ |---------------------|------------------------|
246
+ | Fallo duro | Skills faltantes o instrucciones ambiguas del agente |
247
+ | Corrección del usuario | Contradicción entre el comportamiento del agente y el perfil/instintos |
248
+ | Repetición de error | Gap en `APRENDIZAJES.md` que no fue promovido a skill |
249
+ | Trivial recurrente | El agente se invoca para trabajo que debería ir a uno más liviano (Haiku) |
250
+ | Reintento manual | Prompts del agente con defaults malos; faltan preguntas de clarificación |
251
+
252
+ 4. **Aplicar la escalera de adquisición** de capacidades (sección anterior)
253
+ para decidir si el arreglo es un patch del skill, un skill nuevo, o un
254
+ agente nuevo.
255
+
256
+ ### Límites del parser
257
+
258
+ - **No interpretar sentimiento** ("esto está mal" es ambiguo; requiere contexto).
259
+ - **No evolucionar por 1 señal** sin importar la fuerza — mínimo 3 señales
260
+ correlacionadas o 1 corrección explícita en CLAUDE.md.
261
+ - **No modificar agentes con `nivelRiesgo: ALTO`** automáticamente — siempre
262
+ requieren confirmación humana (ver CLAUDE.md regla de privilegio mínimo).
263
+ - **No borrar entradas del log** — el log es append-only auditoría.
264
+
265
+ ### Gotchas / Errores comunes no obvios
266
+
267
+ - **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.
268
+ - **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.
269
+ - **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.
270
+ - **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.
271
+
272
+ ### CHANGELOG del skill
273
+
274
+ - **v1.1.0** (2026-04-18): añadido parser de señales de fricción y tabla de
275
+ categorías. Cierra gap "skill autoevolutiva tras cada tarea" vs. Hermes.
276
+ - **v1.0.0**: versión inicial del protocolo.