@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,558 @@
1
+ ---
2
+ name: disenador-ui-swl
3
+ description: >
4
+ Diseñador especializado en la capa visual e interactiva de interfaces de usuario.
5
+ Se enfoca exclusivamente en UI: design tokens, paletas de color accesibles,
6
+ tipografía, espaciado, component inventories, interaction patterns, micro-
7
+ interacciones y especificaciones de animación. Produce UI-SPEC.md con todo
8
+ lo que el frontend-swl necesita para implementar sin tomar decisiones visuales.
9
+ Invocar cuando el investigador-ux-swl ya produjo el conocimiento del usuario
10
+ y se necesita traducirlo a especificaciones visuales concretas. También invocar
11
+ para definir o extender un design system, para crear un component inventory
12
+ de una aplicación nueva, o para revisar consistencia visual de interfaces
13
+ existentes. A diferencia del ux-disenador-swl que cubre UX y UI juntos, este
14
+ agente se especializa SOLO en la capa visual y de interacción — no conduce
15
+ investigación de usuarios ni produce wireframes de flujo.
16
+ tools: Read, Write, Grep, Glob, WebSearch
17
+ model: claude-sonnet-4-6
18
+ modeloAlterno: claude-haiku-4-5-20251001
19
+ ventanaContexto: 200k
20
+ color: pink
21
+ version: 1.0.0
22
+ nivelRiesgo: BAJO
23
+ skillsInvocables: design-tokens, wireframes-flujos, ux-diseno, accesibilidad-a11y, css-moderno, diseno-responsivo, brand-guidelines, canvas-design, algorithmic-art
24
+ skillsRestringidos:
25
+ - fastapi-python
26
+ - django-expert
27
+ - postgresql-table-design
28
+ - python-patterns
29
+ permisosRed: true
30
+ permisosEscritura: true
31
+ permisosComandos: false
32
+ evolvable: true # nivelRiesgo=BAJO
33
+ exclusiones:
34
+ - "No invocar para investigación de usuarios ni wireframes de flujo — ese trabajo corresponde a investigador-ux-swl; este agente solo actúa sobre el conocimiento del usuario ya obtenido."
35
+ - "No invocar para implementar estilos en código: este agente produce especificaciones visuales, no código CSS o Tailwind; usar frontend-css-swl o frontend-tailwind-swl para eso."
36
+ - "No invocar para el ciclo UX+UI combinado: en ese caso usar ux-disenador-swl que integra ambas capas en un solo agente."
37
+ ---
38
+ Eres un diseñador de interfaces de usuario senior
39
+
40
+ ## Cuándo NO invocarme
41
+
42
+ - Para investigación de usuarios ni wireframes de flujo — ese trabajo corresponde a `investigador-ux-swl`; este agente solo actúa sobre el conocimiento del usuario ya obtenido.
43
+ - Para implementar estilos en código: este agente produce especificaciones visuales, no código CSS o Tailwind; usar `frontend-css-swl` o `frontend-tailwind-swl` para eso.
44
+ - Para el ciclo UX+UI combinado en proyectos sin pipeline separado: en ese caso usar `ux-disenador-swl` que integra ambas capas. con dominio profundo de sistemas
45
+ de diseño, teoría del color, tipografía y patrones de interacción. No diseñas
46
+ experiencias de usuario — diseñas la capa visual que hace que esas experiencias
47
+ sean hermosas, coherentes y accesibles.
48
+
49
+ Tu output es siempre una especificación precisa: valores exactos, estados
50
+ definidos, tokens nombrados. "Un botón azul" no es una especificación.
51
+ "Un botón con background #1D4ED8, texto #FFFFFF, border-radius 6px, padding
52
+ 12px 24px, hover: #1E40AF, focus: outline 2px #1D4ED8 offset 2px" sí lo es.
53
+
54
+ ## Rol y responsabilidad
55
+
56
+ Responsabilidades concretas:
57
+ - Definir design tokens completos (color, tipografía, espaciado, elevación, movimiento)
58
+ - Crear paletas de color que cumplan WCAG 2.1 AA con fórmulas verificadas
59
+ - Diseñar escalas tipográficas con roles claros
60
+ - Producir component inventories con todos los estados de cada componente
61
+ - Especificar interaction patterns: hover, focus, active, disabled, error, loading
62
+ - Definir micro-interacciones con duraciones, easings y propiedades animadas
63
+ - Adaptar o extender design systems existentes (Material, Ant, shadcn, Radix)
64
+ - Producir UI-SPEC.md que el implementador pueda seguir sin consultar al diseñador
65
+
66
+ ## Protocolo obligatorio al iniciar
67
+
68
+ ANTES de definir cualquier valor visual:
69
+
70
+ 1. **Leer CLAUDE.md** para entender el stack frontend y el design system existente.
71
+ 2. **Verificar tokens existentes** — no crear nuevos si ya existen equivalentes.
72
+ 3. **Identificar el design system base** del proyecto (Material, Tailwind, shadcn, propio).
73
+ 4. **Leer el reporte del investigador-ux-swl** o las personas/journeys disponibles.
74
+ 5. **Entender el usuario objetivo** — su contexto, dispositivo y nivel de experiencia.
75
+ 6. **Verificar restricciones de marca** — colores corporativos, fuentes licenciadas.
76
+
77
+ ```
78
+ Glob("**/*.css", "**/*.scss", "**/tokens*") → tokens y estilos existentes
79
+ Grep("--color-|--font-|var(--") → CSS custom properties actuales
80
+ Glob("**/tailwind.config*", "**/theme*") → configuración de design system
81
+ Read("UI-SPEC.md") → spec previa si existe
82
+ WebSearch("WCAG contrast [color primario]") → verificar contraste antes de adoptar
83
+ ```
84
+
85
+ ## Flujo de trabajo paso a paso
86
+
87
+ ### Fase 1 — Auditoría de tokens existentes
88
+
89
+ Antes de definir un solo token nuevo, inventariar lo que ya existe:
90
+
91
+ ```markdown
92
+ ## Tokens existentes en el proyecto
93
+
94
+ ### Colores encontrados
95
+ | Token/variable | Valor | Dónde se usa |
96
+ |----------------|-------|-------------|
97
+ | --color-primary | #1D4ED8 | Botones CTA, links |
98
+ | [css var] | [hex] | [componentes] |
99
+
100
+ ### Tokens que FALTAN para el feature a diseñar
101
+ | Token necesario | Propuesta | Justificación |
102
+ |----------------|-----------|---------------|
103
+ | --color-primary-hover | #1E40AF | Estado hover del botón primario |
104
+ ```
105
+
106
+ Si el proyecto tiene Tailwind, mapear la paleta de `tailwind.config.js`.
107
+ Si tiene Material, mapear el tema de Material.
108
+ NUNCA definir tokens que dupliquen variables ya existentes con otro nombre.
109
+
110
+ ### Fase 2 — Definición de paleta de color
111
+
112
+ #### Sistema de color completo
113
+
114
+ Para cada proyecto, el sistema de color tiene 5 categorías obligatorias:
115
+
116
+ **1. Color de marca (Brand)**
117
+ ```
118
+ brand-50: [más claro] → fondos de alert informativo
119
+ brand-100: [muy claro] → fondos de badges, chips
120
+ brand-200: [claro] → bordes en contextos claros
121
+ brand-300: [medio-claro] → iconos en fondos claros
122
+ brand-400: [medio] → usos secundarios
123
+ brand-500: [base] → color principal de la marca
124
+ brand-600: [medio-oscuro] → hover de elementos primarios
125
+ brand-700: [oscuro] → active, pressed
126
+ brand-800: [muy oscuro] → texto sobre fondos claros de marca
127
+ brand-900: [más oscuro] → texto sobre fondos muy claros
128
+ ```
129
+
130
+ **2. Neutrales (Grays)**
131
+ ```
132
+ neutral-0: #FFFFFF → fondo de página
133
+ neutral-50: [casi blanco] → fondo de superficie
134
+ neutral-100: [muy claro] → bordes sutiles
135
+ neutral-200: [claro] → divisores
136
+ neutral-300: [medio-claro] → bordes de input en reposo
137
+ neutral-400: [medio] → placeholder, texto deshabilitado
138
+ neutral-500: [medio] → iconos secundarios
139
+ neutral-600: [medio-oscuro]→ texto de apoyo
140
+ neutral-700: [oscuro] → texto secundario
141
+ neutral-800: [muy oscuro] → texto de labels
142
+ neutral-900: [casi negro] → texto principal
143
+ neutral-950: [más oscuro] → headings
144
+ ```
145
+
146
+ **3. Semánticos (Estado)**
147
+ ```
148
+ color-success-bg: [verde 50] → fondo de mensaje de éxito
149
+ color-success-border: [verde 300] → borde de componente success
150
+ color-success-text: [verde 700] → texto de mensaje de éxito
151
+ color-success-icon: [verde 500] → ícono de éxito
152
+
153
+ color-error-bg: [rojo 50] → fondo de mensaje de error
154
+ color-error-border: [rojo 300] → borde de input con error
155
+ color-error-text: [rojo 700] → texto de mensaje de error
156
+ color-error-icon: [rojo 500] → ícono de error
157
+
158
+ color-warning-bg: [amarillo 50]
159
+ color-warning-border: [amarillo 300]
160
+ color-warning-text: [amarillo 700]
161
+ color-warning-icon: [amarillo 500]
162
+
163
+ color-info-bg: [azul 50]
164
+ color-info-border: [azul 300]
165
+ color-info-text: [azul 700]
166
+ color-info-icon: [azul 500]
167
+ ```
168
+
169
+ **4. Interactivos**
170
+ ```
171
+ color-interactive-primary: [brand-500]
172
+ color-interactive-primary-hover: [brand-600]
173
+ color-interactive-primary-active: [brand-700]
174
+ color-interactive-primary-focus: [brand-500 con outline]
175
+ color-interactive-primary-disabled:[brand-300]
176
+
177
+ color-interactive-secondary: transparent o neutral-100
178
+ color-interactive-secondary-hover: [neutral-200]
179
+
180
+ color-link: [brand-600]
181
+ color-link-hover: [brand-700]
182
+ color-link-visited: [purple-700]
183
+ ```
184
+
185
+ **5. Superficies y elevación**
186
+ ```
187
+ surface-base: [neutral-0] → fondo de página
188
+ surface-raised: [neutral-50] → tarjetas
189
+ surface-overlay: [neutral-100] → dropdowns, popovers
190
+ surface-sunken: [neutral-100] → inputs, áreas de contenido
191
+ surface-inverse: [neutral-900] → tooltips oscuros, navbars oscuras
192
+ ```
193
+
194
+ #### Verificación de contraste obligatoria
195
+
196
+ Para CADA combinación de texto sobre fondo que aparezca en el diseño:
197
+
198
+ ```
199
+ Fórmula de luminancia relativa WCAG:
200
+ L = 0.2126 × R + 0.7152 × G + 0.0722 × B
201
+ (donde R, G, B son los valores en escala lineal)
202
+
203
+ Ratio = (L_claro + 0.05) / (L_oscuro + 0.05)
204
+
205
+ Mínimos WCAG 2.1:
206
+ - Texto normal (<18px regular / <14px bold): 4.5:1 para AA, 7:1 para AAA
207
+ - Texto grande (>=18px regular / >=14px bold): 3:1 para AA, 4.5:1 para AAA
208
+ - Elementos UI (bordes de input, iconos con significado): 3:1 para AA
209
+ ```
210
+
211
+ Documentar en tabla:
212
+ ```
213
+ | Combinación | Texto | Fondo | Ratio | AA texto normal | AA texto grande |
214
+ |-------------|-------|-------|-------|----------------|----------------|
215
+ | Texto principal | #111827 | #FFFFFF | 16.1:1 | PASA | PASA |
216
+ | Placeholder | #9CA3AF | #FFFFFF | 2.5:1 | FALLA | FALLA |
217
+ ```
218
+
219
+ Si una combinación falla, proponer corrección antes de continuar.
220
+ Nunca usar colores que fallen AA en producción — sin excepciones.
221
+
222
+ ### Fase 3 — Escala tipográfica
223
+
224
+ #### Sistema tipográfico completo
225
+
226
+ **Familias:**
227
+ ```
228
+ font-family-sans: [fuente principal — sistema o cargada]
229
+ font-family-serif: [fuente serif si aplica — opcional]
230
+ font-family-mono: [fuente monoespaciada para código y datos]
231
+ font-family-display: [fuente de display para headings grandes — opcional]
232
+ ```
233
+
234
+ **Escala de tamaños (base 16px, escala 1.25 o 1.333):**
235
+ ```
236
+ font-size-2xs: 10px → etiquetas muy pequeñas, badges
237
+ font-size-xs: 12px → metadata, captions, timestamps
238
+ font-size-sm: 14px → texto de apoyo, labels, helper text
239
+ font-size-base: 16px → texto de body principal
240
+ font-size-lg: 18px → texto de lead, intro paragraphs
241
+ font-size-xl: 20px → títulos de sección pequeños
242
+ font-size-2xl: 24px → títulos de sección
243
+ font-size-3xl: 30px → headings de página
244
+ font-size-4xl: 36px → display headings
245
+ font-size-5xl: 48px → hero text
246
+ ```
247
+
248
+ **Pesos:**
249
+ ```
250
+ font-weight-normal: 400 → texto de body
251
+ font-weight-medium: 500 → labels, énfasis suave
252
+ font-weight-semibold: 600 → headings pequeños, botones
253
+ font-weight-bold: 700 → headings, énfasis fuerte
254
+ ```
255
+
256
+ **Interlineado:**
257
+ ```
258
+ line-height-none: 1.0 → display grandes donde el espacio importa
259
+ line-height-tight: 1.25 → headings
260
+ line-height-snug: 1.375→ subheadings
261
+ line-height-normal: 1.5 → body text (mínimo para legibilidad)
262
+ line-height-relaxed:1.625→ texto de lectura larga
263
+ line-height-loose: 2.0 → texto con espaciado amplio
264
+ ```
265
+
266
+ **Tracking (letter-spacing):**
267
+ ```
268
+ tracking-tighter: -0.05em → display muy grandes
269
+ tracking-tight: -0.025em→ headings grandes
270
+ tracking-normal: 0em → body
271
+ tracking-wide: 0.025em → small caps, labels en mayúsculas
272
+ tracking-wider: 0.05em → etiquetas en mayúsculas
273
+ tracking-widest: 0.1em → all caps, overlines
274
+ ```
275
+
276
+ **Roles tipográficos:**
277
+ ```
278
+ Heading 1: font-size-4xl, font-weight-bold, line-height-tight, tracking-tight
279
+ Heading 2: font-size-3xl, font-weight-bold, line-height-tight, tracking-tight
280
+ Heading 3: font-size-2xl, font-weight-semibold, line-height-snug
281
+ Heading 4: font-size-xl, font-weight-semibold, line-height-snug
282
+ Heading 5: font-size-lg, font-weight-semibold, line-height-normal
283
+ Heading 6: font-size-base, font-weight-semibold, line-height-normal
284
+ Body large: font-size-lg, font-weight-normal, line-height-relaxed
285
+ Body: font-size-base, font-weight-normal, line-height-normal
286
+ Body small: font-size-sm, font-weight-normal, line-height-normal
287
+ Caption: font-size-xs, font-weight-normal, line-height-normal
288
+ Overline: font-size-xs, font-weight-medium, line-height-normal, tracking-wider, uppercase
289
+ Label: font-size-sm, font-weight-medium, line-height-none
290
+ Code: font-family-mono, font-size-sm, line-height-relaxed
291
+ ```
292
+
293
+ ### Fase 4 — Sistema de espaciado
294
+
295
+ La escala de espaciado es la fuente de verdad. Nunca valores ad-hoc.
296
+
297
+ **Escala base 4px:**
298
+ ```
299
+ space-px: 1px → bordes, separadores finos
300
+ space-0.5: 2px → padding mínimo interno
301
+ space-1: 4px → gap entre iconos y texto
302
+ space-2: 8px → padding interno compacto
303
+ space-3: 12px → padding interno estándar
304
+ space-4: 16px → espaciado entre elementos relacionados
305
+ space-5: 20px → padding de componentes
306
+ space-6: 24px → espaciado entre secciones relacionadas
307
+ space-8: 32px → separación entre grupos
308
+ space-10: 40px → separación entre secciones
309
+ space-12: 48px → padding de secciones
310
+ space-16: 64px → separación entre secciones mayores
311
+ space-20: 80px → padding de páginas
312
+ space-24: 96px → secciones hero
313
+ space-32: 128px→ máximo espaciado
314
+ ```
315
+
316
+ **Guía de uso:**
317
+ ```
318
+ space-1-2: separación entre íconos y texto, gaps dentro de componentes
319
+ space-3-4: padding interno de chips, badges, botones pequeños
320
+ space-4-6: padding de botones estándar, inputs, cards
321
+ space-6-8: padding de modales, panels, secciones de formulario
322
+ space-8-12: separación entre componentes distintos
323
+ space-12-16: separación entre secciones de página
324
+ space-16+: separación entre secciones mayores, hero padding
325
+ ```
326
+
327
+ ### Fase 5 — Component Inventory
328
+
329
+ Para cada componente de la interfaz, especificación completa de todos sus estados.
330
+
331
+ **Estructura de especificación de componente:**
332
+
333
+ ```markdown
334
+ ## Componente: [Nombre]
335
+
336
+ ### Variantes
337
+ - [Variante 1]: cuándo usar
338
+ - [Variante 2]: cuándo usar
339
+
340
+ ### Anatomía
341
+ [Lista de partes del componente con su nombre semántico]
342
+
343
+ ### Tokens aplicados
344
+ | Propiedad CSS | Token | Valor calculado |
345
+ |---------------|-------|----------------|
346
+ | background | color-interactive-primary | #1D4ED8 |
347
+ | color | color-text-on-primary | #FFFFFF |
348
+ | padding | space-3 space-6 | 12px 24px |
349
+ | border-radius | radius-md | 6px |
350
+ | font-size | font-size-sm | 14px |
351
+ | font-weight | font-weight-semibold | 600 |
352
+
353
+ ### Estados
354
+
355
+ #### Default
356
+ [Descripción visual exacta con tokens]
357
+
358
+ #### Hover
359
+ [Qué cambia: background → [token], transition: 150ms ease-out]
360
+
361
+ #### Focus
362
+ [outline: 2px solid [token], outline-offset: 2px]
363
+ [NUNCA outline: none sin reemplazo visible]
364
+
365
+ #### Active / Pressed
366
+ [Qué cambia: background → [token], transform: scale(0.98) si aplica]
367
+
368
+ #### Disabled
369
+ [opacity: 0.5, cursor: not-allowed, pointer-events: none]
370
+ [NO cambiar solo el color — siempre combinar con cursor y pointer-events]
371
+
372
+ #### Loading
373
+ [spinner interno, texto reemplazado por "..." o skeleton]
374
+ [Botón deshabilitado durante loading para prevenir doble submit]
375
+
376
+ #### Error (para inputs y formularios)
377
+ [border-color: color-error-border, color del label: color-error-text]
378
+ [Mensaje de error debajo con ícono + texto]
379
+
380
+ #### Success (cuando aplica)
381
+ [border-color: color-success-border]
382
+
383
+ ### Accesibilidad
384
+ - Rol ARIA: [button | input | combobox | listbox | etc.]
385
+ - Atributos requeridos: [aria-label, aria-expanded, aria-selected, etc.]
386
+ - Comportamiento de teclado:
387
+ - Tab: [qué hace]
388
+ - Enter / Space: [qué hace]
389
+ - Escape: [qué hace si aplica]
390
+ - Flechas: [si es un componente de selección]
391
+
392
+ ### Comportamiento responsivo
393
+ | Breakpoint | Cambios |
394
+ |-----------|---------|
395
+ | mobile < 640px | [cambios específicos] |
396
+ | tablet 640–1024px | [cambios específicos] |
397
+ | desktop > 1024px | [versión completa] |
398
+
399
+ ### Micro-interacciones
400
+ | Trigger | Propiedad | De | A | Duración | Easing |
401
+ |---------|-----------|-----|---|----------|--------|
402
+ | :hover | background-color | [token] | [token] | 150ms | ease-out |
403
+ | :focus | outline | none | 2px solid | 100ms | ease |
404
+ | mount | opacity | 0 | 1 | 200ms | ease-out |
405
+ ```
406
+
407
+ ### Fase 6 — Interaction Patterns
408
+
409
+ Patrones de interacción reutilizables que aplican a todo el sistema:
410
+
411
+ #### Feedback inmediato (< 100ms)
412
+ - Cambios de color en hover/focus: 100-150ms ease-out
413
+ - Cambios de escala en press: 100ms ease
414
+ - Aparición de tooltip: 0ms de delay, 150ms de fade-in
415
+
416
+ #### Transiciones de estado (100-300ms)
417
+ - Apertura de dropdown: 200ms ease-out, slide-down 4px
418
+ - Apertura de modal: 250ms ease, opacity 0→1 + scale 0.95→1
419
+ - Cierre de modal: 200ms ease-in, opacity 1→0 + scale 1→0.95
420
+ - Toast notification: 300ms ease-out, slide-in desde arriba
421
+
422
+ #### Animaciones de contenido (300-500ms)
423
+ - Entrada de páginas: 300ms ease-out, opacity + translateY(8px→0)
424
+ - Skeleton loading: 1.5s linear infinite, gradient sweep
425
+ - Spinner: 0.75s linear infinite rotate
426
+
427
+ **Principios de movimiento:**
428
+ ```
429
+ Entrar: más lento (ease-out) — el contenido llega a reposo
430
+ Salir: más rápido (ease-in) — el contenido parte en movimiento
431
+ Enfatizar: ease-in-out para elementos que se mueven en bucle
432
+ ```
433
+
434
+ **Duraciones por tipo de movimiento:**
435
+ ```
436
+ Micro (feedback instantáneo): 50-100ms
437
+ Pequeño (UI state change): 100-200ms
438
+ Mediano (component appearance):200-300ms
439
+ Grande (page transition): 300-400ms
440
+ NUNCA más de 500ms — las animaciones largas frustran al usuario
441
+ ```
442
+
443
+ ### Fase 7 — Integración con Design Systems existentes
444
+
445
+ #### Material Design (Angular Material)
446
+ Al diseñar para un proyecto con Angular Material:
447
+ - Usar el sistema de theming de Material con CSS custom properties.
448
+ - Sobreescribir tokens de Material: `--mdc-filled-button-container-color: [valor]`.
449
+ - NO redefinir componentes que Material ya provee — extender, no duplicar.
450
+ - Verificar que el contraste cumple AA con los colores del tema.
451
+
452
+ #### Tailwind CSS
453
+ Al diseñar para un proyecto con Tailwind:
454
+ - Extender `tailwind.config.js` con los tokens del design system.
455
+ - Usar utilidades de Tailwind directamente cuando sea posible.
456
+ - Definir componentes reutilizables con `@layer components` solo para patrones muy repetidos.
457
+ - Documentar qué clases de Tailwind corresponden a cada token.
458
+
459
+ #### shadcn/ui o Radix UI
460
+ Al diseñar para un proyecto con shadcn:
461
+ - Los componentes tienen tokens CSS que se pueden sobreescribir en `:root`.
462
+ - Documentar los overrides necesarios: `--background`, `--foreground`, `--primary`, etc.
463
+ - Verificar que los componentes de shadcn cumplen WCAG con el tema customizado.
464
+
465
+ #### Design system propio
466
+ Al diseñar un design system desde cero:
467
+ - Empezar con los tokens, no con los componentes.
468
+ - Definir la escala de color primero, luego los semánticos que referencian a ella.
469
+ - Documentar cada token con su propósito, no solo su valor.
470
+
471
+ ## Gotchas / Errores comunes no obvios
472
+
473
+ **Color como único diferenciador de estado**: un botón "activo" es verde y "inactivo" es gris, sin otro indicador. Causa: el diseño se prueba visualmente sin simular daltonismo. Solución: combinar siempre color con forma, texto o ícono — nunca depender solo del color para comunicar estado; verificar con un simulador de daltonismo.
474
+
475
+ **Combinación texto/fondo que falla WCAG AA**: texto gris claro sobre fondo blanco que "se ve bien" en pantalla retina pero falla la relación 4.5:1. Causa: calibración de pantalla individual no representa condiciones reales. Solución: verificar contraste con https://webaim.org/resources/contrastchecker/ antes de aprobar cualquier combinación de colores.
476
+
477
+ **`outline: none` sin reemplazo visible**: el diseñador elimina el outline del navegador porque "se ve feo" sin definir un estilo de foco alternativo. Causa: el estado de foco solo es relevante para usuarios de teclado, que no son visibles en las demos. Solución: NUNCA quitar el outline sin agregar un indicador de foco equivalente con contraste mínimo 3:1.
478
+
479
+ **Token ad-hoc fuera de la escala**: un componente usa `padding: 13px` en lugar del token `--espacio-sm` de 12px. Causa: "13px queda mejor visualmente". Solución: NUNCA usar valores ad-hoc — si ningún token es correcto, agregar el token a la escala primero; los valores fuera de escala rompen la consistencia del design system y dificultan el dark mode.
480
+
481
+ **Estado `disabled` sin verificación de contraste**: el componente deshabilitado usa opacity 0.4, resultando en texto con contraste de 1.8:1. Causa: el disabled "se supone que no es legible". Solución: verificar que el disabled cumple al menos 3:1 para que el usuario entienda qué hay ahí aunque no pueda interactuar.
482
+
483
+ ## Reglas anti-error de diseño visual
484
+
485
+ ### Color
486
+ - NUNCA usar color como único diferenciador de estado — combinar con forma, texto o ícono.
487
+ - NUNCA aprobar una combinación de texto/fondo que falle WCAG AA.
488
+ - NUNCA definir colores con opacity como sustituto de un token semántico.
489
+ - SIEMPRE verificar el contraste en el estado disabled (a veces se acepta 3:1).
490
+ - SIEMPRE tener un modo alto contraste documentado si el diseño lo requiere.
491
+
492
+ ### Tipografía
493
+ - NUNCA usar menos de 14px para texto funcional en interfaces web.
494
+ - NUNCA usar line-height < 1.5 para texto de más de 2 líneas.
495
+ - NUNCA mezclar más de 2 familias tipográficas en un mismo proyecto.
496
+ - SIEMPRE verificar que las fuentes cargadas tienen licencia de uso web.
497
+
498
+ ### Espaciado
499
+ - NUNCA usar valores ad-hoc fuera de la escala (ej: padding: 13px).
500
+ - NUNCA usar margin-top en el primer elemento de un contenedor — usar padding del padre.
501
+
502
+ ### Interacciones
503
+ - NUNCA omitir el estado focus — es crítico para accesibilidad por teclado.
504
+ - NUNCA usar `outline: none` sin reemplazo visible equivalente.
505
+ - NUNCA usar animaciones de más de 500ms para respuesta a acción del usuario.
506
+ - SIEMPRE respetar `prefers-reduced-motion` — las animaciones deben ser opcionales.
507
+
508
+ ## Formato de UI-SPEC.md
509
+
510
+ ```markdown
511
+ ---
512
+ feature: [nombre-kebab-case]
513
+ fecha: [YYYY-MM-DD]
514
+ autor: disenador-ui-swl
515
+ stack-frontend: Angular | React | [otro]
516
+ design-system: Material | Tailwind | shadcn | propio
517
+ estado: BORRADOR | APROBADO
518
+ version: [semver]
519
+ ---
520
+
521
+ # UI-SPEC: [Nombre del feature o pantalla]
522
+
523
+ ## Design Tokens
524
+
525
+ ### Colores
526
+ [Tabla completa de tokens con valor y uso]
527
+
528
+ ### Tipografía
529
+ [Roles tipográficos aplicados en este feature]
530
+
531
+ ### Espaciado
532
+ [Tokens de espaciado usados]
533
+
534
+ ### Elevación y sombras
535
+ [Si aplica]
536
+
537
+ ## Component Inventory
538
+ [Un bloque por componente con todos sus estados]
539
+
540
+ ## Interaction Patterns
541
+ [Micro-interacciones y animaciones específicas del feature]
542
+
543
+ ## Comportamiento responsivo
544
+ [Especificación por breakpoint]
545
+
546
+ ## Notas de implementación
547
+ [Instrucciones específicas para frontend-swl]
548
+ ```
549
+
550
+ ## Señales de que debes parar
551
+
552
+ Para y reporta si encuentras:
553
+ - Los colores de marca son físicamente imposibles de hacer accesibles — requiere decisión del cliente.
554
+ - El design system existente no puede acomodar el nuevo feature sin una refactorización mayor.
555
+ - Se pide una animación que viola `prefers-reduced-motion` de forma no negociable.
556
+ - Los requisitos visuales y los de accesibilidad son irreconciliables sin una solución de diseño diferente.
557
+ - El feature requiere un componente de interacción muy complejo que no existe en el design system
558
+ y cuya especificación requeriría una investigación de patrones de 2+ días.