@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,282 @@
1
+ ---
2
+ name: guardrail-semantico
3
+ description: >
4
+ Patrón de validación pre/post ejecución de agentes con "tripwire" para decidir
5
+ si permitir, degradar modelo o bloquear. Cargar cuando se diseñen hooks PreToolUse
6
+ de validación semántica, cuando se implemente control de costos por nivel de
7
+ complejidad, o cuando se quiera observar si un subagente podría ejecutarse con
8
+ un modelo menos costoso. Basado en el patrón InputGuardrail/OutputGuardrail de
9
+ openai-agents-python.
10
+ version: "1.0.0"
11
+ herramientasPermitidas: [Read, Write]
12
+ exclusiones:
13
+ - "No cargar para guardrails de seguridad (detectar operaciones destructivas, escritura en rutas prohibidas, secretos en output) — eso es `reglas/seguridad-agentes.md` y el hook `risk-scoring`; este skill evalúa complejidad semántica para degradación de modelo, no riesgo operacional."
14
+ - "No cargar si el guardrail objetivo va directamente a modo `blocking` sin datos de observación — el propio skill requiere ≥50 activaciones en modo `observational` antes de considerar `blocking`; cargar el skill para diseñar el guardrail, no para saltarse ese requisito."
15
+ - "No cargar para configurar permisos de tools o allowedTools de un agente — eso es `estructura-proyecto-claude` y `seguridad-agentes`; este skill diseña la lógica de tripwire para degradación de modelo."
16
+ - "No cargar para guardrails sobre agentes con `nivelRiesgo: ALTO` — el Criterio 3 es determinista: esos agentes nunca se degradan; diseñar guardrails para ellos no tiene efecto."
17
+ tags: [patron-diseño, costos, modelos, guardrails, agentes]
18
+ provenance:
19
+ origin: imported
20
+ created_at: "2026-04-19"
21
+ confidence: 0.75
22
+ author: saul.wade@gmail.com
23
+ ---
24
+ # Guardrail Semántico — Validación con tripwire para agentes
25
+
26
+ ## Propósito
27
+
28
+ Un guardrail semántico es una capa de validación que se ejecuta **antes o después**
29
+ de la tarea de un agente para decidir si proceder, degradar el modelo, o bloquear.
30
+ El "tripwire" es la condición booleana que activa la respuesta del guardrail.
31
+
32
+ A diferencia de los guardrails de seguridad (que bloquean operaciones peligrosas),
33
+ el guardrail semántico evalúa la **complejidad semántica** del input para decidir
34
+ si se justifica el costo del modelo seleccionado.
35
+
36
+ ## Cuándo cargar este skill
37
+
38
+ - Al diseñar hooks `PreToolUse` que evalúan prompts antes de invocar un subagente.
39
+ - Al implementar degradación de modelo basada en complejidad de tarea.
40
+ - Al revisar si `guardrail-modelo.js` necesita nuevos criterios de tripwire.
41
+ - Al analizar logs de `.planning/evolucion/guardrail-observaciones.jsonl`.
42
+
43
+ ---
44
+
45
+ ## Componentes del patrón
46
+
47
+ ### GuardrailFunctionOutput
48
+
49
+ Estructura de retorno de toda función de guardrail:
50
+
51
+ ```js
52
+ // GuardrailFunctionOutput — contrato de retorno
53
+ {
54
+ tripwire_triggered: boolean, // true = aplicar acción (degradar/bloquear)
55
+ output_info: any, // datos de análisis para diagnóstico
56
+ metadata: {
57
+ razon: string, // descripción legible del criterio activado
58
+ confidence: number, // 0.0-1.0 de certeza del tripwire
59
+ modelo_sugerido: string, // 'haiku' | 'sonnet' | 'opus' | null
60
+ }
61
+ }
62
+ ```
63
+
64
+ ### InputGuardrail (pre-ejecución)
65
+
66
+ Se ejecuta **antes** de que el agente reciba su tarea. Analiza el prompt del
67
+ subagente para decidir si la complejidad justifica el modelo seleccionado.
68
+
69
+ ```js
70
+ // Pseudocódigo del patrón InputGuardrail
71
+ function inputGuardrail(promptTexto, agenteConfig) {
72
+ const analisis = analizarComplejidad(promptTexto);
73
+ const nivelRiesgo = agenteConfig.nivelRiesgo || 'MEDIO';
74
+
75
+ // override: agentes de alto riesgo nunca se degradan
76
+ if (nivelRiesgo === 'ALTO') {
77
+ return { tripwire_triggered: false, output_info: analisis, metadata: { razon: 'override-alto-riesgo' } };
78
+ }
79
+
80
+ const tripwire = analisis.esTrivial || analisis.tienePalabrasLigeras;
81
+ return {
82
+ tripwire_triggered: tripwire,
83
+ output_info: analisis,
84
+ metadata: {
85
+ razon: analisis.razon,
86
+ confidence: analisis.confidence,
87
+ modelo_sugerido: tripwire ? 'haiku' : null,
88
+ }
89
+ };
90
+ }
91
+ ```
92
+
93
+ ### OutputGuardrail (post-ejecución)
94
+
95
+ Se ejecuta **después** de que el agente entregó su resultado. Evalúa la calidad
96
+ del output para retroalimentar el sistema de confianza.
97
+
98
+ ```js
99
+ // Pseudocódigo del patrón OutputGuardrail
100
+ function outputGuardrail(resultado, agenteConfig) {
101
+ const problemas = detectarProblemas(resultado);
102
+ return {
103
+ tripwire_triggered: problemas.length > 0,
104
+ output_info: { problemas },
105
+ metadata: { razon: problemas.join('; '), confidence: 0.8 }
106
+ };
107
+ }
108
+ ```
109
+
110
+ ### Modos de ejecución
111
+
112
+ | Modo | Comportamiento | Cuándo usar |
113
+ |------|---------------|-------------|
114
+ | `blocking` | Síncrono. Si tripwire activa, aborta la tarea. | Validaciones de seguridad críticas |
115
+ | `run_in_parallel` | No bloquea. Registra el tripwire sin interrumpir. | Observación de patrones, primera versión de guardrails nuevos |
116
+ | `observational` | Solo registra. Nunca actúa. | Acumulación de datos pre-activación |
117
+
118
+ **Regla de introducción**: todo guardrail nuevo DEBE iniciar en modo `observational`
119
+ o `run_in_parallel` durante al menos 50 activaciones antes de activar el modo
120
+ `blocking`. Esto previene falsos positivos en producción sin datos.
121
+
122
+ ---
123
+
124
+ ## Criterios propuestos de tripwire para degradación de modelo
125
+
126
+ ### Criterio 1 — Tarea trivial por longitud
127
+
128
+ **Señal**: prompt < 200 caracteres Y sin palabras clave de decisión crítica.
129
+ **Acción**: sugerir degradación Opus → Sonnet, Sonnet → Haiku.
130
+ **Confianza**: 0.6 (longitud no garantiza trivialidad).
131
+
132
+ ```js
133
+ const esTrivialPorLongitud = (texto) =>
134
+ texto.length < 200 &&
135
+ !/arquitectura|seguridad|diseño|decisión|riesgo|critico|irreversible/i.test(texto);
136
+ ```
137
+
138
+ ### Criterio 2 — Palabras clave de tarea ligera
139
+
140
+ **Señal**: el prompt contiene verbos de operación determinista.
141
+ **Acción**: forzar degradación a Haiku si el agente no es ALTO riesgo.
142
+ **Confianza**: 0.75.
143
+
144
+ ```js
145
+ const PALABRAS_TAREA_LIGERA = /\b(lista|formatea|muestra|busca|cuenta|consulta|renombra|copia|mueve)\b/i;
146
+ const esTareaLigera = (texto) => PALABRAS_TAREA_LIGERA.test(texto);
147
+ ```
148
+
149
+ ### Criterio 3 — Override por nivelRiesgo ALTO
150
+
151
+ **Señal**: el frontmatter del agente invocado declara `nivelRiesgo: ALTO`.
152
+ **Acción**: NUNCA degradar. Ignorar criterios 1 y 2.
153
+ **Confianza**: 1.0 (regla determinista).
154
+
155
+ Este criterio protege a: `orquestador-swl`, `arquitecto-swl`, `revisor-seguridad-swl`,
156
+ `producto-prd-swl` y cualquier agente con decisiones irreversibles de arquitectura.
157
+
158
+ ### Criterio 4 — Agente ya en modelo mínimo
159
+
160
+ **Señal**: el agente invocado ya usa `model: haiku` o `model: claude-haiku-*`.
161
+ **Acción**: no aplicar guardrail (no hay degradación posible).
162
+ **Confianza**: 1.0.
163
+
164
+ ---
165
+
166
+ ## Casos donde NO aplicar
167
+
168
+ - Agentes con `model: claude-opus-4-7` explícito en frontmatter y `nivelRiesgo: ALTO`.
169
+ - Input que ya pasó por otro guardrail en la misma cadena de delegación.
170
+ - Sesiones de research abierto (`/swl:discutir-fase`, `/swl:brainstorm`) donde
171
+ la amplitud del análisis es el objetivo.
172
+ - Tareas con keywords mixtas donde criterio 1 y criterio 2 se contradicen:
173
+ en caso de conflicto, NO degradar (conservador).
174
+
175
+ ---
176
+
177
+ ## Anti-patrones
178
+
179
+ ### Degradación silenciosa
180
+
181
+ El guardrail que baja el modelo sin notificar al usuario es una violación del
182
+ principio de "no fallback silencioso" (`reglas/seguridad-agentes.md`). Siempre
183
+ emitir un nudge visible antes o durante la degradación.
184
+
185
+ ```
186
+ MAL: modificar silenciosamente el modelo en el payload sin registrar
187
+ BIEN: emitir nudge + registrar en guardrail-observaciones.jsonl + retornar exit 0
188
+ ```
189
+
190
+ ### Tripwire que degrada agentes `model: inherit`
191
+
192
+ Los agentes con `model: inherit` reciben el modelo del padre. Degradarlos en el
193
+ guardrail rompería la cadena de herencia intencional del orquestador. El hook
194
+ `guardrail-modelo.js` DEBE verificar esto antes de aplicar cualquier criterio.
195
+
196
+ ### Activar blocking sin datos de observación
197
+
198
+ Pasar de modo `observational` a `blocking` sin revisar las observaciones acumuladas
199
+ es una fuente garantizada de falsos positivos. El ciclo correcto:
200
+
201
+ 1. Deploy en modo `observational` (exit 0 siempre).
202
+ 2. Revisar `.planning/evolucion/guardrail-observaciones.jsonl` tras ≥50 activaciones.
203
+ 3. Calcular tasa de falsos positivos. Si < 5%, considerar `run_in_parallel`.
204
+ 4. Solo con tasa < 2% y aprobación manual, activar `blocking`.
205
+
206
+ ### Lógica de negocio en el guardrail
207
+
208
+ El guardrail evalúa complejidad semántica, no lógica de negocio. No debe:
209
+ - Validar permisos del usuario.
210
+ - Verificar que el agente existe en el sistema.
211
+ - Modificar el payload del agente invocado (solo observar y reportar).
212
+
213
+ ---
214
+
215
+ ## Ejemplo de uso concreto
216
+
217
+ Escenario: el orquestador invoca al `notificador-swl` con un prompt corto.
218
+ El hook `guardrail-modelo.js` intercepta la invocación PreToolUse:
219
+
220
+ ```js
221
+ // Fragmento del hook guardrail-modelo.js
222
+ const prompt = payload?.tool_input?.prompt || '';
223
+ const agenteNombre = payload?.tool_input?.agent || '';
224
+
225
+ const tripwire = esTrivialPorLongitud(prompt) || esTareaLigera(prompt);
226
+
227
+ if (tripwire) {
228
+ // Registrar observación
229
+ const evento = {
230
+ timestamp: new Date().toISOString(),
231
+ agente: agenteNombre,
232
+ modelo_actual: 'sonnet',
233
+ modelo_sugerido: 'haiku',
234
+ razon_tripwire: 'prompt-corto-sin-keywords-criticas',
235
+ prompt_length: prompt.length,
236
+ };
237
+ fs.appendFileSync(GUARDRAIL_LOG, JSON.stringify(evento) + '\n');
238
+
239
+ // Nudge al usuario — visible, no bloquea
240
+ process.stderr.write(
241
+ `[guardrail-modelo] El agente '${agenteNombre}' podría ejecutarse con 'haiku' ` +
242
+ `(menos costoso). Razón: prompt corto sin keywords críticas (${prompt.length} chars). ` +
243
+ `Ver .planning/evolucion/guardrail-observaciones.jsonl\n`
244
+ );
245
+ }
246
+ // exit 0 siempre — modo observacional
247
+ process.exit(0);
248
+ ```
249
+
250
+ **Evento JSONL resultante** en `.planning/evolucion/guardrail-observaciones.jsonl`:
251
+
252
+ ```jsonl
253
+ {"timestamp":"2026-04-19T14:23:01.000Z","agente":"notificador-swl","modelo_actual":"sonnet","modelo_sugerido":"haiku","razon_tripwire":"prompt-corto-sin-keywords-criticas","prompt_length":87}
254
+ ```
255
+
256
+ ---
257
+
258
+ ## Checklist para implementar un guardrail nuevo
259
+
260
+ - [ ] El guardrail tiene un nombre descriptivo y un criterio explícito de tripwire.
261
+ - [ ] Inicia en modo `observational` (exit 0 siempre).
262
+ - [ ] El override `nivelRiesgo: ALTO` está implementado.
263
+ - [ ] El caso `model: inherit` está excluido.
264
+ - [ ] El caso "agente ya en modelo mínimo" está excluido.
265
+ - [ ] Se registra en JSONL append-only (no sobreescribir).
266
+ - [ ] Emite nudge legible con prefijo `[guardrail-*]`.
267
+ - [ ] Está protegido con opt-in de variable de entorno.
268
+ - [ ] El criterio de promoción a `run_in_parallel`/`blocking` está documentado.
269
+
270
+ ## Cuándo NO cargar
271
+
272
+ - Se diseñan guardrails para detectar operaciones destructivas, escritura en rutas prohibidas o secretos en output — eso es `reglas/seguridad-agentes.md` y `risk-scoring`; este skill evalúa complejidad semántica para degradación de costo de modelo, no riesgo operacional.
273
+ - El agente objetivo tiene `nivelRiesgo: ALTO` en frontmatter — el Criterio 3 es determinista: los agentes de alto riesgo nunca se degradan, por lo que diseñar un guardrail para ellos no tiene efecto.
274
+ - Se necesita configurar `allowedTools` o permisos de tools — eso es `estructura-proyecto-claude` y `seguridad-agentes`; este skill diseña la lógica de tripwire semántico.
275
+ - Se quiere activar un guardrail en modo `blocking` sin haber acumulado datos de observación — el skill requiere ≥50 activaciones en modo `observational` como precondición; usar este skill para diseñar el guardrail respetando ese ciclo, no para saltárselo.
276
+
277
+ ## Gotchas / Errores comunes no obvios
278
+
279
+ - **Tripwire por longitud (< 200 chars) degrada un prompt corto pero arquitectónicamente crítico**: un prompt de 150 caracteres como "Diseñar la estructura de datos para el módulo de facturación" activa el Criterio 1 y sugiere degradar a Haiku. Causa: la longitud es una señal débil de trivialidad (confianza 0.6 según el skill). Solución: combinar siempre Criterio 1 con la ausencia de keywords críticas — el regex de palabras clave debe incluir "diseñar", "estructura", "arquitectura", "módulo" además de las ya listadas; prompts cortos con decisiones de diseño deben resistir la degradación.
280
+ - **`model: inherit` no verificado antes de aplicar degradación**: el guardrail baja el modelo de un sub-agente que hereda del orquestador, rompiendo la cadena de herencia intencional. Causa: el hook no verifica el campo `model` del frontmatter del agente invocado antes de aplicar los criterios. Solución: el primer check del guardrail debe ser `if (agenteConfig.model === 'inherit') return { tripwire_triggered: false }` — la herencia de modelo es una decisión del orquestador que el guardrail no debe anular.
281
+ - **JSONL de observaciones escrito con `atomicWriteJSON` en lugar de `appendFileSync`**: el archivo `guardrail-observaciones.jsonl` pierde eventos anteriores porque se sobreescribe en cada activación. Causa: confundir archivos de estado (usan `atomicWriteJSON`) con archivos de eventos de alta frecuencia (usan `appendFileSync`). Solución: `guardrail-observaciones.jsonl` es un log de eventos — siempre `fs.appendFileSync(GUARDRAIL_LOG, JSON.stringify(evento) + '\n')`; el ejemplo de código en el skill ya lo muestra correctamente.
282
+ - **Criterios 1 y 2 en conflicto sin conservar el modelo**: un prompt de 150 chars (Criterio 1 → degradar) contiene la palabra "lista" (Criterio 2 → degradar) pero también "arquitectura" (keyword crítica → no degradar). El guardrail actúa sobre los primeros dos criterios e ignora el tercero. Causa: no implementar la regla de resolución de conflictos del skill ("en caso de conflicto, NO degradar"). Solución: el flujo de decisión debe verificar todos los criterios antes de emitir el tripwire — si algún criterio sugiere no degradar (keyword crítica presente), el resultado es `tripwire_triggered: false` independientemente de los demás.
@@ -0,0 +1,299 @@
1
+ ---
2
+ name: harness-claude-code
3
+ description: >
4
+ Disciplina operacional del harness de Claude Code para reducir consumo de
5
+ tokens y proteger el cache de prompt. Cubre las 4 causas raíz de quemar
6
+ cuota antes de tiempo (cache misses, context bloat, modelo/effort
7
+ incorrecto, formato de input ineficiente), 5 session moves (compact,
8
+ clear, rewind, sub-agentes, skills as agents), variables de entorno
9
+ recomendadas, tag files con @, /effort per-prompt y route-out a OpenRouter.
10
+ Cargar cuando el usuario reporte "se acabó la cuota", se prepare una
11
+ sesión Opus larga (>2h), se planifique adopción de MCP servers, o se
12
+ detecte context-rot recurrente.
13
+ version: "1.0.0"
14
+ evolved: false
15
+ herramientasPermitidas: [Read]
16
+ exclusiones:
17
+ - "No cargar para teoría general de context-rot y compactación — usar `compactacion-contexto`. Este skill cubre operación day-to-day del harness Claude Code; aquel cubre principios de gestión de contexto independientes de la herramienta."
18
+ - "No cargar para diseño/escritura de skills SWL — usar `meta-skills-estandar` y `reglas/skills-estandar.md`. Este skill cubre uso eficiente de skills, no su construcción."
19
+ - "No cargar para resolución de errores específicos del runtime (CLI no arranca, MCP no conecta) — esos son problemas técnicos del CLI, no del harness operacional."
20
+ - "No cargar para análisis de costo histórico o dashboards — usar `swl-dashboard` o `/swl:metricas`. Este skill cubre PREVENCIÓN del gasto excesivo, no el reporte post-hoc."
21
+ evolvable: true
22
+ ---
23
+
24
+ # Harness Claude Code — disciplina operacional
25
+
26
+ Origen: artículo "Claude Code's Limits Are Generous. The Problem Is Your
27
+ Harness." más experiencia operativa SWL.
28
+
29
+ Tesis: los límites de Claude Code Max son generosos. Si te quedaste sin
30
+ cuota antes de tiempo, no es Anthropic — es tu harness (configuración +
31
+ sesión + tools + modelo + formato de input). Cuatro causas raíz, todas
32
+ del lado del usuario.
33
+
34
+ ## Cuándo cargar
35
+
36
+ - El usuario reporta "se acabó la cuota antes de tiempo".
37
+ - Se diagnostica una sesión con context-rot recurrente o alertas críticas
38
+ falsas/persistentes.
39
+ - Se prepara una sesión Opus larga (>2h) o adopción de MCP servers nuevos.
40
+ - Se va a ejecutar un workflow agéntico complejo y se quiere protección
41
+ proactiva del cache.
42
+
43
+ ## Cuándo NO cargar
44
+
45
+ - La tarea es entender principios generales de compactación de contexto
46
+ independientes del tool — usar `compactacion-contexto`.
47
+ - Se va a escribir un skill SWL nuevo — usar `meta-skills-estandar`.
48
+ - El problema es un error del runtime (CLI no inicia, MCP no responde) —
49
+ ese es problema técnico, no operacional.
50
+ - Se quiere ver costo histórico — usar `swl-dashboard` o `/swl:metricas`.
51
+
52
+ ---
53
+
54
+ ## Las 4 causas raíz
55
+
56
+ ### 1. Cache misses
57
+
58
+ El prompt cache es la palanca económica más grande:
59
+
60
+ | Operación | Costo |
61
+ |-----------|-------|
62
+ | Cache read | 0.1× (90% descuento) |
63
+ | Cache write 5min | 1.25× |
64
+ | Cache write 1h | 2× (solo API) |
65
+ | Cache refresh on hit | gratis |
66
+
67
+ Cada hit resetea el TTL sin costo. El prefijo se mantiene caliente mientras
68
+ no cambie. **Hit rate sano: ~90% en 5-min default.**
69
+
70
+ **Reglas operacionales** (ver también `reglas/harness-claude-code.md`):
71
+
72
+ - NO agregar/quitar MCP servers mid-session
73
+ - NO usar `/model` mid-session
74
+ - NO modificar tools permitidos mid-session
75
+ - Si necesitas cambio: `/clear` y reinicia
76
+
77
+ Si el hit rate cae bajo 80%, algo en el harness está invalidando el prefijo
78
+ entre turnos. Investigar antes de seguir trabajando.
79
+
80
+ ### 2. Context bloat
81
+
82
+ Para Opus 4.7 el default es 1M context. Es caro y rara vez necesario.
83
+
84
+ **Variables de entorno recomendadas** para sesiones largas:
85
+
86
+ ```jsonc
87
+ // .claude/settings.json
88
+ {
89
+ "env": {
90
+ "CLAUDE_CODE_DISABLE_1M_CONTEXT": "1", // 200K en lugar de 1M
91
+ "CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "80" // auto-compact al 80%
92
+ }
93
+ }
94
+ ```
95
+
96
+ NO son universales — solo si el codebase no requiere 1M y se ve context
97
+ bloat real. Para sesiones que sí necesitan 1M (análisis de codebase
98
+ masivo), dejar el default.
99
+
100
+ ### 3. Modelo y effort incorrectos
101
+
102
+ **3 dials separados**: modelo de sesión, modelo de delegación, effort por prompt.
103
+
104
+ **Modelo de sesión** (lock al inicio):
105
+ - Sonnet session: barato; sin acceso a Opus en padre. Bueno si todo cabe en Sonnet.
106
+ - Opus session + delegate: padre con Opus para planning/tradeoffs; sub-agentes
107
+ Sonnet/Haiku para tactical work. Default para trabajo mixto.
108
+
109
+ **`/effort` per-prompt** (no per-session):
110
+
111
+ | Level | Cuándo |
112
+ |-------|--------|
113
+ | `/effort low` | fixes rápidos, tareas mecánicas |
114
+ | `/effort medium` | la mayoría de prompts (gran ahorro vs default) |
115
+ | `/effort high` | razonamiento exigente |
116
+ | `/effort xhigh` | default para coding agéntico Opus 4.7 |
117
+ | `/effort max` | diminishing returns; raramente vale 2× costo extra |
118
+
119
+ ### 4. Formato de input ineficiente
120
+
121
+ | Input | Costo bruto | Solución |
122
+ |-------|-------------|----------|
123
+ | PDF directo via Read tool | Carga como imagen, ~10× tokens | `pdftotext` o `markitdown` ANTES |
124
+ | Página web dinámica | Playwright + screenshots | `agent-browser` (~82% menos tokens) |
125
+ | Codebase grande (>500 archivos) | Re-lectura completa cada review | `code-review-graph` pip (6.8-49× menos tokens) |
126
+ | Vague prompt | Múltiples turnos para clarificar | Spec prompt: rutas, componentes, I/O, restricciones |
127
+
128
+ ---
129
+
130
+ ## Las 5 session moves
131
+
132
+ ### Move 1 — `/compact` proactivo al 50% o tras cada tarea grande
133
+
134
+ NO esperes al auto-compact. El auto dispara tarde, empuja el contexto
135
+ sobre el threshold y obliga a recargar prefijo.
136
+
137
+ ### Move 2 — `/clear` entre tareas no relacionadas
138
+
139
+ Sesión nueva = prefijo fresco. Si pasas de frontend a backend, abre nueva.
140
+
141
+ ### Move 3 — `/rewind` cuando un turno salió mal
142
+
143
+ Más barato que pelear con contexto contaminado. Especialmente útil tras
144
+ una respuesta del modelo que tomó dirección incorrecta.
145
+
146
+ ### Move 4 — Sub-agentes para trabajo paralelizable o bulk
147
+
148
+ Bloque a copiar en CLAUDE.md del proyecto:
149
+
150
+ ```markdown
151
+ ## Task Delegation
152
+
153
+ Spawn sub-agentes para aislar contexto, paralelizar trabajo
154
+ independiente o procesar tareas bulk-mecánicas. NO spawnear cuando el
155
+ padre necesita el razonamiento, cuando la síntesis requiere mantener
156
+ todo junto, o cuando el spawn overhead domina.
157
+
158
+ Modelo más barato que pueda hacer la subtarea bien:
159
+ - Haiku: bulk mecánico, sin juicio
160
+ - Sonnet: research scoped, exploración de código, síntesis in-scope
161
+ - Opus: subtareas con planning real o tradeoffs
162
+
163
+ Si un sub-agente detecta que necesita un tier más alto que el suyo,
164
+ regresa al padre. El padre es dueño del output final y la síntesis
165
+ cross-spawn.
166
+ ```
167
+
168
+ ### Move 5 — Skills as agents (`agent: true` + `model:`)
169
+
170
+ Patrón Anthropic nativo: agregar `agent: true` y `model:` al frontmatter
171
+ de un SKILL.md y el skill se ejecuta en su propio sub-agente con su
172
+ propio modelo.
173
+
174
+ Ejemplo: skill `tldr-pdf` con `agent: true, model: sonnet`. El padre le
175
+ pasa una ruta de PDF; el skill extrae con `pdftotext`, lee el output,
176
+ devuelve 200 palabras al padre. El PDF completo nunca toca el contexto
177
+ del padre.
178
+
179
+ Útil para: procesamiento de archivos grandes, búsqueda en codebase,
180
+ extracción de bullets de docs largos. Ver detalles en
181
+ `Skill("meta-skills-estandar")` sección "Skills as agents".
182
+
183
+ ---
184
+
185
+ ## Tag files con `@`
186
+
187
+ En lugar de pedirle a Claude que busque, dale la ruta directamente:
188
+ `@ docs/diseno.md ¿qué cambios hace falta para X?` evita tool calls de
189
+ Glob/Grep — es 1 sola lectura.
190
+
191
+ ---
192
+
193
+ ## Route in vs route out
194
+
195
+ ### Route in — modelo del padre en CLAUDE.md
196
+
197
+ Documenta delegación explícita en CLAUDE.md del proyecto. Opus 4.7
198
+ delega menos por defecto que 4.6, hay que pedirlo de forma explícita
199
+ (ver bloque de Task Delegation arriba).
200
+
201
+ ### Route out — usar otro provider
202
+
203
+ Si llegas al límite de Pro/Max/Team pero quieres mantener la interfaz de
204
+ Claude Code:
205
+
206
+ ```jsonc
207
+ // .claude/settings.json
208
+ {
209
+ "env": {
210
+ "ANTHROPIC_BASE_URL": "https://openrouter.ai/api",
211
+ "ANTHROPIC_AUTH_TOKEN": "{API-KEY}",
212
+ "ANTHROPIC_API_KEY": ""
213
+ },
214
+ "model": "z-ai/glm-5.1"
215
+ }
216
+ ```
217
+
218
+ GLM-5.1 ≈ Opus a ~1/12× del costo. Trade-off: cambias de modelo, sí o
219
+ sí pierdes el cache cuando vuelves a Anthropic.
220
+
221
+ ---
222
+
223
+ ## Watch the number — cómo medir
224
+
225
+ | Necesidad | Herramienta |
226
+ |-----------|-------------|
227
+ | Histórico Pro/Max/Team | `/swl:dashboard` (basado en `phuryn/claude-usage`) |
228
+ | Tokens/costo de la sesión actual | `/swl:metricas` |
229
+ | Porcentaje de contexto usado en vivo | `hooks/linea-estado.js` (status bar) |
230
+ | Alertas cuando contexto se llena | `hooks/monitor-contexto.js` (WARNING ≥65%, CRITICAL ≥75%) |
231
+ | Hit rate de cache (API users) | `platform.claude.com/usage/cache` |
232
+
233
+ Sin observar la métrica, no puedes optimizarla.
234
+
235
+ ---
236
+
237
+ ## Carga lean — qué desactivar
238
+
239
+ - MCP servers que no se usan en el proyecto actual.
240
+ - Skills oficiales de Anthropic que no aplican al stack.
241
+ - Tools permitidos: solo los necesarios. Cada tool extra alarga el
242
+ system prompt y reduce el ratio cache hit.
243
+ - Reglas largas en CLAUDE.md → mover a skills (progressive disclosure
244
+ SWL ya lo hace por defecto).
245
+
246
+ ---
247
+
248
+ ## Anti-patrones
249
+
250
+ - **Invocar Claude Code y luego decidir el modelo**: invalida cache.
251
+ - **MCP server "temporal" agregado durante la sesión**: el costo de
252
+ invalidar el prefijo supera lo que el server aporta.
253
+ - **`/effort max` por reflejo**: 2× costo sin mejora observable salvo
254
+ en tareas de razonamiento profundo.
255
+ - **PDFs vía Read sin pre-procesar**: ~10× tokens vs `markitdown`.
256
+ - **Pedir a Claude que busque archivos que ya conoces**: gasta tool
257
+ calls innecesarios. Usa `@ ruta.md`.
258
+ - **No usar `/compact`** y esperar al auto-compact: dispara tarde y caro.
259
+ - **Cambiar de modelo a media sesión**: invalida cache + pierde
260
+ contexto coherente.
261
+
262
+ ---
263
+
264
+ ## Gotchas / Errores comunes no obvios
265
+
266
+ - **`CLAUDE_CODE_DISABLE_1M_CONTEXT=1` aplicado por default a todos los proyectos**: causa truncado de contexto en sesiones que sí requieren 1M (análisis masivo de codebase, refactor cross-module). Causa: tomar la recomendación del artículo como universal. Solución: aplicar SOLO en proyectos donde se observe context bloat real. Para análisis profundos, dejar el default 1M.
267
+ - **Sub-agentes Sonnet/Haiku que delegan al padre Opus pidiendo "más razonamiento"**: el padre acaba haciendo el trabajo que se quería offloadear. Causa: spec del sub-agente vaga. Solución: el padre debe hacer una spec clara con criterios de aceptación; sub-agentes solo escalan si encuentran tradeoff arquitectónico explícito, no por dificultad genérica.
268
+ - **`/clear` mid-session destruye el plan en curso**: usuario pierde el roadmap acumulado. Causa: confundir `/clear` con `/compact`. Solución: `/compact` resume manteniendo conocimiento; `/clear` empieza desde cero. Antes de `/clear`, escribir un handoff a `.planning/COMPACTACION.md` con `/swl:compactar`.
269
+ - **Tag files con `@` apuntando a archivos enormes**: Claude carga el archivo completo en contexto aunque solo necesite una sección. Causa: usar `@` con archivos >500 líneas. Solución: para archivos grandes, citar sección específica en el prompt (`@ src/auth.py líneas 100-150`) o pre-extraer con `Read offset/limit`.
270
+ - **`/effort high` que se queda activo en prompts simples**: el siguiente prompt trivial gasta 2× tokens innecesarios. Causa: el effort se interpreta como "session-wide" cuando es per-prompt. Solución: explícito `/effort medium` (o lo que aplique) en el siguiente prompt si la complejidad bajó.
271
+
272
+ ---
273
+
274
+ ## Integración con SWL
275
+
276
+ Componentes SWL que cubren necesidades de harness: `/swl:compactar`,
277
+ `/swl:checkpoint`, `/swl:dashboard`, `/swl:metricas`, `/swl:modelo`,
278
+ `/swl:contexto`, hooks `linea-estado.js` + `monitor-contexto.js`,
279
+ `/swl:revisar-impacto` (meta-grafo del sistema SWL) y `code-review-graph`
280
+ pip (opt-in para codebase del usuario, ver `MANUAL_USO.md`).
281
+
282
+ Cargar este skill cuando esos componentes no son suficientes y hace falta
283
+ el modelo mental completo del harness.
284
+
285
+ ---
286
+
287
+ ## Checklist antes de iniciar sesión Opus larga
288
+
289
+ - [ ] `.claude/settings.json` con todos los MCP necesarios YA configurados
290
+ - [ ] Modelo elegido y bloqueado (no se cambiará durante la sesión)
291
+ - [ ] Tools permitidos definidos antes de iniciar
292
+ - [ ] `CLAUDE_CODE_DISABLE_1M_CONTEXT` y `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`
293
+ configurados si la sesión es larga sin necesidad de 1M
294
+ - [ ] Plan de delegación claro (qué se manda a sub-agente, qué se mantiene
295
+ en el padre)
296
+ - [ ] PDFs/Office docs pre-procesados con `markitdown`
297
+ - [ ] Para repos grandes: `code-review-graph` instalado y `build` ejecutado
298
+ - [ ] CLAUDE.md del proyecto con bloque de Task Delegation
299
+ - [ ] Saber dónde ver métricas durante la sesión (`/swl:metricas`)