theus-cli-linux-arm64 0.2.84

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 (742) hide show
  1. package/LICENSE +42 -0
  2. package/README.md +295 -0
  3. package/RELEASE.json +18 -0
  4. package/assets/brand-official/v1.0/logo/theus-lockup-negative-official.png +0 -0
  5. package/assets/brand-official/v1.0/logo/theus-lockup-primary-dark-official.png +0 -0
  6. package/assets/fonts/satoshi/satoshi-300.woff2 +0 -0
  7. package/assets/fonts/satoshi/satoshi-400.woff2 +0 -0
  8. package/assets/fonts/satoshi/satoshi-500.woff2 +0 -0
  9. package/assets/fonts/satoshi/satoshi-700.woff2 +0 -0
  10. package/assets/fonts/satoshi/satoshi-900.woff2 +0 -0
  11. package/assets/windows-store/Square150x150Logo.png +0 -0
  12. package/assets/windows-store/Square44x44Logo.png +0 -0
  13. package/assets/windows-store/StoreLogo.png +0 -0
  14. package/assets/windows-store/theus-store-icon-master.png +0 -0
  15. package/bin/theus +0 -0
  16. package/package.json +18 -0
  17. package/vendor/theus-arsenal/.arsenal-nombres-ola2.json +6 -0
  18. package/vendor/theus-arsenal/.arsenal-nombres-ola3.json +72 -0
  19. package/vendor/theus-arsenal/.mailmap +2 -0
  20. package/vendor/theus-arsenal/.theus-plugin/marketplace.json +25 -0
  21. package/vendor/theus-arsenal/.theus-plugin/plugin.json +20 -0
  22. package/vendor/theus-arsenal/AUTHORS.md +8 -0
  23. package/vendor/theus-arsenal/CLEANROOM_REPLACEMENT_PLAN.md +11 -0
  24. package/vendor/theus-arsenal/LICENSE +26 -0
  25. package/vendor/theus-arsenal/PROVENANCE.md +9 -0
  26. package/vendor/theus-arsenal/README.md +41 -0
  27. package/vendor/theus-arsenal/THIRD_PARTY.md +80 -0
  28. package/vendor/theus-arsenal/agents/actualizador-docs.md +123 -0
  29. package/vendor/theus-arsenal/agents/analista-comentarios.md +53 -0
  30. package/vendor/theus-arsenal/agents/analista-conversaciones.md +60 -0
  31. package/vendor/theus-arsenal/agents/analista-tests-pr.md +53 -0
  32. package/vendor/theus-arsenal/agents/analista-tipos.md +49 -0
  33. package/vendor/theus-arsenal/agents/arquitecto-accesibilidad.md +148 -0
  34. package/vendor/theus-arsenal/agents/arquitecto-codigo.md +79 -0
  35. package/vendor/theus-arsenal/agents/arquitecto-homelab.md +90 -0
  36. package/vendor/theus-arsenal/agents/arquitecto-redes.md +116 -0
  37. package/vendor/theus-arsenal/agents/arquitecto-sistemas.md +219 -0
  38. package/vendor/theus-arsenal/agents/bifurcador-opensource.md +206 -0
  39. package/vendor/theus-arsenal/agents/cazador-fallos-silenciosos.md +58 -0
  40. package/vendor/theus-arsenal/agents/consultor-documentacion.md +76 -0
  41. package/vendor/theus-arsenal/agents/diagnosticador-redes.md +135 -0
  42. package/vendor/theus-arsenal/agents/ejecutor-e2e.md +96 -0
  43. package/vendor/theus-arsenal/agents/empaquetador-opensource.md +257 -0
  44. package/vendor/theus-arsenal/agents/escaner-secretos.md +196 -0
  45. package/vendor/theus-arsenal/agents/especialista-seo.md +70 -0
  46. package/vendor/theus-arsenal/agents/estratega-marketing.md +158 -0
  47. package/vendor/theus-arsenal/agents/evaluador-agentes.md +214 -0
  48. package/vendor/theus-arsenal/agents/evaluador-harness.md +217 -0
  49. package/vendor/theus-arsenal/agents/explorador-codigo.md +79 -0
  50. package/vendor/theus-arsenal/agents/extractor-specs.md +214 -0
  51. package/vendor/theus-arsenal/agents/generador-harness.md +139 -0
  52. package/vendor/theus-arsenal/agents/guia-tdd.md +99 -0
  53. package/vendor/theus-arsenal/agents/jefe-de-gabinete.md +162 -0
  54. package/vendor/theus-arsenal/agents/limpiador-refactors.md +93 -0
  55. package/vendor/theus-arsenal/agents/optimizador-rendimiento.md +454 -0
  56. package/vendor/theus-arsenal/agents/planificador-harness.md +107 -0
  57. package/vendor/theus-arsenal/agents/planificador.md +221 -0
  58. package/vendor/theus-arsenal/agents/resolutor-apps-harmonyos.md +181 -0
  59. package/vendor/theus-arsenal/agents/resolutor-builds-cpp.md +98 -0
  60. package/vendor/theus-arsenal/agents/resolutor-builds-dart.md +209 -0
  61. package/vendor/theus-arsenal/agents/resolutor-builds-django.md +253 -0
  62. package/vendor/theus-arsenal/agents/resolutor-builds-go.md +102 -0
  63. package/vendor/theus-arsenal/agents/resolutor-builds-java.md +274 -0
  64. package/vendor/theus-arsenal/agents/resolutor-builds-kotlin.md +128 -0
  65. package/vendor/theus-arsenal/agents/resolutor-builds-pytorch.md +128 -0
  66. package/vendor/theus-arsenal/agents/resolutor-builds-react.md +214 -0
  67. package/vendor/theus-arsenal/agents/resolutor-builds-rust.md +156 -0
  68. package/vendor/theus-arsenal/agents/resolutor-builds-swift.md +169 -0
  69. package/vendor/theus-arsenal/agents/resolutor-builds.md +122 -0
  70. package/vendor/theus-arsenal/agents/revisor-bd.md +97 -0
  71. package/vendor/theus-arsenal/agents/revisor-codigo.md +291 -0
  72. package/vendor/theus-arsenal/agents/revisor-config-red.md +116 -0
  73. package/vendor/theus-arsenal/agents/revisor-cpp.md +80 -0
  74. package/vendor/theus-arsenal/agents/revisor-csharp.md +109 -0
  75. package/vendor/theus-arsenal/agents/revisor-django.md +168 -0
  76. package/vendor/theus-arsenal/agents/revisor-fastapi.md +82 -0
  77. package/vendor/theus-arsenal/agents/revisor-flutter.md +251 -0
  78. package/vendor/theus-arsenal/agents/revisor-go.md +84 -0
  79. package/vendor/theus-arsenal/agents/revisor-java.md +192 -0
  80. package/vendor/theus-arsenal/agents/revisor-kotlin.md +171 -0
  81. package/vendor/theus-arsenal/agents/revisor-ml.md +159 -0
  82. package/vendor/theus-arsenal/agents/revisor-php.md +108 -0
  83. package/vendor/theus-arsenal/agents/revisor-python.md +106 -0
  84. package/vendor/theus-arsenal/agents/revisor-react.md +166 -0
  85. package/vendor/theus-arsenal/agents/revisor-rust.md +102 -0
  86. package/vendor/theus-arsenal/agents/revisor-seguridad.md +116 -0
  87. package/vendor/theus-arsenal/agents/revisor-software-clinico.md +95 -0
  88. package/vendor/theus-arsenal/agents/revisor-swift.md +115 -0
  89. package/vendor/theus-arsenal/agents/revisor-typescript.md +123 -0
  90. package/vendor/theus-arsenal/agents/revisor-vue.md +205 -0
  91. package/vendor/theus-arsenal/agents/simplificador-codigo.md +55 -0
  92. package/vendor/theus-arsenal/commands/actualizar-docs.md +88 -0
  93. package/vendor/theus-arsenal/commands/actualizar-mapas-codigo.md +78 -0
  94. package/vendor/theus-arsenal/commands/aprender-evaluar.md +109 -0
  95. package/vendor/theus-arsenal/commands/aprender.md +74 -0
  96. package/vendor/theus-arsenal/commands/arreglar-build.md +66 -0
  97. package/vendor/theus-arsenal/commands/bucle-multiperspectiva.md +153 -0
  98. package/vendor/theus-arsenal/commands/build-cpp.md +173 -0
  99. package/vendor/theus-arsenal/commands/build-flutter.md +164 -0
  100. package/vendor/theus-arsenal/commands/build-go.md +183 -0
  101. package/vendor/theus-arsenal/commands/build-gradle.md +75 -0
  102. package/vendor/theus-arsenal/commands/build-kotlin.md +176 -0
  103. package/vendor/theus-arsenal/commands/build-react.md +187 -0
  104. package/vendor/theus-arsenal/commands/build-rust.md +187 -0
  105. package/vendor/theus-arsenal/commands/campana-marketing.md +125 -0
  106. package/vendor/theus-arsenal/commands/checkpoint.md +78 -0
  107. package/vendor/theus-arsenal/commands/cobertura-tests.md +73 -0
  108. package/vendor/theus-arsenal/commands/configurar-gestor-paquetes.md +86 -0
  109. package/vendor/theus-arsenal/commands/consulta.md +164 -0
  110. package/vendor/theus-arsenal/commands/control-calidad.md +50 -0
  111. package/vendor/theus-arsenal/commands/crear-skill.md +77 -0
  112. package/vendor/theus-arsenal/commands/enrutar-modelo.md +30 -0
  113. package/vendor/theus-arsenal/commands/epica-desbloquear.md +17 -0
  114. package/vendor/theus-arsenal/commands/epica-descomponer.md +22 -0
  115. package/vendor/theus-arsenal/commands/epica-publicar.md +21 -0
  116. package/vendor/theus-arsenal/commands/epica-reclamar.md +25 -0
  117. package/vendor/theus-arsenal/commands/epica-revisar.md +22 -0
  118. package/vendor/theus-arsenal/commands/epica-sincronizar.md +21 -0
  119. package/vendor/theus-arsenal/commands/epica-validar.md +21 -0
  120. package/vendor/theus-arsenal/commands/evolucionar.md +176 -0
  121. package/vendor/theus-arsenal/commands/funcionalidad.md +49 -0
  122. package/vendor/theus-arsenal/commands/guardar-sesion.md +278 -0
  123. package/vendor/theus-arsenal/commands/harness-build.md +111 -0
  124. package/vendor/theus-arsenal/commands/harness-diseno.md +46 -0
  125. package/vendor/theus-arsenal/commands/informe-costos.md +90 -0
  126. package/vendor/theus-arsenal/commands/iniciar-bucle.md +36 -0
  127. package/vendor/theus-arsenal/commands/instintos-estado.md +53 -0
  128. package/vendor/theus-arsenal/commands/instintos-exportar.md +69 -0
  129. package/vendor/theus-arsenal/commands/instintos-importar.md +120 -0
  130. package/vendor/theus-arsenal/commands/lienzo-planes.md +48 -0
  131. package/vendor/theus-arsenal/commands/limpiar-refactor.md +84 -0
  132. package/vendor/theus-arsenal/commands/modo-seguro.md +96 -0
  133. package/vendor/theus-arsenal/commands/orq-agregar-funcionalidad.md +36 -0
  134. package/vendor/theus-arsenal/commands/orq-cambiar-funcionalidad.md +38 -0
  135. package/vendor/theus-arsenal/commands/orq-construir-mvp.md +36 -0
  136. package/vendor/theus-arsenal/commands/orq-corregir-defecto.md +40 -0
  137. package/vendor/theus-arsenal/commands/orq-refinar-codigo.md +44 -0
  138. package/vendor/theus-arsenal/commands/orq-revisar.md +135 -0
  139. package/vendor/theus-arsenal/commands/plan-prd.md +160 -0
  140. package/vendor/theus-arsenal/commands/plan.md +198 -0
  141. package/vendor/theus-arsenal/commands/podar.md +31 -0
  142. package/vendor/theus-arsenal/commands/pr.md +181 -0
  143. package/vendor/theus-arsenal/commands/promover.md +41 -0
  144. package/vendor/theus-arsenal/commands/proyectos.md +33 -0
  145. package/vendor/theus-arsenal/commands/prp-commit.md +112 -0
  146. package/vendor/theus-arsenal/commands/prp-implementar.md +385 -0
  147. package/vendor/theus-arsenal/commands/prp-planificar.md +501 -0
  148. package/vendor/theus-arsenal/commands/reanudar-sesion.md +160 -0
  149. package/vendor/theus-arsenal/commands/revisar-codigo.md +289 -0
  150. package/vendor/theus-arsenal/commands/revisar-cpp.md +132 -0
  151. package/vendor/theus-arsenal/commands/revisar-fastapi.md +39 -0
  152. package/vendor/theus-arsenal/commands/revisar-flutter.md +115 -0
  153. package/vendor/theus-arsenal/commands/revisar-go.md +148 -0
  154. package/vendor/theus-arsenal/commands/revisar-kotlin.md +140 -0
  155. package/vendor/theus-arsenal/commands/revisar-pr.md +37 -0
  156. package/vendor/theus-arsenal/commands/revisar-python.md +297 -0
  157. package/vendor/theus-arsenal/commands/revisar-react.md +170 -0
  158. package/vendor/theus-arsenal/commands/revisar-rust.md +142 -0
  159. package/vendor/theus-arsenal/commands/revisar-vue.md +174 -0
  160. package/vendor/theus-arsenal/commands/salud-skills.md +52 -0
  161. package/vendor/theus-arsenal/commands/sesiones.md +345 -0
  162. package/vendor/theus-arsenal/commands/test-cpp.md +252 -0
  163. package/vendor/theus-arsenal/commands/test-flutter.md +143 -0
  164. package/vendor/theus-arsenal/commands/test-go.md +268 -0
  165. package/vendor/theus-arsenal/commands/test-kotlin.md +312 -0
  166. package/vendor/theus-arsenal/commands/test-react.md +265 -0
  167. package/vendor/theus-arsenal/commands/test-rust.md +309 -0
  168. package/vendor/theus-arsenal/commands/vigilancia-canary.md +43 -0
  169. package/vendor/theus-arsenal/hooks/hooks.json +274 -0
  170. package/vendor/theus-arsenal/package.json +6 -0
  171. package/vendor/theus-arsenal/rules/angular/coding-style.md +182 -0
  172. package/vendor/theus-arsenal/rules/angular/hooks.md +25 -0
  173. package/vendor/theus-arsenal/rules/angular/patterns.md +249 -0
  174. package/vendor/theus-arsenal/rules/angular/security.md +87 -0
  175. package/vendor/theus-arsenal/rules/angular/testing.md +164 -0
  176. package/vendor/theus-arsenal/rules/arkts/coding-style.md +153 -0
  177. package/vendor/theus-arsenal/rules/arkts/hooks.md +80 -0
  178. package/vendor/theus-arsenal/rules/arkts/patterns.md +236 -0
  179. package/vendor/theus-arsenal/rules/arkts/security.md +141 -0
  180. package/vendor/theus-arsenal/rules/arkts/testing.md +126 -0
  181. package/vendor/theus-arsenal/rules/common/agents.md +49 -0
  182. package/vendor/theus-arsenal/rules/common/code-review.md +123 -0
  183. package/vendor/theus-arsenal/rules/common/coding-style.md +90 -0
  184. package/vendor/theus-arsenal/rules/common/development-workflow.md +44 -0
  185. package/vendor/theus-arsenal/rules/common/git-workflow.md +24 -0
  186. package/vendor/theus-arsenal/rules/common/hooks.md +32 -0
  187. package/vendor/theus-arsenal/rules/common/patterns.md +31 -0
  188. package/vendor/theus-arsenal/rules/common/performance.md +53 -0
  189. package/vendor/theus-arsenal/rules/common/security.md +29 -0
  190. package/vendor/theus-arsenal/rules/common/testing.md +57 -0
  191. package/vendor/theus-arsenal/rules/cpp/coding-style.md +44 -0
  192. package/vendor/theus-arsenal/rules/cpp/hooks.md +39 -0
  193. package/vendor/theus-arsenal/rules/cpp/patterns.md +51 -0
  194. package/vendor/theus-arsenal/rules/cpp/security.md +51 -0
  195. package/vendor/theus-arsenal/rules/cpp/testing.md +44 -0
  196. package/vendor/theus-arsenal/rules/csharp/coding-style.md +72 -0
  197. package/vendor/theus-arsenal/rules/csharp/hooks.md +25 -0
  198. package/vendor/theus-arsenal/rules/csharp/patterns.md +50 -0
  199. package/vendor/theus-arsenal/rules/csharp/security.md +58 -0
  200. package/vendor/theus-arsenal/rules/csharp/testing.md +50 -0
  201. package/vendor/theus-arsenal/rules/dart/coding-style.md +159 -0
  202. package/vendor/theus-arsenal/rules/dart/hooks.md +68 -0
  203. package/vendor/theus-arsenal/rules/dart/patterns.md +261 -0
  204. package/vendor/theus-arsenal/rules/dart/security.md +135 -0
  205. package/vendor/theus-arsenal/rules/dart/testing.md +215 -0
  206. package/vendor/theus-arsenal/rules/fsharp/coding-style.md +112 -0
  207. package/vendor/theus-arsenal/rules/fsharp/hooks.md +26 -0
  208. package/vendor/theus-arsenal/rules/fsharp/patterns.md +111 -0
  209. package/vendor/theus-arsenal/rules/fsharp/security.md +76 -0
  210. package/vendor/theus-arsenal/rules/fsharp/testing.md +62 -0
  211. package/vendor/theus-arsenal/rules/golang/coding-style.md +32 -0
  212. package/vendor/theus-arsenal/rules/golang/hooks.md +17 -0
  213. package/vendor/theus-arsenal/rules/golang/patterns.md +45 -0
  214. package/vendor/theus-arsenal/rules/golang/security.md +34 -0
  215. package/vendor/theus-arsenal/rules/golang/testing.md +31 -0
  216. package/vendor/theus-arsenal/rules/java/coding-style.md +114 -0
  217. package/vendor/theus-arsenal/rules/java/hooks.md +18 -0
  218. package/vendor/theus-arsenal/rules/java/patterns.md +147 -0
  219. package/vendor/theus-arsenal/rules/java/security.md +101 -0
  220. package/vendor/theus-arsenal/rules/java/testing.md +133 -0
  221. package/vendor/theus-arsenal/rules/kotlin/coding-style.md +86 -0
  222. package/vendor/theus-arsenal/rules/kotlin/hooks.md +17 -0
  223. package/vendor/theus-arsenal/rules/kotlin/patterns.md +146 -0
  224. package/vendor/theus-arsenal/rules/kotlin/security.md +82 -0
  225. package/vendor/theus-arsenal/rules/kotlin/testing.md +128 -0
  226. package/vendor/theus-arsenal/rules/nuxt/coding-style.md +47 -0
  227. package/vendor/theus-arsenal/rules/nuxt/hooks.md +39 -0
  228. package/vendor/theus-arsenal/rules/nuxt/patterns.md +54 -0
  229. package/vendor/theus-arsenal/rules/nuxt/security.md +48 -0
  230. package/vendor/theus-arsenal/rules/nuxt/testing.md +49 -0
  231. package/vendor/theus-arsenal/rules/php/coding-style.md +40 -0
  232. package/vendor/theus-arsenal/rules/php/hooks.md +24 -0
  233. package/vendor/theus-arsenal/rules/php/patterns.md +33 -0
  234. package/vendor/theus-arsenal/rules/php/security.md +37 -0
  235. package/vendor/theus-arsenal/rules/php/testing.md +38 -0
  236. package/vendor/theus-arsenal/rules/python/coding-style.md +42 -0
  237. package/vendor/theus-arsenal/rules/python/fastapi.md +58 -0
  238. package/vendor/theus-arsenal/rules/python/hooks.md +19 -0
  239. package/vendor/theus-arsenal/rules/python/patterns.md +39 -0
  240. package/vendor/theus-arsenal/rules/python/security.md +30 -0
  241. package/vendor/theus-arsenal/rules/python/testing.md +38 -0
  242. package/vendor/theus-arsenal/rules/react/coding-style.md +109 -0
  243. package/vendor/theus-arsenal/rules/react/hooks.md +187 -0
  244. package/vendor/theus-arsenal/rules/react/patterns.md +194 -0
  245. package/vendor/theus-arsenal/rules/react/security.md +180 -0
  246. package/vendor/theus-arsenal/rules/react/testing.md +208 -0
  247. package/vendor/theus-arsenal/rules/react-native/accessibility.md +55 -0
  248. package/vendor/theus-arsenal/rules/react-native/coding-style.md +71 -0
  249. package/vendor/theus-arsenal/rules/react-native/hooks.md +28 -0
  250. package/vendor/theus-arsenal/rules/react-native/patterns.md +88 -0
  251. package/vendor/theus-arsenal/rules/react-native/performance.md +45 -0
  252. package/vendor/theus-arsenal/rules/react-native/production-readiness.md +51 -0
  253. package/vendor/theus-arsenal/rules/react-native/security.md +43 -0
  254. package/vendor/theus-arsenal/rules/react-native/testing.md +52 -0
  255. package/vendor/theus-arsenal/rules/ruby/coding-style.md +46 -0
  256. package/vendor/theus-arsenal/rules/ruby/hooks.md +37 -0
  257. package/vendor/theus-arsenal/rules/ruby/patterns.md +44 -0
  258. package/vendor/theus-arsenal/rules/ruby/security.md +51 -0
  259. package/vendor/theus-arsenal/rules/ruby/testing.md +51 -0
  260. package/vendor/theus-arsenal/rules/rust/coding-style.md +151 -0
  261. package/vendor/theus-arsenal/rules/rust/hooks.md +16 -0
  262. package/vendor/theus-arsenal/rules/rust/patterns.md +168 -0
  263. package/vendor/theus-arsenal/rules/rust/security.md +141 -0
  264. package/vendor/theus-arsenal/rules/rust/testing.md +154 -0
  265. package/vendor/theus-arsenal/rules/swift/coding-style.md +47 -0
  266. package/vendor/theus-arsenal/rules/swift/hooks.md +20 -0
  267. package/vendor/theus-arsenal/rules/swift/patterns.md +66 -0
  268. package/vendor/theus-arsenal/rules/swift/security.md +33 -0
  269. package/vendor/theus-arsenal/rules/swift/testing.md +45 -0
  270. package/vendor/theus-arsenal/rules/typescript/coding-style.md +199 -0
  271. package/vendor/theus-arsenal/rules/typescript/hooks.md +22 -0
  272. package/vendor/theus-arsenal/rules/typescript/patterns.md +52 -0
  273. package/vendor/theus-arsenal/rules/typescript/security.md +28 -0
  274. package/vendor/theus-arsenal/rules/typescript/testing.md +18 -0
  275. package/vendor/theus-arsenal/rules/vue/coding-style.md +54 -0
  276. package/vendor/theus-arsenal/rules/vue/hooks.md +45 -0
  277. package/vendor/theus-arsenal/rules/vue/patterns.md +56 -0
  278. package/vendor/theus-arsenal/rules/vue/security.md +46 -0
  279. package/vendor/theus-arsenal/rules/vue/testing.md +53 -0
  280. package/vendor/theus-arsenal/rules/web/coding-style.md +108 -0
  281. package/vendor/theus-arsenal/rules/web/design-quality.md +75 -0
  282. package/vendor/theus-arsenal/rules/web/hooks.md +141 -0
  283. package/vendor/theus-arsenal/rules/web/patterns.md +91 -0
  284. package/vendor/theus-arsenal/rules/web/performance.md +76 -0
  285. package/vendor/theus-arsenal/rules/web/security.md +69 -0
  286. package/vendor/theus-arsenal/rules/web/testing.md +67 -0
  287. package/vendor/theus-arsenal/scripts/hooks/bash-hook-dispatcher.js +192 -0
  288. package/vendor/theus-arsenal/scripts/hooks/block-no-verify.js +556 -0
  289. package/vendor/theus-arsenal/scripts/hooks/check-console-log.js +92 -0
  290. package/vendor/theus-arsenal/scripts/hooks/check-hook-enabled.js +16 -0
  291. package/vendor/theus-arsenal/scripts/hooks/config-protection.js +171 -0
  292. package/vendor/theus-arsenal/scripts/hooks/design-quality-check.js +132 -0
  293. package/vendor/theus-arsenal/scripts/hooks/doc-file-warning.js +110 -0
  294. package/vendor/theus-arsenal/scripts/hooks/modo-seguro.js +158 -0
  295. package/vendor/theus-arsenal/scripts/hooks/notificacion-escritorio.js +208 -0
  296. package/vendor/theus-arsenal/scripts/hooks/plugin-hook-bootstrap.js +280 -0
  297. package/vendor/theus-arsenal/scripts/hooks/post-bash-command-log.js +87 -0
  298. package/vendor/theus-arsenal/scripts/hooks/post-bash-dispatcher.js +24 -0
  299. package/vendor/theus-arsenal/scripts/hooks/post-bash-pr-created.js +60 -0
  300. package/vendor/theus-arsenal/scripts/hooks/post-edit-accumulator.js +94 -0
  301. package/vendor/theus-arsenal/scripts/hooks/post-edit-console-warn.js +54 -0
  302. package/vendor/theus-arsenal/scripts/hooks/post-edit-format.js +110 -0
  303. package/vendor/theus-arsenal/scripts/hooks/post-edit-typecheck.js +98 -0
  304. package/vendor/theus-arsenal/scripts/hooks/pre-bash-commit-quality.js +447 -0
  305. package/vendor/theus-arsenal/scripts/hooks/pre-bash-dev-server-block.js +232 -0
  306. package/vendor/theus-arsenal/scripts/hooks/pre-bash-dispatcher.js +27 -0
  307. package/vendor/theus-arsenal/scripts/hooks/pre-compact.js +101 -0
  308. package/vendor/theus-arsenal/scripts/hooks/pretooluse-visible-output.js +49 -0
  309. package/vendor/theus-arsenal/scripts/hooks/quality-gate.js +168 -0
  310. package/vendor/theus-arsenal/scripts/hooks/run-with-flags.js +271 -0
  311. package/vendor/theus-arsenal/scripts/hooks/salud-mcp.js +749 -0
  312. package/vendor/theus-arsenal/scripts/hooks/seguimiento-costos.js +161 -0
  313. package/vendor/theus-arsenal/scripts/hooks/session-end.js +340 -0
  314. package/vendor/theus-arsenal/scripts/hooks/session-start.js +906 -0
  315. package/vendor/theus-arsenal/scripts/hooks/stop-format-typecheck.js +263 -0
  316. package/vendor/theus-arsenal/scripts/hooks/suggest-compact.js +286 -0
  317. package/vendor/theus-arsenal/scripts/hooks/theus-context-monitor.js +289 -0
  318. package/vendor/theus-arsenal/scripts/hooks/verificacion-factual.js +1278 -0
  319. package/vendor/theus-arsenal/scripts/lib/agent-data-home.js +96 -0
  320. package/vendor/theus-arsenal/scripts/lib/cost-estimate.js +66 -0
  321. package/vendor/theus-arsenal/scripts/lib/hook-flags.js +79 -0
  322. package/vendor/theus-arsenal/scripts/lib/llm-summary.js +185 -0
  323. package/vendor/theus-arsenal/scripts/lib/loopback-guard.js +54 -0
  324. package/vendor/theus-arsenal/scripts/lib/observer-sessions.js +237 -0
  325. package/vendor/theus-arsenal/scripts/lib/package-manager.d.ts +120 -0
  326. package/vendor/theus-arsenal/scripts/lib/package-manager.js +434 -0
  327. package/vendor/theus-arsenal/scripts/lib/path-safety.js +86 -0
  328. package/vendor/theus-arsenal/scripts/lib/plan-canvas/markdown.js +285 -0
  329. package/vendor/theus-arsenal/scripts/lib/plan-canvas/sdk.js +238 -0
  330. package/vendor/theus-arsenal/scripts/lib/plan-canvas/server.js +534 -0
  331. package/vendor/theus-arsenal/scripts/lib/plan-canvas/sessions.js +274 -0
  332. package/vendor/theus-arsenal/scripts/lib/plan-canvas/ui.js +546 -0
  333. package/vendor/theus-arsenal/scripts/lib/project-detect.js +451 -0
  334. package/vendor/theus-arsenal/scripts/lib/resolve-formatter.js +193 -0
  335. package/vendor/theus-arsenal/scripts/lib/resolve-theus-root.js +101 -0
  336. package/vendor/theus-arsenal/scripts/lib/session-aliases.d.ts +138 -0
  337. package/vendor/theus-arsenal/scripts/lib/session-aliases.js +483 -0
  338. package/vendor/theus-arsenal/scripts/lib/session-bridge.js +155 -0
  339. package/vendor/theus-arsenal/scripts/lib/session-manager.d.ts +137 -0
  340. package/vendor/theus-arsenal/scripts/lib/session-manager.js +555 -0
  341. package/vendor/theus-arsenal/scripts/lib/shell-split.js +86 -0
  342. package/vendor/theus-arsenal/scripts/lib/shell-substitution.js +501 -0
  343. package/vendor/theus-arsenal/scripts/lib/skill-evolution/dashboard.js +414 -0
  344. package/vendor/theus-arsenal/scripts/lib/skill-evolution/health.js +285 -0
  345. package/vendor/theus-arsenal/scripts/lib/skill-evolution/index.js +22 -0
  346. package/vendor/theus-arsenal/scripts/lib/skill-evolution/provenance.js +200 -0
  347. package/vendor/theus-arsenal/scripts/lib/skill-evolution/tracker.js +157 -0
  348. package/vendor/theus-arsenal/scripts/lib/skill-evolution/versioning.js +246 -0
  349. package/vendor/theus-arsenal/scripts/lib/transcript-context.js +232 -0
  350. package/vendor/theus-arsenal/scripts/lib/utils.d.ts +205 -0
  351. package/vendor/theus-arsenal/scripts/lib/utils.js +658 -0
  352. package/vendor/theus-arsenal/scripts/plan-canvas.js +341 -0
  353. package/vendor/theus-arsenal/scripts/setup-package-manager.js +46 -0
  354. package/vendor/theus-arsenal/scripts/skills-health.js +143 -0
  355. package/vendor/theus-arsenal/skills/a11y-frontend/SKILL.md +444 -0
  356. package/vendor/theus-arsenal/skills/accesibilidad/SKILL.md +144 -0
  357. package/vendor/theus-arsenal/skills/acelerador-throughput-datos/SKILL.md +72 -0
  358. package/vendor/theus-arsenal/skills/agente-scraper-datos/SKILL.md +771 -0
  359. package/vendor/theus-arsenal/skills/analisis-plataformas-competencia/SKILL.md +137 -0
  360. package/vendor/theus-arsenal/skills/api-x/SKILL.md +233 -0
  361. package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/SKILL.md +335 -0
  362. package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/agents/observer-loop.sh +374 -0
  363. package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/agents/observer.md +188 -0
  364. package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/agents/session-guardian.sh +153 -0
  365. package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/agents/start-observer.sh +253 -0
  366. package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/config.json +8 -0
  367. package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/hooks/observe.sh +594 -0
  368. package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/scripts/detect-project.sh +325 -0
  369. package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/scripts/instinct-cli.py +1918 -0
  370. package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/scripts/lib/arsenal-dir.sh +23 -0
  371. package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/scripts/test_parse_instinct.py +1420 -0
  372. package/vendor/theus-arsenal/skills/arquitectura-hexagonal/SKILL.md +275 -0
  373. package/vendor/theus-arsenal/skills/arquitectura-limpia-android/SKILL.md +340 -0
  374. package/vendor/theus-arsenal/skills/arquitectura-pipelines-recomendacion/SKILL.md +112 -0
  375. package/vendor/theus-arsenal/skills/atlas-datos-prediccion/SKILL.md +53 -0
  376. package/vendor/theus-arsenal/skills/auditoria-arquitectura-agentes/SKILL.md +257 -0
  377. package/vendor/theus-arsenal/skills/auditoria-produccion/SKILL.md +180 -0
  378. package/vendor/theus-arsenal/skills/auditoria-rutas-clic/SKILL.md +243 -0
  379. package/vendor/theus-arsenal/skills/autoevaluacion-agente/SKILL.md +180 -0
  380. package/vendor/theus-arsenal/skills/autoevaluacion-agente/examples/high-score-example.md +89 -0
  381. package/vendor/theus-arsenal/skills/autoevaluacion-agente/examples/low-score-example.md +87 -0
  382. package/vendor/theus-arsenal/skills/autoevaluacion-agente/references/evaluation-criteria.md +71 -0
  383. package/vendor/theus-arsenal/skills/autoevaluacion-agente/references/hook-integration.md +90 -0
  384. package/vendor/theus-arsenal/skills/autoevaluacion-agente/scripts/evaluate.py +409 -0
  385. package/vendor/theus-arsenal/skills/autoevaluacion-agente/templates/evaluation-report.md +86 -0
  386. package/vendor/theus-arsenal/skills/automatizacion-ssh-netmiko/SKILL.md +176 -0
  387. package/vendor/theus-arsenal/skills/base-datos-pubmed/SKILL.md +174 -0
  388. package/vendor/theus-arsenal/skills/base-datos-uspto/SKILL.md +173 -0
  389. package/vendor/theus-arsenal/skills/benchmark/SKILL.md +92 -0
  390. package/vendor/theus-arsenal/skills/bitacora-crecimiento/SKILL.md +120 -0
  391. package/vendor/theus-arsenal/skills/bucle-verificacion/SKILL.md +125 -0
  392. package/vendor/theus-arsenal/skills/buscar-primero/SKILL.md +184 -0
  393. package/vendor/theus-arsenal/skills/busqueda-exa/SKILL.md +111 -0
  394. package/vendor/theus-arsenal/skills/cache-por-hash/SKILL.md +160 -0
  395. package/vendor/theus-arsenal/skills/campana-marketing/SKILL.md +118 -0
  396. package/vendor/theus-arsenal/skills/capacidad-producto/SKILL.md +138 -0
  397. package/vendor/theus-arsenal/skills/cazador-vulnerabilidades/SKILL.md +104 -0
  398. package/vendor/theus-arsenal/skills/compactacion-estrategica/SKILL.md +115 -0
  399. package/vendor/theus-arsenal/skills/comparador-baskets-prediccion/SKILL.md +69 -0
  400. package/vendor/theus-arsenal/skills/compras-energia/SKILL.md +206 -0
  401. package/vendor/theus-arsenal/skills/concurrencia-swift-6-2/SKILL.md +224 -0
  402. package/vendor/theus-arsenal/skills/consejo/SKILL.md +201 -0
  403. package/vendor/theus-arsenal/skills/construccion-harness-agentes/SKILL.md +78 -0
  404. package/vendor/theus-arsenal/skills/constructor-conectores/SKILL.md +119 -0
  405. package/vendor/theus-arsenal/skills/constructor-equipos/SKILL.md +169 -0
  406. package/vendor/theus-arsenal/skills/consulta-documentacion/SKILL.md +92 -0
  407. package/vendor/theus-arsenal/skills/consultas-genomicas-gget/SKILL.md +170 -0
  408. package/vendor/theus-arsenal/skills/contacto-inversores/SKILL.md +95 -0
  409. package/vendor/theus-arsenal/skills/corrutinas-flows-kotlin/SKILL.md +284 -0
  410. package/vendor/theus-arsenal/skills/creacion-video-remotion/SKILL.md +46 -0
  411. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/3d.md +86 -0
  412. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/animations.md +29 -0
  413. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/assets/charts-bar-chart.tsx +173 -0
  414. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/assets/text-animations-typewriter.tsx +100 -0
  415. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/assets/text-animations-word-highlight.tsx +108 -0
  416. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/assets.md +78 -0
  417. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/audio.md +172 -0
  418. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/calculate-metadata.md +104 -0
  419. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/can-decode.md +75 -0
  420. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/charts.md +58 -0
  421. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/compositions.md +146 -0
  422. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/display-captions.md +126 -0
  423. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/extract-frames.md +229 -0
  424. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/fonts.md +152 -0
  425. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/get-audio-duration.md +58 -0
  426. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/get-video-dimensions.md +68 -0
  427. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/get-video-duration.md +58 -0
  428. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/gifs.md +138 -0
  429. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/images.md +130 -0
  430. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/import-srt-captions.md +67 -0
  431. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/lottie.md +67 -0
  432. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/measuring-dom-nodes.md +34 -0
  433. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/measuring-text.md +143 -0
  434. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/sequencing.md +106 -0
  435. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/tailwind.md +11 -0
  436. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/text-animations.md +20 -0
  437. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/timing.md +179 -0
  438. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/transcribe-captions.md +19 -0
  439. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/transitions.md +122 -0
  440. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/trimming.md +52 -0
  441. package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/videos.md +171 -0
  442. package/vendor/theus-arsenal/skills/cumplimiento-aduanero/SKILL.md +270 -0
  443. package/vendor/theus-arsenal/skills/cumplimiento-hipaa/SKILL.md +78 -0
  444. package/vendor/theus-arsenal/skills/datos-sensibles-salud/SKILL.md +149 -0
  445. package/vendor/theus-arsenal/skills/decimales-tokens-evm/SKILL.md +128 -0
  446. package/vendor/theus-arsenal/skills/decisiones-arquitectura/SKILL.md +206 -0
  447. package/vendor/theus-arsenal/skills/demos-ui/SKILL.md +469 -0
  448. package/vendor/theus-arsenal/skills/desarrollo-por-intencion/SKILL.md +369 -0
  449. package/vendor/theus-arsenal/skills/descubrimiento-marca/SKILL.md +149 -0
  450. package/vendor/theus-arsenal/skills/descubrimiento-marca/references/10_proposito-porque.md +42 -0
  451. package/vendor/theus-arsenal/skills/descubrimiento-marca/references/20_posicionamiento.md +47 -0
  452. package/vendor/theus-arsenal/skills/descubrimiento-marca/references/30_audiencia-nicho.md +53 -0
  453. package/vendor/theus-arsenal/skills/descubrimiento-marca/references/40_personalidad-arquetipo.md +61 -0
  454. package/vendor/theus-arsenal/skills/descubrimiento-marca/references/50_voz-tono.md +62 -0
  455. package/vendor/theus-arsenal/skills/descubrimiento-marca/references/60_narrativa-historia.md +54 -0
  456. package/vendor/theus-arsenal/skills/descubrimiento-marca/references/70_tension-fundador.md +50 -0
  457. package/vendor/theus-arsenal/skills/descubrimiento-marca/references/90_SINTESIS.md +133 -0
  458. package/vendor/theus-arsenal/skills/descubrimiento-plugins-laravel/SKILL.md +230 -0
  459. package/vendor/theus-arsenal/skills/destilado-reglas/SKILL.md +263 -0
  460. package/vendor/theus-arsenal/skills/destilado-reglas/scripts/scan-rules.sh +58 -0
  461. package/vendor/theus-arsenal/skills/destilado-reglas/scripts/scan-skills.sh +129 -0
  462. package/vendor/theus-arsenal/skills/diagnostico-bgp/SKILL.md +170 -0
  463. package/vendor/theus-arsenal/skills/direccion-estetica/SKILL.md +220 -0
  464. package/vendor/theus-arsenal/skills/direccion-estetica/references/taxonomia-generos.md +89 -0
  465. package/vendor/theus-arsenal/skills/diseno-api/SKILL.md +522 -0
  466. package/vendor/theus-arsenal/skills/diseno-liquid-glass/SKILL.md +282 -0
  467. package/vendor/theus-arsenal/skills/e2e-escritorio-windows/SKILL.md +879 -0
  468. package/vendor/theus-arsenal/skills/edicion-video/SKILL.md +289 -0
  469. package/vendor/theus-arsenal/skills/enfoque-producto/SKILL.md +91 -0
  470. package/vendor/theus-arsenal/skills/entornos-flox/SKILL.md +493 -0
  471. package/vendor/theus-arsenal/skills/estandares-codigo/SKILL.md +548 -0
  472. package/vendor/theus-arsenal/skills/estandares-cpp/SKILL.md +727 -0
  473. package/vendor/theus-arsenal/skills/estandares-java/SKILL.md +389 -0
  474. package/vendor/theus-arsenal/skills/estilo-legado/SKILL.md +149 -0
  475. package/vendor/theus-arsenal/skills/estructura-informes-competencia/SKILL.md +95 -0
  476. package/vendor/theus-arsenal/skills/evaluacion-academica/SKILL.md +165 -0
  477. package/vendor/theus-arsenal/skills/explorador-skills/SKILL.md +129 -0
  478. package/vendor/theus-arsenal/skills/flujo-git/SKILL.md +714 -0
  479. package/vendor/theus-arsenal/skills/flujo-ingenieria-ml/SKILL.md +343 -0
  480. package/vendor/theus-arsenal/skills/flujo-tdd/SKILL.md +584 -0
  481. package/vendor/theus-arsenal/skills/forja-personas/SKILL.md +298 -0
  482. package/vendor/theus-arsenal/skills/forja-personas/gacha.py +224 -0
  483. package/vendor/theus-arsenal/skills/forja-personas/gacha.sh +5 -0
  484. package/vendor/theus-arsenal/skills/forja-personas/references/avatar-style.md +123 -0
  485. package/vendor/theus-arsenal/skills/forja-personas/references/boundary-rules.md +53 -0
  486. package/vendor/theus-arsenal/skills/forja-personas/references/error-handling.md +53 -0
  487. package/vendor/theus-arsenal/skills/forja-personas/references/identity-tension.md +48 -0
  488. package/vendor/theus-arsenal/skills/forja-personas/references/naming-system.md +39 -0
  489. package/vendor/theus-arsenal/skills/forja-personas/references/output-template.md +166 -0
  490. package/vendor/theus-arsenal/skills/fundamentos-animacion/SKILL.md +296 -0
  491. package/vendor/theus-arsenal/skills/generacion-iconos-ios/SKILL.md +156 -0
  492. package/vendor/theus-arsenal/skills/generacion-iconos-ios/scripts/generate_icons.swift +258 -0
  493. package/vendor/theus-arsenal/skills/generacion-iconos-ios/scripts/iconify_gen.sh +235 -0
  494. package/vendor/theus-arsenal/skills/gestion-excepciones-logisticas/SKILL.md +208 -0
  495. package/vendor/theus-arsenal/skills/gestion-transportistas/SKILL.md +204 -0
  496. package/vendor/theus-arsenal/skills/guia-adopcion-ml/SKILL.md +64 -0
  497. package/vendor/theus-arsenal/skills/harness-agente-autonomo/SKILL.md +252 -0
  498. package/vendor/theus-arsenal/skills/harness-eval-clinico/SKILL.md +212 -0
  499. package/vendor/theus-arsenal/skills/harness-evaluacion/SKILL.md +296 -0
  500. package/vendor/theus-arsenal/skills/harness-generador-evaluador/SKILL.md +254 -0
  501. package/vendor/theus-arsenal/skills/homelab-diseno-red/SKILL.md +120 -0
  502. package/vendor/theus-arsenal/skills/homelab-dns-pihole/SKILL.md +264 -0
  503. package/vendor/theus-arsenal/skills/homelab-preparacion-red/SKILL.md +144 -0
  504. package/vendor/theus-arsenal/skills/homelab-segmentacion-vlan/SKILL.md +307 -0
  505. package/vendor/theus-arsenal/skills/homelab-vpn-wireguard/SKILL.md +299 -0
  506. package/vendor/theus-arsenal/skills/ingenieria-agentica/SKILL.md +96 -0
  507. package/vendor/theus-arsenal/skills/inspeccion-animaciones-blender/SKILL.md +164 -0
  508. package/vendor/theus-arsenal/skills/instaladores-python/SKILL.md +820 -0
  509. package/vendor/theus-arsenal/skills/integracion-jira/SKILL.md +307 -0
  510. package/vendor/theus-arsenal/skills/inteligencia-leads/SKILL.md +312 -0
  511. package/vendor/theus-arsenal/skills/inteligencia-leads/agents/agente-enriquecimiento.md +87 -0
  512. package/vendor/theus-arsenal/skills/inteligencia-leads/agents/mapeador-mutuos.md +76 -0
  513. package/vendor/theus-arsenal/skills/inteligencia-leads/agents/puntuador-senales.md +60 -0
  514. package/vendor/theus-arsenal/skills/inteligencia-leads/agents/redactor-outreach.md +102 -0
  515. package/vendor/theus-arsenal/skills/inteligencia-mercados-prediccion/SKILL.md +53 -0
  516. package/vendor/theus-arsenal/skills/introspeccion-agente/SKILL.md +150 -0
  517. package/vendor/theus-arsenal/skills/inventario-skills/SKILL.md +194 -0
  518. package/vendor/theus-arsenal/skills/inventario-skills/scripts/quick-diff.sh +87 -0
  519. package/vendor/theus-arsenal/skills/inventario-skills/scripts/save-results.sh +57 -0
  520. package/vendor/theus-arsenal/skills/inventario-skills/scripts/scan.sh +170 -0
  521. package/vendor/theus-arsenal/skills/investigacion-mercado/SKILL.md +87 -0
  522. package/vendor/theus-arsenal/skills/investigacion-oraculos-prediccion/SKILL.md +59 -0
  523. package/vendor/theus-arsenal/skills/investigacion-profunda/SKILL.md +161 -0
  524. package/vendor/theus-arsenal/skills/keccak256-nodejs/SKILL.md +100 -0
  525. package/vendor/theus-arsenal/skills/libro-decisiones-recursivo/SKILL.md +82 -0
  526. package/vendor/theus-arsenal/skills/lienzo-planes/SKILL.md +111 -0
  527. package/vendor/theus-arsenal/skills/limpieza-configuracion/SKILL.md +116 -0
  528. package/vendor/theus-arsenal/skills/logistica-inversa-devoluciones/SKILL.md +241 -0
  529. package/vendor/theus-arsenal/skills/manejo-errores/SKILL.md +375 -0
  530. package/vendor/theus-arsenal/skills/materiales-inversores/SKILL.md +101 -0
  531. package/vendor/theus-arsenal/skills/memoria-por-proyecto/SKILL.md +170 -0
  532. package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/forget.mjs +44 -0
  533. package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/info.mjs +24 -0
  534. package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/init.mjs +152 -0
  535. package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/list.mjs +40 -0
  536. package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/migrate.mjs +214 -0
  537. package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/resume.mjs +36 -0
  538. package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/save.mjs +210 -0
  539. package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/shared.mjs +402 -0
  540. package/vendor/theus-arsenal/skills/memoria-por-proyecto/hooks/session-start.mjs +238 -0
  541. package/vendor/theus-arsenal/skills/metodologia-benchmarks/SKILL.md +131 -0
  542. package/vendor/theus-arsenal/skills/migraciones-bd/SKILL.md +430 -0
  543. package/vendor/theus-arsenal/skills/modelos-fundacionales-en-dispositivo/SKILL.md +244 -0
  544. package/vendor/theus-arsenal/skills/modo-seguro/SKILL.md +86 -0
  545. package/vendor/theus-arsenal/skills/motion-avanzado/SKILL.md +592 -0
  546. package/vendor/theus-arsenal/skills/motor-de-contenido/SKILL.md +136 -0
  547. package/vendor/theus-arsenal/skills/no-conformidades-calidad/SKILL.md +249 -0
  548. package/vendor/theus-arsenal/skills/onboarding-codigo/SKILL.md +244 -0
  549. package/vendor/theus-arsenal/skills/operaciones-agentes-empresariales/SKILL.md +51 -0
  550. package/vendor/theus-arsenal/skills/operaciones-conocimiento/SKILL.md +159 -0
  551. package/vendor/theus-arsenal/skills/operaciones-correo/SKILL.md +123 -0
  552. package/vendor/theus-arsenal/skills/operaciones-facturacion/SKILL.md +142 -0
  553. package/vendor/theus-arsenal/skills/operaciones-flujo-proyectos/SKILL.md +110 -0
  554. package/vendor/theus-arsenal/skills/operaciones-github/SKILL.md +143 -0
  555. package/vendor/theus-arsenal/skills/operaciones-google-workspace/SKILL.md +100 -0
  556. package/vendor/theus-arsenal/skills/operaciones-investigacion/SKILL.md +124 -0
  557. package/vendor/theus-arsenal/skills/operaciones-mensajes/SKILL.md +103 -0
  558. package/vendor/theus-arsenal/skills/operaciones-terminal/SKILL.md +110 -0
  559. package/vendor/theus-arsenal/skills/optimizacion-benchmark/SKILL.md +70 -0
  560. package/vendor/theus-arsenal/skills/optimizacion-costos-llm/SKILL.md +182 -0
  561. package/vendor/theus-arsenal/skills/optimizador-conexiones/SKILL.md +191 -0
  562. package/vendor/theus-arsenal/skills/optimizador-paralelismo/SKILL.md +75 -0
  563. package/vendor/theus-arsenal/skills/optimizador-prompts/SKILL.md +374 -0
  564. package/vendor/theus-arsenal/skills/orq-agregar-funcionalidad/SKILL.md +37 -0
  565. package/vendor/theus-arsenal/skills/orq-cambiar-funcionalidad/SKILL.md +36 -0
  566. package/vendor/theus-arsenal/skills/orq-construir-mvp/SKILL.md +38 -0
  567. package/vendor/theus-arsenal/skills/orq-corregir-defecto/SKILL.md +36 -0
  568. package/vendor/theus-arsenal/skills/orq-pipeline/SKILL.md +134 -0
  569. package/vendor/theus-arsenal/skills/orq-refinar-codigo/SKILL.md +49 -0
  570. package/vendor/theus-arsenal/skills/orquestacion-equipos-agentes/SKILL.md +117 -0
  571. package/vendor/theus-arsenal/skills/pagos-agentes-x402/SKILL.md +237 -0
  572. package/vendor/theus-arsenal/skills/patrones-angular/SKILL.md +153 -0
  573. package/vendor/theus-arsenal/skills/patrones-angular/references/angular-animations.md +160 -0
  574. package/vendor/theus-arsenal/skills/patrones-angular/references/angular-aria.md +410 -0
  575. package/vendor/theus-arsenal/skills/patrones-angular/references/cli.md +86 -0
  576. package/vendor/theus-arsenal/skills/patrones-angular/references/component-harnesses.md +59 -0
  577. package/vendor/theus-arsenal/skills/patrones-angular/references/component-styling.md +91 -0
  578. package/vendor/theus-arsenal/skills/patrones-angular/references/components.md +117 -0
  579. package/vendor/theus-arsenal/skills/patrones-angular/references/creating-services.md +97 -0
  580. package/vendor/theus-arsenal/skills/patrones-angular/references/data-resolvers.md +69 -0
  581. package/vendor/theus-arsenal/skills/patrones-angular/references/define-routes.md +67 -0
  582. package/vendor/theus-arsenal/skills/patrones-angular/references/defining-providers.md +72 -0
  583. package/vendor/theus-arsenal/skills/patrones-angular/references/di-fundamentals.md +120 -0
  584. package/vendor/theus-arsenal/skills/patrones-angular/references/e2e-testing.md +56 -0
  585. package/vendor/theus-arsenal/skills/patrones-angular/references/effects.md +83 -0
  586. package/vendor/theus-arsenal/skills/patrones-angular/references/hierarchical-injectors.md +43 -0
  587. package/vendor/theus-arsenal/skills/patrones-angular/references/host-elements.md +80 -0
  588. package/vendor/theus-arsenal/skills/patrones-angular/references/injection-context.md +63 -0
  589. package/vendor/theus-arsenal/skills/patrones-angular/references/inputs.md +101 -0
  590. package/vendor/theus-arsenal/skills/patrones-angular/references/linked-signal.md +59 -0
  591. package/vendor/theus-arsenal/skills/patrones-angular/references/loading-strategies.md +61 -0
  592. package/vendor/theus-arsenal/skills/patrones-angular/references/mcp.md +67 -0
  593. package/vendor/theus-arsenal/skills/patrones-angular/references/navigate-to-routes.md +69 -0
  594. package/vendor/theus-arsenal/skills/patrones-angular/references/outputs.md +86 -0
  595. package/vendor/theus-arsenal/skills/patrones-angular/references/reactive-forms.md +122 -0
  596. package/vendor/theus-arsenal/skills/patrones-angular/references/rendering-strategies.md +44 -0
  597. package/vendor/theus-arsenal/skills/patrones-angular/references/resource.md +77 -0
  598. package/vendor/theus-arsenal/skills/patrones-angular/references/route-animations.md +56 -0
  599. package/vendor/theus-arsenal/skills/patrones-angular/references/route-guards.md +52 -0
  600. package/vendor/theus-arsenal/skills/patrones-angular/references/router-lifecycle.md +45 -0
  601. package/vendor/theus-arsenal/skills/patrones-angular/references/router-testing.md +87 -0
  602. package/vendor/theus-arsenal/skills/patrones-angular/references/show-routes-with-outlets.md +68 -0
  603. package/vendor/theus-arsenal/skills/patrones-angular/references/signal-forms.md +795 -0
  604. package/vendor/theus-arsenal/skills/patrones-angular/references/signals-overview.md +94 -0
  605. package/vendor/theus-arsenal/skills/patrones-angular/references/tailwind-css.md +69 -0
  606. package/vendor/theus-arsenal/skills/patrones-angular/references/template-driven-forms.md +114 -0
  607. package/vendor/theus-arsenal/skills/patrones-angular/references/testing-fundamentals.md +65 -0
  608. package/vendor/theus-arsenal/skills/patrones-animacion/SKILL.md +432 -0
  609. package/vendor/theus-arsenal/skills/patrones-backend/SKILL.md +560 -0
  610. package/vendor/theus-arsenal/skills/patrones-cdss-clinico/SKILL.md +249 -0
  611. package/vendor/theus-arsenal/skills/patrones-cisco-ios/SKILL.md +148 -0
  612. package/vendor/theus-arsenal/skills/patrones-clickhouse/SKILL.md +443 -0
  613. package/vendor/theus-arsenal/skills/patrones-compose-multiplatform/SKILL.md +298 -0
  614. package/vendor/theus-arsenal/skills/patrones-dart-flutter/SKILL.md +566 -0
  615. package/vendor/theus-arsenal/skills/patrones-despliegue/SKILL.md +426 -0
  616. package/vendor/theus-arsenal/skills/patrones-django/SKILL.md +739 -0
  617. package/vendor/theus-arsenal/skills/patrones-django-celery/SKILL.md +456 -0
  618. package/vendor/theus-arsenal/skills/patrones-docker/SKILL.md +363 -0
  619. package/vendor/theus-arsenal/skills/patrones-dotnet/SKILL.md +321 -0
  620. package/vendor/theus-arsenal/skills/patrones-emr-clinico/SKILL.md +168 -0
  621. package/vendor/theus-arsenal/skills/patrones-fastapi/SKILL.md +513 -0
  622. package/vendor/theus-arsenal/skills/patrones-frontend/SKILL.md +655 -0
  623. package/vendor/theus-arsenal/skills/patrones-go/SKILL.md +674 -0
  624. package/vendor/theus-arsenal/skills/patrones-jpa/SKILL.md +156 -0
  625. package/vendor/theus-arsenal/skills/patrones-kotlin/SKILL.md +717 -0
  626. package/vendor/theus-arsenal/skills/patrones-kotlin-exposed/SKILL.md +724 -0
  627. package/vendor/theus-arsenal/skills/patrones-kotlin-ktor/SKILL.md +694 -0
  628. package/vendor/theus-arsenal/skills/patrones-kubernetes/SKILL.md +754 -0
  629. package/vendor/theus-arsenal/skills/patrones-laravel/SKILL.md +414 -0
  630. package/vendor/theus-arsenal/skills/patrones-mcp/SKILL.md +66 -0
  631. package/vendor/theus-arsenal/skills/patrones-mysql/SKILL.md +420 -0
  632. package/vendor/theus-arsenal/skills/patrones-nestjs/SKILL.md +229 -0
  633. package/vendor/theus-arsenal/skills/patrones-nextjs/SKILL.md +56 -0
  634. package/vendor/theus-arsenal/skills/patrones-nuxt4/SKILL.md +99 -0
  635. package/vendor/theus-arsenal/skills/patrones-perl/SKILL.md +508 -0
  636. package/vendor/theus-arsenal/skills/patrones-postgres/SKILL.md +141 -0
  637. package/vendor/theus-arsenal/skills/patrones-prisma/SKILL.md +399 -0
  638. package/vendor/theus-arsenal/skills/patrones-python/SKILL.md +750 -0
  639. package/vendor/theus-arsenal/skills/patrones-pytorch/SKILL.md +400 -0
  640. package/vendor/theus-arsenal/skills/patrones-quarkus/SKILL.md +729 -0
  641. package/vendor/theus-arsenal/skills/patrones-react/SKILL.md +339 -0
  642. package/vendor/theus-arsenal/skills/patrones-react-native/SKILL.md +325 -0
  643. package/vendor/theus-arsenal/skills/patrones-redis/SKILL.md +401 -0
  644. package/vendor/theus-arsenal/skills/patrones-rust/SKILL.md +504 -0
  645. package/vendor/theus-arsenal/skills/patrones-springboot/SKILL.md +314 -0
  646. package/vendor/theus-arsenal/skills/patrones-swiftui/SKILL.md +261 -0
  647. package/vendor/theus-arsenal/skills/patrones-tinystruct/SKILL.md +281 -0
  648. package/vendor/theus-arsenal/skills/patrones-tinystruct/references/architecture.md +90 -0
  649. package/vendor/theus-arsenal/skills/patrones-tinystruct/references/data-handling.md +60 -0
  650. package/vendor/theus-arsenal/skills/patrones-tinystruct/references/database.md +99 -0
  651. package/vendor/theus-arsenal/skills/patrones-tinystruct/references/routing.md +64 -0
  652. package/vendor/theus-arsenal/skills/patrones-tinystruct/references/system-usage.md +97 -0
  653. package/vendor/theus-arsenal/skills/patrones-tinystruct/references/testing.md +72 -0
  654. package/vendor/theus-arsenal/skills/patrones-vite/SKILL.md +449 -0
  655. package/vendor/theus-arsenal/skills/patrones-vue/SKILL.md +469 -0
  656. package/vendor/theus-arsenal/skills/persistencia-actores-swift/SKILL.md +148 -0
  657. package/vendor/theus-arsenal/skills/pipeline-opensource/SKILL.md +254 -0
  658. package/vendor/theus-arsenal/skills/planificacion-demanda-inventario/SKILL.md +236 -0
  659. package/vendor/theus-arsenal/skills/planificador-trades-prediccion/SKILL.md +60 -0
  660. package/vendor/theus-arsenal/skills/plano-tecnico/SKILL.md +102 -0
  661. package/vendor/theus-arsenal/skills/presentaciones-html/SKILL.md +189 -0
  662. package/vendor/theus-arsenal/skills/presentaciones-html/STYLE_PRESETS.md +330 -0
  663. package/vendor/theus-arsenal/skills/presentaciones-html/animation-patterns.md +122 -0
  664. package/vendor/theus-arsenal/skills/presentaciones-html/html-template.md +419 -0
  665. package/vendor/theus-arsenal/skills/presentaciones-html/scripts/export-pdf.sh +418 -0
  666. package/vendor/theus-arsenal/skills/presentaciones-html/scripts/extract-pptx.py +96 -0
  667. package/vendor/theus-arsenal/skills/presentaciones-html/viewport-base.css +153 -0
  668. package/vendor/theus-arsenal/skills/presupuesto-contexto/SKILL.md +263 -0
  669. package/vendor/theus-arsenal/skills/procesamiento-documentos-nutrient/SKILL.md +168 -0
  670. package/vendor/theus-arsenal/skills/programacion-produccion/SKILL.md +220 -0
  671. package/vendor/theus-arsenal/skills/publicacion-cruzada/SKILL.md +117 -0
  672. package/vendor/theus-arsenal/skills/publicador-social/SKILL.md +121 -0
  673. package/vendor/theus-arsenal/skills/puerta-de-entrega/SKILL.md +164 -0
  674. package/vendor/theus-arsenal/skills/puerta-de-entrega/hooks/puerta-entrega.py +242 -0
  675. package/vendor/theus-arsenal/skills/pulir-interfaces/SKILL.md +126 -0
  676. package/vendor/theus-arsenal/skills/qa-navegador/SKILL.md +103 -0
  677. package/vendor/theus-arsenal/skills/ranking-grafo-social/SKILL.md +153 -0
  678. package/vendor/theus-arsenal/skills/recuperacion-iterativa/SKILL.md +236 -0
  679. package/vendor/theus-arsenal/skills/redaccion-articulos/SKILL.md +81 -0
  680. package/vendor/theus-arsenal/skills/regex-vs-llm/SKILL.md +221 -0
  681. package/vendor/theus-arsenal/skills/regresion-codigo-ia/SKILL.md +388 -0
  682. package/vendor/theus-arsenal/skills/rendimiento-react/SKILL.md +567 -0
  683. package/vendor/theus-arsenal/skills/revision-codigo-flutter-dart/SKILL.md +442 -0
  684. package/vendor/theus-arsenal/skills/revision-literatura-cientifica/SKILL.md +191 -0
  685. package/vendor/theus-arsenal/skills/revision-multiperspectiva/SKILL.md +302 -0
  686. package/vendor/theus-arsenal/skills/revision-riesgo-prediccion/SKILL.md +56 -0
  687. package/vendor/theus-arsenal/skills/revision-seguridad/SKILL.md +505 -0
  688. package/vendor/theus-arsenal/skills/revision-seguridad/cloud-infrastructure-security.md +361 -0
  689. package/vendor/theus-arsenal/skills/runtime-bun/SKILL.md +83 -0
  690. package/vendor/theus-arsenal/skills/salud-codigo-codescene/SKILL.md +163 -0
  691. package/vendor/theus-arsenal/skills/salud-interfaces-red/SKILL.md +143 -0
  692. package/vendor/theus-arsenal/skills/seguimiento-costos/SKILL.md +122 -0
  693. package/vendor/theus-arsenal/skills/seguridad-agentes-trading/SKILL.md +145 -0
  694. package/vendor/theus-arsenal/skills/seguridad-amm-defi/SKILL.md +166 -0
  695. package/vendor/theus-arsenal/skills/seguridad-django/SKILL.md +648 -0
  696. package/vendor/theus-arsenal/skills/seguridad-laravel/SKILL.md +945 -0
  697. package/vendor/theus-arsenal/skills/seguridad-perl/SKILL.md +507 -0
  698. package/vendor/theus-arsenal/skills/seguridad-quarkus/SKILL.md +474 -0
  699. package/vendor/theus-arsenal/skills/seguridad-springboot/SKILL.md +279 -0
  700. package/vendor/theus-arsenal/skills/seo/SKILL.md +166 -0
  701. package/vendor/theus-arsenal/skills/sistema-diseno/SKILL.md +81 -0
  702. package/vendor/theus-arsenal/skills/sistema-operativo-agentico/SKILL.md +375 -0
  703. package/vendor/theus-arsenal/skills/sistemas-latencia-critica/SKILL.md +65 -0
  704. package/vendor/theus-arsenal/skills/tdd-django/SKILL.md +735 -0
  705. package/vendor/theus-arsenal/skills/tdd-laravel/SKILL.md +673 -0
  706. package/vendor/theus-arsenal/skills/tdd-quarkus/SKILL.md +817 -0
  707. package/vendor/theus-arsenal/skills/tdd-springboot/SKILL.md +165 -0
  708. package/vendor/theus-arsenal/skills/testing-cpp/SKILL.md +328 -0
  709. package/vendor/theus-arsenal/skills/testing-csharp/SKILL.md +321 -0
  710. package/vendor/theus-arsenal/skills/testing-e2e/SKILL.md +325 -0
  711. package/vendor/theus-arsenal/skills/testing-go/SKILL.md +719 -0
  712. package/vendor/theus-arsenal/skills/testing-kotlin/SKILL.md +829 -0
  713. package/vendor/theus-arsenal/skills/testing-perl/SKILL.md +479 -0
  714. package/vendor/theus-arsenal/skills/testing-protocolos-di-swift/SKILL.md +196 -0
  715. package/vendor/theus-arsenal/skills/testing-python/SKILL.md +815 -0
  716. package/vendor/theus-arsenal/skills/testing-react/SKILL.md +421 -0
  717. package/vendor/theus-arsenal/skills/testing-rust/SKILL.md +506 -0
  718. package/vendor/theus-arsenal/skills/tours-de-codigo/SKILL.md +252 -0
  719. package/vendor/theus-arsenal/skills/traduccion-documentos-visado/SKILL.md +121 -0
  720. package/vendor/theus-arsenal/skills/ui-a-vue/SKILL.md +141 -0
  721. package/vendor/theus-arsenal/skills/validacion-config-red/SKILL.md +211 -0
  722. package/vendor/theus-arsenal/skills/verificacion-django/SKILL.md +470 -0
  723. package/vendor/theus-arsenal/skills/verificacion-factual/SKILL.md +142 -0
  724. package/vendor/theus-arsenal/skills/verificacion-laravel/SKILL.md +184 -0
  725. package/vendor/theus-arsenal/skills/verificacion-quarkus/SKILL.md +485 -0
  726. package/vendor/theus-arsenal/skills/verificacion-springboot/SKILL.md +237 -0
  727. package/vendor/theus-arsenal/skills/videodb/SKILL.md +374 -0
  728. package/vendor/theus-arsenal/skills/videodb/reference/api-reference.md +550 -0
  729. package/vendor/theus-arsenal/skills/videodb/reference/capture-reference.md +407 -0
  730. package/vendor/theus-arsenal/skills/videodb/reference/capture.md +101 -0
  731. package/vendor/theus-arsenal/skills/videodb/reference/editor.md +443 -0
  732. package/vendor/theus-arsenal/skills/videodb/reference/generative.md +331 -0
  733. package/vendor/theus-arsenal/skills/videodb/reference/rtstream-reference.md +564 -0
  734. package/vendor/theus-arsenal/skills/videodb/reference/rtstream.md +65 -0
  735. package/vendor/theus-arsenal/skills/videodb/reference/search.md +230 -0
  736. package/vendor/theus-arsenal/skills/videodb/reference/streaming.md +406 -0
  737. package/vendor/theus-arsenal/skills/videodb/reference/use-cases.md +118 -0
  738. package/vendor/theus-arsenal/skills/videodb/scripts/ws_listener.py +279 -0
  739. package/vendor/theus-arsenal/skills/videos-manim/SKILL.md +91 -0
  740. package/vendor/theus-arsenal/skills/videos-manim/assets/network_graph_scene.py +52 -0
  741. package/vendor/theus-arsenal/skills/vigilancia-canary/SKILL.md +108 -0
  742. package/vendor/theus-arsenal/skills/voz-de-marca/SKILL.md +106 -0
