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