theus-cli-darwin-x64 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.
- package/LICENSE +42 -0
- package/README.md +295 -0
- package/RELEASE.json +18 -0
- package/assets/brand-official/v1.0/logo/theus-lockup-negative-official.png +0 -0
- package/assets/brand-official/v1.0/logo/theus-lockup-primary-dark-official.png +0 -0
- package/assets/fonts/satoshi/satoshi-300.woff2 +0 -0
- package/assets/fonts/satoshi/satoshi-400.woff2 +0 -0
- package/assets/fonts/satoshi/satoshi-500.woff2 +0 -0
- package/assets/fonts/satoshi/satoshi-700.woff2 +0 -0
- package/assets/fonts/satoshi/satoshi-900.woff2 +0 -0
- package/assets/windows-store/Square150x150Logo.png +0 -0
- package/assets/windows-store/Square44x44Logo.png +0 -0
- package/assets/windows-store/StoreLogo.png +0 -0
- package/assets/windows-store/theus-store-icon-master.png +0 -0
- package/bin/theus +0 -0
- package/package.json +18 -0
- package/vendor/theus-arsenal/.arsenal-nombres-ola2.json +6 -0
- package/vendor/theus-arsenal/.arsenal-nombres-ola3.json +72 -0
- package/vendor/theus-arsenal/.mailmap +2 -0
- package/vendor/theus-arsenal/.theus-plugin/marketplace.json +25 -0
- package/vendor/theus-arsenal/.theus-plugin/plugin.json +20 -0
- package/vendor/theus-arsenal/AUTHORS.md +8 -0
- package/vendor/theus-arsenal/CLEANROOM_REPLACEMENT_PLAN.md +11 -0
- package/vendor/theus-arsenal/LICENSE +26 -0
- package/vendor/theus-arsenal/PROVENANCE.md +9 -0
- package/vendor/theus-arsenal/README.md +41 -0
- package/vendor/theus-arsenal/THIRD_PARTY.md +80 -0
- package/vendor/theus-arsenal/agents/actualizador-docs.md +123 -0
- package/vendor/theus-arsenal/agents/analista-comentarios.md +53 -0
- package/vendor/theus-arsenal/agents/analista-conversaciones.md +60 -0
- package/vendor/theus-arsenal/agents/analista-tests-pr.md +53 -0
- package/vendor/theus-arsenal/agents/analista-tipos.md +49 -0
- package/vendor/theus-arsenal/agents/arquitecto-accesibilidad.md +148 -0
- package/vendor/theus-arsenal/agents/arquitecto-codigo.md +79 -0
- package/vendor/theus-arsenal/agents/arquitecto-homelab.md +90 -0
- package/vendor/theus-arsenal/agents/arquitecto-redes.md +116 -0
- package/vendor/theus-arsenal/agents/arquitecto-sistemas.md +219 -0
- package/vendor/theus-arsenal/agents/bifurcador-opensource.md +206 -0
- package/vendor/theus-arsenal/agents/cazador-fallos-silenciosos.md +58 -0
- package/vendor/theus-arsenal/agents/consultor-documentacion.md +76 -0
- package/vendor/theus-arsenal/agents/diagnosticador-redes.md +135 -0
- package/vendor/theus-arsenal/agents/ejecutor-e2e.md +96 -0
- package/vendor/theus-arsenal/agents/empaquetador-opensource.md +257 -0
- package/vendor/theus-arsenal/agents/escaner-secretos.md +196 -0
- package/vendor/theus-arsenal/agents/especialista-seo.md +70 -0
- package/vendor/theus-arsenal/agents/estratega-marketing.md +158 -0
- package/vendor/theus-arsenal/agents/evaluador-agentes.md +214 -0
- package/vendor/theus-arsenal/agents/evaluador-harness.md +217 -0
- package/vendor/theus-arsenal/agents/explorador-codigo.md +79 -0
- package/vendor/theus-arsenal/agents/extractor-specs.md +214 -0
- package/vendor/theus-arsenal/agents/generador-harness.md +139 -0
- package/vendor/theus-arsenal/agents/guia-tdd.md +99 -0
- package/vendor/theus-arsenal/agents/jefe-de-gabinete.md +162 -0
- package/vendor/theus-arsenal/agents/limpiador-refactors.md +93 -0
- package/vendor/theus-arsenal/agents/optimizador-rendimiento.md +454 -0
- package/vendor/theus-arsenal/agents/planificador-harness.md +107 -0
- package/vendor/theus-arsenal/agents/planificador.md +221 -0
- package/vendor/theus-arsenal/agents/resolutor-apps-harmonyos.md +181 -0
- package/vendor/theus-arsenal/agents/resolutor-builds-cpp.md +98 -0
- package/vendor/theus-arsenal/agents/resolutor-builds-dart.md +209 -0
- package/vendor/theus-arsenal/agents/resolutor-builds-django.md +253 -0
- package/vendor/theus-arsenal/agents/resolutor-builds-go.md +102 -0
- package/vendor/theus-arsenal/agents/resolutor-builds-java.md +274 -0
- package/vendor/theus-arsenal/agents/resolutor-builds-kotlin.md +128 -0
- package/vendor/theus-arsenal/agents/resolutor-builds-pytorch.md +128 -0
- package/vendor/theus-arsenal/agents/resolutor-builds-react.md +214 -0
- package/vendor/theus-arsenal/agents/resolutor-builds-rust.md +156 -0
- package/vendor/theus-arsenal/agents/resolutor-builds-swift.md +169 -0
- package/vendor/theus-arsenal/agents/resolutor-builds.md +122 -0
- package/vendor/theus-arsenal/agents/revisor-bd.md +97 -0
- package/vendor/theus-arsenal/agents/revisor-codigo.md +291 -0
- package/vendor/theus-arsenal/agents/revisor-config-red.md +116 -0
- package/vendor/theus-arsenal/agents/revisor-cpp.md +80 -0
- package/vendor/theus-arsenal/agents/revisor-csharp.md +109 -0
- package/vendor/theus-arsenal/agents/revisor-django.md +168 -0
- package/vendor/theus-arsenal/agents/revisor-fastapi.md +82 -0
- package/vendor/theus-arsenal/agents/revisor-flutter.md +251 -0
- package/vendor/theus-arsenal/agents/revisor-go.md +84 -0
- package/vendor/theus-arsenal/agents/revisor-java.md +192 -0
- package/vendor/theus-arsenal/agents/revisor-kotlin.md +171 -0
- package/vendor/theus-arsenal/agents/revisor-ml.md +159 -0
- package/vendor/theus-arsenal/agents/revisor-php.md +108 -0
- package/vendor/theus-arsenal/agents/revisor-python.md +106 -0
- package/vendor/theus-arsenal/agents/revisor-react.md +166 -0
- package/vendor/theus-arsenal/agents/revisor-rust.md +102 -0
- package/vendor/theus-arsenal/agents/revisor-seguridad.md +116 -0
- package/vendor/theus-arsenal/agents/revisor-software-clinico.md +95 -0
- package/vendor/theus-arsenal/agents/revisor-swift.md +115 -0
- package/vendor/theus-arsenal/agents/revisor-typescript.md +123 -0
- package/vendor/theus-arsenal/agents/revisor-vue.md +205 -0
- package/vendor/theus-arsenal/agents/simplificador-codigo.md +55 -0
- package/vendor/theus-arsenal/commands/actualizar-docs.md +88 -0
- package/vendor/theus-arsenal/commands/actualizar-mapas-codigo.md +78 -0
- package/vendor/theus-arsenal/commands/aprender-evaluar.md +109 -0
- package/vendor/theus-arsenal/commands/aprender.md +74 -0
- package/vendor/theus-arsenal/commands/arreglar-build.md +66 -0
- package/vendor/theus-arsenal/commands/bucle-multiperspectiva.md +153 -0
- package/vendor/theus-arsenal/commands/build-cpp.md +173 -0
- package/vendor/theus-arsenal/commands/build-flutter.md +164 -0
- package/vendor/theus-arsenal/commands/build-go.md +183 -0
- package/vendor/theus-arsenal/commands/build-gradle.md +75 -0
- package/vendor/theus-arsenal/commands/build-kotlin.md +176 -0
- package/vendor/theus-arsenal/commands/build-react.md +187 -0
- package/vendor/theus-arsenal/commands/build-rust.md +187 -0
- package/vendor/theus-arsenal/commands/campana-marketing.md +125 -0
- package/vendor/theus-arsenal/commands/checkpoint.md +78 -0
- package/vendor/theus-arsenal/commands/cobertura-tests.md +73 -0
- package/vendor/theus-arsenal/commands/configurar-gestor-paquetes.md +86 -0
- package/vendor/theus-arsenal/commands/consulta.md +164 -0
- package/vendor/theus-arsenal/commands/control-calidad.md +50 -0
- package/vendor/theus-arsenal/commands/crear-skill.md +77 -0
- package/vendor/theus-arsenal/commands/enrutar-modelo.md +30 -0
- package/vendor/theus-arsenal/commands/epica-desbloquear.md +17 -0
- package/vendor/theus-arsenal/commands/epica-descomponer.md +22 -0
- package/vendor/theus-arsenal/commands/epica-publicar.md +21 -0
- package/vendor/theus-arsenal/commands/epica-reclamar.md +25 -0
- package/vendor/theus-arsenal/commands/epica-revisar.md +22 -0
- package/vendor/theus-arsenal/commands/epica-sincronizar.md +21 -0
- package/vendor/theus-arsenal/commands/epica-validar.md +21 -0
- package/vendor/theus-arsenal/commands/evolucionar.md +176 -0
- package/vendor/theus-arsenal/commands/funcionalidad.md +49 -0
- package/vendor/theus-arsenal/commands/guardar-sesion.md +278 -0
- package/vendor/theus-arsenal/commands/harness-build.md +111 -0
- package/vendor/theus-arsenal/commands/harness-diseno.md +46 -0
- package/vendor/theus-arsenal/commands/informe-costos.md +90 -0
- package/vendor/theus-arsenal/commands/iniciar-bucle.md +36 -0
- package/vendor/theus-arsenal/commands/instintos-estado.md +53 -0
- package/vendor/theus-arsenal/commands/instintos-exportar.md +69 -0
- package/vendor/theus-arsenal/commands/instintos-importar.md +120 -0
- package/vendor/theus-arsenal/commands/lienzo-planes.md +48 -0
- package/vendor/theus-arsenal/commands/limpiar-refactor.md +84 -0
- package/vendor/theus-arsenal/commands/modo-seguro.md +96 -0
- package/vendor/theus-arsenal/commands/orq-agregar-funcionalidad.md +36 -0
- package/vendor/theus-arsenal/commands/orq-cambiar-funcionalidad.md +38 -0
- package/vendor/theus-arsenal/commands/orq-construir-mvp.md +36 -0
- package/vendor/theus-arsenal/commands/orq-corregir-defecto.md +40 -0
- package/vendor/theus-arsenal/commands/orq-refinar-codigo.md +44 -0
- package/vendor/theus-arsenal/commands/orq-revisar.md +135 -0
- package/vendor/theus-arsenal/commands/plan-prd.md +160 -0
- package/vendor/theus-arsenal/commands/plan.md +198 -0
- package/vendor/theus-arsenal/commands/podar.md +31 -0
- package/vendor/theus-arsenal/commands/pr.md +181 -0
- package/vendor/theus-arsenal/commands/promover.md +41 -0
- package/vendor/theus-arsenal/commands/proyectos.md +33 -0
- package/vendor/theus-arsenal/commands/prp-commit.md +112 -0
- package/vendor/theus-arsenal/commands/prp-implementar.md +385 -0
- package/vendor/theus-arsenal/commands/prp-planificar.md +501 -0
- package/vendor/theus-arsenal/commands/reanudar-sesion.md +160 -0
- package/vendor/theus-arsenal/commands/revisar-codigo.md +289 -0
- package/vendor/theus-arsenal/commands/revisar-cpp.md +132 -0
- package/vendor/theus-arsenal/commands/revisar-fastapi.md +39 -0
- package/vendor/theus-arsenal/commands/revisar-flutter.md +115 -0
- package/vendor/theus-arsenal/commands/revisar-go.md +148 -0
- package/vendor/theus-arsenal/commands/revisar-kotlin.md +140 -0
- package/vendor/theus-arsenal/commands/revisar-pr.md +37 -0
- package/vendor/theus-arsenal/commands/revisar-python.md +297 -0
- package/vendor/theus-arsenal/commands/revisar-react.md +170 -0
- package/vendor/theus-arsenal/commands/revisar-rust.md +142 -0
- package/vendor/theus-arsenal/commands/revisar-vue.md +174 -0
- package/vendor/theus-arsenal/commands/salud-skills.md +52 -0
- package/vendor/theus-arsenal/commands/sesiones.md +345 -0
- package/vendor/theus-arsenal/commands/test-cpp.md +252 -0
- package/vendor/theus-arsenal/commands/test-flutter.md +143 -0
- package/vendor/theus-arsenal/commands/test-go.md +268 -0
- package/vendor/theus-arsenal/commands/test-kotlin.md +312 -0
- package/vendor/theus-arsenal/commands/test-react.md +265 -0
- package/vendor/theus-arsenal/commands/test-rust.md +309 -0
- package/vendor/theus-arsenal/commands/vigilancia-canary.md +43 -0
- package/vendor/theus-arsenal/hooks/hooks.json +274 -0
- package/vendor/theus-arsenal/package.json +6 -0
- package/vendor/theus-arsenal/rules/angular/coding-style.md +182 -0
- package/vendor/theus-arsenal/rules/angular/hooks.md +25 -0
- package/vendor/theus-arsenal/rules/angular/patterns.md +249 -0
- package/vendor/theus-arsenal/rules/angular/security.md +87 -0
- package/vendor/theus-arsenal/rules/angular/testing.md +164 -0
- package/vendor/theus-arsenal/rules/arkts/coding-style.md +153 -0
- package/vendor/theus-arsenal/rules/arkts/hooks.md +80 -0
- package/vendor/theus-arsenal/rules/arkts/patterns.md +236 -0
- package/vendor/theus-arsenal/rules/arkts/security.md +141 -0
- package/vendor/theus-arsenal/rules/arkts/testing.md +126 -0
- package/vendor/theus-arsenal/rules/common/agents.md +49 -0
- package/vendor/theus-arsenal/rules/common/code-review.md +123 -0
- package/vendor/theus-arsenal/rules/common/coding-style.md +90 -0
- package/vendor/theus-arsenal/rules/common/development-workflow.md +44 -0
- package/vendor/theus-arsenal/rules/common/git-workflow.md +24 -0
- package/vendor/theus-arsenal/rules/common/hooks.md +32 -0
- package/vendor/theus-arsenal/rules/common/patterns.md +31 -0
- package/vendor/theus-arsenal/rules/common/performance.md +53 -0
- package/vendor/theus-arsenal/rules/common/security.md +29 -0
- package/vendor/theus-arsenal/rules/common/testing.md +57 -0
- package/vendor/theus-arsenal/rules/cpp/coding-style.md +44 -0
- package/vendor/theus-arsenal/rules/cpp/hooks.md +39 -0
- package/vendor/theus-arsenal/rules/cpp/patterns.md +51 -0
- package/vendor/theus-arsenal/rules/cpp/security.md +51 -0
- package/vendor/theus-arsenal/rules/cpp/testing.md +44 -0
- package/vendor/theus-arsenal/rules/csharp/coding-style.md +72 -0
- package/vendor/theus-arsenal/rules/csharp/hooks.md +25 -0
- package/vendor/theus-arsenal/rules/csharp/patterns.md +50 -0
- package/vendor/theus-arsenal/rules/csharp/security.md +58 -0
- package/vendor/theus-arsenal/rules/csharp/testing.md +50 -0
- package/vendor/theus-arsenal/rules/dart/coding-style.md +159 -0
- package/vendor/theus-arsenal/rules/dart/hooks.md +68 -0
- package/vendor/theus-arsenal/rules/dart/patterns.md +261 -0
- package/vendor/theus-arsenal/rules/dart/security.md +135 -0
- package/vendor/theus-arsenal/rules/dart/testing.md +215 -0
- package/vendor/theus-arsenal/rules/fsharp/coding-style.md +112 -0
- package/vendor/theus-arsenal/rules/fsharp/hooks.md +26 -0
- package/vendor/theus-arsenal/rules/fsharp/patterns.md +111 -0
- package/vendor/theus-arsenal/rules/fsharp/security.md +76 -0
- package/vendor/theus-arsenal/rules/fsharp/testing.md +62 -0
- package/vendor/theus-arsenal/rules/golang/coding-style.md +32 -0
- package/vendor/theus-arsenal/rules/golang/hooks.md +17 -0
- package/vendor/theus-arsenal/rules/golang/patterns.md +45 -0
- package/vendor/theus-arsenal/rules/golang/security.md +34 -0
- package/vendor/theus-arsenal/rules/golang/testing.md +31 -0
- package/vendor/theus-arsenal/rules/java/coding-style.md +114 -0
- package/vendor/theus-arsenal/rules/java/hooks.md +18 -0
- package/vendor/theus-arsenal/rules/java/patterns.md +147 -0
- package/vendor/theus-arsenal/rules/java/security.md +101 -0
- package/vendor/theus-arsenal/rules/java/testing.md +133 -0
- package/vendor/theus-arsenal/rules/kotlin/coding-style.md +86 -0
- package/vendor/theus-arsenal/rules/kotlin/hooks.md +17 -0
- package/vendor/theus-arsenal/rules/kotlin/patterns.md +146 -0
- package/vendor/theus-arsenal/rules/kotlin/security.md +82 -0
- package/vendor/theus-arsenal/rules/kotlin/testing.md +128 -0
- package/vendor/theus-arsenal/rules/nuxt/coding-style.md +47 -0
- package/vendor/theus-arsenal/rules/nuxt/hooks.md +39 -0
- package/vendor/theus-arsenal/rules/nuxt/patterns.md +54 -0
- package/vendor/theus-arsenal/rules/nuxt/security.md +48 -0
- package/vendor/theus-arsenal/rules/nuxt/testing.md +49 -0
- package/vendor/theus-arsenal/rules/php/coding-style.md +40 -0
- package/vendor/theus-arsenal/rules/php/hooks.md +24 -0
- package/vendor/theus-arsenal/rules/php/patterns.md +33 -0
- package/vendor/theus-arsenal/rules/php/security.md +37 -0
- package/vendor/theus-arsenal/rules/php/testing.md +38 -0
- package/vendor/theus-arsenal/rules/python/coding-style.md +42 -0
- package/vendor/theus-arsenal/rules/python/fastapi.md +58 -0
- package/vendor/theus-arsenal/rules/python/hooks.md +19 -0
- package/vendor/theus-arsenal/rules/python/patterns.md +39 -0
- package/vendor/theus-arsenal/rules/python/security.md +30 -0
- package/vendor/theus-arsenal/rules/python/testing.md +38 -0
- package/vendor/theus-arsenal/rules/react/coding-style.md +109 -0
- package/vendor/theus-arsenal/rules/react/hooks.md +187 -0
- package/vendor/theus-arsenal/rules/react/patterns.md +194 -0
- package/vendor/theus-arsenal/rules/react/security.md +180 -0
- package/vendor/theus-arsenal/rules/react/testing.md +208 -0
- package/vendor/theus-arsenal/rules/react-native/accessibility.md +55 -0
- package/vendor/theus-arsenal/rules/react-native/coding-style.md +71 -0
- package/vendor/theus-arsenal/rules/react-native/hooks.md +28 -0
- package/vendor/theus-arsenal/rules/react-native/patterns.md +88 -0
- package/vendor/theus-arsenal/rules/react-native/performance.md +45 -0
- package/vendor/theus-arsenal/rules/react-native/production-readiness.md +51 -0
- package/vendor/theus-arsenal/rules/react-native/security.md +43 -0
- package/vendor/theus-arsenal/rules/react-native/testing.md +52 -0
- package/vendor/theus-arsenal/rules/ruby/coding-style.md +46 -0
- package/vendor/theus-arsenal/rules/ruby/hooks.md +37 -0
- package/vendor/theus-arsenal/rules/ruby/patterns.md +44 -0
- package/vendor/theus-arsenal/rules/ruby/security.md +51 -0
- package/vendor/theus-arsenal/rules/ruby/testing.md +51 -0
- package/vendor/theus-arsenal/rules/rust/coding-style.md +151 -0
- package/vendor/theus-arsenal/rules/rust/hooks.md +16 -0
- package/vendor/theus-arsenal/rules/rust/patterns.md +168 -0
- package/vendor/theus-arsenal/rules/rust/security.md +141 -0
- package/vendor/theus-arsenal/rules/rust/testing.md +154 -0
- package/vendor/theus-arsenal/rules/swift/coding-style.md +47 -0
- package/vendor/theus-arsenal/rules/swift/hooks.md +20 -0
- package/vendor/theus-arsenal/rules/swift/patterns.md +66 -0
- package/vendor/theus-arsenal/rules/swift/security.md +33 -0
- package/vendor/theus-arsenal/rules/swift/testing.md +45 -0
- package/vendor/theus-arsenal/rules/typescript/coding-style.md +199 -0
- package/vendor/theus-arsenal/rules/typescript/hooks.md +22 -0
- package/vendor/theus-arsenal/rules/typescript/patterns.md +52 -0
- package/vendor/theus-arsenal/rules/typescript/security.md +28 -0
- package/vendor/theus-arsenal/rules/typescript/testing.md +18 -0
- package/vendor/theus-arsenal/rules/vue/coding-style.md +54 -0
- package/vendor/theus-arsenal/rules/vue/hooks.md +45 -0
- package/vendor/theus-arsenal/rules/vue/patterns.md +56 -0
- package/vendor/theus-arsenal/rules/vue/security.md +46 -0
- package/vendor/theus-arsenal/rules/vue/testing.md +53 -0
- package/vendor/theus-arsenal/rules/web/coding-style.md +108 -0
- package/vendor/theus-arsenal/rules/web/design-quality.md +75 -0
- package/vendor/theus-arsenal/rules/web/hooks.md +141 -0
- package/vendor/theus-arsenal/rules/web/patterns.md +91 -0
- package/vendor/theus-arsenal/rules/web/performance.md +76 -0
- package/vendor/theus-arsenal/rules/web/security.md +69 -0
- package/vendor/theus-arsenal/rules/web/testing.md +67 -0
- package/vendor/theus-arsenal/scripts/hooks/bash-hook-dispatcher.js +192 -0
- package/vendor/theus-arsenal/scripts/hooks/block-no-verify.js +556 -0
- package/vendor/theus-arsenal/scripts/hooks/check-console-log.js +92 -0
- package/vendor/theus-arsenal/scripts/hooks/check-hook-enabled.js +16 -0
- package/vendor/theus-arsenal/scripts/hooks/config-protection.js +171 -0
- package/vendor/theus-arsenal/scripts/hooks/design-quality-check.js +132 -0
- package/vendor/theus-arsenal/scripts/hooks/doc-file-warning.js +110 -0
- package/vendor/theus-arsenal/scripts/hooks/modo-seguro.js +158 -0
- package/vendor/theus-arsenal/scripts/hooks/notificacion-escritorio.js +208 -0
- package/vendor/theus-arsenal/scripts/hooks/plugin-hook-bootstrap.js +280 -0
- package/vendor/theus-arsenal/scripts/hooks/post-bash-command-log.js +87 -0
- package/vendor/theus-arsenal/scripts/hooks/post-bash-dispatcher.js +24 -0
- package/vendor/theus-arsenal/scripts/hooks/post-bash-pr-created.js +60 -0
- package/vendor/theus-arsenal/scripts/hooks/post-edit-accumulator.js +94 -0
- package/vendor/theus-arsenal/scripts/hooks/post-edit-console-warn.js +54 -0
- package/vendor/theus-arsenal/scripts/hooks/post-edit-format.js +110 -0
- package/vendor/theus-arsenal/scripts/hooks/post-edit-typecheck.js +98 -0
- package/vendor/theus-arsenal/scripts/hooks/pre-bash-commit-quality.js +447 -0
- package/vendor/theus-arsenal/scripts/hooks/pre-bash-dev-server-block.js +232 -0
- package/vendor/theus-arsenal/scripts/hooks/pre-bash-dispatcher.js +27 -0
- package/vendor/theus-arsenal/scripts/hooks/pre-compact.js +101 -0
- package/vendor/theus-arsenal/scripts/hooks/pretooluse-visible-output.js +49 -0
- package/vendor/theus-arsenal/scripts/hooks/quality-gate.js +168 -0
- package/vendor/theus-arsenal/scripts/hooks/run-with-flags.js +271 -0
- package/vendor/theus-arsenal/scripts/hooks/salud-mcp.js +749 -0
- package/vendor/theus-arsenal/scripts/hooks/seguimiento-costos.js +161 -0
- package/vendor/theus-arsenal/scripts/hooks/session-end.js +340 -0
- package/vendor/theus-arsenal/scripts/hooks/session-start.js +906 -0
- package/vendor/theus-arsenal/scripts/hooks/stop-format-typecheck.js +263 -0
- package/vendor/theus-arsenal/scripts/hooks/suggest-compact.js +286 -0
- package/vendor/theus-arsenal/scripts/hooks/theus-context-monitor.js +289 -0
- package/vendor/theus-arsenal/scripts/hooks/verificacion-factual.js +1278 -0
- package/vendor/theus-arsenal/scripts/lib/agent-data-home.js +96 -0
- package/vendor/theus-arsenal/scripts/lib/cost-estimate.js +66 -0
- package/vendor/theus-arsenal/scripts/lib/hook-flags.js +79 -0
- package/vendor/theus-arsenal/scripts/lib/llm-summary.js +185 -0
- package/vendor/theus-arsenal/scripts/lib/loopback-guard.js +54 -0
- package/vendor/theus-arsenal/scripts/lib/observer-sessions.js +237 -0
- package/vendor/theus-arsenal/scripts/lib/package-manager.d.ts +120 -0
- package/vendor/theus-arsenal/scripts/lib/package-manager.js +434 -0
- package/vendor/theus-arsenal/scripts/lib/path-safety.js +86 -0
- package/vendor/theus-arsenal/scripts/lib/plan-canvas/markdown.js +285 -0
- package/vendor/theus-arsenal/scripts/lib/plan-canvas/sdk.js +238 -0
- package/vendor/theus-arsenal/scripts/lib/plan-canvas/server.js +534 -0
- package/vendor/theus-arsenal/scripts/lib/plan-canvas/sessions.js +274 -0
- package/vendor/theus-arsenal/scripts/lib/plan-canvas/ui.js +546 -0
- package/vendor/theus-arsenal/scripts/lib/project-detect.js +451 -0
- package/vendor/theus-arsenal/scripts/lib/resolve-formatter.js +193 -0
- package/vendor/theus-arsenal/scripts/lib/resolve-theus-root.js +101 -0
- package/vendor/theus-arsenal/scripts/lib/session-aliases.d.ts +138 -0
- package/vendor/theus-arsenal/scripts/lib/session-aliases.js +483 -0
- package/vendor/theus-arsenal/scripts/lib/session-bridge.js +155 -0
- package/vendor/theus-arsenal/scripts/lib/session-manager.d.ts +137 -0
- package/vendor/theus-arsenal/scripts/lib/session-manager.js +555 -0
- package/vendor/theus-arsenal/scripts/lib/shell-split.js +86 -0
- package/vendor/theus-arsenal/scripts/lib/shell-substitution.js +501 -0
- package/vendor/theus-arsenal/scripts/lib/skill-evolution/dashboard.js +414 -0
- package/vendor/theus-arsenal/scripts/lib/skill-evolution/health.js +285 -0
- package/vendor/theus-arsenal/scripts/lib/skill-evolution/index.js +22 -0
- package/vendor/theus-arsenal/scripts/lib/skill-evolution/provenance.js +200 -0
- package/vendor/theus-arsenal/scripts/lib/skill-evolution/tracker.js +157 -0
- package/vendor/theus-arsenal/scripts/lib/skill-evolution/versioning.js +246 -0
- package/vendor/theus-arsenal/scripts/lib/transcript-context.js +232 -0
- package/vendor/theus-arsenal/scripts/lib/utils.d.ts +205 -0
- package/vendor/theus-arsenal/scripts/lib/utils.js +658 -0
- package/vendor/theus-arsenal/scripts/plan-canvas.js +341 -0
- package/vendor/theus-arsenal/scripts/setup-package-manager.js +46 -0
- package/vendor/theus-arsenal/scripts/skills-health.js +143 -0
- package/vendor/theus-arsenal/skills/a11y-frontend/SKILL.md +444 -0
- package/vendor/theus-arsenal/skills/accesibilidad/SKILL.md +144 -0
- package/vendor/theus-arsenal/skills/acelerador-throughput-datos/SKILL.md +72 -0
- package/vendor/theus-arsenal/skills/agente-scraper-datos/SKILL.md +771 -0
- package/vendor/theus-arsenal/skills/analisis-plataformas-competencia/SKILL.md +137 -0
- package/vendor/theus-arsenal/skills/api-x/SKILL.md +233 -0
- package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/SKILL.md +335 -0
- package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/agents/observer-loop.sh +374 -0
- package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/agents/observer.md +188 -0
- package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/agents/session-guardian.sh +153 -0
- package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/agents/start-observer.sh +253 -0
- package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/config.json +8 -0
- package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/hooks/observe.sh +594 -0
- package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/scripts/detect-project.sh +325 -0
- package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/scripts/instinct-cli.py +1918 -0
- package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/scripts/lib/arsenal-dir.sh +23 -0
- package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/scripts/test_parse_instinct.py +1420 -0
- package/vendor/theus-arsenal/skills/arquitectura-hexagonal/SKILL.md +275 -0
- package/vendor/theus-arsenal/skills/arquitectura-limpia-android/SKILL.md +340 -0
- package/vendor/theus-arsenal/skills/arquitectura-pipelines-recomendacion/SKILL.md +112 -0
- package/vendor/theus-arsenal/skills/atlas-datos-prediccion/SKILL.md +53 -0
- package/vendor/theus-arsenal/skills/auditoria-arquitectura-agentes/SKILL.md +257 -0
- package/vendor/theus-arsenal/skills/auditoria-produccion/SKILL.md +180 -0
- package/vendor/theus-arsenal/skills/auditoria-rutas-clic/SKILL.md +243 -0
- package/vendor/theus-arsenal/skills/autoevaluacion-agente/SKILL.md +180 -0
- package/vendor/theus-arsenal/skills/autoevaluacion-agente/examples/high-score-example.md +89 -0
- package/vendor/theus-arsenal/skills/autoevaluacion-agente/examples/low-score-example.md +87 -0
- package/vendor/theus-arsenal/skills/autoevaluacion-agente/references/evaluation-criteria.md +71 -0
- package/vendor/theus-arsenal/skills/autoevaluacion-agente/references/hook-integration.md +90 -0
- package/vendor/theus-arsenal/skills/autoevaluacion-agente/scripts/evaluate.py +409 -0
- package/vendor/theus-arsenal/skills/autoevaluacion-agente/templates/evaluation-report.md +86 -0
- package/vendor/theus-arsenal/skills/automatizacion-ssh-netmiko/SKILL.md +176 -0
- package/vendor/theus-arsenal/skills/base-datos-pubmed/SKILL.md +174 -0
- package/vendor/theus-arsenal/skills/base-datos-uspto/SKILL.md +173 -0
- package/vendor/theus-arsenal/skills/benchmark/SKILL.md +92 -0
- package/vendor/theus-arsenal/skills/bitacora-crecimiento/SKILL.md +120 -0
- package/vendor/theus-arsenal/skills/bucle-verificacion/SKILL.md +125 -0
- package/vendor/theus-arsenal/skills/buscar-primero/SKILL.md +184 -0
- package/vendor/theus-arsenal/skills/busqueda-exa/SKILL.md +111 -0
- package/vendor/theus-arsenal/skills/cache-por-hash/SKILL.md +160 -0
- package/vendor/theus-arsenal/skills/campana-marketing/SKILL.md +118 -0
- package/vendor/theus-arsenal/skills/capacidad-producto/SKILL.md +138 -0
- package/vendor/theus-arsenal/skills/cazador-vulnerabilidades/SKILL.md +104 -0
- package/vendor/theus-arsenal/skills/compactacion-estrategica/SKILL.md +115 -0
- package/vendor/theus-arsenal/skills/comparador-baskets-prediccion/SKILL.md +69 -0
- package/vendor/theus-arsenal/skills/compras-energia/SKILL.md +206 -0
- package/vendor/theus-arsenal/skills/concurrencia-swift-6-2/SKILL.md +224 -0
- package/vendor/theus-arsenal/skills/consejo/SKILL.md +201 -0
- package/vendor/theus-arsenal/skills/construccion-harness-agentes/SKILL.md +78 -0
- package/vendor/theus-arsenal/skills/constructor-conectores/SKILL.md +119 -0
- package/vendor/theus-arsenal/skills/constructor-equipos/SKILL.md +169 -0
- package/vendor/theus-arsenal/skills/consulta-documentacion/SKILL.md +92 -0
- package/vendor/theus-arsenal/skills/consultas-genomicas-gget/SKILL.md +170 -0
- package/vendor/theus-arsenal/skills/contacto-inversores/SKILL.md +95 -0
- package/vendor/theus-arsenal/skills/corrutinas-flows-kotlin/SKILL.md +284 -0
- package/vendor/theus-arsenal/skills/creacion-video-remotion/SKILL.md +46 -0
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/3d.md +86 -0
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/animations.md +29 -0
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/assets/charts-bar-chart.tsx +173 -0
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/assets/text-animations-typewriter.tsx +100 -0
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/assets/text-animations-word-highlight.tsx +108 -0
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/assets.md +78 -0
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/audio.md +172 -0
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/calculate-metadata.md +104 -0
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/can-decode.md +75 -0
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/charts.md +58 -0
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/compositions.md +146 -0
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/display-captions.md +126 -0
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/extract-frames.md +229 -0
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/fonts.md +152 -0
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/get-audio-duration.md +58 -0
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/get-video-dimensions.md +68 -0
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/get-video-duration.md +58 -0
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/gifs.md +138 -0
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/images.md +130 -0
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/import-srt-captions.md +67 -0
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/lottie.md +67 -0
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/measuring-dom-nodes.md +34 -0
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/measuring-text.md +143 -0
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/sequencing.md +106 -0
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/tailwind.md +11 -0
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/text-animations.md +20 -0
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/timing.md +179 -0
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/transcribe-captions.md +19 -0
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/transitions.md +122 -0
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/trimming.md +52 -0
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/videos.md +171 -0
- package/vendor/theus-arsenal/skills/cumplimiento-aduanero/SKILL.md +270 -0
- package/vendor/theus-arsenal/skills/cumplimiento-hipaa/SKILL.md +78 -0
- package/vendor/theus-arsenal/skills/datos-sensibles-salud/SKILL.md +149 -0
- package/vendor/theus-arsenal/skills/decimales-tokens-evm/SKILL.md +128 -0
- package/vendor/theus-arsenal/skills/decisiones-arquitectura/SKILL.md +206 -0
- package/vendor/theus-arsenal/skills/demos-ui/SKILL.md +469 -0
- package/vendor/theus-arsenal/skills/desarrollo-por-intencion/SKILL.md +369 -0
- package/vendor/theus-arsenal/skills/descubrimiento-marca/SKILL.md +149 -0
- package/vendor/theus-arsenal/skills/descubrimiento-marca/references/10_proposito-porque.md +42 -0
- package/vendor/theus-arsenal/skills/descubrimiento-marca/references/20_posicionamiento.md +47 -0
- package/vendor/theus-arsenal/skills/descubrimiento-marca/references/30_audiencia-nicho.md +53 -0
- package/vendor/theus-arsenal/skills/descubrimiento-marca/references/40_personalidad-arquetipo.md +61 -0
- package/vendor/theus-arsenal/skills/descubrimiento-marca/references/50_voz-tono.md +62 -0
- package/vendor/theus-arsenal/skills/descubrimiento-marca/references/60_narrativa-historia.md +54 -0
- package/vendor/theus-arsenal/skills/descubrimiento-marca/references/70_tension-fundador.md +50 -0
- package/vendor/theus-arsenal/skills/descubrimiento-marca/references/90_SINTESIS.md +133 -0
- package/vendor/theus-arsenal/skills/descubrimiento-plugins-laravel/SKILL.md +230 -0
- package/vendor/theus-arsenal/skills/destilado-reglas/SKILL.md +263 -0
- package/vendor/theus-arsenal/skills/destilado-reglas/scripts/scan-rules.sh +58 -0
- package/vendor/theus-arsenal/skills/destilado-reglas/scripts/scan-skills.sh +129 -0
- package/vendor/theus-arsenal/skills/diagnostico-bgp/SKILL.md +170 -0
- package/vendor/theus-arsenal/skills/direccion-estetica/SKILL.md +220 -0
- package/vendor/theus-arsenal/skills/direccion-estetica/references/taxonomia-generos.md +89 -0
- package/vendor/theus-arsenal/skills/diseno-api/SKILL.md +522 -0
- package/vendor/theus-arsenal/skills/diseno-liquid-glass/SKILL.md +282 -0
- package/vendor/theus-arsenal/skills/e2e-escritorio-windows/SKILL.md +879 -0
- package/vendor/theus-arsenal/skills/edicion-video/SKILL.md +289 -0
- package/vendor/theus-arsenal/skills/enfoque-producto/SKILL.md +91 -0
- package/vendor/theus-arsenal/skills/entornos-flox/SKILL.md +493 -0
- package/vendor/theus-arsenal/skills/estandares-codigo/SKILL.md +548 -0
- package/vendor/theus-arsenal/skills/estandares-cpp/SKILL.md +727 -0
- package/vendor/theus-arsenal/skills/estandares-java/SKILL.md +389 -0
- package/vendor/theus-arsenal/skills/estilo-legado/SKILL.md +149 -0
- package/vendor/theus-arsenal/skills/estructura-informes-competencia/SKILL.md +95 -0
- package/vendor/theus-arsenal/skills/evaluacion-academica/SKILL.md +165 -0
- package/vendor/theus-arsenal/skills/explorador-skills/SKILL.md +129 -0
- package/vendor/theus-arsenal/skills/flujo-git/SKILL.md +714 -0
- package/vendor/theus-arsenal/skills/flujo-ingenieria-ml/SKILL.md +343 -0
- package/vendor/theus-arsenal/skills/flujo-tdd/SKILL.md +584 -0
- package/vendor/theus-arsenal/skills/forja-personas/SKILL.md +298 -0
- package/vendor/theus-arsenal/skills/forja-personas/gacha.py +224 -0
- package/vendor/theus-arsenal/skills/forja-personas/gacha.sh +5 -0
- package/vendor/theus-arsenal/skills/forja-personas/references/avatar-style.md +123 -0
- package/vendor/theus-arsenal/skills/forja-personas/references/boundary-rules.md +53 -0
- package/vendor/theus-arsenal/skills/forja-personas/references/error-handling.md +53 -0
- package/vendor/theus-arsenal/skills/forja-personas/references/identity-tension.md +48 -0
- package/vendor/theus-arsenal/skills/forja-personas/references/naming-system.md +39 -0
- package/vendor/theus-arsenal/skills/forja-personas/references/output-template.md +166 -0
- package/vendor/theus-arsenal/skills/fundamentos-animacion/SKILL.md +296 -0
- package/vendor/theus-arsenal/skills/generacion-iconos-ios/SKILL.md +156 -0
- package/vendor/theus-arsenal/skills/generacion-iconos-ios/scripts/generate_icons.swift +258 -0
- package/vendor/theus-arsenal/skills/generacion-iconos-ios/scripts/iconify_gen.sh +235 -0
- package/vendor/theus-arsenal/skills/gestion-excepciones-logisticas/SKILL.md +208 -0
- package/vendor/theus-arsenal/skills/gestion-transportistas/SKILL.md +204 -0
- package/vendor/theus-arsenal/skills/guia-adopcion-ml/SKILL.md +64 -0
- package/vendor/theus-arsenal/skills/harness-agente-autonomo/SKILL.md +252 -0
- package/vendor/theus-arsenal/skills/harness-eval-clinico/SKILL.md +212 -0
- package/vendor/theus-arsenal/skills/harness-evaluacion/SKILL.md +296 -0
- package/vendor/theus-arsenal/skills/harness-generador-evaluador/SKILL.md +254 -0
- package/vendor/theus-arsenal/skills/homelab-diseno-red/SKILL.md +120 -0
- package/vendor/theus-arsenal/skills/homelab-dns-pihole/SKILL.md +264 -0
- package/vendor/theus-arsenal/skills/homelab-preparacion-red/SKILL.md +144 -0
- package/vendor/theus-arsenal/skills/homelab-segmentacion-vlan/SKILL.md +307 -0
- package/vendor/theus-arsenal/skills/homelab-vpn-wireguard/SKILL.md +299 -0
- package/vendor/theus-arsenal/skills/ingenieria-agentica/SKILL.md +96 -0
- package/vendor/theus-arsenal/skills/inspeccion-animaciones-blender/SKILL.md +164 -0
- package/vendor/theus-arsenal/skills/instaladores-python/SKILL.md +820 -0
- package/vendor/theus-arsenal/skills/integracion-jira/SKILL.md +307 -0
- package/vendor/theus-arsenal/skills/inteligencia-leads/SKILL.md +312 -0
- package/vendor/theus-arsenal/skills/inteligencia-leads/agents/agente-enriquecimiento.md +87 -0
- package/vendor/theus-arsenal/skills/inteligencia-leads/agents/mapeador-mutuos.md +76 -0
- package/vendor/theus-arsenal/skills/inteligencia-leads/agents/puntuador-senales.md +60 -0
- package/vendor/theus-arsenal/skills/inteligencia-leads/agents/redactor-outreach.md +102 -0
- package/vendor/theus-arsenal/skills/inteligencia-mercados-prediccion/SKILL.md +53 -0
- package/vendor/theus-arsenal/skills/introspeccion-agente/SKILL.md +150 -0
- package/vendor/theus-arsenal/skills/inventario-skills/SKILL.md +194 -0
- package/vendor/theus-arsenal/skills/inventario-skills/scripts/quick-diff.sh +87 -0
- package/vendor/theus-arsenal/skills/inventario-skills/scripts/save-results.sh +57 -0
- package/vendor/theus-arsenal/skills/inventario-skills/scripts/scan.sh +170 -0
- package/vendor/theus-arsenal/skills/investigacion-mercado/SKILL.md +87 -0
- package/vendor/theus-arsenal/skills/investigacion-oraculos-prediccion/SKILL.md +59 -0
- package/vendor/theus-arsenal/skills/investigacion-profunda/SKILL.md +161 -0
- package/vendor/theus-arsenal/skills/keccak256-nodejs/SKILL.md +100 -0
- package/vendor/theus-arsenal/skills/libro-decisiones-recursivo/SKILL.md +82 -0
- package/vendor/theus-arsenal/skills/lienzo-planes/SKILL.md +111 -0
- package/vendor/theus-arsenal/skills/limpieza-configuracion/SKILL.md +116 -0
- package/vendor/theus-arsenal/skills/logistica-inversa-devoluciones/SKILL.md +241 -0
- package/vendor/theus-arsenal/skills/manejo-errores/SKILL.md +375 -0
- package/vendor/theus-arsenal/skills/materiales-inversores/SKILL.md +101 -0
- package/vendor/theus-arsenal/skills/memoria-por-proyecto/SKILL.md +170 -0
- package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/forget.mjs +44 -0
- package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/info.mjs +24 -0
- package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/init.mjs +152 -0
- package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/list.mjs +40 -0
- package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/migrate.mjs +214 -0
- package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/resume.mjs +36 -0
- package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/save.mjs +210 -0
- package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/shared.mjs +402 -0
- package/vendor/theus-arsenal/skills/memoria-por-proyecto/hooks/session-start.mjs +238 -0
- package/vendor/theus-arsenal/skills/metodologia-benchmarks/SKILL.md +131 -0
- package/vendor/theus-arsenal/skills/migraciones-bd/SKILL.md +430 -0
- package/vendor/theus-arsenal/skills/modelos-fundacionales-en-dispositivo/SKILL.md +244 -0
- package/vendor/theus-arsenal/skills/modo-seguro/SKILL.md +86 -0
- package/vendor/theus-arsenal/skills/motion-avanzado/SKILL.md +592 -0
- package/vendor/theus-arsenal/skills/motor-de-contenido/SKILL.md +136 -0
- package/vendor/theus-arsenal/skills/no-conformidades-calidad/SKILL.md +249 -0
- package/vendor/theus-arsenal/skills/onboarding-codigo/SKILL.md +244 -0
- package/vendor/theus-arsenal/skills/operaciones-agentes-empresariales/SKILL.md +51 -0
- package/vendor/theus-arsenal/skills/operaciones-conocimiento/SKILL.md +159 -0
- package/vendor/theus-arsenal/skills/operaciones-correo/SKILL.md +123 -0
- package/vendor/theus-arsenal/skills/operaciones-facturacion/SKILL.md +142 -0
- package/vendor/theus-arsenal/skills/operaciones-flujo-proyectos/SKILL.md +110 -0
- package/vendor/theus-arsenal/skills/operaciones-github/SKILL.md +143 -0
- package/vendor/theus-arsenal/skills/operaciones-google-workspace/SKILL.md +100 -0
- package/vendor/theus-arsenal/skills/operaciones-investigacion/SKILL.md +124 -0
- package/vendor/theus-arsenal/skills/operaciones-mensajes/SKILL.md +103 -0
- package/vendor/theus-arsenal/skills/operaciones-terminal/SKILL.md +110 -0
- package/vendor/theus-arsenal/skills/optimizacion-benchmark/SKILL.md +70 -0
- package/vendor/theus-arsenal/skills/optimizacion-costos-llm/SKILL.md +182 -0
- package/vendor/theus-arsenal/skills/optimizador-conexiones/SKILL.md +191 -0
- package/vendor/theus-arsenal/skills/optimizador-paralelismo/SKILL.md +75 -0
- package/vendor/theus-arsenal/skills/optimizador-prompts/SKILL.md +374 -0
- package/vendor/theus-arsenal/skills/orq-agregar-funcionalidad/SKILL.md +37 -0
- package/vendor/theus-arsenal/skills/orq-cambiar-funcionalidad/SKILL.md +36 -0
- package/vendor/theus-arsenal/skills/orq-construir-mvp/SKILL.md +38 -0
- package/vendor/theus-arsenal/skills/orq-corregir-defecto/SKILL.md +36 -0
- package/vendor/theus-arsenal/skills/orq-pipeline/SKILL.md +134 -0
- package/vendor/theus-arsenal/skills/orq-refinar-codigo/SKILL.md +49 -0
- package/vendor/theus-arsenal/skills/orquestacion-equipos-agentes/SKILL.md +117 -0
- package/vendor/theus-arsenal/skills/pagos-agentes-x402/SKILL.md +237 -0
- package/vendor/theus-arsenal/skills/patrones-angular/SKILL.md +153 -0
- package/vendor/theus-arsenal/skills/patrones-angular/references/angular-animations.md +160 -0
- package/vendor/theus-arsenal/skills/patrones-angular/references/angular-aria.md +410 -0
- package/vendor/theus-arsenal/skills/patrones-angular/references/cli.md +86 -0
- package/vendor/theus-arsenal/skills/patrones-angular/references/component-harnesses.md +59 -0
- package/vendor/theus-arsenal/skills/patrones-angular/references/component-styling.md +91 -0
- package/vendor/theus-arsenal/skills/patrones-angular/references/components.md +117 -0
- package/vendor/theus-arsenal/skills/patrones-angular/references/creating-services.md +97 -0
- package/vendor/theus-arsenal/skills/patrones-angular/references/data-resolvers.md +69 -0
- package/vendor/theus-arsenal/skills/patrones-angular/references/define-routes.md +67 -0
- package/vendor/theus-arsenal/skills/patrones-angular/references/defining-providers.md +72 -0
- package/vendor/theus-arsenal/skills/patrones-angular/references/di-fundamentals.md +120 -0
- package/vendor/theus-arsenal/skills/patrones-angular/references/e2e-testing.md +56 -0
- package/vendor/theus-arsenal/skills/patrones-angular/references/effects.md +83 -0
- package/vendor/theus-arsenal/skills/patrones-angular/references/hierarchical-injectors.md +43 -0
- package/vendor/theus-arsenal/skills/patrones-angular/references/host-elements.md +80 -0
- package/vendor/theus-arsenal/skills/patrones-angular/references/injection-context.md +63 -0
- package/vendor/theus-arsenal/skills/patrones-angular/references/inputs.md +101 -0
- package/vendor/theus-arsenal/skills/patrones-angular/references/linked-signal.md +59 -0
- package/vendor/theus-arsenal/skills/patrones-angular/references/loading-strategies.md +61 -0
- package/vendor/theus-arsenal/skills/patrones-angular/references/mcp.md +67 -0
- package/vendor/theus-arsenal/skills/patrones-angular/references/navigate-to-routes.md +69 -0
- package/vendor/theus-arsenal/skills/patrones-angular/references/outputs.md +86 -0
- package/vendor/theus-arsenal/skills/patrones-angular/references/reactive-forms.md +122 -0
- package/vendor/theus-arsenal/skills/patrones-angular/references/rendering-strategies.md +44 -0
- package/vendor/theus-arsenal/skills/patrones-angular/references/resource.md +77 -0
- package/vendor/theus-arsenal/skills/patrones-angular/references/route-animations.md +56 -0
- package/vendor/theus-arsenal/skills/patrones-angular/references/route-guards.md +52 -0
- package/vendor/theus-arsenal/skills/patrones-angular/references/router-lifecycle.md +45 -0
- package/vendor/theus-arsenal/skills/patrones-angular/references/router-testing.md +87 -0
- package/vendor/theus-arsenal/skills/patrones-angular/references/show-routes-with-outlets.md +68 -0
- package/vendor/theus-arsenal/skills/patrones-angular/references/signal-forms.md +795 -0
- package/vendor/theus-arsenal/skills/patrones-angular/references/signals-overview.md +94 -0
- package/vendor/theus-arsenal/skills/patrones-angular/references/tailwind-css.md +69 -0
- package/vendor/theus-arsenal/skills/patrones-angular/references/template-driven-forms.md +114 -0
- package/vendor/theus-arsenal/skills/patrones-angular/references/testing-fundamentals.md +65 -0
- package/vendor/theus-arsenal/skills/patrones-animacion/SKILL.md +432 -0
- package/vendor/theus-arsenal/skills/patrones-backend/SKILL.md +560 -0
- package/vendor/theus-arsenal/skills/patrones-cdss-clinico/SKILL.md +249 -0
- package/vendor/theus-arsenal/skills/patrones-cisco-ios/SKILL.md +148 -0
- package/vendor/theus-arsenal/skills/patrones-clickhouse/SKILL.md +443 -0
- package/vendor/theus-arsenal/skills/patrones-compose-multiplatform/SKILL.md +298 -0
- package/vendor/theus-arsenal/skills/patrones-dart-flutter/SKILL.md +566 -0
- package/vendor/theus-arsenal/skills/patrones-despliegue/SKILL.md +426 -0
- package/vendor/theus-arsenal/skills/patrones-django/SKILL.md +739 -0
- package/vendor/theus-arsenal/skills/patrones-django-celery/SKILL.md +456 -0
- package/vendor/theus-arsenal/skills/patrones-docker/SKILL.md +363 -0
- package/vendor/theus-arsenal/skills/patrones-dotnet/SKILL.md +321 -0
- package/vendor/theus-arsenal/skills/patrones-emr-clinico/SKILL.md +168 -0
- package/vendor/theus-arsenal/skills/patrones-fastapi/SKILL.md +513 -0
- package/vendor/theus-arsenal/skills/patrones-frontend/SKILL.md +655 -0
- package/vendor/theus-arsenal/skills/patrones-go/SKILL.md +674 -0
- package/vendor/theus-arsenal/skills/patrones-jpa/SKILL.md +156 -0
- package/vendor/theus-arsenal/skills/patrones-kotlin/SKILL.md +717 -0
- package/vendor/theus-arsenal/skills/patrones-kotlin-exposed/SKILL.md +724 -0
- package/vendor/theus-arsenal/skills/patrones-kotlin-ktor/SKILL.md +694 -0
- package/vendor/theus-arsenal/skills/patrones-kubernetes/SKILL.md +754 -0
- package/vendor/theus-arsenal/skills/patrones-laravel/SKILL.md +414 -0
- package/vendor/theus-arsenal/skills/patrones-mcp/SKILL.md +66 -0
- package/vendor/theus-arsenal/skills/patrones-mysql/SKILL.md +420 -0
- package/vendor/theus-arsenal/skills/patrones-nestjs/SKILL.md +229 -0
- package/vendor/theus-arsenal/skills/patrones-nextjs/SKILL.md +56 -0
- package/vendor/theus-arsenal/skills/patrones-nuxt4/SKILL.md +99 -0
- package/vendor/theus-arsenal/skills/patrones-perl/SKILL.md +508 -0
- package/vendor/theus-arsenal/skills/patrones-postgres/SKILL.md +141 -0
- package/vendor/theus-arsenal/skills/patrones-prisma/SKILL.md +399 -0
- package/vendor/theus-arsenal/skills/patrones-python/SKILL.md +750 -0
- package/vendor/theus-arsenal/skills/patrones-pytorch/SKILL.md +400 -0
- package/vendor/theus-arsenal/skills/patrones-quarkus/SKILL.md +729 -0
- package/vendor/theus-arsenal/skills/patrones-react/SKILL.md +339 -0
- package/vendor/theus-arsenal/skills/patrones-react-native/SKILL.md +325 -0
- package/vendor/theus-arsenal/skills/patrones-redis/SKILL.md +401 -0
- package/vendor/theus-arsenal/skills/patrones-rust/SKILL.md +504 -0
- package/vendor/theus-arsenal/skills/patrones-springboot/SKILL.md +314 -0
- package/vendor/theus-arsenal/skills/patrones-swiftui/SKILL.md +261 -0
- package/vendor/theus-arsenal/skills/patrones-tinystruct/SKILL.md +281 -0
- package/vendor/theus-arsenal/skills/patrones-tinystruct/references/architecture.md +90 -0
- package/vendor/theus-arsenal/skills/patrones-tinystruct/references/data-handling.md +60 -0
- package/vendor/theus-arsenal/skills/patrones-tinystruct/references/database.md +99 -0
- package/vendor/theus-arsenal/skills/patrones-tinystruct/references/routing.md +64 -0
- package/vendor/theus-arsenal/skills/patrones-tinystruct/references/system-usage.md +97 -0
- package/vendor/theus-arsenal/skills/patrones-tinystruct/references/testing.md +72 -0
- package/vendor/theus-arsenal/skills/patrones-vite/SKILL.md +449 -0
- package/vendor/theus-arsenal/skills/patrones-vue/SKILL.md +469 -0
- package/vendor/theus-arsenal/skills/persistencia-actores-swift/SKILL.md +148 -0
- package/vendor/theus-arsenal/skills/pipeline-opensource/SKILL.md +254 -0
- package/vendor/theus-arsenal/skills/planificacion-demanda-inventario/SKILL.md +236 -0
- package/vendor/theus-arsenal/skills/planificador-trades-prediccion/SKILL.md +60 -0
- package/vendor/theus-arsenal/skills/plano-tecnico/SKILL.md +102 -0
- package/vendor/theus-arsenal/skills/presentaciones-html/SKILL.md +189 -0
- package/vendor/theus-arsenal/skills/presentaciones-html/STYLE_PRESETS.md +330 -0
- package/vendor/theus-arsenal/skills/presentaciones-html/animation-patterns.md +122 -0
- package/vendor/theus-arsenal/skills/presentaciones-html/html-template.md +419 -0
- package/vendor/theus-arsenal/skills/presentaciones-html/scripts/export-pdf.sh +418 -0
- package/vendor/theus-arsenal/skills/presentaciones-html/scripts/extract-pptx.py +96 -0
- package/vendor/theus-arsenal/skills/presentaciones-html/viewport-base.css +153 -0
- package/vendor/theus-arsenal/skills/presupuesto-contexto/SKILL.md +263 -0
- package/vendor/theus-arsenal/skills/procesamiento-documentos-nutrient/SKILL.md +168 -0
- package/vendor/theus-arsenal/skills/programacion-produccion/SKILL.md +220 -0
- package/vendor/theus-arsenal/skills/publicacion-cruzada/SKILL.md +117 -0
- package/vendor/theus-arsenal/skills/publicador-social/SKILL.md +121 -0
- package/vendor/theus-arsenal/skills/puerta-de-entrega/SKILL.md +164 -0
- package/vendor/theus-arsenal/skills/puerta-de-entrega/hooks/puerta-entrega.py +242 -0
- package/vendor/theus-arsenal/skills/pulir-interfaces/SKILL.md +126 -0
- package/vendor/theus-arsenal/skills/qa-navegador/SKILL.md +103 -0
- package/vendor/theus-arsenal/skills/ranking-grafo-social/SKILL.md +153 -0
- package/vendor/theus-arsenal/skills/recuperacion-iterativa/SKILL.md +236 -0
- package/vendor/theus-arsenal/skills/redaccion-articulos/SKILL.md +81 -0
- package/vendor/theus-arsenal/skills/regex-vs-llm/SKILL.md +221 -0
- package/vendor/theus-arsenal/skills/regresion-codigo-ia/SKILL.md +388 -0
- package/vendor/theus-arsenal/skills/rendimiento-react/SKILL.md +567 -0
- package/vendor/theus-arsenal/skills/revision-codigo-flutter-dart/SKILL.md +442 -0
- package/vendor/theus-arsenal/skills/revision-literatura-cientifica/SKILL.md +191 -0
- package/vendor/theus-arsenal/skills/revision-multiperspectiva/SKILL.md +302 -0
- package/vendor/theus-arsenal/skills/revision-riesgo-prediccion/SKILL.md +56 -0
- package/vendor/theus-arsenal/skills/revision-seguridad/SKILL.md +505 -0
- package/vendor/theus-arsenal/skills/revision-seguridad/cloud-infrastructure-security.md +361 -0
- package/vendor/theus-arsenal/skills/runtime-bun/SKILL.md +83 -0
- package/vendor/theus-arsenal/skills/salud-codigo-codescene/SKILL.md +163 -0
- package/vendor/theus-arsenal/skills/salud-interfaces-red/SKILL.md +143 -0
- package/vendor/theus-arsenal/skills/seguimiento-costos/SKILL.md +122 -0
- package/vendor/theus-arsenal/skills/seguridad-agentes-trading/SKILL.md +145 -0
- package/vendor/theus-arsenal/skills/seguridad-amm-defi/SKILL.md +166 -0
- package/vendor/theus-arsenal/skills/seguridad-django/SKILL.md +648 -0
- package/vendor/theus-arsenal/skills/seguridad-laravel/SKILL.md +945 -0
- package/vendor/theus-arsenal/skills/seguridad-perl/SKILL.md +507 -0
- package/vendor/theus-arsenal/skills/seguridad-quarkus/SKILL.md +474 -0
- package/vendor/theus-arsenal/skills/seguridad-springboot/SKILL.md +279 -0
- package/vendor/theus-arsenal/skills/seo/SKILL.md +166 -0
- package/vendor/theus-arsenal/skills/sistema-diseno/SKILL.md +81 -0
- package/vendor/theus-arsenal/skills/sistema-operativo-agentico/SKILL.md +375 -0
- package/vendor/theus-arsenal/skills/sistemas-latencia-critica/SKILL.md +65 -0
- package/vendor/theus-arsenal/skills/tdd-django/SKILL.md +735 -0
- package/vendor/theus-arsenal/skills/tdd-laravel/SKILL.md +673 -0
- package/vendor/theus-arsenal/skills/tdd-quarkus/SKILL.md +817 -0
- package/vendor/theus-arsenal/skills/tdd-springboot/SKILL.md +165 -0
- package/vendor/theus-arsenal/skills/testing-cpp/SKILL.md +328 -0
- package/vendor/theus-arsenal/skills/testing-csharp/SKILL.md +321 -0
- package/vendor/theus-arsenal/skills/testing-e2e/SKILL.md +325 -0
- package/vendor/theus-arsenal/skills/testing-go/SKILL.md +719 -0
- package/vendor/theus-arsenal/skills/testing-kotlin/SKILL.md +829 -0
- package/vendor/theus-arsenal/skills/testing-perl/SKILL.md +479 -0
- package/vendor/theus-arsenal/skills/testing-protocolos-di-swift/SKILL.md +196 -0
- package/vendor/theus-arsenal/skills/testing-python/SKILL.md +815 -0
- package/vendor/theus-arsenal/skills/testing-react/SKILL.md +421 -0
- package/vendor/theus-arsenal/skills/testing-rust/SKILL.md +506 -0
- package/vendor/theus-arsenal/skills/tours-de-codigo/SKILL.md +252 -0
- package/vendor/theus-arsenal/skills/traduccion-documentos-visado/SKILL.md +121 -0
- package/vendor/theus-arsenal/skills/ui-a-vue/SKILL.md +141 -0
- package/vendor/theus-arsenal/skills/validacion-config-red/SKILL.md +211 -0
- package/vendor/theus-arsenal/skills/verificacion-django/SKILL.md +470 -0
- package/vendor/theus-arsenal/skills/verificacion-factual/SKILL.md +142 -0
- package/vendor/theus-arsenal/skills/verificacion-laravel/SKILL.md +184 -0
- package/vendor/theus-arsenal/skills/verificacion-quarkus/SKILL.md +485 -0
- package/vendor/theus-arsenal/skills/verificacion-springboot/SKILL.md +237 -0
- package/vendor/theus-arsenal/skills/videodb/SKILL.md +374 -0
- package/vendor/theus-arsenal/skills/videodb/reference/api-reference.md +550 -0
- package/vendor/theus-arsenal/skills/videodb/reference/capture-reference.md +407 -0
- package/vendor/theus-arsenal/skills/videodb/reference/capture.md +101 -0
- package/vendor/theus-arsenal/skills/videodb/reference/editor.md +443 -0
- package/vendor/theus-arsenal/skills/videodb/reference/generative.md +331 -0
- package/vendor/theus-arsenal/skills/videodb/reference/rtstream-reference.md +564 -0
- package/vendor/theus-arsenal/skills/videodb/reference/rtstream.md +65 -0
- package/vendor/theus-arsenal/skills/videodb/reference/search.md +230 -0
- package/vendor/theus-arsenal/skills/videodb/reference/streaming.md +406 -0
- package/vendor/theus-arsenal/skills/videodb/reference/use-cases.md +118 -0
- package/vendor/theus-arsenal/skills/videodb/scripts/ws_listener.py +279 -0
- package/vendor/theus-arsenal/skills/videos-manim/SKILL.md +91 -0
- package/vendor/theus-arsenal/skills/videos-manim/assets/network_graph_scene.py +52 -0
- package/vendor/theus-arsenal/skills/vigilancia-canary/SKILL.md +108 -0
- package/vendor/theus-arsenal/skills/voz-de-marca/SKILL.md +106 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
paths:
|
|
3
|
+
- "**/*.ts"
|
|
4
|
+
- "**/*.tsx"
|
|
5
|
+
---
|
|
6
|
+
# Preparación para producción en React Native / Expo
|
|
7
|
+
|
|
8
|
+
> Extiende la filosofía del arsenal a las preocupaciones de nivel producto que las reglas de estilo/patrones no pueden codificar por sí solas.
|
|
9
|
+
> Una base de código limpia es necesaria pero no suficiente para producción — estos puntos son obligatorios antes del release.
|
|
10
|
+
|
|
11
|
+
## Arquitectura
|
|
12
|
+
|
|
13
|
+
- Publica sobre la **Nueva Arquitectura** (Fabric + TurboModules). Es el valor por defecto en los SDK recientes de Expo y es obligatoria (no se puede desactivar) desde el SDK 55+. Audita la compatibilidad de las dependencias nativas.
|
|
14
|
+
- Fija la versión del SDK de Expo; actualiza deliberadamente con `npx expo install --check` y prueba en ambas plataformas.
|
|
15
|
+
|
|
16
|
+
## Build y release (EAS)
|
|
17
|
+
|
|
18
|
+
- Usa **EAS Build** para los binarios de producción y **EAS Submit** para la entrega a las tiendas. No dependas de builds locales ad hoc para el release.
|
|
19
|
+
- Mantén perfiles de build separados (`development`, `preview`, `production`) en `eas.json`.
|
|
20
|
+
- Gestiona las credenciales de firma vía EAS; nunca subas keystores ni perfiles de aprovisionamiento al repositorio.
|
|
21
|
+
|
|
22
|
+
## Actualizaciones over-the-air
|
|
23
|
+
|
|
24
|
+
- Usa **EAS Update** (`expo-updates`) para correcciones solo de JS, con una política de versión de runtime definida.
|
|
25
|
+
- Nunca empujes cambios nativos vía OTA — esos requieren un nuevo build de tienda.
|
|
26
|
+
- Despliega gradualmente y conserva la capacidad de revertir.
|
|
27
|
+
|
|
28
|
+
## Observabilidad
|
|
29
|
+
|
|
30
|
+
- Integra reporte de crashes y errores (p. ej. **Sentry** vía `@sentry/react-native`) en los builds de producción.
|
|
31
|
+
- Añade logging estructurado y, donde sea útil, analítica — pero elimina los logs verbosos del release.
|
|
32
|
+
- Captura y muestra los estados fallidos de red/mutaciones; no falles en silencio.
|
|
33
|
+
|
|
34
|
+
## Configuración y versionado
|
|
35
|
+
|
|
36
|
+
- Incrementa `version` y `ios.buildNumber` / `android.versionCode` en cada release.
|
|
37
|
+
- Configuración pública vía `EXPO_PUBLIC_*`; los secretos reales solo vía secretos de EAS.
|
|
38
|
+
- Valida la configuración requerida al arrancar y falla rápido con un mensaje claro.
|
|
39
|
+
|
|
40
|
+
## Puerta pre-release
|
|
41
|
+
|
|
42
|
+
Antes de publicar, todo debe pasar:
|
|
43
|
+
|
|
44
|
+
- [ ] `tsc --noEmit` limpio
|
|
45
|
+
- [ ] `npx expo lint` limpio
|
|
46
|
+
- [ ] Tests en verde, cobertura >= 80% (ver testing.md)
|
|
47
|
+
- [ ] `npx expo-doctor` sano
|
|
48
|
+
- [ ] E2E de flujos críticos (Maestro/Detox) pasan sobre un build real
|
|
49
|
+
- [ ] Sin secretos en el bundle (ver security.md)
|
|
50
|
+
- [ ] Reporte de crashes activo y verificado
|
|
51
|
+
- [ ] Probado en dispositivos físicos iOS y Android, no solo en simuladores
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
paths:
|
|
3
|
+
- "**/*.ts"
|
|
4
|
+
- "**/*.tsx"
|
|
5
|
+
---
|
|
6
|
+
# Seguridad en React Native / Expo
|
|
7
|
+
|
|
8
|
+
> Este archivo extiende [common/security.md](../common/security.md) con contenido específico de React Native / Expo.
|
|
9
|
+
> El checklist obligatorio de pre-commit y el Protocolo de Respuesta de Seguridad de common/security.md siguen aplicando.
|
|
10
|
+
|
|
11
|
+
## El bundle es público
|
|
12
|
+
|
|
13
|
+
Trata todo lo que se distribuye en la app como legible por un atacante. Un binario móvil se puede desempaquetar.
|
|
14
|
+
|
|
15
|
+
- NUNCA distribuyas secretos reales (claves de API privadas, claves service-role, secretos de firma) en el bundle de JS ni en `app.config`.
|
|
16
|
+
- Las claves públicas/anónimas (p. ej. la clave anon de Supabase, la config de Firebase) son aceptables SOLO cuando están protegidas por reglas del lado del servidor (RLS, security rules). Impón la autorización en el backend, nunca en el cliente.
|
|
17
|
+
- Mantén las operaciones privilegiadas detrás de tu propio servidor / edge functions.
|
|
18
|
+
|
|
19
|
+
## Almacenamiento de secretos y tokens
|
|
20
|
+
|
|
21
|
+
- Guarda los tokens de autenticación y los valores sensibles en `expo-secure-store` (Keychain / Keystore) — nunca en `AsyncStorage` ni en MMKV plano.
|
|
22
|
+
- No persistas secretos en estado de Redux/Zustand que pueda serializarse a disco.
|
|
23
|
+
|
|
24
|
+
## Configuración
|
|
25
|
+
|
|
26
|
+
- Lee el entorno vía `expo-constants` / el `extra` de `app.config.ts`, y `EXPO_PUBLIC_*` solo para valores genuinamente públicos.
|
|
27
|
+
- Mantén los secretos de build en los secretos de EAS, no en el repositorio.
|
|
28
|
+
|
|
29
|
+
## Red y datos
|
|
30
|
+
|
|
31
|
+
- Solo HTTPS; rechaza el tráfico en claro. Considera certificate pinning para apps de alto riesgo.
|
|
32
|
+
- Valida TODOS los datos externos (respuestas de API, params de deep links, payloads de push) con Zod antes de usarlos.
|
|
33
|
+
- Valida y sanitiza los deep links y universal links — nunca enrutes ni concedas acceso basándote en parámetros sin validar.
|
|
34
|
+
|
|
35
|
+
## Permisos y privacidad
|
|
36
|
+
|
|
37
|
+
- Solicita los permisos mínimos del dispositivo, en el momento en que se necesitan, con una justificación clara.
|
|
38
|
+
- Declara con exactitud la recolección de datos para las divulgaciones de privacidad de App Store / Play Store.
|
|
39
|
+
|
|
40
|
+
## Dependencias
|
|
41
|
+
|
|
42
|
+
- Ejecuta `expo-doctor` y `npm audit` con regularidad; mantén al día el SDK de Expo y las dependencias nativas.
|
|
43
|
+
- Usa el agente `revisor-seguridad` también sobre la propia configuración del agente (hooks, comandos, permisos), no solo sobre el código de la app.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
paths:
|
|
3
|
+
- "**/*.ts"
|
|
4
|
+
- "**/*.tsx"
|
|
5
|
+
---
|
|
6
|
+
# Testing en React Native / Expo
|
|
7
|
+
|
|
8
|
+
> Este archivo extiende [common/testing.md](../common/testing.md) con contenido específico de React Native / Expo.
|
|
9
|
+
> El objetivo de cobertura y el flujo TDD se heredan de common/testing.md (80% mínimo, RED-GREEN-REFACTOR).
|
|
10
|
+
|
|
11
|
+
## Herramientas
|
|
12
|
+
|
|
13
|
+
| Capa | Herramienta |
|
|
14
|
+
|-------|------|
|
|
15
|
+
| Unitario / componente | Jest + `@testing-library/react-native` (vía el preset `jest-expo`) |
|
|
16
|
+
| Hooks | `renderHook` de `@testing-library/react-native` |
|
|
17
|
+
| E2E | Maestro (recomendado, flujos YAML simples) o Detox |
|
|
18
|
+
| Seguridad de tipos | `tsc --noEmit` en CI |
|
|
19
|
+
|
|
20
|
+
## Tests de componentes
|
|
21
|
+
|
|
22
|
+
- Consulta por rol/etiqueta/texto accesible, no por `testID` salvo que sea necesario — esto además refuerza la accesibilidad.
|
|
23
|
+
- Haz aserciones sobre el comportamiento visible para el usuario, no sobre detalles de implementación.
|
|
24
|
+
- Sigue Arrange-Act-Assert.
|
|
25
|
+
|
|
26
|
+
```tsx
|
|
27
|
+
import { render, screen, fireEvent } from '@testing-library/react-native'
|
|
28
|
+
|
|
29
|
+
test('llama a onSelect con el id del usuario al pulsar', () => {
|
|
30
|
+
const onSelect = jest.fn()
|
|
31
|
+
render(<UserCard user={{ id: '1', email: 'a@b.com' }} onSelect={onSelect} />)
|
|
32
|
+
|
|
33
|
+
fireEvent.press(screen.getByText('a@b.com'))
|
|
34
|
+
|
|
35
|
+
expect(onSelect).toHaveBeenCalledWith('1')
|
|
36
|
+
})
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Mocking
|
|
40
|
+
|
|
41
|
+
- Mockea los módulos del SDK de Expo (cámara, ubicación, notificaciones, secure-store) en la frontera del test.
|
|
42
|
+
- Envuelve los componentes que usan TanStack Query en un `QueryClientProvider` con un cliente nuevo por test.
|
|
43
|
+
- Mockea la navegación (`expo-router`) para que las pantallas se rendericen aisladas.
|
|
44
|
+
|
|
45
|
+
## E2E
|
|
46
|
+
|
|
47
|
+
- Cubre solo los flujos críticos: autenticación, navegación principal, transacciones centrales.
|
|
48
|
+
- Ejecuta los E2E en CI contra una app construida (EAS Build) antes del release.
|
|
49
|
+
|
|
50
|
+
## Qué probar primero
|
|
51
|
+
|
|
52
|
+
Usa el agente `guia-tdd` de forma proactiva para las funcionalidades nuevas: escribe un test que falle y capture el comportamiento, después implementa.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
paths:
|
|
3
|
+
- "**/*.rb"
|
|
4
|
+
- "**/*.rake"
|
|
5
|
+
- "**/Gemfile"
|
|
6
|
+
- "**/*.gemspec"
|
|
7
|
+
- "**/config.ru"
|
|
8
|
+
---
|
|
9
|
+
# Estilo de código Ruby
|
|
10
|
+
|
|
11
|
+
> Este archivo extiende [common/coding-style.md](../common/coding-style.md) con contenido específico de Ruby y Rails.
|
|
12
|
+
|
|
13
|
+
## Estándares
|
|
14
|
+
|
|
15
|
+
- Apunta a **Ruby 3.3+** para trabajo nuevo en Rails, salvo que el proyecto ya fije un runtime anterior con soporte.
|
|
16
|
+
- Activa **YJIT** en producción solo después de medir tiempo de arranque, memoria y throughput de peticiones/jobs.
|
|
17
|
+
- Añade `# frozen_string_literal: true` a los archivos Ruby nuevos cuando el proyecto siga esa convención.
|
|
18
|
+
- Prefiere Ruby claro por encima de metaprogramación ingeniosa; aísla el código cargado de DSL detrás de fronteras estrechas y con tests.
|
|
19
|
+
|
|
20
|
+
## Formato y linting
|
|
21
|
+
|
|
22
|
+
- Usa la configuración de RuboCop versionada en el proyecto. Para apps Rails 8+, parte de `rubocop-rails-omakase` y personaliza solo donde el código tenga una convención real.
|
|
23
|
+
- Mantén los comandos de formateo/linting detrás de binstubs o scripts para que CI y las ejecuciones locales coincidan:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
bundle exec rubocop
|
|
27
|
+
bundle exec rubocop -A
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
- No silencies cops inline salvo que la excepción sea acotada, esté documentada y sea más difícil de expresar limpiamente en código.
|
|
31
|
+
|
|
32
|
+
## Estilo Rails
|
|
33
|
+
|
|
34
|
+
- Sigue las convenciones de nombres y directorios de Rails antes de añadir estructura propia.
|
|
35
|
+
- Mantén los controladores enfocados en el transporte: autenticación, autorización, manejo de parámetros y forma de la respuesta.
|
|
36
|
+
- Coloca el comportamiento de dominio reutilizable en modelos, concerns, service objects, query objects o form objects según la complejidad real, no como ceremonia por defecto.
|
|
37
|
+
- Prefiere `bin/rails`, `bin/rake` y binstubs versionados por encima de comandos instalados globalmente.
|
|
38
|
+
|
|
39
|
+
## Manejo de errores
|
|
40
|
+
|
|
41
|
+
- Rescata excepciones específicas. Evita bloques `rescue StandardError` amplios salvo que relancen o preserven suficiente contexto para los operadores.
|
|
42
|
+
- Usa `ActiveSupport::Notifications` o el logger de la app para eventos operacionales; no dejes `puts`, `pp` ni `debugger` en código de aplicación commiteado.
|
|
43
|
+
|
|
44
|
+
## Referencia
|
|
45
|
+
|
|
46
|
+
Ver skill: `patrones-backend` para guía más amplia de capas de servicios y repositorios.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
paths:
|
|
3
|
+
- "**/*.rb"
|
|
4
|
+
- "**/*.rake"
|
|
5
|
+
- "**/Gemfile"
|
|
6
|
+
- "**/Gemfile.lock"
|
|
7
|
+
- "**/config/routes.rb"
|
|
8
|
+
---
|
|
9
|
+
# Hooks para Ruby
|
|
10
|
+
|
|
11
|
+
> Este archivo extiende [common/hooks.md](../common/hooks.md) con contenido específico de Ruby y Rails.
|
|
12
|
+
|
|
13
|
+
## Hooks PostToolUse
|
|
14
|
+
|
|
15
|
+
Configura hooks locales al proyecto que prefieran binstubs y herramientas versionadas:
|
|
16
|
+
|
|
17
|
+
- **RuboCop**: ejecuta `bundle exec rubocop -A <archivo>` o el comando de formateo más seguro del proyecto después de editar archivos Ruby.
|
|
18
|
+
- **Brakeman**: ejecuta `bundle exec brakeman --no-progress` después de cambios sensibles a seguridad en Rails.
|
|
19
|
+
- **Tests**: ejecuta el comando más acotado de `bin/rails test ...` o `bundle exec rspec ...` que cubra los archivos tocados.
|
|
20
|
+
- **Bundler audit**: ejecuta `bundle exec bundle-audit check --update` cuando cambien `Gemfile` o `Gemfile.lock` y el proyecto tenga bundler-audit instalado.
|
|
21
|
+
|
|
22
|
+
## Advertencias
|
|
23
|
+
|
|
24
|
+
- Advierte sobre llamadas a `debugger`, `binding.irb`, `binding.pry`, `puts`, `pp` o `p` commiteadas en código de aplicación.
|
|
25
|
+
- Advierte cuando una edición desactiva la protección CSRF, amplía la asignación masiva o añade SQL crudo sin parametrizar.
|
|
26
|
+
- Advierte cuando una migración cambia datos de forma destructiva sin una ruta reversible o un plan de despliegue documentado.
|
|
27
|
+
|
|
28
|
+
## Sugerencias de gates en CI
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
bundle exec rubocop
|
|
32
|
+
bundle exec brakeman --no-progress
|
|
33
|
+
bin/rails test
|
|
34
|
+
bundle exec rspec
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Usa únicamente los comandos que existan en el proyecto; no instales dependencias nuevas para hooks sin la aprobación de los mantenedores.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
paths:
|
|
3
|
+
- "**/*.rb"
|
|
4
|
+
- "**/*.rake"
|
|
5
|
+
- "**/Gemfile"
|
|
6
|
+
- "**/app/**/*.erb"
|
|
7
|
+
- "**/config/routes.rb"
|
|
8
|
+
---
|
|
9
|
+
# Patrones de Ruby
|
|
10
|
+
|
|
11
|
+
> Este archivo extiende [common/patterns.md](../common/patterns.md) con contenido específico de Ruby y Rails.
|
|
12
|
+
|
|
13
|
+
## Primero el camino Rails
|
|
14
|
+
|
|
15
|
+
- Empieza con el MVC de Rails y las convenciones de Active Record para funcionalidades pequeñas y medianas.
|
|
16
|
+
- Introduce service objects, query objects, form objects, decorators o presenters cuando la frontera modelo/controlador cargue con varias responsabilidades.
|
|
17
|
+
- Nombra los objetos extraídos según la operación de negocio que realizan, no según capas genéricas como `Manager` o `Processor`.
|
|
18
|
+
|
|
19
|
+
## Persistencia
|
|
20
|
+
|
|
21
|
+
- Prefiere PostgreSQL para apps Rails de producción multi-host, salvo que la plataforma existente tenga una razón clara para MySQL o SQLite.
|
|
22
|
+
- Trata los valores por defecto de Rails 8 respaldados por SQLite como viables para despliegues de un solo host o modestos, no como un encaje automático para sistemas compartidos multi-servicio.
|
|
23
|
+
- Mantén el SQL crudo detrás de query objects o scopes del modelo y parametriza todo valor dinámico.
|
|
24
|
+
|
|
25
|
+
## Jobs en segundo plano y servicios de runtime
|
|
26
|
+
|
|
27
|
+
- Usa **Solid Queue** para apps Rails 8 nuevas con throughput modesto y necesidades de despliegue simples.
|
|
28
|
+
- Usa **Sidekiq** cuando la app necesite observabilidad madura, alto throughput, infraestructura Redis existente o funciones Pro/Enterprise.
|
|
29
|
+
- Usa **Solid Cache** y **Solid Cable** cuando su modelo de despliegue encaje con la app; usa Redis cuando importen el comportamiento compartido entre servicios, el alto fanout o las estructuras de datos avanzadas.
|
|
30
|
+
|
|
31
|
+
## Frontend
|
|
32
|
+
|
|
33
|
+
- Prefiere **Hotwire** con Turbo, Stimulus, Importmap y Propshaft para apps Rails renderizadas en servidor.
|
|
34
|
+
- Usa React, Vue, Inertia.js o una SPA separada cuando la complejidad de interacción, la arquitectura de producto existente o la propiedad del equipo justifiquen la superficie extra de cliente.
|
|
35
|
+
- Mantén los view components, partials y presenters enfocados en decisiones de renderizado; deja la persistencia y la autorización fuera de las plantillas.
|
|
36
|
+
|
|
37
|
+
## Autenticación
|
|
38
|
+
|
|
39
|
+
- Usa el generador de autenticación de Rails 8 para necesidades directas de sesiones y restablecimiento de contraseña.
|
|
40
|
+
- Usa Devise u otro sistema de autenticación establecido cuando los requisitos incluyan OAuth, MFA, flujos confirmable/lockable, autenticación multi-modelo o una huella grande de Devise ya existente.
|
|
41
|
+
|
|
42
|
+
## Referencia
|
|
43
|
+
|
|
44
|
+
Ver skill: `patrones-backend` para fronteras de servicios y patrones de adaptadores.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
paths:
|
|
3
|
+
- "**/*.rb"
|
|
4
|
+
- "**/*.rake"
|
|
5
|
+
- "**/Gemfile"
|
|
6
|
+
- "**/Gemfile.lock"
|
|
7
|
+
- "**/config/routes.rb"
|
|
8
|
+
- "**/config/credentials*.yml.enc"
|
|
9
|
+
---
|
|
10
|
+
# Seguridad en Ruby
|
|
11
|
+
|
|
12
|
+
> Este archivo extiende [common/security.md](../common/security.md) con contenido específico de Ruby y Rails.
|
|
13
|
+
|
|
14
|
+
## Valores por defecto de Rails
|
|
15
|
+
|
|
16
|
+
- Mantén la protección CSRF activada para peticiones de navegador que cambien estado.
|
|
17
|
+
- Usa strong parameters u objetos de frontera tipados antes de cualquier asignación masiva.
|
|
18
|
+
- Guarda los secretos en las credentials de Rails, variables de entorno o un gestor de secretos. Nunca commitees claves en texto plano, tokens, credenciales privadas ni valores copiados de `.env`.
|
|
19
|
+
|
|
20
|
+
## SQL y Active Record
|
|
21
|
+
|
|
22
|
+
- Prefiere las APIs de consulta de Active Record y el SQL parametrizado.
|
|
23
|
+
- Nunca interpoles valores de peticiones, cookies, cabeceras, jobs o webhooks dentro de cadenas SQL.
|
|
24
|
+
- Acota los callbacks de modelo con cuidado; los efectos secundarios sensibles a seguridad deben ser explícitos y estar cubiertos por tests.
|
|
25
|
+
|
|
26
|
+
## Autenticación y sesiones
|
|
27
|
+
|
|
28
|
+
- Usa el generador de autenticación de Rails 8 para sesiones simples, o Devise cuando se requieran OAuth, MFA, confirmable, lockable, autenticación multi-modelo o convenciones Devise existentes.
|
|
29
|
+
- Rota las sesiones después del inicio de sesión y de los cambios de privilegios.
|
|
30
|
+
- Protege los flujos de recuperación de cuenta con expiración, tokens de un solo uso, rate limiting y registro de auditoría.
|
|
31
|
+
|
|
32
|
+
## Dependencias
|
|
33
|
+
|
|
34
|
+
- Ejecuta las comprobaciones de dependencias cuando cambie el lockfile:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
bundle exec bundle-audit check --update
|
|
38
|
+
bundle exec brakeman --no-progress
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
- Revisa las gemas nuevas: actividad de los mantenedores, riesgo de extensiones nativas, dependencias transitivas y si el mismo comportamiento se puede implementar con el core de Rails.
|
|
42
|
+
|
|
43
|
+
## Seguridad web
|
|
44
|
+
|
|
45
|
+
- Escapa la salida de las plantillas por defecto. Trata `html_safe`, `raw` y los sanitizadores propios como código sensible a seguridad.
|
|
46
|
+
- Valida las subidas de archivos por content type, extensión, tamaño y destino de almacenamiento.
|
|
47
|
+
- Trata los jobs en segundo plano, webhooks, mensajes de Action Cable y entradas de Turbo Stream como fronteras no confiables.
|
|
48
|
+
|
|
49
|
+
## Referencia
|
|
50
|
+
|
|
51
|
+
Ver skill: `revision-seguridad` para patrones de revisión seguros por defecto.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
paths:
|
|
3
|
+
- "**/*.rb"
|
|
4
|
+
- "**/*.rake"
|
|
5
|
+
- "**/Gemfile"
|
|
6
|
+
- "**/test/**/*.rb"
|
|
7
|
+
- "**/spec/**/*.rb"
|
|
8
|
+
- "**/config/routes.rb"
|
|
9
|
+
---
|
|
10
|
+
# Testing en Ruby
|
|
11
|
+
|
|
12
|
+
> Este archivo extiende [common/testing.md](../common/testing.md) con contenido específico de Ruby y Rails.
|
|
13
|
+
|
|
14
|
+
## Framework
|
|
15
|
+
|
|
16
|
+
- Usa **Minitest** cuando la app Rails siga la pila de tests por defecto de Rails.
|
|
17
|
+
- Usa **RSpec** cuando ya esté establecido en el proyecto o el equipo tenga convenciones de producción explícitas alrededor de él.
|
|
18
|
+
- No mezcles Minitest y RSpec dentro de la misma área funcional sin una razón de migración.
|
|
19
|
+
|
|
20
|
+
## Pirámide de tests
|
|
21
|
+
|
|
22
|
+
- Coloca el comportamiento de dominio rápido en tests de modelos, servicios, queries, policies y jobs.
|
|
23
|
+
- Usa tests de request/controller para contratos HTTP, comportamiento de autenticación, redirecciones, códigos de estado y forma de las respuestas.
|
|
24
|
+
- Usa tests de sistema con Capybara solo para flujos críticos de navegador; mantenlos enfocados y estables.
|
|
25
|
+
- Cubre los jobs en segundo plano con tests unitarios para el comportamiento y tests de integración para los contratos de cola/encolado.
|
|
26
|
+
|
|
27
|
+
## Fixtures y factories
|
|
28
|
+
|
|
29
|
+
- Usa fixtures de Rails cuando sean el estándar del proyecto y el grafo de datos sea pequeño.
|
|
30
|
+
- Usa `factory_bot` cuando los escenarios necesiten construcción explícita de objetos o traits complejos.
|
|
31
|
+
- Mantén los datos de prueba cerca del comportamiento que se afirma; evita fixtures globales que oculten el coste de preparación.
|
|
32
|
+
|
|
33
|
+
## Comandos
|
|
34
|
+
|
|
35
|
+
Prefiere los comandos locales al proyecto:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
bin/rails test
|
|
39
|
+
bin/rails test test/models/user_test.rb
|
|
40
|
+
bundle exec rspec
|
|
41
|
+
bundle exec rspec spec/models/user_spec.rb
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Cobertura
|
|
45
|
+
|
|
46
|
+
- Usa SimpleCov cuando la cobertura se haga cumplir; mantén los umbrales en CI y evita inflar la cobertura de ramas con tests de bajo valor.
|
|
47
|
+
- Añade tests de regresión para las correcciones de bugs antes de cambiar el código de producción.
|
|
48
|
+
|
|
49
|
+
## Referencia
|
|
50
|
+
|
|
51
|
+
Ver skill: `flujo-tdd` para el bucle ROJO -> VERDE -> REFACTOR de todo el repositorio.
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
---
|
|
2
|
+
paths:
|
|
3
|
+
- "**/*.rs"
|
|
4
|
+
---
|
|
5
|
+
# Estilo de código Rust
|
|
6
|
+
|
|
7
|
+
> Este archivo extiende [common/coding-style.md](../common/coding-style.md) con contenido específico de Rust.
|
|
8
|
+
|
|
9
|
+
## Formato
|
|
10
|
+
|
|
11
|
+
- **rustfmt** como estándar — ejecuta siempre `cargo fmt` antes de commitear
|
|
12
|
+
- **clippy** para lints — `cargo clippy -- -D warnings` (trata los warnings como errores)
|
|
13
|
+
- Indentación de 4 espacios (valor por defecto de rustfmt)
|
|
14
|
+
- Ancho máximo de línea: 100 caracteres (valor por defecto de rustfmt)
|
|
15
|
+
|
|
16
|
+
## Inmutabilidad
|
|
17
|
+
|
|
18
|
+
Las variables en Rust son inmutables por defecto — aprovéchalo:
|
|
19
|
+
|
|
20
|
+
- Usa `let` por defecto; usa `let mut` solo cuando la mutación sea necesaria
|
|
21
|
+
- Prefiere devolver valores nuevos antes que mutar en el sitio
|
|
22
|
+
- Usa `Cow<'_, T>` cuando una función puede necesitar asignar memoria o no
|
|
23
|
+
|
|
24
|
+
```rust
|
|
25
|
+
use std::borrow::Cow;
|
|
26
|
+
|
|
27
|
+
// BIEN — inmutable por defecto, se devuelve un valor nuevo
|
|
28
|
+
fn normalize(input: &str) -> Cow<'_, str> {
|
|
29
|
+
if input.contains(' ') {
|
|
30
|
+
Cow::Owned(input.replace(' ', "_"))
|
|
31
|
+
} else {
|
|
32
|
+
Cow::Borrowed(input)
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// MAL — mutación innecesaria
|
|
37
|
+
fn normalize_bad(input: &mut String) {
|
|
38
|
+
*input = input.replace(' ', "_");
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Nombres
|
|
43
|
+
|
|
44
|
+
Sigue las convenciones estándar de Rust:
|
|
45
|
+
- `snake_case` para funciones, métodos, variables, módulos y crates
|
|
46
|
+
- `PascalCase` (UpperCamelCase) para tipos, traits, enums y parámetros de tipo
|
|
47
|
+
- `SCREAMING_SNAKE_CASE` para constantes y statics
|
|
48
|
+
- Lifetimes: minúsculas cortas (`'a`, `'de`) — nombres descriptivos para casos complejos (`'input`)
|
|
49
|
+
|
|
50
|
+
## Ownership y borrowing
|
|
51
|
+
|
|
52
|
+
- Toma prestado (`&T`) por defecto; toma ownership solo cuando necesites almacenar o consumir
|
|
53
|
+
- Nunca clones para satisfacer al borrow checker sin entender la causa raíz
|
|
54
|
+
- Acepta `&str` en lugar de `String`, `&[T]` en lugar de `Vec<T>` en los parámetros de funciones
|
|
55
|
+
- Usa `impl Into<String>` en constructores que necesiten poseer un `String`
|
|
56
|
+
|
|
57
|
+
```rust
|
|
58
|
+
// BIEN — toma prestado cuando el ownership no es necesario
|
|
59
|
+
fn word_count(text: &str) -> usize {
|
|
60
|
+
text.split_whitespace().count()
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// BIEN — toma ownership en el constructor vía Into
|
|
64
|
+
fn new(name: impl Into<String>) -> Self {
|
|
65
|
+
Self { name: name.into() }
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// MAL — toma String cuando &str basta
|
|
69
|
+
fn word_count_bad(text: String) -> usize {
|
|
70
|
+
text.split_whitespace().count()
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Manejo de errores
|
|
75
|
+
|
|
76
|
+
- Usa `Result<T, E>` y `?` para propagar — nunca `unwrap()` en código de producción
|
|
77
|
+
- **Librerías**: define errores tipados con `thiserror`
|
|
78
|
+
- **Aplicaciones**: usa `anyhow` para contexto de error flexible
|
|
79
|
+
- Añade contexto con `.with_context(|| format!("no se pudo ..."))?`
|
|
80
|
+
- Reserva `unwrap()` / `expect()` para tests y estados realmente inalcanzables
|
|
81
|
+
|
|
82
|
+
```rust
|
|
83
|
+
// BIEN — error de librería con thiserror
|
|
84
|
+
#[derive(Debug, thiserror::Error)]
|
|
85
|
+
pub enum ConfigError {
|
|
86
|
+
#[error("no se pudo leer la configuración: {0}")]
|
|
87
|
+
Io(#[from] std::io::Error),
|
|
88
|
+
#[error("formato de configuración inválido: {0}")]
|
|
89
|
+
Parse(String),
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// BIEN — error de aplicación con anyhow
|
|
93
|
+
use anyhow::Context;
|
|
94
|
+
|
|
95
|
+
fn load_config(path: &str) -> anyhow::Result<Config> {
|
|
96
|
+
let content = std::fs::read_to_string(path)
|
|
97
|
+
.with_context(|| format!("no se pudo leer {path}"))?;
|
|
98
|
+
toml::from_str(&content)
|
|
99
|
+
.with_context(|| format!("no se pudo parsear {path}"))
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Iteradores antes que bucles
|
|
104
|
+
|
|
105
|
+
Prefiere cadenas de iteradores para transformaciones; usa bucles para flujo de control complejo:
|
|
106
|
+
|
|
107
|
+
```rust
|
|
108
|
+
// BIEN — declarativo y componible
|
|
109
|
+
let active_emails: Vec<&str> = users.iter()
|
|
110
|
+
.filter(|u| u.is_active)
|
|
111
|
+
.map(|u| u.email.as_str())
|
|
112
|
+
.collect();
|
|
113
|
+
|
|
114
|
+
// BIEN — bucle para lógica compleja con retornos tempranos
|
|
115
|
+
for user in &users {
|
|
116
|
+
if let Some(verified) = verify_email(&user.email)? {
|
|
117
|
+
send_welcome(&verified)?;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## Organización de módulos
|
|
123
|
+
|
|
124
|
+
Organiza por dominio, no por tipo:
|
|
125
|
+
|
|
126
|
+
```text
|
|
127
|
+
src/
|
|
128
|
+
├── main.rs
|
|
129
|
+
├── lib.rs
|
|
130
|
+
├── auth/ # Módulo de dominio
|
|
131
|
+
│ ├── mod.rs
|
|
132
|
+
│ ├── token.rs
|
|
133
|
+
│ └── middleware.rs
|
|
134
|
+
├── orders/ # Módulo de dominio
|
|
135
|
+
│ ├── mod.rs
|
|
136
|
+
│ ├── model.rs
|
|
137
|
+
│ └── service.rs
|
|
138
|
+
└── db/ # Infraestructura
|
|
139
|
+
├── mod.rs
|
|
140
|
+
└── pool.rs
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
## Visibilidad
|
|
144
|
+
|
|
145
|
+
- Privado por defecto; usa `pub(crate)` para compartir internamente
|
|
146
|
+
- Marca como `pub` solo lo que forme parte de la API pública del crate
|
|
147
|
+
- Reexporta la API pública desde `lib.rs`
|
|
148
|
+
|
|
149
|
+
## Referencias
|
|
150
|
+
|
|
151
|
+
Ver skill: `patrones-rust` para idiomas y patrones de Rust en profundidad.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
paths:
|
|
3
|
+
- "**/*.rs"
|
|
4
|
+
- "**/Cargo.toml"
|
|
5
|
+
---
|
|
6
|
+
# Hooks para Rust
|
|
7
|
+
|
|
8
|
+
> Este archivo extiende [common/hooks.md](../common/hooks.md) con contenido específico de Rust.
|
|
9
|
+
|
|
10
|
+
## Hooks PostToolUse
|
|
11
|
+
|
|
12
|
+
Configúralos en `~/.theus/settings.json`:
|
|
13
|
+
|
|
14
|
+
- **cargo fmt**: formatea automáticamente los archivos `.rs` después de editarlos
|
|
15
|
+
- **cargo clippy**: ejecuta las comprobaciones de lint después de editar archivos Rust
|
|
16
|
+
- **cargo check**: verifica la compilación después de los cambios (más rápido que `cargo build`)
|