theus-cli-linux-arm64 1.2.2 → 1.3.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/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,241 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: logistica-inversa-devoluciones
|
|
3
|
-
description: Experiencia codificada para autorización de devoluciones, recepción e inspección,
|
|
4
|
-
decisiones de disposición, procesamiento de reembolsos, detección de fraude y gestión de reclamos
|
|
5
|
-
de garantía. Incluye marcos de clasificación, economía de disposición, reconocimiento de patrones de
|
|
6
|
-
fraude y procesos de recuperación con proveedores. Úsala al gestionar devoluciones de productos,
|
|
7
|
-
logística inversa, decisiones de reembolso, detección de fraude en devoluciones o reclamos de garantía.
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Devoluciones y logística inversa
|
|
11
|
-
|
|
12
|
-
## Rol y contexto
|
|
13
|
-
|
|
14
|
-
Actúa como gerente sénior de operaciones de devoluciones con más de 15 años manejando el ciclo de vida
|
|
15
|
-
completo de devoluciones en entornos de retail, e-commerce y omnicanal. Tus responsabilidades abarcan la
|
|
16
|
-
autorización de devolución de mercancía (RMA), recepción e inspección, clasificación de condición,
|
|
17
|
-
enrutamiento de disposición, procesamiento de reembolsos y créditos, detección de fraude, recuperación
|
|
18
|
-
con proveedores (RTV) y gestión de reclamos de garantía. Los sistemas involucrados incluyen OMS (gestión
|
|
19
|
-
de pedidos), WMS (gestión de almacén), RMS (gestión de devoluciones), CRM, plataformas de detección de
|
|
20
|
-
fraude y portales de proveedores. Equilibras la satisfacción del cliente contra la protección de margen,
|
|
21
|
-
la velocidad de procesamiento contra la precisión de inspección, y la prevención de fraude contra la
|
|
22
|
-
fricción de falsos positivos al cliente.
|
|
23
|
-
|
|
24
|
-
## Cuándo usarla
|
|
25
|
-
|
|
26
|
-
- Al procesar solicitudes de devolución y determinar la elegibilidad de RMA.
|
|
27
|
-
- Al inspeccionar bienes devueltos y asignar grados de condición para la disposición.
|
|
28
|
-
- Al enrutar decisiones de disposición (restock, reacondicionar, liquidar, desechar, RTV).
|
|
29
|
-
- Al investigar patrones de fraude en devoluciones o abuso de las políticas de devolución.
|
|
30
|
-
- Al gestionar reclamos de garantía y contracargos de recuperación con proveedores.
|
|
31
|
-
|
|
32
|
-
## Cómo funciona
|
|
33
|
-
|
|
34
|
-
1. Recibe la solicitud de devolución y valida la elegibilidad contra la política (ventana de tiempo, condición, restricciones de categoría).
|
|
35
|
-
2. Emite el RMA con etiqueta prepagada o instrucciones de entrega según el valor del artículo y el motivo de devolución.
|
|
36
|
-
3. Recibe e inspecciona el artículo en el centro de devoluciones; asigna grado de condición (A a D).
|
|
37
|
-
4. Enruta a la disposición óptima según la economía de recuperación (margen de restock vs. liquidación vs. costo de desecho).
|
|
38
|
-
5. Procesa el reembolso o el intercambio según política; marca anomalías para revisión de fraude.
|
|
39
|
-
6. Agrega las devoluciones recuperables con proveedor y presenta reclamos RTV dentro de las ventanas contractuales.
|
|
40
|
-
|
|
41
|
-
## Ejemplos
|
|
42
|
-
|
|
43
|
-
- **Devolución de electrónico de alto valor**: un cliente devuelve una laptop de $1,200 alegando "defectuosa". La inspección revela daño cosmético inconsistente con el reclamo de defecto. Recorre la clasificación, la evaluación del costo de reacondicionamiento, el enrutamiento de disposición (reacondicionar y revender al 70% de recuperación vs. RTV al proveedor al 85%) y la evaluación de la bandera de fraude.
|
|
44
|
-
- **Detección de devolvedor serial**: una cuenta de cliente muestra tasa de devolución del 47% en 23 pedidos en 6 meses. Analiza el patrón contra indicadores de fraude, calcula la contribución neta de margen y recomienda acción de política (advertencia, devoluciones restringidas o marcado de cuenta).
|
|
45
|
-
- **Disputa de reclamo de garantía**: un cliente presenta un reclamo de garantía a los 11 meses de una garantía de 12 meses. El producto muestra señales de mal uso. Construye el paquete de evidencia, aplica los criterios de exclusión de garantía del fabricante y redacta la comunicación al cliente.
|
|
46
|
-
|
|
47
|
-
## Conocimiento central
|
|
48
|
-
|
|
49
|
-
### Lógica de política de devoluciones
|
|
50
|
-
|
|
51
|
-
Toda devolución empieza con la evaluación de política. El motor de política debe considerar reglas superpuestas y a veces conflictivas:
|
|
52
|
-
|
|
53
|
-
- **Ventana estándar de devolución:** típicamente 30 días desde la entrega para mercancía general. Electrónicos a menudo 15 días. Perecederos no retornables. Muebles/colchones 30-90 días con requisitos de condición específicos. Las ventanas extendidas de temporada (compras del 1 nov – 31 dic retornables hasta el 31 ene) crean un pico a mediados de enero.
|
|
54
|
-
- **Requisitos de condición:** la mayoría de las políticas exigen empaque original, todos los accesorios y sin señales de uso más allá de una inspección razonable. La "inspección razonable" es donde viven las disputas — un cliente que retiró la película protectora de la pantalla de una laptop técnicamente alteró el producto, pero es comportamiento normal de desempaque.
|
|
55
|
-
- **Recibo y comprobante de compra:** la búsqueda de la transacción de punto de venta por tarjeta de crédito, número de lealtad o teléfono ha reemplazado en gran medida los recibos en papel. Los recibos de regalo dan derecho al portador a intercambio o crédito en tienda al precio de compra, nunca reembolso en efectivo. Las devoluciones sin recibo tienen tope (típicamente $50-75 por transacción, 3 por cada 12 meses móviles) y se reembolsan al precio de venta reciente más bajo.
|
|
56
|
-
- **Cargos por reposición (restocking):** aplican a electrónicos abiertos (15%), artículos de pedido especial (20-25%) y artículos grandes/voluminosos que requieren coordinación de envío de retorno (typ.). Se eximen para productos defectuosos o errores de cumplimiento. Decidir eximir por buena voluntad requiere conciencia de margen — eximir un cargo de $45 sobre un artículo de $300 con 28% de margen cuesta más de lo que parece.
|
|
57
|
-
- **Devoluciones entre canales:** comprar en línea y devolver en tienda (BORIS) es esperado por los clientes y operacionalmente complejo. Los precios en línea pueden diferir de los de tienda. El reembolso debe coincidir con el precio de compra original, no con el precio de anaquel actual. El sistema de inventario debe aceptar la unidad de vuelta al inventario de tienda o marcarla para retorno al centro de distribución.
|
|
58
|
-
- **Devoluciones internacionales:** la elegibilidad de reintegro de aranceles (duty drawback) requiere prueba de reexportación dentro de la ventana estatutaria (típicamente 3-5 años según el país). Los costos de envío de retorno a menudo exceden el valor del producto en artículos de bajo costo — ofrece "reembolso sin retorno" cuando el envío supera el 40% del valor del producto. Las declaraciones aduaneras de bienes devueltos difieren de la documentación de exportación original.
|
|
59
|
-
- **Excepciones:** devoluciones por igualación de precio (el cliente lo encontró más barato), arrepentimiento del comprador fuera de ventana con circunstancias convincentes, productos defectuosos fuera de garantía y anulaciones por nivel de lealtad (los clientes de nivel superior obtienen ventanas extendidas y cargos eximidos) requieren marcos de juicio en lugar de reglas rígidas.
|
|
60
|
-
|
|
61
|
-
### Inspección y clasificación
|
|
62
|
-
|
|
63
|
-
Los productos devueltos requieren una clasificación consistente que impulse las decisiones de disposición. Velocidad y precisión están en tensión — una inspección visual de 30 segundos mueve volumen pero omite defectos cosméticos; una prueba funcional de 5 minutos detecta todo pero crea cuello de botella a escala:
|
|
64
|
-
|
|
65
|
-
- **Grado A (como nuevo):** empaque original intacto, todos los accesorios presentes, sin señales de uso, pasa la prueba funcional. Reponible como nuevo o "caja abierta" con recuperación de margen completa (85-100% del retail original). Tiempo objetivo de inspección: 45-90 segundos.
|
|
66
|
-
- **Grado B (bueno):** desgaste cosmético menor, empaque original quizá dañado o sin la funda exterior, todos los accesorios presentes, plenamente funcional. Reponible como "caja abierta" o "renovado" al 60-80% del retail. Puede requerir reempaque ($2-5 por unidad). Tiempo objetivo de inspección: 90-180 segundos.
|
|
67
|
-
- **Grado C (regular):** desgaste visible, rayones o daño menor. Faltan accesorios que cuestan <10% del valor de la unidad. Funcional pero cosméticamente afectado. Se vende por canales secundarios (outlet, marketplace, liquidación) al 30-50% del retail. Reacondicionamiento posible si el costo < 20% del valor recuperado.
|
|
68
|
-
- **Grado D (recuperación/partes):** no funcional, muy dañado o le faltan componentes críticos. Recuperable para partes o materiales al 5-15% del retail. Si la recuperación de partes no es viable, se enruta a reciclaje o destrucción.
|
|
69
|
-
|
|
70
|
-
Los estándares de clasificación varían por categoría. Los electrónicos de consumo requieren prueba funcional (encendido, revisión de pantalla, conectividad) agregando 2-4 minutos por unidad. La inspección de ropa se enfoca en manchas, olor, tela estirada y etiquetas faltantes — los inspectores experimentados usan la "prueba de olfato a distancia de brazo" y luz UV para detección de manchas. Los cosméticos y artículos de cuidado personal casi nunca son reponibles una vez abiertos por regulaciones de salud.
|
|
71
|
-
|
|
72
|
-
### Árboles de decisión de disposición
|
|
73
|
-
|
|
74
|
-
La disposición es donde las devoluciones recuperan valor o destruyen margen. La decisión de enrutamiento se rige por economía:
|
|
75
|
-
|
|
76
|
-
- **Reponer como nuevo:** solo Grado A con empaque completo. El producto debe pasar cualquier prueba funcional/de seguridad requerida. El reetiquetado o resellado puede desencadenar problemas regulatorios (aplicación de "usado como nuevo" por la FTC). Mejor para artículos de alto margen donde el costo de reposición ($3-8 por unidad) es trivial frente al valor recuperado.
|
|
77
|
-
- **Reempacar y vender como "caja abierta":** Grado A con empaque dañado o artículos Grado B. El costo de reempaque ($5-15 según complejidad) debe justificarse por la diferencia de margen entre caja abierta y el siguiente canal inferior. Los electrónicos y pequeños electrodomésticos son el punto óptimo.
|
|
78
|
-
- **Reacondicionar:** económicamente viable cuando el costo de reacondicionamiento < 40% del precio de venta reacondicionado, y existe un canal de venta de reacondicionados (programa de certificados, outlet del fabricante). Común para electrónicos premium, herramientas eléctricas y pequeños electrodomésticos. Requiere estación dedicada de reacondicionamiento, inventario de refacciones y capacidad de reprueba.
|
|
79
|
-
- **Liquidar:** artículos Grado C y algunos Grado B donde el reempaque/reacondicionamiento no se justifica. Los canales de liquidación incluyen subastas de tarimas (B-Stock, DirectLiquidation, Bulq), liquidadores mayoristas (precio por libra para ropa, por unidad para electrónicos) y liquidadores regionales. Tasas de recuperación: 5-20% del retail. Insight crítico: mezclar categorías en una tarima destruye valor — las tarimas de electrónicos/ropa/hogar se venden a la tasa de la categoría más baja.
|
|
80
|
-
- **Donar:** deducible de impuestos al valor justo de mercado (FMV). Más valioso que la liquidación cuando FMV > recuperación por liquidación Y la empresa tiene suficiente obligación fiscal para aprovechar la deducción. Protección de marca: restringe donaciones de productos de marca que puedan terminar en canales de descuento que erosionen el posicionamiento.
|
|
81
|
-
- **Destruir:** requerido para productos con recall, artículos falsificados encontrados en el flujo de devoluciones, productos con requisitos regulatorios de eliminación (baterías, electrónicos con cumplimiento WEEE, materiales peligrosos) y bienes de marca donde cualquier presencia en el mercado secundario sea inaceptable. Se requiere certificado de destrucción para cumplimiento y documentación fiscal.
|
|
82
|
-
|
|
83
|
-
### Detección de fraude
|
|
84
|
-
|
|
85
|
-
El fraude en devoluciones cuesta a los retailers de EE. UU. más de $24 mil millones al año. El reto es detectar sin crear fricción para clientes legítimos:
|
|
86
|
-
|
|
87
|
-
- **Wardrobing (usar y devolver):** el cliente compra ropa o accesorios, los usa para un evento y los devuelve. Indicadores: devoluciones agrupadas en fechas/eventos, residuo de desodorante, maquillaje en cuellos, tela arrugada/estirada inconsistente con "solo probado". Contramedida: inspección con luz negra para rastros cosméticos, etiquetas de seguridad RFID que el cliente no debe retirar (si falta la etiqueta, el artículo se usó).
|
|
88
|
-
- **Fraude de recibo:** usar recibos encontrados, robados o fabricados para devolver mercancía hurtada a cambio de efectivo. En declive conforme la búsqueda de recibo digital reemplaza el papel, pero aún ocurre. Contramedida: exigir identificación para todo reembolso en efectivo, emparejar la devolución con el método de pago original, limitar devoluciones sin recibo por identificación.
|
|
89
|
-
- **Fraude de intercambio (swap):** devolver un artículo falsificado, más barato o roto en el empaque de un artículo comprado. Común en electrónicos (devolver un teléfono usado en la caja de uno nuevo) y cosméticos (rellenar un envase con producto más barato). Contramedida: verificación de número de serie al retorno, verificación de peso contra el peso esperado, inspección detallada de artículos de alto valor antes de procesar el reembolso.
|
|
90
|
-
- **Devolvedores seriales:** clientes con tasas de devolución > 30% de las compras o > $5,000 en devoluciones anuales. No todos son fraudulentos — algunos son genuinamente indecisos o compran por tallas (bracketing). Segmenta por: consistencia del motivo de devolución, condición del producto al retorno, valor neto de vida tras devoluciones. Un cliente con $50K en compras y $18K en devoluciones (36%) pero $32K de ingreso neto vale más que uno con $15K en compras y cero devoluciones.
|
|
91
|
-
- **Bracketing:** ordenar intencionalmente múltiples tallas/colores con el plan de devolver la mayoría. Comportamiento de compra legítimo que se vuelve costoso a escala. Aborda con tecnología de ajuste (recomendadores de talla, prueba con RA), políticas generosas de intercambio (intercambio gratis, cargo de reposición en devolución) y educación en lugar de castigo.
|
|
92
|
-
- **Arbitraje de precio:** comprar durante promociones/descuentos y luego devolver en otra ubicación o momento por crédito a precio completo. La política debe atar el reembolso al precio de compra real sin importar el precio de venta actual. Las devoluciones entre canales son el vector principal.
|
|
93
|
-
- **Crimen organizado de retail (ORC):** operaciones coordinadas de robo-y-devolución a través de múltiples tiendas/identidades. Indicadores: devoluciones de alto valor desde múltiples identidades en la misma dirección, devoluciones de categorías comúnmente hurtadas (electrónicos, cosméticos, salud), agrupamiento geográfico. Reporta al equipo de prevención de pérdidas (LP) — esto excede las operaciones estándar de devolución.
|
|
94
|
-
|
|
95
|
-
### Recuperación con proveedores
|
|
96
|
-
|
|
97
|
-
No todas las devoluciones son culpa del cliente. Los productos defectuosos, errores de cumplimiento y problemas de calidad tienen una vía de recuperación de costo de vuelta al proveedor:
|
|
98
|
-
|
|
99
|
-
- **Devolución a proveedor (RTV):** productos defectuosos devueltos dentro de la garantía o ventana de reclamo de defecto del proveedor. Proceso: acumula unidades defectuosas (los umbrales mínimos de embarque RTV varían por proveedor, típicamente $200-500), obtén número de autorización RTV, envía a la instalación designada del proveedor, da seguimiento a la emisión del crédito. Falla común: dejar producto elegible para RTV en el almacén de devoluciones más allá de la ventana de reclamo del proveedor (a menudo 90 días desde la recepción).
|
|
100
|
-
- **Reclamos de defecto:** cuando la tasa de defectos excede el umbral del acuerdo con el proveedor (típicamente 2-5%), presenta un reclamo formal por el exceso. Requiere documentación del defecto (fotos, notas de inspección, datos de quejas de clientes agregados por SKU). Los proveedores objetarán — la calidad de tus datos determina tu recuperación.
|
|
101
|
-
- **Contracargos a proveedor:** por problemas causados por el proveedor (artículo equivocado enviado desde el CD del proveedor, productos mal etiquetados, fallas de empaque) contracarga el costo total incluyendo envío de retorno y labor de procesamiento. Requiere un programa de cumplimiento de proveedores con estándares publicados y esquemas de penalización.
|
|
102
|
-
- **Crédito vs. reemplazo vs. cancelación:** si el proveedor es solvente y receptivo, busca crédito. Si el proveedor está en el extranjero con cobranza difícil, negocia producto de reemplazo. Si el reclamo es pequeño (< $200) y el proveedor es crítico, considera cancelarlo y anotarlo en la próxima negociación de contrato.
|
|
103
|
-
|
|
104
|
-
### Gestión de garantía
|
|
105
|
-
|
|
106
|
-
Los reclamos de garantía son distintos de las devoluciones y siguen un flujo diferente:
|
|
107
|
-
|
|
108
|
-
- **Garantía vs. devolución:** una devolución es un cliente ejerciendo su derecho a revertir una compra (típicamente en 30 días, cualquier motivo). Un reclamo de garantía es un cliente reportando un defecto del producto dentro del periodo de cobertura (90 días a vida). Sistemas distintos, políticas distintas, tratamiento financiero distinto.
|
|
109
|
-
- **Obligación de fabricante vs. retailer:** el retailer suele ser responsable de la ventana de devolución. El fabricante es responsable del periodo de garantía. Zona gris: el producto "limón" que sigue fallando dentro de garantía — el cliente quiere reembolso, el fabricante ofrece reparación y el retailer queda en medio.
|
|
110
|
-
- **Garantías extendidas/planes de protección:** vendidos en el punto de venta con márgenes del 30-60%. Los reclamos contra garantías extendidas los maneja el proveedor de garantía (a menudo un tercero). El rol del retailer es facilitar el reclamo, no procesarlo. Queja común: los clientes no distinguen entre la política de devolución del retailer, la garantía del fabricante y la cobertura de garantía extendida.
|
|
111
|
-
|
|
112
|
-
## Marcos de decisión
|
|
113
|
-
|
|
114
|
-
### Enrutamiento de disposición por categoría y condición
|
|
115
|
-
|
|
116
|
-
| Categoría | Grado A | Grado B | Grado C | Grado D |
|
|
117
|
-
|---|---|---|---|---|
|
|
118
|
-
| Electrónicos de consumo | Reponer (probar primero) | Caja abierta / Renovado | Reacondicionar si ROI > 40%, si no liquidar | Recuperar partes o e-waste |
|
|
119
|
-
| Ropa | Reponer si tiene etiquetas | Reempacar / outlet | Liquidar por peso | Reciclaje textil |
|
|
120
|
-
| Hogar y muebles | Reponer | Caja abierta con descuento | Liquidar (local, evitar envío) | Donar o destruir |
|
|
121
|
-
| Salud y belleza | Reponer si sellado | Destruir (regulación) | Destruir | Destruir |
|
|
122
|
-
| Libros y medios | Reponer | Reponer (descuento) | Liquidar | Reciclar |
|
|
123
|
-
| Artículos deportivos | Reponer | Caja abierta | Reacondicionar si costo < 25% del valor | Partes o donar |
|
|
124
|
-
| Juguetes y juegos | Reponer si sellado | Caja abierta | Liquidar | Donar (si cumple seguridad) |
|
|
125
|
-
|
|
126
|
-
### Modelo de puntuación de fraude
|
|
127
|
-
|
|
128
|
-
Puntúa cada devolución 0-100. Marca para revisión en 65+, retén el reembolso en 80+:
|
|
129
|
-
|
|
130
|
-
| Señal | Puntos | Notas |
|
|
131
|
-
|---|---|---|
|
|
132
|
-
| Tasa de devolución > 30% (12 meses móviles) | +15 | Ajustada por normas de categoría |
|
|
133
|
-
| Artículo devuelto dentro de 48 h de la entrega | +5 | Podría ser bracketing legítimo |
|
|
134
|
-
| Electrónico de alto valor, número de serie no coincide | +40 | Fraude de intercambio casi seguro |
|
|
135
|
-
| Motivo de devolución cambió entre inicio y recepción | +10 | Bandera de inconsistencia |
|
|
136
|
-
| Múltiples devoluciones en la misma semana | +10 | Acumulativo con la señal de tasa |
|
|
137
|
-
| Devolución desde dirección distinta a la de envío | +10 | Devoluciones de regalo excluidas |
|
|
138
|
-
| Peso del producto difiere > 5% del esperado | +25 | Intercambio o componentes faltantes |
|
|
139
|
-
| Cuenta del cliente < 30 días de antigüedad | +10 | Riesgo de cuenta nueva |
|
|
140
|
-
| Devolución sin recibo | +15 | Mayor riesgo de fraude de recibo |
|
|
141
|
-
| Artículo en categoría de alta merma | +5 | Electrónicos, cosméticos, ropa de diseñador |
|
|
142
|
-
|
|
143
|
-
### ROI de recuperación con proveedores
|
|
144
|
-
|
|
145
|
-
Busca recuperación cuando: `(crédito esperado × probabilidad de cobro) > (costo de labor + costo de envío + costo de relación)`. Reglas prácticas:
|
|
146
|
-
|
|
147
|
-
- Reclamos > $500: siempre busca. La cuenta funciona aun con 50% de probabilidad de cobro.
|
|
148
|
-
- Reclamos $200-500: busca si el proveedor tiene un programa RTV funcional y puedes agrupar embarques.
|
|
149
|
-
- Reclamos < $200: acumula hasta alcanzar el umbral, o compénsalo contra la próxima orden de compra. No envíes unidades individuales.
|
|
150
|
-
- Proveedores en el extranjero: aumenta el umbral mínimo a $1,000. Suma 30% al tiempo esperado de procesamiento.
|
|
151
|
-
|
|
152
|
-
### Lógica de excepciones de política de devolución
|
|
153
|
-
|
|
154
|
-
Cuando una devolución cae fuera de la política estándar, evalúa en este orden:
|
|
155
|
-
|
|
156
|
-
1. **¿El producto es defectuoso?** Si sí, acepta sin importar ventana ni condición. Los productos defectuosos son problema de la empresa, no del cliente.
|
|
157
|
-
2. **¿Es un cliente de alto valor?** (Top 10% por LTV) Si sí, acepta con reembolso estándar. La matemática de retención casi siempre favorece la excepción.
|
|
158
|
-
3. **¿La solicitud es razonable para un observador neutral?** Un cliente que devuelve un abrigo de invierno en marzo que compró en noviembre (4 meses, fuera de la ventana de 30 días) es comprensible. Un cliente que devuelve un traje de baño en diciembre que compró en junio lo es menos.
|
|
159
|
-
4. **¿Cuál es el resultado de disposición?** Si el producto es reponible (Grado A), el costo de la excepción es mínimo — concédela. Si es Grado C o peor, la excepción cuesta margen real.
|
|
160
|
-
5. **¿Conceder crea riesgo de precedente?** Las excepciones únicas por circunstancias documentadas rara vez crean precedente. Las excepciones publicitadas (quejas en redes sociales) siempre lo hacen.
|
|
161
|
-
|
|
162
|
-
## Casos límite clave
|
|
163
|
-
|
|
164
|
-
Estas son situaciones donde los flujos estándar fallan. Se incluyen resúmenes breves para expandirlos en manuales específicos del proyecto si se necesita.
|
|
165
|
-
|
|
166
|
-
1. **Electrónico de alto valor con firmware borrado:** el cliente devuelve una laptop alegando defecto, pero la unidad fue restablecida de fábrica y muestra 6 meses de ciclos de batería. El dispositivo se usó extensamente y ahora se devuelve como "defectuoso" — la clasificación debe mirar más allá del estado limpio del software.
|
|
167
|
-
|
|
168
|
-
2. **Devolución de material peligroso con empaque impropio:** el cliente devuelve un producto con baterías de litio o químicos sin el empaque DOT requerido. Aceptar crea responsabilidad regulatoria; rechazar crea un problema de servicio. El producto no puede volver por el envío estándar de paquetería.
|
|
169
|
-
|
|
170
|
-
3. **Devolución transfronteriza con implicaciones aduaneras:** un cliente internacional devuelve un producto exportado con arancel pagado. El reclamo de reintegro de aranceles requiere documentación específica que el cliente no tiene. El costo de envío de retorno puede exceder el valor del producto.
|
|
171
|
-
|
|
172
|
-
4. **Devolución masiva de influencer tras crear contenido:** un influencer compra 20+ artículos, crea contenido y devuelve todos menos uno. Técnicamente dentro de política, pero el valor de marca ya se extrajo. La reposición se complica porque los videos de desempaque muestran los artículos exactos.
|
|
173
|
-
|
|
174
|
-
5. **Reclamo de garantía en producto modificado por el cliente:** el cliente reemplazó un componente del producto (p. ej., ampliar la RAM de una laptop) y luego reclama un defecto de garantía en un componente no relacionado (p. ej., falla de pantalla). La modificación puede o no anular la garantía del defecto reclamado.
|
|
175
|
-
|
|
176
|
-
6. **Devolvedor serial que también es cliente de alto valor:** cliente con $80K de gasto anual y 42% de tasa de devolución. Prohibirle devoluciones pierde un cliente rentable; aceptar el comportamiento lo alienta. Requiere segmentación matizada más allá de la simple tasa de devolución.
|
|
177
|
-
|
|
178
|
-
7. **Devolución de un producto con recall:** el cliente devuelve un producto sujeto a un recall de seguridad activo. El proceso estándar es incorrecto — los productos con recall siguen el programa de recall, no el de devoluciones. Mezclarlos crea responsabilidad y errores de reporte.
|
|
179
|
-
|
|
180
|
-
8. **Devolución con recibo de regalo donde el precio actual excede el de compra:** el receptor del regalo trae un recibo de regalo. El artículo ahora se vende $30 más caro de lo que pagó quien lo regaló. La política dice reembolsar al precio de compra, pero el cliente ve el precio de anaquel y espera ese monto.
|
|
181
|
-
|
|
182
|
-
## Patrones de comunicación
|
|
183
|
-
|
|
184
|
-
### Calibración del tono
|
|
185
|
-
|
|
186
|
-
- **Confirmación de reembolso estándar:** cálido, eficiente. Encabeza con el monto de resolución y el plazo, no con el proceso.
|
|
187
|
-
- **Negación de devolución:** empático pero claro. Explica la política específica, ofrece alternativas (intercambio, crédito en tienda, reclamo de garantía), provee ruta de escalamiento. Nunca dejes al cliente sin opciones.
|
|
188
|
-
- **Retención por investigación de fraude:** neutral, factual. "Necesitamos tiempo adicional para procesar tu devolución" — nunca digas "fraude" ni "investigación" al cliente. Provee un plazo. Las comunicaciones internas son donde documentas los indicadores de fraude.
|
|
189
|
-
- **Explicación de cargo por reposición:** transparente. Explica qué cubre el cargo (inspección, reempaque, pérdida de valor) y confirma el reembolso neto antes de procesar para que no haya sorpresas.
|
|
190
|
-
- **Reclamo RTV a proveedor:** profesional, basado en evidencia. Incluye datos de defecto, fotos, volúmenes de devolución por SKU y referencia a la sección del acuerdo que cubre reclamos de defecto.
|
|
191
|
-
|
|
192
|
-
### Plantillas clave
|
|
193
|
-
|
|
194
|
-
Las plantillas breves aparecen abajo. Adáptalas a tus flujos de fraude, experiencia de cliente y logística inversa antes de usarlas en producción.
|
|
195
|
-
|
|
196
|
-
**Aprobación de RMA:** Asunto: `Devolución aprobada — Pedido #{id_pedido}`. Provee: número de RMA, instrucciones de envío de retorno, plazo esperado de reembolso, requisitos de condición.
|
|
197
|
-
|
|
198
|
-
**Confirmación de reembolso:** encabeza con el número: "Tu reembolso de ${monto} fue procesado a tu [método de pago]. Permite [X] días hábiles."
|
|
199
|
-
|
|
200
|
-
**Aviso de retención por fraude:** "Tu devolución está siendo revisada por nuestro equipo de procesamiento. Esperamos tener una actualización en [X] días hábiles. Agradecemos tu paciencia."
|
|
201
|
-
|
|
202
|
-
## Protocolos de escalamiento
|
|
203
|
-
|
|
204
|
-
### Disparadores automáticos de escalamiento
|
|
205
|
-
|
|
206
|
-
| Disparador | Acción | Plazo |
|
|
207
|
-
|---|---|---|
|
|
208
|
-
| Valor de devolución > $5,000 (un artículo) | Aprobación de supervisor antes del reembolso | Antes de procesar |
|
|
209
|
-
| Puntuación de fraude ≥ 80 | Retener reembolso, enrutar al equipo de revisión de fraude | De inmediato |
|
|
210
|
-
| Cliente presentó un contracargo simultáneamente | Detener procesamiento, coordinar con el equipo de pagos | En 1 hora |
|
|
211
|
-
| Producto identificado con recall | Enrutar al coordinador de recall, no procesar como devolución estándar | De inmediato |
|
|
212
|
-
| Tasa de defectos de proveedor excede 5% para un SKU | Notificar a merchandising y gestión de proveedores | En 24 horas |
|
|
213
|
-
| Tercera solicitud de excepción del mismo cliente en 12 meses | Revisión gerencial antes de conceder | Antes de procesar |
|
|
214
|
-
| Sospecha de falsificación en el flujo de devoluciones | Retirar del procesamiento, fotografiar, notificar a LP y protección de marca | De inmediato |
|
|
215
|
-
| Devolución involucra producto regulado (farma, materiales peligrosos, dispositivo médico) | Enrutar al equipo de cumplimiento | De inmediato |
|
|
216
|
-
|
|
217
|
-
### Cadena de escalamiento
|
|
218
|
-
|
|
219
|
-
Nivel 1 (Asociado de Devoluciones) → Nivel 2 (Líder de Equipo, 2 horas) → Nivel 3 (Gerente de Devoluciones, 8 horas) → Nivel 4 (Director de Operaciones, 24 horas) → Nivel 5 (VP, 48+ horas o cualquier devolución de un solo artículo > $25K)
|
|
220
|
-
|
|
221
|
-
## Indicadores de desempeño
|
|
222
|
-
|
|
223
|
-
| Métrica | Meta | Bandera roja |
|
|
224
|
-
|---|---|---|
|
|
225
|
-
| Tiempo de procesamiento (recepción a reembolso) | < 48 horas | > 96 horas |
|
|
226
|
-
| Precisión de inspección (acuerdo de grado en auditoría) | > 95% | < 88% |
|
|
227
|
-
| Tasa de reposición (% devoluciones repuestas como nuevo/caja abierta) | > 45% | < 30% |
|
|
228
|
-
| Tasa de detección de fraude (fraude confirmado atrapado) | > 80% | < 60% |
|
|
229
|
-
| Tasa de falsos positivos (devoluciones legítimas marcadas) | < 3% | > 8% |
|
|
230
|
-
| Tasa de recuperación con proveedor ($ recuperado / $ elegible) | > 70% | < 45% |
|
|
231
|
-
| Satisfacción del cliente (CSAT post-devolución) | > 4.2/5.0 | < 3.5/5.0 |
|
|
232
|
-
| Costo por devolución procesada | < $8.00 | > $15.00 |
|
|
233
|
-
|
|
234
|
-
## Recursos adicionales
|
|
235
|
-
|
|
236
|
-
- Combina esta skill con tu rúbrica de clasificación, umbrales de revisión de fraude y matriz de autoridad de reembolso antes de usarla en producción.
|
|
237
|
-
- Mantén los estándares de reposición, el manejo de devoluciones de material peligroso y las reglas de liquidación cerca del equipo operativo que ejecutará las decisiones.
|
|
238
|
-
|
|
239
|
-
## Nota
|
|
240
|
-
|
|
241
|
-
Esta skill es una guía metodológica de operaciones. No sustituye la asesoría legal, fiscal, aduanera ni regulatoria; las decisiones sobre productos con recall, materiales peligrosos, devoluciones transfronterizas y productos regulados deben validarse con las personas responsables y calificadas de tu organización.
|
|
@@ -1,375 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: manejo-errores
|
|
3
|
-
description: Patrones para un manejo de errores robusto en TypeScript, Python y Go. Cubre errores tipados, error boundaries, reintentos, circuit breakers y mensajes de error de cara al usuario.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Patrones de manejo de errores
|
|
7
|
-
|
|
8
|
-
Patrones de manejo de errores consistentes y robustos para aplicaciones en producción.
|
|
9
|
-
|
|
10
|
-
## Cuándo activarla
|
|
11
|
-
|
|
12
|
-
- Al diseñar tipos de error o jerarquías de excepciones para un módulo o servicio nuevo
|
|
13
|
-
- Al añadir lógica de reintentos o circuit breakers para dependencias externas poco fiables
|
|
14
|
-
- Al revisar endpoints de API en busca de manejo de errores ausente
|
|
15
|
-
- Al implementar mensajes de error y retroalimentación de cara al usuario
|
|
16
|
-
- Al depurar fallos en cascada o errores silenciados
|
|
17
|
-
|
|
18
|
-
## Principios fundamentales
|
|
19
|
-
|
|
20
|
-
1. **Falla rápido y de forma visible** — haz aflorar los errores en el límite donde ocurren; no los entierres
|
|
21
|
-
2. **Errores tipados antes que mensajes de texto** — los errores son valores de primera clase con estructura
|
|
22
|
-
3. **Mensajes de usuario ≠ mensajes de desarrollador** — muestra texto amable al usuario, registra el contexto completo del lado del servidor
|
|
23
|
-
4. **Nunca silencies errores** — cada bloque `catch` debe manejar, relanzar o registrar
|
|
24
|
-
5. **Los errores forman parte del contrato de tu API** — documenta cada código de error que un cliente pueda recibir
|
|
25
|
-
|
|
26
|
-
## TypeScript / JavaScript
|
|
27
|
-
|
|
28
|
-
### Clases de error tipadas
|
|
29
|
-
|
|
30
|
-
```typescript
|
|
31
|
-
// Define una jerarquía de errores para tu dominio
|
|
32
|
-
export class AppError extends Error {
|
|
33
|
-
constructor(
|
|
34
|
-
message: string,
|
|
35
|
-
public readonly code: string,
|
|
36
|
-
public readonly statusCode: number = 500,
|
|
37
|
-
public readonly details?: unknown,
|
|
38
|
-
) {
|
|
39
|
-
super(message)
|
|
40
|
-
this.name = this.constructor.name
|
|
41
|
-
// Mantiene la cadena de prototipos correcta en JavaScript transpilado a ES5.
|
|
42
|
-
// Necesario para que las comprobaciones `instanceof` (p. ej., `error instanceof NotFoundError`)
|
|
43
|
-
// funcionen correctamente al extender la clase Error nativa.
|
|
44
|
-
Object.setPrototypeOf(this, new.target.prototype)
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
export class NotFoundError extends AppError {
|
|
49
|
-
constructor(resource: string, id: string) {
|
|
50
|
-
super(`${resource} not found: ${id}`, 'NOT_FOUND', 404)
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export class ValidationError extends AppError {
|
|
55
|
-
constructor(message: string, details: { field: string; message: string }[]) {
|
|
56
|
-
super(message, 'VALIDATION_ERROR', 422, details)
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
export class UnauthorizedError extends AppError {
|
|
61
|
-
constructor(reason = 'Authentication required') {
|
|
62
|
-
super(reason, 'UNAUTHORIZED', 401)
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
export class RateLimitError extends AppError {
|
|
67
|
-
constructor(public readonly retryAfterMs: number) {
|
|
68
|
-
super('Rate limit exceeded', 'RATE_LIMITED', 429)
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
### Patrón Result (estilo sin throw)
|
|
74
|
-
|
|
75
|
-
Para operaciones donde el fallo es esperado y frecuente (parseo, llamadas externas):
|
|
76
|
-
|
|
77
|
-
```typescript
|
|
78
|
-
type Result<T, E = AppError> =
|
|
79
|
-
| { ok: true; value: T }
|
|
80
|
-
| { ok: false; error: E }
|
|
81
|
-
|
|
82
|
-
function ok<T>(value: T): Result<T> {
|
|
83
|
-
return { ok: true, value }
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
function err<E>(error: E): Result<never, E> {
|
|
87
|
-
return { ok: false, error }
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
// Uso
|
|
91
|
-
async function fetchUser(id: string): Promise<Result<User>> {
|
|
92
|
-
try {
|
|
93
|
-
const user = await db.users.findUnique({ where: { id } })
|
|
94
|
-
if (!user) return err(new NotFoundError('User', id))
|
|
95
|
-
return ok(user)
|
|
96
|
-
} catch (e) {
|
|
97
|
-
return err(new AppError('Database error', 'DB_ERROR'))
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
const result = await fetchUser('abc-123')
|
|
102
|
-
if (!result.ok) {
|
|
103
|
-
// Aquí TypeScript sabe que existe result.error
|
|
104
|
-
logger.error('No se pudo obtener el usuario', { error: result.error })
|
|
105
|
-
return
|
|
106
|
-
}
|
|
107
|
-
// Aquí TypeScript sabe que existe result.value
|
|
108
|
-
console.log(result.value.email)
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
### Manejador de errores de API (Next.js / Express)
|
|
112
|
-
|
|
113
|
-
```typescript
|
|
114
|
-
import { NextRequest, NextResponse } from 'next/server'
|
|
115
|
-
|
|
116
|
-
function handleApiError(error: unknown): NextResponse {
|
|
117
|
-
// Error de aplicación conocido
|
|
118
|
-
if (error instanceof AppError) {
|
|
119
|
-
return NextResponse.json(
|
|
120
|
-
{
|
|
121
|
-
error: {
|
|
122
|
-
code: error.code,
|
|
123
|
-
message: error.message,
|
|
124
|
-
...(error.details ? { details: error.details } : {}),
|
|
125
|
-
},
|
|
126
|
-
},
|
|
127
|
-
{ status: error.statusCode },
|
|
128
|
-
)
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
// Error de validación de Zod
|
|
132
|
-
if (error instanceof z.ZodError) {
|
|
133
|
-
return NextResponse.json(
|
|
134
|
-
{
|
|
135
|
-
error: {
|
|
136
|
-
code: 'VALIDATION_ERROR',
|
|
137
|
-
message: 'Request validation failed',
|
|
138
|
-
details: error.issues.map(i => ({
|
|
139
|
-
field: i.path.join('.'),
|
|
140
|
-
message: i.message,
|
|
141
|
-
})),
|
|
142
|
-
},
|
|
143
|
-
},
|
|
144
|
-
{ status: 422 },
|
|
145
|
-
)
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
// Error inesperado — registrar detalles, devolver mensaje genérico
|
|
149
|
-
console.error('Error inesperado:', error)
|
|
150
|
-
return NextResponse.json(
|
|
151
|
-
{ error: { code: 'INTERNAL_ERROR', message: 'An unexpected error occurred' } },
|
|
152
|
-
{ status: 500 },
|
|
153
|
-
)
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
export async function POST(req: NextRequest) {
|
|
157
|
-
try {
|
|
158
|
-
// ... lógica del handler
|
|
159
|
-
} catch (error) {
|
|
160
|
-
return handleApiError(error)
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
### Error Boundary de React
|
|
166
|
-
|
|
167
|
-
```typescript
|
|
168
|
-
import { Component, ErrorInfo, ReactNode } from 'react'
|
|
169
|
-
|
|
170
|
-
interface Props {
|
|
171
|
-
fallback: ReactNode
|
|
172
|
-
onError?: (error: Error, info: ErrorInfo) => void
|
|
173
|
-
children: ReactNode
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
interface State {
|
|
177
|
-
hasError: boolean
|
|
178
|
-
error: Error | null
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
export class ErrorBoundary extends Component<Props, State> {
|
|
182
|
-
state: State = { hasError: false, error: null }
|
|
183
|
-
|
|
184
|
-
static getDerivedStateFromError(error: Error): State {
|
|
185
|
-
return { hasError: true, error }
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
componentDidCatch(error: Error, info: ErrorInfo) {
|
|
189
|
-
this.props.onError?.(error, info)
|
|
190
|
-
console.error('Error de React no manejado:', error, info)
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
render() {
|
|
194
|
-
if (this.state.hasError) return this.props.fallback
|
|
195
|
-
return this.props.children
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
// Uso
|
|
200
|
-
<ErrorBoundary fallback={<p>Algo salió mal. Por favor, recarga la página.</p>}>
|
|
201
|
-
<MyComponent />
|
|
202
|
-
</ErrorBoundary>
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
## Python
|
|
206
|
-
|
|
207
|
-
### Jerarquía de excepciones personalizada
|
|
208
|
-
|
|
209
|
-
```python
|
|
210
|
-
class AppError(Exception):
|
|
211
|
-
"""Error base de la aplicación."""
|
|
212
|
-
def __init__(self, message: str, code: str, status_code: int = 500):
|
|
213
|
-
super().__init__(message)
|
|
214
|
-
self.code = code
|
|
215
|
-
self.status_code = status_code
|
|
216
|
-
|
|
217
|
-
class NotFoundError(AppError):
|
|
218
|
-
def __init__(self, resource: str, id: str):
|
|
219
|
-
super().__init__(f"{resource} not found: {id}", "NOT_FOUND", 404)
|
|
220
|
-
|
|
221
|
-
class ValidationError(AppError):
|
|
222
|
-
def __init__(self, message: str, details: list[dict] | None = None):
|
|
223
|
-
super().__init__(message, "VALIDATION_ERROR", 422)
|
|
224
|
-
self.details = details or []
|
|
225
|
-
```
|
|
226
|
-
|
|
227
|
-
### Manejador global de excepciones en FastAPI
|
|
228
|
-
|
|
229
|
-
```python
|
|
230
|
-
from fastapi import FastAPI, Request
|
|
231
|
-
from fastapi.responses import JSONResponse
|
|
232
|
-
|
|
233
|
-
app = FastAPI()
|
|
234
|
-
|
|
235
|
-
@app.exception_handler(AppError)
|
|
236
|
-
async def app_error_handler(request: Request, exc: AppError) -> JSONResponse:
|
|
237
|
-
return JSONResponse(
|
|
238
|
-
status_code=exc.status_code,
|
|
239
|
-
content={"error": {"code": exc.code, "message": str(exc)}},
|
|
240
|
-
)
|
|
241
|
-
|
|
242
|
-
@app.exception_handler(Exception)
|
|
243
|
-
async def generic_error_handler(request: Request, exc: Exception) -> JSONResponse:
|
|
244
|
-
# Registrar todos los detalles, devolver un mensaje genérico
|
|
245
|
-
logger.exception("Error inesperado", exc_info=exc)
|
|
246
|
-
return JSONResponse(
|
|
247
|
-
status_code=500,
|
|
248
|
-
content={"error": {"code": "INTERNAL_ERROR", "message": "An unexpected error occurred"}},
|
|
249
|
-
)
|
|
250
|
-
```
|
|
251
|
-
|
|
252
|
-
## Go
|
|
253
|
-
|
|
254
|
-
### Errores centinela y envoltura de errores
|
|
255
|
-
|
|
256
|
-
```go
|
|
257
|
-
package domain
|
|
258
|
-
|
|
259
|
-
import "errors"
|
|
260
|
-
|
|
261
|
-
// Errores centinela para verificación de tipo
|
|
262
|
-
var (
|
|
263
|
-
ErrNotFound = errors.New("not found")
|
|
264
|
-
ErrUnauthorized = errors.New("unauthorized")
|
|
265
|
-
ErrConflict = errors.New("conflict")
|
|
266
|
-
)
|
|
267
|
-
|
|
268
|
-
// Envuelve los errores con contexto — nunca pierdas el original
|
|
269
|
-
func (r *UserRepository) FindByID(ctx context.Context, id string) (*User, error) {
|
|
270
|
-
user, err := r.db.QueryRow(ctx, "SELECT * FROM users WHERE id = $1", id)
|
|
271
|
-
if errors.Is(err, sql.ErrNoRows) {
|
|
272
|
-
return nil, fmt.Errorf("user %s: %w", id, ErrNotFound)
|
|
273
|
-
}
|
|
274
|
-
if err != nil {
|
|
275
|
-
return nil, fmt.Errorf("querying user %s: %w", id, err)
|
|
276
|
-
}
|
|
277
|
-
return user, nil
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
// A nivel del handler, desenvuelve para determinar la respuesta
|
|
281
|
-
func (h *Handler) GetUser(w http.ResponseWriter, r *http.Request) {
|
|
282
|
-
user, err := h.service.GetUser(r.Context(), chi.URLParam(r, "id"))
|
|
283
|
-
if err != nil {
|
|
284
|
-
switch {
|
|
285
|
-
case errors.Is(err, domain.ErrNotFound):
|
|
286
|
-
writeError(w, http.StatusNotFound, "not_found", err.Error())
|
|
287
|
-
case errors.Is(err, domain.ErrUnauthorized):
|
|
288
|
-
writeError(w, http.StatusForbidden, "forbidden", "Access denied")
|
|
289
|
-
default:
|
|
290
|
-
slog.Error("error inesperado", "err", err)
|
|
291
|
-
writeError(w, http.StatusInternalServerError, "internal_error", "An unexpected error occurred")
|
|
292
|
-
}
|
|
293
|
-
return
|
|
294
|
-
}
|
|
295
|
-
writeJSON(w, http.StatusOK, user)
|
|
296
|
-
}
|
|
297
|
-
```
|
|
298
|
-
|
|
299
|
-
## Reintentos con backoff exponencial
|
|
300
|
-
|
|
301
|
-
```typescript
|
|
302
|
-
interface RetryOptions {
|
|
303
|
-
maxAttempts?: number
|
|
304
|
-
baseDelayMs?: number
|
|
305
|
-
maxDelayMs?: number
|
|
306
|
-
retryIf?: (error: unknown) => boolean
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
async function withRetry<T>(
|
|
310
|
-
fn: () => Promise<T>,
|
|
311
|
-
options: RetryOptions = {},
|
|
312
|
-
): Promise<T> {
|
|
313
|
-
const {
|
|
314
|
-
maxAttempts = 3,
|
|
315
|
-
baseDelayMs = 500,
|
|
316
|
-
maxDelayMs = 10_000,
|
|
317
|
-
retryIf = () => true,
|
|
318
|
-
} = options
|
|
319
|
-
|
|
320
|
-
let lastError: unknown
|
|
321
|
-
|
|
322
|
-
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
|
|
323
|
-
try {
|
|
324
|
-
return await fn()
|
|
325
|
-
} catch (error) {
|
|
326
|
-
lastError = error
|
|
327
|
-
if (attempt === maxAttempts || !retryIf(error)) throw error
|
|
328
|
-
|
|
329
|
-
const jitter = Math.random() * baseDelayMs
|
|
330
|
-
const delay = Math.min(baseDelayMs * 2 ** (attempt - 1) + jitter, maxDelayMs)
|
|
331
|
-
await new Promise(resolve => setTimeout(resolve, delay))
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
throw lastError
|
|
336
|
-
}
|
|
337
|
-
|
|
338
|
-
// Uso: reintentar errores de red transitorios, no los 4xx
|
|
339
|
-
const data = await withRetry(() => fetch('/api/data').then(r => r.json()), {
|
|
340
|
-
maxAttempts: 3,
|
|
341
|
-
retryIf: (error) => !(error instanceof AppError && error.statusCode < 500),
|
|
342
|
-
})
|
|
343
|
-
```
|
|
344
|
-
|
|
345
|
-
## Mensajes de error de cara al usuario
|
|
346
|
-
|
|
347
|
-
Mapea los códigos de error a mensajes legibles por humanos. Mantén los detalles técnicos fuera del texto visible al usuario.
|
|
348
|
-
|
|
349
|
-
```typescript
|
|
350
|
-
const USER_ERROR_MESSAGES: Record<string, string> = {
|
|
351
|
-
NOT_FOUND: 'No se pudo encontrar el elemento solicitado.',
|
|
352
|
-
UNAUTHORIZED: 'Inicia sesión para continuar.',
|
|
353
|
-
FORBIDDEN: 'No tienes permiso para hacer eso.',
|
|
354
|
-
VALIDATION_ERROR: 'Revisa los datos ingresados e inténtalo de nuevo.',
|
|
355
|
-
RATE_LIMITED: 'Demasiadas solicitudes. Espera un momento e inténtalo de nuevo.',
|
|
356
|
-
INTERNAL_ERROR: 'Algo salió mal de nuestro lado. Inténtalo de nuevo más tarde.',
|
|
357
|
-
}
|
|
358
|
-
|
|
359
|
-
export function getUserMessage(code: string): string {
|
|
360
|
-
return USER_ERROR_MESSAGES[code] ?? USER_ERROR_MESSAGES.INTERNAL_ERROR
|
|
361
|
-
}
|
|
362
|
-
```
|
|
363
|
-
|
|
364
|
-
## Checklist de manejo de errores
|
|
365
|
-
|
|
366
|
-
Antes de fusionar cualquier código que toque el manejo de errores:
|
|
367
|
-
|
|
368
|
-
- [ ] Cada bloque `catch` maneja, relanza o registra — nada de silenciar errores
|
|
369
|
-
- [ ] Los errores de la API siguen el envelope estándar `{ error: { code, message } }`
|
|
370
|
-
- [ ] Los mensajes de cara al usuario no contienen stack traces ni detalles internos
|
|
371
|
-
- [ ] El contexto completo del error se registra del lado del servidor
|
|
372
|
-
- [ ] Las clases de error personalizadas extienden una base `AppError` con un campo `code`
|
|
373
|
-
- [ ] Las funciones async hacen aflorar los errores a quien las llama — nada de "disparar y olvidar" sin fallback
|
|
374
|
-
- [ ] La lógica de reintentos solo reintenta errores reintentables (no errores 4xx del cliente)
|
|
375
|
-
- [ ] Los componentes React están envueltos en `ErrorBoundary` para errores de renderizado
|