@@ -0,0 +1,206 @@
1
+ ---
2
+ name: decisiones-arquitectura
3
+ description: Captura las decisiones arquitectónicas tomadas durante las sesiones de Theus como ADR estructurados. Detecta los momentos de decisión, registra el contexto, las alternativas consideradas y la justificación. Mantiene el registro de ADR en el almacén de Ñaupa (tool manage_adr del MCP theus-naupa) para que los futuros desarrolladores entiendan por qué el código base tiene la forma que tiene.
4
+ ---
5
+
6
+ # Registros de decisiones de arquitectura (ADR)
7
+
8
+ Captura las decisiones arquitectónicas en el momento en que ocurren durante las sesiones de trabajo. En lugar de que las decisiones vivan solo en hilos de chat, comentarios de PR o en la memoria de alguien, esta skill produce documentos ADR estructurados que viven junto al proyecto.
9
+
10
+ **En Theus, los ADR se gestionan a través de la tool `manage_adr` del MCP `theus-naupa`**, no como archivos sueltos en el repo. Ñaupa guarda el documento ADR del proyecto en su almacén SQLite (el mismo backend que usa la sección ADR del panel de Ñaupa, así que lo escrito por la tool es visible en la interfaz y viceversa). No crees estructuras paralelas tipo `docs/adr/` a menos que el usuario lo pida explícitamente.
11
+
12
+ ## Cuándo activarla
13
+
14
+ - El usuario dice explícitamente "registra esta decisión" o "haz un ADR de esto"
15
+ - El usuario elige entre alternativas significativas (framework, librería, patrón, base de datos, diseño de API)
16
+ - El usuario dice "decidimos que..." o "la razón por la que hacemos X en vez de Y es..."
17
+ - El usuario pregunta "¿por qué elegimos X?" (leer los ADR existentes)
18
+ - Durante fases de planificación en las que se discuten compensaciones arquitectónicas
19
+
20
+ ## La tool manage_adr
21
+
22
+ ```
23
+ manage_adr(project, mode?, content?)
24
+ ```
25
+
26
+ | Parámetro | Descripción |
27
+ |-----------|-------------|
28
+ | `project` | Obligatorio. Nombre del proyecto tal como está indexado en Ñaupa (si dudas, consúltalo con `list_projects`). |
29
+ | `mode` | `get` (por defecto) devuelve el documento ADR completo; `sections` lista los encabezados Markdown (líneas que empiezan con `#`) — sirve de índice; `update` guarda `content` como el documento ADR del proyecto. |
30
+ | `content` | Solo con `mode='update'`: el documento ADR **completo** en Markdown. |
31
+
32
+ **Regla crítica: `update` reemplaza el documento entero.** El flujo de escritura es siempre leer-modificar-escribir:
33
+
34
+ 1. `manage_adr(project, mode='get')` → obtén el documento actual
35
+ 2. Añade o modifica la sección del ADR en cuestión
36
+ 3. `manage_adr(project, mode='update', content=<documento completo actualizado>)`
37
+
38
+ Nunca envíes solo el ADR nuevo como `content`: borrarías el histórico.
39
+
40
+ ## Formato de ADR
41
+
42
+ Usa el formato de ADR ligero propuesto por Michael Nygard, adaptado al desarrollo asistido por IA. Cada decisión es una sección de nivel 1 dentro del documento ADR del proyecto, de modo que `mode='sections'` funcione como índice:
43
+
44
+ ```markdown
45
+ # ADR-NNNN: [Título de la decisión]
46
+
47
+ **Fecha**: AAAA-MM-DD
48
+ **Estado**: propuesto | aceptado | obsoleto | reemplazado por ADR-NNNN
49
+ **Decisores**: [quiénes participaron]
50
+
51
+ ## Contexto
52
+
53
+ ¿Qué problema estamos viendo que motiva esta decisión o este cambio?
54
+
55
+ [2-5 frases describiendo la situación, las restricciones y las fuerzas en juego]
56
+
57
+ ## Decisión
58
+
59
+ ¿Qué cambio proponemos y/o estamos haciendo?
60
+
61
+ [1-3 frases enunciando la decisión con claridad]
62
+
63
+ ## Alternativas consideradas
64
+
65
+ ### Alternativa 1: [Nombre]
66
+ - **Pros**: [beneficios]
67
+ - **Contras**: [inconvenientes]
68
+ - **Por qué no**: [razón concreta por la que se descartó]
69
+
70
+ ### Alternativa 2: [Nombre]
71
+ - **Pros**: [beneficios]
72
+ - **Contras**: [inconvenientes]
73
+ - **Por qué no**: [razón concreta por la que se descartó]
74
+
75
+ ## Consecuencias
76
+
77
+ ¿Qué se vuelve más fácil o más difícil a raíz de este cambio?
78
+
79
+ ### Positivas
80
+ - [beneficio 1]
81
+ - [beneficio 2]
82
+
83
+ ### Negativas
84
+ - [compensación 1]
85
+ - [compensación 2]
86
+
87
+ ### Riesgos
88
+ - [riesgo y mitigación]
89
+ ```
90
+
91
+ ## Flujo de trabajo
92
+
93
+ ### Capturar un ADR nuevo
94
+
95
+ Cuando se detecta un momento de decisión:
96
+
97
+ 1. **Inicializar (solo la primera vez)** — llama a `manage_adr(project, mode='get')`. Si responde `status: "no_adr"`, pide confirmación al usuario antes de crear el primer documento ADR del proyecto. No escribas nada sin consentimiento explícito. (Nota: si Ñaupa sugiere secciones genéricas como PURPOSE/STACK/ARCHITECTURE, esas corresponden a su resumen de proyecto guiado; para esta skill, el documento se estructura como secciones `# ADR-NNNN:` numeradas.)
98
+ 2. **Identificar la decisión** — extrae la elección arquitectónica central que se está tomando
99
+ 3. **Reunir el contexto** — ¿qué problema la motivó? ¿Qué restricciones existen?
100
+ 4. **Documentar las alternativas** — ¿qué otras opciones se consideraron? ¿Por qué se rechazaron?
101
+ 5. **Enunciar las consecuencias** — ¿cuáles son las compensaciones? ¿Qué se facilita o se dificulta?
102
+ 6. **Asignar un número** — lee el documento actual con `mode='get'` (o el índice con `mode='sections'`), localiza el mayor `ADR-NNNN` e incrementa
103
+ 7. **Confirmar y escribir** — presenta el borrador del ADR al usuario para revisión. Solo tras su aprobación explícita, guarda con el flujo leer-modificar-escribir: `get` → añadir la sección nueva → `update` con el documento completo. Si el usuario declina, descarta el borrador sin escribir nada.
104
+
105
+ ### Leer los ADR existentes
106
+
107
+ Cuando el usuario pregunta "¿por qué elegimos X?":
108
+
109
+ 1. Llama a `manage_adr(project, mode='get')` — si responde `status: "no_adr"`, contesta: "No hay ADR registrados en este proyecto. ¿Quieres empezar a registrar las decisiones arquitectónicas?"
110
+ 2. Si existe, usa `mode='sections'` como índice para localizar las entradas relevantes
111
+ 3. Presenta las secciones Contexto y Decisión del ADR que corresponda
112
+ 4. Si no hay coincidencia, responde: "No encuentro un ADR para esa decisión. ¿Quieres registrarla ahora?"
113
+
114
+ ### Estructura del documento ADR
115
+
116
+ Un único documento Markdown por proyecto, almacenado en Ñaupa:
117
+
118
+ ```markdown
119
+ # ADR-0001: Usar Next.js como framework de frontend
120
+ ...
121
+
122
+ # ADR-0002: PostgreSQL sobre MongoDB como almacén primario
123
+ ...
124
+
125
+ # ADR-0003: API REST sobre GraphQL
126
+ ...
127
+ ```
128
+
129
+ ### Índice
130
+
131
+ No hace falta mantener un índice manual: `manage_adr(project, mode='sections')` devuelve los encabezados del documento, que con el formato `# ADR-NNNN: Título` funcionan directamente como tabla de contenidos:
132
+
133
+ ```json
134
+ {
135
+ "sections": [
136
+ "# ADR-0001: Usar Next.js como framework de frontend",
137
+ "# ADR-0002: PostgreSQL sobre MongoDB como almacén primario",
138
+ "# ADR-0003: API REST sobre GraphQL"
139
+ ]
140
+ }
141
+ ```
142
+
143
+ ## Señales de detección de decisiones
144
+
145
+ Vigila estos patrones en la conversación que indican una decisión arquitectónica:
146
+
147
+ **Señales explícitas**
148
+ - "Vamos con X"
149
+ - "Deberíamos usar X en lugar de Y"
150
+ - "La compensación vale la pena porque..."
151
+ - "Registra esto como un ADR"
152
+
153
+ **Señales implícitas** (sugiere registrar un ADR — no lo crees automáticamente sin confirmación del usuario)
154
+ - Comparar dos frameworks o librerías y llegar a una conclusión
155
+ - Tomar una decisión de diseño de esquema de base de datos con justificación explícita
156
+ - Elegir entre patrones arquitectónicos (monolito vs microservicios, REST vs GraphQL)
157
+ - Decidir la estrategia de autenticación/autorización
158
+ - Seleccionar la infraestructura de despliegue tras evaluar alternativas
159
+
160
+ ## Qué hace bueno a un ADR
161
+
162
+ ### Haz
163
+ - **Sé específico** — "Usar el ORM Prisma", no "usar un ORM"
164
+ - **Registra el porqué** — la justificación importa más que el qué
165
+ - **Incluye las alternativas rechazadas** — los futuros desarrolladores necesitan saber qué se consideró
166
+ - **Enuncia las consecuencias con honestidad** — toda decisión tiene compensaciones
167
+ - **Mantenlo corto** — un ADR debe poder leerse en 2 minutos
168
+ - **Usa el presente** — "Usamos X", no "Usaremos X"
169
+
170
+ ### No hagas
171
+ - Registrar decisiones triviales — los nombres de variables o el formato no necesitan ADR
172
+ - Escribir ensayos — si la sección de contexto supera las 10 líneas, es demasiado larga
173
+ - Omitir alternativas — "simplemente lo elegimos" no es una justificación válida
174
+ - Retrodatar sin marcarlo — si registras una decisión pasada, anota la fecha original
175
+ - Dejar que los ADR caduquen — las decisiones reemplazadas deben referenciar a su reemplazo
176
+
177
+ ## Ciclo de vida de un ADR
178
+
179
+ ```
180
+ propuesto → aceptado → [obsoleto | reemplazado por ADR-NNNN]
181
+ ```
182
+
183
+ - **propuesto**: la decisión está en discusión, aún no comprometida
184
+ - **aceptado**: la decisión está en vigor y se sigue
185
+ - **obsoleto**: la decisión ya no es relevante (p. ej., se eliminó la funcionalidad)
186
+ - **reemplazado**: un ADR más nuevo sustituye a este (enlaza siempre el reemplazo)
187
+
188
+ Los cambios de estado también siguen el flujo leer-modificar-escribir: `get` → editar la línea **Estado** de la sección afectada → `update` con el documento completo.
189
+
190
+ ## Categorías de decisiones que vale la pena registrar
191
+
192
+ | Categoría | Ejemplos |
193
+ |-----------|----------|
194
+ | **Elecciones de tecnología** | Framework, lenguaje, base de datos, proveedor de nube |
195
+ | **Patrones de arquitectura** | Monolito vs microservicios, orientado a eventos, CQRS |
196
+ | **Diseño de API** | REST vs GraphQL, estrategia de versionado, mecanismo de auth |
197
+ | **Modelado de datos** | Diseño de esquema, decisiones de normalización, estrategia de caché |
198
+ | **Infraestructura** | Modelo de despliegue, pipeline de CI/CD, stack de monitorización |
199
+ | **Seguridad** | Estrategia de auth, enfoque de cifrado, gestión de secretos |
200
+ | **Testing** | Framework de tests, metas de cobertura, balance E2E vs integración |
201
+ | **Proceso** | Estrategia de branches, proceso de revisión, cadencia de releases |
202
+
203
+ ## Integración con otras skills
204
+
205
+ - **Agente `planificador`**: cuando el planificador proponga cambios de arquitectura, sugiere crear un ADR
206
+ - **Agente `revisor-codigo`**: marca los PR que introducen cambios arquitectónicos sin su ADR correspondiente
@@ -0,0 +1,469 @@
1
+ ---
2
+ name: demos-ui
3
+ description: Graba videos de demo pulidos de aplicaciones web usando Playwright. Úsala cuando se pida un demo, walkthrough, grabación de pantalla o video tutorial de una app web. Produce videos WebM con cursor visible, ritmo natural y acabado profesional.
4
+ ---
5
+
6
+ # Grabador de demos de UI
7
+
8
+ Graba videos de demostración pulidos de aplicaciones web usando la grabación de video de Playwright con un cursor superpuesto inyectado, ritmo natural y flujo narrativo.
9
+
10
+ ## Cuándo usarla
11
+
12
+ - Se pide un "video demo", "grabación de pantalla", "walkthrough" o "tutorial"
13
+ - Se quiere mostrar visualmente una funcionalidad o un flujo de trabajo
14
+ - Se necesita un video para documentación, onboarding o presentación a stakeholders
15
+
16
+ ## Proceso en tres fases
17
+
18
+ Todo demo pasa por tres fases: **Descubrir -> Ensayar -> Grabar**. Nunca saltes directo a grabar.
19
+
20
+ ---
21
+
22
+ ## Fase 1: Descubrir
23
+
24
+ Antes de escribir cualquier script, explora las páginas objetivo para entender qué hay realmente.
25
+
26
+ ### Por qué
27
+
28
+ No puedes guionizar lo que no has visto. Los campos pueden ser `<input>` y no `<textarea>`, los desplegables pueden ser componentes personalizados y no `<select>`, y las cajas de comentarios pueden soportar `@menciones` o `#tags`. Las suposiciones rompen las grabaciones en silencio.
29
+
30
+ ### Cómo
31
+
32
+ Navega a cada página del flujo y vuelca sus elementos interactivos:
33
+
34
+ ```javascript
35
+ // Ejecuta esto en cada página del flujo ANTES de escribir el script del demo
36
+ const fields = await page.evaluate(() => {
37
+ const els = [];
38
+ document.querySelectorAll('input, select, textarea, button, [contenteditable]').forEach(el => {
39
+ if (el.offsetParent !== null) {
40
+ els.push({
41
+ tag: el.tagName,
42
+ type: el.type || '',
43
+ name: el.name || '',
44
+ placeholder: el.placeholder || '',
45
+ text: el.textContent?.trim().substring(0, 40) || '',
46
+ contentEditable: el.contentEditable === 'true',
47
+ role: el.getAttribute('role') || '',
48
+ });
49
+ }
50
+ });
51
+ return els;
52
+ });
53
+ console.log(JSON.stringify(fields, null, 2));
54
+ ```
55
+
56
+ ### Qué buscar
57
+
58
+ - **Campos de formulario**: ¿son `<select>`, `<input>`, desplegables personalizados o comboboxes?
59
+ - **Opciones de select**: vuelca valores Y texto de las opciones. Los placeholders suelen tener `value="0"` o `value=""`, que parece no vacío. Usa `Array.from(el.options).map(o => ({ value: o.value, text: o.text }))`. Descarta opciones cuyo texto incluya "Seleccionar"/"Select" o cuyo valor sea `"0"`.
60
+ - **Texto enriquecido**: ¿la caja de comentarios soporta `@menciones`, `#tags`, markdown o emoji? Revisa el texto del placeholder.
61
+ - **Campos obligatorios**: ¿qué campos bloquean el envío del formulario? Revisa `required`, `*` en las etiquetas, e intenta enviar vacío para ver los errores de validación.
62
+ - **Contenido dinámico**: ¿aparecen campos después de rellenar otros?
63
+ - **Textos de botones**: el texto exacto, como `"Enviar"`, `"Submit Request"` o `"Send"`.
64
+ - **Encabezados de columnas de tablas**: en modales basados en tablas, mapea cada `input[type="number"]` a su encabezado de columna en lugar de asumir que todos los inputs numéricos significan lo mismo.
65
+
66
+ ### Salida
67
+
68
+ Un mapa de campos por página, usado para escribir selectores correctos en el script. Ejemplo:
69
+
70
+ ```text
71
+ /purchase-requests/new:
72
+ - Código de presupuesto: <select> (primer select de la página, 4 opciones)
73
+ - Entrega deseada: <input type="date">
74
+ - Contexto: <textarea> (no input)
75
+ - Tabla BOM: celdas editables en línea con patrón span.cursor-pointer -> input
76
+ - Enviar: <button> texto="Submit"
77
+
78
+ /purchase-requests/N (detalle):
79
+ - Comentario: <input placeholder="Type a message..."> soporta @usuario y tags #PR
80
+ - Enviar: <button> texto="Send" (deshabilitado hasta que el input tenga contenido)
81
+ ```
82
+
83
+ ---
84
+
85
+ ## Fase 2: Ensayar
86
+
87
+ Recorre todos los pasos sin grabar. Verifica que cada selector resuelva.
88
+
89
+ ### Por qué
90
+
91
+ Los fallos silenciosos de selectores son la razón principal por la que se rompen las grabaciones. El ensayo los atrapa antes de desperdiciar una grabación.
92
+
93
+ ### Cómo
94
+
95
+ Usa `ensureVisible`, un wrapper que registra y falla ruidosamente:
96
+
97
+ ```javascript
98
+ async function ensureVisible(page, locator, label) {
99
+ const el = typeof locator === 'string' ? page.locator(locator).first() : locator;
100
+ const visible = await el.isVisible().catch(() => false);
101
+ if (!visible) {
102
+ const msg = `ENSAYO FALLIDO: "${label}" no encontrado - selector: ${typeof locator === 'string' ? locator : '(objeto locator)'}`;
103
+ console.error(msg);
104
+ const found = await page.evaluate(() => {
105
+ return Array.from(document.querySelectorAll('button, input, select, textarea, a'))
106
+ .filter(el => el.offsetParent !== null)
107
+ .map(el => `${el.tagName}[${el.type || ''}] "${el.textContent?.trim().substring(0, 30)}"`)
108
+ .join('\n ');
109
+ });
110
+ console.error(' Elementos visibles:\n ' + found);
111
+ return false;
112
+ }
113
+ console.log(`ENSAYO OK: "${label}"`);
114
+ return true;
115
+ }
116
+ ```
117
+
118
+ ### Estructura del script de ensayo
119
+
120
+ ```javascript
121
+ const steps = [
122
+ { label: 'Campo de email del login', selector: '#email' },
123
+ { label: 'Botón de envío del login', selector: 'button[type="submit"]' },
124
+ { label: 'Botón Nueva solicitud', selector: 'button:has-text("New Request")' },
125
+ { label: 'Select de código de presupuesto', selector: 'select' },
126
+ { label: 'Fecha de entrega', selector: 'input[type="date"]:visible' },
127
+ { label: 'Campo de descripción', selector: 'textarea:visible' },
128
+ { label: 'Botón Agregar ítem', selector: 'button:has-text("Add Item")' },
129
+ { label: 'Botón Enviar', selector: 'button:has-text("Submit")' },
130
+ ];
131
+
132
+ let allOk = true;
133
+ for (const step of steps) {
134
+ if (!await ensureVisible(page, step.selector, step.label)) {
135
+ allOk = false;
136
+ }
137
+ }
138
+ if (!allOk) {
139
+ console.error('ENSAYO FALLIDO - corrige los selectores antes de grabar');
140
+ process.exit(1);
141
+ }
142
+ console.log('ENSAYO SUPERADO - todos los selectores verificados');
143
+ ```
144
+
145
+ ### Cuando el ensayo falla
146
+
147
+ 1. Lee el volcado de elementos visibles.
148
+ 2. Encuentra el selector correcto.
149
+ 3. Actualiza el script.
150
+ 4. Vuelve a ejecutar el ensayo.
151
+ 5. Continúa solo cuando todos los selectores pasen.
152
+
153
+ ---
154
+
155
+ ## Fase 3: Grabar
156
+
157
+ Solo después de que el descubrimiento y el ensayo pasen debes crear la grabación.
158
+
159
+ ### Principios de grabación
160
+
161
+ #### 1. Flujo narrativo
162
+
163
+ Planifica el video como una historia. Sigue el orden que pida el usuario, o usa este por defecto:
164
+
165
+ - **Entrada**: login o navegación al punto de partida
166
+ - **Contexto**: recorre el entorno para que el espectador se oriente
167
+ - **Acción**: ejecuta los pasos del flujo principal
168
+ - **Variación**: muestra una funcionalidad secundaria como ajustes, tema o localización
169
+ - **Resultado**: muestra el desenlace, la confirmación o el nuevo estado
170
+
171
+ #### 2. Ritmo
172
+
173
+ - Tras el login: `4s`
174
+ - Tras navegar: `3s`
175
+ - Tras hacer clic en un botón: `2s`
176
+ - Entre pasos importantes: `1.5-2s`
177
+ - Tras la acción final: `3s`
178
+ - Retardo de tipeo: `25-40ms` por carácter
179
+
180
+ #### 3. Cursor superpuesto
181
+
182
+ Inyecta un cursor SVG de flecha que sigue los movimientos del mouse:
183
+
184
+ ```javascript
185
+ async function injectCursor(page) {
186
+ await page.evaluate(() => {
187
+ if (document.getElementById('demo-cursor')) return;
188
+ const cursor = document.createElement('div');
189
+ cursor.id = 'demo-cursor';
190
+ cursor.innerHTML = `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
191
+ <path d="M5 3L19 12L12 13L9 20L5 3Z" fill="white" stroke="black" stroke-width="1.5" stroke-linejoin="round"/>
192
+ </svg>`;
193
+ cursor.style.cssText = `
194
+ position: fixed; z-index: 999999; pointer-events: none;
195
+ width: 24px; height: 24px;
196
+ transition: left 0.1s, top 0.1s;
197
+ filter: drop-shadow(1px 1px 2px rgba(0,0,0,0.3));
198
+ `;
199
+ cursor.style.left = '0px';
200
+ cursor.style.top = '0px';
201
+ document.body.appendChild(cursor);
202
+ document.addEventListener('mousemove', (e) => {
203
+ cursor.style.left = e.clientX + 'px';
204
+ cursor.style.top = e.clientY + 'px';
205
+ });
206
+ });
207
+ }
208
+ ```
209
+
210
+ Llama a `injectCursor(page)` después de cada navegación, porque el overlay se destruye al navegar.
211
+
212
+ #### 4. Movimiento del mouse
213
+
214
+ Nunca teletransportes el cursor. Muévelo hasta el objetivo antes de hacer clic:
215
+
216
+ ```javascript
217
+ async function moveAndClick(page, locator, label, opts = {}) {
218
+ const { postClickDelay = 800, ...clickOpts } = opts;
219
+ const el = typeof locator === 'string' ? page.locator(locator).first() : locator;
220
+ const visible = await el.isVisible().catch(() => false);
221
+ if (!visible) {
222
+ console.error(`ADVERTENCIA: moveAndClick omitido - "${label}" no visible`);
223
+ return false;
224
+ }
225
+ try {
226
+ await el.scrollIntoViewIfNeeded();
227
+ await page.waitForTimeout(300);
228
+ const box = await el.boundingBox();
229
+ if (box) {
230
+ await page.mouse.move(box.x + box.width / 2, box.y + box.height / 2, { steps: 10 });
231
+ await page.waitForTimeout(400);
232
+ }
233
+ await el.click(clickOpts);
234
+ } catch (e) {
235
+ console.error(`ADVERTENCIA: moveAndClick falló en "${label}": ${e.message}`);
236
+ return false;
237
+ }
238
+ await page.waitForTimeout(postClickDelay);
239
+ return true;
240
+ }
241
+ ```
242
+
243
+ Cada llamada debe incluir un `label` descriptivo para depuración.
244
+
245
+ #### 5. Tipeo
246
+
247
+ Escribe de forma visible, no con relleno instantáneo:
248
+
249
+ ```javascript
250
+ async function typeSlowly(page, locator, text, label, charDelay = 35) {
251
+ const el = typeof locator === 'string' ? page.locator(locator).first() : locator;
252
+ const visible = await el.isVisible().catch(() => false);
253
+ if (!visible) {
254
+ console.error(`ADVERTENCIA: typeSlowly omitido - "${label}" no visible`);
255
+ return false;
256
+ }
257
+ await moveAndClick(page, el, label);
258
+ await el.fill('');
259
+ await el.pressSequentially(text, { delay: charDelay });
260
+ await page.waitForTimeout(500);
261
+ return true;
262
+ }
263
+ ```
264
+
265
+ #### 6. Desplazamiento
266
+
267
+ Usa scroll suave en lugar de saltos:
268
+
269
+ ```javascript
270
+ await page.evaluate(() => window.scrollTo({ top: 400, behavior: 'smooth' }));
271
+ await page.waitForTimeout(1500);
272
+ ```
273
+
274
+ #### 7. Paneo de dashboards
275
+
276
+ Al mostrar un dashboard o una página de resumen, mueve el cursor sobre los elementos clave:
277
+
278
+ ```javascript
279
+ async function panElements(page, selector, maxCount = 6) {
280
+ const elements = await page.locator(selector).all();
281
+ for (let i = 0; i < Math.min(elements.length, maxCount); i++) {
282
+ try {
283
+ const box = await elements[i].boundingBox();
284
+ if (box && box.y < 700) {
285
+ await page.mouse.move(box.x + box.width / 2, box.y + box.height / 2, { steps: 8 });
286
+ await page.waitForTimeout(600);
287
+ }
288
+ } catch (e) {
289
+ console.warn(`ADVERTENCIA: panElements omitió el elemento ${i} (selector: "${selector}"): ${e.message}`);
290
+ }
291
+ }
292
+ }
293
+ ```
294
+
295
+ #### 8. Subtítulos
296
+
297
+ Inyecta una barra de subtítulos en la parte inferior del viewport:
298
+
299
+ ```javascript
300
+ async function injectSubtitleBar(page) {
301
+ await page.evaluate(() => {
302
+ if (document.getElementById('demo-subtitle')) return;
303
+ const bar = document.createElement('div');
304
+ bar.id = 'demo-subtitle';
305
+ bar.style.cssText = `
306
+ position: fixed; bottom: 0; left: 0; right: 0; z-index: 999998;
307
+ text-align: center; padding: 12px 24px;
308
+ background: rgba(0, 0, 0, 0.75);
309
+ color: white; font-family: -apple-system, "Segoe UI", sans-serif;
310
+ font-size: 16px; font-weight: 500; letter-spacing: 0.3px;
311
+ transition: opacity 0.3s;
312
+ pointer-events: none;
313
+ `;
314
+ bar.textContent = '';
315
+ bar.style.opacity = '0';
316
+ document.body.appendChild(bar);
317
+ });
318
+ }
319
+
320
+ async function showSubtitle(page, text) {
321
+ await page.evaluate((t) => {
322
+ const bar = document.getElementById('demo-subtitle');
323
+ if (!bar) return;
324
+ if (t) {
325
+ bar.textContent = t;
326
+ bar.style.opacity = '1';
327
+ } else {
328
+ bar.style.opacity = '0';
329
+ }
330
+ }, text);
331
+ if (text) await page.waitForTimeout(800);
332
+ }
333
+ ```
334
+
335
+ Llama a `injectSubtitleBar(page)` junto con `injectCursor(page)` después de cada navegación.
336
+
337
+ Patrón de uso:
338
+
339
+ ```javascript
340
+ await showSubtitle(page, 'Paso 1 - Iniciando sesión');
341
+ await showSubtitle(page, 'Paso 2 - Vista general del dashboard');
342
+ await showSubtitle(page, '');
343
+ ```
344
+
345
+ Pautas:
346
+
347
+ - Mantén el texto del subtítulo corto, idealmente menos de 60 caracteres.
348
+ - Usa el formato `Paso N - Acción` para mantener consistencia.
349
+ - Borra el subtítulo durante pausas largas en las que la UI habla por sí sola.
350
+
351
+ ## Plantilla del script
352
+
353
+ ```javascript
354
+ 'use strict';
355
+ const { chromium } = require('playwright');
356
+ const path = require('path');
357
+ const fs = require('fs');
358
+
359
+ const BASE_URL = process.env.QA_BASE_URL || 'http://localhost:3000';
360
+ const VIDEO_DIR = path.join(__dirname, 'screenshots');
361
+ const OUTPUT_NAME = 'demo-FUNCIONALIDAD.webm';
362
+ const REHEARSAL = process.argv.includes('--rehearse');
363
+
364
+ // Pega aquí injectCursor, injectSubtitleBar, showSubtitle, moveAndClick,
365
+ // typeSlowly, ensureVisible y panElements.
366
+
367
+ (async () => {
368
+ const browser = await chromium.launch({ headless: true });
369
+
370
+ if (REHEARSAL) {
371
+ const context = await browser.newContext({ viewport: { width: 1280, height: 720 } });
372
+ const page = await context.newPage();
373
+ // Navega por el flujo y ejecuta ensureVisible para cada selector.
374
+ await browser.close();
375
+ return;
376
+ }
377
+
378
+ const context = await browser.newContext({
379
+ recordVideo: { dir: VIDEO_DIR, size: { width: 1280, height: 720 } },
380
+ viewport: { width: 1280, height: 720 }
381
+ });
382
+ const page = await context.newPage();
383
+
384
+ try {
385
+ await injectCursor(page);
386
+ await injectSubtitleBar(page);
387
+
388
+ await showSubtitle(page, 'Paso 1 - Iniciando sesión');
389
+ // acciones de login
390
+
391
+ await page.goto(`${BASE_URL}/dashboard`);
392
+ await injectCursor(page);
393
+ await injectSubtitleBar(page);
394
+ await showSubtitle(page, 'Paso 2 - Vista general del dashboard');
395
+ // paneo del dashboard
396
+
397
+ await showSubtitle(page, 'Paso 3 - Flujo principal');
398
+ // secuencia de acciones
399
+
400
+ await showSubtitle(page, 'Paso 4 - Resultado');
401
+ // revelación final
402
+ await showSubtitle(page, '');
403
+ } catch (err) {
404
+ console.error('ERROR DEL DEMO:', err.message);
405
+ } finally {
406
+ await context.close();
407
+ const video = page.video();
408
+ if (video) {
409
+ const src = await video.path();
410
+ const dest = path.join(VIDEO_DIR, OUTPUT_NAME);
411
+ try {
412
+ fs.copyFileSync(src, dest);
413
+ console.log('Video guardado:', dest);
414
+ } catch (e) {
415
+ console.error('ERROR: no se pudo copiar el video:', e.message);
416
+ console.error(' Origen:', src);
417
+ console.error(' Destino:', dest);
418
+ }
419
+ }
420
+ await browser.close();
421
+ }
422
+ })();
423
+ ```
424
+
425
+ Uso:
426
+
427
+ ```bash
428
+ # Fase 2: ensayar
429
+ node demo-script.cjs --rehearse
430
+
431
+ # Fase 3: grabar
432
+ node demo-script.cjs
433
+ ```
434
+
435
+ ## Lista de verificación antes de grabar
436
+
437
+ - [ ] Fase de descubrimiento completada
438
+ - [ ] El ensayo pasa con todos los selectores OK
439
+ - [ ] Modo headless habilitado
440
+ - [ ] Resolución fijada en `1280x720`
441
+ - [ ] Overlays de cursor y subtítulos reinyectados tras cada navegación
442
+ - [ ] `showSubtitle(page, 'Paso N - ...')` usado en las transiciones importantes
443
+ - [ ] `moveAndClick` usado en todos los clics con labels descriptivos
444
+ - [ ] `typeSlowly` usado para entrada visible
445
+ - [ ] Sin catch silenciosos; los helpers registran advertencias
446
+ - [ ] Scroll suave usado para revelar contenido
447
+ - [ ] Las pausas clave son visibles para un espectador humano
448
+ - [ ] El flujo coincide con el orden narrativo solicitado
449
+ - [ ] El script refleja la UI real descubierta en la fase 1
450
+
451
+ ## Errores comunes
452
+
453
+ 1. El cursor desaparece tras navegar - reinyéctalo.
454
+ 2. El video va demasiado rápido - añade pausas.
455
+ 3. El cursor es un punto en vez de una flecha - usa el overlay SVG.
456
+ 4. El cursor se teletransporta - muévelo antes de hacer clic.
457
+ 5. Los desplegables se ven mal - muestra el movimiento y luego elige la opción.
458
+ 6. Los modales se sienten abruptos - añade una pausa de lectura antes de confirmar.
459
+ 7. La ruta del archivo de video es aleatoria - cópialo a un nombre de salida estable.
460
+ 8. Los fallos de selectores se tragan en silencio - nunca uses bloques catch silenciosos.
461
+ 9. Se asumieron tipos de campo - descúbrelos primero.
462
+ 10. Se asumieron funcionalidades - inspecciona la UI real antes de guionizar.
463
+ 11. Los valores placeholder de los select parecen reales - vigila `"0"` y `"Select..."`.
464
+ 12. Los popups crean videos separados - captura las páginas popup explícitamente y fusiona después si hace falta.
465
+
466
+ ## Skills relacionadas
467
+
468
+ - `testing-e2e` — pruebas E2E web con Playwright
469
+ - `qa-navegador` — verificación de UI en el navegador