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.
- 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,485 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: verificacion-quarkus
|
|
3
|
+
description: "Bucle de verificación para proyectos Quarkus: build, análisis estático, tests con cobertura, escaneos de seguridad, compilación nativa y revisión del diff antes de un release o PR."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Bucle de verificación para Quarkus
|
|
7
|
+
|
|
8
|
+
Ejecútalo antes de abrir PRs, después de cambios mayores y antes de desplegar.
|
|
9
|
+
|
|
10
|
+
## Cuándo usarla
|
|
11
|
+
|
|
12
|
+
- Antes de abrir un pull request de un servicio Quarkus
|
|
13
|
+
- Después de una refactorización mayor o de actualizar dependencias
|
|
14
|
+
- Verificación previa al despliegue en staging o producción
|
|
15
|
+
- Al ejecutar el pipeline completo build → lint → tests → escaneo de seguridad → compilación nativa
|
|
16
|
+
- Al validar que la cobertura de tests cumple los umbrales (80 %+)
|
|
17
|
+
- Al probar la compatibilidad con imagen nativa
|
|
18
|
+
|
|
19
|
+
## Fase 1: Build
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# Maven
|
|
23
|
+
mvn clean verify -DskipTests
|
|
24
|
+
|
|
25
|
+
# Gradle
|
|
26
|
+
./gradlew clean assemble -x test
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Si el build falla, detente y corrige los errores de compilación.
|
|
30
|
+
|
|
31
|
+
## Fase 2: Análisis estático
|
|
32
|
+
|
|
33
|
+
### Checkstyle, PMD, SpotBugs (Maven)
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
mvn checkstyle:check pmd:check spotbugs:check
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### SonarQube (si está configurado)
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
mvn sonar:sonar \
|
|
43
|
+
-Dsonar.projectKey=my-quarkus-project \
|
|
44
|
+
-Dsonar.host.url=http://localhost:9000 \
|
|
45
|
+
-Dsonar.login=${SONAR_TOKEN}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Problemas comunes a corregir
|
|
49
|
+
|
|
50
|
+
- Imports o variables sin usar
|
|
51
|
+
- Métodos complejos (alta complejidad ciclomática)
|
|
52
|
+
- Posibles dereferencias de puntero nulo
|
|
53
|
+
- Problemas de seguridad señalados por SpotBugs
|
|
54
|
+
|
|
55
|
+
## Fase 3: Tests + cobertura
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
# Ejecutar todos los tests
|
|
59
|
+
mvn clean test
|
|
60
|
+
|
|
61
|
+
# Generar el reporte de cobertura
|
|
62
|
+
mvn jacoco:report
|
|
63
|
+
|
|
64
|
+
# Exigir el umbral de cobertura (80 %)
|
|
65
|
+
mvn jacoco:check
|
|
66
|
+
|
|
67
|
+
# O con Gradle
|
|
68
|
+
./gradlew test jacocoTestReport jacocoTestCoverageVerification
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Categorías de tests
|
|
72
|
+
|
|
73
|
+
#### Tests unitarios
|
|
74
|
+
Prueba la lógica de servicio con dependencias mockeadas:
|
|
75
|
+
|
|
76
|
+
```java
|
|
77
|
+
@ExtendWith(MockitoExtension.class)
|
|
78
|
+
class UserServiceTest {
|
|
79
|
+
@Mock UserRepository userRepository;
|
|
80
|
+
@InjectMocks UserService userService;
|
|
81
|
+
|
|
82
|
+
@Test
|
|
83
|
+
void createUser_validInput_returnsUser() {
|
|
84
|
+
var dto = new CreateUserDto("Alice", "alice@example.com");
|
|
85
|
+
|
|
86
|
+
// persist() de Panache es void — usa doNothing + verify
|
|
87
|
+
doNothing().when(userRepository).persist(any(User.class));
|
|
88
|
+
|
|
89
|
+
User result = userService.create(dto);
|
|
90
|
+
|
|
91
|
+
assertThat(result.name).isEqualTo("Alice");
|
|
92
|
+
verify(userRepository).persist(any(User.class));
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
#### Tests de integración
|
|
98
|
+
Prueba con base de datos real (Testcontainers):
|
|
99
|
+
|
|
100
|
+
```java
|
|
101
|
+
@QuarkusTest
|
|
102
|
+
@QuarkusTestResource(PostgresTestResource.class)
|
|
103
|
+
class UserRepositoryIntegrationTest {
|
|
104
|
+
|
|
105
|
+
@Inject
|
|
106
|
+
UserRepository userRepository;
|
|
107
|
+
|
|
108
|
+
@Test
|
|
109
|
+
@Transactional
|
|
110
|
+
void findByEmail_existingUser_returnsUser() {
|
|
111
|
+
User user = new User();
|
|
112
|
+
user.name = "Alice";
|
|
113
|
+
user.email = "alice@example.com";
|
|
114
|
+
userRepository.persist(user);
|
|
115
|
+
|
|
116
|
+
Optional<User> found = userRepository.findByEmail("alice@example.com");
|
|
117
|
+
|
|
118
|
+
assertThat(found).isPresent();
|
|
119
|
+
assertThat(found.get().name).isEqualTo("Alice");
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
#### Tests de API
|
|
125
|
+
Prueba los endpoints REST con REST Assured:
|
|
126
|
+
|
|
127
|
+
```java
|
|
128
|
+
@QuarkusTest
|
|
129
|
+
class UserResourceTest {
|
|
130
|
+
|
|
131
|
+
@Test
|
|
132
|
+
void createUser_validInput_returns201() {
|
|
133
|
+
given()
|
|
134
|
+
.contentType(ContentType.JSON)
|
|
135
|
+
.body("""
|
|
136
|
+
{"name": "Alice", "email": "alice@example.com"}
|
|
137
|
+
""")
|
|
138
|
+
.when().post("/api/users")
|
|
139
|
+
.then()
|
|
140
|
+
.statusCode(201)
|
|
141
|
+
.body("name", equalTo("Alice"));
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
@Test
|
|
145
|
+
void createUser_invalidEmail_returns400() {
|
|
146
|
+
given()
|
|
147
|
+
.contentType(ContentType.JSON)
|
|
148
|
+
.body("""
|
|
149
|
+
{"name": "Alice", "email": "invalid"}
|
|
150
|
+
""")
|
|
151
|
+
.when().post("/api/users")
|
|
152
|
+
.then()
|
|
153
|
+
.statusCode(400);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### Reporte de cobertura
|
|
159
|
+
|
|
160
|
+
Revisa `target/site/jacoco/index.html` para la cobertura detallada:
|
|
161
|
+
- Cobertura global de líneas (objetivo: 80 %+)
|
|
162
|
+
- Cobertura de ramas (objetivo: 70 %+)
|
|
163
|
+
- Identifica caminos críticos sin cubrir
|
|
164
|
+
|
|
165
|
+
## Fase 4: Escaneo de seguridad
|
|
166
|
+
|
|
167
|
+
### Vulnerabilidades en dependencias (Maven)
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
mvn org.owasp:dependency-check-maven:check
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
Revisa `target/dependency-check-report.html` en busca de CVEs.
|
|
174
|
+
|
|
175
|
+
### Auditoría de seguridad de Quarkus
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
# Revisar extensiones vulnerables
|
|
179
|
+
mvn quarkus:audit
|
|
180
|
+
|
|
181
|
+
# Listar todas las extensiones
|
|
182
|
+
mvn quarkus:list-extensions
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### OWASP ZAP (testing de seguridad de APIs)
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
docker run -t owasp/zap2docker-stable zap-api-scan.py \
|
|
189
|
+
-t http://localhost:8080/q/openapi \
|
|
190
|
+
-f openapi
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### Verificaciones de seguridad comunes
|
|
194
|
+
|
|
195
|
+
- [ ] Todos los secretos en variables de entorno (no en el código)
|
|
196
|
+
- [ ] Validación de entrada en todos los endpoints
|
|
197
|
+
- [ ] Autenticación/autorización configuradas
|
|
198
|
+
- [ ] CORS configurado correctamente
|
|
199
|
+
- [ ] Cabeceras de seguridad establecidas
|
|
200
|
+
- [ ] Contraseñas hasheadas con BCrypt
|
|
201
|
+
- [ ] Protección contra inyección SQL (consultas parametrizadas)
|
|
202
|
+
- [ ] Rate limiting en los endpoints públicos
|
|
203
|
+
|
|
204
|
+
## Fase 5: Compilación nativa
|
|
205
|
+
|
|
206
|
+
Prueba la compatibilidad con imagen nativa GraalVM:
|
|
207
|
+
|
|
208
|
+
```bash
|
|
209
|
+
# Compilar el ejecutable nativo
|
|
210
|
+
mvn package -Dnative
|
|
211
|
+
|
|
212
|
+
# O con contenedor
|
|
213
|
+
mvn package -Dnative -Dquarkus.native.container-build=true
|
|
214
|
+
|
|
215
|
+
# Probar el ejecutable nativo
|
|
216
|
+
./target/*-runner
|
|
217
|
+
|
|
218
|
+
# Ejecutar smoke tests básicos
|
|
219
|
+
curl http://localhost:8080/q/health/live
|
|
220
|
+
curl http://localhost:8080/q/health/ready
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
### Solución de problemas con imagen nativa
|
|
224
|
+
|
|
225
|
+
Problemas comunes:
|
|
226
|
+
- **Reflexión**: añade configuración de reflexión para clases dinámicas
|
|
227
|
+
- **Recursos**: incluye recursos con `quarkus.native.resources.includes`
|
|
228
|
+
- **JNI**: registra las clases JNI si usas bibliotecas nativas
|
|
229
|
+
|
|
230
|
+
Ejemplo de configuración de reflexión:
|
|
231
|
+
```java
|
|
232
|
+
@RegisterForReflection(targets = {MyDynamicClass.class})
|
|
233
|
+
public class ReflectionConfiguration {}
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
## Fase 6: Pruebas de rendimiento
|
|
237
|
+
|
|
238
|
+
### Pruebas de carga con K6
|
|
239
|
+
|
|
240
|
+
```javascript
|
|
241
|
+
// load-test.js
|
|
242
|
+
import http from 'k6/http';
|
|
243
|
+
import { check } from 'k6';
|
|
244
|
+
|
|
245
|
+
export const options = {
|
|
246
|
+
stages: [
|
|
247
|
+
{ duration: '30s', target: 50 },
|
|
248
|
+
{ duration: '1m', target: 100 },
|
|
249
|
+
{ duration: '30s', target: 0 },
|
|
250
|
+
],
|
|
251
|
+
};
|
|
252
|
+
|
|
253
|
+
export default function () {
|
|
254
|
+
const res = http.get('http://localhost:8080/api/markets');
|
|
255
|
+
check(res, {
|
|
256
|
+
'el estado es 200': (r) => r.status === 200,
|
|
257
|
+
'tiempo de respuesta < 200ms': (r) => r.timings.duration < 200,
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
Ejecuta:
|
|
263
|
+
```bash
|
|
264
|
+
k6 run load-test.js
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
### Métricas a monitorear
|
|
268
|
+
|
|
269
|
+
- Tiempo de respuesta (p50, p95, p99)
|
|
270
|
+
- Throughput (peticiones/segundo)
|
|
271
|
+
- Tasa de errores
|
|
272
|
+
- Uso de memoria
|
|
273
|
+
- Uso de CPU
|
|
274
|
+
|
|
275
|
+
## Fase 7: Health checks
|
|
276
|
+
|
|
277
|
+
```bash
|
|
278
|
+
# Liveness
|
|
279
|
+
curl http://localhost:8080/q/health/live
|
|
280
|
+
|
|
281
|
+
# Readiness
|
|
282
|
+
curl http://localhost:8080/q/health/ready
|
|
283
|
+
|
|
284
|
+
# Todos los health checks
|
|
285
|
+
curl http://localhost:8080/q/health
|
|
286
|
+
|
|
287
|
+
# Métricas (si están habilitadas)
|
|
288
|
+
curl http://localhost:8080/q/metrics
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
Respuestas esperadas:
|
|
292
|
+
```json
|
|
293
|
+
{
|
|
294
|
+
"status": "UP",
|
|
295
|
+
"checks": [
|
|
296
|
+
{
|
|
297
|
+
"name": "Database connection",
|
|
298
|
+
"status": "UP"
|
|
299
|
+
}
|
|
300
|
+
]
|
|
301
|
+
}
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
## Fase 8: Build de la imagen de contenedor
|
|
305
|
+
|
|
306
|
+
```bash
|
|
307
|
+
# Construir la imagen de contenedor
|
|
308
|
+
mvn package -Dquarkus.container-image.build=true
|
|
309
|
+
|
|
310
|
+
# O con un registro específico
|
|
311
|
+
mvn package \
|
|
312
|
+
-Dquarkus.container-image.build=true \
|
|
313
|
+
-Dquarkus.container-image.registry=docker.io \
|
|
314
|
+
-Dquarkus.container-image.group=myorg \
|
|
315
|
+
-Dquarkus.container-image.tag=1.0.0
|
|
316
|
+
|
|
317
|
+
# Probar el contenedor
|
|
318
|
+
docker run -p 8080:8080 myorg/my-quarkus-app:1.0.0
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
### Escaneo de seguridad del contenedor
|
|
322
|
+
|
|
323
|
+
```bash
|
|
324
|
+
# Trivy
|
|
325
|
+
trivy image myorg/my-quarkus-app:1.0.0
|
|
326
|
+
|
|
327
|
+
# Grype
|
|
328
|
+
grype myorg/my-quarkus-app:1.0.0
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
## Fase 9: Validación de configuración
|
|
332
|
+
|
|
333
|
+
```bash
|
|
334
|
+
# Revisar todas las propiedades de configuración
|
|
335
|
+
mvn quarkus:info
|
|
336
|
+
|
|
337
|
+
# Listar todas las fuentes de configuración
|
|
338
|
+
curl http://localhost:8080/q/dev/io.quarkus.quarkus-vertx-http/config
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
### Verificaciones por entorno
|
|
342
|
+
|
|
343
|
+
- [ ] URLs de base de datos configuradas por entorno
|
|
344
|
+
- [ ] Secretos externalizados (Vault, variables de entorno)
|
|
345
|
+
- [ ] Niveles de logging apropiados
|
|
346
|
+
- [ ] Orígenes CORS configurados correctamente
|
|
347
|
+
- [ ] Rate limiting configurado
|
|
348
|
+
- [ ] Monitoreo/trazado habilitado
|
|
349
|
+
|
|
350
|
+
## Fase 10: Revisión de documentación
|
|
351
|
+
|
|
352
|
+
- [ ] Documentación OpenAPI/Swagger al día (`/q/swagger-ui`)
|
|
353
|
+
- [ ] El README tiene instrucciones de configuración
|
|
354
|
+
- [ ] Cambios de API documentados
|
|
355
|
+
- [ ] Guía de migración para cambios incompatibles
|
|
356
|
+
- [ ] Propiedades de configuración documentadas
|
|
357
|
+
|
|
358
|
+
Genera la especificación OpenAPI:
|
|
359
|
+
```bash
|
|
360
|
+
curl http://localhost:8080/q/openapi -o openapi.json
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
## Lista de verificación
|
|
364
|
+
|
|
365
|
+
### Calidad de código
|
|
366
|
+
- [ ] El build pasa sin warnings
|
|
367
|
+
- [ ] Análisis estático limpio (sin issues altos/medios)
|
|
368
|
+
- [ ] El código sigue las convenciones del equipo
|
|
369
|
+
- [ ] Sin código comentado ni TODOs en el PR
|
|
370
|
+
|
|
371
|
+
### Testing
|
|
372
|
+
- [ ] Todos los tests pasan
|
|
373
|
+
- [ ] Cobertura de código ≥ 80 %
|
|
374
|
+
- [ ] Tests de integración con base de datos real
|
|
375
|
+
- [ ] Los tests de seguridad pasan
|
|
376
|
+
- [ ] Rendimiento dentro de límites aceptables
|
|
377
|
+
|
|
378
|
+
### Seguridad
|
|
379
|
+
- [ ] Sin vulnerabilidades en dependencias
|
|
380
|
+
- [ ] Autenticación/autorización probadas
|
|
381
|
+
- [ ] Validación de entrada completa
|
|
382
|
+
- [ ] Sin secretos en el código fuente
|
|
383
|
+
- [ ] Cabeceras de seguridad configuradas
|
|
384
|
+
|
|
385
|
+
### Despliegue
|
|
386
|
+
- [ ] Compilación nativa exitosa
|
|
387
|
+
- [ ] La imagen de contenedor compila
|
|
388
|
+
- [ ] Los health checks responden correctamente
|
|
389
|
+
- [ ] Configuración válida para el entorno objetivo
|
|
390
|
+
|
|
391
|
+
### Imagen nativa
|
|
392
|
+
- [ ] El ejecutable nativo compila
|
|
393
|
+
- [ ] Los tests nativos pasan
|
|
394
|
+
- [ ] Tiempo de arranque < 100 ms
|
|
395
|
+
- [ ] Huella de memoria aceptable
|
|
396
|
+
|
|
397
|
+
## Script de verificación automatizado
|
|
398
|
+
|
|
399
|
+
```bash
|
|
400
|
+
#!/bin/bash
|
|
401
|
+
set -e
|
|
402
|
+
|
|
403
|
+
echo "=== Fase 1: Build ==="
|
|
404
|
+
mvn clean verify -DskipTests
|
|
405
|
+
|
|
406
|
+
echo "=== Fase 2: Análisis estático ==="
|
|
407
|
+
mvn checkstyle:check pmd:check spotbugs:check
|
|
408
|
+
|
|
409
|
+
echo "=== Fase 3: Tests + cobertura ==="
|
|
410
|
+
mvn test jacoco:report jacoco:check
|
|
411
|
+
|
|
412
|
+
echo "=== Fase 4: Escaneo de seguridad ==="
|
|
413
|
+
mvn org.owasp:dependency-check-maven:check
|
|
414
|
+
|
|
415
|
+
echo "=== Fase 5: Compilación nativa ==="
|
|
416
|
+
mvn package -Dnative -Dquarkus.native.container-build=true
|
|
417
|
+
|
|
418
|
+
echo "=== Todas las fases completadas ==="
|
|
419
|
+
echo "Revisa los reportes:"
|
|
420
|
+
echo " - Cobertura: target/site/jacoco/index.html"
|
|
421
|
+
echo " - Seguridad: target/dependency-check-report.html"
|
|
422
|
+
echo " - Nativo: target/*-runner"
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
## Integración en CI/CD
|
|
426
|
+
|
|
427
|
+
### Ejemplo con GitHub Actions
|
|
428
|
+
|
|
429
|
+
```yaml
|
|
430
|
+
name: Verification
|
|
431
|
+
|
|
432
|
+
on: [push, pull_request]
|
|
433
|
+
|
|
434
|
+
jobs:
|
|
435
|
+
verify:
|
|
436
|
+
runs-on: ubuntu-latest
|
|
437
|
+
steps:
|
|
438
|
+
- uses: actions/checkout@v3
|
|
439
|
+
|
|
440
|
+
- name: Set up JDK 21
|
|
441
|
+
uses: actions/setup-java@v3
|
|
442
|
+
with:
|
|
443
|
+
java-version: '21'
|
|
444
|
+
distribution: 'temurin'
|
|
445
|
+
|
|
446
|
+
- name: Cache Maven packages
|
|
447
|
+
uses: actions/cache@v3
|
|
448
|
+
with:
|
|
449
|
+
path: ~/.m2
|
|
450
|
+
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
|
|
451
|
+
|
|
452
|
+
- name: Build
|
|
453
|
+
run: mvn clean verify -DskipTests
|
|
454
|
+
|
|
455
|
+
- name: Test with Coverage
|
|
456
|
+
run: mvn test jacoco:report jacoco:check
|
|
457
|
+
|
|
458
|
+
- name: Security Scan
|
|
459
|
+
run: mvn org.owasp:dependency-check-maven:check
|
|
460
|
+
|
|
461
|
+
- name: Upload Coverage
|
|
462
|
+
uses: codecov/codecov-action@v3
|
|
463
|
+
with:
|
|
464
|
+
files: target/site/jacoco/jacoco.xml
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
## Buenas prácticas
|
|
468
|
+
|
|
469
|
+
- Ejecuta el bucle de verificación antes de cada PR
|
|
470
|
+
- Automatízalo en el pipeline de CI/CD
|
|
471
|
+
- Corrige los problemas de inmediato; no acumules deuda
|
|
472
|
+
- Mantén la cobertura por encima del 80 %
|
|
473
|
+
- Actualiza las dependencias con regularidad
|
|
474
|
+
- Prueba la compilación nativa periódicamente
|
|
475
|
+
- Monitorea las tendencias de rendimiento
|
|
476
|
+
- Documenta los cambios incompatibles
|
|
477
|
+
- Revisa los resultados de los escaneos de seguridad
|
|
478
|
+
- Valida la configuración de cada entorno
|
|
479
|
+
|
|
480
|
+
## Skills relacionadas
|
|
481
|
+
|
|
482
|
+
- `patrones-quarkus`
|
|
483
|
+
- `seguridad-quarkus`
|
|
484
|
+
- `tdd-quarkus`
|
|
485
|
+
- `bucle-verificacion`
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: verificacion-springboot
|
|
3
|
+
description: Bucle de verificación para proyectos Spring Boot — build, análisis estático, pruebas con cobertura, escaneo de seguridad y revisión del diff antes de publicar o abrir un PR.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Bucle de verificación para Spring Boot
|
|
7
|
+
|
|
8
|
+
Ejecútalo antes de abrir PRs, después de cambios grandes y antes de desplegar.
|
|
9
|
+
|
|
10
|
+
## Cuándo activarla
|
|
11
|
+
|
|
12
|
+
- Antes de abrir un pull request para un servicio Spring Boot
|
|
13
|
+
- Después de refactorizaciones grandes o actualizaciones de dependencias
|
|
14
|
+
- Verificación previa al despliegue en staging o producción
|
|
15
|
+
- Ejecutar el pipeline completo build → lint → pruebas → escaneo de seguridad
|
|
16
|
+
- Validar que la cobertura de pruebas cumple los umbrales
|
|
17
|
+
|
|
18
|
+
## Fase 1: Build
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
mvn -T 4 clean verify -DskipTests
|
|
22
|
+
# o
|
|
23
|
+
./gradlew clean assemble -x test
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Si el build falla, detente y corrígelo.
|
|
27
|
+
|
|
28
|
+
## Fase 2: Análisis estático
|
|
29
|
+
|
|
30
|
+
Maven (plugins habituales):
|
|
31
|
+
```bash
|
|
32
|
+
mvn -T 4 spotbugs:check pmd:check checkstyle:check
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Gradle (si está configurado):
|
|
36
|
+
```bash
|
|
37
|
+
./gradlew checkstyleMain pmdMain spotbugsMain
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Fase 3: Pruebas + cobertura
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
mvn -T 4 test
|
|
44
|
+
mvn jacoco:report # verifica cobertura de 80 %+
|
|
45
|
+
# o
|
|
46
|
+
./gradlew test jacocoTestReport
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Reporta:
|
|
50
|
+
- Total de pruebas, pasadas/fallidas
|
|
51
|
+
- % de cobertura (líneas/ramas)
|
|
52
|
+
|
|
53
|
+
### Pruebas unitarias
|
|
54
|
+
|
|
55
|
+
Prueba la lógica de servicio de forma aislada con dependencias simuladas:
|
|
56
|
+
|
|
57
|
+
```java
|
|
58
|
+
@ExtendWith(MockitoExtension.class)
|
|
59
|
+
class UserServiceTest {
|
|
60
|
+
|
|
61
|
+
@Mock private UserRepository userRepository;
|
|
62
|
+
@InjectMocks private UserService userService;
|
|
63
|
+
|
|
64
|
+
@Test
|
|
65
|
+
void createUser_validInput_returnsUser() {
|
|
66
|
+
var dto = new CreateUserDto("Alice", "alice@example.com");
|
|
67
|
+
var expected = new User(1L, "Alice", "alice@example.com");
|
|
68
|
+
when(userRepository.save(any(User.class))).thenReturn(expected);
|
|
69
|
+
|
|
70
|
+
var result = userService.create(dto);
|
|
71
|
+
|
|
72
|
+
assertThat(result.name()).isEqualTo("Alice");
|
|
73
|
+
verify(userRepository).save(any(User.class));
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
@Test
|
|
77
|
+
void createUser_duplicateEmail_throwsException() {
|
|
78
|
+
var dto = new CreateUserDto("Alice", "existing@example.com");
|
|
79
|
+
when(userRepository.existsByEmail(dto.email())).thenReturn(true);
|
|
80
|
+
|
|
81
|
+
assertThatThrownBy(() -> userService.create(dto))
|
|
82
|
+
.isInstanceOf(DuplicateEmailException.class);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Pruebas de integración con Testcontainers
|
|
88
|
+
|
|
89
|
+
Prueba contra una base de datos real en lugar de H2:
|
|
90
|
+
|
|
91
|
+
```java
|
|
92
|
+
@SpringBootTest
|
|
93
|
+
@Testcontainers
|
|
94
|
+
class UserRepositoryIntegrationTest {
|
|
95
|
+
|
|
96
|
+
@Container
|
|
97
|
+
static PostgreSQLContainer<?> postgres = new PostgreSQLContainer<>("postgres:16-alpine")
|
|
98
|
+
.withDatabaseName("testdb");
|
|
99
|
+
|
|
100
|
+
@DynamicPropertySource
|
|
101
|
+
static void configureProperties(DynamicPropertyRegistry registry) {
|
|
102
|
+
registry.add("spring.datasource.url", postgres::getJdbcUrl);
|
|
103
|
+
registry.add("spring.datasource.username", postgres::getUsername);
|
|
104
|
+
registry.add("spring.datasource.password", postgres::getPassword);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
@Autowired private UserRepository userRepository;
|
|
108
|
+
|
|
109
|
+
@Test
|
|
110
|
+
void findByEmail_existingUser_returnsUser() {
|
|
111
|
+
userRepository.save(new User("Alice", "alice@example.com"));
|
|
112
|
+
|
|
113
|
+
var found = userRepository.findByEmail("alice@example.com");
|
|
114
|
+
|
|
115
|
+
assertThat(found).isPresent();
|
|
116
|
+
assertThat(found.get().getName()).isEqualTo("Alice");
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Pruebas de API con MockMvc
|
|
122
|
+
|
|
123
|
+
Prueba la capa de controladores:
|
|
124
|
+
|
|
125
|
+
```java
|
|
126
|
+
@WebMvcTest(UserController.class)
|
|
127
|
+
class UserControllerTest {
|
|
128
|
+
|
|
129
|
+
@Autowired private MockMvc mockMvc;
|
|
130
|
+
@MockBean private UserService userService;
|
|
131
|
+
|
|
132
|
+
@Test
|
|
133
|
+
void createUser_validInput_returns201() throws Exception {
|
|
134
|
+
var user = new UserDto(1L, "Alice", "alice@example.com");
|
|
135
|
+
when(userService.create(any())).thenReturn(user);
|
|
136
|
+
|
|
137
|
+
mockMvc.perform(post("/api/users")
|
|
138
|
+
.contentType(MediaType.APPLICATION_JSON)
|
|
139
|
+
.content("""
|
|
140
|
+
{"name": "Alice", "email": "alice@example.com"}
|
|
141
|
+
"""))
|
|
142
|
+
.andExpect(status().isCreated())
|
|
143
|
+
.andExpect(jsonPath("$.name").value("Alice"));
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
@Test
|
|
147
|
+
void createUser_invalidEmail_returns400() throws Exception {
|
|
148
|
+
mockMvc.perform(post("/api/users")
|
|
149
|
+
.contentType(MediaType.APPLICATION_JSON)
|
|
150
|
+
.content("""
|
|
151
|
+
{"name": "Alice", "email": "not-an-email"}
|
|
152
|
+
"""))
|
|
153
|
+
.andExpect(status().isBadRequest());
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
## Fase 4: Escaneo de seguridad
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
# CVE en dependencias
|
|
162
|
+
mvn org.owasp:dependency-check-maven:check
|
|
163
|
+
# o
|
|
164
|
+
./gradlew dependencyCheckAnalyze
|
|
165
|
+
|
|
166
|
+
# Secretos en el código fuente
|
|
167
|
+
grep -rn "password\s*=\s*\"" src/ --include="*.java" --include="*.yml" --include="*.properties"
|
|
168
|
+
grep -rn "sk-\|api_key\|secret" src/ --include="*.java" --include="*.yml"
|
|
169
|
+
|
|
170
|
+
# Secretos (historial de git)
|
|
171
|
+
git secrets --scan # si está configurado
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### Hallazgos de seguridad comunes
|
|
175
|
+
|
|
176
|
+
```
|
|
177
|
+
# Buscar System.out.println (usa un logger en su lugar)
|
|
178
|
+
grep -rn "System\.out\.print" src/main/ --include="*.java"
|
|
179
|
+
|
|
180
|
+
# Buscar mensajes de excepción crudos en las respuestas
|
|
181
|
+
grep -rn "e\.getMessage()" src/main/ --include="*.java"
|
|
182
|
+
|
|
183
|
+
# Buscar CORS con comodín
|
|
184
|
+
grep -rn "allowedOrigins.*\*" src/main/ --include="*.java"
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
## Fase 5: Lint/formato (puerta opcional)
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
mvn spotless:apply # si usas el plugin Spotless
|
|
191
|
+
./gradlew spotlessApply
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
## Fase 6: Revisión del diff
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
git diff --stat
|
|
198
|
+
git diff
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
Checklist:
|
|
202
|
+
- Sin logs de depuración olvidados (`System.out`, `log.debug` sin guardas)
|
|
203
|
+
- Errores con significado y códigos HTTP correctos
|
|
204
|
+
- Transacciones y validación presentes donde hacen falta
|
|
205
|
+
- Cambios de configuración documentados
|
|
206
|
+
|
|
207
|
+
## Plantilla de salida
|
|
208
|
+
|
|
209
|
+
```
|
|
210
|
+
INFORME DE VERIFICACIÓN
|
|
211
|
+
=======================
|
|
212
|
+
Build: [PASA/FALLA]
|
|
213
|
+
Estático: [PASA/FALLA] (spotbugs/pmd/checkstyle)
|
|
214
|
+
Pruebas: [PASA/FALLA] (X/Y pasadas, Z% cobertura)
|
|
215
|
+
Seguridad: [PASA/FALLA] (hallazgos CVE: N)
|
|
216
|
+
Diff: [X archivos modificados]
|
|
217
|
+
|
|
218
|
+
Global: [LISTO / NO LISTO]
|
|
219
|
+
|
|
220
|
+
Problemas a corregir:
|
|
221
|
+
1. ...
|
|
222
|
+
2. ...
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
## Modo continuo
|
|
226
|
+
|
|
227
|
+
- Reejecuta las fases ante cambios significativos o cada 30–60 minutos en sesiones largas
|
|
228
|
+
- Mantén un bucle corto: `mvn -T 4 test` + spotbugs para feedback rápido
|
|
229
|
+
|
|
230
|
+
**Recuerda**: el feedback rápido vence a las sorpresas tardías. Mantén la puerta estricta — trata las advertencias como defectos en sistemas de producción.
|
|
231
|
+
|
|
232
|
+
## Skills relacionadas
|
|
233
|
+
|
|
234
|
+
- `patrones-springboot`
|
|
235
|
+
- `seguridad-springboot`
|
|
236
|
+
- `tdd-springboot`
|
|
237
|
+
- `estandares-java`
|