@saulwade/swl-ses 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (702) hide show
  1. package/CLAUDE.md +238 -0
  2. package/README.md +560 -0
  3. package/_userland/agentes/.gitkeep +0 -0
  4. package/_userland/habilidades/.gitkeep +0 -0
  5. package/agentes/.evolved.json +9 -0
  6. package/agentes/accesibilidad-wcag-swl.md +692 -0
  7. package/agentes/arquitecto-swl.md +238 -0
  8. package/agentes/auto-evolucion-swl.md +854 -0
  9. package/agentes/backend-api-swl.md +470 -0
  10. package/agentes/backend-csharp-swl.md +418 -0
  11. package/agentes/backend-go-swl.md +388 -0
  12. package/agentes/backend-java-swl.md +279 -0
  13. package/agentes/backend-node-swl.md +477 -0
  14. package/agentes/backend-python-swl.md +608 -0
  15. package/agentes/backend-rust-swl.md +362 -0
  16. package/agentes/backend-workers-swl.md +480 -0
  17. package/agentes/cloud-infra-swl.md +485 -0
  18. package/agentes/consolidador-swl.md +539 -0
  19. package/agentes/datos-swl.md +584 -0
  20. package/agentes/depurador-swl.md +349 -0
  21. package/agentes/devops-ci-swl.md +374 -0
  22. package/agentes/disenador-ui-swl.md +558 -0
  23. package/agentes/documentador-swl.md +343 -0
  24. package/agentes/evals/arquitecto-swl.evals.json +56 -0
  25. package/agentes/evals/auto-evolucion-swl.evals.json +68 -0
  26. package/agentes/evals/implementador-swl.evals.json +56 -0
  27. package/agentes/evals/orquestador-swl.evals.json +60 -0
  28. package/agentes/evals/perfilador-usuario-swl.evals.json +60 -0
  29. package/agentes/evals/red-team-swl.evals.json +59 -0
  30. package/agentes/evals/revisor-codigo-swl.evals.json +59 -0
  31. package/agentes/frontend-angular-swl.md +627 -0
  32. package/agentes/frontend-css-swl.md +720 -0
  33. package/agentes/frontend-react-swl.md +696 -0
  34. package/agentes/frontend-swl.md +500 -0
  35. package/agentes/frontend-tailwind-swl.md +830 -0
  36. package/agentes/implementador-swl.md +328 -0
  37. package/agentes/investigador-swl.md +430 -0
  38. package/agentes/investigador-ux-swl.md +500 -0
  39. package/agentes/llm-apps-swl.md +276 -0
  40. package/agentes/migrador-swl.md +417 -0
  41. package/agentes/mobile-android-swl.md +509 -0
  42. package/agentes/mobile-cross-swl.md +539 -0
  43. package/agentes/mobile-ios-swl.md +500 -0
  44. package/agentes/mobile-testing-swl.md +300 -0
  45. package/agentes/notificador-swl.md +916 -0
  46. package/agentes/observabilidad-swl.md +436 -0
  47. package/agentes/orquestador-swl.md +884 -0
  48. package/agentes/pagos-swl.md +283 -0
  49. package/agentes/perfilador-usuario-swl.md +306 -0
  50. package/agentes/planificador-swl.md +402 -0
  51. package/agentes/producto-prd-swl.md +587 -0
  52. package/agentes/red-team-swl.md +216 -0
  53. package/agentes/release-manager-swl.md +568 -0
  54. package/agentes/rendimiento-swl.md +714 -0
  55. package/agentes/resolutor-build-swl.md +243 -0
  56. package/agentes/revisor-angular-swl.md +276 -0
  57. package/agentes/revisor-codigo-swl.md +348 -0
  58. package/agentes/revisor-csharp-swl.md +262 -0
  59. package/agentes/revisor-go-swl.md +257 -0
  60. package/agentes/revisor-java-swl.md +255 -0
  61. package/agentes/revisor-kotlin-swl.md +271 -0
  62. package/agentes/revisor-nextjs-swl.md +279 -0
  63. package/agentes/revisor-php-swl.md +269 -0
  64. package/agentes/revisor-react-swl.md +276 -0
  65. package/agentes/revisor-rust-swl.md +344 -0
  66. package/agentes/revisor-seguridad-swl.md +390 -0
  67. package/agentes/revisor-swift-swl.md +266 -0
  68. package/agentes/revisor-typescript-swl.md +344 -0
  69. package/agentes/sre-swl.md +265 -0
  70. package/agentes/tdd-qa-swl.md +354 -0
  71. package/agentes/ux-disenador-swl.md +501 -0
  72. package/bin/lib/bot-comandos.js +1030 -0
  73. package/bin/lib/bot-discovery.js +182 -0
  74. package/bin/lib/bot-git.js +142 -0
  75. package/bin/swl-ses.js +325 -0
  76. package/bin/swl-telegram-bot.js +442 -0
  77. package/bin/swl-telegram-bot.plist +21 -0
  78. package/bin/swl-telegram-bot.service +14 -0
  79. package/comandos/swl/.evolved.json +23 -0
  80. package/comandos/swl/actualizar.md +174 -0
  81. package/comandos/swl/adoptar-proyecto.md +207 -0
  82. package/comandos/swl/aprender.md +701 -0
  83. package/comandos/swl/auditar-deps.md +134 -0
  84. package/comandos/swl/autoresearch.md +170 -0
  85. package/comandos/swl/ayuda.md +224 -0
  86. package/comandos/swl/brainstorm.md +50 -0
  87. package/comandos/swl/checkpoint.md +330 -0
  88. package/comandos/swl/compactar.md +283 -0
  89. package/comandos/swl/configurar-ci.md +227 -0
  90. package/comandos/swl/contexto.md +112 -0
  91. package/comandos/swl/contribuir.md +233 -0
  92. package/comandos/swl/crear-skill.md +292 -0
  93. package/comandos/swl/cron.md +196 -0
  94. package/comandos/swl/dashboard.md +146 -0
  95. package/comandos/swl/discutir-fase.md +230 -0
  96. package/comandos/swl/ejecutar-fase.md +135 -0
  97. package/comandos/swl/evaluar-skill.md +487 -0
  98. package/comandos/swl/evolucion-estado.md +142 -0
  99. package/comandos/swl/evolucionar.md +259 -0
  100. package/comandos/swl/exportar-vault.md +189 -0
  101. package/comandos/swl/gateway.md +158 -0
  102. package/comandos/swl/inbox.md +116 -0
  103. package/comandos/swl/instalar.md +220 -0
  104. package/comandos/swl/instintos.md +86 -0
  105. package/comandos/swl/mapear-codebase.md +312 -0
  106. package/comandos/swl/mcp-status.md +175 -0
  107. package/comandos/swl/metricas.md +270 -0
  108. package/comandos/swl/modelo.md +102 -0
  109. package/comandos/swl/notificaciones.md +396 -0
  110. package/comandos/swl/nuevo-proyecto.md +154 -0
  111. package/comandos/swl/planear-fase.md +221 -0
  112. package/comandos/swl/plugins.md +256 -0
  113. package/comandos/swl/reflect-skills.md +125 -0
  114. package/comandos/swl/release.md +217 -0
  115. package/comandos/swl/revisar-impacto.md +206 -0
  116. package/comandos/swl/revisar.md +330 -0
  117. package/comandos/swl/salud.md +363 -0
  118. package/comandos/swl/sesiones.md +200 -0
  119. package/comandos/swl/skill-search.md +113 -0
  120. package/comandos/swl/verificar.md +585 -0
  121. package/comandos/swl/wiki.md +620 -0
  122. package/contextos/dev.md +32 -0
  123. package/contextos/research.md +30 -0
  124. package/contextos/review.md +31 -0
  125. package/habilidades/accesibilidad-a11y/SKILL.md +201 -0
  126. package/habilidades/accesibilidad-a11y/evals/evals.json +56 -0
  127. package/habilidades/accesibilidad-a11y/recursos/ejemplos-y-checklist-completo.md +441 -0
  128. package/habilidades/agent-browser/SKILL.md +218 -0
  129. package/habilidades/agentes-como-servicio/SKILL.md +218 -0
  130. package/habilidades/ai-runtime-security/SKILL.md +273 -0
  131. package/habilidades/angular-avanzado/SKILL.md +164 -0
  132. package/habilidades/angular-avanzado/recursos/ejemplos-avanzados.md +219 -0
  133. package/habilidades/angular-moderno/SKILL.md +186 -0
  134. package/habilidades/angular-moderno/evals/evals.json +45 -0
  135. package/habilidades/angular-moderno/recursos/ejemplos-avanzados.md +106 -0
  136. package/habilidades/api-rest-diseno/SKILL.md +191 -0
  137. package/habilidades/api-rest-diseno/recursos/openapi-template.yaml +506 -0
  138. package/habilidades/api-rest-diseno/recursos/referencia-api.md +140 -0
  139. package/habilidades/aprendizaje-continuo/SKILL.md +151 -0
  140. package/habilidades/aprendizaje-continuo/evals/evals.json +53 -0
  141. package/habilidades/aprendizaje-continuo/recursos/referencia-instintos.md +290 -0
  142. package/habilidades/async-python/SKILL.md +149 -0
  143. package/habilidades/async-python/evals/evals.json +47 -0
  144. package/habilidades/async-python/recursos/patrones-y-ejemplos-completos.md +292 -0
  145. package/habilidades/auth-patrones/.evolved.json +9 -0
  146. package/habilidades/auth-patrones/SKILL.md +413 -0
  147. package/habilidades/auth-patrones/recursos/implementaciones-completas.md +229 -0
  148. package/habilidades/auto-evolucion-protocolo/SKILL.md +276 -0
  149. package/habilidades/auto-evolucion-protocolo/evals/evals.json +55 -0
  150. package/habilidades/auto-evolucion-protocolo/recursos/referencia-completa.md +145 -0
  151. package/habilidades/autoresearch/SKILL.md +268 -0
  152. package/habilidades/autoresearch/evals/evals.json +41 -0
  153. package/habilidades/autoresearch/recursos/checklist-template.md +191 -0
  154. package/habilidades/autoresearch/scripts/calcular-score.js +88 -0
  155. package/habilidades/azure-cloud/SKILL.md +308 -0
  156. package/habilidades/azure-cloud/recursos/aks.md +327 -0
  157. package/habilidades/backend-mcp-servidor/SKILL.md +270 -0
  158. package/habilidades/backend-production-resilience/SKILL.md +288 -0
  159. package/habilidades/brainstorming/SKILL.md +295 -0
  160. package/habilidades/brainstorming/recursos/componentes-html.md +247 -0
  161. package/habilidades/build-errors-cpp/SKILL.md +270 -0
  162. package/habilidades/build-errors-csharp/SKILL.md +265 -0
  163. package/habilidades/build-errors-go/SKILL.md +306 -0
  164. package/habilidades/build-errors-java/SKILL.md +278 -0
  165. package/habilidades/build-errors-kotlin/SKILL.md +303 -0
  166. package/habilidades/build-errors-nextjs/SKILL.md +312 -0
  167. package/habilidades/build-errors-php/SKILL.md +270 -0
  168. package/habilidades/build-errors-python/SKILL.md +292 -0
  169. package/habilidades/build-errors-rust/SKILL.md +284 -0
  170. package/habilidades/build-errors-swift/SKILL.md +272 -0
  171. package/habilidades/build-errors-typescript/SKILL.md +369 -0
  172. package/habilidades/checklist-calidad/SKILL.md +271 -0
  173. package/habilidades/checklist-calidad/recursos/quality-report-template.md +148 -0
  174. package/habilidades/checklist-seguridad/SKILL.md +285 -0
  175. package/habilidades/checkpoints-verificacion/SKILL.md +298 -0
  176. package/habilidades/checkpoints-verificacion/recursos/checkpoint-templates.md +360 -0
  177. package/habilidades/ci-cd-pipelines/SKILL.md +157 -0
  178. package/habilidades/ci-cd-pipelines/recursos/github-actions-template.yaml +403 -0
  179. package/habilidades/ci-cd-pipelines/recursos/pipelines-completos.md +487 -0
  180. package/habilidades/cloud-aws/SKILL.md +142 -0
  181. package/habilidades/cloud-aws/recursos/servicios-aws-referencia.md +321 -0
  182. package/habilidades/compactacion-contexto/SKILL.md +247 -0
  183. package/habilidades/contenedores-docker/SKILL.md +137 -0
  184. package/habilidades/contenedores-docker/recursos/dockerfile-template.dockerfile +160 -0
  185. package/habilidades/contenedores-docker/recursos/ejemplos-y-configuraciones.md +327 -0
  186. package/habilidades/context-builder/SKILL.md +170 -0
  187. package/habilidades/control-profundidad/SKILL.md +128 -0
  188. package/habilidades/csharp-experto/SKILL.md +322 -0
  189. package/habilidades/csharp-patrones/SKILL.md +316 -0
  190. package/habilidades/csharp-testing/SKILL.md +286 -0
  191. package/habilidades/css-moderno/SKILL.md +166 -0
  192. package/habilidades/css-moderno/evals/evals.json +43 -0
  193. package/habilidades/css-moderno/recursos/ejemplos-y-patrones-completos.md +337 -0
  194. package/habilidades/datos-etl/SKILL.md +129 -0
  195. package/habilidades/datos-etl/recursos/implementaciones-completas.md +322 -0
  196. package/habilidades/dbml-experto/SKILL.md +339 -0
  197. package/habilidades/dbml-experto/evals/evals.json +56 -0
  198. package/habilidades/dependencias-auditoria/SKILL.md +320 -0
  199. package/habilidades/deprecacion-migracion/SKILL.md +169 -0
  200. package/habilidades/deprecacion-migracion/recursos/implementaciones-completas.md +220 -0
  201. package/habilidades/design-tokens/SKILL.md +158 -0
  202. package/habilidades/design-tokens/recursos/tokens-y-configuracion.md +363 -0
  203. package/habilidades/devsecops-pipeline-security/SKILL.md +309 -0
  204. package/habilidades/diagrama-arquitectura/SKILL.md +165 -0
  205. package/habilidades/diagrama-arquitectura/assets/template.html +276 -0
  206. package/habilidades/discutir-fase/SKILL.md +188 -0
  207. package/habilidades/diseno-herramientas-agente/SKILL.md +199 -0
  208. package/habilidades/diseno-responsivo/SKILL.md +186 -0
  209. package/habilidades/diseno-responsivo/recursos/ejemplos-layouts.md +156 -0
  210. package/habilidades/django-experto/SKILL.md +205 -0
  211. package/habilidades/django-experto/recursos/async-django.md +390 -0
  212. package/habilidades/django-experto/recursos/drf-patrones.md +438 -0
  213. package/habilidades/django-experto/recursos/orm-avanzado.md +382 -0
  214. package/habilidades/django-experto/recursos/referencia-completa.md +188 -0
  215. package/habilidades/django-experto/recursos/testing-django.md +415 -0
  216. package/habilidades/doc-sync/SKILL.md +280 -0
  217. package/habilidades/drift-detection/SKILL.md +179 -0
  218. package/habilidades/ejecutar-fase/SKILL.md +468 -0
  219. package/habilidades/estilo-sin-ai-isms/SKILL.md +775 -0
  220. package/habilidades/estilo-sin-ai-isms/evals/evals.json +63 -0
  221. package/habilidades/estilo-sin-ai-isms/scripts/detectar_aiisms.py +500 -0
  222. package/habilidades/estructura-proyecto-claude/SKILL.md +215 -0
  223. package/habilidades/estructura-proyecto-claude/recursos/claude-md-template.md +261 -0
  224. package/habilidades/estructura-proyecto-claude/recursos/configuracion-y-extensiones.md +176 -0
  225. package/habilidades/estructura-proyecto-claude/recursos/frontmatter-y-hooks-referencia.md +289 -0
  226. package/habilidades/estructura-proyecto-claude/recursos/mcp-json-template.json +77 -0
  227. package/habilidades/estructura-proyecto-claude/recursos/variantes-por-stack.md +177 -0
  228. package/habilidades/evaluacion-agentes/SKILL.md +314 -0
  229. package/habilidades/event-driven/SKILL.md +153 -0
  230. package/habilidades/event-driven/recursos/implementaciones-completas.md +423 -0
  231. package/habilidades/extraccion-documentos/SKILL.md +221 -0
  232. package/habilidades/extractor-de-aprendizajes/.evolved.json +9 -0
  233. package/habilidades/extractor-de-aprendizajes/SKILL.md +311 -0
  234. package/habilidades/extractor-de-aprendizajes/evals/evals.json +55 -0
  235. package/habilidades/fastapi-experto/SKILL.md +221 -0
  236. package/habilidades/fastapi-experto/recursos/async-patterns.md +438 -0
  237. package/habilidades/fastapi-experto/recursos/dependency-injection.md +330 -0
  238. package/habilidades/fastapi-experto/recursos/referencia-completa.md +79 -0
  239. package/habilidades/fastapi-experto/recursos/testing-httpx.md +420 -0
  240. package/habilidades/filament-admin/SKILL.md +290 -0
  241. package/habilidades/frontend-avanzado/SKILL.md +257 -0
  242. package/habilidades/frontend-avanzado/recursos/apis-nativas-ejemplos.md +341 -0
  243. package/habilidades/gcp-cloud/SKILL.md +260 -0
  244. package/habilidades/gcp-cloud/recursos/gke.md +234 -0
  245. package/habilidades/gcp-cloud/recursos/terraform-gcp.md +307 -0
  246. package/habilidades/generacion-mermaid/SKILL.md +229 -0
  247. package/habilidades/git-worktrees-paralelo/SKILL.md +270 -0
  248. package/habilidades/go-experto/SKILL.md +305 -0
  249. package/habilidades/go-patrones/SKILL.md +299 -0
  250. package/habilidades/go-testing/SKILL.md +291 -0
  251. package/habilidades/graphql-experto/SKILL.md +323 -0
  252. package/habilidades/guardrail-semantico/SKILL.md +282 -0
  253. package/habilidades/harness-claude-code/SKILL.md +299 -0
  254. package/habilidades/iam-secretos/SKILL.md +265 -0
  255. package/habilidades/iam-secretos/recursos/implementaciones-completas.md +356 -0
  256. package/habilidades/infra-github-actions/SKILL.md +166 -0
  257. package/habilidades/instalar-sistema/.evolved.json +9 -0
  258. package/habilidades/instalar-sistema/SKILL.md +221 -0
  259. package/habilidades/java-experto/SKILL.md +290 -0
  260. package/habilidades/java-patrones/SKILL.md +275 -0
  261. package/habilidades/java-testing/SKILL.md +288 -0
  262. package/habilidades/kotlin-compose/SKILL.md +278 -0
  263. package/habilidades/kotlin-compose/recursos/animaciones-performance.md +93 -0
  264. package/habilidades/kotlin-experto/SKILL.md +318 -0
  265. package/habilidades/kotlin-testing/SKILL.md +267 -0
  266. package/habilidades/kotlin-testing/recursos/testing-avanzado.md +74 -0
  267. package/habilidades/kubernetes-orquestacion/SKILL.md +152 -0
  268. package/habilidades/kubernetes-orquestacion/recursos/manifiestos-completos.md +452 -0
  269. package/habilidades/langchain-langraph/SKILL.md +386 -0
  270. package/habilidades/langchain-langraph/recursos/evaluacion-rag.md +321 -0
  271. package/habilidades/langchain-langraph/recursos/rag-maturity-model.md +225 -0
  272. package/habilidades/langchain-langraph/recursos/vectorstores.md +306 -0
  273. package/habilidades/legacy-code-rescue/SKILL.md +267 -0
  274. package/habilidades/likec4-experto/SKILL.md +412 -0
  275. package/habilidades/likec4-experto/evals/evals.json +69 -0
  276. package/habilidades/manejo-errores/.evolved.json +9 -0
  277. package/habilidades/manejo-errores/SKILL.md +407 -0
  278. package/habilidades/manejo-errores/recursos/implementaciones-completas.md +248 -0
  279. package/habilidades/mapear-codebase/SKILL.md +275 -0
  280. package/habilidades/memoria-busqueda/SKILL.md +194 -0
  281. package/habilidades/memoria-busqueda/evals/evals.json +44 -0
  282. package/habilidades/meta-skills-estandar/SKILL.md +298 -0
  283. package/habilidades/meta-skills-estandar/recursos/anti-patrones-y-leyes.md +205 -0
  284. package/habilidades/meta-skills-estandar/recursos/frameworks-seguridad.md +107 -0
  285. package/habilidades/meta-skills-estandar/recursos/idiomas-framework.md +60 -0
  286. package/habilidades/meta-skills-estandar/recursos/skills-as-agents.md +163 -0
  287. package/habilidades/microservicios/SKILL.md +155 -0
  288. package/habilidades/microservicios/recursos/patrones-y-ejemplos-completos.md +325 -0
  289. package/habilidades/mobile-flutter/SKILL.md +199 -0
  290. package/habilidades/mobile-flutter/recursos/ejemplos-completos.md +319 -0
  291. package/habilidades/mobile-react-native/SKILL.md +176 -0
  292. package/habilidades/mobile-react-native/recursos/ejemplos-completos.md +216 -0
  293. package/habilidades/mongodb-experto/SKILL.md +302 -0
  294. package/habilidades/monitoring-alertas/SKILL.md +201 -0
  295. package/habilidades/monitoring-alertas/recursos/instrumentacion-y-alertas.md +301 -0
  296. package/habilidades/nestjs-experto/SKILL.md +307 -0
  297. package/habilidades/nestjs-experto/recursos/guards-interceptors.md +339 -0
  298. package/habilidades/nestjs-experto/recursos/modulos-di.md +287 -0
  299. package/habilidades/nestjs-experto/recursos/testing-nestjs.md +354 -0
  300. package/habilidades/nextjs-experto/SKILL.md +335 -0
  301. package/habilidades/nextjs-patrones/SKILL.md +303 -0
  302. package/habilidades/nextjs-testing/SKILL.md +331 -0
  303. package/habilidades/node-experto/.evolved.json +9 -0
  304. package/habilidades/node-experto/SKILL.md +266 -0
  305. package/habilidades/node-experto/recursos/patrones-completos.md +283 -0
  306. package/habilidades/notificaciones-multicanal/SKILL.md +159 -0
  307. package/habilidades/notificaciones-multicanal/recursos/config-template.json +115 -0
  308. package/habilidades/notificaciones-multicanal/recursos/configuracion-y-templates.md +303 -0
  309. package/habilidades/nuevo-proyecto/SKILL.md +204 -0
  310. package/habilidades/orquestacion-async/SKILL.md +303 -0
  311. package/habilidades/paid-media-tracking/SKILL.md +269 -0
  312. package/habilidades/paid-media-tracking/recursos/auditoria-tracking.md +220 -0
  313. package/habilidades/paid-media-tracking/recursos/google-ads-api.md +215 -0
  314. package/habilidades/patrones-python/SKILL.md +228 -0
  315. package/habilidades/patrones-python/evals/evals.json +56 -0
  316. package/habilidades/patrones-python/recursos/patrones-avanzados.md +469 -0
  317. package/habilidades/patrones-python/recursos/referencia-completa.md +202 -0
  318. package/habilidades/perfil-usuario/SKILL.md +200 -0
  319. package/habilidades/perfil-usuario/evals/evals.json +55 -0
  320. package/habilidades/performance-baseline/SKILL.md +297 -0
  321. package/habilidades/php-experto/SKILL.md +291 -0
  322. package/habilidades/php-patrones/SKILL.md +306 -0
  323. package/habilidades/php-testing/SKILL.md +280 -0
  324. package/habilidades/planear-fase/SKILL.md +269 -0
  325. package/habilidades/postgresql-experto/SKILL.md +151 -0
  326. package/habilidades/postgresql-experto/evals/evals.json +53 -0
  327. package/habilidades/postgresql-experto/recursos/referencia-completa.md +215 -0
  328. package/habilidades/prevencion-racionalizacion/SKILL.md +175 -0
  329. package/habilidades/prevencion-sobreingenieria/SKILL.md +323 -0
  330. package/habilidades/privacy-memoria/SKILL.md +141 -0
  331. package/habilidades/privacy-memoria/evals/evals.json +43 -0
  332. package/habilidades/prompt-engineering/SKILL.md +518 -0
  333. package/habilidades/prompt-engineering/recursos/patrones-avanzados.md +467 -0
  334. package/habilidades/rag-arquitectura/SKILL.md +338 -0
  335. package/habilidades/rails-experto/SKILL.md +237 -0
  336. package/habilidades/rails-experto/recursos/active-record.md +260 -0
  337. package/habilidades/rails-experto/recursos/hotwire-turbo.md +293 -0
  338. package/habilidades/rails-experto/recursos/testing-rspec.md +362 -0
  339. package/habilidades/react-experto/SKILL.md +209 -0
  340. package/habilidades/react-experto/evals/evals.json +55 -0
  341. package/habilidades/react-experto/recursos/patrones-y-ejemplos-completos.md +240 -0
  342. package/habilidades/react-optimizacion/SKILL.md +174 -0
  343. package/habilidades/react-optimizacion/recursos/patrones-avanzados.md +138 -0
  344. package/habilidades/redis-experto/SKILL.md +305 -0
  345. package/habilidades/release-semver/.evolved.json +9 -0
  346. package/habilidades/release-semver/SKILL.md +248 -0
  347. package/habilidades/release-semver/scripts/generar-changelog.sh +238 -0
  348. package/habilidades/rust-experto/SKILL.md +400 -0
  349. package/habilidades/rust-patrones/SKILL.md +296 -0
  350. package/habilidades/rust-testing/SKILL.md +311 -0
  351. package/habilidades/seguridad-skills-ia/SKILL.md +262 -0
  352. package/habilidades/sql-optimizacion/SKILL.md +200 -0
  353. package/habilidades/sql-optimizacion/evals/evals.json +54 -0
  354. package/habilidades/sql-optimizacion/recursos/patrones-sql-avanzados.md +131 -0
  355. package/habilidades/sre-patrones/SKILL.md +333 -0
  356. package/habilidades/sre-patrones/recursos/chaos-engineering.md +241 -0
  357. package/habilidades/sre-patrones/recursos/oncall-design.md +236 -0
  358. package/habilidades/stripe-pagos/SKILL.md +550 -0
  359. package/habilidades/stripe-pagos/recursos/errores-reintentos.md +390 -0
  360. package/habilidades/stripe-pagos/recursos/stripe-connect.md +290 -0
  361. package/habilidades/structured-outputs/SKILL.md +343 -0
  362. package/habilidades/swift-experto/SKILL.md +320 -0
  363. package/habilidades/swift-experto/recursos/keychain-y-wrappers.md +110 -0
  364. package/habilidades/swift-patrones/SKILL.md +313 -0
  365. package/habilidades/swift-patrones/recursos/tca-ejemplo-completo.md +113 -0
  366. package/habilidades/swift-testing/SKILL.md +254 -0
  367. package/habilidades/swift-testing/recursos/xcuitest-planes.md +143 -0
  368. package/habilidades/swl-dashboard/SKILL.md +370 -0
  369. package/habilidades/swl-markitdown/SKILL.md +285 -0
  370. package/habilidades/swl-markitdown/evals/evals.json +52 -0
  371. package/habilidades/swl-revisar-impacto/SKILL.md +233 -0
  372. package/habilidades/tailwind-experto/SKILL.md +240 -0
  373. package/habilidades/tailwind-experto/recursos/referencia-completa.md +184 -0
  374. package/habilidades/tdd-workflow/SKILL.md +293 -0
  375. package/habilidades/terraform-experto/SKILL.md +321 -0
  376. package/habilidades/testing-python/SKILL.md +340 -0
  377. package/habilidades/testing-python/recursos/ejemplos-completos.md +167 -0
  378. package/habilidades/threat-model-lite/SKILL.md +246 -0
  379. package/habilidades/tracing-processor/SKILL.md +212 -0
  380. package/habilidades/tracking-measurement/SKILL.md +239 -0
  381. package/habilidades/tracking-measurement/recursos/consent-mode.md +231 -0
  382. package/habilidades/tracking-measurement/recursos/gtm-datalayer.md +216 -0
  383. package/habilidades/tracking-measurement/recursos/meta-capi.md +262 -0
  384. package/habilidades/typescript-avanzado/SKILL.md +144 -0
  385. package/habilidades/typescript-avanzado/evals/evals.json +55 -0
  386. package/habilidades/typescript-avanzado/recursos/patrones-y-ejemplos-completos.md +298 -0
  387. package/habilidades/typescript-diagnosticos/SKILL.md +513 -0
  388. package/habilidades/ux-diseno/SKILL.md +116 -0
  389. package/habilidades/ux-diseno/evals/evals.json +43 -0
  390. package/habilidades/ux-diseno/recursos/patrones-ux-referencia.md +214 -0
  391. package/habilidades/validacion-ci-sistema/SKILL.md +136 -0
  392. package/habilidades/validacion-ci-sistema/recursos/validadores-completos.md +369 -0
  393. package/habilidades/validacion-ci-sistema/scripts/validar-sistema.sh +286 -0
  394. package/habilidades/verificacion-evidencia/SKILL.md +160 -0
  395. package/habilidades/verificar-trabajo/SKILL.md +303 -0
  396. package/habilidades/verificar-trabajo/recursos/plantilla-verificacion.md +60 -0
  397. package/habilidades/wiki-conocimiento/SKILL.md +276 -0
  398. package/habilidades/wireframes-flujos/SKILL.md +212 -0
  399. package/habilidades/wireframes-flujos/recursos/referencia-completa.md +192 -0
  400. package/habilidades/workflow-claude-code/SKILL.md +260 -0
  401. package/habilidades/workflow-claude-code/recursos/referencia-completa.md +109 -0
  402. package/hooks/_run-hook.sh +57 -0
  403. package/hooks/actualizar-perfil-usuario.js +364 -0
  404. package/hooks/agente-lifecycle.js +71 -0
  405. package/hooks/aiisms-detector.js +173 -0
  406. package/hooks/audit-trail.js +204 -0
  407. package/hooks/auto-background.js +97 -0
  408. package/hooks/auto-consolidacion.js +178 -0
  409. package/hooks/auto-evolucion.js +666 -0
  410. package/hooks/auto-restaurar-settings.js +360 -0
  411. package/hooks/calidad-pre-commit.js +929 -0
  412. package/hooks/calidad-typescript.js +511 -0
  413. package/hooks/captura-feedback-usuario.js +148 -0
  414. package/hooks/check-update.js +211 -0
  415. package/hooks/clasificador-mensajes.js +271 -0
  416. package/hooks/degradacion-instintos.js +272 -0
  417. package/hooks/escaneo-secretos.js +389 -0
  418. package/hooks/extraccion-aprendizajes.js +763 -0
  419. package/hooks/grafo-contexto.js +129 -0
  420. package/hooks/graph-update.js +67 -0
  421. package/hooks/guardrail-modelo.js +247 -0
  422. package/hooks/inbox-aviso.js +75 -0
  423. package/hooks/inyeccion-contexto.js +246 -0
  424. package/hooks/lib/abort-registry.js +214 -0
  425. package/hooks/lib/agent-backend.js +210 -0
  426. package/hooks/lib/agent-comms.js +263 -0
  427. package/hooks/lib/agent-issue-codes.js +284 -0
  428. package/hooks/lib/agent-matcher.js +189 -0
  429. package/hooks/lib/async-hook-registry.js +252 -0
  430. package/hooks/lib/atomic-write.js +130 -0
  431. package/hooks/lib/auto-consolidator.js +335 -0
  432. package/hooks/lib/canary-skills.js +187 -0
  433. package/hooks/lib/consolidation-lock.js +291 -0
  434. package/hooks/lib/context-builder.js +430 -0
  435. package/hooks/lib/context-compressor.js +657 -0
  436. package/hooks/lib/convergence-detector.js +105 -0
  437. package/hooks/lib/delegation-tracker.js +198 -0
  438. package/hooks/lib/detectar-package-manager.js +423 -0
  439. package/hooks/lib/edit-accumulator.js +171 -0
  440. package/hooks/lib/error-classifier.js +308 -0
  441. package/hooks/lib/event-bus.js +112 -0
  442. package/hooks/lib/evolution-tracker.js +442 -0
  443. package/hooks/lib/execution-state.js +316 -0
  444. package/hooks/lib/fingerprint-id.js +135 -0
  445. package/hooks/lib/gateway-notify.js +116 -0
  446. package/hooks/lib/graph-security.js +75 -0
  447. package/hooks/lib/guardrail-metrics.js +202 -0
  448. package/hooks/lib/hook-circuit-breaker.js +206 -0
  449. package/hooks/lib/loop-detector.js +267 -0
  450. package/hooks/lib/mcp-health.js +184 -0
  451. package/hooks/lib/mcp-pool.js +436 -0
  452. package/hooks/lib/memory-search.js +506 -0
  453. package/hooks/lib/merkle-audit.js +96 -0
  454. package/hooks/lib/model-router.js +222 -0
  455. package/hooks/lib/normalize-error.js +324 -0
  456. package/hooks/lib/normalize-input.js +65 -0
  457. package/hooks/lib/nudge-tracker.js +306 -0
  458. package/hooks/lib/otlp-exporter.js +365 -0
  459. package/hooks/lib/performance-marks.js +239 -0
  460. package/hooks/lib/privacy-filter.js +128 -0
  461. package/hooks/lib/prompt-injection-scanner.js +209 -0
  462. package/hooks/lib/provenance-tracker.js +183 -0
  463. package/hooks/lib/rate-limit-tracker.js +253 -0
  464. package/hooks/lib/reflect-classifier.js +164 -0
  465. package/hooks/lib/resource-quota.js +122 -0
  466. package/hooks/lib/retry-jitter.js +165 -0
  467. package/hooks/lib/risk-engine.js +368 -0
  468. package/hooks/lib/run-log.js +408 -0
  469. package/hooks/lib/session-fts.js +379 -0
  470. package/hooks/lib/session-store.js +293 -0
  471. package/hooks/lib/singleton-guard.js +159 -0
  472. package/hooks/lib/skill-auditor.js +588 -0
  473. package/hooks/lib/sync-status.js +228 -0
  474. package/hooks/lib/taint-tracker.js +107 -0
  475. package/hooks/lib/task-service.js +295 -0
  476. package/hooks/lib/tech-skills-map.js +146 -0
  477. package/hooks/lib/telegram-cliente.js +159 -0
  478. package/hooks/lib/telegram-config.js +170 -0
  479. package/hooks/lib/token-budget.js +156 -0
  480. package/hooks/lib/token-estimator.js +420 -0
  481. package/hooks/lib/toon-compressor.js +245 -0
  482. package/hooks/lib/usage-model.js +183 -0
  483. package/hooks/lib/variable-resolver.js +230 -0
  484. package/hooks/linea-estado.js +324 -0
  485. package/hooks/metricas-evolucion.js +209 -0
  486. package/hooks/monitor-contexto.js +325 -0
  487. package/hooks/notificacion-sesion-stop.js +198 -0
  488. package/hooks/notificacion-telegram-notification.js +4 -0
  489. package/hooks/notificacion-telegram-subagent.js +4 -0
  490. package/hooks/notificacion-telegram.js +267 -0
  491. package/hooks/preservar-estado-pre-compact.js +150 -0
  492. package/hooks/proteccion-rutas.js +366 -0
  493. package/hooks/registro-turnos.js +209 -0
  494. package/hooks/resumen-sesion.js +249 -0
  495. package/hooks/risk-scoring.js +323 -0
  496. package/hooks/rotar-audit-auto.js +122 -0
  497. package/hooks/sugerir-regenerar-inventario.js +170 -0
  498. package/hooks/telemetria-agentes.js +167 -0
  499. package/hooks/tracking-costos.js +688 -0
  500. package/instintos/global.yaml +8 -0
  501. package/instintos/perfil-usuario.yaml +53 -0
  502. package/instintos/prompt-appendices.yaml +57 -0
  503. package/instintos/proyecto.yaml +372 -0
  504. package/manifiestos/gateway-config.json +77 -0
  505. package/manifiestos/handoff-context.json +223 -0
  506. package/manifiestos/hook-profiles.json +44 -0
  507. package/manifiestos/hooks-config.json +360 -0
  508. package/manifiestos/modulos.json +1173 -0
  509. package/manifiestos/perfiles.json +404 -0
  510. package/package.json +86 -0
  511. package/plantillas/ESTADO.md +109 -0
  512. package/plantillas/HOJA-RUTA.md +143 -0
  513. package/plantillas/PROYECTO.md +122 -0
  514. package/plantillas/REQUISITOS.md +132 -0
  515. package/plantillas/auditor-veto-template.md +105 -0
  516. package/plantillas/github-workflows/README.md +47 -0
  517. package/plantillas/github-workflows/release-please.yml +44 -0
  518. package/plantillas/github-workflows/swl-ci.yml +107 -0
  519. package/plantillas/github-workflows/swl-security.yml +51 -0
  520. package/plantillas/mcp-mineru.json +13 -0
  521. package/plantillas/research/ARQUITECTURA.md +220 -0
  522. package/plantillas/research/FUNCIONALIDADES.md +175 -0
  523. package/plantillas/research/RESUMEN.md +165 -0
  524. package/plantillas/research/STACK.md +233 -0
  525. package/plantillas/research/TRAMPAS.md +299 -0
  526. package/plantillas/skill-evals-template.json +44 -0
  527. package/plugin.json +343 -0
  528. package/reglas/accesibilidad.md +269 -0
  529. package/reglas/api-diseno.md +400 -0
  530. package/reglas/arquitectura.md +352 -0
  531. package/reglas/brevedad-output.md +124 -0
  532. package/reglas/cloud-infra.md +247 -0
  533. package/reglas/docs.md +245 -0
  534. package/reglas/estilo-codigo.md +201 -0
  535. package/reglas/git-workflow.md +245 -0
  536. package/reglas/gobernanza.md +271 -0
  537. package/reglas/harness-claude-code.md +213 -0
  538. package/reglas/hooks.md +186 -0
  539. package/reglas/lenguajes/csharp/estilo-codigo.md +231 -0
  540. package/reglas/lenguajes/csharp/hooks.md +281 -0
  541. package/reglas/lenguajes/csharp/patrones.md +226 -0
  542. package/reglas/lenguajes/csharp/seguridad.md +258 -0
  543. package/reglas/lenguajes/csharp/testing.md +176 -0
  544. package/reglas/lenguajes/go/estilo-codigo.md +195 -0
  545. package/reglas/lenguajes/go/hooks.md +249 -0
  546. package/reglas/lenguajes/go/patrones.md +249 -0
  547. package/reglas/lenguajes/go/seguridad.md +225 -0
  548. package/reglas/lenguajes/go/testing.md +272 -0
  549. package/reglas/lenguajes/java/estilo-codigo.md +217 -0
  550. package/reglas/lenguajes/java/hooks.md +251 -0
  551. package/reglas/lenguajes/java/patrones.md +226 -0
  552. package/reglas/lenguajes/java/seguridad.md +233 -0
  553. package/reglas/lenguajes/java/testing.md +238 -0
  554. package/reglas/lenguajes/kotlin/estilo-codigo.md +208 -0
  555. package/reglas/lenguajes/kotlin/hooks.md +245 -0
  556. package/reglas/lenguajes/kotlin/patrones.md +201 -0
  557. package/reglas/lenguajes/kotlin/seguridad.md +202 -0
  558. package/reglas/lenguajes/kotlin/testing.md +236 -0
  559. package/reglas/lenguajes/nextjs/estilo-codigo.md +175 -0
  560. package/reglas/lenguajes/nextjs/hooks.md +186 -0
  561. package/reglas/lenguajes/nextjs/patrones.md +225 -0
  562. package/reglas/lenguajes/nextjs/seguridad.md +216 -0
  563. package/reglas/lenguajes/nextjs/testing.md +193 -0
  564. package/reglas/lenguajes/php/estilo-codigo.md +228 -0
  565. package/reglas/lenguajes/php/hooks.md +165 -0
  566. package/reglas/lenguajes/php/patrones.md +233 -0
  567. package/reglas/lenguajes/php/seguridad.md +186 -0
  568. package/reglas/lenguajes/php/testing.md +205 -0
  569. package/reglas/lenguajes/rust/estilo-codigo.md +207 -0
  570. package/reglas/lenguajes/rust/hooks.md +240 -0
  571. package/reglas/lenguajes/rust/patrones.md +250 -0
  572. package/reglas/lenguajes/rust/seguridad.md +221 -0
  573. package/reglas/lenguajes/rust/testing.md +194 -0
  574. package/reglas/lenguajes/swift/estilo-codigo.md +238 -0
  575. package/reglas/lenguajes/swift/hooks.md +257 -0
  576. package/reglas/lenguajes/swift/patrones.md +235 -0
  577. package/reglas/lenguajes/swift/seguridad.md +248 -0
  578. package/reglas/lenguajes/swift/testing.md +242 -0
  579. package/reglas/markitdown.md +60 -0
  580. package/reglas/memoria-consolidada.md +209 -0
  581. package/reglas/patrones.md +225 -0
  582. package/reglas/performance.md +195 -0
  583. package/reglas/pruebas.md +159 -0
  584. package/reglas/seguridad-agentes.md +351 -0
  585. package/reglas/seguridad.md +151 -0
  586. package/reglas/skills-estandar.md +373 -0
  587. package/reglas/testing.md +193 -0
  588. package/schemas/agent-contract.json +176 -0
  589. package/schemas/agent-frontmatter.schema.json +149 -0
  590. package/schemas/agent-message.schema.json +53 -0
  591. package/schemas/agent-output-implementacion.schema.json +85 -0
  592. package/schemas/agent-output-planificacion.schema.json +113 -0
  593. package/schemas/agent-output-review.schema.json +78 -0
  594. package/schemas/diary-entry.schema.json +80 -0
  595. package/schemas/hook-profiles.schema.json +39 -0
  596. package/schemas/hooks-config.schema.json +74 -0
  597. package/schemas/instinct.schema.json +115 -0
  598. package/schemas/modulos.schema.json +29 -0
  599. package/schemas/perfiles.schema.json +28 -0
  600. package/schemas/plugin.schema.json +64 -0
  601. package/schemas/skill-evals.schema.json +95 -0
  602. package/schemas/skill-frontmatter.schema.json +170 -0
  603. package/scripts/actualizar.js +145 -0
  604. package/scripts/audit-skills.sh +78 -0
  605. package/scripts/auditar-agentes-gaps.js +149 -0
  606. package/scripts/auditar-cobertura-frameworks.js +241 -0
  607. package/scripts/auditar-skills-gaps.js +206 -0
  608. package/scripts/bootstrap-instintos.js +259 -0
  609. package/scripts/check-update.js +109 -0
  610. package/scripts/comandos/agents.js +105 -0
  611. package/scripts/comandos/info.js +108 -0
  612. package/scripts/comandos/install-asistido.js +186 -0
  613. package/scripts/comandos/skills.js +211 -0
  614. package/scripts/configurar-branch-protection.js +418 -0
  615. package/scripts/daemon-swl.py +388 -0
  616. package/scripts/desinstalar.js +130 -0
  617. package/scripts/doctor.js +559 -0
  618. package/scripts/field-report.js +199 -0
  619. package/scripts/generar-inventario.js +317 -0
  620. package/scripts/inbox-tmux-inject.js +161 -0
  621. package/scripts/inferir-herramientas-permitidas.js +586 -0
  622. package/scripts/inicializar.js +133 -0
  623. package/scripts/instalador.js +1031 -0
  624. package/scripts/instalar-git-hook.js +122 -0
  625. package/scripts/lib/agp-frontmatter.js +222 -0
  626. package/scripts/lib/append-con-marcadores.js +199 -0
  627. package/scripts/lib/artefactos-python.js +43 -0
  628. package/scripts/lib/audit-query.js +221 -0
  629. package/scripts/lib/autostart-linux.js +347 -0
  630. package/scripts/lib/autostart-macos.js +360 -0
  631. package/scripts/lib/autostart-windows.js +307 -0
  632. package/scripts/lib/budget-enforcer.js +252 -0
  633. package/scripts/lib/claude-sessions.js +285 -0
  634. package/scripts/lib/configurar-ci.js +380 -0
  635. package/scripts/lib/console-span-exporter.js +92 -0
  636. package/scripts/lib/contadores-inventario.js +217 -0
  637. package/scripts/lib/dashboard-widgets.js +290 -0
  638. package/scripts/lib/detectar-runtime.js +279 -0
  639. package/scripts/lib/detectar-stack.js +187 -0
  640. package/scripts/lib/diary-entry.js +234 -0
  641. package/scripts/lib/drift-detector.js +545 -0
  642. package/scripts/lib/estado.js +124 -0
  643. package/scripts/lib/gestor-componentes.js +243 -0
  644. package/scripts/lib/gitignore-manifest.js +305 -0
  645. package/scripts/lib/graph-analyze.py +556 -0
  646. package/scripts/lib/graph-builder.py +485 -0
  647. package/scripts/lib/graph-cluster.py +259 -0
  648. package/scripts/lib/health-row.js +168 -0
  649. package/scripts/lib/hooks-settings.js +789 -0
  650. package/scripts/lib/manifiestos.js +138 -0
  651. package/scripts/lib/mc-client.js +137 -0
  652. package/scripts/lib/notificaciones-telegram.js +1107 -0
  653. package/scripts/lib/npm-version.js +261 -0
  654. package/scripts/lib/paquetes-conocidos.js +50 -0
  655. package/scripts/lib/preservar-usuario.js +586 -0
  656. package/scripts/lib/prompt-builder.js +264 -0
  657. package/scripts/lib/resolver-externo.js +332 -0
  658. package/scripts/lib/schedule-parser.js +305 -0
  659. package/scripts/lib/scoring-instintos.js +240 -0
  660. package/scripts/lib/seguridad.js +160 -0
  661. package/scripts/lib/selector-interactivo.js +152 -0
  662. package/scripts/lib/semantic-search.js +242 -0
  663. package/scripts/lib/skill-discovery.js +234 -0
  664. package/scripts/lib/skill-metrics.js +246 -0
  665. package/scripts/lib/skill-normalizer.js +112 -0
  666. package/scripts/lib/skills-hub.js +340 -0
  667. package/scripts/lib/span-schema.js +134 -0
  668. package/scripts/lib/tool-cost-analyzer.js +255 -0
  669. package/scripts/lib/tracing-processor-interface.js +286 -0
  670. package/scripts/lib/transformadores/base.js +80 -0
  671. package/scripts/lib/transformadores/claude.js +124 -0
  672. package/scripts/lib/transformadores/codex.js +115 -0
  673. package/scripts/lib/transformadores/copilot.js +106 -0
  674. package/scripts/lib/transformadores/gemini.js +74 -0
  675. package/scripts/lib/transformadores/index.js +35 -0
  676. package/scripts/lib/transformadores/opencode.js +75 -0
  677. package/scripts/lib/ui.js +259 -0
  678. package/scripts/limpiar-artefactos-python.js +131 -0
  679. package/scripts/mcp-orchestrator.py +386 -0
  680. package/scripts/mcp-pool-manager.py +352 -0
  681. package/scripts/mcp-telemetry.py +378 -0
  682. package/scripts/poblar-evolvable.js +226 -0
  683. package/scripts/publicar.js +287 -0
  684. package/scripts/reflect-skills.js +403 -0
  685. package/scripts/rotar-audit-logs.js +185 -0
  686. package/scripts/run-skill-evals.js +242 -0
  687. package/scripts/smoke-test.js +374 -0
  688. package/scripts/token-analysis.py +471 -0
  689. package/scripts/validar-manifest.js +195 -0
  690. package/scripts/validar-memoria.js +321 -0
  691. package/scripts/validar-tests-aislamiento.js +184 -0
  692. package/scripts/validar-tokens-test.js +208 -0
  693. package/scripts/validar.js +147 -0
  694. package/scripts/validate-markdown.py +339 -0
  695. package/scripts/validate-skills.py +385 -0
  696. package/scripts/vendor/claude-usage/README.md +116 -0
  697. package/scripts/vendor/claude-usage/cli.py +334 -0
  698. package/scripts/vendor/claude-usage/dashboard.py +795 -0
  699. package/scripts/vendor/claude-usage/scanner.py +467 -0
  700. package/scripts/vendor/markitdown/cli.py +194 -0
  701. package/scripts/verificar-evolucion.js +289 -0
  702. package/scripts/verificar-release.js +494 -0
