theus-cli-linux-arm64 1.2.2 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +50 -11
- package/RELEASE.json +6 -6
- package/bin/theus +0 -0
- package/package.json +1 -1
- package/vendor/higiene-motor/PARCHES.md +244 -0
- package/vendor/higiene-motor/audit_dir.py +166 -0
- package/vendor/higiene-motor/audit_lib.py +333 -0
- package/vendor/higiene-motor/audit_website.py +635 -0
- package/vendor/higiene-motor/av_meta.py +498 -0
- package/vendor/higiene-motor/check_staged.py +71 -0
- package/vendor/higiene-motor/clean_ctrlregen.py +212 -0
- package/vendor/higiene-motor/clean_file.py +237 -0
- package/vendor/higiene-motor/clean_image.py +218 -0
- package/vendor/higiene-motor/clean_staged.py +143 -0
- package/vendor/higiene-motor/clean_text.py +108 -0
- package/vendor/higiene-motor/common.py +486 -0
- package/vendor/higiene-motor/container_meta.py +2522 -0
- package/vendor/higiene-motor/detect_gumbel.py +308 -0
- package/vendor/higiene-motor/detect_text_watermark.py +613 -0
- package/vendor/higiene-motor/format_dispatch.py +157 -0
- package/vendor/higiene-motor/hook_written_file.py +253 -0
- package/vendor/higiene-motor/image_meta.py +2171 -0
- package/vendor/higiene-motor/inspect_file.py +138 -0
- package/vendor/higiene-motor/inspect_image.py +72 -0
- package/vendor/higiene-motor/inspect_text.py +86 -0
- package/vendor/higiene-motor/markdiffusion_harness.py +533 -0
- package/vendor/higiene-motor/rewrite_text.py +737 -0
- package/vendor/higiene-motor/score_stylometry.py +460 -0
- package/vendor/higiene-motor/score_synthid.py +165 -0
- package/vendor/higiene-motor/server.py +1059 -0
- package/vendor/higiene-motor/synthid_score_server.py +176 -0
- package/vendor/higiene-motor/text_detectors.py +433 -0
- package/vendor/higiene-motor/text_unicode.py +730 -0
- package/vendor/theus-arsenal/.arsenal-nombres-ola2.json +0 -6
- package/vendor/theus-arsenal/.arsenal-nombres-ola3.json +0 -72
- package/vendor/theus-arsenal/.mailmap +0 -2
- package/vendor/theus-arsenal/.theus-plugin/marketplace.json +0 -25
- package/vendor/theus-arsenal/.theus-plugin/plugin.json +0 -20
- package/vendor/theus-arsenal/AUTHORS.md +0 -8
- package/vendor/theus-arsenal/CLEANROOM_REPLACEMENT_PLAN.md +0 -11
- package/vendor/theus-arsenal/LICENSE +0 -26
- package/vendor/theus-arsenal/PROVENANCE.md +0 -9
- package/vendor/theus-arsenal/README.md +0 -41
- package/vendor/theus-arsenal/THIRD_PARTY.md +0 -80
- package/vendor/theus-arsenal/agents/actualizador-docs.md +0 -123
- package/vendor/theus-arsenal/agents/analista-comentarios.md +0 -53
- package/vendor/theus-arsenal/agents/analista-conversaciones.md +0 -60
- package/vendor/theus-arsenal/agents/analista-tests-pr.md +0 -53
- package/vendor/theus-arsenal/agents/analista-tipos.md +0 -49
- package/vendor/theus-arsenal/agents/arquitecto-accesibilidad.md +0 -148
- package/vendor/theus-arsenal/agents/arquitecto-codigo.md +0 -79
- package/vendor/theus-arsenal/agents/arquitecto-homelab.md +0 -90
- package/vendor/theus-arsenal/agents/arquitecto-redes.md +0 -116
- package/vendor/theus-arsenal/agents/arquitecto-sistemas.md +0 -219
- package/vendor/theus-arsenal/agents/bifurcador-opensource.md +0 -206
- package/vendor/theus-arsenal/agents/cazador-fallos-silenciosos.md +0 -58
- package/vendor/theus-arsenal/agents/consultor-documentacion.md +0 -76
- package/vendor/theus-arsenal/agents/diagnosticador-redes.md +0 -135
- package/vendor/theus-arsenal/agents/ejecutor-e2e.md +0 -96
- package/vendor/theus-arsenal/agents/empaquetador-opensource.md +0 -257
- package/vendor/theus-arsenal/agents/escaner-secretos.md +0 -196
- package/vendor/theus-arsenal/agents/especialista-seo.md +0 -70
- package/vendor/theus-arsenal/agents/estratega-marketing.md +0 -158
- package/vendor/theus-arsenal/agents/evaluador-agentes.md +0 -214
- package/vendor/theus-arsenal/agents/evaluador-harness.md +0 -217
- package/vendor/theus-arsenal/agents/explorador-codigo.md +0 -79
- package/vendor/theus-arsenal/agents/extractor-specs.md +0 -214
- package/vendor/theus-arsenal/agents/generador-harness.md +0 -139
- package/vendor/theus-arsenal/agents/guia-tdd.md +0 -99
- package/vendor/theus-arsenal/agents/jefe-de-gabinete.md +0 -162
- package/vendor/theus-arsenal/agents/limpiador-refactors.md +0 -93
- package/vendor/theus-arsenal/agents/optimizador-rendimiento.md +0 -454
- package/vendor/theus-arsenal/agents/planificador-harness.md +0 -107
- package/vendor/theus-arsenal/agents/planificador.md +0 -221
- package/vendor/theus-arsenal/agents/resolutor-apps-harmonyos.md +0 -181
- package/vendor/theus-arsenal/agents/resolutor-builds-cpp.md +0 -98
- package/vendor/theus-arsenal/agents/resolutor-builds-dart.md +0 -209
- package/vendor/theus-arsenal/agents/resolutor-builds-django.md +0 -253
- package/vendor/theus-arsenal/agents/resolutor-builds-go.md +0 -102
- package/vendor/theus-arsenal/agents/resolutor-builds-java.md +0 -274
- package/vendor/theus-arsenal/agents/resolutor-builds-kotlin.md +0 -128
- package/vendor/theus-arsenal/agents/resolutor-builds-pytorch.md +0 -128
- package/vendor/theus-arsenal/agents/resolutor-builds-react.md +0 -214
- package/vendor/theus-arsenal/agents/resolutor-builds-rust.md +0 -156
- package/vendor/theus-arsenal/agents/resolutor-builds-swift.md +0 -169
- package/vendor/theus-arsenal/agents/resolutor-builds.md +0 -122
- package/vendor/theus-arsenal/agents/revisor-bd.md +0 -97
- package/vendor/theus-arsenal/agents/revisor-codigo.md +0 -291
- package/vendor/theus-arsenal/agents/revisor-config-red.md +0 -116
- package/vendor/theus-arsenal/agents/revisor-cpp.md +0 -80
- package/vendor/theus-arsenal/agents/revisor-csharp.md +0 -109
- package/vendor/theus-arsenal/agents/revisor-django.md +0 -168
- package/vendor/theus-arsenal/agents/revisor-fastapi.md +0 -82
- package/vendor/theus-arsenal/agents/revisor-flutter.md +0 -251
- package/vendor/theus-arsenal/agents/revisor-go.md +0 -84
- package/vendor/theus-arsenal/agents/revisor-java.md +0 -192
- package/vendor/theus-arsenal/agents/revisor-kotlin.md +0 -171
- package/vendor/theus-arsenal/agents/revisor-ml.md +0 -159
- package/vendor/theus-arsenal/agents/revisor-php.md +0 -108
- package/vendor/theus-arsenal/agents/revisor-python.md +0 -106
- package/vendor/theus-arsenal/agents/revisor-react.md +0 -166
- package/vendor/theus-arsenal/agents/revisor-rust.md +0 -102
- package/vendor/theus-arsenal/agents/revisor-seguridad.md +0 -116
- package/vendor/theus-arsenal/agents/revisor-software-clinico.md +0 -95
- package/vendor/theus-arsenal/agents/revisor-swift.md +0 -115
- package/vendor/theus-arsenal/agents/revisor-typescript.md +0 -123
- package/vendor/theus-arsenal/agents/revisor-vue.md +0 -205
- package/vendor/theus-arsenal/agents/simplificador-codigo.md +0 -55
- package/vendor/theus-arsenal/commands/actualizar-docs.md +0 -88
- package/vendor/theus-arsenal/commands/actualizar-mapas-codigo.md +0 -78
- package/vendor/theus-arsenal/commands/aprender-evaluar.md +0 -109
- package/vendor/theus-arsenal/commands/aprender.md +0 -74
- package/vendor/theus-arsenal/commands/arreglar-build.md +0 -66
- package/vendor/theus-arsenal/commands/bucle-multiperspectiva.md +0 -153
- package/vendor/theus-arsenal/commands/build-cpp.md +0 -173
- package/vendor/theus-arsenal/commands/build-flutter.md +0 -164
- package/vendor/theus-arsenal/commands/build-go.md +0 -183
- package/vendor/theus-arsenal/commands/build-gradle.md +0 -75
- package/vendor/theus-arsenal/commands/build-kotlin.md +0 -176
- package/vendor/theus-arsenal/commands/build-react.md +0 -187
- package/vendor/theus-arsenal/commands/build-rust.md +0 -187
- package/vendor/theus-arsenal/commands/campana-marketing.md +0 -125
- package/vendor/theus-arsenal/commands/checkpoint.md +0 -78
- package/vendor/theus-arsenal/commands/cobertura-tests.md +0 -73
- package/vendor/theus-arsenal/commands/configurar-gestor-paquetes.md +0 -86
- package/vendor/theus-arsenal/commands/consulta.md +0 -164
- package/vendor/theus-arsenal/commands/control-calidad.md +0 -50
- package/vendor/theus-arsenal/commands/crear-skill.md +0 -77
- package/vendor/theus-arsenal/commands/enrutar-modelo.md +0 -30
- package/vendor/theus-arsenal/commands/epica-desbloquear.md +0 -17
- package/vendor/theus-arsenal/commands/epica-descomponer.md +0 -22
- package/vendor/theus-arsenal/commands/epica-publicar.md +0 -21
- package/vendor/theus-arsenal/commands/epica-reclamar.md +0 -25
- package/vendor/theus-arsenal/commands/epica-revisar.md +0 -22
- package/vendor/theus-arsenal/commands/epica-sincronizar.md +0 -21
- package/vendor/theus-arsenal/commands/epica-validar.md +0 -21
- package/vendor/theus-arsenal/commands/evolucionar.md +0 -176
- package/vendor/theus-arsenal/commands/funcionalidad.md +0 -49
- package/vendor/theus-arsenal/commands/guardar-sesion.md +0 -278
- package/vendor/theus-arsenal/commands/harness-build.md +0 -111
- package/vendor/theus-arsenal/commands/harness-diseno.md +0 -46
- package/vendor/theus-arsenal/commands/informe-costos.md +0 -90
- package/vendor/theus-arsenal/commands/iniciar-bucle.md +0 -36
- package/vendor/theus-arsenal/commands/instintos-estado.md +0 -53
- package/vendor/theus-arsenal/commands/instintos-exportar.md +0 -69
- package/vendor/theus-arsenal/commands/instintos-importar.md +0 -120
- package/vendor/theus-arsenal/commands/lienzo-planes.md +0 -48
- package/vendor/theus-arsenal/commands/limpiar-refactor.md +0 -84
- package/vendor/theus-arsenal/commands/modo-seguro.md +0 -96
- package/vendor/theus-arsenal/commands/orq-agregar-funcionalidad.md +0 -36
- package/vendor/theus-arsenal/commands/orq-cambiar-funcionalidad.md +0 -38
- package/vendor/theus-arsenal/commands/orq-construir-mvp.md +0 -36
- package/vendor/theus-arsenal/commands/orq-corregir-defecto.md +0 -40
- package/vendor/theus-arsenal/commands/orq-refinar-codigo.md +0 -44
- package/vendor/theus-arsenal/commands/orq-revisar.md +0 -135
- package/vendor/theus-arsenal/commands/plan-prd.md +0 -160
- package/vendor/theus-arsenal/commands/plan.md +0 -198
- package/vendor/theus-arsenal/commands/podar.md +0 -31
- package/vendor/theus-arsenal/commands/pr.md +0 -181
- package/vendor/theus-arsenal/commands/promover.md +0 -41
- package/vendor/theus-arsenal/commands/proyectos.md +0 -33
- package/vendor/theus-arsenal/commands/prp-commit.md +0 -112
- package/vendor/theus-arsenal/commands/prp-implementar.md +0 -385
- package/vendor/theus-arsenal/commands/prp-planificar.md +0 -501
- package/vendor/theus-arsenal/commands/reanudar-sesion.md +0 -160
- package/vendor/theus-arsenal/commands/revisar-codigo.md +0 -289
- package/vendor/theus-arsenal/commands/revisar-cpp.md +0 -132
- package/vendor/theus-arsenal/commands/revisar-fastapi.md +0 -39
- package/vendor/theus-arsenal/commands/revisar-flutter.md +0 -115
- package/vendor/theus-arsenal/commands/revisar-go.md +0 -148
- package/vendor/theus-arsenal/commands/revisar-kotlin.md +0 -140
- package/vendor/theus-arsenal/commands/revisar-pr.md +0 -37
- package/vendor/theus-arsenal/commands/revisar-python.md +0 -297
- package/vendor/theus-arsenal/commands/revisar-react.md +0 -170
- package/vendor/theus-arsenal/commands/revisar-rust.md +0 -142
- package/vendor/theus-arsenal/commands/revisar-vue.md +0 -174
- package/vendor/theus-arsenal/commands/salud-skills.md +0 -52
- package/vendor/theus-arsenal/commands/sesiones.md +0 -345
- package/vendor/theus-arsenal/commands/test-cpp.md +0 -252
- package/vendor/theus-arsenal/commands/test-flutter.md +0 -143
- package/vendor/theus-arsenal/commands/test-go.md +0 -268
- package/vendor/theus-arsenal/commands/test-kotlin.md +0 -312
- package/vendor/theus-arsenal/commands/test-react.md +0 -265
- package/vendor/theus-arsenal/commands/test-rust.md +0 -309
- package/vendor/theus-arsenal/commands/vigilancia-canary.md +0 -43
- package/vendor/theus-arsenal/hooks/hooks.json +0 -274
- package/vendor/theus-arsenal/package.json +0 -6
- package/vendor/theus-arsenal/rules/angular/coding-style.md +0 -182
- package/vendor/theus-arsenal/rules/angular/hooks.md +0 -25
- package/vendor/theus-arsenal/rules/angular/patterns.md +0 -249
- package/vendor/theus-arsenal/rules/angular/security.md +0 -87
- package/vendor/theus-arsenal/rules/angular/testing.md +0 -164
- package/vendor/theus-arsenal/rules/arkts/coding-style.md +0 -153
- package/vendor/theus-arsenal/rules/arkts/hooks.md +0 -80
- package/vendor/theus-arsenal/rules/arkts/patterns.md +0 -236
- package/vendor/theus-arsenal/rules/arkts/security.md +0 -141
- package/vendor/theus-arsenal/rules/arkts/testing.md +0 -126
- package/vendor/theus-arsenal/rules/common/agents.md +0 -49
- package/vendor/theus-arsenal/rules/common/code-review.md +0 -123
- package/vendor/theus-arsenal/rules/common/coding-style.md +0 -90
- package/vendor/theus-arsenal/rules/common/development-workflow.md +0 -44
- package/vendor/theus-arsenal/rules/common/git-workflow.md +0 -24
- package/vendor/theus-arsenal/rules/common/hooks.md +0 -32
- package/vendor/theus-arsenal/rules/common/patterns.md +0 -31
- package/vendor/theus-arsenal/rules/common/performance.md +0 -53
- package/vendor/theus-arsenal/rules/common/security.md +0 -29
- package/vendor/theus-arsenal/rules/common/testing.md +0 -57
- package/vendor/theus-arsenal/rules/cpp/coding-style.md +0 -44
- package/vendor/theus-arsenal/rules/cpp/hooks.md +0 -39
- package/vendor/theus-arsenal/rules/cpp/patterns.md +0 -51
- package/vendor/theus-arsenal/rules/cpp/security.md +0 -51
- package/vendor/theus-arsenal/rules/cpp/testing.md +0 -44
- package/vendor/theus-arsenal/rules/csharp/coding-style.md +0 -72
- package/vendor/theus-arsenal/rules/csharp/hooks.md +0 -25
- package/vendor/theus-arsenal/rules/csharp/patterns.md +0 -50
- package/vendor/theus-arsenal/rules/csharp/security.md +0 -58
- package/vendor/theus-arsenal/rules/csharp/testing.md +0 -50
- package/vendor/theus-arsenal/rules/dart/coding-style.md +0 -159
- package/vendor/theus-arsenal/rules/dart/hooks.md +0 -68
- package/vendor/theus-arsenal/rules/dart/patterns.md +0 -261
- package/vendor/theus-arsenal/rules/dart/security.md +0 -135
- package/vendor/theus-arsenal/rules/dart/testing.md +0 -215
- package/vendor/theus-arsenal/rules/fsharp/coding-style.md +0 -112
- package/vendor/theus-arsenal/rules/fsharp/hooks.md +0 -26
- package/vendor/theus-arsenal/rules/fsharp/patterns.md +0 -111
- package/vendor/theus-arsenal/rules/fsharp/security.md +0 -76
- package/vendor/theus-arsenal/rules/fsharp/testing.md +0 -62
- package/vendor/theus-arsenal/rules/golang/coding-style.md +0 -32
- package/vendor/theus-arsenal/rules/golang/hooks.md +0 -17
- package/vendor/theus-arsenal/rules/golang/patterns.md +0 -45
- package/vendor/theus-arsenal/rules/golang/security.md +0 -34
- package/vendor/theus-arsenal/rules/golang/testing.md +0 -31
- package/vendor/theus-arsenal/rules/java/coding-style.md +0 -114
- package/vendor/theus-arsenal/rules/java/hooks.md +0 -18
- package/vendor/theus-arsenal/rules/java/patterns.md +0 -147
- package/vendor/theus-arsenal/rules/java/security.md +0 -101
- package/vendor/theus-arsenal/rules/java/testing.md +0 -133
- package/vendor/theus-arsenal/rules/kotlin/coding-style.md +0 -86
- package/vendor/theus-arsenal/rules/kotlin/hooks.md +0 -17
- package/vendor/theus-arsenal/rules/kotlin/patterns.md +0 -146
- package/vendor/theus-arsenal/rules/kotlin/security.md +0 -82
- package/vendor/theus-arsenal/rules/kotlin/testing.md +0 -128
- package/vendor/theus-arsenal/rules/nuxt/coding-style.md +0 -47
- package/vendor/theus-arsenal/rules/nuxt/hooks.md +0 -39
- package/vendor/theus-arsenal/rules/nuxt/patterns.md +0 -54
- package/vendor/theus-arsenal/rules/nuxt/security.md +0 -48
- package/vendor/theus-arsenal/rules/nuxt/testing.md +0 -49
- package/vendor/theus-arsenal/rules/php/coding-style.md +0 -40
- package/vendor/theus-arsenal/rules/php/hooks.md +0 -24
- package/vendor/theus-arsenal/rules/php/patterns.md +0 -33
- package/vendor/theus-arsenal/rules/php/security.md +0 -37
- package/vendor/theus-arsenal/rules/php/testing.md +0 -38
- package/vendor/theus-arsenal/rules/python/coding-style.md +0 -42
- package/vendor/theus-arsenal/rules/python/fastapi.md +0 -58
- package/vendor/theus-arsenal/rules/python/hooks.md +0 -19
- package/vendor/theus-arsenal/rules/python/patterns.md +0 -39
- package/vendor/theus-arsenal/rules/python/security.md +0 -30
- package/vendor/theus-arsenal/rules/python/testing.md +0 -38
- package/vendor/theus-arsenal/rules/react/coding-style.md +0 -109
- package/vendor/theus-arsenal/rules/react/hooks.md +0 -187
- package/vendor/theus-arsenal/rules/react/patterns.md +0 -194
- package/vendor/theus-arsenal/rules/react/security.md +0 -180
- package/vendor/theus-arsenal/rules/react/testing.md +0 -208
- package/vendor/theus-arsenal/rules/react-native/accessibility.md +0 -55
- package/vendor/theus-arsenal/rules/react-native/coding-style.md +0 -71
- package/vendor/theus-arsenal/rules/react-native/hooks.md +0 -28
- package/vendor/theus-arsenal/rules/react-native/patterns.md +0 -88
- package/vendor/theus-arsenal/rules/react-native/performance.md +0 -45
- package/vendor/theus-arsenal/rules/react-native/production-readiness.md +0 -51
- package/vendor/theus-arsenal/rules/react-native/security.md +0 -43
- package/vendor/theus-arsenal/rules/react-native/testing.md +0 -52
- package/vendor/theus-arsenal/rules/ruby/coding-style.md +0 -46
- package/vendor/theus-arsenal/rules/ruby/hooks.md +0 -37
- package/vendor/theus-arsenal/rules/ruby/patterns.md +0 -44
- package/vendor/theus-arsenal/rules/ruby/security.md +0 -51
- package/vendor/theus-arsenal/rules/ruby/testing.md +0 -51
- package/vendor/theus-arsenal/rules/rust/coding-style.md +0 -151
- package/vendor/theus-arsenal/rules/rust/hooks.md +0 -16
- package/vendor/theus-arsenal/rules/rust/patterns.md +0 -168
- package/vendor/theus-arsenal/rules/rust/security.md +0 -141
- package/vendor/theus-arsenal/rules/rust/testing.md +0 -154
- package/vendor/theus-arsenal/rules/swift/coding-style.md +0 -47
- package/vendor/theus-arsenal/rules/swift/hooks.md +0 -20
- package/vendor/theus-arsenal/rules/swift/patterns.md +0 -66
- package/vendor/theus-arsenal/rules/swift/security.md +0 -33
- package/vendor/theus-arsenal/rules/swift/testing.md +0 -45
- package/vendor/theus-arsenal/rules/typescript/coding-style.md +0 -199
- package/vendor/theus-arsenal/rules/typescript/hooks.md +0 -22
- package/vendor/theus-arsenal/rules/typescript/patterns.md +0 -52
- package/vendor/theus-arsenal/rules/typescript/security.md +0 -28
- package/vendor/theus-arsenal/rules/typescript/testing.md +0 -18
- package/vendor/theus-arsenal/rules/vue/coding-style.md +0 -54
- package/vendor/theus-arsenal/rules/vue/hooks.md +0 -45
- package/vendor/theus-arsenal/rules/vue/patterns.md +0 -56
- package/vendor/theus-arsenal/rules/vue/security.md +0 -46
- package/vendor/theus-arsenal/rules/vue/testing.md +0 -53
- package/vendor/theus-arsenal/rules/web/coding-style.md +0 -108
- package/vendor/theus-arsenal/rules/web/design-quality.md +0 -75
- package/vendor/theus-arsenal/rules/web/hooks.md +0 -141
- package/vendor/theus-arsenal/rules/web/patterns.md +0 -91
- package/vendor/theus-arsenal/rules/web/performance.md +0 -76
- package/vendor/theus-arsenal/rules/web/security.md +0 -69
- package/vendor/theus-arsenal/rules/web/testing.md +0 -67
- package/vendor/theus-arsenal/scripts/hooks/bash-hook-dispatcher.js +0 -192
- package/vendor/theus-arsenal/scripts/hooks/block-no-verify.js +0 -556
- package/vendor/theus-arsenal/scripts/hooks/check-console-log.js +0 -92
- package/vendor/theus-arsenal/scripts/hooks/check-hook-enabled.js +0 -16
- package/vendor/theus-arsenal/scripts/hooks/config-protection.js +0 -171
- package/vendor/theus-arsenal/scripts/hooks/design-quality-check.js +0 -132
- package/vendor/theus-arsenal/scripts/hooks/doc-file-warning.js +0 -110
- package/vendor/theus-arsenal/scripts/hooks/modo-seguro.js +0 -158
- package/vendor/theus-arsenal/scripts/hooks/notificacion-escritorio.js +0 -208
- package/vendor/theus-arsenal/scripts/hooks/plugin-hook-bootstrap.js +0 -280
- package/vendor/theus-arsenal/scripts/hooks/post-bash-command-log.js +0 -87
- package/vendor/theus-arsenal/scripts/hooks/post-bash-dispatcher.js +0 -24
- package/vendor/theus-arsenal/scripts/hooks/post-bash-pr-created.js +0 -60
- package/vendor/theus-arsenal/scripts/hooks/post-edit-accumulator.js +0 -94
- package/vendor/theus-arsenal/scripts/hooks/post-edit-console-warn.js +0 -54
- package/vendor/theus-arsenal/scripts/hooks/post-edit-format.js +0 -110
- package/vendor/theus-arsenal/scripts/hooks/post-edit-typecheck.js +0 -98
- package/vendor/theus-arsenal/scripts/hooks/pre-bash-commit-quality.js +0 -447
- package/vendor/theus-arsenal/scripts/hooks/pre-bash-dev-server-block.js +0 -232
- package/vendor/theus-arsenal/scripts/hooks/pre-bash-dispatcher.js +0 -27
- package/vendor/theus-arsenal/scripts/hooks/pre-compact.js +0 -101
- package/vendor/theus-arsenal/scripts/hooks/pretooluse-visible-output.js +0 -49
- package/vendor/theus-arsenal/scripts/hooks/quality-gate.js +0 -168
- package/vendor/theus-arsenal/scripts/hooks/run-with-flags.js +0 -271
- package/vendor/theus-arsenal/scripts/hooks/salud-mcp.js +0 -749
- package/vendor/theus-arsenal/scripts/hooks/seguimiento-costos.js +0 -161
- package/vendor/theus-arsenal/scripts/hooks/session-end.js +0 -340
- package/vendor/theus-arsenal/scripts/hooks/session-start.js +0 -906
- package/vendor/theus-arsenal/scripts/hooks/stop-format-typecheck.js +0 -263
- package/vendor/theus-arsenal/scripts/hooks/suggest-compact.js +0 -286
- package/vendor/theus-arsenal/scripts/hooks/theus-context-monitor.js +0 -289
- package/vendor/theus-arsenal/scripts/hooks/verificacion-factual.js +0 -1278
- package/vendor/theus-arsenal/scripts/lib/agent-data-home.js +0 -96
- package/vendor/theus-arsenal/scripts/lib/cost-estimate.js +0 -66
- package/vendor/theus-arsenal/scripts/lib/hook-flags.js +0 -79
- package/vendor/theus-arsenal/scripts/lib/llm-summary.js +0 -185
- package/vendor/theus-arsenal/scripts/lib/loopback-guard.js +0 -54
- package/vendor/theus-arsenal/scripts/lib/observer-sessions.js +0 -237
- package/vendor/theus-arsenal/scripts/lib/package-manager.d.ts +0 -120
- package/vendor/theus-arsenal/scripts/lib/package-manager.js +0 -434
- package/vendor/theus-arsenal/scripts/lib/path-safety.js +0 -86
- package/vendor/theus-arsenal/scripts/lib/plan-canvas/markdown.js +0 -285
- package/vendor/theus-arsenal/scripts/lib/plan-canvas/sdk.js +0 -238
- package/vendor/theus-arsenal/scripts/lib/plan-canvas/server.js +0 -534
- package/vendor/theus-arsenal/scripts/lib/plan-canvas/sessions.js +0 -274
- package/vendor/theus-arsenal/scripts/lib/plan-canvas/ui.js +0 -546
- package/vendor/theus-arsenal/scripts/lib/project-detect.js +0 -451
- package/vendor/theus-arsenal/scripts/lib/resolve-formatter.js +0 -193
- package/vendor/theus-arsenal/scripts/lib/resolve-theus-root.js +0 -101
- package/vendor/theus-arsenal/scripts/lib/session-aliases.d.ts +0 -138
- package/vendor/theus-arsenal/scripts/lib/session-aliases.js +0 -483
- package/vendor/theus-arsenal/scripts/lib/session-bridge.js +0 -155
- package/vendor/theus-arsenal/scripts/lib/session-manager.d.ts +0 -137
- package/vendor/theus-arsenal/scripts/lib/session-manager.js +0 -555
- package/vendor/theus-arsenal/scripts/lib/shell-split.js +0 -86
- package/vendor/theus-arsenal/scripts/lib/shell-substitution.js +0 -501
- package/vendor/theus-arsenal/scripts/lib/skill-evolution/dashboard.js +0 -414
- package/vendor/theus-arsenal/scripts/lib/skill-evolution/health.js +0 -285
- package/vendor/theus-arsenal/scripts/lib/skill-evolution/index.js +0 -22
- package/vendor/theus-arsenal/scripts/lib/skill-evolution/provenance.js +0 -200
- package/vendor/theus-arsenal/scripts/lib/skill-evolution/tracker.js +0 -157
- package/vendor/theus-arsenal/scripts/lib/skill-evolution/versioning.js +0 -246
- package/vendor/theus-arsenal/scripts/lib/transcript-context.js +0 -232
- package/vendor/theus-arsenal/scripts/lib/utils.d.ts +0 -205
- package/vendor/theus-arsenal/scripts/lib/utils.js +0 -658
- package/vendor/theus-arsenal/scripts/plan-canvas.js +0 -341
- package/vendor/theus-arsenal/scripts/setup-package-manager.js +0 -46
- package/vendor/theus-arsenal/scripts/skills-health.js +0 -143
- package/vendor/theus-arsenal/skills/a11y-frontend/SKILL.md +0 -444
- package/vendor/theus-arsenal/skills/accesibilidad/SKILL.md +0 -144
- package/vendor/theus-arsenal/skills/acelerador-throughput-datos/SKILL.md +0 -72
- package/vendor/theus-arsenal/skills/agente-scraper-datos/SKILL.md +0 -771
- package/vendor/theus-arsenal/skills/analisis-plataformas-competencia/SKILL.md +0 -137
- package/vendor/theus-arsenal/skills/api-x/SKILL.md +0 -233
- package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/SKILL.md +0 -335
- package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/agents/observer-loop.sh +0 -374
- package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/agents/observer.md +0 -188
- package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/agents/session-guardian.sh +0 -153
- package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/agents/start-observer.sh +0 -253
- package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/config.json +0 -8
- package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/hooks/observe.sh +0 -594
- package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/scripts/detect-project.sh +0 -325
- package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/scripts/instinct-cli.py +0 -1918
- package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/scripts/lib/arsenal-dir.sh +0 -23
- package/vendor/theus-arsenal/skills/aprendizaje-continuo-v2/scripts/test_parse_instinct.py +0 -1420
- package/vendor/theus-arsenal/skills/arquitectura-hexagonal/SKILL.md +0 -275
- package/vendor/theus-arsenal/skills/arquitectura-limpia-android/SKILL.md +0 -340
- package/vendor/theus-arsenal/skills/arquitectura-pipelines-recomendacion/SKILL.md +0 -112
- package/vendor/theus-arsenal/skills/atlas-datos-prediccion/SKILL.md +0 -53
- package/vendor/theus-arsenal/skills/auditoria-arquitectura-agentes/SKILL.md +0 -257
- package/vendor/theus-arsenal/skills/auditoria-produccion/SKILL.md +0 -180
- package/vendor/theus-arsenal/skills/auditoria-rutas-clic/SKILL.md +0 -243
- package/vendor/theus-arsenal/skills/autoevaluacion-agente/SKILL.md +0 -180
- package/vendor/theus-arsenal/skills/autoevaluacion-agente/examples/high-score-example.md +0 -89
- package/vendor/theus-arsenal/skills/autoevaluacion-agente/examples/low-score-example.md +0 -87
- package/vendor/theus-arsenal/skills/autoevaluacion-agente/references/evaluation-criteria.md +0 -71
- package/vendor/theus-arsenal/skills/autoevaluacion-agente/references/hook-integration.md +0 -90
- package/vendor/theus-arsenal/skills/autoevaluacion-agente/scripts/evaluate.py +0 -409
- package/vendor/theus-arsenal/skills/autoevaluacion-agente/templates/evaluation-report.md +0 -86
- package/vendor/theus-arsenal/skills/automatizacion-ssh-netmiko/SKILL.md +0 -176
- package/vendor/theus-arsenal/skills/base-datos-pubmed/SKILL.md +0 -174
- package/vendor/theus-arsenal/skills/base-datos-uspto/SKILL.md +0 -173
- package/vendor/theus-arsenal/skills/benchmark/SKILL.md +0 -92
- package/vendor/theus-arsenal/skills/bitacora-crecimiento/SKILL.md +0 -120
- package/vendor/theus-arsenal/skills/bucle-verificacion/SKILL.md +0 -125
- package/vendor/theus-arsenal/skills/buscar-primero/SKILL.md +0 -184
- package/vendor/theus-arsenal/skills/busqueda-exa/SKILL.md +0 -111
- package/vendor/theus-arsenal/skills/cache-por-hash/SKILL.md +0 -160
- package/vendor/theus-arsenal/skills/campana-marketing/SKILL.md +0 -118
- package/vendor/theus-arsenal/skills/capacidad-producto/SKILL.md +0 -138
- package/vendor/theus-arsenal/skills/cazador-vulnerabilidades/SKILL.md +0 -104
- package/vendor/theus-arsenal/skills/compactacion-estrategica/SKILL.md +0 -115
- package/vendor/theus-arsenal/skills/comparador-baskets-prediccion/SKILL.md +0 -69
- package/vendor/theus-arsenal/skills/compras-energia/SKILL.md +0 -206
- package/vendor/theus-arsenal/skills/concurrencia-swift-6-2/SKILL.md +0 -224
- package/vendor/theus-arsenal/skills/consejo/SKILL.md +0 -201
- package/vendor/theus-arsenal/skills/construccion-harness-agentes/SKILL.md +0 -78
- package/vendor/theus-arsenal/skills/constructor-conectores/SKILL.md +0 -119
- package/vendor/theus-arsenal/skills/constructor-equipos/SKILL.md +0 -169
- package/vendor/theus-arsenal/skills/consulta-documentacion/SKILL.md +0 -92
- package/vendor/theus-arsenal/skills/consultas-genomicas-gget/SKILL.md +0 -170
- package/vendor/theus-arsenal/skills/contacto-inversores/SKILL.md +0 -95
- package/vendor/theus-arsenal/skills/corrutinas-flows-kotlin/SKILL.md +0 -284
- package/vendor/theus-arsenal/skills/creacion-video-remotion/SKILL.md +0 -46
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/3d.md +0 -86
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/animations.md +0 -29
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/assets/charts-bar-chart.tsx +0 -173
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/assets/text-animations-typewriter.tsx +0 -100
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/assets/text-animations-word-highlight.tsx +0 -108
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/assets.md +0 -78
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/audio.md +0 -172
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/calculate-metadata.md +0 -104
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/can-decode.md +0 -75
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/charts.md +0 -58
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/compositions.md +0 -146
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/display-captions.md +0 -126
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/extract-frames.md +0 -229
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/fonts.md +0 -152
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/get-audio-duration.md +0 -58
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/get-video-dimensions.md +0 -68
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/get-video-duration.md +0 -58
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/gifs.md +0 -138
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/images.md +0 -130
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/import-srt-captions.md +0 -67
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/lottie.md +0 -67
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/measuring-dom-nodes.md +0 -34
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/measuring-text.md +0 -143
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/sequencing.md +0 -106
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/tailwind.md +0 -11
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/text-animations.md +0 -20
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/timing.md +0 -179
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/transcribe-captions.md +0 -19
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/transitions.md +0 -122
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/trimming.md +0 -52
- package/vendor/theus-arsenal/skills/creacion-video-remotion/rules/videos.md +0 -171
- package/vendor/theus-arsenal/skills/cumplimiento-aduanero/SKILL.md +0 -270
- package/vendor/theus-arsenal/skills/cumplimiento-hipaa/SKILL.md +0 -78
- package/vendor/theus-arsenal/skills/datos-sensibles-salud/SKILL.md +0 -149
- package/vendor/theus-arsenal/skills/decimales-tokens-evm/SKILL.md +0 -128
- package/vendor/theus-arsenal/skills/decisiones-arquitectura/SKILL.md +0 -206
- package/vendor/theus-arsenal/skills/demos-ui/SKILL.md +0 -469
- package/vendor/theus-arsenal/skills/desarrollo-por-intencion/SKILL.md +0 -369
- package/vendor/theus-arsenal/skills/descubrimiento-marca/SKILL.md +0 -149
- package/vendor/theus-arsenal/skills/descubrimiento-marca/references/10_proposito-porque.md +0 -42
- package/vendor/theus-arsenal/skills/descubrimiento-marca/references/20_posicionamiento.md +0 -47
- package/vendor/theus-arsenal/skills/descubrimiento-marca/references/30_audiencia-nicho.md +0 -53
- package/vendor/theus-arsenal/skills/descubrimiento-marca/references/40_personalidad-arquetipo.md +0 -61
- package/vendor/theus-arsenal/skills/descubrimiento-marca/references/50_voz-tono.md +0 -62
- package/vendor/theus-arsenal/skills/descubrimiento-marca/references/60_narrativa-historia.md +0 -54
- package/vendor/theus-arsenal/skills/descubrimiento-marca/references/70_tension-fundador.md +0 -50
- package/vendor/theus-arsenal/skills/descubrimiento-marca/references/90_SINTESIS.md +0 -133
- package/vendor/theus-arsenal/skills/descubrimiento-plugins-laravel/SKILL.md +0 -230
- package/vendor/theus-arsenal/skills/destilado-reglas/SKILL.md +0 -263
- package/vendor/theus-arsenal/skills/destilado-reglas/scripts/scan-rules.sh +0 -58
- package/vendor/theus-arsenal/skills/destilado-reglas/scripts/scan-skills.sh +0 -129
- package/vendor/theus-arsenal/skills/diagnostico-bgp/SKILL.md +0 -170
- package/vendor/theus-arsenal/skills/direccion-estetica/SKILL.md +0 -220
- package/vendor/theus-arsenal/skills/direccion-estetica/references/taxonomia-generos.md +0 -89
- package/vendor/theus-arsenal/skills/diseno-api/SKILL.md +0 -522
- package/vendor/theus-arsenal/skills/diseno-liquid-glass/SKILL.md +0 -282
- package/vendor/theus-arsenal/skills/e2e-escritorio-windows/SKILL.md +0 -879
- package/vendor/theus-arsenal/skills/edicion-video/SKILL.md +0 -289
- package/vendor/theus-arsenal/skills/enfoque-producto/SKILL.md +0 -91
- package/vendor/theus-arsenal/skills/entornos-flox/SKILL.md +0 -493
- package/vendor/theus-arsenal/skills/estandares-codigo/SKILL.md +0 -548
- package/vendor/theus-arsenal/skills/estandares-cpp/SKILL.md +0 -727
- package/vendor/theus-arsenal/skills/estandares-java/SKILL.md +0 -389
- package/vendor/theus-arsenal/skills/estilo-legado/SKILL.md +0 -149
- package/vendor/theus-arsenal/skills/estructura-informes-competencia/SKILL.md +0 -95
- package/vendor/theus-arsenal/skills/evaluacion-academica/SKILL.md +0 -165
- package/vendor/theus-arsenal/skills/explorador-skills/SKILL.md +0 -129
- package/vendor/theus-arsenal/skills/flujo-git/SKILL.md +0 -714
- package/vendor/theus-arsenal/skills/flujo-ingenieria-ml/SKILL.md +0 -343
- package/vendor/theus-arsenal/skills/flujo-tdd/SKILL.md +0 -584
- package/vendor/theus-arsenal/skills/forja-personas/SKILL.md +0 -298
- package/vendor/theus-arsenal/skills/forja-personas/gacha.py +0 -224
- package/vendor/theus-arsenal/skills/forja-personas/gacha.sh +0 -5
- package/vendor/theus-arsenal/skills/forja-personas/references/avatar-style.md +0 -123
- package/vendor/theus-arsenal/skills/forja-personas/references/boundary-rules.md +0 -53
- package/vendor/theus-arsenal/skills/forja-personas/references/error-handling.md +0 -53
- package/vendor/theus-arsenal/skills/forja-personas/references/identity-tension.md +0 -48
- package/vendor/theus-arsenal/skills/forja-personas/references/naming-system.md +0 -39
- package/vendor/theus-arsenal/skills/forja-personas/references/output-template.md +0 -166
- package/vendor/theus-arsenal/skills/fundamentos-animacion/SKILL.md +0 -296
- package/vendor/theus-arsenal/skills/generacion-iconos-ios/SKILL.md +0 -156
- package/vendor/theus-arsenal/skills/generacion-iconos-ios/scripts/generate_icons.swift +0 -258
- package/vendor/theus-arsenal/skills/generacion-iconos-ios/scripts/iconify_gen.sh +0 -235
- package/vendor/theus-arsenal/skills/gestion-excepciones-logisticas/SKILL.md +0 -208
- package/vendor/theus-arsenal/skills/gestion-transportistas/SKILL.md +0 -204
- package/vendor/theus-arsenal/skills/guia-adopcion-ml/SKILL.md +0 -64
- package/vendor/theus-arsenal/skills/harness-agente-autonomo/SKILL.md +0 -252
- package/vendor/theus-arsenal/skills/harness-eval-clinico/SKILL.md +0 -212
- package/vendor/theus-arsenal/skills/harness-evaluacion/SKILL.md +0 -296
- package/vendor/theus-arsenal/skills/harness-generador-evaluador/SKILL.md +0 -254
- package/vendor/theus-arsenal/skills/homelab-diseno-red/SKILL.md +0 -120
- package/vendor/theus-arsenal/skills/homelab-dns-pihole/SKILL.md +0 -264
- package/vendor/theus-arsenal/skills/homelab-preparacion-red/SKILL.md +0 -144
- package/vendor/theus-arsenal/skills/homelab-segmentacion-vlan/SKILL.md +0 -307
- package/vendor/theus-arsenal/skills/homelab-vpn-wireguard/SKILL.md +0 -299
- package/vendor/theus-arsenal/skills/ingenieria-agentica/SKILL.md +0 -96
- package/vendor/theus-arsenal/skills/inspeccion-animaciones-blender/SKILL.md +0 -164
- package/vendor/theus-arsenal/skills/instaladores-python/SKILL.md +0 -820
- package/vendor/theus-arsenal/skills/integracion-jira/SKILL.md +0 -307
- package/vendor/theus-arsenal/skills/inteligencia-leads/SKILL.md +0 -312
- package/vendor/theus-arsenal/skills/inteligencia-leads/agents/agente-enriquecimiento.md +0 -87
- package/vendor/theus-arsenal/skills/inteligencia-leads/agents/mapeador-mutuos.md +0 -76
- package/vendor/theus-arsenal/skills/inteligencia-leads/agents/puntuador-senales.md +0 -60
- package/vendor/theus-arsenal/skills/inteligencia-leads/agents/redactor-outreach.md +0 -102
- package/vendor/theus-arsenal/skills/inteligencia-mercados-prediccion/SKILL.md +0 -53
- package/vendor/theus-arsenal/skills/introspeccion-agente/SKILL.md +0 -150
- package/vendor/theus-arsenal/skills/inventario-skills/SKILL.md +0 -194
- package/vendor/theus-arsenal/skills/inventario-skills/scripts/quick-diff.sh +0 -87
- package/vendor/theus-arsenal/skills/inventario-skills/scripts/save-results.sh +0 -57
- package/vendor/theus-arsenal/skills/inventario-skills/scripts/scan.sh +0 -170
- package/vendor/theus-arsenal/skills/investigacion-mercado/SKILL.md +0 -87
- package/vendor/theus-arsenal/skills/investigacion-oraculos-prediccion/SKILL.md +0 -59
- package/vendor/theus-arsenal/skills/investigacion-profunda/SKILL.md +0 -161
- package/vendor/theus-arsenal/skills/keccak256-nodejs/SKILL.md +0 -100
- package/vendor/theus-arsenal/skills/libro-decisiones-recursivo/SKILL.md +0 -82
- package/vendor/theus-arsenal/skills/lienzo-planes/SKILL.md +0 -111
- package/vendor/theus-arsenal/skills/limpieza-configuracion/SKILL.md +0 -116
- package/vendor/theus-arsenal/skills/logistica-inversa-devoluciones/SKILL.md +0 -241
- package/vendor/theus-arsenal/skills/manejo-errores/SKILL.md +0 -375
- package/vendor/theus-arsenal/skills/materiales-inversores/SKILL.md +0 -101
- package/vendor/theus-arsenal/skills/memoria-por-proyecto/SKILL.md +0 -170
- package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/forget.mjs +0 -44
- package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/info.mjs +0 -24
- package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/init.mjs +0 -152
- package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/list.mjs +0 -40
- package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/migrate.mjs +0 -214
- package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/resume.mjs +0 -36
- package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/save.mjs +0 -210
- package/vendor/theus-arsenal/skills/memoria-por-proyecto/commands/shared.mjs +0 -402
- package/vendor/theus-arsenal/skills/memoria-por-proyecto/hooks/session-start.mjs +0 -238
- package/vendor/theus-arsenal/skills/metodologia-benchmarks/SKILL.md +0 -131
- package/vendor/theus-arsenal/skills/migraciones-bd/SKILL.md +0 -430
- package/vendor/theus-arsenal/skills/modelos-fundacionales-en-dispositivo/SKILL.md +0 -244
- package/vendor/theus-arsenal/skills/modo-seguro/SKILL.md +0 -86
- package/vendor/theus-arsenal/skills/motion-avanzado/SKILL.md +0 -592
- package/vendor/theus-arsenal/skills/motor-de-contenido/SKILL.md +0 -136
- package/vendor/theus-arsenal/skills/no-conformidades-calidad/SKILL.md +0 -249
- package/vendor/theus-arsenal/skills/onboarding-codigo/SKILL.md +0 -244
- package/vendor/theus-arsenal/skills/operaciones-agentes-empresariales/SKILL.md +0 -51
- package/vendor/theus-arsenal/skills/operaciones-conocimiento/SKILL.md +0 -159
- package/vendor/theus-arsenal/skills/operaciones-correo/SKILL.md +0 -123
- package/vendor/theus-arsenal/skills/operaciones-facturacion/SKILL.md +0 -142
- package/vendor/theus-arsenal/skills/operaciones-flujo-proyectos/SKILL.md +0 -110
- package/vendor/theus-arsenal/skills/operaciones-github/SKILL.md +0 -143
- package/vendor/theus-arsenal/skills/operaciones-google-workspace/SKILL.md +0 -100
- package/vendor/theus-arsenal/skills/operaciones-investigacion/SKILL.md +0 -124
- package/vendor/theus-arsenal/skills/operaciones-mensajes/SKILL.md +0 -103
- package/vendor/theus-arsenal/skills/operaciones-terminal/SKILL.md +0 -110
- package/vendor/theus-arsenal/skills/optimizacion-benchmark/SKILL.md +0 -70
- package/vendor/theus-arsenal/skills/optimizacion-costos-llm/SKILL.md +0 -182
- package/vendor/theus-arsenal/skills/optimizador-conexiones/SKILL.md +0 -191
- package/vendor/theus-arsenal/skills/optimizador-paralelismo/SKILL.md +0 -75
- package/vendor/theus-arsenal/skills/optimizador-prompts/SKILL.md +0 -374
- package/vendor/theus-arsenal/skills/orq-agregar-funcionalidad/SKILL.md +0 -37
- package/vendor/theus-arsenal/skills/orq-cambiar-funcionalidad/SKILL.md +0 -36
- package/vendor/theus-arsenal/skills/orq-construir-mvp/SKILL.md +0 -38
- package/vendor/theus-arsenal/skills/orq-corregir-defecto/SKILL.md +0 -36
- package/vendor/theus-arsenal/skills/orq-pipeline/SKILL.md +0 -134
- package/vendor/theus-arsenal/skills/orq-refinar-codigo/SKILL.md +0 -49
- package/vendor/theus-arsenal/skills/orquestacion-equipos-agentes/SKILL.md +0 -117
- package/vendor/theus-arsenal/skills/pagos-agentes-x402/SKILL.md +0 -237
- package/vendor/theus-arsenal/skills/patrones-angular/SKILL.md +0 -153
- package/vendor/theus-arsenal/skills/patrones-angular/references/angular-animations.md +0 -160
- package/vendor/theus-arsenal/skills/patrones-angular/references/angular-aria.md +0 -410
- package/vendor/theus-arsenal/skills/patrones-angular/references/cli.md +0 -86
- package/vendor/theus-arsenal/skills/patrones-angular/references/component-harnesses.md +0 -59
- package/vendor/theus-arsenal/skills/patrones-angular/references/component-styling.md +0 -91
- package/vendor/theus-arsenal/skills/patrones-angular/references/components.md +0 -117
- package/vendor/theus-arsenal/skills/patrones-angular/references/creating-services.md +0 -97
- package/vendor/theus-arsenal/skills/patrones-angular/references/data-resolvers.md +0 -69
- package/vendor/theus-arsenal/skills/patrones-angular/references/define-routes.md +0 -67
- package/vendor/theus-arsenal/skills/patrones-angular/references/defining-providers.md +0 -72
- package/vendor/theus-arsenal/skills/patrones-angular/references/di-fundamentals.md +0 -120
- package/vendor/theus-arsenal/skills/patrones-angular/references/e2e-testing.md +0 -56
- package/vendor/theus-arsenal/skills/patrones-angular/references/effects.md +0 -83
- package/vendor/theus-arsenal/skills/patrones-angular/references/hierarchical-injectors.md +0 -43
- package/vendor/theus-arsenal/skills/patrones-angular/references/host-elements.md +0 -80
- package/vendor/theus-arsenal/skills/patrones-angular/references/injection-context.md +0 -63
- package/vendor/theus-arsenal/skills/patrones-angular/references/inputs.md +0 -101
- package/vendor/theus-arsenal/skills/patrones-angular/references/linked-signal.md +0 -59
- package/vendor/theus-arsenal/skills/patrones-angular/references/loading-strategies.md +0 -61
- package/vendor/theus-arsenal/skills/patrones-angular/references/mcp.md +0 -67
- package/vendor/theus-arsenal/skills/patrones-angular/references/navigate-to-routes.md +0 -69
- package/vendor/theus-arsenal/skills/patrones-angular/references/outputs.md +0 -86
- package/vendor/theus-arsenal/skills/patrones-angular/references/reactive-forms.md +0 -122
- package/vendor/theus-arsenal/skills/patrones-angular/references/rendering-strategies.md +0 -44
- package/vendor/theus-arsenal/skills/patrones-angular/references/resource.md +0 -77
- package/vendor/theus-arsenal/skills/patrones-angular/references/route-animations.md +0 -56
- package/vendor/theus-arsenal/skills/patrones-angular/references/route-guards.md +0 -52
- package/vendor/theus-arsenal/skills/patrones-angular/references/router-lifecycle.md +0 -45
- package/vendor/theus-arsenal/skills/patrones-angular/references/router-testing.md +0 -87
- package/vendor/theus-arsenal/skills/patrones-angular/references/show-routes-with-outlets.md +0 -68
- package/vendor/theus-arsenal/skills/patrones-angular/references/signal-forms.md +0 -795
- package/vendor/theus-arsenal/skills/patrones-angular/references/signals-overview.md +0 -94
- package/vendor/theus-arsenal/skills/patrones-angular/references/tailwind-css.md +0 -69
- package/vendor/theus-arsenal/skills/patrones-angular/references/template-driven-forms.md +0 -114
- package/vendor/theus-arsenal/skills/patrones-angular/references/testing-fundamentals.md +0 -65
- package/vendor/theus-arsenal/skills/patrones-animacion/SKILL.md +0 -432
- package/vendor/theus-arsenal/skills/patrones-backend/SKILL.md +0 -560
- package/vendor/theus-arsenal/skills/patrones-cdss-clinico/SKILL.md +0 -249
- package/vendor/theus-arsenal/skills/patrones-cisco-ios/SKILL.md +0 -148
- package/vendor/theus-arsenal/skills/patrones-clickhouse/SKILL.md +0 -443
- package/vendor/theus-arsenal/skills/patrones-compose-multiplatform/SKILL.md +0 -298
- package/vendor/theus-arsenal/skills/patrones-dart-flutter/SKILL.md +0 -566
- package/vendor/theus-arsenal/skills/patrones-despliegue/SKILL.md +0 -426
- package/vendor/theus-arsenal/skills/patrones-django/SKILL.md +0 -739
- package/vendor/theus-arsenal/skills/patrones-django-celery/SKILL.md +0 -456
- package/vendor/theus-arsenal/skills/patrones-docker/SKILL.md +0 -363
- package/vendor/theus-arsenal/skills/patrones-dotnet/SKILL.md +0 -321
- package/vendor/theus-arsenal/skills/patrones-emr-clinico/SKILL.md +0 -168
- package/vendor/theus-arsenal/skills/patrones-fastapi/SKILL.md +0 -513
- package/vendor/theus-arsenal/skills/patrones-frontend/SKILL.md +0 -655
- package/vendor/theus-arsenal/skills/patrones-go/SKILL.md +0 -674
- package/vendor/theus-arsenal/skills/patrones-jpa/SKILL.md +0 -156
- package/vendor/theus-arsenal/skills/patrones-kotlin/SKILL.md +0 -717
- package/vendor/theus-arsenal/skills/patrones-kotlin-exposed/SKILL.md +0 -724
- package/vendor/theus-arsenal/skills/patrones-kotlin-ktor/SKILL.md +0 -694
- package/vendor/theus-arsenal/skills/patrones-kubernetes/SKILL.md +0 -754
- package/vendor/theus-arsenal/skills/patrones-laravel/SKILL.md +0 -414
- package/vendor/theus-arsenal/skills/patrones-mcp/SKILL.md +0 -66
- package/vendor/theus-arsenal/skills/patrones-mysql/SKILL.md +0 -420
- package/vendor/theus-arsenal/skills/patrones-nestjs/SKILL.md +0 -229
- package/vendor/theus-arsenal/skills/patrones-nextjs/SKILL.md +0 -56
- package/vendor/theus-arsenal/skills/patrones-nuxt4/SKILL.md +0 -99
- package/vendor/theus-arsenal/skills/patrones-perl/SKILL.md +0 -508
- package/vendor/theus-arsenal/skills/patrones-postgres/SKILL.md +0 -141
- package/vendor/theus-arsenal/skills/patrones-prisma/SKILL.md +0 -399
- package/vendor/theus-arsenal/skills/patrones-python/SKILL.md +0 -750
- package/vendor/theus-arsenal/skills/patrones-pytorch/SKILL.md +0 -400
- package/vendor/theus-arsenal/skills/patrones-quarkus/SKILL.md +0 -729
- package/vendor/theus-arsenal/skills/patrones-react/SKILL.md +0 -339
- package/vendor/theus-arsenal/skills/patrones-react-native/SKILL.md +0 -325
- package/vendor/theus-arsenal/skills/patrones-redis/SKILL.md +0 -401
- package/vendor/theus-arsenal/skills/patrones-rust/SKILL.md +0 -504
- package/vendor/theus-arsenal/skills/patrones-springboot/SKILL.md +0 -314
- package/vendor/theus-arsenal/skills/patrones-swiftui/SKILL.md +0 -261
- package/vendor/theus-arsenal/skills/patrones-tinystruct/SKILL.md +0 -281
- package/vendor/theus-arsenal/skills/patrones-tinystruct/references/architecture.md +0 -90
- package/vendor/theus-arsenal/skills/patrones-tinystruct/references/data-handling.md +0 -60
- package/vendor/theus-arsenal/skills/patrones-tinystruct/references/database.md +0 -99
- package/vendor/theus-arsenal/skills/patrones-tinystruct/references/routing.md +0 -64
- package/vendor/theus-arsenal/skills/patrones-tinystruct/references/system-usage.md +0 -97
- package/vendor/theus-arsenal/skills/patrones-tinystruct/references/testing.md +0 -72
- package/vendor/theus-arsenal/skills/patrones-vite/SKILL.md +0 -449
- package/vendor/theus-arsenal/skills/patrones-vue/SKILL.md +0 -469
- package/vendor/theus-arsenal/skills/persistencia-actores-swift/SKILL.md +0 -148
- package/vendor/theus-arsenal/skills/pipeline-opensource/SKILL.md +0 -254
- package/vendor/theus-arsenal/skills/planificacion-demanda-inventario/SKILL.md +0 -236
- package/vendor/theus-arsenal/skills/planificador-trades-prediccion/SKILL.md +0 -60
- package/vendor/theus-arsenal/skills/plano-tecnico/SKILL.md +0 -102
- package/vendor/theus-arsenal/skills/presentaciones-html/SKILL.md +0 -189
- package/vendor/theus-arsenal/skills/presentaciones-html/STYLE_PRESETS.md +0 -330
- package/vendor/theus-arsenal/skills/presentaciones-html/animation-patterns.md +0 -122
- package/vendor/theus-arsenal/skills/presentaciones-html/html-template.md +0 -419
- package/vendor/theus-arsenal/skills/presentaciones-html/scripts/export-pdf.sh +0 -418
- package/vendor/theus-arsenal/skills/presentaciones-html/scripts/extract-pptx.py +0 -96
- package/vendor/theus-arsenal/skills/presentaciones-html/viewport-base.css +0 -153
- package/vendor/theus-arsenal/skills/presupuesto-contexto/SKILL.md +0 -263
- package/vendor/theus-arsenal/skills/procesamiento-documentos-nutrient/SKILL.md +0 -168
- package/vendor/theus-arsenal/skills/programacion-produccion/SKILL.md +0 -220
- package/vendor/theus-arsenal/skills/publicacion-cruzada/SKILL.md +0 -117
- package/vendor/theus-arsenal/skills/publicador-social/SKILL.md +0 -121
- package/vendor/theus-arsenal/skills/puerta-de-entrega/SKILL.md +0 -164
- package/vendor/theus-arsenal/skills/puerta-de-entrega/hooks/puerta-entrega.py +0 -242
- package/vendor/theus-arsenal/skills/pulir-interfaces/SKILL.md +0 -126
- package/vendor/theus-arsenal/skills/qa-navegador/SKILL.md +0 -103
- package/vendor/theus-arsenal/skills/ranking-grafo-social/SKILL.md +0 -153
- package/vendor/theus-arsenal/skills/recuperacion-iterativa/SKILL.md +0 -236
- package/vendor/theus-arsenal/skills/redaccion-articulos/SKILL.md +0 -81
- package/vendor/theus-arsenal/skills/regex-vs-llm/SKILL.md +0 -221
- package/vendor/theus-arsenal/skills/regresion-codigo-ia/SKILL.md +0 -388
- package/vendor/theus-arsenal/skills/rendimiento-react/SKILL.md +0 -567
- package/vendor/theus-arsenal/skills/revision-codigo-flutter-dart/SKILL.md +0 -442
- package/vendor/theus-arsenal/skills/revision-literatura-cientifica/SKILL.md +0 -191
- package/vendor/theus-arsenal/skills/revision-multiperspectiva/SKILL.md +0 -302
- package/vendor/theus-arsenal/skills/revision-riesgo-prediccion/SKILL.md +0 -56
- package/vendor/theus-arsenal/skills/revision-seguridad/SKILL.md +0 -505
- package/vendor/theus-arsenal/skills/revision-seguridad/cloud-infrastructure-security.md +0 -361
- package/vendor/theus-arsenal/skills/runtime-bun/SKILL.md +0 -83
- package/vendor/theus-arsenal/skills/salud-codigo-codescene/SKILL.md +0 -163
- package/vendor/theus-arsenal/skills/salud-interfaces-red/SKILL.md +0 -143
- package/vendor/theus-arsenal/skills/seguimiento-costos/SKILL.md +0 -122
- package/vendor/theus-arsenal/skills/seguridad-agentes-trading/SKILL.md +0 -145
- package/vendor/theus-arsenal/skills/seguridad-amm-defi/SKILL.md +0 -166
- package/vendor/theus-arsenal/skills/seguridad-django/SKILL.md +0 -648
- package/vendor/theus-arsenal/skills/seguridad-laravel/SKILL.md +0 -945
- package/vendor/theus-arsenal/skills/seguridad-perl/SKILL.md +0 -507
- package/vendor/theus-arsenal/skills/seguridad-quarkus/SKILL.md +0 -474
- package/vendor/theus-arsenal/skills/seguridad-springboot/SKILL.md +0 -279
- package/vendor/theus-arsenal/skills/seo/SKILL.md +0 -166
- package/vendor/theus-arsenal/skills/sistema-diseno/SKILL.md +0 -81
- package/vendor/theus-arsenal/skills/sistema-operativo-agentico/SKILL.md +0 -375
- package/vendor/theus-arsenal/skills/sistemas-latencia-critica/SKILL.md +0 -65
- package/vendor/theus-arsenal/skills/tdd-django/SKILL.md +0 -735
- package/vendor/theus-arsenal/skills/tdd-laravel/SKILL.md +0 -673
- package/vendor/theus-arsenal/skills/tdd-quarkus/SKILL.md +0 -817
- package/vendor/theus-arsenal/skills/tdd-springboot/SKILL.md +0 -165
- package/vendor/theus-arsenal/skills/testing-cpp/SKILL.md +0 -328
- package/vendor/theus-arsenal/skills/testing-csharp/SKILL.md +0 -321
- package/vendor/theus-arsenal/skills/testing-e2e/SKILL.md +0 -325
- package/vendor/theus-arsenal/skills/testing-go/SKILL.md +0 -719
- package/vendor/theus-arsenal/skills/testing-kotlin/SKILL.md +0 -829
- package/vendor/theus-arsenal/skills/testing-perl/SKILL.md +0 -479
- package/vendor/theus-arsenal/skills/testing-protocolos-di-swift/SKILL.md +0 -196
- package/vendor/theus-arsenal/skills/testing-python/SKILL.md +0 -815
- package/vendor/theus-arsenal/skills/testing-react/SKILL.md +0 -421
- package/vendor/theus-arsenal/skills/testing-rust/SKILL.md +0 -506
- package/vendor/theus-arsenal/skills/tours-de-codigo/SKILL.md +0 -252
- package/vendor/theus-arsenal/skills/traduccion-documentos-visado/SKILL.md +0 -121
- package/vendor/theus-arsenal/skills/ui-a-vue/SKILL.md +0 -141
- package/vendor/theus-arsenal/skills/validacion-config-red/SKILL.md +0 -211
- package/vendor/theus-arsenal/skills/verificacion-django/SKILL.md +0 -470
- package/vendor/theus-arsenal/skills/verificacion-factual/SKILL.md +0 -142
- package/vendor/theus-arsenal/skills/verificacion-laravel/SKILL.md +0 -184
- package/vendor/theus-arsenal/skills/verificacion-quarkus/SKILL.md +0 -485
- package/vendor/theus-arsenal/skills/verificacion-springboot/SKILL.md +0 -237
- package/vendor/theus-arsenal/skills/videodb/SKILL.md +0 -374
- package/vendor/theus-arsenal/skills/videodb/reference/api-reference.md +0 -550
- package/vendor/theus-arsenal/skills/videodb/reference/capture-reference.md +0 -407
- package/vendor/theus-arsenal/skills/videodb/reference/capture.md +0 -101
- package/vendor/theus-arsenal/skills/videodb/reference/editor.md +0 -443
- package/vendor/theus-arsenal/skills/videodb/reference/generative.md +0 -331
- package/vendor/theus-arsenal/skills/videodb/reference/rtstream-reference.md +0 -564
- package/vendor/theus-arsenal/skills/videodb/reference/rtstream.md +0 -65
- package/vendor/theus-arsenal/skills/videodb/reference/search.md +0 -230
- package/vendor/theus-arsenal/skills/videodb/reference/streaming.md +0 -406
- package/vendor/theus-arsenal/skills/videodb/reference/use-cases.md +0 -118
- package/vendor/theus-arsenal/skills/videodb/scripts/ws_listener.py +0 -279
- package/vendor/theus-arsenal/skills/videos-manim/SKILL.md +0 -91
- package/vendor/theus-arsenal/skills/videos-manim/assets/network_graph_scene.py +0 -52
- package/vendor/theus-arsenal/skills/vigilancia-canary/SKILL.md +0 -108
- package/vendor/theus-arsenal/skills/voz-de-marca/SKILL.md +0 -106
|
@@ -1,265 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Aplica el flujo TDD para React. Primero se escriben tests con React Testing Library (enfocados en comportamiento, con la accesibilidad primero) y luego se implementan los componentes. Detecta Vitest o Jest y verifica los objetivos de cobertura.
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Comando de TDD para React
|
|
6
|
-
|
|
7
|
-
Este comando aplica desarrollo guiado por tests (TDD) para React usando React Testing Library más Vitest o Jest, detectados en tiempo de ejecución.
|
|
8
|
-
|
|
9
|
-
## Qué hace este comando
|
|
10
|
-
|
|
11
|
-
1. **Definir la firma del componente**: crea el esqueleto del componente, el tipo de props y los exports
|
|
12
|
-
2. **Escribir primero los tests de comportamiento**: queries de RTL (rol primero), `userEvent`, MSW para la red — ROJO
|
|
13
|
-
3. **Ejecutar los tests**: verificar que fallan por la razón correcta
|
|
14
|
-
4. **Implementar el código mínimo**: justo lo suficiente para pasar — VERDE
|
|
15
|
-
5. **Refactorizar**: mejorar manteniendo los tests en verde
|
|
16
|
-
6. **Verificar la cobertura**: alcanzar los objetivos de [rules/react/testing.md](../rules/react/testing.md)
|
|
17
|
-
|
|
18
|
-
## Cuándo usarlo
|
|
19
|
-
|
|
20
|
-
Usa `/test-react` cuando:
|
|
21
|
-
|
|
22
|
-
- Implementes un componente de React o un hook personalizado nuevo
|
|
23
|
-
- Añadas cobertura de tests a un componente sin tests
|
|
24
|
-
- Corrijas un bug (primero escribe un test que falle y lo reproduzca)
|
|
25
|
-
- Construyas formularios, máquinas de estado o UI crítica en accesibilidad
|
|
26
|
-
- Te estés incorporando al flujo de RTL + Vitest/Jest
|
|
27
|
-
|
|
28
|
-
## Ciclo TDD
|
|
29
|
-
|
|
30
|
-
```
|
|
31
|
-
ROJO -> Escribir un test que falle para el siguiente comportamiento
|
|
32
|
-
VERDE -> Implementar el código mínimo del componente para pasar
|
|
33
|
-
REFACTOR -> Mejorar el componente; los tests siguen en verde
|
|
34
|
-
REPETIR -> Siguiente comportamiento
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
## Detección del runner
|
|
38
|
-
|
|
39
|
-
```bash
|
|
40
|
-
test -f vitest.config.ts -o -f vitest.config.js -o -f vite.config.ts # Vitest
|
|
41
|
-
grep -l '"jest"' package.json # Jest
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
Prefiere Vitest para proyectos nuevos basados en Vite; respeta Jest en configuraciones existentes.
|
|
45
|
-
|
|
46
|
-
## Sesión de ejemplo
|
|
47
|
-
|
|
48
|
-
````text
|
|
49
|
-
Usuario: /test-react Necesito un componente SearchInput con búsqueda con debounce
|
|
50
|
-
|
|
51
|
-
Agente:
|
|
52
|
-
# Sesión TDD: SearchInput
|
|
53
|
-
|
|
54
|
-
## Paso 1: Definir la firma
|
|
55
|
-
|
|
56
|
-
```tsx
|
|
57
|
-
// src/components/SearchInput.tsx
|
|
58
|
-
type Props = {
|
|
59
|
-
onSearch: (query: string) => void;
|
|
60
|
-
placeholder?: string;
|
|
61
|
-
debounceMs?: number;
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
export function SearchInput({ onSearch, placeholder, debounceMs }: Props) {
|
|
65
|
-
throw new Error("no implementado");
|
|
66
|
-
}
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
## Paso 2: Escribir los tests de comportamiento (ROJO)
|
|
70
|
-
|
|
71
|
-
```tsx
|
|
72
|
-
// src/components/SearchInput.test.tsx
|
|
73
|
-
import { describe, expect, test, vi } from "vitest";
|
|
74
|
-
import { render, screen } from "@testing-library/react";
|
|
75
|
-
import userEvent from "@testing-library/user-event";
|
|
76
|
-
import { SearchInput } from "./SearchInput";
|
|
77
|
-
|
|
78
|
-
describe("SearchInput", () => {
|
|
79
|
-
test("se renderiza con placeholder", () => {
|
|
80
|
-
render(<SearchInput onSearch={() => {}} placeholder="Buscar usuarios" />);
|
|
81
|
-
expect(screen.getByPlaceholderText("Buscar usuarios")).toBeInTheDocument();
|
|
82
|
-
});
|
|
83
|
-
|
|
84
|
-
test("llama a onSearch después de escribir", async () => {
|
|
85
|
-
vi.useFakeTimers();
|
|
86
|
-
const user = userEvent.setup({ advanceTimers: vi.advanceTimersByTime });
|
|
87
|
-
const onSearch = vi.fn();
|
|
88
|
-
render(<SearchInput onSearch={onSearch} debounceMs={300} />);
|
|
89
|
-
|
|
90
|
-
await user.type(screen.getByRole("textbox"), "alice");
|
|
91
|
-
|
|
92
|
-
expect(onSearch).not.toHaveBeenCalled(); // antes del debounce
|
|
93
|
-
vi.advanceTimersByTime(300);
|
|
94
|
-
expect(onSearch).toHaveBeenCalledWith("alice"); // después del debounce
|
|
95
|
-
|
|
96
|
-
vi.useRealTimers();
|
|
97
|
-
});
|
|
98
|
-
|
|
99
|
-
test("no llama a onSearch cuando la escritura pausa y luego continúa", async () => {
|
|
100
|
-
vi.useFakeTimers();
|
|
101
|
-
const user = userEvent.setup({ advanceTimers: vi.advanceTimersByTime });
|
|
102
|
-
const onSearch = vi.fn();
|
|
103
|
-
render(<SearchInput onSearch={onSearch} debounceMs={300} />);
|
|
104
|
-
|
|
105
|
-
await user.type(screen.getByRole("textbox"), "ali");
|
|
106
|
-
vi.advanceTimersByTime(200); // a mitad del debounce
|
|
107
|
-
await user.type(screen.getByRole("textbox"), "ce");
|
|
108
|
-
vi.advanceTimersByTime(300);
|
|
109
|
-
|
|
110
|
-
expect(onSearch).toHaveBeenCalledTimes(1);
|
|
111
|
-
expect(onSearch).toHaveBeenCalledWith("alice");
|
|
112
|
-
|
|
113
|
-
vi.useRealTimers();
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
test("es alcanzable por teclado y accesible", () => {
|
|
117
|
-
render(<SearchInput onSearch={() => {}} />);
|
|
118
|
-
const input = screen.getByRole("textbox");
|
|
119
|
-
input.focus();
|
|
120
|
-
expect(input).toHaveFocus();
|
|
121
|
-
});
|
|
122
|
-
});
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
## Paso 3: Ejecutar los tests — verificar que FALLAN
|
|
126
|
-
|
|
127
|
-
```bash
|
|
128
|
-
$ vitest run src/components/SearchInput.test.tsx
|
|
129
|
-
|
|
130
|
-
× src/components/SearchInput.test.tsx (4 tests) ✘ Error: no implementado
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
✓ Los tests fallan como se esperaba.
|
|
134
|
-
|
|
135
|
-
## Paso 4: Implementar el código mínimo (VERDE)
|
|
136
|
-
|
|
137
|
-
```tsx
|
|
138
|
-
import { useEffect, useState } from "react";
|
|
139
|
-
|
|
140
|
-
export function SearchInput({ onSearch, placeholder, debounceMs = 300 }: Props) {
|
|
141
|
-
const [query, setQuery] = useState("");
|
|
142
|
-
|
|
143
|
-
useEffect(() => {
|
|
144
|
-
const id = setTimeout(() => onSearch(query), debounceMs);
|
|
145
|
-
return () => clearTimeout(id);
|
|
146
|
-
}, [query, onSearch, debounceMs]);
|
|
147
|
-
|
|
148
|
-
return (
|
|
149
|
-
<input
|
|
150
|
-
type="text"
|
|
151
|
-
value={query}
|
|
152
|
-
placeholder={placeholder}
|
|
153
|
-
onChange={(e) => setQuery(e.target.value)}
|
|
154
|
-
/>
|
|
155
|
-
);
|
|
156
|
-
}
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
## Paso 5: Ejecutar los tests — verificar que PASAN
|
|
160
|
-
|
|
161
|
-
```bash
|
|
162
|
-
$ vitest run src/components/SearchInput.test.tsx
|
|
163
|
-
|
|
164
|
-
✓ src/components/SearchInput.test.tsx (4 tests) 47ms
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
## Paso 6: Cobertura
|
|
168
|
-
|
|
169
|
-
```bash
|
|
170
|
-
$ vitest run --coverage src/components/SearchInput.test.tsx
|
|
171
|
-
|
|
172
|
-
% Stmts: 100 % Branch: 100 % Funcs: 100 % Lines: 100
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
## ¡TDD completado!
|
|
176
|
-
````
|
|
177
|
-
|
|
178
|
-
## Patrones de testing
|
|
179
|
-
|
|
180
|
-
### Comportamiento, no implementación
|
|
181
|
-
|
|
182
|
-
Usa `getByRole`, `getByLabelText`, `getByText`. Evita `container.querySelector` y hacer aserciones sobre el estado del componente.
|
|
183
|
-
|
|
184
|
-
### `userEvent.setup()` por test
|
|
185
|
-
|
|
186
|
-
```tsx
|
|
187
|
-
const user = userEvent.setup();
|
|
188
|
-
await user.click(screen.getByRole("button", { name: /save/i }));
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
### MSW para la red
|
|
192
|
-
|
|
193
|
-
```tsx
|
|
194
|
-
beforeAll(() => server.listen({ onUnhandledRequest: "error" }));
|
|
195
|
-
afterEach(() => server.resetHandlers());
|
|
196
|
-
afterAll(() => server.close());
|
|
197
|
-
|
|
198
|
-
server.use(http.post("/api/users", () => HttpResponse.json({ id: "1" }, { status: 201 })));
|
|
199
|
-
```
|
|
200
|
-
|
|
201
|
-
### Hooks personalizados
|
|
202
|
-
|
|
203
|
-
```tsx
|
|
204
|
-
const { result } = renderHook(() => useCounter(0));
|
|
205
|
-
act(() => result.current.increment());
|
|
206
|
-
expect(result.current.count).toBe(1);
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
### Accesibilidad
|
|
210
|
-
|
|
211
|
-
```tsx
|
|
212
|
-
import { axe } from "vitest-axe";
|
|
213
|
-
expect(await axe(container)).toHaveNoViolations();
|
|
214
|
-
```
|
|
215
|
-
|
|
216
|
-
## Objetivos de cobertura
|
|
217
|
-
|
|
218
|
-
| Capa | Objetivo |
|
|
219
|
-
|---|---|
|
|
220
|
-
| Utilidades puras | >=90% |
|
|
221
|
-
| Hooks personalizados | >=85% |
|
|
222
|
-
| Componentes de presentación | >=80% |
|
|
223
|
-
| Componentes contenedores | >=70% |
|
|
224
|
-
| Páginas | Cubiertas aparte por E2E |
|
|
225
|
-
|
|
226
|
-
Configura los umbrales en `vitest.config.ts` / `jest.config.js` para hacerlos cumplir en CI.
|
|
227
|
-
|
|
228
|
-
## Antipatrones a evitar
|
|
229
|
-
|
|
230
|
-
- `container.querySelector(...)` — se salta las queries de accesibilidad
|
|
231
|
-
- Hacer aserciones sobre el número de renders
|
|
232
|
-
- Mockear el propio `react` (`jest.mock("react", ...)`)
|
|
233
|
-
- Mockear componentes hijos por defecto (mockea solo cuando el hijo tiene efectos secundarios pesados)
|
|
234
|
-
- Ignorar las advertencias de `act()` — señalan bugs reales
|
|
235
|
-
- Tests de snapshot de componentes renderizados (frágiles, se aprueban sin mirar) — usa diff visual con Playwright/Cypress en su lugar
|
|
236
|
-
|
|
237
|
-
## Comandos de test
|
|
238
|
-
|
|
239
|
-
```bash
|
|
240
|
-
# Vitest
|
|
241
|
-
vitest # modo watch
|
|
242
|
-
vitest run # una sola pasada
|
|
243
|
-
vitest run --coverage # con cobertura
|
|
244
|
-
vitest run path/to/file.test.tsx # un solo archivo
|
|
245
|
-
|
|
246
|
-
# Jest
|
|
247
|
-
jest --watch
|
|
248
|
-
jest --coverage
|
|
249
|
-
jest path/to/file.test.tsx
|
|
250
|
-
|
|
251
|
-
# Modo CI
|
|
252
|
-
CI=true vitest run --coverage
|
|
253
|
-
```
|
|
254
|
-
|
|
255
|
-
## Comandos relacionados
|
|
256
|
-
|
|
257
|
-
- `/build-react` — arreglar errores de build antes de ejecutar los tests
|
|
258
|
-
- `/revisar-react` — revisar después de la implementación
|
|
259
|
-
- Skill `bucle-verificacion` — bucle de verificación completo
|
|
260
|
-
|
|
261
|
-
## Relacionado
|
|
262
|
-
|
|
263
|
-
- Skills: `skills/testing-react/`, `skills/flujo-tdd/`, `skills/accesibilidad/`, `skills/testing-e2e/`
|
|
264
|
-
- Reglas: `rules/react/testing.md`
|
|
265
|
-
- Agentes: `revisor-react` (revisa la calidad de los tests), `guia-tdd` (hace cumplir el proceso TDD)
|
|
@@ -1,309 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Aplica el flujo TDD en Rust — escribe los tests primero, luego implementa y verifica cobertura 80%+ con cargo-llvm-cov.
|
|
3
|
-
argument-hint: <descripción de la función o comportamiento a implementar>
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Comando TDD para Rust
|
|
7
|
-
|
|
8
|
-
Este comando aplica la metodología de desarrollo guiado por tests (TDD) para código Rust usando `#[test]`, rstest, proptest y mockall.
|
|
9
|
-
|
|
10
|
-
## Qué hace este comando
|
|
11
|
-
|
|
12
|
-
1. **Definir tipos/traits**: Esqueleto de firmas de funciones con `todo!()`
|
|
13
|
-
2. **Escribir tests**: Crear un módulo de tests exhaustivo (ROJO)
|
|
14
|
-
3. **Ejecutar tests**: Verificar que fallan por la razón correcta
|
|
15
|
-
4. **Implementar código**: Escribir el mínimo código para pasar (VERDE)
|
|
16
|
-
5. **Refactorizar**: Mejorar manteniendo los tests en verde
|
|
17
|
-
6. **Comprobar cobertura**: Asegurar 80%+ con cargo-llvm-cov
|
|
18
|
-
|
|
19
|
-
## Cuándo usarlo
|
|
20
|
-
|
|
21
|
-
Usa `/test-rust` cuando:
|
|
22
|
-
- Implementes nuevas funciones, métodos o traits en Rust
|
|
23
|
-
- Añadas cobertura de tests a código Rust existente
|
|
24
|
-
- Corrijas bugs (escribe primero el test que falla)
|
|
25
|
-
- Construyas lógica de negocio crítica
|
|
26
|
-
- Quieras interiorizar el flujo TDD en Rust
|
|
27
|
-
|
|
28
|
-
## Ciclo TDD
|
|
29
|
-
|
|
30
|
-
```
|
|
31
|
-
ROJO -> Escribe primero un test que falla
|
|
32
|
-
VERDE -> Implementa el mínimo código para pasar
|
|
33
|
-
REFACTOR -> Mejora el código, los tests siguen en verde
|
|
34
|
-
REPITE -> Siguiente caso de test
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
## Sesión de ejemplo
|
|
38
|
-
|
|
39
|
-
````text
|
|
40
|
-
Usuario: /test-rust Necesito una función que valide el registro de usuarios
|
|
41
|
-
|
|
42
|
-
Agente:
|
|
43
|
-
# Sesión TDD: Validador de registro
|
|
44
|
-
|
|
45
|
-
## Paso 1: Definir la interfaz
|
|
46
|
-
|
|
47
|
-
```rust
|
|
48
|
-
// src/validator.rs
|
|
49
|
-
pub struct RegistrationRequest {
|
|
50
|
-
pub name: String,
|
|
51
|
-
pub email: String,
|
|
52
|
-
pub password: String,
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
pub enum ValidationResult {
|
|
56
|
-
Valid,
|
|
57
|
-
Invalid(Vec<String>),
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
pub fn validate_registration(request: &RegistrationRequest) -> ValidationResult {
|
|
61
|
-
todo!()
|
|
62
|
-
}
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
## Paso 2: Escribir tests (ROJO)
|
|
66
|
-
|
|
67
|
-
```rust
|
|
68
|
-
#[cfg(test)]
|
|
69
|
-
mod tests {
|
|
70
|
-
use super::*;
|
|
71
|
-
|
|
72
|
-
#[test]
|
|
73
|
-
fn valid_registration_returns_valid() {
|
|
74
|
-
let request = RegistrationRequest {
|
|
75
|
-
name: "Alice".into(),
|
|
76
|
-
email: "alice@example.com".into(),
|
|
77
|
-
password: "SecureP@ss1".into(),
|
|
78
|
-
};
|
|
79
|
-
assert!(matches!(validate_registration(&request), ValidationResult::Valid));
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
#[test]
|
|
83
|
-
fn blank_name_returns_invalid() {
|
|
84
|
-
let request = RegistrationRequest {
|
|
85
|
-
name: "".into(),
|
|
86
|
-
email: "alice@example.com".into(),
|
|
87
|
-
password: "SecureP@ss1".into(),
|
|
88
|
-
};
|
|
89
|
-
match validate_registration(&request) {
|
|
90
|
-
ValidationResult::Invalid(errors) => {
|
|
91
|
-
assert!(errors.contains(&"Name is required".to_string()));
|
|
92
|
-
}
|
|
93
|
-
ValidationResult::Valid => panic!("se esperaba Invalid"),
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
#[test]
|
|
98
|
-
fn invalid_email_returns_invalid() {
|
|
99
|
-
let request = RegistrationRequest {
|
|
100
|
-
name: "Alice".into(),
|
|
101
|
-
email: "not-an-email".into(),
|
|
102
|
-
password: "SecureP@ss1".into(),
|
|
103
|
-
};
|
|
104
|
-
assert!(matches!(
|
|
105
|
-
validate_registration(&request),
|
|
106
|
-
ValidationResult::Invalid(_)
|
|
107
|
-
));
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
#[test]
|
|
111
|
-
fn short_password_returns_invalid() {
|
|
112
|
-
let request = RegistrationRequest {
|
|
113
|
-
name: "Alice".into(),
|
|
114
|
-
email: "alice@example.com".into(),
|
|
115
|
-
password: "short".into(),
|
|
116
|
-
};
|
|
117
|
-
assert!(matches!(
|
|
118
|
-
validate_registration(&request),
|
|
119
|
-
ValidationResult::Invalid(_)
|
|
120
|
-
));
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
## Paso 3: Ejecutar tests — verificar que FALLAN
|
|
126
|
-
|
|
127
|
-
```bash
|
|
128
|
-
$ cargo test
|
|
129
|
-
running 4 tests
|
|
130
|
-
test tests::valid_registration_returns_valid ... FAILED (not yet implemented)
|
|
131
|
-
test tests::blank_name_returns_invalid ... FAILED
|
|
132
|
-
test tests::invalid_email_returns_invalid ... FAILED
|
|
133
|
-
test tests::short_password_returns_invalid ... FAILED
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
Los tests fallan como se esperaba (pánico por `todo!`).
|
|
137
|
-
|
|
138
|
-
## Paso 4: Implementar el mínimo código (VERDE)
|
|
139
|
-
|
|
140
|
-
```rust
|
|
141
|
-
pub fn validate_registration(request: &RegistrationRequest) -> ValidationResult {
|
|
142
|
-
let mut errors = Vec::new();
|
|
143
|
-
|
|
144
|
-
if request.name.trim().is_empty() {
|
|
145
|
-
errors.push("Name is required".into());
|
|
146
|
-
}
|
|
147
|
-
if !request.email.contains('@') {
|
|
148
|
-
errors.push("Invalid email format".into());
|
|
149
|
-
}
|
|
150
|
-
if request.password.len() < 8 {
|
|
151
|
-
errors.push("Password must be at least 8 characters".into());
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
if errors.is_empty() {
|
|
155
|
-
ValidationResult::Valid
|
|
156
|
-
} else {
|
|
157
|
-
ValidationResult::Invalid(errors)
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
## Paso 5: Ejecutar tests — verificar que PASAN
|
|
163
|
-
|
|
164
|
-
```bash
|
|
165
|
-
$ cargo test
|
|
166
|
-
running 4 tests
|
|
167
|
-
test tests::valid_registration_returns_valid ... ok
|
|
168
|
-
test tests::blank_name_returns_invalid ... ok
|
|
169
|
-
test tests::invalid_email_returns_invalid ... ok
|
|
170
|
-
test tests::short_password_returns_invalid ... ok
|
|
171
|
-
|
|
172
|
-
test result: ok. 4 passed; 0 failed
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
¡Todos los tests pasan!
|
|
176
|
-
|
|
177
|
-
## Paso 6: Comprobar cobertura
|
|
178
|
-
|
|
179
|
-
```bash
|
|
180
|
-
$ cargo llvm-cov
|
|
181
|
-
Coverage: 100.0% of lines
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
Cobertura: 100%
|
|
185
|
-
|
|
186
|
-
## ¡TDD completo!
|
|
187
|
-
````
|
|
188
|
-
|
|
189
|
-
## Patrones de tests
|
|
190
|
-
|
|
191
|
-
### Tests unitarios
|
|
192
|
-
|
|
193
|
-
```rust
|
|
194
|
-
#[cfg(test)]
|
|
195
|
-
mod tests {
|
|
196
|
-
use super::*;
|
|
197
|
-
|
|
198
|
-
#[test]
|
|
199
|
-
fn adds_two_numbers() {
|
|
200
|
-
assert_eq!(add(2, 3), 5);
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
#[test]
|
|
204
|
-
fn handles_error() -> Result<(), Box<dyn std::error::Error>> {
|
|
205
|
-
let result = parse_config(r#"port = 8080"#)?;
|
|
206
|
-
assert_eq!(result.port, 8080);
|
|
207
|
-
Ok(())
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
### Tests parametrizados con rstest
|
|
213
|
-
|
|
214
|
-
```rust
|
|
215
|
-
use rstest::{rstest, fixture};
|
|
216
|
-
|
|
217
|
-
#[rstest]
|
|
218
|
-
#[case("hello", 5)]
|
|
219
|
-
#[case("", 0)]
|
|
220
|
-
#[case("rust", 4)]
|
|
221
|
-
fn test_string_length(#[case] input: &str, #[case] expected: usize) {
|
|
222
|
-
assert_eq!(input.len(), expected);
|
|
223
|
-
}
|
|
224
|
-
```
|
|
225
|
-
|
|
226
|
-
### Tests asíncronos
|
|
227
|
-
|
|
228
|
-
```rust
|
|
229
|
-
#[tokio::test]
|
|
230
|
-
async fn fetches_data_successfully() {
|
|
231
|
-
let client = TestClient::new().await;
|
|
232
|
-
let result = client.get("/data").await;
|
|
233
|
-
assert!(result.is_ok());
|
|
234
|
-
}
|
|
235
|
-
```
|
|
236
|
-
|
|
237
|
-
### Tests basados en propiedades
|
|
238
|
-
|
|
239
|
-
```rust
|
|
240
|
-
use proptest::prelude::*;
|
|
241
|
-
|
|
242
|
-
proptest! {
|
|
243
|
-
#[test]
|
|
244
|
-
fn encode_decode_roundtrip(input in ".*") {
|
|
245
|
-
let encoded = encode(&input);
|
|
246
|
-
let decoded = decode(&encoded).unwrap();
|
|
247
|
-
assert_eq!(input, decoded);
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
```
|
|
251
|
-
|
|
252
|
-
## Comandos de cobertura
|
|
253
|
-
|
|
254
|
-
```bash
|
|
255
|
-
# Informe resumido
|
|
256
|
-
cargo llvm-cov
|
|
257
|
-
|
|
258
|
-
# Informe HTML
|
|
259
|
-
cargo llvm-cov --html
|
|
260
|
-
|
|
261
|
-
# Fallar si queda por debajo del umbral
|
|
262
|
-
cargo llvm-cov --fail-under-lines 80
|
|
263
|
-
|
|
264
|
-
# Ejecutar un test específico
|
|
265
|
-
cargo test test_name
|
|
266
|
-
|
|
267
|
-
# Ejecutar mostrando la salida
|
|
268
|
-
cargo test -- --nocapture
|
|
269
|
-
|
|
270
|
-
# Ejecutar sin detenerse en el primer fallo
|
|
271
|
-
cargo test --no-fail-fast
|
|
272
|
-
```
|
|
273
|
-
|
|
274
|
-
## Objetivos de cobertura
|
|
275
|
-
|
|
276
|
-
| Tipo de código | Objetivo |
|
|
277
|
-
|----------------|----------|
|
|
278
|
-
| Lógica de negocio crítica | 100% |
|
|
279
|
-
| API pública | 90%+ |
|
|
280
|
-
| Código general | 80%+ |
|
|
281
|
-
| Generado / bindings FFI | Excluir |
|
|
282
|
-
|
|
283
|
-
## Buenas prácticas de TDD
|
|
284
|
-
|
|
285
|
-
**SÍ:**
|
|
286
|
-
- Escribe el test PRIMERO, antes de cualquier implementación
|
|
287
|
-
- Ejecuta los tests después de cada cambio
|
|
288
|
-
- Usa `assert_eq!` en lugar de `assert!` para mensajes de error más claros
|
|
289
|
-
- Usa `?` en tests que devuelven `Result` para una salida más limpia
|
|
290
|
-
- Testea el comportamiento, no la implementación
|
|
291
|
-
- Incluye casos límite (vacío, frontera, rutas de error)
|
|
292
|
-
|
|
293
|
-
**NO:**
|
|
294
|
-
- Escribir la implementación antes de los tests
|
|
295
|
-
- Saltarte la fase ROJO
|
|
296
|
-
- Usar `#[should_panic]` cuando `Result::is_err()` sirve
|
|
297
|
-
- Usar `sleep()` en tests — usa canales o `tokio::time::pause()`
|
|
298
|
-
- Mockear todo — prefiere tests de integración cuando sea viable
|
|
299
|
-
|
|
300
|
-
## Comandos relacionados
|
|
301
|
-
|
|
302
|
-
- `/build-rust` — corregir errores de compilación
|
|
303
|
-
- `/revisar-rust` — revisar el código tras la implementación
|
|
304
|
-
- Skill `bucle-verificacion` — ejecutar el bucle completo de verificación
|
|
305
|
-
|
|
306
|
-
## Relacionados
|
|
307
|
-
|
|
308
|
-
- Skill: `skills/testing-rust/`
|
|
309
|
-
- Skill: `skills/patrones-rust/`
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Monitorea y verifica una URL desplegada después de un release — chequea estado HTTP, streams SSE, assets estáticos, errores de consola y regresiones de rendimiento. Soporta chequeo rápido, vigilancia sostenida y modo diff staging vs producción.
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Comando Vigilancia Canary
|
|
6
|
-
|
|
7
|
-
Verifica que un deploy está sano monitoreando la URL desplegada en busca de regresiones. Punto de entrada de la skill `vigilancia-canary` — carga esa skill y sigue su procedimiento completo.
|
|
8
|
-
|
|
9
|
-
## Uso
|
|
10
|
-
|
|
11
|
-
```
|
|
12
|
-
/vigilancia-canary <url> # chequeo rápido (una pasada)
|
|
13
|
-
/vigilancia-canary <url> --interval 5m --duration 2h # vigilancia sostenida
|
|
14
|
-
/vigilancia-canary --compare <url-staging> <url-produccion> # modo diff
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
## Cuándo usarlo
|
|
18
|
-
|
|
19
|
-
- Después de desplegar a producción o staging
|
|
20
|
-
- Después de hacer merge de un PR riesgoso
|
|
21
|
-
- Para verificar que un fix realmente arregló el problema
|
|
22
|
-
- Monitoreo continuo durante una ventana de lanzamiento
|
|
23
|
-
- Después de actualizar dependencias
|
|
24
|
-
|
|
25
|
-
## Qué hace
|
|
26
|
-
|
|
27
|
-
1. Carga la skill `vigilancia-canary`.
|
|
28
|
-
2. Ejecuta los chequeos sobre la URL objetivo:
|
|
29
|
-
- Estado HTTP (¿devuelve 200?)
|
|
30
|
-
- Errores de consola (solo errores nuevos respecto a la línea base)
|
|
31
|
-
- Fallos de red (llamadas a la API fallidas, respuestas 5xx)
|
|
32
|
-
- Rendimiento (LCP/CLS/INP contra la línea base)
|
|
33
|
-
- Contenido (elementos clave presentes: h1, nav, footer, CTA)
|
|
34
|
-
- Salud de la API (endpoints críticos dentro del SLA)
|
|
35
|
-
- Assets estáticos (JS, CSS, imágenes y fuentes con 2xx/3xx y content types esperados)
|
|
36
|
-
- Streams SSE (conexión y primer evento o heartbeat)
|
|
37
|
-
3. Evalúa los umbrales de alerta (critical / warning / info) definidos en la skill.
|
|
38
|
-
4. Produce el reporte canary en tabla con resultado, línea base y delta por chequeo.
|
|
39
|
-
5. En modo sostenido, repite el ciclo cada intervalo hasta agotar la duración; registra en `~/.theus/vigilancia-canary.log` y notifica si se cruza un umbral crítico.
|
|
40
|
-
|
|
41
|
-
## Salida
|
|
42
|
-
|
|
43
|
-
Un reporte en Markdown con el estado global (SALUDABLE / DEGRADADO / CAÍDO), la tabla de chequeos y el veredicto final sobre si el deploy está limpio o presenta regresiones.
|