@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,199 @@
1
+ ---
2
+ name: diseno-herramientas-agente
3
+ description: >
4
+ Principios de diseno de herramientas (tools) para agentes de IA: Principio de
5
+ Consolidacion, reduccion arquitectonica, limite 10-20 tools por coleccion,
6
+ description como prompt engineering, naming MCP y diseno de mensajes de error.
7
+ Cargar cuando se disenan tools para agentes, se configura MCP, se definen
8
+ toolBudget en agentes SWL, o se evalua la coleccion de herramientas de un agente.
9
+ herramientasPermitidas: [Read, Grep]
10
+ exclusiones:
11
+ - "No cargar para implementar el hook que ejecuta los tools — este skill diseña la interfaz, no el handler; para implementar PreToolUse o PostToolUse cargar `hooks` o el agente correspondiente."
12
+ - "No cargar para evaluar si un agente específico cumple su SLA — eso es `evaluacion-agentes`; este skill cubre diseño de colecciones de tools, no rendimiento de agentes."
13
+ - "No cargar cuando el cambio es solo actualizar la descripción de una tool existente sin rediseñar la colección — el costo de carga no compensa para un fix de texto de una línea."
14
+ - "No cargar para configurar permisos de red o escritura en frontmatter de agentes — eso cae bajo `seguridad-agentes` y `estructura-proyecto-claude`."
15
+ evolvable: true # default para skill estandar
16
+ ---
17
+ # Diseno de Herramientas para Agentes
18
+
19
+ ## Cuando cargar
20
+
21
+ - Al disenar o revisar tools para agentes de IA (MCP servers, function calling)
22
+ - Al configurar `toolBudget` o `tools` en frontmatter de agentes SWL
23
+ - Al evaluar si un agente tiene demasiadas o muy pocas herramientas
24
+ - Al escribir descripciones de herramientas para consumo de LLMs
25
+ - Al disenar mensajes de error que un agente pueda interpretar
26
+
27
+ ---
28
+
29
+ ## Principio de Consolidacion
30
+
31
+ > Cuando multiples herramientas se solapan en funcionalidad, consolidar en una
32
+ > sola herramienta con parametros que controlan el comportamiento.
33
+
34
+ El exceso de herramientas similares degrada el rendimiento del agente porque:
35
+ - Aumenta el espacio de decision en cada turno
36
+ - Genera confuision sobre cuial herramienta usar para queii
37
+ - Consume tokens de contexto en las descripciones de cada tool
38
+
39
+ ### Reduccion arquitectonica
40
+
41
+ Preferir la coleccion MINIMA de herramientas que cubra todos los casos de uso.
42
+ Si una herramienta puede hacer lo que dos hacen por separado con un parametro
43
+ adicional, consolidar.
44
+
45
+ ```
46
+ MAL (3 tools solapadas):
47
+ - search_files_by_name
48
+ - search_files_by_content
49
+ - search_files_by_pattern
50
+
51
+ BIEN (1 tool con parametro):
52
+ - search_files(query, mode: "name" | "content" | "pattern")
53
+ ```
54
+
55
+ ### Limite de herramientas por coleccion
56
+
57
+ | Tamano de coleccion | Evaluacion |
58
+ |---------------------|------------|
59
+ | **1-10 tools** | Optimo. El agente puede razonar sobre todas sin confusion |
60
+ | **10-20 tools** | Aceptable. Documentar agrupacion logica para orientar al agente |
61
+ | **20-30 tools** | Riesgoso. Considerar dividir en sub-agentes especializados |
62
+ | **30+ tools** | Problematico. El agente perdera tiempo eligiendo y cometera errores |
63
+
64
+ En SWL, el `toolBudget` del frontmatter de agentes controla cuantos tool calls
65
+ puede hacer un agente por tarea (simple/standard/complex). El diseno de herramientas
66
+ complementa esto: menos herramientas mejor disenadas = menos calls necesarios.
67
+
68
+ ---
69
+
70
+ ## Description como prompt engineering
71
+
72
+ La `description` de una herramienta es un prompt para el LLM. No es documentacion
73
+ para humanos. Disenarla como instruccion de activacion:
74
+
75
+ ### Estructura de una description efectiva
76
+
77
+ ```
78
+ [QUE hace en 1 oracion]
79
+ [CUANDO usarla — condiciones de activacion]
80
+ [CUANDO NO usarla — desambiguacion con herramientas similares]
81
+ [RESTRICCIONES criticas si las hay]
82
+ ```
83
+
84
+ ### Ejemplo concreto
85
+
86
+ ```
87
+ MAL:
88
+ description: "Lee un archivo del sistema de archivos."
89
+
90
+ BIEN:
91
+ description: "Lee el contenido de un archivo por su ruta absoluta.
92
+ Usar para archivos de texto, codigo fuente, JSON, YAML y Markdown.
93
+ Para archivos binarios (imagenes, PDFs) usar read_binary en su lugar.
94
+ Limite: 2000 lineas por defecto; usar offset/limit para archivos grandes."
95
+ ```
96
+
97
+ ### Regla de los 100 tokens
98
+
99
+ La description de una herramienta debe tener entre 50 y 100 tokens. Menos de 50
100
+ no da suficiente contexto de activacion. Mas de 100 consume contexto sin beneficio
101
+ proporcional.
102
+
103
+ ---
104
+
105
+ ## Naming de herramientas MCP
106
+
107
+ Para servidores MCP, el nombre de la herramienta sigue el patron:
108
+ `ServerName:tool_name`
109
+
110
+ Reglas de naming:
111
+ - `tool_name` en snake_case (no kebab-case, no camelCase)
112
+ - Verbo + sustantivo: `search_files`, `create_issue`, `read_document`
113
+ - Sin prefijos redundantes: `github:github_create_issue` es redundante;
114
+ usar `github:create_issue`
115
+ - Maximo 64 caracteres para el nombre completo
116
+
117
+ ---
118
+
119
+ ## Diseno de mensajes de error para agentes
120
+
121
+ Los mensajes de error de las herramientas son INSTRUCCIONES para el agente sobre
122
+ como recuperarse. No son mensajes para humanos.
123
+
124
+ ### Estructura de un error accionable
125
+
126
+ ```json
127
+ {
128
+ "error": "ARCHIVO_NO_ENCONTRADO",
129
+ "message": "El archivo src/main.py no existe",
130
+ "recovery": "Verificar la ruta con search_files antes de intentar leer.
131
+ Rutas similares encontradas: src/app/main.py, src/core/main.py"
132
+ }
133
+ ```
134
+
135
+ ### Principios
136
+
137
+ 1. **Incluir sugerencia de recovery**: El agente necesita saber queii hacer despues
138
+ 2. **Ofrecer alternativas**: Si la accion fallo, sugerir acciones correctivas concretas
139
+ 3. **No exponer internals**: Stack traces no ayudan al agente; acciones si
140
+ 4. **Mensajes como reask**: Enviar el error como contexto para que el LLM reformule
141
+ su siguiente intento (patron reask), no repetir el mismo call identico
142
+
143
+ ---
144
+
145
+ ## Integracion con el sistema SWL
146
+
147
+ ### toolBudget en agentes
148
+
149
+ El campo `toolBudget` en frontmatter define limites por complejidad de tarea:
150
+
151
+ ```yaml
152
+ toolBudget:
153
+ simple: 10 # tareas de busqueda, lectura
154
+ standard: 20 # implementacion de 1 slice
155
+ complex: 35 # refactor multi-archivo
156
+ ```
157
+
158
+ El diseno de herramientas afecta directamente el presupuesto: herramientas bien
159
+ consolidadas permiten hacer mas con menos calls.
160
+
161
+ ### toolsRequeridos en skills
162
+
163
+ Los skills pueden declarar `toolsRequeridos` en frontmatter para indicar queii
164
+ herramientas necesitan. Esto permite al orquestador verificar que el agente
165
+ asignado tiene acceso a esas herramientas antes de delegarle la tarea.
166
+
167
+ ### Evaluacion de colecciones
168
+
169
+ Antes de agregar una herramienta nueva a un agente, verificar:
170
+ 1. No hay otra herramienta que ya cubra el caso de uso (consolidacion)
171
+ 2. La description sigue el patron de activacion (no solo describe)
172
+ 3. Los errores incluyen recovery actions
173
+ 4. El total de herramientas no supera 20 por agente
174
+
175
+ ---
176
+
177
+ ## Anti-patrones
178
+
179
+ - **Tool sprawl**: Agregar herramientas sin consolidar las existentes
180
+ - **Description generica**: "Hace cosas con archivos" — no activa correctamente
181
+ - **Error opaco**: "Error 500" sin sugerencia de recovery
182
+ - **Herramienta monolitica**: Una sola herramienta con 30 parametros opcionales
183
+ - **Duplicacion cross-agente**: La misma herramienta implementada distinto en 3 agentes
184
+ - **Retry ciego**: Reintentar la misma llamada identica ante un error — usar reask
185
+
186
+ ## Cuándo NO cargar
187
+
188
+ - Se implementa el handler de un PreToolUse o PostToolUse — este skill diseña la interfaz, no el código del hook. Para hooks cargar la regla `hooks.md` o el agente que corresponda.
189
+ - Se evalúa el rendimiento histórico de un agente específico (tasa de éxito, latencia) — eso es `evaluacion-agentes`, no diseño de colección.
190
+ - El único cambio pendiente es corregir el texto de la descripción de una tool existente sin rediseñar la colección — el costo de carga no compensa.
191
+ - Se configuran `permisosRed`, `permisosEscritura` o `nivelRiesgo` en el frontmatter de un agente — esas decisiones caen en `seguridad-agentes` y `estructura-proyecto-claude`.
192
+
193
+ ## Gotchas / Errores comunes no obvios
194
+
195
+ - **Description escrita para un humano, no para un LLM**: la descripción dice "Ejecuta comandos de sistema operativo" en vez de "Úsala cuando necesites ejecutar comandos de shell, manipular archivos o instalar dependencias". El LLM necesita saber cuándo activar la tool, no solo qué hace. Causa: confundir documentación para desarrolladores con prompt de activación. Solución: comenzar la description con el disparador de uso ("Úsala cuando...", "Llama esto cuando...") y mencionar los casos de uso concretos que activan la herramienta.
196
+ - **Consolidación que rompe el límite de parámetros**: al consolidar tres tools en una, el parámetro `accion` acepta 15 valores posibles y el LLM los confunde. Causa: consolidar sin rediseñar la interfaz — la herramienta resultante hereda toda la complejidad de las tres. Solución: verificar después de consolidar que la interfaz resultante tiene ≤6 parámetros y ≤5 valores por enum; si no cabe, la consolidación está sobre-agrupando.
197
+ - **Error `recovery` genérico ("intenta de nuevo")**: el agente reintenta la misma llamada idéntica y falla de nuevo. Causa: el campo `recovery` dice "Reintenta más tarde" sin indicar qué debe cambiar. Solución: el `recovery` debe describir la acción correctiva específica ("Verificar que el archivo existe antes de llamar", "Reducir el campo `limit` a menos de 100").
198
+ - **Naming MCP sin prefijo de servidor**: la tool `buscar_documentos` de un MCP server colisiona con otra tool local del mismo nombre. Causa: no seguir el formato `ServidorMCP:nombre_tool`. Solución: en MCP servers siempre usar `NombreServidor:accion_sustantivo`; el `:` no es opcional aunque el servidor solo tenga una tool.
199
+ - **toolBudget `complex: 35` ignorado porque el agente no lo valida**: el orquestador asigna una tarea simple a un agente que usó 42 tool calls. Causa: `toolBudget` solo es efectivo si el hook de validación o el agente lo respeta activamente; declararlo en frontmatter sin lógica que lo cumpla no tiene efecto. Solución: verificar que el agente o el hook de control de presupuesto lee el campo `toolBudget` del frontmatter antes de asumir que el límite se aplicará automáticamente.
@@ -0,0 +1,186 @@
1
+ ---
2
+ name: diseno-responsivo
3
+ description: Diseño responsivo moderno. Container queries, fluid typography, CSS Grid, Flexbox, mobile-first, Tailwind CSS y patrones para interfaces adaptativas.
4
+ version: "1.0.0"
5
+ herramientasPermitidas: [Read, Grep]
6
+ evolvable: true # default para skill estandar
7
+ exclusiones:
8
+ - "No cargar para sistemas de design tokens (paletas de colores, tipografía de marca, theming) — para tokens cargar `design-tokens`."
9
+ - "No cargar para accesibilidad (ARIA, contraste, lector de pantalla) — para a11y cargar `accesibilidad-a11y`."
10
+ - "No cargar para optimización de rendimiento de imágenes en el pipeline de build (WebP, AVIF, compresión) — para imágenes en build cargar el skill de rendimiento del framework."
11
+ - "No cargar para CSS de componentes individuales sin responsividad (estilos fijos de un card o modal) — cargar `css-moderno` para CSS de componente."
12
+ ---
13
+ # Diseño Responsivo Moderno
14
+
15
+ ## Cuándo NO cargar
16
+
17
+ - La tarea es definir el sistema de design tokens (paletas, tipografía de marca, theming light/dark): cargar `design-tokens`.
18
+ - La revisión es de accesibilidad (contraste WCAG, ARIA, lectores de pantalla): cargar `accesibilidad-a11y`.
19
+ - La optimización es del pipeline de imágenes en build (WebP, AVIF, lazy loading en Next.js): cargar el skill de rendimiento del framework.
20
+ - El CSS es de componentes fijos sin comportamiento adaptativo: cargar `css-moderno`.
21
+
22
+ ## Filosofía mobile-first
23
+
24
+ El diseño mobile-first significa escribir los estilos base para pantallas pequeñas
25
+ y luego agregar complejidad para pantallas más grandes mediante breakpoints.
26
+
27
+ ```css
28
+ /* MAL: desktop-first — sobreescribir para móvil es más complejo */
29
+ .tarjeta {
30
+ display: grid;
31
+ grid-template-columns: 1fr 1fr 1fr;
32
+ }
33
+ @media (max-width: 768px) {
34
+ .tarjeta { grid-template-columns: 1fr; }
35
+ }
36
+
37
+ /* BIEN: mobile-first — agregar complejidad progresivamente */
38
+ .tarjeta {
39
+ display: grid;
40
+ grid-template-columns: 1fr;
41
+ }
42
+ @media (min-width: 768px) {
43
+ .tarjeta { grid-template-columns: 1fr 1fr; }
44
+ }
45
+ @media (min-width: 1024px) {
46
+ .tarjeta { grid-template-columns: 1fr 1fr 1fr; }
47
+ }
48
+ ```
49
+
50
+ ---
51
+
52
+ ## Breakpoints estándar (Tailwind CSS)
53
+
54
+ ```
55
+ sm: 640px — Teléfonos en horizontal
56
+ md: 768px — Tablets
57
+ lg: 1024px — Laptops / pantallas pequeñas
58
+ xl: 1280px — Desktops
59
+ 2xl: 1536px — Pantallas grandes
60
+ ```
61
+
62
+ ```html
63
+ <!-- Tailwind mobile-first: sin prefijo = base -->
64
+ <div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4 p-4">
65
+ <!-- Cards -->
66
+ </div>
67
+ ```
68
+
69
+ ---
70
+
71
+ ## CSS Grid auto-responsive sin breakpoints
72
+
73
+ ```css
74
+ .grid-auto-fill {
75
+ display: grid;
76
+ grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
77
+ gap: 1.5rem;
78
+ }
79
+ ```
80
+
81
+ Para layouts completos de página con Grid y Flexbox, ver [recursos/ejemplos-layouts.md](recursos/ejemplos-layouts.md).
82
+
83
+ ---
84
+
85
+ ## Container Queries — el futuro del diseño responsivo
86
+
87
+ Container queries permiten aplicar estilos basados en el tamaño del **contenedor**,
88
+ no de la ventana. Esencial para componentes verdaderamente reutilizables.
89
+
90
+ ```css
91
+ .card-contenedor {
92
+ container-type: inline-size;
93
+ container-name: card;
94
+ }
95
+
96
+ .card {
97
+ display: flex;
98
+ flex-direction: column;
99
+ }
100
+
101
+ @container card (min-width: 400px) {
102
+ .card {
103
+ flex-direction: row;
104
+ }
105
+ .card-imagen {
106
+ width: 40%;
107
+ flex-shrink: 0;
108
+ }
109
+ }
110
+
111
+ @container card (min-width: 600px) {
112
+ .card-acciones {
113
+ display: flex;
114
+ justify-content: flex-end;
115
+ gap: 0.5rem;
116
+ }
117
+ }
118
+ ```
119
+
120
+ ---
121
+
122
+ ## Tipografía fluida
123
+
124
+ La tipografía fluida elimina los saltos abruptos de tamaño entre breakpoints.
125
+
126
+ ```css
127
+ /* Escala linealmente de 1rem (320px) a 1.5rem (1200px) */
128
+ .titulo-principal {
129
+ font-size: clamp(1rem, 0.75rem + 1.25vw, 1.5rem);
130
+ }
131
+
132
+ /* Escala de tipo fluida completa */
133
+ :root {
134
+ --text-sm: clamp(0.75rem, 0.7rem + 0.25vw, 0.875rem);
135
+ --text-base: clamp(1rem, 0.9rem + 0.5vw, 1.125rem);
136
+ --text-lg: clamp(1.125rem, 1rem + 0.625vw, 1.25rem);
137
+ --text-xl: clamp(1.25rem, 1.1rem + 0.75vw, 1.5rem);
138
+ --text-2xl: clamp(1.5rem, 1.25rem + 1.25vw, 2rem);
139
+ --text-3xl: clamp(1.875rem, 1.5rem + 1.875vw, 2.25rem);
140
+ }
141
+ ```
142
+
143
+ ---
144
+
145
+ ## Imágenes responsivas — reglas clave
146
+
147
+ - Usar `srcset` y `sizes` para servir la imagen del tamaño adecuado.
148
+ - SIEMPRE `loading="lazy"` y `decoding="async"` en imágenes fuera del viewport.
149
+ - SIEMPRE atributos `width` y `height` para evitar layout shift.
150
+ - Usar `<picture>` para art direction (recortes distintos por breakpoint).
151
+
152
+ Para ejemplos completos de imágenes y patrones Tailwind, ver [recursos/ejemplos-layouts.md](recursos/ejemplos-layouts.md).
153
+
154
+ ---
155
+
156
+ ## Accesibilidad y responsivo — reglas clave
157
+
158
+ - Botón de menú móvil SIEMPRE con `aria-label`, `aria-expanded` y `aria-controls`.
159
+ - Respetar `prefers-reduced-motion: reduce` desactivando animaciones.
160
+ - Áreas táctiles mínimas de 44x44px en móvil.
161
+
162
+ Para ejemplos completos de accesibilidad responsiva, ver [recursos/ejemplos-layouts.md](recursos/ejemplos-layouts.md).
163
+
164
+ ---
165
+
166
+ ## Checklist de diseño responsivo
167
+
168
+ - [ ] El diseño base está en mobile (sin prefijo en Tailwind).
169
+ - [ ] Tipografía usa clamp() o escala fluida.
170
+ - [ ] Las imágenes tienen srcset y loading="lazy".
171
+ - [ ] Los formularios tienen labels visibles en todas las pantallas.
172
+ - [ ] Los botones/links tienen área táctil mínima de 44x44px.
173
+ - [ ] No hay overflow horizontal en ningún breakpoint.
174
+ - [ ] El espaciado usa variables relativas (rem, em) no píxeles fijos.
175
+ - [ ] Se probó en orientación portrait y landscape.
176
+ - [ ] Los componentes reutilizables usan container queries donde aplica.
177
+
178
+ ## Gotchas / Errores comunes no obvios
179
+
180
+ **`container-type: inline-size` en un elemento `position: relative` rompe los `position: fixed` de sus descendientes**: cuando un elemento tiene `container-type`, crea un nuevo contexto de contención que convierte cualquier `position: fixed` dentro de él en `position: absolute` relativo al contenedor. Causa: el spec de CSS Container Queries especifica que los contenedores crean contexto de contención y eso afecta a los elementos fijos. Fix: no usar `container-type` en wrappers que tengan descendientes con `position: fixed` (modales, tooltips, dropdowns). Para esos casos, usar un wrapper contenedor hermano en lugar de padre.
181
+
182
+ **`clamp()` con unidades `vw` produce tipografía que se escala incorrectamente cuando el usuario hace zoom en el browser**: `font-size: clamp(1rem, 2vw, 2rem)` usa `vw` que es relativo al viewport, no al zoom del usuario. Al hacer zoom al 200%, `vw` se reduce proporcionalmente y la fuente puede quedar más pequeña de lo esperado. Causa: `vw` no respeta el factor de zoom del usuario — es siempre relativo al viewport físico. Fix: usar `vi` (inline size) o combinar con `em` en la expresión media: `clamp(1rem, 0.5rem + 1vw + 0.5em, 2rem)` para que el componente `em` escale con el zoom del usuario.
183
+
184
+ **El breakpoint `md:` de Tailwind (`768px`) no corresponde al breakpoint de tablet real en 2026**: en 2026, las tablets más comunes tienen resoluciones de `820px` (iPad Air) o `912px` (Surface), no `768px`. Usar `md:` para "layout de tablet" produce un layout desktop que se activa en pantallas de teléfono grande. Causa: los breakpoints de Tailwind son históricos y no reflejan los viewports actuales de dispositivos. Fix: usar container queries en lugar de media queries para componentes que deben adaptarse al espacio disponible, no al tamaño del viewport. Para layouts de página, considerar breakpoints personalizados en `tailwind.config.js` basados en los dispositivos reales del público objetivo.
185
+
186
+ **`srcset` con `sizes` incorrecto hace que el browser descargue la imagen en resolución incorrecta aunque el `srcset` tenga los tamaños correctos**: `sizes="(max-width: 768px) 100vw, 50vw"` le dice al browser que en desktop la imagen ocupa 50% del viewport. Si la imagen realmente ocupa 33%, el browser descarga una imagen más grande de lo necesario, desperdiciando ancho de banda. Causa: el atributo `sizes` es una instrucción al browser, no un cálculo automático. Fix: medir el ancho real que ocupa la imagen en cada breakpoint con las DevTools y usar ese valor en `sizes`. Un error en `sizes` no rompe el render (el browser usa el `src` como fallback) pero sí afecta el rendimiento.
@@ -0,0 +1,156 @@
1
+ # Diseño Responsivo — Ejemplos completos de layouts
2
+
3
+ ## CSS Grid — Layout de página completo
4
+
5
+ ```css
6
+ .layout-app {
7
+ display: grid;
8
+ grid-template-areas:
9
+ "header"
10
+ "main"
11
+ "footer";
12
+ grid-template-rows: auto 1fr auto;
13
+ min-height: 100vh;
14
+ }
15
+
16
+ @media (min-width: 1024px) {
17
+ .layout-app {
18
+ grid-template-areas:
19
+ "sidebar header"
20
+ "sidebar main"
21
+ "sidebar footer";
22
+ grid-template-columns: 260px 1fr;
23
+ }
24
+ }
25
+
26
+ header { grid-area: header; }
27
+ main { grid-area: main; }
28
+ footer { grid-area: footer; }
29
+ .sidebar { grid-area: sidebar; }
30
+ ```
31
+
32
+ ---
33
+
34
+ ## Flexbox para componentes
35
+
36
+ ```css
37
+ /* Navegación responsiva */
38
+ .nav {
39
+ display: flex;
40
+ flex-direction: column;
41
+ gap: 0.5rem;
42
+ }
43
+
44
+ @media (min-width: 768px) {
45
+ .nav {
46
+ flex-direction: row;
47
+ align-items: center;
48
+ justify-content: space-between;
49
+ }
50
+ }
51
+
52
+ /* Tarjeta con footer pegado al fondo */
53
+ .tarjeta {
54
+ display: flex;
55
+ flex-direction: column;
56
+ height: 100%;
57
+ }
58
+
59
+ .tarjeta-cuerpo {
60
+ flex: 1; /* Ocupa el espacio disponible */
61
+ }
62
+
63
+ .tarjeta-footer {
64
+ margin-top: auto; /* Siempre al fondo */
65
+ }
66
+ ```
67
+
68
+ ---
69
+
70
+ ## Imágenes responsivas
71
+
72
+ ```html
73
+ <!-- srcset para diferentes densidades de pantalla -->
74
+ <img
75
+ src="imagen-800w.jpg"
76
+ srcset="imagen-400w.jpg 400w, imagen-800w.jpg 800w, imagen-1200w.jpg 1200w"
77
+ sizes="(max-width: 640px) 100vw, (max-width: 1024px) 50vw, 33vw"
78
+ alt="Descripción de la imagen"
79
+ loading="lazy"
80
+ decoding="async"
81
+ width="800"
82
+ height="600"
83
+ />
84
+
85
+ <!-- Picture para art direction -->
86
+ <picture>
87
+ <source media="(min-width: 1024px)" srcset="imagen-horizontal.webp" />
88
+ <source media="(min-width: 640px)" srcset="imagen-cuadrada.webp" />
89
+ <img src="imagen-vertical.jpg" alt="Imagen del producto" />
90
+ </picture>
91
+ ```
92
+
93
+ ---
94
+
95
+ ## Patrones Tailwind para layouts comunes
96
+
97
+ ```html
98
+ <!-- Sidebar + contenido -->
99
+ <div class="flex min-h-screen">
100
+ <aside class="w-64 shrink-0 hidden lg:block bg-gray-800 text-white">
101
+ <!-- Sidebar -->
102
+ </aside>
103
+ <main class="flex-1 overflow-auto p-6">
104
+ <!-- Contenido -->
105
+ </main>
106
+ </div>
107
+
108
+ <!-- Dashboard con cards -->
109
+ <div class="grid grid-cols-1 sm:grid-cols-2 xl:grid-cols-4 gap-4">
110
+ <!-- Métrica 1 -->
111
+ <!-- Métrica 2 -->
112
+ </div>
113
+
114
+ <!-- Formulario de dos columnas en pantallas grandes -->
115
+ <form class="grid grid-cols-1 md:grid-cols-2 gap-6">
116
+ <div class="md:col-span-2"><!-- Campo de ancho completo --></div>
117
+ <div><!-- Campo izquierdo --></div>
118
+ <div><!-- Campo derecho --></div>
119
+ </form>
120
+
121
+ <!-- Hero section centrado -->
122
+ <section class="flex flex-col items-center justify-center min-h-[60vh] text-center px-4">
123
+ <h1 class="text-3xl sm:text-4xl lg:text-5xl font-bold max-w-3xl">Título</h1>
124
+ <p class="mt-4 text-lg text-gray-600 max-w-xl">Subtítulo descriptivo.</p>
125
+ </section>
126
+ ```
127
+
128
+ ---
129
+
130
+ ## Accesibilidad y responsivo
131
+
132
+ ```html
133
+ <!-- Botón de menú móvil con aria apropiado -->
134
+ <button
135
+ aria-label="Abrir menú de navegación"
136
+ aria-expanded="false"
137
+ aria-controls="nav-mobile"
138
+ class="lg:hidden p-2"
139
+ >
140
+ <svg ...>...</svg>
141
+ </button>
142
+
143
+ <nav id="nav-mobile" class="hidden lg:flex" aria-label="Navegación principal">
144
+ <!-- Links -->
145
+ </nav>
146
+ ```
147
+
148
+ ```css
149
+ /* Preferencia de movimiento reducido */
150
+ @media (prefers-reduced-motion: reduce) {
151
+ *, *::before, *::after {
152
+ animation-duration: 0.01ms !important;
153
+ transition-duration: 0.01ms !important;
154
+ }
155
+ }
156
+ ```