@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,298 @@
1
+ ---
2
+ name: meta-skills-estandar
3
+ description: >
4
+ Referencia extendida del estándar de skills SWL. Complementa la regla
5
+ obligatoria `reglas/skills-estandar.md` con: Response Discipline,
6
+ Anti-substitution Guardrails, campo dual `herramientasPermitidas`/
7
+ `allowed-tools`, nivel de control de instrucciones, reglas detalladas
8
+ para scripts/ y recursos/, y recursos/ con anti-patrones, leyes de diseño,
9
+ idiomas de framework y mapeo a frameworks de seguridad. Cargar cuando se
10
+ esté escribiendo o auditando un SKILL.md y se necesiten patrones avanzados
11
+ que no están en la regla core.
12
+ version: "1.0.0"
13
+ herramientasPermitidas: [Read, Write, Edit]
14
+ exclusiones:
15
+ - "No cargar si solo se necesita el frontmatter obligatorio, el límite de líneas o la estructura de directorio — eso está en la regla core `reglas/skills-estandar.md` que se carga siempre."
16
+ - "No cargar para crear un skill simple de dominio conceptual sin comandos prescritos ni herramientas específicas — las reglas core bastan."
17
+ - "No cargar para consultar el checklist de auditoría, la convención de naming o el proceso de creación — los tres viven en la regla core."
18
+ - "No cargar para skills fuera del dominio seguridad — el mapeo a frameworks (NIST, MITRE) solo aplica al dominio seguridad."
19
+ evolvable: true
20
+ ---
21
+
22
+ # meta-skills-estandar — Referencia extendida del estándar de skills
23
+
24
+ Complementa la regla `reglas/skills-estandar.md` con detalles, ejemplos y
25
+ tablas que no son estrictamente obligatorios para cualquier skill pero sí
26
+ son referencia crítica cuando aplican. Separar este contenido de la regla
27
+ core reduce el costo de contexto por sesión ~7,000 tokens cuando no se
28
+ escriben skills activamente.
29
+
30
+ ## Cuándo cargar
31
+
32
+ - Al escribir un skill nuevo cuya descripción prescribe comandos, snippets
33
+ o verdicts específicos → Response Discipline + Anti-substitution.
34
+ - Al auditar un skill existente contra leyes de diseño de alta señal.
35
+ - Al escribir skills de framework específico (FastAPI, Django, NestJS,
36
+ Spring Boot) que requieren patrones idiomáticos.
37
+ - Al agregar mapeos de seguridad (NIST, MITRE) al frontmatter.
38
+ - Al configurar el campo dual `herramientasPermitidas` / `allowed-tools`.
39
+ - Al migrar skills viejos a nombres de campo en español.
40
+ - Al diagnosticar falsos positivos del evaluador `evaluar-skill`.
41
+
42
+ ## Cuándo NO cargar
43
+
44
+ - Solo se necesita frontmatter obligatorio o estructura de directorio.
45
+ - Se consulta el checklist de auditoría (vive en la regla core).
46
+ - Skill sin comandos prescritos ni herramientas específicas.
47
+ - Skill fuera del dominio seguridad → no necesita mapeo a frameworks.
48
+
49
+ ---
50
+
51
+ ## Nivel de control de instrucciones
52
+
53
+ Calibrar la especificidad de las instrucciones según el costo de error:
54
+
55
+ | Nivel | Cuándo usar | Técnica |
56
+ |-------|-------------|---------|
57
+ | Alto (libertad máxima) | Code review, texto, análisis | Objetivos + restricciones, sin pasos |
58
+ | Medio | Runbooks, deploys | Preferencias explícitas, pasos sugeridos |
59
+ | Bajo (control máximo) | Migraciones BD, operaciones destructivas | Pasos exactos, scripts precisos, sin variación |
60
+
61
+ Skills de nivel bajo DEBEN incluir:
62
+ - Checklist de ejecución progresiva (no solo verificación post-hoc).
63
+ - Sección Known Gotchas con modos de falla concretos.
64
+ - Preferentemente un script en `scripts/` que ejecute la operación determinista.
65
+
66
+ El tono del skill (persona al inicio, si la hay) también es un control:
67
+ establece la rúbrica de juicio del modelo.
68
+
69
+ ---
70
+
71
+ ## Response Discipline (OBLIGATORIO para skills de comando)
72
+
73
+ Aplica a skills cuyo producto principal es un comando, snippet o verdict
74
+ token (ej: `swl-markitdown`, `dbml-experto`, `likec4-experto`). **No aplica**
75
+ a skills de dominio conceptual (patrones, testing, seguridad).
76
+
77
+ ### Reglas
78
+
79
+ 1. **Command-first / snippet-first**. Si el prompt pide `"minimal"`, `"strict"`,
80
+ `"exact"`, `"paste-ready"` o una línea específica: responde con un solo
81
+ comando/snippet/verdict como primera línea, sin preámbulo ni alternativas.
82
+ 2. **Una sola respuesta canónica**. No dar "opción A vs opción B" en prompts
83
+ strict.
84
+ 3. **Primera línea es autoridad**. Si el prompt requiere un token específico
85
+ (`VALIDATE OK`, `npx X`), esa es la primera línea. Explicación después.
86
+ 4. **Prose-only es falla** cuando se pide snippet/comando. Una explicación
87
+ sin el comando exacto es incorrecta aunque el contenido sea acertado.
88
+ 5. **Documentar el patrón** con sección `## Response Discipline` listando qué
89
+ keywords activan respuesta estricta en ese dominio.
90
+
91
+ ### Ejemplo
92
+
93
+ Prompt: *"Minimal command to validate schema.dbml strictly."*
94
+
95
+ MAL: *"Para validar un esquema DBML puedes usar varias opciones..."*
96
+ BIEN: `npx @dbml/cli validate schema.dbml --strict`
97
+
98
+ ---
99
+
100
+ ## Anti-substitution Guardrails (OBLIGATORIO para skills que prescriben herramientas)
101
+
102
+ Las skills que prescriben comandos, flags o APIs DEBEN listar sustituciones
103
+ prohibidas más comunes para prevenir que el LLM invente alternativas plausibles
104
+ pero incorrectas.
105
+
106
+ ### Formato obligatorio
107
+
108
+ ```markdown
109
+ ## Anti-substitution guardrails
110
+
111
+ - Familia <nombre>: usar `<comando-canónico>` (nunca sustituir con
112
+ `<alternativa-plausible-1>`, `<alternativa-plausible-2>`).
113
+ - Flag de <propósito>: usar `--<flag-canónico>` (nunca `--<flag-parecido>`).
114
+ - API de <propósito>: usar `<método.canónico>` (nunca `<método.parecido>`).
115
+ ```
116
+
117
+ ### Criterios para incluir una entrada
118
+
119
+ Una sustitución se lista solo si **TODAS** son verdaderas:
120
+
121
+ - La alternativa es plausible (existe, funciona para algo).
122
+ - La alternativa es incorrecta en el contexto específico de la skill.
123
+ - Un LLM sin la guardrail la produciría con probabilidad >5%.
124
+
125
+ No listar sustituciones obvias (`cd` vs `ls`) ni imposibles (`curl` vs `cat`).
126
+
127
+ ### Ejemplo — skill `/swl:cron`
128
+
129
+ ```markdown
130
+ ## Anti-substitution guardrails
131
+
132
+ - Schedule recurrente: usar `every 2h` (nunca `@every 2h`, `*/2 * * * *`
133
+ cuando el usuario pidió "cada 2 horas" sin constraints específicos).
134
+ - Crear job: usar subcomando `add` (nunca `create`, `new`, `register`).
135
+ - Eliminar job: usar `remove <id>` (nunca `delete`, `rm`, `drop`).
136
+ ```
137
+
138
+ ---
139
+
140
+ ## Reglas detalladas para `scripts/`
141
+
142
+ **Cuándo crear un script**: la lógica es determinista, costosa de regenerar,
143
+ no requiere razonamiento contextual y se reutiliza ≥2 veces por sesión.
144
+
145
+ **Cuándo NO crearlo**: la lógica cambia por proyecto, necesita acceso runtime
146
+ a sistema, es simple (<5 líneas), o no se reutilizaría.
147
+
148
+ **Detección empírica**: ejecutar el skill en 3 casos de uso. Si el modelo
149
+ regeneró el mismo helper 2+ veces independientemente, ese helper es candidato
150
+ a `scripts/`.
151
+
152
+ **Referencia desde SKILL.md**:
153
+
154
+ ```markdown
155
+ `python scripts/validar-frontmatter.py ruta/al/SKILL.md`
156
+ ```
157
+
158
+ Los scripts NUNCA entran en contexto automáticamente. Claude los ejecuta vía
159
+ bash y procesa solo el output. Los scripts deben:
160
+
161
+ - Imprimir resultados claros en stdout.
162
+ - Usar exit codes estándar (0 = éxito, 1 = error).
163
+ - Documentar su uso en las primeras 5 líneas.
164
+
165
+ ---
166
+
167
+ ## Reglas detalladas para `recursos/`
168
+
169
+ **Cuándo crear un recurso**: plantilla reutilizable, ejemplo de código completo,
170
+ esquema de referencia, documentación extendida que no cabe en SKILL.md, o
171
+ lista de referencia extensa.
172
+
173
+ **Referencia desde SKILL.md**:
174
+
175
+ ```markdown
176
+ Usar la plantilla en [recursos/claude-md-template.md](recursos/claude-md-template.md)
177
+ ```
178
+
179
+ Los paths SIEMPRE son relativos al directorio de la skill.
180
+
181
+ **ToC obligatoria si supera 200 líneas**: incluir tabla de contenido al inicio
182
+ para que lecturas truncadas sigan siendo útiles:
183
+
184
+ ```markdown
185
+ ## Contenido
186
+
187
+ - [Sección A](#sección-a)
188
+ - [Sección B](#sección-b)
189
+ ```
190
+
191
+ ---
192
+
193
+ ## Campo dual: `herramientasPermitidas` y `allowed-tools`
194
+
195
+ **Principio de 3 capas**: `herramientasPermitidas` es el campo autoritativo del
196
+ sistema SWL (español). `allowed-tools` es el campo del protocolo Anthropic que
197
+ Claude Code lee (inglés, no negociable). Ambos coexisten con la misma semántica.
198
+
199
+ ### Cuándo usar cada campo
200
+
201
+ - **Skills propios de swl-ses**: declarar solo `herramientasPermitidas`.
202
+ - **Skills exportados fuera de swl-ses** (paquetes Anthropic-compatibles):
203
+ declarar también `allowed-tools` explícitamente.
204
+
205
+ ### Ejemplo
206
+
207
+ ```yaml
208
+ ---
209
+ name: mi-skill-analisis
210
+ description: >
211
+ Analiza estructura de código. Cargar al revisar código antes de merge.
212
+ herramientasPermitidas: [Read, Grep, Glob]
213
+ # Solo agregar allowed-tools si se distribuye fuera de swl-ses:
214
+ # allowed-tools: [Read, Grep, Glob]
215
+ ---
216
+ ```
217
+
218
+ **Validación cruzada**: si ambos están presentes deben tener el mismo contenido.
219
+ El evaluador `evaluar-skill` emite W011 si divergen.
220
+
221
+ ### Aclaración crítica: pre-aprobación vs restricción real
222
+
223
+ Ambos campos son **pre-aprobación de UX**, NO restricción de seguridad real.
224
+ Las restricciones reales provienen de permission rules en `.claude/settings.json`
225
+ y matchers en hooks PreToolUse.
226
+
227
+ ---
228
+
229
+ ## Skills as agents pattern (variant técnico avanzado)
230
+
231
+ Patrón Anthropic nativo: `agent: true` + `model:` en el frontmatter ejecuta
232
+ el skill como sub-agente independiente, aislado del contexto del padre.
233
+ Aplica cuando el skill consume input grande y devuelve output acotado;
234
+ NO aplica para skills passive (reglas, knowledge). Detalles completos
235
+ (cuándo usarlo, ejemplo de skill, reglas del frontmatter, candidatos SWL)
236
+ en [recursos/skills-as-agents.md](recursos/skills-as-agents.md).
237
+
238
+ ---
239
+
240
+ ## Relación con otros componentes del sistema
241
+
242
+ | Componente | Relación con skills |
243
+ |-----------|-------------------|
244
+ | Agentes SWL | Invocan skills con `Skill("nombre")` antes de implementar |
245
+ | Comandos `/swl:*` | Pueden invocar skills para guiar su comportamiento |
246
+ | Reglas en `reglas/` | Las reglas aplican a código/proceso; los skills a conocimiento de dominio |
247
+ | Hooks | Los hooks no invocan skills — trabajan a nivel de herramientas |
248
+ | CLAUDE.md | Registra el inventario de skills disponibles |
249
+
250
+ ---
251
+
252
+ ## Contenido extendido (cargar bajo demanda)
253
+
254
+ Los siguientes bloques viven en `recursos/` y se consultan cuando se necesite
255
+ el contenido específico, sin inflar el contexto con cada invocación:
256
+
257
+ - **Anti-patrones al crear skills + leyes de diseño de alta señal** —
258
+ 6 anti-patrones y 6 leyes con ejemplos MAL/BIEN completos. Ver
259
+ [recursos/anti-patrones-y-leyes.md](recursos/anti-patrones-y-leyes.md).
260
+ - **Principio de idiomas de framework** — tabla para Django, FastAPI, NestJS,
261
+ Spring Boot, Laravel, Rails, Go, Rust con anti-patrón de código. Ver
262
+ [recursos/idiomas-framework.md](recursos/idiomas-framework.md).
263
+ - **Mapeo a frameworks de seguridad (NIST CSF, NIST AI RMF, MITRE ATT&CK/ATLAS/
264
+ D3FEND)** + **migración a nombres de campo en español (REC-S15)**. Ver
265
+ [recursos/frameworks-seguridad.md](recursos/frameworks-seguridad.md).
266
+
267
+ Cada recurso tiene ToC al inicio y es autocontenido — leer solo el relevante
268
+ al caso en cuestión en lugar de los tres.
269
+
270
+ ---
271
+
272
+ ## Gotchas / Errores comunes no obvios
273
+
274
+ - **Confundir Response Discipline con skills de dominio conceptual**: aplicar
275
+ el patrón "command-first" a un skill de patrones de diseño produce respuestas
276
+ truncadas sin contexto. Response Discipline SOLO aplica a skills que
277
+ prescriben comandos, snippets o tokens específicos.
278
+ - **Escribir Anti-substitution sin criterio de plausibilidad**: listar
279
+ sustituciones imposibles o obvias diluye la señal. Aplicar los 3 criterios
280
+ (plausible + incorrecta + prob >5%) antes de listar una entrada.
281
+ - **Mapear skills no-seguridad a frameworks NIST/MITRE**: genera ruido en
282
+ reportes de cobertura. Reservar el mapeo para el dominio seguridad.
283
+ - **Copiar ambos campos (`herramientasPermitidas` y `allowed-tools`) en skills
284
+ internos**: genera duplicación de mantenimiento. Solo el campo español es
285
+ autoritativo en swl-ses; la copia en inglés se hace al exportar.
286
+ - **Documentar idioma de framework en skills transversales**: un skill de
287
+ `compactacion-contexto` no debe usar `@Transactional` como ejemplo. El
288
+ principio aplica solo cuando la skill cubre UN framework específico.
289
+ - **Cargar este skill cuando la regla core basta**: esto invierte el trade-off
290
+ de context budget. Cargar `meta-skills-estandar` solo cuando se necesita
291
+ contenido extendido, no por defecto.
292
+
293
+ ## Referencias
294
+
295
+ - Regla core (se carga siempre): `reglas/skills-estandar.md`.
296
+ - Evaluador de skills: `comandos/swl/evaluar-skill.md` (usa W009, W010, W011).
297
+ - Schema: `schemas/skill-frontmatter.schema.json`.
298
+ - Normalizador de campos legacy: `scripts/lib/skill-normalizer.js`.
@@ -0,0 +1,205 @@
1
+ # Anti-patrones y leyes de diseño de skills
2
+
3
+ Complemento a `SKILL.md` de `meta-skills-estandar`. Contiene ejemplos MAL/BIEN
4
+ detallados para cada anti-patrón y ley. Referenciado desde el skill principal.
5
+
6
+ ## Contenido
7
+
8
+ - [Anti-patrón 1: description pasiva](#anti-patrón-1-description-que-solo-describe-no-activa)
9
+ - [Anti-patrón 2: SKILL.md como dump](#anti-patrón-2-skillmd-como-dump-de-documentación)
10
+ - [Anti-patrón 3: scripts embebidos](#anti-patrón-3-scripts-dentro-de-skillmd)
11
+ - [Anti-patrón 4: paths absolutos](#anti-patrón-4-paths-absolutos-que-rompen-portabilidad)
12
+ - [Anti-patrón 5: skill con 1-2 reglas](#anti-patrón-5-skill-con-solo-1-2-reglas)
13
+ - [Anti-patrón 6: directivas sin justificación](#anti-patrón-6-directivas-sin-justificación)
14
+ - [Ley 1: description como trigger](#ley-1-la-description-es-un-trigger-no-un-resumen)
15
+ - [Ley 2: Gotchas como mayor señal](#ley-2-la-sección-gotchas-es-el-contenido-de-mayor-señal)
16
+ - [Ley 3: no declarar lo obvio](#ley-3-no-declarar-lo-obvio)
17
+ - [Ley 4: objetivos + restricciones](#ley-4-dar-objetivos-y-restricciones-no-pasos)
18
+ - [Ley 5: CLAUDE_PLUGIN_DATA](#ley-5-usar-claude_plugin_data-para-datos-persistentes-entre-sesiones)
19
+ - [Ley 6: hooks bajo demanda](#ley-6-hooks-bajo-demanda-no-permanentes)
20
+
21
+ ---
22
+
23
+ ## Anti-patrones comunes al crear skills
24
+
25
+ ### Anti-patrón 1: Description que solo describe, no activa
26
+
27
+ ```yaml
28
+ # MAL — solo describe, no dice cuándo usar
29
+ description: Skill sobre autenticación con JWT y manejo de tokens en APIs.
30
+
31
+ # BIEN — dice qué hace y cuándo cargar
32
+ description: >
33
+ Patrones de autenticación JWT para APIs FastAPI: generación, validación,
34
+ refresh tokens y revocación. Cargar cuando se implementen endpoints de
35
+ login/logout, middleware de autenticación o manejo de sesiones con tokens.
36
+ ```
37
+
38
+ ### Anti-patrón 2: SKILL.md como dump de documentación
39
+
40
+ Un SKILL.md que lista 200 endpoints de una API externa no es una skill, es
41
+ una copia de documentación. Las skills contienen instrucciones de comportamiento,
42
+ no documentación raw. La documentación raw va en `recursos/`.
43
+
44
+ ### Anti-patrón 3: Scripts dentro de SKILL.md
45
+
46
+ ```markdown
47
+ # MAL — script embebido en SKILL.md (satura el contexto)
48
+ ## Script de validación
49
+ ```python
50
+ #!/usr/bin/env python3
51
+ # ... 80 líneas de código ...
52
+ ```
53
+
54
+ # BIEN — referencia al script externo
55
+ Para validar el frontmatter antes de guardar:
56
+ `python scripts/validar-frontmatter.py archivo.md`
57
+ ```
58
+
59
+ ### Anti-patrón 4: Paths absolutos que rompen portabilidad
60
+
61
+ ```markdown
62
+ # MAL
63
+ Ver la referencia en D:\Python\mi-proyecto\habilidades\mi-skill\recursos\ref.md
64
+
65
+ # BIEN
66
+ Ver la referencia en [recursos/ref.md](recursos/ref.md)
67
+ ```
68
+
69
+ ### Anti-patrón 5: Skill con solo 1-2 reglas
70
+
71
+ Una skill con menos de 3 reglas concretas no justifica un directorio separado.
72
+ Agregar ese conocimiento al skill más cercano en dominio.
73
+
74
+ ### Anti-patrón 6: Directivas sin justificación
75
+
76
+ Las directivas en mayúsculas (MUST, NEVER, ALWAYS, NUNCA, SIEMPRE) sin
77
+ justificación son obedecidas pero no generalizables — el modelo sigue la regla
78
+ en el caso exacto documentado, pero no puede aplicar el principio a variantes
79
+ no anticipadas.
80
+
81
+ ```markdown
82
+ # MAL — directiva sin justificación
83
+ NUNCA usar `lazy="select"` en SQLAlchemy async.
84
+
85
+ # BIEN — directiva con justificación
86
+ NUNCA usar `lazy="select"` en SQLAlchemy async — lanza MissingGreenlet
87
+ en contexto async sin aviso claro porque el ORM intenta resolver la
88
+ relación fuera de la sesión activa.
89
+ ```
90
+
91
+ **Regla**: toda directiva absoluta DEBE incluir en la misma línea o en la
92
+ siguiente una frase que comience con "porque", "ya que", "para evitar",
93
+ "si no". Si no cabe en una línea, usar formato de lista:
94
+
95
+ ```markdown
96
+ NUNCA usar `pickle.loads()` con datos externos.
97
+ — Razón: permite ejecución arbitraria de código; los datos externos no son
98
+ de confianza por definición. Usar `json.loads()` con schema validado.
99
+ ```
100
+
101
+ El evaluador `evaluar-skill` detecta ausencia de justificaciones con W009
102
+ (-8 en `output_quality`).
103
+
104
+ ---
105
+
106
+ ## Leyes de diseño de skills de alta señal
107
+
108
+ ### Ley 1: La description es un TRIGGER, no un resumen
109
+
110
+ La description es la señal que el modelo usa para decidir si debe cargar la
111
+ skill. Redactar como condición de activación:
112
+
113
+ ```yaml
114
+ # MAL — resumen pasivo
115
+ description: Conocimiento sobre caching en aplicaciones web.
116
+
117
+ # BIEN — trigger con situaciones concretas
118
+ description: >
119
+ Estrategias de caching (Redis, CDN, HTTP cache, in-memory) para APIs REST.
120
+ Cargar cuando el tiempo de respuesta de un endpoint supere 200ms, cuando se
121
+ diseñe invalidación de caché, o cuando se configure un CDN.
122
+ ```
123
+
124
+ ### Ley 2: La sección Gotchas es el contenido de mayor señal
125
+
126
+ Los errores no obvios que un desarrollador experimentado comete son el contenido
127
+ más valioso de una skill. Toda skill de implementación DEBE incluir `## Gotchas`
128
+ o `## Errores comunes no obvios`:
129
+
130
+ ```markdown
131
+ ## Gotchas
132
+
133
+ - `selectinload` en SQLAlchemy async es OBLIGATORIO — `lazy="select"` lanza
134
+ `MissingGreenlet` en contexto async sin aviso claro
135
+ - `Depends()` en FastAPI crea UNA instancia por request — no es singleton
136
+ - `response_model` valida la SALIDA, no la entrada — usar `Body()` para input
137
+ ```
138
+
139
+ Si la skill no tiene gotchas documentados, probablemente no aporta valor
140
+ diferencial sobre lo que el modelo ya sabe.
141
+
142
+ ### Ley 3: No declarar lo obvio
143
+
144
+ El modelo ya sabe qué es React, FastAPI o cómo funciona un for loop. Una skill
145
+ que repite conocimiento general del training data desperdicia tokens. El
146
+ contenido de una skill debe ser:
147
+
148
+ - Lo que el modelo hace **mal** sin la skill (gotchas, anti-patrones).
149
+ - Lo que el modelo **no sabe** por ser reciente o específico del proyecto.
150
+ - Las **decisiones de diseño** que el equipo ya tomó (no re-evaluar cada vez).
151
+
152
+ ### Ley 4: Dar objetivos y restricciones, no pasos
153
+
154
+ El modelo razona mejor cuando recibe QUÉ lograr y QUÉ evitar, no una lista
155
+ de pasos. Los pasos rígidos fallan cuando el contexto cambia:
156
+
157
+ ```markdown
158
+ # MAL — pasos rígidos
159
+ 1. Crear archivo en src/api/
160
+ 2. Importar FastAPI
161
+ 3. Definir router
162
+ 4. Agregar endpoint GET
163
+
164
+ # BIEN — objetivo + restricciones
165
+ ## Objetivo
166
+ Implementar endpoints CRUD que cumplan el contrato OpenAPI del proyecto.
167
+
168
+ ## Restricciones
169
+ - Usar `APIRouter` con prefix y tags (no montar en app directamente)
170
+ - Validación de input con Pydantic v2 `model_validator`
171
+ - Responses tipadas con `response_model` para auto-documentación
172
+ - Tests de integración con httpx antes de marcar como completado
173
+ ```
174
+
175
+ ### Ley 5: Usar `${CLAUDE_PLUGIN_DATA}` para datos persistentes entre sesiones
176
+
177
+ Cuando una skill necesita recordar estado entre sesiones (métricas acumuladas,
178
+ configuración del usuario, caché de resultados), usar el directorio de datos
179
+ persistentes del plugin en lugar de paths hardcodeados:
180
+
181
+ ```markdown
182
+ Guardar métricas acumuladas en `${CLAUDE_PLUGIN_DATA}/metricas.json`.
183
+ Este directorio persiste entre sesiones y es exclusivo de esta skill.
184
+ ```
185
+
186
+ No usar `.planning/` ni directorios del proyecto para datos internos de la skill.
187
+
188
+ ### Ley 6: Hooks bajo demanda, no permanentes
189
+
190
+ Si una skill necesita comportamiento event-driven, definir el hook en el
191
+ frontmatter con `hooks` en lugar de registrarlo en `settings.json`:
192
+
193
+ ```yaml
194
+ ---
195
+ name: mi-skill
196
+ hooks:
197
+ PostToolUse:
198
+ - matcher: "Write"
199
+ command: "node ${CLAUDE_SKILL_DIR}/scripts/validar.js"
200
+ ---
201
+ ```
202
+
203
+ Ventaja: el hook no consume recursos cuando la skill no está activa. Reservar
204
+ `settings.json` para hooks que SIEMPRE deben ejecutarse (seguridad global,
205
+ auditoría, formateo).
@@ -0,0 +1,107 @@
1
+ # Mapeo a frameworks de seguridad (REC-C01)
2
+
3
+ Complemento a `SKILL.md` de `meta-skills-estandar`. Aplicable SOLO a skills
4
+ del dominio seguridad.
5
+
6
+ ---
7
+
8
+ Skills del dominio de seguridad pueden declarar mapeos opcionales a cinco
9
+ frameworks estándar en el frontmatter. El propósito es enriquecer reportes
10
+ (`/swl:salud`, `/swl:dashboard`) con cobertura de control y alinear el sistema
11
+ con vocabulario de la industria. **No es evolución — es metadata aditiva que
12
+ no cambia comportamiento.**
13
+
14
+ ## Campos disponibles (todos opcionales, todos propios SWL en español)
15
+
16
+ | Campo | Framework | Formato | Ejemplo |
17
+ |-------|-----------|---------|---------|
18
+ | `nist_csf` | NIST CSF 2.0 | `GV\|ID\|PR\|DE\|RS\|RC.XX[-NN]` | `[GV.SC-07, PR.PS-01]` |
19
+ | `nist_ai_rmf` | NIST AI RMF 1.0 | `GOVERN\|MAP\|MEASURE\|MANAGE-N.N` | `[GOVERN-1.1, MEASURE-2.5]` |
20
+ | `atlas_techniques` | MITRE ATLAS v5.4 | `AML.TNNNN[.NNN]` | `[AML.T0051, AML.T0080]` |
21
+ | `attack_techniques` | MITRE ATT&CK v18 | `TNNNN[.NNN]` | `[T1190, T1552]` |
22
+ | `d3fend_techniques` | MITRE D3FEND v1.3 | `D3-XXX` | `[D3-MFA, D3-NTA]` |
23
+
24
+ ## Cuándo declarar cada framework
25
+
26
+ - **NIST CSF 2.0**: skills que cubren controles organizacionales o funciones
27
+ (GOVERN, IDENTIFY, PROTECT, DETECT, RESPOND, RECOVER). Aplicable a casi
28
+ cualquier skill de seguridad.
29
+ - **NIST AI RMF 1.0**: skills específicas de sistemas agénticos o IA. Todos
30
+ los skills de seguridad del sistema SWL (que ES agéntico) deberían declararlo.
31
+ - **MITRE ATLAS v5.4**: skills que defienden contra amenazas adversarias sobre
32
+ modelos o pipelines LLM (prompt injection, context poisoning, jailbreak).
33
+ - **MITRE ATT&CK v18**: skills de defensa contra TTPs de atacantes en la
34
+ infraestructura desplegada (no en el código). Más útil para operaciones
35
+ que para SDLC, pero aplicable a skills que documentan detección en logs.
36
+ - **MITRE D3FEND v1.3**: contramedidas defensivas específicas. Útil para
37
+ autenticación (D3-MFA), rotación de credenciales (D3-CR), análisis de
38
+ tráfico (D3-NTA).
39
+
40
+ ## Ejemplo de uso en frontmatter
41
+
42
+ ```yaml
43
+ ---
44
+ name: checklist-seguridad
45
+ description: ...
46
+ version: "1.0.0"
47
+ nist_csf: [PR.PS-01, PR.DS-02, PR.DS-10, DE.CM-09, RS.MI-01]
48
+ attack_techniques: [T1190, T1059, T1556]
49
+ ---
50
+ ```
51
+
52
+ ## Qué NO hacer
53
+
54
+ - **No inventar mapeos**: verificar cada ID en la fuente oficial del framework
55
+ antes de declararlo. Un mapeo incorrecto es peor que ausencia de mapeo.
56
+ - **No saturar**: 3-6 entradas por framework son suficientes. Listar 20
57
+ controles diluye la señal.
58
+ - **No mezclar capas**: un skill de SDLC no debe mapear a tácticas ofensivas
59
+ fuera de contexto (T1059 Command Execution en un skill de revisión de código
60
+ es válido porque describe el vector defendido; T1021 Remote Services no es
61
+ apropiado para un skill que nunca toca red).
62
+ - **No mapear skills que no son de seguridad**: el mapeo es para el dominio
63
+ seguridad, no para todos los skills.
64
+
65
+ ## Auditoría de cobertura
66
+
67
+ El script `scripts/auditar-cobertura-frameworks.js` reporta cobertura agregada
68
+ del sistema por framework. Ver `comandos/swl/salud.md` para el paso opt-in que
69
+ expone el reporte con `SWL_AUDIT_FRAMEWORKS=1`.
70
+
71
+ ## Referencias a fuentes oficiales
72
+
73
+ - NIST Cybersecurity Framework 2.0: https://www.nist.gov/cyberframework
74
+ - NIST AI Risk Management Framework: https://airc.nist.gov/AI_RMF
75
+ - MITRE ATT&CK: https://attack.mitre.org
76
+ - MITRE ATLAS: https://atlas.mitre.org
77
+ - MITRE D3FEND: https://d3fend.mitre.org
78
+
79
+ ---
80
+
81
+ ## Migración a nombres propios en español (REC-S15)
82
+
83
+ Los campos `provenance`, `targets`, `evolvable`, `evolvable_scope` del schema
84
+ de skills están en transición a sus equivalentes en español: `procedencia`,
85
+ `destinos`, `evolucionable`, `evolucionable_alcance`.
86
+
87
+ **Nuevos skills**: usar solo los nombres en español (propios de SWL). El módulo
88
+ `scripts/lib/skill-normalizer.js` promueve el campo en inglés si solo ese está
89
+ presente (fallback no-breaking).
90
+
91
+ **Skills existentes**: sin cambio obligatorio. El validador emite W010 (-2 en
92
+ `robustness`) como señal de migración pendiente, no como error bloqueante. Tras
93
+ 2 releases con coexistencia, los campos en inglés se marcarán deprecated.
94
+
95
+ **Validación cruzada**: si ambos campos están presentes deben coincidir en
96
+ valor. La divergencia entre `targets` y `destinos` (o cualquier par) emite
97
+ W010 ALIAS_DIVERGENTE.
98
+
99
+ **Campos excluidos de migración** (permanecen en inglés por contrato con el
100
+ protocolo Anthropic):
101
+
102
+ - `name`, `description`, `user-invocable`, `allowed-tools`, `when_to_use`,
103
+ `disable-model-invocation`.
104
+
105
+ **Herramienta de detección**: `scripts/lib/skill-normalizer.js` expone
106
+ `detectarUsoLegacy()` y `detectarDivergencias()` — usados por el validador
107
+ `/swl:evaluar-skill` en el Paso 1.3.
@@ -0,0 +1,60 @@
1
+ # Principio de idiomas de framework
2
+
3
+ Complemento a `SKILL.md` de `meta-skills-estandar`. Tabla extensa por framework
4
+ y anti-patrón de código a detectar. Referenciado desde el skill principal.
5
+
6
+ ---
7
+
8
+ ## Regla
9
+
10
+ > Las convenciones del framework toman **precedencia** sobre la consistencia
11
+ > cross-proyecto. Si el framework provee un mecanismo oficial para resolver un
12
+ > problema, ese mecanismo ES la solución correcta — no una alternativa genérica.
13
+
14
+ ## Ejemplos por framework
15
+
16
+ | Framework | Patrón idiomático correcto | Anti-patrón genérico a evitar |
17
+ |-----------|---------------------------|-------------------------------|
18
+ | **Django** | Middleware global de errores, signals para side effects, `select_related`/`prefetch_related` | Try/except en cada vista, queries N+1, actualizaciones manuales de estado |
19
+ | **FastAPI** | `Annotated` + `Depends` para DI, `selectinload` explícito en async, `lifespan` para startup/shutdown | Parámetros manuales de DI, lazy loading en contexto async (MissingGreenlet) |
20
+ | **NestJS** | Constructor injection con `@Injectable()`, DTOs con `class-validator`, `@Module` para encapsulación | Field injection con `@Autowired`, validación manual de inputs |
21
+ | **Spring Boot** | `@Transactional` de Spring, constructor injection con `@RequiredArgsConstructor`, `@Transactional(readOnly=true)` para lecturas | Field injection, manejo manual de transacciones, SQL raw sin justificación |
22
+ | **Laravel** | Eager loading con `->with()`, API Resources para transformación, Jobs para operaciones largas | N+1 con Eloquent, lógica de negocio en controladores, sync para operaciones costosas |
23
+ | **Rails** | `includes`/`eager_load` para N+1, service objects para lógica compleja, `strong_parameters` para inputs | Lazy loading no controlado, lógica en controladores, params sin filtrar |
24
+ | **Go** | `context.Context` para cancellation, error wrapping con `fmt.Errorf("...: %w", err)`, `sync.WaitGroup` para concurrencia | Panics para errores de negocio, goroutines sin control de lifecycle |
25
+ | **Rust** | `?` operator para propagación de errores, `Arc<Mutex<T>>` para estado compartido, `thiserror` para error types | Panics en código de biblioteca, `unwrap()` en producción, `clone()` innecesario |
26
+
27
+ ## Cómo aplicar al escribir o revisar una skill
28
+
29
+ 1. **Identificar el mecanismo oficial** del framework para el problema.
30
+ 2. **Verificar** que el ejemplo de código en la skill usa ese mecanismo.
31
+ 3. **Marcar como anti-patrón** cualquier alternativa genérica que ignore el
32
+ mecanismo del framework.
33
+ 4. **Documentar el "por qué"**: explicar qué errores específicos evita.
34
+
35
+ ## Anti-patrón a detectar
36
+
37
+ ```markdown
38
+ # MAL — skill que describe patrones genéricos
39
+ ## Manejo de errores
40
+ try:
41
+ resultado = operacion()
42
+ except Exception as e:
43
+ logging.error(e)
44
+ raise
45
+
46
+ # BIEN — skill que usa el idioma de Django
47
+ ## Manejo de errores (Django)
48
+ # Usar el middleware global de Django para errores inesperados:
49
+ # MIDDLEWARE = ['django.middleware.common.CommonMiddleware', ...]
50
+ # Para errores esperados, usar excepciones específicas de DRF:
51
+ raise ValidationError({"campo": "El valor no es válido"})
52
+ # DRF las convierte automáticamente en respuestas 400 con formato estándar
53
+ ```
54
+
55
+ ## Gotcha: aplicar solo cuando el skill cubre UN framework
56
+
57
+ Un skill transversal (p.ej. `compactacion-contexto`) NO debe usar ejemplos
58
+ de framework específico. El principio aplica únicamente cuando la skill
59
+ cubre un solo framework y tiene como propósito documentar patrones
60
+ idiomáticos de ese framework.