@@ -0,0 +1,701 @@
1
+ ---
2
+ name: swl:aprender
3
+ description: Extrae aprendizajes de la sesión de trabajo actual. Analiza patrones de errores, decisiones y soluciones para generar nuevas reglas y habilidades que mejoran el sistema. Actualiza CLAUDE.md del proyecto y propone nuevas habilidades al sistema SWL.
4
+ allowed_tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep"]
5
+ evolved: true
6
+ evolved-from: "5.12.3"
7
+ evolved-at: "2026-04-25"
8
+ evolved-by: "aprender"
9
+ evolved-note: "Paso 2 — filtro crítico obligatorio sobre reportes de sub-agentes Explore para evitar sobre-ingeniería al analizar papers académicos"
10
+ ---
11
+
12
+ # /swl:aprender — Extracción de aprendizajes y mejora del sistema
13
+
14
+ Eres el extractor de conocimiento del sistema SWL. Transformas la experiencia acumulada en una sesión de trabajo en conocimiento estructurado y reutilizable. Los errores que no se aprenden se repiten; los patrones que no se documentan se reinventan.
15
+
16
+ ## Relación con otros canales de aprendizaje
17
+
18
+ SWL tiene **tres canales independientes** de aprendizaje. Son complementarios, no solapados:
19
+
20
+ | Canal | Produce | Disparadores | Escribe en |
21
+ |-------|---------|--------------|------------|
22
+ | `/swl:aprender` *(este comando)* | Conocimiento del dominio (anti-patrones, patrones, gotchas, decisiones) | Manual o nudge de `auto-consolidacion.js` (≥24h + ≥5 sesiones) | `APRENDIZAJES.md`, skills, `CLAUDE.md` |
23
+ | `/swl:evolucionar` | Mejoras al sistema SWL (versionado de agentes/skills, patches, splits, deprecaciones) | Manual o nudge de `auto-evolucion.js` (≥3 fallos o ≥10 runs/14d de un agente) | `agentes/*.md`, `habilidades/*/SKILL.md`, CHANGELOG |
24
+ | Agente `perfilador-usuario-swl` | Modelo del usuario (rol, stack preferido, correcciones repetidas, preferencias de comunicación) | Manual o nudge de `actualizar-perfil-usuario.js` (≥3 señales acumuladas) | `instintos/perfil-usuario.yaml` |
25
+
26
+ **Reglas de ruteo** cuando un aprendizaje podría ir a más de un canal:
27
+
28
+ - Tipo A/B/C (regla de proyecto, anti-patrón, nuevo skill) → **este comando**.
29
+ - Tipo D (mejora de metodología del SISTEMA SWL, no del proyecto) → **`/swl:evolucionar`**.
30
+ - Preferencia personal del usuario (cómo quiere que le hablen, qué stack prefiere,
31
+ qué correcciones repite) → **`perfilador-usuario-swl`**, NO este comando.
32
+ Este comando nunca escribe al perfil; solo genera conocimiento del dominio.
33
+ - Si la duda persiste: el canal correcto es aquel cuyo destino (APRENDIZAJES/skill
34
+ vs. agente/skill SWL vs. perfil) es donde *otro agente* lo buscaría la próxima vez.
35
+
36
+ ## Cuándo usar este comando
37
+
38
+ - Al final de una fase ejecutada exitosamente
39
+ - Después de resolver un bug difícil
40
+ - Cuando se tomó una decisión de arquitectura importante
41
+ - Cuando un patrón de implementación resultó mejor de lo esperado
42
+ - Cuando algo del plan fue consistentemente incorrecto
43
+ - Cuando el hook `auto-consolidacion.js` lo sugiere (>= 24h y >= 5 sesiones nuevas)
44
+
45
+ ## Modo de ejecución
46
+
47
+ Este comando tiene 2 modos:
48
+
49
+ 1. **Interactivo** (default): El usuario dirige qué analizar. Sigue los Pasos 0-7 completos.
50
+ 2. **Consolidación automática**: Se ejecuta cuando el hook `auto-consolidacion.js` lo sugiere o el usuario dice "consolida". Sigue el flujo de 4 fases inspirado en autoDream (ver sección al final).
51
+
52
+ Si el usuario dice "consolida", "consolida memoria", "auto-dream" o similar, saltar directamente a la **Sección: Consolidación en 4 fases** al final de este comando.
53
+
54
+ ---
55
+
56
+ ## Paso 0 — Carga de habilidades
57
+
58
+ ```
59
+ Skill("extractor-de-aprendizajes")
60
+ Skill("aprendizaje-continuo")
61
+ ```
62
+
63
+ El skill `extractor-de-aprendizajes` define el ciclo de mejora continua, los 4 tipos de aprendizajes (anti-patrón, patrón positivo, gotcha, decisión de proyecto), el protocolo de extracción completo (capturar contexto, determinar destino, escribir regla con formato MAL/BIEN, integrar al skill), la plantilla para nuevos skills y los indicadores de calidad.
64
+
65
+ El skill `aprendizaje-continuo` define el sistema de instintos con niveles de confianza, scopes (proyecto/dominio/global) y evolución.
66
+
67
+ ## Paso 1 — Definición del alcance
68
+
69
+ Pregunta al usuario:
70
+
71
+ ```
72
+ ¿De qué quieres extraer aprendizajes?
73
+
74
+ 1. De la sesión completa de trabajo actual
75
+ 2. De la resolución de un problema específico (describe cuál)
76
+ 3. De una fase específica que acaba de completarse (¿cuál fase?)
77
+ 4. De decisiones de arquitectura tomadas en este proyecto
78
+ 5. Todo lo anterior
79
+
80
+ Escribe el número o describe lo que prefieres analizar.
81
+ ```
82
+
83
+ Espera respuesta. Adapta los pasos siguientes según el alcance.
84
+
85
+ ## Paso 2 — Recolección de evidencia
86
+
87
+ Según el alcance elegido, recolecta:
88
+
89
+ - **Sesión completa**: commits recientes (`git log --oneline --since="8 hours ago"`), archivos modificados, RESUMEN.md, VERIFICACION.md, ESTADO.md, COMPACTACION.md
90
+ - **Problema específico**: pide al usuario: síntoma, tiempo de resolución, qué NO funcionó, qué lo resolvió, archivos relevantes
91
+ - **Fase específica**: lee CONTEXTO.md, PLAN.md, RESUMEN.md, VERIFICACION.md de la fase
92
+
93
+ ### Filtro crítico OBLIGATORIO sobre reportes de sub-agentes Explore
94
+
95
+ Cuando se delega análisis a sub-agentes (especialmente `Explore` analizando papers
96
+ académicos, repositorios externos o documentación extensa), los reportes producidos
97
+ tienden a sobreestimar costos de implementación y proponer alcances over-engineered
98
+ (50h+ cuando el patrón portable real cabe en 5-10h).
99
+
100
+ **Antes de incorporar cualquier propuesta del sub-agente al Paso 3 de análisis**,
101
+ aplicar este filtro de 4 preguntas:
102
+
103
+ 1. **¿Qué porcentaje del paper/repo es teoría académica vs. patrón portable?**
104
+ Si >70% es teoría (pruebas formales, demostraciones de Lyapunov, complejidad
105
+ PAC, etc.), el patrón portable real es mucho menor de lo que el sub-agente sugiere.
106
+
107
+ 2. **¿La propuesta requiere reescribir mecanismos existentes en SWL?**
108
+ Si sí, descartar — SWL ya tiene drift-detector, recovery, observabilidad. La
109
+ integración correcta es **extender**, no **reemplazar**.
110
+
111
+ 3. **¿Cuántas líneas de código nuevas estima el sub-agente vs. cuántas se podrían
112
+ ahorrar reutilizando lo existente?**
113
+ Si la propuesta supera 500 LOC nuevas para un solo patrón, hay sobre-ingeniería.
114
+
115
+ 4. **¿El alcance reducido (~5-10h) cubre el 80% del valor del paper?**
116
+ Aplicar Pareto: identificar el patrón mínimo que captura la mayor parte del
117
+ beneficio, descartar el resto como "puede esperar".
118
+
119
+ **Anti-patrón observado** (sesión 2026-04-25): un sub-agente Explore propuso 50h+
120
+ de trabajo para implementar Bhardwaj 2026 completo (SPRT secuencial, verificación
121
+ formal, compositionality theorems). Tras filtro crítico: solo Drift Score formalizado
122
+ + Recovery Catalog eran portables (~3h reales). El resto era teoría académica
123
+ no integrable a un sistema de producción.
124
+
125
+ Documentar el filtro aplicado en el reporte final con formato:
126
+
127
+ ```
128
+ Sub-agente Explore propuso: [resumen]
129
+ Filtro crítico aplicado: [cuáles de las 4 preguntas tuvieron señal de alarma]
130
+ Alcance final aprobado: [propuesta reducida con justificación]
131
+ Descartado: [lo que NO se implementa y por qué]
132
+ ```
133
+
134
+ ## Paso 3 — Análisis de patrones
135
+
136
+ Analiza la evidencia en 5 categorías:
137
+
138
+ 1. **Errores recurrentes** — mismo tipo de error en múltiples slices o archivos. Extrae: tipo, causa raíz, regla preventiva, detección temprana.
139
+ 2. **Decisiones de arquitectura** — alternativa elegida, criterio, resultado final.
140
+ 3. **Patrones exitosos** — código o estructuras reutilizables que resolvieron problemas elegantemente.
141
+ 4. **Estimaciones vs realidad** — slices sobre/subestimados y causas de las diferencias.
142
+ 5. **Gaps del sistema** — skills con información faltante, skills inexistentes, reglas incorrectas.
143
+
144
+ ## Paso 4 — Clasificación de aprendizajes
145
+
146
+ Clasifica cada aprendizaje según los tipos definidos en `Skill("extractor-de-aprendizajes")`:
147
+
148
+ | Tipo | Destino | Ejemplo |
149
+ |------|---------|---------|
150
+ | **A — Regla de proyecto** | `CLAUDE.md` del proyecto | Convención de nombrado específica |
151
+ | **B — Anti-patrón general** | Skill existente (sección apropiada) | Bug recurrente de SQLAlchemy async |
152
+ | **C — Nueva habilidad** | Nuevo directorio en `habilidades/` | Patrones de integración con API específica |
153
+ | **D — Mejora de metodología** | Comando SWL correspondiente | Preguntas faltantes en discutir-fase |
154
+
155
+ ### Priorización por rating (aplicar consistentemente)
156
+
157
+ Tras clasificar por tipo, cada aprendizaje recibe un **rating HIGH / MEDIUM / LOW**
158
+ según los criterios de `Skill("extractor-de-aprendizajes")` (sección "Clasificación
159
+ automática por impacto"):
160
+
161
+ | Rating | Criterio | Acción |
162
+ |--------|----------|--------|
163
+ | **HIGH** | Decisión irreversible, bug crítico que costó >1h de diagnóstico, cambio de patrón mayor, incumplimiento de regla ya conocida | Promover inmediatamente al skill/comando destino; aparece primero en la presentación del Paso 5 |
164
+ | **MEDIUM** | Gotcha documentado con causa + fix, patrón confirmado ≥2 veces en la sesión, anti-patrón operativo | Integrar al skill destino en la iteración actual |
165
+ | **LOW** | Observación contextual, preferencia menor, dato informativo, refinamiento de redacción | Mantener solo en APRENDIZAJES.md como registro; **NO** promover a skill a menos que el usuario lo solicite explícitamente |
166
+
167
+ **Regla de priorización obligatoria cuando `alcance = "todo"`**: los aprendizajes
168
+ se presentan en el Paso 5 **ordenados por rating (HIGH → MEDIUM → LOW)**, no en
169
+ orden de descubrimiento. Esto evita que observaciones menores (estilo, formato,
170
+ preferencias) diluyan la señal de los gotchas de alto impacto. El usuario debe
171
+ poder leer solo el bloque HIGH y decidir si procede, sin scroll innecesario.
172
+
173
+ **Fracción típica esperada**: en una sesión productiva, <20% de aprendizajes son
174
+ HIGH, 40-60% MEDIUM, el resto LOW. Si la distribución está invertida (mayoría
175
+ HIGH), probablemente se está sobre-clasificando — revisar criterios.
176
+
177
+ **Anti-patrón**: presentar 30 aprendizajes planos sin rating → el usuario aprueba
178
+ en bloque por fatiga y se integran observaciones menores a skills donde degradan
179
+ la señal/ruido. Siempre aplicar el rating antes del Paso 5.
180
+
181
+ ## Paso 5 — Presentación y confirmación
182
+
183
+ Presenta los aprendizajes clasificados al usuario ANTES de modificar archivos,
184
+ **ordenados por rating HIGH → MEDIUM → LOW dentro de cada tipo** (ver Paso 4,
185
+ sección "Priorización por rating"):
186
+
187
+ ```
188
+ Identifiqué [N] aprendizajes de la sesión (ordenados por impacto):
189
+
190
+ 🔴 RATING HIGH ([N]):
191
+ TIPO A — Reglas para este proyecto ([N_a_high]):
192
+ 1. [regla]: [descripción]
193
+ TIPO B — Anti-patrones generales ([N_b_high]):
194
+ 1. [anti-patrón]: [descripción y corrección]
195
+ TIPO D — Mejoras de metodología ([N_d_high]):
196
+ 1. [mejora]: [qué cambiaría]
197
+
198
+ 🟡 RATING MEDIUM ([N]):
199
+ TIPO B — Anti-patrones generales ([N_b_med]):
200
+ 1. [anti-patrón]: [descripción y corrección]
201
+ TIPO C — Nueva habilidad propuesta ([N_c_med]):
202
+ 1. [nombre propuesto]: [qué cubriría]
203
+
204
+ 🔵 RATING LOW ([N]) — solo registrar, no promover:
205
+ 1. [observación breve]
206
+ 2. [observación breve]
207
+
208
+ ¿Apruebas los HIGH y MEDIUM? ¿Algún LOW quieres promover manualmente?
209
+ ¿Hay alguno incorrecto o que no identifiqué?
210
+ ```
211
+
212
+ **Criterios de aceptación de la presentación**:
213
+ - Si `alcance = "todo"` y la lista tiene más de 15 aprendizajes, NO presentar todos
214
+ planos; agrupar por rating y mostrar primero el bloque HIGH completo, luego
215
+ resumen contado de MEDIUM/LOW con opción "ver detalle" si el usuario lo pide.
216
+ - Si no hay ningún aprendizaje HIGH, reportar explícitamente *"sin aprendizajes
217
+ de alto impacto"* — es señal válida, no falla del proceso.
218
+ - Nunca promover LOW automáticamente. Los LOW quedan en APRENDIZAJES.md como
219
+ registro y pueden consolidarse después si se confirman ≥3 veces (ver skill
220
+ `extractor-de-aprendizajes` sección "Consolidación con vigencia").
221
+
222
+ Espera respuesta. Ajusta según feedback.
223
+
224
+ ## Paso 5.5 — Guard anti-compounding ANTES de persistir
225
+
226
+ > "When outputs get filed back, errors compound too." — @HFloyd sobre el sistema de Karpathy
227
+ >
228
+ > Este paso se ejecuta OBLIGATORIAMENTE entre la aprobación del usuario (Paso 5)
229
+ > y la escritura de los aprendizajes (Paso 6). Su propósito es detectar contradicciones
230
+ > ANTES de que entren al knowledge base — no después.
231
+
232
+ ### Verificación de consistencia por cada aprendizaje aprobado
233
+
234
+ Para **cada aprendizaje del tipo A o B** que el usuario aprobó, ejecutar:
235
+
236
+ ```bash
237
+ # Buscar el contenido del aprendizaje nuevo en APRENDIZAJES.md
238
+ # para detectar si ya existe algo que lo contradiga
239
+ grep -i "[KEYWORD_DEL_APRENDIZAJE]" .planning/APRENDIZAJES.md | head -10
240
+ ```
241
+
242
+ Evaluar el resultado en 3 categorías:
243
+
244
+ | Resultado | Acción |
245
+ |-----------|--------|
246
+ | **No hay entradas previas** relacionadas | Persistir directamente — no hay riesgo de compounding |
247
+ | **Hay entradas previas que CONFIRMAN** el nuevo aprendizaje | Persistir y marcar como `[CONFIRMADO x2]` para aumentar confianza |
248
+ | **Hay entradas previas que CONTRADICEN** el nuevo aprendizaje | **DETENER** — ver protocolo de resolución abajo |
249
+
250
+ ### Protocolo de resolución de contradicción pre-persistencia
251
+
252
+ Si se detecta contradicción entre un aprendizaje nuevo y uno existente:
253
+
254
+ 1. **Presentar al usuario la contradicción explícitamente**:
255
+
256
+ ```
257
+ ⚠ Contradicción detectada antes de persistir:
258
+
259
+ APRENDIZAJE NUEVO (de esta sesión):
260
+ "[texto del aprendizaje nuevo]"
261
+
262
+ APRENDIZAJE EXISTENTE (APRENDIZAJES.md, línea N):
263
+ "[texto del aprendizaje anterior]"
264
+
265
+ ¿Cómo resolver?
266
+ [A] El nuevo es correcto — reemplazar el anterior (con fecha y razón)
267
+ [B] El anterior es correcto — descartar el nuevo
268
+ [C] Ambos son válidos en contextos distintos — fusionar con condición explícita
269
+ [D] Necesito más evidencia — posponer ambos hasta tener más datos
270
+ ```
271
+
272
+ 2. **No persistir ninguno** hasta que el usuario resuelva.
273
+
274
+ 3. **Registrar la resolución** en el log del wiki si existe:
275
+ ```bash
276
+ echo "## [$(date +%Y-%m-%d)] contradicción-resuelta | [tema]" >> .planning/knowledge/log.md
277
+ ```
278
+
279
+ ### Verificación adicional: consistencia con el wiki
280
+
281
+ Si existe `.planning/knowledge/wiki/` en el proyecto:
282
+
283
+ ```bash
284
+ # Verificar si hay una página wiki que trate el mismo tema
285
+ ls .planning/knowledge/wiki/ 2>/dev/null | grep -i "[keyword]"
286
+ ```
287
+
288
+ Si existe una página wiki relevante:
289
+ - Leerla antes de persistir el aprendizaje
290
+ - Si el nuevo aprendizaje contradice la página wiki: actualizar la wiki también
291
+ - Agregar al log del wiki: `## [FECHA] update | [página] — actualizado por nuevo aprendizaje`
292
+
293
+ **Regla clave**: el aprendizaje nuevo y la página wiki deben ser consistentes.
294
+ Un aprendizaje que contradice la wiki sin actualizar la wiki = compounding error garantizado.
295
+
296
+ ## Paso 6 — Aplicación de aprendizajes aprobados
297
+
298
+ Aplica cada tipo siguiendo el protocolo del skill:
299
+
300
+ - **TIPO A**: agrega reglas en `CLAUDE.md` del proyecto en la sección apropiada. NUNCA elimines reglas existentes.
301
+ - **TIPO B**: escribe la regla en el skill correspondiente usando el formato del skill (NUNCA/SIEMPRE + Problema + código MAL vs BIEN). Usa la tabla de destinos del skill para elegir dónde.
302
+ - **TIPO C**: crea nuevo directorio en `habilidades/` con SKILL.md completo (frontmatter + cuándo activar + reglas + anti-patrones). Mínimo 5 reglas concretas para justificar skill separado.
303
+ - **TIPO D**: modifica el comando SWL correspondiente en `comandos/swl/`.
304
+
305
+ **OBLIGATORIO — Dos acciones acopladas por cada archivo modificado** (TIPO B y D).
306
+
307
+ Marcar `evolved` y bumpear la versión interna del componente son **dos operaciones complementarias que SIEMPRE se aplican juntas**, nunca una sin la otra. El flag `evolved` protege contra reinstalación; el bump de `version` comunica al resto del sistema (auditorías, `/swl:salud`, consumidores) que el contenido del componente cambió desde la última revisión. Omitir el bump hace el cambio invisible aunque el flag esté puesto.
308
+
309
+ ### Acción 1 — Marcar como evolved
310
+
311
+ ```bash
312
+ node -e "
313
+ const { markAsEvolved } = require('./hooks/lib/evolution-tracker');
314
+ const pkg = require('./package.json');
315
+ const r = markAsEvolved('[RUTA_ARCHIVO_MODIFICADO]', {
316
+ from: pkg.version,
317
+ by: 'aprender',
318
+ note: '[tipo de aprendizaje: anti-patrón / mejora de metodología]'
319
+ });
320
+ console.log(r.marked ? 'Marcado como evolucionado' : 'Error: ' + r.error);
321
+ "
322
+ ```
323
+
324
+ `markAsEvolved` registra automáticamente `evolved-at` con la fecha del día en formato ISO (`YYYY-MM-DD`) — no hay que pasarla manualmente. Escribe en el frontmatter los 5 campos siguientes:
325
+
326
+ ```yaml
327
+ evolved: true
328
+ evolved-from: "[versión del sistema al momento del cambio]"
329
+ evolved-at: "[fecha ISO del día — agregada automáticamente]"
330
+ evolved-by: "aprender"
331
+ evolved-note: "[nota pasada como meta.note]"
332
+ ```
333
+
334
+ Si Bash no está disponible y se edita el frontmatter manualmente, **incluir obligatoriamente la fecha ISO de hoy en `evolved-at`**. Una entrada `evolved: true` sin fecha es inválida — sin fecha no se puede auditar cuándo ocurrió la evolución ni priorizar cambios recientes en `/swl:salud`.
335
+
336
+ ### Acción 2 — Bumpear la versión interna del componente
337
+
338
+ Solo aplica a agentes y skills (los comandos SWL no versionan internamente; para comandos, basta con la Acción 1).
339
+
340
+ Leer el campo `version` del frontmatter y aplicar SemVer según el tipo de cambio:
341
+
342
+ | Cambio aplicado al componente | Bump |
343
+ |-------------------------------|------|
344
+ | Gotcha nuevo, regla nueva, corrección de redacción | **PATCH** (1.0.0 → 1.0.1) |
345
+ | Sección completa nueva, nueva categoría de contenido, cambio significativo de alcance | **MINOR** (1.0.0 → 1.1.0) |
346
+ | Redefinición incompatible (renombrar campo obligatorio, cambiar contrato de invocación) | **MAJOR** (1.0.0 → 2.0.0) |
347
+
348
+ Edit el frontmatter del archivo:
349
+ ```yaml
350
+ version: "1.0.1" # era "1.0.0"
351
+ ```
352
+
353
+ **SIN MARCADO DE EVOLVED**: los cambios se perderán en la próxima actualización de SWL.
354
+ **SIN BUMP DE VERSIÓN**: el cambio será invisible al resto del sistema aunque el contenido del archivo haya cambiado.
355
+ **Las dos acciones son OBLIGATORIAS para cualquier modificación de contenido de skill o agente.**
356
+
357
+ ### Verificación automática al final del Paso 6
358
+
359
+ Antes de pasar al Paso 7, ejecutar OBLIGATORIAMENTE el verificador que valida que TODOS los archivos de `agentes/` y `habilidades/` modificados en la sesión tengan ambos metadatos actualizados. No es opcional — es una gate de calidad del comando:
360
+
361
+ ```bash
362
+ # Verifica archivos modificados desde el último commit del usuario
363
+ # (ajustar --since según el alcance de la sesión de aprender)
364
+ node scripts/verificar-evolucion.js --changed --since=HEAD~1
365
+ ```
366
+
367
+ El script revisa cada agente/skill modificado contra 4 criterios:
368
+
369
+ 1. Campo `version` presente en el frontmatter
370
+ 2. `evolved: true` registrado (en frontmatter o en `<dir>/.evolved.json`)
371
+ 3. Metadatos `evolved-from`, `evolved-at`, `evolved-by` completos con fecha en formato ISO `YYYY-MM-DD`
372
+ 4. Campo `version` bumpado respecto al HEAD de git si el archivo tiene diff real
373
+
374
+ **Exit codes**:
375
+ - `0` — todo OK, continuar al Paso 7
376
+ - `1` — al menos un archivo falla. **NO continuar al Paso 7**. Corregir cada gap reportado y volver a ejecutar hasta que pase. El reporte indica el problema exacto y el archivo afectado.
377
+ - `2` — error de invocación (archivo no existe, argumentos inválidos)
378
+
379
+ Ejemplo de output en éxito:
380
+ ```
381
+ [OK] agentes/release-manager-swl.md: version=1.0.1 (era 1.0.0), evolved=true
382
+ [OK] habilidades/manejo-errores/SKILL.md: version=1.0.1 (era 1.0.0), evolved=true
383
+ Resultado: 2/2 OK
384
+ ```
385
+
386
+ Ejemplo de output en fallo que obliga a corregir antes de continuar:
387
+ ```
388
+ [FALLA] habilidades/foo/SKILL.md: contenido modificado pero `version` no bumpada (sigue en 1.0.0) | version=1.0.0, evolved=true
389
+ [FALLA] habilidades/bar/SKILL.md: `evolved` no encontrado (ni en frontmatter ni en .evolved.json del directorio) | version=1.1.0, evolved=n/a
390
+ Resultado: 0/2 OK, 2 con fallos
391
+ ```
392
+
393
+ Si el verificador reporta fallo, corregir el archivo puntual (agregar bump o ejecutar `markAsEvolved()`), NO saltarse la verificación. El gap que esta verificación cierra es exactamente el que el usuario detectó al auditar la sesión de aprender del 2026-04-20: `markAsEvolved` ejecutado sin bump de `version` → cambio invisible al resto del sistema pese a que el archivo quedó protegido contra reinstalación.
394
+
395
+ ## Paso 7 — APRENDIZAJES.md y reporte
396
+
397
+ Crea o actualiza `.planning/APRENDIZAJES.md` con registro de la sesión: título, categoría, contexto, aprendizaje, acción tomada, métricas.
398
+
399
+ ```
400
+ Extracción de aprendizajes completada.
401
+
402
+ Aprendizajes procesados:
403
+ - Reglas nuevas en CLAUDE.md del proyecto: [N]
404
+ - Anti-patrones agregados a habilidades existentes: [N]
405
+ - Nuevas habilidades creadas: [N] ([lista])
406
+ - Mejoras de metodología aplicadas: [N]
407
+
408
+ Archivos actualizados:
409
+ [lista con rutas]
410
+ ```
411
+
412
+ ## Paso 7.3 — Diary estructurado de la sesión (opcional)
413
+
414
+ Si la sesión generó al menos 3 aprendizajes aprobados (cualquier categoría),
415
+ generar un diary estructurado en `.planning/sessions/diary/{id}.json` usando
416
+ `scripts/lib/diary-entry.js`. Es **opcional**: si la sesión fue trivial o
417
+ puramente exploratoria, omitir este paso.
418
+
419
+ El diary captura — en formato consumible por máquinas — accomplishments,
420
+ decisiones, challenges y aprendizajes clave. NO duplica APRENDIZAJES.md
421
+ (que es prosa para humanos). El diary es derivado estructurado, alimenta
422
+ búsquedas futuras y análisis cross-sesión.
423
+
424
+ **Cuándo generar diary**:
425
+
426
+ - La sesión cerró un slice o feature completa.
427
+ - Se tomaron 1+ decisiones arquitectónicas registradas.
428
+ - Se aprendieron 2+ patrones nuevos que aplicarán a sesiones futuras.
429
+ - El usuario lo pide explícitamente.
430
+
431
+ **Cuándo NO generar diary**:
432
+
433
+ - Sesión exploratoria sin acciones de cambio.
434
+ - Solo se respondieron preguntas técnicas sin tocar código.
435
+ - Sesión < 30min sin commits.
436
+
437
+ **Cómo generar**:
438
+
439
+ ```js
440
+ const diary = require('./scripts/lib/diary-entry');
441
+
442
+ let entry = diary.createDiary({
443
+ sessionId: '<id-de-sesión>',
444
+ agent: 'orquestador-swl',
445
+ });
446
+ entry = diary.addAccomplishment(entry, '<logro 1>');
447
+ entry = diary.addDecision(entry, '<decisión 1 + razón>');
448
+ entry = diary.addLearning(entry, '<aprendizaje clave 1>');
449
+ entry = diary.addSourceAgent(entry, 'implementador-swl');
450
+ entry = diary.closeDiary(entry);
451
+
452
+ const fs = require('fs');
453
+ const path = require('path');
454
+ const dir = '.planning/sessions/diary';
455
+ if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });
456
+ fs.writeFileSync(path.join(dir, `${entry.id}.json`), diary.serializeDiary(entry));
457
+ ```
458
+
459
+ Validar con `validateDiary()` antes de persistir. Reportar en el output:
460
+
461
+ ```
462
+ Diary generado: .planning/sessions/diary/diary-YYYYMMDD-HASH.json
463
+ Logros: N | Decisiones: N | Challenges: N | Aprendizajes: N
464
+ ```
465
+
466
+ ## Paso 7.5 — Diagnóstico de agentes con fallos recurrentes (auto-evolución dirigida)
467
+
468
+ Este paso se ejecuta **automáticamente** después de actualizar APRENDIZAJES.md.
469
+ No requiere interacción del usuario salvo para confirmar evolución.
470
+
471
+ ### Objetivo
472
+
473
+ Detectar agentes SWL que aparecen con ≥3 entradas de fallo en APRENDIZAJES.md
474
+ y proponer `/swl:evolucionar` específicamente para esos agentes.
475
+
476
+ Inspirado en el ciclo del PDF "A Practical Guide to Building Agents":
477
+ > "Real-world failures → refine guardrails/instructions → iterate"
478
+
479
+ ### Procedimiento
480
+
481
+ 1. **Leer `.planning/APRENDIZAJES.md`** y contar entradas de fallo por agente:
482
+ - Solo contar líneas de **encabezado de entrada** (formato `## [YYYY-MM-DD] tipo — descripción`)
483
+ que sean de tipo `bug-fix`, `anti-patrón` o `fallo` Y mencionen un agente SWL en el mismo encabezado.
484
+ - Las menciones de agentes dentro del **cuerpo** de una entrada (contexto, ejemplos, plantillas)
485
+ no cuentan como fallos — evita falsos positivos por nombres en código o en secciones de revisión.
486
+
487
+ 2. **Construir tabla de fallos por agente**:
488
+ ```bash
489
+ # Solo buscar en líneas de encabezado (## [fecha]) con tipo de fallo
490
+ # que además mencionen un agente SWL en esa misma línea
491
+ grep -E "^## \[20[0-9]{2}-[0-9]{2}-[0-9]{2}\] (bug-fix|anti-patrón|fallo)" \
492
+ .planning/APRENDIZAJES.md \
493
+ | grep -oE "[a-z][a-z0-9-]+-swl" | sort | uniq -c | sort -rn | head -10
494
+ ```
495
+
496
+ 3. **Evaluar umbral**: Si algún agente tiene **≥3 fallos**, está calificado para evolución dirigida.
497
+
498
+ 4. **Presentar diagnóstico al usuario**:
499
+
500
+ ```
501
+ ── Diagnóstico de fallos por agente ──────────────────────
502
+ Se detectaron agentes con ≥3 entradas de fallo en APRENDIZAJES.md:
503
+
504
+ ┌─────────────────────────┬────────┬─────────────────────────────────────────┐
505
+ │ Agente │ Fallos │ Tipo de fallo más frecuente │
506
+ ├─────────────────────────┼────────┼─────────────────────────────────────────┤
507
+ │ [nombre-agente-swl] │ [N] │ [descripción breve del patrón de fallo] │
508
+ └─────────────────────────┴────────┴─────────────────────────────────────────┘
509
+
510
+ ¿Deseas ejecutar /swl:evolucionar para estos agentes?
511
+ [S] Sí — evolucionar ahora (recomendado)
512
+ [N] No — registrar diagnóstico y continuar
513
+ [D] Detalle — ver entradas de fallo completas antes de decidir
514
+ ```
515
+
516
+ 5. **Si el usuario confirma (S)**:
517
+ - Ejecutar `/swl:evolucionar` pasando el nombre del agente con más fallos primero.
518
+ - Si hay múltiples agentes calificados, proponer evolucionar uno por sesión
519
+ (evitar sobrecarga de cambios simultáneos).
520
+
521
+ 6. **Si el usuario rechaza (N)**:
522
+ - Agregar una entrada en APRENDIZAJES.md:
523
+ ```
524
+ [diagnóstico] [FECHA] agente [nombre]: [N] fallos registrados, evolución pospuesta por usuario.
525
+ ```
526
+ - Esto permite que el próximo `/swl:aprender` detecte el patrón acumulado.
527
+
528
+ 7. **Si no hay agentes con ≥3 fallos**: omitir este paso completamente y reportar `Sistema en buen estado — ningún agente supera el umbral de fallos (≥3).`
529
+
530
+ ### Reglas de este paso
531
+
532
+ - NUNCA proponer evolución sin evidencia en APRENDIZAJES.md (mínimo ≥3 entradas citables).
533
+ - Los fallos deben ser en dominios distintos o fechas distintas — 3 menciones del mismo incidente no cuentan como 3 fallos.
534
+ - Si el agente fue creado o evolucionado en los últimos 7 días, reducir el umbral requerido a ≥5 (darle tiempo de estabilizarse).
535
+
536
+ ## Reglas de comportamiento
537
+
538
+ - NUNCA inventes aprendizajes sin evidencia de la sesión. Si no puedes citar de dónde viene, no lo incluyas.
539
+ - NUNCA elimines reglas existentes de habilidades — solo agrega o marca como obsoletas.
540
+ - Cada aprendizaje debe ser accionable: "hacer X en lugar de Y" es un aprendizaje. "El código es complejo" no lo es.
541
+ - Si el usuario rechaza un aprendizaje, registra por qué en APRENDIZAJES.md.
542
+ - Nuevas habilidades necesitan mínimo 5 reglas concretas; si son menos, agrégalas a una existente.
543
+ - Prioriza calidad sobre cantidad — 3 aprendizajes precisos valen más que 15 vagos.
544
+
545
+ ---
546
+
547
+ ## Modelo de memoria por niveles (clasificación de aprendizajes)
548
+
549
+ Cada aprendizaje extraído tiene un nivel de madurez que determina dónde se
550
+ almacena y cómo se consolida. Inspirado en el modelo de 4 niveles de agentmemory.
551
+
552
+ | Nivel | Nombre | Almacenamiento | Ciclo de vida | Ejemplo |
553
+ |-------|--------|---------------|---------------|---------|
554
+ | **L1** | Working | Conversación actual | Se pierde al cerrar sesión si no se persiste | "Este endpoint necesita retry con backoff" |
555
+ | **L2** | Episodic | `.planning/sessions/`, `.planning/APRENDIZAJES.md` | 30 días, se purga o promueve | "Sesión del 2026-04-10: resolvimos bug de N+1 en pedidos" |
556
+ | **L3** | Semantic | `habilidades/*/SKILL.md`, `reglas/`, wiki/ | Permanente, se actualiza con evidencia | "SQLAlchemy async requiere selectinload, no lazy" |
557
+ | **L4** | Procedural | Instintos (`instintos/`), prompts de agentes | Permanente, alta confianza | "Siempre verificar propagación de cambios antes de commit" |
558
+
559
+ ### Reglas de promoción entre niveles
560
+
561
+ - **L1→L2**: Automático al persistir en APRENDIZAJES.md (Paso 6-7).
562
+ - **L2→L3**: Cuando el aprendizaje se valida en **≥3 sesiones distintas** o el usuario lo confirma explícitamente como regla general. Se agrega como regla a un skill existente o se crea página wiki.
563
+ - **L3→L4**: Cuando el aprendizaje semántico se ha confirmado en **≥5 sesiones** sin contradicciones y aplica a todo el proyecto. Se convierte en instinto con confianza ≥0.8.
564
+ - **Degradación**: Un aprendizaje en cualquier nivel se degrada si evidencia posterior lo contradice (ver Paso 5.5).
565
+
566
+ ### Uso en consolidación
567
+
568
+ Durante la consolidación (siguiente sección), usar estos niveles para decidir:
569
+ - Qué entradas de APRENDIZAJES.md merecen promoverse a skills o wiki (L2→L3)
570
+ - Qué instintos tienen suficiente evidencia para crearse o fortalecerse (L3→L4)
571
+ - Qué entradas episódicas ya cumplieron su utilidad y pueden purgarse (L2 >30 días sin promoción)
572
+
573
+ ### Deduplicación con fingerprint
574
+
575
+ Antes de persistir un aprendizaje nuevo, verificar que no sea duplicado de uno existente:
576
+
577
+ ```bash
578
+ # Usar fingerprint-id para detectar duplicados exactos o cercanos
579
+ node -e "
580
+ const { isNearDuplicate } = require('./hooks/lib/fingerprint-id');
581
+ const fs = require('fs');
582
+ const aprendizajes = fs.readFileSync('.planning/APRENDIZAJES.md', 'utf8');
583
+ const existentes = aprendizajes.split(/^## /m).filter(Boolean);
584
+ const nuevo = '[TEXTO_DEL_APRENDIZAJE_NUEVO]';
585
+ const r = isNearDuplicate(nuevo, existentes, 0.6);
586
+ console.log(r.nearDuplicate ? 'DUPLICADO (sim=' + r.similarity + ')' : 'ÚNICO');
587
+ "
588
+ ```
589
+
590
+ Si es duplicado (similitud ≥0.6), fusionar con la entrada existente en vez de crear nueva.
591
+
592
+ ---
593
+
594
+ ## Sección: Consolidación en 4 fases (modo autoDream)
595
+
596
+ Cuando se ejecuta en modo consolidación (automático o por pedido del usuario),
597
+ seguir estas 4 fases sin interacción. Inspirado en autoDream de Claude Code.
598
+
599
+ ### Fase 1 — Orient
600
+
601
+ 1. Leer `.planning/APRENDIZAJES.md` para entender qué ya está registrado.
602
+ 2. Leer `instintos/proyecto.yaml` para ver instintos activos y su confianza.
603
+ 3. Listar sesiones recientes: `ls -lt .planning/sessions/ | head -10`
604
+ 4. Leer `.planning/COMPACTACION.md` si existe para contexto del proyecto.
605
+
606
+ ### Fase 2 — Gather (señal reciente)
607
+
608
+ 1. Escanear las sesiones nuevas (las que tienen mtime posterior a la última consolidación).
609
+ Solo leer las más recientes (máximo 5 sesiones), no exhaustivamente.
610
+ 2. Buscar en cada sesión: errores resueltos, decisiones tomadas, patrones descubiertos.
611
+ 3. Buscar evidencia que contradiga aprendizajes o instintos existentes.
612
+ 4. **NO** leer el código fuente ni investigar — solo sintetizar lo que ya se hizo.
613
+
614
+ ### Fase 3 — Consolidate (curación de memoria)
615
+
616
+ 1. **Merge duplicados**: Si hay aprendizajes en APRENDIZAJES.md que dicen lo mismo
617
+ con distintas palabras, consolidar en una sola entrada más precisa.
618
+ 2. **Convertir fechas relativas a absolutas**: "ayer" → "2026-04-02", "la semana pasada" → "2026-03-26".
619
+ 3. **Eliminar hechos contradichos**: Si una sesión reciente muestra que un aprendizaje
620
+ anterior era incorrecto, eliminarlo o marcarlo como `[OBSOLETO]` con la razón.
621
+ 4. **Degradar instintos contradichos**: Si un instinto en `proyecto.yaml` fue contradicho
622
+ por evidencia de sesiones recientes, bajar su confianza (mínimo 0.1 por contradicción).
623
+ 5. **Promover instintos validados**: Si un instinto fue confirmado por evidencia
624
+ positiva en 3+ sesiones, subir su confianza (máximo +0.1 por confirmación).
625
+ 6. **Promoción L2→L3**: Buscar entradas en APRENDIZAJES.md con ≥3 marcas `[CONFIRMADO]`
626
+ y que no existan ya como regla en ningún skill. Proponer promoción a skill o wiki.
627
+ 7. **Promoción L3→L4**: Buscar reglas en skills con ≥5 confirmaciones en sesiones
628
+ distintas. Proponer creación de instinto con confianza 0.8.
629
+ 8. **Deduplicación**: Usar `isNearDuplicate()` de `hooks/lib/fingerprint-id.js`
630
+ para detectar entradas casi idénticas en APRENDIZAJES.md y fusionarlas.
631
+
632
+ ### Fase 4 — Prune e Índice
633
+
634
+ 1. **Limitar APRENDIZAJES.md a 100 entradas**: Eliminar las más antiguas y menos
635
+ accionables si supera el límite. Mantener siempre los anti-patrones críticos.
636
+ 2. **Eliminar sesiones muy antiguas** (> 30 días) de `.planning/sessions/` para
637
+ evitar crecimiento indefinido. Solo los archivos JSON, no la metadata.
638
+ 3. **Reportar lo hecho** al usuario:
639
+
640
+ ```
641
+ Consolidación completada (modo autoDream):
642
+ - Entradas en APRENDIZAJES.md: [antes] → [después] ([+N nuevas, -N eliminadas, N mergeadas])
643
+ - Instintos actualizados: [N degradados, N promovidos]
644
+ - Fechas normalizadas: [N]
645
+ - Contradicciones detectadas y resueltas: [N]
646
+ - Sesiones antiguas purgadas: [N]
647
+ ```
648
+
649
+ ### Fase 4.5 — Lint del wiki (si existe)
650
+
651
+ Si el proyecto tiene `.planning/knowledge/wiki/`, ejecutar health check del wiki
652
+ como parte de la consolidación:
653
+
654
+ ```bash
655
+ # Detectar si existe el wiki del proyecto
656
+ ls .planning/knowledge/wiki/ 2>/dev/null | wc -l
657
+ ```
658
+
659
+ Si hay páginas en el wiki (resultado > 0), ejecutar:
660
+
661
+ 1. **Detectar páginas huérfanas** (sin referencias desde otras páginas):
662
+ ```bash
663
+ # Listar todas las páginas del wiki
664
+ ls .planning/knowledge/wiki/*.md | grep -v "INDEX.md" | grep -v "log.md"
665
+ # Verificar cuáles no aparecen referenciadas en otras páginas
666
+ for PAGE in .planning/knowledge/wiki/*.md; do
667
+ NOMBRE=$(basename "$PAGE" .md)
668
+ REFS=$(grep -l "\[\[$NOMBRE\]\]" .planning/knowledge/wiki/*.md 2>/dev/null | wc -l)
669
+ echo "$REFS refs: $NOMBRE"
670
+ done | grep "^0"
671
+ ```
672
+
673
+ 2. **Detectar claims sin fuente en raw/**:
674
+ - Buscar afirmaciones en wiki/ que referencien fuentes no presentes en `raw/`
675
+ - Marcar con `[SIN-FUENTE]` para revisión posterior
676
+
677
+ 3. **Detectar páginas no enlazadas desde INDEX.md**:
678
+ ```bash
679
+ # Páginas en wiki/ que no aparecen en INDEX.md
680
+ comm -23 \
681
+ <(ls .planning/knowledge/wiki/*.md | xargs -I{} basename {} .md | sort) \
682
+ <(grep -oE '\[\[.+\]\]' .planning/knowledge/wiki/INDEX.md | tr -d '[]' | sort)
683
+ ```
684
+
685
+ 4. **Reportar resultados del lint en el log**:
686
+ ```bash
687
+ echo "## [$(date +%Y-%m-%d)] lint | wiki health check" >> .planning/knowledge/log.md
688
+ echo "- Páginas huérfanas: [N]" >> .planning/knowledge/log.md
689
+ echo "- Claims sin fuente: [N]" >> .planning/knowledge/log.md
690
+ echo "- Páginas fuera del índice: [N]" >> .planning/knowledge/log.md
691
+ ```
692
+
693
+ Si no hay wiki, omitir esta fase y continuar a Fase 4.
694
+
695
+ ### Reglas de consolidación
696
+
697
+ - NUNCA eliminar un aprendizaje sin evidencia de que es incorrecto. Antigüedad sola no justifica eliminación — solo irrelevancia o contradicción.
698
+ - NUNCA leer transcripts exhaustivamente. Escanear títulos y buscar keywords específicos.
699
+ - Máximo 10 minutos de trabajo total. Si hay demasiado por consolidar, priorizar contradicciones y duplicados.
700
+ - Registrar la consolidación en el lock file para que el hook no vuelva a sugerir hasta la próxima ventana de 24h.
701
+ - **NUNCA persistir un aprendizaje que contradiga el wiki sin resolver la contradicción primero** (ver Paso 5.5).