@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,276 @@
1
+ ---
2
+ name: wiki-conocimiento
3
+ description: >
4
+ Gestión de conocimiento del proyecto con grafo de conocimiento y búsqueda semántica.
5
+ Integra patrones de LightRAG (grafo + vectores) para indexar aprendizajes, ADRs,
6
+ sesiones y documentación del proyecto. Cargar cuando se use /swl:wiki o se necesite
7
+ recuperar conocimiento acumulado del proyecto de forma semántica.
8
+ version: "1.0.0"
9
+ herramientasPermitidas: [Read, Glob, Grep]
10
+ user-invocable: false
11
+ exclusiones:
12
+ - "No cargar para búsqueda simple de aprendizajes o sesiones anteriores — `memoria-busqueda` cubre esa necesidad con 3 capas de progressive disclosure a menor costo; este skill añade el grafo de conocimiento semántico que solo compensa para consultas relacionales complejas."
13
+ - "No cargar si el proyecto tiene menos de 20 entradas en APRENDIZAJES.md o menos de 10 sesiones — el grafo de conocimiento no tiene suficiente masa crítica para ser útil con tan pocos datos; usar `memoria-busqueda` directamente."
14
+ - "No cargar para indexar o buscar en código fuente del codebase — el grafo indexa decisiones, aprendizajes, ADRs y sesiones, no código; para búsqueda en código usar Grep o `swl-revisar-impacto`."
15
+ - "No cargar para persistir aprendizajes nuevos de la sesión — eso es `extractor-de-aprendizajes`; este skill lee y consulta el grafo existente, no lo actualiza directamente."
16
+ evolvable: true # default para skill estandar
17
+ ---
18
+ # Wiki de Conocimiento del Proyecto
19
+
20
+ Sistema de gestión de conocimiento que combina grafo de conocimiento con búsqueda
21
+ semántica para recuperar información acumulada del proyecto.
22
+
23
+ ## Cuándo cargar
24
+
25
+ - `/swl:wiki query "..."` necesita buscar conocimiento del proyecto
26
+ - Un agente SWL necesita contexto de decisiones previas antes de implementar
27
+ - Se quiere indexar nuevos aprendizajes o ADRs
28
+ - Se necesita trazar relaciones entre decisiones, bugs y soluciones
29
+
30
+ ## Arquitectura de referencia
31
+
32
+ ```
33
+ Fuentes de conocimiento:
34
+ .planning/APRENDIZAJES.md → Aprendizajes curados
35
+ .planning/adrs/ → Decisiones de arquitectura (ADRs)
36
+ .planning/sessions/ → Historial de sesiones
37
+ .planning/COMPACTACION.md → Contexto compactado
38
+ docs/ → Documentación del proyecto
39
+
40
+ ↓ Ingestión
41
+
42
+ Chunking → Extracción de entidades/relaciones → Grafo de conocimiento
43
+
44
+ Embeddings → Vector store
45
+
46
+ Consulta → Keyword extraction → Retrieval híbrido → Respuesta contextual
47
+ ```
48
+
49
+ ## Modos de búsqueda (patrón LightRAG)
50
+
51
+ Basado en los 5 modos de retrieval de LightRAG:
52
+
53
+ ### 1. Local — Preguntas específicas
54
+ - Extrae keywords de bajo nivel de la consulta
55
+ - Recupera entidades cercanas en el grafo
56
+ - Sigue relaciones para contexto adicional
57
+ - **Usar para:** "¿Qué decidimos sobre el manejo de errores en el módulo de pagos?"
58
+
59
+ ### 2. Global — Preguntas amplias
60
+ - Extrae keywords de alto nivel
61
+ - Recupera relaciones agregadas y resúmenes de comunidades
62
+ - **Usar para:** "¿Cuáles son los patrones arquitectónicos principales del proyecto?"
63
+
64
+ ### 3. Híbrido — Combina local + global
65
+ - Ejecuta ambas estrategias y fusiona resultados
66
+ - **Usar para:** Preguntas que necesitan tanto detalle como panorama general
67
+
68
+ ### 4. Naive — Búsqueda directa por similaridad
69
+ - Sin grafo, solo embeddings de chunks
70
+ - Más rápido pero menos contexto
71
+ - **Usar para:** Búsquedas rápidas cuando se conoce el texto aproximado
72
+
73
+ ### 5. Mix — Recomendado (grafo + vectores)
74
+ - Combina knowledge graph + chunk embeddings
75
+ - Con reranking adaptativo
76
+ - **Default para /swl:wiki query**
77
+
78
+ ## Modelo de entidades
79
+
80
+ ### Ontología tipada (patrón Zep)
81
+
82
+ Define tipos de entidades y relaciones válidas entre ellas.
83
+ Una ontología formal previene incoherencias en el grafo.
84
+
85
+ ### Tipos de entidades en el grafo
86
+ | Tipo | Descripción | Fuente típica |
87
+ |------|-------------|---------------|
88
+ | `Decisión` | Decisión arquitectónica o técnica | ADRs, COMPACTACION.md |
89
+ | `Patrón` | Patrón de diseño adoptado | APRENDIZAJES.md |
90
+ | `AntiPatrón` | Práctica a evitar | APRENDIZAJES.md |
91
+ | `Componente` | Módulo, servicio o librería | Código fuente |
92
+ | `Bug` | Bug conocido y su solución | Sessions, APRENDIZAJES.md |
93
+ | `Tecnología` | Framework, librería o herramienta | package.json, pyproject.toml |
94
+ | `Persona` | Desarrollador o stakeholder | Git blame, sessions |
95
+ | `Requisito` | Requisito funcional o no-funcional | PRD, ADRs |
96
+ | `Preferencia` | Preferencia técnica del usuario/equipo | Feedback, sessions |
97
+ | `Evento` | Incidente, release, migración | Historial, COMPACTACION.md |
98
+
99
+ ### Combinaciones válidas de relaciones (ontología)
100
+
101
+ | Relación | Source válido | Target válido |
102
+ |----------|-------------|---------------|
103
+ | `causado_por` | Bug | Patrón, AntiPatrón, Componente |
104
+ | `resuelto_con` | Bug | Decisión, Patrón |
105
+ | `depende_de` | Componente | Componente, Tecnología |
106
+ | `reemplaza` | Patrón, Decisión | AntiPatrón, Decisión |
107
+ | `usa` | Componente | Tecnología |
108
+ | `decidido_en` | Decisión | Evento |
109
+ | `confirmado_por` | Patrón, Decisión | Evento |
110
+ | `prefiere` | Persona | Tecnología, Patrón, Preferencia |
111
+ | `requiere` | Requisito | Componente, Tecnología |
112
+
113
+ ### Grafo temporal (patrón Zep)
114
+
115
+ Cada entidad y relación tiene timestamps de vigencia:
116
+
117
+ ```
118
+ {
119
+ "id": "decision-001",
120
+ "tipo": "Decisión",
121
+ "nombre": "Usar SQLAlchemy async en FastAPI",
122
+ "valid_at": "2026-04-10", // Cuándo empezó a ser válido
123
+ "invalid_at": null, // null = vigente actualmente
124
+ "created_at": "2026-04-10", // Cuándo se registró
125
+ "fuente": "sesión-2026-04-10"
126
+ }
127
+ ```
128
+
129
+ **Reglas de vigencia:**
130
+ - `valid_at` obligatorio en toda entidad/relación
131
+ - `invalid_at = null` → entidad vigente (incluir en consultas normales)
132
+ - `invalid_at = fecha` → entidad obsoleta (excluir de consultas, incluir en historial)
133
+ - Al crear una entidad que contradice otra → marcar la anterior con `invalid_at` = hoy
134
+ - Nunca borrar entidades obsoletas — solo marcar como inválidas para trazabilidad
135
+
136
+ ### Clasificación de hechos por impacto (fact rating, patrón Zep)
137
+
138
+ Cada hecho extraído se clasifica automáticamente por impacto:
139
+
140
+ | Rating | Criterio | Ejemplo |
141
+ |--------|----------|---------|
142
+ | **HIGH** | Decisión arquitectónica irreversible, bug crítico, cambio de patrón | "Se migró de REST a GraphQL por requisitos de rendimiento" |
143
+ | **MEDIUM** | Preferencia técnica, gotcha documentado, patrón confirmado | "SQLAlchemy async requiere selectinload() obligatorio" |
144
+ | **LOW** | Información contextual, observación menor | "El build tarda 3 minutos en promedio" |
145
+
146
+ **Mapeo a modelo 4-tier de swl-ses:**
147
+ - HIGH → Tipo A (verdad estructural)
148
+ - MEDIUM → Tipo B (gotcha/anti-patrón operativo)
149
+ - LOW → Tipo C (preferencia/configuración)
150
+
151
+ ### Tipos de relaciones
152
+ | Relación | Ejemplo |
153
+ |----------|---------|
154
+ | `causado_por` | Bug X fue causado_por Patrón Y |
155
+ | `resuelto_con` | Bug X fue resuelto_con Decisión Z |
156
+ | `depende_de` | Componente A depende_de Componente B |
157
+ | `reemplaza` | Patrón X reemplaza AntiPatrón Y |
158
+ | `usa` | Componente A usa Tecnología B |
159
+ | `decidido_en` | Decisión X decidido_en ADR-001 |
160
+ | `confirmado_por` | Patrón X confirmado_por sesión 2026-04-10 |
161
+
162
+ ## Patrón Compiled Truth (v5.6.0)
163
+
164
+ Cada entidad del grafo sigue el patrón Compiled Truth:
165
+
166
+ ```markdown
167
+ ## [Nombre de la entidad]
168
+
169
+ ### Compiled Truth (síntesis curada)
170
+ - Resumen en 2-3 oraciones
171
+ - Estado actual: vigente/obsoleto/en_revisión
172
+
173
+ ### Timeline (evidencia cronológica)
174
+ - [2026-04-01] [F:APRENDIZAJES] — Primera mención
175
+ - [2026-04-10] [F:sesión] — Confirmado en implementación
176
+ - [2026-04-12] [F:ADR-005] — Formalizado como decisión
177
+ ```
178
+
179
+ ## Integración con LightRAG
180
+
181
+ ### Implementación recomendada (servicio auxiliar)
182
+
183
+ ```python
184
+ # scripts/lightrag-wiki.py — Servicio local de conocimiento del proyecto
185
+ from lightrag import LightRAG, QueryParam
186
+
187
+ async def inicializar_wiki(directorio_proyecto: str) -> LightRAG:
188
+ """Inicializa LightRAG con almacenamiento local para el proyecto."""
189
+ rag = LightRAG(
190
+ working_dir=f"{directorio_proyecto}/.planning/wiki-index",
191
+ llm_model_func=llm_completar, # Wrapper para Claude
192
+ embedding_func=embedding_generar, # Wrapper para embeddings
193
+ chunk_token_size=1200,
194
+ chunk_overlap_token_size=100,
195
+ enable_llm_cache=True, # Caché para operaciones repetitivas
196
+ )
197
+ await rag.initialize_storages()
198
+ return rag
199
+
200
+ async def indexar_fuentes(rag: LightRAG, directorio_proyecto: str):
201
+ """Indexa todas las fuentes de conocimiento del proyecto."""
202
+ fuentes = [
203
+ f"{directorio_proyecto}/.planning/APRENDIZAJES.md",
204
+ f"{directorio_proyecto}/.planning/COMPACTACION.md",
205
+ ]
206
+ # Agregar ADRs si existen
207
+ import glob
208
+ fuentes += glob.glob(f"{directorio_proyecto}/.planning/adrs/*.md")
209
+ # Agregar sesiones recientes (últimas 10)
210
+ sesiones = sorted(glob.glob(f"{directorio_proyecto}/.planning/sessions/*.md"))[-10:]
211
+ fuentes += sesiones
212
+
213
+ for fuente in fuentes:
214
+ with open(fuente, 'r', encoding='utf-8') as f:
215
+ contenido = f.read()
216
+ await rag.ainsert(contenido, file_paths=[fuente])
217
+
218
+ async def consultar(rag: LightRAG, pregunta: str, modo: str = "mix") -> str:
219
+ """Consulta el grafo de conocimiento del proyecto."""
220
+ resultado = await rag.aquery(
221
+ pregunta,
222
+ param=QueryParam(
223
+ mode=modo,
224
+ top_k=20,
225
+ chunk_top_k=10,
226
+ max_total_tokens=15000,
227
+ enable_rerank=True,
228
+ ),
229
+ )
230
+ return resultado.response
231
+ ```
232
+
233
+ ### Flujo de actualización incremental
234
+
235
+ ```
236
+ 1. /swl:aprender extrae aprendizajes → guarda en APRENDIZAJES.md
237
+ 2. Hook post-aprender indexa nuevo contenido en LightRAG
238
+ 3. Próxima consulta /swl:wiki incluye aprendizajes recientes
239
+ 4. Consolidación periódica: re-indexar todo para mantener coherencia del grafo
240
+ ```
241
+
242
+ ## Implementación actual (sin LightRAG — búsqueda textual)
243
+
244
+ Mientras LightRAG no esté instalado, `/swl:wiki query` usa:
245
+
246
+ 1. `session-fts.js` (BM25) para búsqueda en sesiones
247
+ 2. `memory-search.js` (TF-IDF) para búsqueda en memoria
248
+ 3. Grep directo en `.planning/` para ADRs y aprendizajes
249
+
250
+ La migración a LightRAG es incremental: agregar el servicio como MCP server
251
+ sin romper la funcionalidad existente.
252
+
253
+ ## Evaluación de calidad (patrón RAGAS)
254
+
255
+ Para evaluar la calidad de las respuestas del wiki:
256
+
257
+ | Métrica | Descripción | Umbral aceptable |
258
+ |---------|-------------|-------------------|
259
+ | Faithfulness | ¿La respuesta se basa en las fuentes recuperadas? | ≥ 0.85 |
260
+ | Answer relevancy | ¿La respuesta es relevante a la pregunta? | ≥ 0.80 |
261
+ | Context precision | ¿Los chunks recuperados son precisos? | ≥ 0.75 |
262
+ | Context recall | ¿Se recuperaron todos los chunks relevantes? | ≥ 0.70 |
263
+
264
+ ## Cuándo NO cargar
265
+
266
+ - La búsqueda es sobre aprendizajes o sesiones anteriores con una query de texto directa — `memoria-busqueda` tiene 3 capas de progressive disclosure y cuesta menos; el grafo de wiki compensa solo cuando la consulta requiere traversal de relaciones entre entidades.
267
+ - El proyecto tiene menos de 20 entradas en APRENDIZAJES.md y menos de 10 sesiones — sin masa crítica de datos, el grafo no tiene suficientes nodos para que las relaciones aporten valor sobre una búsqueda textual simple.
268
+ - Se busca en código fuente (funciones, patrones, implementaciones) — el grafo indexa decisiones, aprendizajes y ADRs, no código; para búsqueda de código usar Grep directamente o `swl-revisar-impacto` para análisis estructural.
269
+ - El objetivo es registrar un aprendizaje nuevo de la sesión actual — eso es `extractor-de-aprendizajes`; este skill lee el grafo existente, no persiste nuevo conocimiento directamente.
270
+
271
+ ## Gotchas / Errores comunes no obvios
272
+
273
+ - **Entidades con `invalid_at` no excluidas de consultas normales**: el wiki devuelve decisiones obsoletas como vigentes porque la query no filtra por `invalid_at = null`. Causa: LightRAG indexa el contenido textual de los documentos pero no ejecuta filtros por campo del grafo automáticamente. Solución: al consultar decisiones vigentes, agregar `invalid_at = null` como filtro en la capa de post-procesamiento del resultado — o en el modo de implementación sin LightRAG, verificar el campo en el JSON antes de incluir la entidad.
274
+ - **Indexación masiva con `rag.ainsert()` llamado para cada archivo en un loop sin batching**: el proceso de ingestión tarda 45 minutos en indexar 50 sesiones porque cada llamada espera la finalización de la anterior. Causa: `ainsert()` es async pero se llama con `await` secuencial en lugar de `asyncio.gather()`. Solución: usar `asyncio.gather(*[rag.ainsert(c) for c in contenidos])` para indexar en paralelo — LightRAG soporta ingestión concurrente.
275
+ - **Consulta en modo `global` devuelve respuesta genérica sin usar datos del proyecto**: el agente usa modo `mix` pero el grafo no tiene suficientes entidades indexadas para el reasoning global. Causa: el modo `global` de LightRAG requiere suficiente masa de entidades para hacer inferencias; con pocos documentos, el modo `local` o `naive` da mejores resultados. Solución: para proyectos pequeños usar modo `local` (top_k sobre chunks cercanos); reservar modo `global` o `mix` para proyectos con 50+ fuentes indexadas.
276
+ - **`valid_at` ausente en entidades del grafo generadas automáticamente**: las entidades creadas por el extractor de hechos de LightRAG no incluyen el timestamp de vigencia requerido por el patrón Compiled Truth. Causa: LightRAG extrae entidades con sus propios campos; el schema de vigencia de swl-ses es una extensión custom que el extractor base no conoce. Solución: agregar un paso de enriquecimiento post-extracción que inyecte `valid_at = hoy` y `invalid_at = null` en cada entidad nueva antes de almacenarla.
@@ -0,0 +1,212 @@
1
+ ---
2
+ name: wireframes-flujos
3
+ description: Wireframes y user flows para Claude. Cubre wireframes descriptivos en formato texto, user flows como diagrama de texto, information architecture, navigation patterns (tabs/drawers/breadcrumbs), empty states/error states/loading states, decisiones de breakpoints responsivos y protocolo de handoff a implementador.
4
+ version: "1.0.0"
5
+ herramientasPermitidas: [Read, Grep]
6
+ evolvable: true # default para skill estandar
7
+ exclusiones:
8
+ - "No cargar para diseño visual de alta fidelidad con colores, tipografía y design tokens — para diseño visual de UI cargar `design-tokens` y el skill de diseño responsivo."
9
+ - "No cargar para implementar los componentes Angular/React descritos en el wireframe — los wireframes son specs para el implementador; para implementación cargar `angular-moderno` o el skill de frontend correspondiente."
10
+ - "No cargar para investigación de usuarios (entrevistas, encuestas, usabilidad) — los wireframes asumen que el UX research ya definió las necesidades; para investigación cargar el skill de UX correspondiente."
11
+ - "No cargar para generación de diagramas UML de arquitectura o diagramas de secuencia técnicos — para diagramas de arquitectura cargar `diagrama-arquitectura` o `generacion-mermaid`."
12
+ ---
13
+ # Wireframes y Flujos de Usuario
14
+
15
+ ## Cuándo NO cargar
16
+
17
+ - La tarea es diseño visual de alta fidelidad (colores, tipografía, design tokens): cargar `design-tokens`.
18
+ - La tarea es implementar los componentes descritos en el wireframe: cargar `angular-moderno` o el skill de frontend del stack.
19
+ - La tarea es investigación de usuarios (entrevistas, usabilidad): cargar el skill de UX correspondiente.
20
+ - La tarea es diagramas de arquitectura o secuencia técnicos: cargar `diagrama-arquitectura` o `generacion-mermaid`.
21
+
22
+ ## Filosofía
23
+
24
+ Claude trabaja con **wireframes descriptivos en texto**, no imágenes. Un wireframe
25
+ de texto bien escrito comunica estructura, jerarquía, comportamiento y decisiones
26
+ de UX mejor que un mockup visual de baja fidelidad, y puede ser consumido
27
+ directamente por el agente implementador sin ambigüedad.
28
+
29
+ El objetivo no es describir cómo se verá — es describir qué hay, dónde está,
30
+ qué hace y cómo responde al usuario.
31
+
32
+ ---
33
+
34
+ ## 1. Formato de Wireframe Descriptivo
35
+
36
+ ### Estructura de un wireframe de pantalla
37
+
38
+ ```
39
+ PANTALLA: [Nombre de la Pantalla]
40
+ URL/RUTA: [/ruta o nombre de pantalla]
41
+ PROPÓSITO: [Qué logra el usuario aquí en 1 oración]
42
+ USUARIO: [Rol o tipo de usuario que ve esta pantalla]
43
+
44
+ ━━━ LAYOUT ━━━
45
+ [Descripción del grid/layout general]
46
+
47
+ ┌─────────────────────────────────────────────┐
48
+ │ HEADER │
49
+ │ [Logo] [Nav: Inicio | Usuarios | Config]│
50
+ │ [Avatar + Dropdown]│
51
+ ├──────────────────────────────────────────── ┤
52
+ │ SIDEBAR (240px fijo) │ CONTENIDO PRINCIPAL│
53
+ │ │ │
54
+ │ - Sección A (activa) │ [Área de trabajo] │
55
+ │ - Sección B │ │
56
+ │ - Sección C │ │
57
+ ├────────────────────────┴─────────────────────┤
58
+ │ FOOTER: versión | soporte | términos │
59
+ └──────────────────────────────────────────────┘
60
+
61
+ ━━━ CONTENIDO PRINCIPAL (detalle) ━━━
62
+
63
+ H1: "Gestión de Usuarios"
64
+ [Botón primario: "+ Nuevo Usuario"] [Botón secundario: "Exportar CSV"]
65
+
66
+ Barra de búsqueda: [Buscar por nombre o email...] [Filtros]
67
+
68
+ Tabla:
69
+ Columnas: Nombre | Email | Rol | Último acceso | Acciones
70
+ Ordenable por: Nombre (asc actual), Último acceso
71
+ Filas: 20 por página
72
+ Acciones por fila: [Editar] [Desactivar] [...]
73
+
74
+ Paginación: [< Anterior] [1] [2] [3] [...] [12] [Siguiente >]
75
+
76
+ ━━━ COMPORTAMIENTOS ━━━
77
+ - Búsqueda: debounce 300ms, actualiza tabla en tiempo real
78
+ - Click en fila: abre panel lateral con detalle del usuario
79
+ - Nuevo Usuario: abre modal de 3 pasos
80
+ - Filtros: se persisten en query params de la URL
81
+
82
+ ━━━ ESTADOS ━━━
83
+ (Ver sección de estados abajo)
84
+ ```
85
+
86
+ ---
87
+
88
+ ## 2. User Flows (Diagrama en Texto)
89
+
90
+ ### Notación de flujo
91
+
92
+ ```
93
+ [Pantalla] → acción → [Pantalla destino]
94
+ [Pantalla] → acción → (Decisión) → SÍ → [A]
95
+ → NO → [B]
96
+ [Pantalla] → acción → {API call} → éxito → [C]
97
+ → error → [D]
98
+ ```
99
+
100
+ ### Ejemplo: Flujo de Login
101
+
102
+ ```
103
+ [Login]
104
+ Ingresa email y password
105
+
106
+ ├─ [Olvidé mi contraseña] → [Recuperar Contraseña]
107
+ │ ↓
108
+ │ {API: reset}
109
+ │ ├─ éxito → [Mensaje: "Revisa tu email"]
110
+ │ └─ error → [Error inline: "Email no registrado"]
111
+
112
+ └─ [Iniciar Sesión]
113
+
114
+ {API: login}
115
+ ├─ éxito, rol=ADMIN → [Dashboard Admin]
116
+ ├─ éxito, rol=USUARIO → [Dashboard Usuario]
117
+ ├─ error: credenciales → Error inline (sin indicar cuál es incorrecto)
118
+ ├─ error: cuenta bloqueada → Modal: "Cuenta bloqueada"
119
+ └─ error: 2FA requerido → [Verificación 2FA]
120
+ ```
121
+
122
+ Para flujos multi-paso completos, mapa de sitio IA y navigation patterns detallados,
123
+ ver [recursos/referencia-completa.md](recursos/referencia-completa.md).
124
+
125
+ ---
126
+
127
+ ## 3. Empty States, Error States, Loading States
128
+
129
+ ### Empty State
130
+
131
+ ```
132
+ CUANDO: La lista/tabla no tiene datos
133
+
134
+ ESTRUCTURA:
135
+ [Ícono ilustrativo grande]
136
+ [Título: "No hay usuarios aún"]
137
+ [Descripción: "Agrega el primer usuario para comenzar."]
138
+ [Botón primario: "+ Agregar Usuario"] ← solo si el usuario tiene permiso
139
+
140
+ VARIANTES:
141
+ - Primera vez (onboarding): ícono friendly, CTA activo
142
+ - Sin resultados de búsqueda: "Intenta con otros filtros", [Limpiar filtros]
143
+ - Sin permisos: ícono de candado, sin CTA
144
+ ```
145
+
146
+ ### Error States
147
+
148
+ ```
149
+ Error inline (campos de formulario):
150
+ [Input con borde rojo]
151
+ "El email ya está registrado" ← debajo del campo, 14px, color error
152
+
153
+ Error de página (4xx):
154
+ H1: "Página no encontrada" (404) | "Acceso denegado" (403)
155
+ [Descripción en lenguaje humano, sin códigos de error]
156
+ [Botón: "Ir al inicio"]
157
+
158
+ Error de API (500 en acción):
159
+ Toast (rojo): "No se pudo guardar. Intenta de nuevo."
160
+ [Reintentar] ← si la acción es reintentable
161
+ NO mostrar el error técnico al usuario
162
+ ```
163
+
164
+ ### Loading States
165
+
166
+ ```
167
+ SKELETON (preferido para listas y cards — evita layout shift):
168
+ ┌─────────────────────────┐
169
+ │ ████████████ ██████████ │ ← líneas grises animadas
170
+ │ ████████ ██ │
171
+ └─────────────────────────┘
172
+
173
+ SPINNER (para acciones puntuales — submit de form, botón):
174
+ [Botón: Guardando...] ← botón deshabilitado con spinner inline
175
+
176
+ PROGRESO (para operaciones largas >3s):
177
+ Subiendo archivo: [████████░░░░░░░] 53%
178
+ [Cancelar]
179
+ ```
180
+
181
+ ---
182
+
183
+ ## 4. Handoff de Wireframe a Implementador
184
+
185
+ El wireframe está listo para el implementador cuando incluye:
186
+
187
+ - Nombre, ruta URL y propósito de cada pantalla
188
+ - Layout descrito con grid, columnas y proporciones
189
+ - Todos los elementos nombrados específicamente
190
+ - Comportamientos interactivos descritos (hover, click, debounce)
191
+ - Empty, loading y error states definidos
192
+ - Entradas y salidas de la pantalla
193
+ - API calls marcadas con `{API: ...}` y manejo de errores
194
+ - Comportamiento responsive en desktop, tablet y móvil
195
+
196
+ El implementador NO debe inventar comportamientos no descritos en el wireframe.
197
+ Si encuentra una ambigüedad, PARA y reporta. No adivina.
198
+
199
+ Para checklist de entrega completo y decisiones de breakpoints responsive,
200
+ ver [recursos/referencia-completa.md](recursos/referencia-completa.md).
201
+
202
+ ---
203
+
204
+ ## Gotchas / Errores comunes no obvios
205
+
206
+ **Los wireframes de texto no especifican el comportamiento de scroll en paneles laterales, causando que el implementador elija entre `overflow-y: auto` en el sidebar o en el body, y la decisión incorrecta hace que el header desaparezca al scrollear**: en un layout con sidebar fijo y contenido principal scrollable, si el wireframe dice "SIDEBAR (240px fijo)" sin especificar `height: 100vh; overflow-y: auto` explícitamente, el implementador puede implementar el scroll en el `body` haciendo que el sidebar desaparezca del viewport. Causa: las dimensiones en wireframes de texto no implican comportamiento de overflow ni posicionamiento CSS. Fix: en la sección `━━━ LAYOUT ━━━`, agregar siempre la línea `SCROLL: [componente que scrollea] — [contenido fijo que no scrollea]`. Ejemplo: "SCROLL: contenido principal. FIJO: header y sidebar".
207
+
208
+ **Un user flow que muestra `{API: login} → éxito, rol=ADMIN → [Dashboard Admin]` no especifica qué pasa durante la transición — si hay un estado de carga, un redirect, o si el componente de Dashboard es el mismo con diferente contenido**: el implementador que lee el flujo puede implementar un redirect `/dashboard-admin` (ruta separada) o un router Angular que carga el componente `DashboardComponent` con un guard, o simplemente mostrar/ocultar secciones en el mismo componente. Las tres implementaciones son válidas según el flujo, pero incompatibles entre sí. Causa: los user flows de texto documentan estados y transiciones pero no el mecanismo técnico de navegación. Fix: agregar una nota de "decisión de implementación" en cada `{API call} → éxito → [pantalla]` donde la transición no sea obvia: `[Dashboard Admin] ← guard verifica rol en el token, ruta separada /admin/dashboard` o `[Dashboard compartido, contenido condicional por rol]`.
209
+
210
+ **Los wireframes de empty states que incluyen `[Botón primario: "+ Agregar"]` sin especificar las condiciones de visibilidad del botón resultan en interfaces donde usuarios sin permiso de escritura ven un botón que falla con 403 al hacer clic**: el wireframe describe el empty state feliz, pero el implementador que ve `[Botón primario: "+ Agregar Usuario"]` no sabe si debe verificar el permiso antes de renderizarlo. Causa: los wireframes frecuentemente documentan el flujo del usuario con permisos completos y omiten los estados de permisos reducidos. Fix: en la sección `COMPORTAMIENTOS` de cada pantalla, incluir explícitamente las condiciones de visibilidad de acciones: `"+ Agregar Usuario: visible solo si usuario tiene permiso USERS_WRITE"`. Si la pantalla tiene variantes por rol, documentar cada variante como sección separada `━━━ VARIANTE: USUARIO_SOLO_LECTURA ━━━`.
211
+
212
+ **Los wireframes de formularios multi-paso no especifican si el estado de los pasos anteriores persiste cuando el usuario regresa al paso 1 desde el paso 3, causando inconsistencias entre implementaciones donde uno limpia el form y otro lo conserva**: en un wizard de 3 pasos donde el paso 2 depende de datos del paso 1, si el usuario regresa al paso 1 y cambia el tipo de cuenta, el paso 2 puede quedar con datos inválidos para el nuevo tipo. Causa: los user flows documentan la ruta feliz forward; la navegación hacia atrás y sus efectos en el estado son una decisión de UX no documentada. Fix: en el user flow del wizard, agregar explícitamente los bordes de retroceso: `[Paso 2] → [Atrás] → [Paso 1, datos anteriores pre-llenados]` o `[Paso 1, formulario limpio, pasos 2 y 3 invalidados]`. La elección entre ambos depende del impacto de un cambio en paso 1 sobre los datos de pasos posteriores.
@@ -0,0 +1,192 @@
1
+ # Referencia Completa — Wireframes y Flujos de Usuario
2
+
3
+ ## Ejemplo: Flujo de Crear Usuario (multi-paso)
4
+
5
+ ```
6
+ [Lista Usuarios]
7
+ → Click "+ Nuevo Usuario"
8
+ → [Modal: Paso 1/3 — Datos Básicos]
9
+ Campos: Nombre, Email, Teléfono (opcional)
10
+ [Cancelar] [Siguiente →]
11
+
12
+ └─ Validación front
13
+ ├─ falla → Errores inline, permanecer en Paso 1
14
+ └─ ok → [Modal: Paso 2/3 — Rol y Permisos]
15
+ Selector: Rol (Admin/Usuario/Moderador)
16
+ Checkboxes de permisos granulares
17
+ [← Anterior] [Siguiente →]
18
+
19
+ └─ ok → [Modal: Paso 3/3 — Confirmar]
20
+ Resumen de datos a crear
21
+ [← Anterior] [Crear Usuario]
22
+
23
+
24
+ {API: POST /usuarios}
25
+
26
+ ├─ 201 Created
27
+ │ → Cerrar modal
28
+ │ → Toast: "Usuario creado exitosamente"
29
+ │ → Actualizar tabla (invalidar caché)
30
+
31
+ └─ 409 Conflict (email duplicado)
32
+ → Volver a Paso 1
33
+ → Error en campo email
34
+ ```
35
+
36
+ ---
37
+
38
+ ## Information Architecture — Mapa de Sitio
39
+
40
+ ```
41
+ APP SIGAF
42
+ ├── Auth (sin sidebar)
43
+ │ ├── /login
44
+ │ ├── /recuperar-contrasena
45
+ │ └── /reset-contrasena/:token
46
+
47
+ ├── Dashboard / (todos los roles)
48
+
49
+ ├── Usuarios /usuarios (ADMIN, AUDITOR)
50
+ │ ├── Lista /usuarios
51
+ │ ├── Detalle /usuarios/:id
52
+ │ └── Crear /usuarios/nuevo
53
+
54
+ ├── Reportes /reportes (todos los roles, datos filtrados por rol)
55
+ │ ├── Resumen /reportes
56
+ │ ├── Por período /reportes/periodo
57
+ │ └── Exportar /reportes/exportar
58
+
59
+ └── Configuración /config (solo ADMIN)
60
+ ├── General /config
61
+ ├── Usuarios /config/usuarios
62
+ └── Integraciones /config/integraciones
63
+ ```
64
+
65
+ ### Reglas de jerarquía visual
66
+
67
+ ```
68
+ H1 — Una por página (título de la sección)
69
+ H2 — Subsecciones del contenido principal
70
+ H3 — Títulos de tarjetas o paneles
71
+ H4 — Etiquetas de grupos dentro de formularios
72
+ Texto: Sans-serif, 16px base, 24px line-height
73
+ Microcopy: 14px, color secundario
74
+ ```
75
+
76
+ ---
77
+
78
+ ## Navigation Patterns
79
+
80
+ ### Tabs (uso y cuándo)
81
+
82
+ ```
83
+ USAR TABS cuando:
84
+ - 3-6 vistas relacionadas del mismo contenido
85
+ - El usuario necesita cambiar entre vistas frecuentemente
86
+ - El contenido de cada tab es independiente
87
+
88
+ EVITAR TABS cuando:
89
+ - Hay más de 6 opciones (usar sidebar o dropdown)
90
+ - Las vistas tienen jerarquía (usar breadcrumbs + sub-páginas)
91
+ - En móvil con tabs de contenido largo (usar accordion)
92
+
93
+ FORMATO:
94
+ [Tab Activa] [Tab 2] [Tab 3] [Tab 4]
95
+ ─────────────────────────────────────
96
+ [Contenido de Tab Activa]
97
+ ```
98
+
99
+ ### Drawer / Sidebar
100
+
101
+ ```
102
+ USAR DRAWER cuando:
103
+ - Navegación principal de la app (5+ secciones)
104
+ - El estado de navegación se reutiliza entre páginas
105
+
106
+ COLAPSABLE: sí (desktop: sidebar fijo 240px ↔ iconos 64px, móvil: overlay)
107
+
108
+ ESTRUCTURA SIDEBAR:
109
+ Logo
110
+ ─────────────────
111
+ Sección Principal (con ícono)
112
+ ├─ Subsección activa (highlight)
113
+ └─ Subsección 2
114
+ Sección 2 (con ícono)
115
+ ─────────────────
116
+ [Divider]
117
+ Configuración (ícono engranaje)
118
+ Avatar del usuario + nombre
119
+ ```
120
+
121
+ ### Breadcrumbs
122
+
123
+ ```
124
+ USAR cuando: el usuario está 2+ niveles de profundidad
125
+
126
+ FORMATO:
127
+ Inicio > Usuarios > Ana López > Editar
128
+
129
+ REGLAS:
130
+ - Último item = página actual (no es link, no clickeable)
131
+ - Máximo 4 niveles visibles (truncar intermedios con "...")
132
+ - En móvil: mostrar solo el nivel inmediato anterior con "← Anterior"
133
+ ```
134
+
135
+ ---
136
+
137
+ ## Responsive Breakpoints — Decisiones por Pantalla
138
+
139
+ ```
140
+ Pantalla: Gestión de Usuarios (tabla con acciones)
141
+
142
+ DESKTOP (≥1024px):
143
+ Sidebar fijo 240px + tabla completa con todas las columnas
144
+
145
+ TABLET (768px-1023px):
146
+ Sidebar colapsado a iconos 64px + tabla con columnas reducidas
147
+ (ocultar: Último acceso, Rol — accesibles en detalle del panel lateral)
148
+
149
+ MÓVIL (<768px):
150
+ Sidebar = drawer oculto (abrir con hamburger icon)
151
+ Tabla → Lista vertical de cards
152
+ Cada card: Avatar + Nombre + Email + [Acciones: ...]
153
+ Búsqueda: campo expandible (lupa → input)
154
+ Paginación: scroll infinito o "Cargar más"
155
+
156
+ BREAKPOINT KEY DECISIONS:
157
+ - ¿Tabla o cards en móvil? → Cards (tabla no es usable en pantallas <480px)
158
+ - ¿Sidebar o drawer en tablet? → Íconos (preserve space for content)
159
+ - ¿Modal o página nueva en móvil? → Página nueva (modales en móvil son difíciles de cerrar)
160
+ ```
161
+
162
+ ---
163
+
164
+ ## Checklist de Entrega de Wireframe
165
+
166
+ ```
167
+ PANTALLA
168
+ [ ] Nombre y ruta URL
169
+ [ ] Propósito en 1 oración
170
+ [ ] Layout descrito (grid, columnas, proporciones)
171
+ [ ] Todos los elementos nombrados (no "botón" — "botón Crear Usuario")
172
+ [ ] Jerarquía tipográfica especificada (H1/H2/texto/microcopy)
173
+ [ ] Comportamientos interactivos descritos (hover, click, debounce, etc.)
174
+
175
+ ESTADOS
176
+ [ ] Empty state definido
177
+ [ ] Loading state definido
178
+ [ ] Error state definido
179
+ [ ] Estado de éxito (si aplica)
180
+
181
+ FLUJO
182
+ [ ] Entradas a esta pantalla (¿desde dónde se llega?)
183
+ [ ] Salidas de esta pantalla (¿a dónde va?)
184
+ [ ] Acciones con API calls marcadas con {API: ...}
185
+ [ ] Manejo de errores de API especificado
186
+
187
+ RESPONSIVE
188
+ [ ] Comportamiento en desktop descrito
189
+ [ ] Comportamiento en tablet descrito
190
+ [ ] Comportamiento en móvil descrito
191
+ [ ] Decisiones de breakpoint justificadas
192
+ ```