@saulwade/swl-ses 2.3.0 → 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 (303) hide show
  1. package/CLAUDE.md +47 -6
  2. package/README.md +1 -1
  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/briefing.md +119 -119
  64. package/comandos/swl/contribuir.md +233 -233
  65. package/comandos/swl/predecir.md +139 -139
  66. package/comandos/swl/sesiones.md +1 -1
  67. package/gateway/agent-executor.js +1 -1
  68. package/gateway/lib/event-channel.js +191 -191
  69. package/habilidades/agent-deep-links/SKILL.md +148 -148
  70. package/habilidades/agentes-como-servicio/SKILL.md +2 -2
  71. package/habilidades/angular-moderno/SKILL.md +20 -1
  72. package/habilidades/auto-evolucion-protocolo/SKILL.md +276 -276
  73. package/habilidades/backend-async-postgres-testing/SKILL.md +215 -215
  74. package/habilidades/backend-error-design/SKILL.md +221 -221
  75. package/habilidades/backend-production-resilience/SKILL.md +288 -288
  76. package/habilidades/benchmark-memoria/SKILL.md +186 -186
  77. package/habilidades/calidad-anti-patrones-universales/SKILL.md +368 -368
  78. package/habilidades/calidad-contract-testing/SKILL.md +165 -165
  79. package/habilidades/calidad-mutation-testing/SKILL.md +170 -170
  80. package/habilidades/changelog-generator/scripts/parse-commits.js +367 -367
  81. package/habilidades/checklist-seguridad/recursos/stride-cobertura.md +60 -60
  82. package/habilidades/diagrama-arquitectura/assets/template.html +276 -276
  83. package/habilidades/doubt-driven-review/recursos/EXAMPLES.md +130 -130
  84. package/habilidades/drift-detection/SKILL.md +179 -179
  85. package/habilidades/ejecutar-task-iterativo/SKILL.md +278 -278
  86. package/habilidades/estructura-proyecto-claude/recursos/frontmatter-y-hooks-referencia.md +1 -1
  87. package/habilidades/estructura-proyecto-claude/recursos/mcp-json-template.json +57 -57
  88. package/habilidades/eval-framework/SKILL.md +212 -212
  89. package/habilidades/feynman-auditor-swl/recursos/preguntas-language-agnostic.md +108 -108
  90. package/habilidades/harness-claude-code/recursos/disciplina-harness-regla.md +252 -252
  91. package/habilidades/legacy-code-rescue/SKILL.md +267 -267
  92. package/habilidades/meta-skills-estandar/recursos/convencion-examples.md +93 -93
  93. package/habilidades/patrones-python/recursos/patrones-avanzados.md +469 -469
  94. package/habilidades/perfil-usuario/SKILL.md +200 -200
  95. package/habilidades/prevencion-sobreingenieria/recursos/EXAMPLES.md +580 -580
  96. package/habilidades/proceso-ddia-fundamentos/SKILL.md +255 -255
  97. package/habilidades/proceso-ddia-streaming/SKILL.md +231 -231
  98. package/habilidades/proceso-debate-adversarial/recursos/personas.md +105 -105
  99. package/habilidades/proceso-discovery-machote/SKILL.md +157 -157
  100. package/habilidades/proceso-dynamic-workflows/SKILL.md +138 -138
  101. package/habilidades/proceso-dynamic-workflows/recursos/template-adversarial-verify.js +65 -65
  102. package/habilidades/proceso-dynamic-workflows/recursos/template-triage.js +65 -65
  103. package/habilidades/proceso-intent-engineering/SKILL.md +269 -269
  104. package/habilidades/proceso-modular-split/SKILL.md +256 -256
  105. package/habilidades/prompt-engineering/recursos/patrones-avanzados.md +2 -2
  106. package/habilidades/state-inconsistency-auditor-swl/recursos/coupled-state-patterns.md +147 -147
  107. package/habilidades/structured-outputs/SKILL.md +2 -2
  108. package/habilidades/swl-claudemd/recursos/contrato-aprender.md +83 -83
  109. package/habilidades/swl-claudemd/recursos/duplicacion-reglas-globales.md +85 -85
  110. package/habilidades/swl-claudemd/recursos/plantillas-init.md +94 -94
  111. package/habilidades/swl-dashboard/SKILL.md +2 -2
  112. package/habilidades/tdd-workflow/recursos/gherkin-bdd.md +111 -111
  113. package/habilidades/validacion-ci-sistema/recursos/validadores-completos.md +1 -1
  114. package/habilidades/validacion-ci-sistema/scripts/validar-sistema.sh +1 -1
  115. package/hooks/ciclo-evolucion-subagente.js +26 -26
  116. package/hooks/ciclo-evolucion.js +26 -26
  117. package/hooks/claudemd-bloat-detector.js +161 -161
  118. package/hooks/claudemd-duplicacion-detector.js +170 -170
  119. package/hooks/contexto-iteracion.js +144 -144
  120. package/hooks/guardrail-modelo.js +1 -1
  121. package/hooks/lib/agent-routing.js +107 -107
  122. package/hooks/lib/auto-consolidator.js +335 -335
  123. package/hooks/lib/autonomia.js +208 -208
  124. package/hooks/lib/ciclo-evolucion.js +47 -47
  125. package/hooks/lib/deep-links.js +185 -185
  126. package/hooks/lib/error-classifier.js +308 -308
  127. package/hooks/lib/etapa-auto-evolucion.js +701 -701
  128. package/hooks/lib/etapa-metricas.js +388 -388
  129. package/hooks/lib/etapa-perfil-usuario.js +376 -376
  130. package/hooks/lib/loop-telemetry.js +321 -321
  131. package/hooks/lib/merkle-audit.js +96 -96
  132. package/hooks/lib/model-router.js +2 -2
  133. package/hooks/lib/propose-step.js +358 -358
  134. package/hooks/lib/provenance-tracker.js +191 -191
  135. package/hooks/lib/rate-limit-tracker.js +253 -253
  136. package/hooks/lib/resource-quota.js +122 -122
  137. package/hooks/lib/retry-jitter.js +165 -165
  138. package/hooks/lib/security-net.js +201 -201
  139. package/hooks/lib/skill-auditor.js +588 -588
  140. package/hooks/lib/sync-status.js +228 -228
  141. package/hooks/lib/taint-tracker.js +107 -107
  142. package/hooks/lib/text-similarity.js +241 -241
  143. package/hooks/lib/token-estimator.js +1 -0
  144. package/hooks/lib/toon-compressor.js +245 -245
  145. package/hooks/lib/usage-model.js +1 -1
  146. package/hooks/linea-estado.js +2 -0
  147. package/hooks/registro-turnos.js +209 -209
  148. package/hooks/session-briefing.js +98 -98
  149. package/hooks/spec-gate.js +211 -211
  150. package/hooks/sugerir-regenerar-inventario.js +170 -170
  151. package/hooks/tdd-gate.js +241 -241
  152. package/hooks/telemetria-skill-routing.js +100 -100
  153. package/hooks/validar-formato-post-subagente.js +140 -140
  154. package/hooks/validar-intent-spec.js +242 -242
  155. package/hooks/validar-memoria-hook.js +218 -218
  156. package/hooks/validar-planning-paths.js +134 -134
  157. package/instintos/autonomia.yaml +27 -27
  158. package/instintos/prompt-appendices.yaml +57 -57
  159. package/llms.txt +29 -29
  160. package/manifiestos/agent-output-schemas.json +57 -57
  161. package/manifiestos/canonical-hashes.json +2291 -1964
  162. package/manifiestos/planning-paths.json +44 -44
  163. package/manifiestos/skills-lock.json +1282 -1282
  164. package/package.json +1 -1
  165. package/plantillas/auditor-veto-template.md +105 -105
  166. package/plantillas/github-workflows/README.md +47 -47
  167. package/plantillas/github-workflows/release-please.yml +44 -44
  168. package/plantillas/github-workflows/swl-ci.yml +107 -107
  169. package/plantillas/github-workflows/swl-security.yml +51 -51
  170. package/plugin.json +1 -1
  171. package/reglas/accesibilidad.md +10 -10
  172. package/reglas/analisis-previo-tareas-grandes.md +172 -172
  173. package/reglas/api-diseno.md +9 -9
  174. package/reglas/arreglar-al-detectar.md +240 -240
  175. package/reglas/auditorias-documentales-estructurales.md +7 -7
  176. package/reglas/cloud-infra.md +8 -8
  177. package/reglas/consultar-vault-primero.md +195 -195
  178. package/reglas/debatir-antes-de-aceptar.md +158 -158
  179. package/reglas/fragmentos-compartidos.md +183 -183
  180. package/reglas/hooks.md +6 -6
  181. package/reglas/intent-engineering.md +218 -218
  182. package/reglas/markitdown.md +8 -8
  183. package/reglas/monitor-ci.md +309 -309
  184. package/reglas/patrones.md +6 -6
  185. package/reglas/sesiones-paralelas.md +180 -180
  186. package/reglas/sin-duplicacion-reglas-globales.md +182 -182
  187. package/reglas/skills-estandar.md +6 -6
  188. package/reglas/testing.md +7 -7
  189. package/reglas/tests-cleanup.md +224 -224
  190. package/reglas/usar-code-review-graph.md +155 -155
  191. package/reglas/usar-context7.md +226 -226
  192. package/reglas/verificar-citas-normativas.md +548 -548
  193. package/schemas/agent-frontmatter.schema.json +3 -3
  194. package/schemas/agent-message.schema.json +73 -73
  195. package/schemas/agent-output-implementacion.schema.json +114 -114
  196. package/schemas/agent-output-planificacion.schema.json +150 -150
  197. package/schemas/agent-output-review.schema.json +98 -98
  198. package/schemas/diary-entry.schema.json +112 -112
  199. package/schemas/hook-profiles.schema.json +54 -54
  200. package/schemas/hooks-config.schema.json +89 -89
  201. package/schemas/modulos.schema.json +38 -38
  202. package/schemas/perfiles.schema.json +36 -36
  203. package/schemas/plugin.schema.json +77 -77
  204. package/schemas/skill-evals.schema.json +119 -119
  205. package/schemas/skill-frontmatter.schema.json +245 -245
  206. package/scripts/audit-tools/audit-history.js +330 -330
  207. package/scripts/audit-tools/bundle-tracker.js +290 -290
  208. package/scripts/audit-tools/canary-monitor.js +352 -352
  209. package/scripts/audit-tools/code-profiler.js +605 -605
  210. package/scripts/audit-tools/dep-doctor.js +320 -320
  211. package/scripts/audit-tools/env-validator.js +206 -206
  212. package/scripts/audit-tools/lib/fs-walk.js +48 -48
  213. package/scripts/audit-tools/lib/output.js +23 -23
  214. package/scripts/audit-tools/migration-checker.js +392 -392
  215. package/scripts/audit-tools/pentest-scanner.js +1436 -1436
  216. package/scripts/benchmark-memoria.js +167 -167
  217. package/scripts/cli/aprobar-plan.js +73 -73
  218. package/scripts/cli/briefing.js +23 -23
  219. package/scripts/cli/ciclo-evolucion.js +26 -26
  220. package/scripts/cli/configurar-ci.js +40 -40
  221. package/scripts/cli/derivar-feature-list.js +25 -25
  222. package/scripts/cli/detectar-host.js +27 -27
  223. package/scripts/cli/diary-entry.js +69 -69
  224. package/scripts/cli/execution-state.js +18 -18
  225. package/scripts/cli/gateway-notify.js +41 -41
  226. package/scripts/cli/liberar-fase.js +42 -42
  227. package/scripts/cli/loop-telemetry.js +125 -125
  228. package/scripts/cli/mark-evolved.js +56 -56
  229. package/scripts/cli/metricas-dora.js +26 -26
  230. package/scripts/cli/near-duplicate.js +55 -55
  231. package/scripts/cli/notificaciones.js +123 -123
  232. package/scripts/cli/propose-step.js +29 -29
  233. package/scripts/cli/schedule-parse.js +19 -19
  234. package/scripts/cli/sugerir-modelo.js +20 -20
  235. package/scripts/cli/verificar-plan.js +36 -36
  236. package/scripts/cli/verificar-trazabilidad.js +35 -35
  237. package/scripts/configurar-branch-protection.js +418 -418
  238. package/scripts/detectar-aprendizajes-duplicados.js +151 -151
  239. package/scripts/field-report.js +199 -199
  240. package/scripts/generar-checklists-consolidados.js +273 -273
  241. package/scripts/generar-matriz-lenguajes.js +271 -271
  242. package/scripts/lib/artefactos-python.js +43 -43
  243. package/scripts/lib/auditar-invocaciones-comandos.js +104 -104
  244. package/scripts/lib/benchmark-metrics.js +160 -160
  245. package/scripts/lib/budget-enforcer.js +252 -252
  246. package/scripts/lib/ci-reader.js +193 -193
  247. package/scripts/lib/claude-sessions.js +1 -0
  248. package/scripts/lib/configurar-ci.js +380 -380
  249. package/scripts/lib/contadores-inventario.js +217 -217
  250. package/scripts/lib/detectar-host-swl.js +175 -175
  251. package/scripts/lib/detectar-stack-detallado.js +307 -307
  252. package/scripts/lib/detector-autoduplicacion-intra-archivo.js +234 -234
  253. package/scripts/lib/detector-reglas-duplicadas.js +220 -220
  254. package/scripts/lib/diary-entry.js +234 -234
  255. package/scripts/lib/eval-metrics-store.js +218 -218
  256. package/scripts/lib/eval-quality.js +171 -171
  257. package/scripts/lib/eval-schemas.js +144 -144
  258. package/scripts/lib/eval-self-correct.js +106 -106
  259. package/scripts/lib/eval-validator.js +185 -185
  260. package/scripts/lib/evidencia-release.js +322 -322
  261. package/scripts/lib/expandir-targets.js +71 -71
  262. package/scripts/lib/gate-hooks-requires.js +249 -249
  263. package/scripts/lib/gate-licencias.js +212 -212
  264. package/scripts/lib/git-metricas.js +257 -257
  265. package/scripts/lib/jaccard-similarity.js +98 -98
  266. package/scripts/lib/longmemeval-runner.js +125 -125
  267. package/scripts/lib/metricas-dora.js +204 -204
  268. package/scripts/lib/npm-version.js +261 -261
  269. package/scripts/lib/paquetes-conocidos.js +50 -50
  270. package/scripts/lib/plan-lock.js +275 -275
  271. package/scripts/lib/pr-analyzer.js +399 -399
  272. package/scripts/lib/prompt-builder.js +264 -264
  273. package/scripts/lib/reglas-globales-conocidas.json +180 -180
  274. package/scripts/lib/resolver-plan-fase.js +37 -37
  275. package/scripts/lib/rrf-fusion.js +175 -175
  276. package/scripts/lib/schema-version.js +164 -164
  277. package/scripts/lib/scoring-instintos.js +277 -277
  278. package/scripts/lib/semantic-search.js +252 -252
  279. package/scripts/lib/toml-merge.js +204 -204
  280. package/scripts/lib/tool-cost-analyzer.js +1 -0
  281. package/scripts/limpiar-artefactos-python.js +131 -131
  282. package/scripts/mcp-server/auth.js +105 -105
  283. package/scripts/mcp-server/cache.js +106 -106
  284. package/scripts/migrar-csv-a-array.js +168 -168
  285. package/scripts/migrar-fase-dominio.js +200 -200
  286. package/scripts/publicar.js +497 -497
  287. package/scripts/run-eval.js +141 -141
  288. package/scripts/tui/componentes/selector-multi.js +189 -189
  289. package/scripts/tui/componentes/selector-unico.js +158 -158
  290. package/scripts/tui/ejecutores.js +375 -375
  291. package/scripts/tui/index.js +162 -162
  292. package/scripts/tui/lib/colores.js +129 -129
  293. package/scripts/tui/lib/render.js +264 -264
  294. package/scripts/tui/lib/teclas.js +113 -113
  295. package/scripts/tui/pantallas/inspect.js +173 -173
  296. package/scripts/tui/pantallas/install-wizard.js +334 -334
  297. package/scripts/tui/pantallas/menu-principal.js +52 -52
  298. package/scripts/tui/pantallas/progreso.js +274 -274
  299. package/scripts/tui/pantallas/resumen.js +132 -132
  300. package/scripts/tui/pantallas/uninstall-wizard.js +208 -208
  301. package/scripts/tui/pantallas/update-wizard.js +232 -232
  302. package/scripts/tui/pantallas/welcome.js +187 -187
  303. package/scripts/validar-userland-vacio.js +110 -110
@@ -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.