@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,148 @@
1
+ # QUALITY-REPORT.md — [Fase/Feature]
2
+
3
+ **Fecha**: [YYYY-MM-DD]
4
+ **Evaluador**: [agente o persona responsable]
5
+ **Proyecto**: [nombre-del-proyecto]
6
+ **Commit/PR**: [hash corto o número de PR]
7
+
8
+ ---
9
+
10
+ ## Score Final: [X.X / 10.0] — [VEREDICTO]
11
+
12
+ > Umbrales: **9.0-10.0** = APROBADO | **7.0-8.9** = APROBADO CON OBSERVACIONES | **5.0-6.9** = RECHAZADO | **<5.0** = RECHAZADO CRÍTICO
13
+
14
+ ---
15
+
16
+ ## Desglose de métricas
17
+
18
+ | # | Métrica | Peso | Puntuación | Score ponderado |
19
+ |---|---------|------|-----------|----------------|
20
+ | 1 | Bugs encontrados | 25% | [X.X]/10 | [X.X × 0.25 = Y.Y] |
21
+ | 2 | Cobertura de tests | 20% | [X.X]/10 | [X.X × 0.20 = Y.Y] |
22
+ | 3 | Conformidad con spec | 20% | [X.X]/10 | [X.X × 0.20 = Y.Y] |
23
+ | 4 | Alucinaciones de código | 15% | [X.X]/10 | [X.X × 0.15 = Y.Y] |
24
+ | 5 | Principio DRY | 10% | [X.X]/10 | [X.X × 0.10 = Y.Y] |
25
+ | 6 | Seguridad SIGAF | 5% | [X.X]/10 | [X.X × 0.05 = Y.Y] |
26
+ | 7 | Arquitectura | 5% | [X.X]/10 | [X.X × 0.05 = Y.Y] |
27
+ | **TOTAL** | | **100%** | | **[SCORE FINAL]** |
28
+
29
+ ---
30
+
31
+ ## Hallazgos por métrica
32
+
33
+ ### M1 — Bugs encontrados ([X.X]/10)
34
+
35
+ **Método**: `pytest -v` / `npm test` / `mypy .` / `ruff check .`
36
+
37
+ | Severidad | Descripción | Archivo / línea |
38
+ |-----------|-------------|----------------|
39
+ | Mayor | [descripción] | [ruta:línea] |
40
+ | Menor | [descripción] | [ruta:línea] |
41
+
42
+ > Si no hay bugs: _Sin bugs encontrados._
43
+
44
+ ---
45
+
46
+ ### M2 — Cobertura de tests ([X.X]/10)
47
+
48
+ **Comando ejecutado**: `pytest --cov=. --cov-report=term-missing`
49
+
50
+ | Módulo | Cobertura |
51
+ |--------|-----------|
52
+ | [módulo] | [X]% |
53
+ | **Total** | **[X]%** |
54
+
55
+ **Observaciones**: [notas sobre branches sin cubrir, tests sin assertions, etc.]
56
+
57
+ ---
58
+
59
+ ### M3 — Conformidad con spec ([X.X]/10)
60
+
61
+ **Criterios de aceptación revisados**:
62
+
63
+ | # | Criterio | Estado | Nota |
64
+ |---|----------|--------|------|
65
+ | 1 | [criterio del CONTEXT.md / PLAN.md] | PASS / FAIL | [nota] |
66
+ | 2 | [criterio] | PASS / FAIL | |
67
+
68
+ **Penalizaciones aplicadas**:
69
+ - [ ] -1.0: Feature implementada diferente a la spec sin notificación
70
+ - [ ] -0.5: Feature parcialmente implementada sin documentar qué falta
71
+ - [ ] -1.5: Feature de seguridad omitida
72
+
73
+ ---
74
+
75
+ ### M4 — Alucinaciones de código ([X.X]/10)
76
+
77
+ | Tipo | Descripción | Severidad |
78
+ |------|-------------|-----------|
79
+ | [Import inexistente / Firma incorrecta / Lógica falsa] | [descripción] | Mayor / Menor |
80
+
81
+ > Si no hay alucinaciones: _Sin alucinaciones detectadas._
82
+
83
+ ---
84
+
85
+ ### M5 — Principio DRY ([X.X]/10)
86
+
87
+ **Violaciones encontradas**:
88
+
89
+ | Tipo | Ubicación | Descripción |
90
+ |------|-----------|-------------|
91
+ | Función duplicada | [ruta] | [descripción] |
92
+ | Lógica repetida | [ruta] | [descripción] |
93
+
94
+ > Si no hay violaciones: _Sin violaciones DRY encontradas._
95
+
96
+ ---
97
+
98
+ ### M6 — Seguridad SIGAF ([X.X]/10)
99
+
100
+ | Item | Estado |
101
+ |------|--------|
102
+ | `selectinload` en todas las relaciones serializadas | PASS / FAIL |
103
+ | `lazy="selectin"` en relaciones a `Usuario` | PASS / FAIL |
104
+ | Services no hacen `db.commit()` | PASS / FAIL |
105
+ | `Literal[]` en campos enum en schemas Pydantic | PASS / FAIL |
106
+ | RBAC en todos los `POST`/`PUT`/`DELETE` | PASS / FAIL |
107
+ | `get_current_user` explícito en todos los endpoints | PASS / FAIL |
108
+ | Filtros de datos del JWT, no de query params | PASS / FAIL |
109
+ | `@if`/`@for` en Angular (no `*ngIf`/`*ngFor`) | PASS / FAIL / N/A |
110
+ | `computed()` para derivaciones en templates Angular | PASS / FAIL / N/A |
111
+
112
+ ---
113
+
114
+ ### M7 — Arquitectura ([X.X]/10)
115
+
116
+ | Item | Estado |
117
+ |------|--------|
118
+ | Services no importan modelos de otros dominios directamente | PASS / FAIL |
119
+ | Endpoints sin lógica de negocio incrustada | PASS / FAIL |
120
+ | Componentes Angular usan services para HTTP | PASS / FAIL / N/A |
121
+ | Modelos ORM sin lógica de negocio compleja | PASS / FAIL |
122
+ | Nuevas dependencias justificadas y documentadas | PASS / FAIL |
123
+
124
+ ---
125
+
126
+ ## Plan de mejora
127
+
128
+ > Rellenar solo si el score es menor a 9.0.
129
+
130
+ | Acción correctiva | Métrica afectada | Impacto estimado en score | Tiempo estimado | Prioridad |
131
+ |-------------------|-----------------|--------------------------|----------------|-----------|
132
+ | [descripción de la acción] | M[N] | +[X.X] | [Xh / Xd] | Alta / Media / Baja |
133
+
134
+ ---
135
+
136
+ ## Decisión
137
+
138
+ - [ ] **Aprobar** — Score ≥ 9.0, continuar con siguiente fase
139
+ - [ ] **Aprobar con compromisos** — Score 7.0-8.9, mejoras antes de siguiente fase
140
+ - [ ] **Rechazar** — Score < 7.0, requiere iteración con plan de mejora
141
+
142
+ **Observaciones del evaluador**:
143
+
144
+ > [Texto libre con contexto adicional, riesgos identificados o recomendaciones.]
145
+
146
+ ---
147
+
148
+ _Generado con la habilidad `checklist-calidad` del sistema SWL._
@@ -0,0 +1,285 @@
1
+ ---
2
+ name: checklist-seguridad
3
+ description: Checklist de seguridad basado en OWASP Top 10 + seguridad de agentes autónomos (A11). Cubre inyección, autenticación, exposición de datos, control de acceso, configuración insegura, XSS, deserialización, componentes vulnerables, logging y agencia excesiva de IA. Produce reporte con hallazgos y remediaciones.
4
+ version: "1.0.0"
5
+ herramientasPermitidas: [Read, Grep]
6
+ evolvable: true # default para skill estandar
7
+ nist_csf: [PR.PS-01, PR.DS-02, PR.DS-10, DE.CM-09, RS.MI-01]
8
+ attack_techniques: [T1190, T1059, T1556]
9
+ exclusiones:
10
+ - "No cargar para auditoría de dependencias (CVEs en paquetes npm/pip, licencias) — para dependencias cargar `dependencias-auditoria`."
11
+ - "No cargar para revisión de calidad general (cobertura, DRY, arquitectura) — para calidad general cargar `checklist-calidad`."
12
+ - "No cargar para configuración de certificados TLS, WAF o firewalls de red — este skill es revisión de código, no de infraestructura de red."
13
+ - "No cargar para penetration testing o red teaming — este skill es análisis estático de código, no explotación activa."
14
+ ---
15
+ # Habilidad: Checklist de Seguridad OWASP Top 10
16
+
17
+ ## Cuándo NO cargar
18
+
19
+ - La auditoría es de CVEs en paquetes pip/npm o licencias: cargar `dependencias-auditoria`.
20
+ - La revisión es de calidad general (cobertura, DRY, conformidad con spec): cargar `checklist-calidad`.
21
+ - La tarea es configurar TLS, WAF o reglas de firewall: este skill es análisis de código, no de infraestructura de red.
22
+ - La tarea es penetration testing o explotación activa: este skill cubre análisis estático, no red teaming.
23
+
24
+ ## Propósito
25
+
26
+ La seguridad no es una fase final — es una revisión que ocurre en cada merge
27
+ relevante. Esta habilidad aplica el OWASP Top 10 de forma estructurada al
28
+ código del proyecto, identificando vulnerabilidades concretas con evidencia
29
+ y proponiendo remediaciones específicas (no genéricas).
30
+
31
+ ## Cuándo activar
32
+
33
+ - Antes de hacer deploy a producción
34
+ - Al revisar código que maneja autenticación, datos sensibles o inputs de usuario
35
+ - Como parte del proceso de revisión de PRs en módulos críticos
36
+ - Después de añadir integraciones con sistemas externos
37
+
38
+ ---
39
+
40
+ ## A01 — Broken Access Control
41
+
42
+ **Verificar**:
43
+ - [ ] Todos los endpoints con datos sensibles validan el rol del usuario
44
+ - [ ] Los filtros de datos usan el ID del JWT, no el ID del query param
45
+ - [ ] No existe escalación de privilegios: usuario normal no puede acceder a rutas de admin
46
+ - [ ] Las rutas de administración tienen middleware de autorización diferenciado
47
+ - [ ] Los recursos de un usuario no son accesibles con el ID de otro usuario (IDOR)
48
+
49
+ **Búsquedas de código**:
50
+ ```bash
51
+ # Endpoints sin autenticación (FastAPI)
52
+ grep -rn "def [a-z_]*(" --include="*.py" -A3 | grep -v "Depends\|current_user" | head -30
53
+
54
+ # Parámetros de usuario en query sin validación de JWT
55
+ grep -rn "user_id.*Query\|owner_id.*Query" --include="*.py" | head -20
56
+ ```
57
+
58
+ **Señal de vulnerabilidad**: endpoint que filtra por `user_id` recibido como
59
+ parámetro de URL sin compararlo con el `user_id` del token JWT.
60
+
61
+ ---
62
+
63
+ ## A02 — Cryptographic Failures (Exposición de datos sensibles)
64
+
65
+ **Verificar**:
66
+ - [ ] Contraseñas almacenadas con bcrypt/argon2 (NUNCA MD5, SHA1, SHA256 simple)
67
+ - [ ] Datos sensibles en tránsito solo sobre HTTPS/TLS
68
+ - [ ] Tokens JWT con expiración corta y firmados con clave segura
69
+ - [ ] Claves API, secretos y contraseñas SOLO en variables de entorno o vault
70
+ - [ ] No hay datos sensibles en logs (tarjetas, contraseñas, tokens)
71
+ - [ ] Campos sensibles en BD están cifrados si la regulación lo exige
72
+
73
+ **Búsquedas de código**:
74
+ ```bash
75
+ # Secretos hardcodeados
76
+ grep -rn "password\s*=\s*['\"][^'\"]\|secret\s*=\s*['\"][^'\"]" --include="*.py" \
77
+ --include="*.ts" --include="*.env" | grep -v "test\|example\|placeholder"
78
+
79
+ # MD5 o SHA1 para contraseñas
80
+ grep -rn "md5\|sha1\|hashlib.sha" --include="*.py" | grep -v "test\|checksum\|etag"
81
+ ```
82
+
83
+ ---
84
+
85
+ ## A03 — Injection (SQL, OS, LDAP, NoSQL)
86
+
87
+ **Verificar**:
88
+ - [ ] NUNCA concatenación de strings para construir queries SQL
89
+ - [ ] ORM con parámetros bind en todas las queries dinámicas
90
+ - [ ] Inputs de usuario NO se pasan a `os.system`, `subprocess`, `eval`, `exec`
91
+ - [ ] Queries NoSQL no aceptan objetos sin sanitizar
92
+ - [ ] Plantillas de templates engine escapan outputs por defecto
93
+
94
+ **Búsquedas de código**:
95
+ ```bash
96
+ # Concatenación en SQL
97
+ grep -rn "f\".*SELECT\|f\".*INSERT\|f\".*UPDATE\|f\".*DELETE\|f\".*WHERE" \
98
+ --include="*.py" | head -20
99
+
100
+ # Ejecución de comandos con input del usuario
101
+ grep -rn "os\.system\|subprocess\.call\|subprocess\.run\|eval(" \
102
+ --include="*.py" | head -20
103
+
104
+ # ORM con texto raw sin parámetros
105
+ grep -rn "text(f\"\|execute(f\"" --include="*.py" | head -20
106
+ ```
107
+
108
+ ---
109
+
110
+ ## A04 — Insecure Design
111
+
112
+ **Verificar**:
113
+ - [ ] Flujos críticos (pago, reset de contraseña, cambio de email) tienen pasos
114
+ de confirmación y no pueden completarse en un solo request sin validación
115
+ - [ ] Rate limiting en endpoints de autenticación y acciones sensibles
116
+ - [ ] Lógica de negocio no asume que el orden de los pasos se respeta del lado del cliente
117
+ - [ ] Tokens de un solo uso son invalidados después de usarse (password reset)
118
+
119
+ ---
120
+
121
+ ## A05 — Security Misconfiguration
122
+
123
+ **Verificar**:
124
+ - [ ] DEBUG=False en producción (Django/FastAPI)
125
+ - [ ] Stack traces no expuestos al cliente en producción
126
+ - [ ] Headers de seguridad configurados: `X-Content-Type-Options`, `X-Frame-Options`,
127
+ `Content-Security-Policy`, `Strict-Transport-Security`
128
+ - [ ] CORS configurado con lista blanca explícita (NUNCA `*` en producción)
129
+ - [ ] Directorios de archivos sensibles (`.env`, `.git`, `admin`) no accesibles vía HTTP
130
+ - [ ] Dependencias sin versiones pinned en producción
131
+
132
+ **Búsquedas de código**:
133
+ ```bash
134
+ # CORS abierto
135
+ grep -rn "allow_origins.*\*\|CORS.*\*" --include="*.py" --include="*.ts" | head -10
136
+
137
+ # DEBUG en config
138
+ grep -rn "DEBUG\s*=\s*True\|debug\s*=\s*true" --include="*.py" \
139
+ --include="*.env" | grep -v test | head -10
140
+ ```
141
+
142
+ ---
143
+
144
+ ## A06 — Vulnerable and Outdated Components
145
+
146
+ Ver habilidad `dependencias-auditoria` para el análisis completo. En este checklist:
147
+
148
+ - [ ] `pip audit` o `safety check` corrió sin críticos sin resolver
149
+ - [ ] `npm audit` sin vulnerabilidades High o Critical sin resolver
150
+ - [ ] Imagen base de Docker no tiene CVEs críticos (`trivy image [imagen]`)
151
+ - [ ] No hay dependencias abandonadas (sin commits en 2+ años) en ruta crítica
152
+
153
+ ---
154
+
155
+ ## A07 — Identification and Authentication Failures
156
+
157
+ **Verificar**:
158
+ - [ ] Contraseñas tienen política de complejidad mínima aplicada en el servidor
159
+ - [ ] Intentos de login fallidos generan bloqueo temporal o CAPTCHA
160
+ - [ ] Sesiones invalidadas correctamente en logout
161
+ - [ ] Tokens de sesión no se transmiten en URLs
162
+ - [ ] MFA disponible para cuentas privilegiadas
163
+ - [ ] Mensajes de error de login son genéricos (no revelan si el email existe)
164
+
165
+ **Búsquedas de código**:
166
+ ```bash
167
+ # Mensajes de error que revelan existencia de usuario
168
+ grep -rn '"Usuario no encontrado"\|"Email not found"\|"user does not exist"' \
169
+ --include="*.py" --include="*.ts" | head -10
170
+ ```
171
+
172
+ ---
173
+
174
+ ## A08 — Software and Data Integrity Failures
175
+
176
+ **Verificar**:
177
+ - [ ] Descargas de archivos externos verifican hash/firma
178
+ - [ ] Pipelines CI/CD no pueden ser modificados por código del repositorio sin revisión
179
+ - [ ] Deserialización de objetos Python (pickle) NUNCA con datos del usuario
180
+ - [ ] Updates automáticos de dependencias pasan por pipeline de tests
181
+
182
+ ---
183
+
184
+ ## A09 — Security Logging and Monitoring Failures
185
+
186
+ **Verificar**:
187
+ - [ ] Todos los logins (exitosos y fallidos) se registran con timestamp e IP
188
+ - [ ] Cambios en datos sensibles (contraseña, email, roles) quedan en audit log
189
+ - [ ] Accesos denegados se registran
190
+ - [ ] Los logs NO contienen datos sensibles (ver A02)
191
+ - [ ] Alertas configuradas para patrones de ataque (múltiples 401, 403)
192
+
193
+ **Búsqueda de código**:
194
+ ```bash
195
+ # Endpoints de auth sin logging
196
+ grep -rn "def login\|def authenticate" --include="*.py" -A 15 | grep -c "logger\|log\."
197
+ ```
198
+
199
+ ---
200
+
201
+ ## A10 — Server-Side Request Forgery (SSRF)
202
+
203
+ **Verificar**:
204
+ - [ ] URLs proporcionadas por el usuario no se usan directamente en requests del servidor
205
+ - [ ] Si se permiten webhooks o callbacks, hay lista blanca de dominios permitidos
206
+ - [ ] Metadata de cloud (169.254.169.254) está bloqueada en el firewall de red
207
+ - [ ] Redirects no siguen URLs arbitrarias proporcionadas por el usuario
208
+
209
+ ---
210
+
211
+ ## A11 — Seguridad de Agentes Autónomos (OWASP Excessive Agency)
212
+
213
+ Cuando el proyecto usa agentes de IA con acceso operativo (lectura, escritura,
214
+ ejecución, herramientas MCP), la superficie de ataque incluye al agente como
215
+ actor privilegiado. Ver también `reglas/seguridad-agentes.md`.
216
+
217
+ **Verificar**:
218
+ - [ ] Los agentes tienen permisos mínimos en frontmatter (permisosRed, permisosEscritura, permisosComandos)
219
+ - [ ] La cadena de delegación no escala privilegios (agente hijo ≤ agente padre)
220
+ - [ ] Los MCP servers con escritura NO tienen auto-aprobación global
221
+ - [ ] Las credenciales usadas por agentes son de corta duración, no API keys permanentes
222
+ - [ ] El hook `risk-scoring` cubre operaciones destructivas (--force, rm, push)
223
+ - [ ] Los agentes que procesan código externo tratan el contenido como datos, no instrucciones
224
+ - [ ] Las acciones irreversibles (push, delete, deploy) requieren confirmación humana
225
+ - [ ] El audit trail registra operaciones de agentes con nivelRiesgo ALTO
226
+
227
+ **Búsquedas de código** (aplicables al sistema SWL):
228
+ ```bash
229
+ # Agentes con permisos amplios sin justificación
230
+ grep -rn "permisosRed: true" --include="*.md" agentes/ | head -20
231
+
232
+ # MCP servers con auto-allow en escritura
233
+ grep -rn "alwaysAllow\|autoApprove" .claude/settings.json | head -10
234
+
235
+ # Secretos accesibles desde contexto de agentes
236
+ grep -rn "\.env\|credentials\|secret" --include="*.md" agentes/ | head -10
237
+ ```
238
+
239
+ **Señal de vulnerabilidad**: agente con `permisosComandos: true` y `nivelRiesgo: BAJO`
240
+ — el riesgo declarado no refleja la capacidad real.
241
+
242
+ ---
243
+
244
+ ## Gotchas / Errores comunes no obvios
245
+
246
+ **El grep de búsqueda de secrets hardcodeados devuelve cero resultados pero hay credenciales en archivos de configuración YAML**: el patrón de búsqueda usa `password\s*=` (sintaxis Python), pero los archivos YAML usan `password:` (sin signo igual). Causa: las búsquedas de código están optimizadas para un lenguaje y pierden variantes de otro formato. Fix: expandir el patrón de búsqueda a `password[\s=:]+['\"][^'\"]{4,}` para capturar asignaciones en Python, YAML y JSON simultáneamente. Verificar también `docker-compose.yml`, `.env.example` y archivos de configuración de CI.
247
+
248
+ **A01 (Control de acceso) pasa porque todos los endpoints tienen `Depends(get_current_user)` pero falta la verificación de rol**: `get_current_user` solo verifica autenticación (que el token es válido), no autorización (que el usuario tiene permiso para esa operación). Causa: en FastAPI es fácil confundir `get_current_user` con RBAC — el nombre sugiere verificación completa cuando solo hace autenticación. Fix: para endpoints de mutación, buscar `require_role` o equivalente además de `get_current_user`. Un endpoint sin `require_role` es accesible por cualquier usuario autenticado, independientemente de su rol.
249
+
250
+ **A05 (Misconfiguration) pasa en revisión manual pero `DEBUG=True` está activo en producción vía variable de entorno no documentada**: el grep busca `DEBUG = True` en el código fuente, pero el valor real viene de `os.getenv("DEBUG", "true")` con un default inseguro. Causa: los defaults de variables de entorno en el código son tan peligrosos como los valores hardcodeados. Fix: buscar también `getenv.*DEBUG` y `environ.*DEBUG` en el código fuente. El default de cualquier variable de seguridad debe ser el valor más restrictivo, no el más conveniente para desarrollo.
251
+
252
+ **A09 (Logging) parece completo porque hay logs en los endpoints de login, pero los cambios de privilegios no se registran**: el checklist verifica que "logins se registran" pero no cubre cambios de rol, asignación de permisos elevados o modificaciones de otros usuarios por un admin. Causa: el A09 se interpreta como "loguear intentos de autenticación" en lugar de "loguear todas las acciones con impacto de seguridad". Fix: el audit log debe cubrir: login/logout, cambios de contraseña/email, cambios de rol, accesos denegados, y cualquier operación que modifique permisos de otro usuario.
253
+
254
+ **HTML recibido de editores ricos (TipTap, Quill, Lexical, Slate) se persiste sin sanitizar server-side — vulnerabilidad A03 (Injection/XSS) latente**: los editores ricos del frontend envían HTML al backend (tags `<p>`, `<a href>`, `<img>`, `<iframe>`, `<script>` si no se filtra). Validar solo client-side es insuficiente — un atacante puede enviar HTML malicioso directamente al endpoint bypasseando el editor. Causa: se confía en que el editor "limpia" antes de enviar, pero el sanitization es siempre responsabilidad del servidor — la validación client-side es UX, no seguridad. Fix obligatorio: sanitizar server-side con whitelist estricta antes de persistir. En Python: `bleach.clean(html, tags=['p','br','strong','em','ul','ol','li','a'], attributes={'a': ['href','title']}, strip=True)`. En Node: `DOMPurify` via `jsdom`. Además, **forzar atributos de seguridad en links**: todo `<a href>` debe recibir `rel="noopener noreferrer"` y `target="_blank"` agregados por el sanitizer (no confiar en el valor que llegó del cliente). Bloquear tags `<script>`, `<iframe>`, `<object>`, `<embed>`, `<style>`, y atributos `on*` (onclick, onerror, etc.). El whitelist debe ser mínimo — solo lo que el producto realmente necesita renderizar.
255
+
256
+ ## Plantilla de reporte: `SECURITY-REPORT.md`
257
+
258
+ ```markdown
259
+ # SECURITY-REPORT.md
260
+ **Fecha**: [fecha] **Revisado por**: [agente/persona]
261
+ **Alcance**: [módulos/archivos revisados]
262
+
263
+ ## Resumen ejecutivo
264
+ - Vulnerabilidades Críticas: N
265
+ - Vulnerabilidades Altas: N
266
+ - Vulnerabilidades Medias: N
267
+ - Informativas: N
268
+
269
+ ## Hallazgos
270
+
271
+ ### [CRÍTICO/ALTO/MEDIO/BAJO] — [Nombre de la vulnerabilidad]
272
+ - **OWASP**: A0X
273
+ - **Archivo**: [ruta:línea]
274
+ - **Descripción**: [qué hace el código vulnerable y por qué]
275
+ - **Evidencia**: [snippet de código]
276
+ - **Remediación**: [solución específica para este código]
277
+ - **Prioridad de fix**: Inmediata / Próximo sprint / Backlog
278
+
279
+ ## Items sin vulnerabilidades (confirmados)
280
+ - A01 Control de acceso: verificado ✓
281
+ - ...
282
+
283
+ ## Acciones requeridas antes de deploy
284
+ - [ ] [acción con responsable]
285
+ ```