theus-cli-linux-x64 1.2.1 → 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/README.md +15 -0
- package/RELEASE.json +6 -6
- package/bin/theus +0 -0
- package/package.json +1 -1
- package/vendor/chrome-extension/README.md +142 -0
- package/vendor/chrome-extension/background.js +540 -0
- package/vendor/chrome-extension/cdp-core.js +400 -0
- package/vendor/chrome-extension/cdp-core.test.ts +321 -0
- package/vendor/chrome-extension/cdp.js +672 -0
- package/vendor/chrome-extension/icons/icon128.png +0 -0
- package/vendor/chrome-extension/icons/icon16.png +0 -0
- package/vendor/chrome-extension/icons/icon32.png +0 -0
- package/vendor/chrome-extension/icons/icon48.png +0 -0
- package/vendor/chrome-extension/manifest.json +36 -0
- package/vendor/chrome-extension/popup.html +78 -0
- package/vendor/chrome-extension/popup.js +47 -0
- package/vendor/chrome-extension/recorder.js +316 -0
- 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,754 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: patrones-kubernetes
|
|
3
|
-
description: Patrones de cargas de trabajo en Kubernetes, gestión de recursos, RBAC, probes, autoescalado, manejo de ConfigMap/Secret y depuración con kubectl para despliegues de grado producción.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Patrones de Kubernetes
|
|
7
|
-
|
|
8
|
-
Patrones de Kubernetes de grado producción para desplegar, gestionar y depurar cargas de trabajo de forma confiable.
|
|
9
|
-
|
|
10
|
-
## Cuándo activarla
|
|
11
|
-
|
|
12
|
-
- Al escribir manifiestos de Kubernetes (Deployments, Services, Ingress, Jobs)
|
|
13
|
-
- Al configurar requests/limits de recursos, probes de liveness/readiness
|
|
14
|
-
- Al configurar RBAC, namespaces o ServiceAccounts
|
|
15
|
-
- Al gestionar configuración y secretos en K8s
|
|
16
|
-
- Al depurar CrashLoopBackOff, OOMKilled, pods pendientes o errores de pull de imagen
|
|
17
|
-
- Al configurar HPA (Horizontal Pod Autoscaler) o PodDisruptionBudgets
|
|
18
|
-
- Al revisar YAML de K8s por seguridad o corrección
|
|
19
|
-
|
|
20
|
-
## Cuándo usarla
|
|
21
|
-
|
|
22
|
-
> Igual que **Cuándo activarla** arriba. Este alias satisface las convenciones de formato de skills del repositorio. Usa esta skill siempre que estés escribiendo, revisando o depurando YAML y cargas de trabajo de Kubernetes.
|
|
23
|
-
|
|
24
|
-
## Cómo funciona
|
|
25
|
-
|
|
26
|
-
Esta skill proporciona **patrones YAML de grado producción listos para copiar y pegar** y **comandos de depuración con kubectl** organizados por tarea:
|
|
27
|
-
|
|
28
|
-
1. **Plantilla de Deployment** — Un `Deployment` de producción totalmente configurado con contexto de seguridad, estrategia de rolling update, los tres tipos de probes, límites de recursos e inyección de entorno desde ConfigMap/Secret.
|
|
29
|
-
2. **Probes** — Tabla de decisión de startup vs liveness vs readiness, con la aritmética correcta de `failureThreshold × periodSeconds`.
|
|
30
|
-
3. **Services e Ingress** — Patrones de ClusterIP, LoadBalancer e Ingress con TLS con anotaciones de cert-manager.
|
|
31
|
-
4. **ConfigMaps y Secrets** — `envFrom`, montaje como archivo y guía de secretos externos.
|
|
32
|
-
5. **Gestión de recursos** — Reglas prácticas de requests vs limits por tipo de carga de trabajo (API web, JVM, worker, sidecar).
|
|
33
|
-
6. **RBAC** — Cadena ServiceAccount → Role → RoleBinding de mínimo privilegio.
|
|
34
|
-
7. **HPA y PDB** — Configuraciones de autoescalado y de seguridad ante drenado de nodos.
|
|
35
|
-
8. **Jobs y CronJobs** — Patrones de cargas puntuales y programadas con el `restartPolicy` correcto.
|
|
36
|
-
9. **Chuleta de kubectl** — Logs, exec, rollback, port-forward, dry-run y comandos de diagnóstico de errores comunes.
|
|
37
|
-
10. **Antipatrones y lista de verificación** — Qué NO hacer, y una lista de verificación de seguridad/confiabilidad/observabilidad.
|
|
38
|
-
|
|
39
|
-
## Ejemplos
|
|
40
|
-
|
|
41
|
-
Consulta las secciones siguientes para ejemplos completos y ejecutables. Referencias rápidas:
|
|
42
|
-
|
|
43
|
-
| Tarea | Ir a |
|
|
44
|
-
|------|---------|
|
|
45
|
-
| YAML completo de Deployment de producción | [Patrones de cargas de trabajo principales](#patrones-de-cargas-de-trabajo-principales) |
|
|
46
|
-
| Configuración de probes | [Probes](#probes--liveness-readiness-startup) |
|
|
47
|
-
| Configuración RBAC de mínimo privilegio | [RBAC](#rbac--roles-y-serviceaccounts) |
|
|
48
|
-
| Depurar un CrashLoopBackOff | [Chuleta de depuración con kubectl](#chuleta-de-depuración-con-kubectl) |
|
|
49
|
-
| Autoescalado | [HPA](#horizontal-pod-autoscaler-hpa) |
|
|
50
|
-
|
|
51
|
-
---
|
|
52
|
-
|
|
53
|
-
## Patrones de cargas de trabajo principales
|
|
54
|
-
|
|
55
|
-
### Deployment — Plantilla de producción
|
|
56
|
-
|
|
57
|
-
```yaml
|
|
58
|
-
apiVersion: apps/v1
|
|
59
|
-
kind: Deployment
|
|
60
|
-
metadata:
|
|
61
|
-
name: my-app
|
|
62
|
-
namespace: my-namespace
|
|
63
|
-
labels:
|
|
64
|
-
app: my-app
|
|
65
|
-
version: "1.0.0"
|
|
66
|
-
spec:
|
|
67
|
-
replicas: 3
|
|
68
|
-
selector:
|
|
69
|
-
matchLabels:
|
|
70
|
-
app: my-app
|
|
71
|
-
strategy:
|
|
72
|
-
type: RollingUpdate
|
|
73
|
-
rollingUpdate:
|
|
74
|
-
maxSurge: 1 # Permite 1 pod extra durante la actualización
|
|
75
|
-
maxUnavailable: 0 # Nunca reducir por debajo del conteo deseado
|
|
76
|
-
template:
|
|
77
|
-
metadata:
|
|
78
|
-
labels:
|
|
79
|
-
app: my-app
|
|
80
|
-
version: "1.0.0"
|
|
81
|
-
spec:
|
|
82
|
-
# Contexto de seguridad a nivel de pod
|
|
83
|
-
securityContext:
|
|
84
|
-
runAsNonRoot: true
|
|
85
|
-
runAsUser: 1001
|
|
86
|
-
fsGroup: 1001
|
|
87
|
-
|
|
88
|
-
# Apagado ordenado (graceful shutdown)
|
|
89
|
-
terminationGracePeriodSeconds: 30
|
|
90
|
-
|
|
91
|
-
containers:
|
|
92
|
-
- name: my-app
|
|
93
|
-
image: ghcr.io/org/my-app:1.0.0 # Nunca usar :latest
|
|
94
|
-
imagePullPolicy: IfNotPresent
|
|
95
|
-
|
|
96
|
-
ports:
|
|
97
|
-
- containerPort: 8080
|
|
98
|
-
protocol: TCP
|
|
99
|
-
|
|
100
|
-
# Los requests Y los limits de recursos son ambos obligatorios
|
|
101
|
-
resources:
|
|
102
|
-
requests:
|
|
103
|
-
cpu: "100m"
|
|
104
|
-
memory: "128Mi"
|
|
105
|
-
limits:
|
|
106
|
-
cpu: "500m"
|
|
107
|
-
memory: "256Mi"
|
|
108
|
-
|
|
109
|
-
# Contexto de seguridad del contenedor
|
|
110
|
-
securityContext:
|
|
111
|
-
allowPrivilegeEscalation: false
|
|
112
|
-
readOnlyRootFilesystem: true
|
|
113
|
-
capabilities:
|
|
114
|
-
drop:
|
|
115
|
-
- ALL
|
|
116
|
-
|
|
117
|
-
# Probes (ver la sección Probes más abajo)
|
|
118
|
-
startupProbe:
|
|
119
|
-
httpGet:
|
|
120
|
-
path: /health
|
|
121
|
-
port: 8080
|
|
122
|
-
failureThreshold: 30
|
|
123
|
-
periodSeconds: 5
|
|
124
|
-
livenessProbe:
|
|
125
|
-
httpGet:
|
|
126
|
-
path: /health
|
|
127
|
-
port: 8080
|
|
128
|
-
initialDelaySeconds: 0
|
|
129
|
-
periodSeconds: 30
|
|
130
|
-
failureThreshold: 3
|
|
131
|
-
readinessProbe:
|
|
132
|
-
httpGet:
|
|
133
|
-
path: /ready
|
|
134
|
-
port: 8080
|
|
135
|
-
initialDelaySeconds: 5
|
|
136
|
-
periodSeconds: 10
|
|
137
|
-
failureThreshold: 2
|
|
138
|
-
|
|
139
|
-
# Entorno desde ConfigMap y Secret
|
|
140
|
-
envFrom:
|
|
141
|
-
- configMapRef:
|
|
142
|
-
name: my-app-config
|
|
143
|
-
env:
|
|
144
|
-
- name: DB_PASSWORD
|
|
145
|
-
valueFrom:
|
|
146
|
-
secretKeyRef:
|
|
147
|
-
name: my-app-secrets
|
|
148
|
-
key: db-password
|
|
149
|
-
|
|
150
|
-
# Directorio tmp escribible cuando readOnlyRootFilesystem: true
|
|
151
|
-
volumeMounts:
|
|
152
|
-
- name: tmp
|
|
153
|
-
mountPath: /tmp
|
|
154
|
-
|
|
155
|
-
volumes:
|
|
156
|
-
- name: tmp
|
|
157
|
-
emptyDir: {}
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
---
|
|
161
|
-
|
|
162
|
-
## Probes — Liveness, Readiness, Startup
|
|
163
|
-
|
|
164
|
-
Entender cuándo usar cada probe es crítico:
|
|
165
|
-
|
|
166
|
-
| Probe | Acción ante fallo | Usar para |
|
|
167
|
-
|-------|---------------|---------|
|
|
168
|
-
| `startupProbe` | Mata el contenedor si tarda en arrancar | Apps de arranque lento (JVM, Python) |
|
|
169
|
-
| `livenessProbe` | Reinicia el contenedor | Detección de deadlock / proceso colgado |
|
|
170
|
-
| `readinessProbe` | Lo retira de los endpoints del Service | Indisponibilidad temporal (reconexión a la BD) |
|
|
171
|
-
|
|
172
|
-
```yaml
|
|
173
|
-
# Patrón correcto: startupProbe cubre el arranque lento,
|
|
174
|
-
# luego liveness/readiness toman el relevo
|
|
175
|
-
startupProbe:
|
|
176
|
-
httpGet:
|
|
177
|
-
path: /health
|
|
178
|
-
port: 8080
|
|
179
|
-
failureThreshold: 30 # 30 * 5s = 150s de tiempo máximo de arranque
|
|
180
|
-
periodSeconds: 5
|
|
181
|
-
|
|
182
|
-
livenessProbe:
|
|
183
|
-
httpGet:
|
|
184
|
-
path: /health
|
|
185
|
-
port: 8080
|
|
186
|
-
periodSeconds: 30
|
|
187
|
-
failureThreshold: 3 # 3 * 30s = 90s antes del reinicio
|
|
188
|
-
|
|
189
|
-
readinessProbe:
|
|
190
|
-
httpGet:
|
|
191
|
-
path: /ready # Endpoint separado: comprueba BD, caché, etc.
|
|
192
|
-
port: 8080
|
|
193
|
-
periodSeconds: 10
|
|
194
|
-
failureThreshold: 2
|
|
195
|
-
```
|
|
196
|
-
|
|
197
|
-
```yaml
|
|
198
|
-
# INCORRECTO: initialDelaySeconds sin startupProbe
|
|
199
|
-
# Si la app tarda 60s en arrancar, configura un startupProbe en su lugar
|
|
200
|
-
livenessProbe:
|
|
201
|
-
httpGet:
|
|
202
|
-
path: /health
|
|
203
|
-
port: 8080
|
|
204
|
-
initialDelaySeconds: 60 # MAL: espera arbitraria, condición de carrera
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
---
|
|
208
|
-
|
|
209
|
-
## Services e Ingress
|
|
210
|
-
|
|
211
|
-
### Tipos de Service
|
|
212
|
-
|
|
213
|
-
```yaml
|
|
214
|
-
# ClusterIP (por defecto) — solo interno
|
|
215
|
-
apiVersion: v1
|
|
216
|
-
kind: Service
|
|
217
|
-
metadata:
|
|
218
|
-
name: my-app
|
|
219
|
-
namespace: my-namespace
|
|
220
|
-
spec:
|
|
221
|
-
selector:
|
|
222
|
-
app: my-app
|
|
223
|
-
ports:
|
|
224
|
-
- port: 80
|
|
225
|
-
targetPort: 8080
|
|
226
|
-
protocol: TCP
|
|
227
|
-
type: ClusterIP
|
|
228
|
-
```
|
|
229
|
-
|
|
230
|
-
```yaml
|
|
231
|
-
# LoadBalancer — tráfico externo (proveedores cloud)
|
|
232
|
-
spec:
|
|
233
|
-
type: LoadBalancer
|
|
234
|
-
ports:
|
|
235
|
-
- port: 443
|
|
236
|
-
targetPort: 8080
|
|
237
|
-
```
|
|
238
|
-
|
|
239
|
-
### Ingress con TLS
|
|
240
|
-
|
|
241
|
-
```yaml
|
|
242
|
-
apiVersion: networking.k8s.io/v1
|
|
243
|
-
kind: Ingress
|
|
244
|
-
metadata:
|
|
245
|
-
name: my-app
|
|
246
|
-
namespace: my-namespace
|
|
247
|
-
annotations:
|
|
248
|
-
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
|
249
|
-
cert-manager.io/cluster-issuer: "letsencrypt-prod"
|
|
250
|
-
spec:
|
|
251
|
-
ingressClassName: nginx
|
|
252
|
-
tls:
|
|
253
|
-
- hosts:
|
|
254
|
-
- myapp.example.com
|
|
255
|
-
secretName: my-app-tls
|
|
256
|
-
rules:
|
|
257
|
-
- host: myapp.example.com
|
|
258
|
-
http:
|
|
259
|
-
paths:
|
|
260
|
-
- path: /
|
|
261
|
-
pathType: Prefix
|
|
262
|
-
backend:
|
|
263
|
-
service:
|
|
264
|
-
name: my-app
|
|
265
|
-
port:
|
|
266
|
-
number: 80
|
|
267
|
-
```
|
|
268
|
-
|
|
269
|
-
---
|
|
270
|
-
|
|
271
|
-
## ConfigMaps y Secrets
|
|
272
|
-
|
|
273
|
-
### ConfigMap — Configuración no sensible
|
|
274
|
-
|
|
275
|
-
```yaml
|
|
276
|
-
apiVersion: v1
|
|
277
|
-
kind: ConfigMap
|
|
278
|
-
metadata:
|
|
279
|
-
name: my-app-config
|
|
280
|
-
namespace: my-namespace
|
|
281
|
-
data:
|
|
282
|
-
LOG_LEVEL: "info"
|
|
283
|
-
APP_ENV: "production"
|
|
284
|
-
MAX_CONNECTIONS: "100"
|
|
285
|
-
# Montar como archivo para configuración compleja
|
|
286
|
-
app.yaml: |
|
|
287
|
-
server:
|
|
288
|
-
port: 8080
|
|
289
|
-
timeout: 30s
|
|
290
|
-
```
|
|
291
|
-
|
|
292
|
-
```yaml
|
|
293
|
-
# Montar un ConfigMap como archivo
|
|
294
|
-
volumes:
|
|
295
|
-
- name: config
|
|
296
|
-
configMap:
|
|
297
|
-
name: my-app-config
|
|
298
|
-
items:
|
|
299
|
-
- key: app.yaml
|
|
300
|
-
path: app.yaml
|
|
301
|
-
volumeMounts:
|
|
302
|
-
- name: config
|
|
303
|
-
mountPath: /etc/app
|
|
304
|
-
readOnly: true
|
|
305
|
-
```
|
|
306
|
-
|
|
307
|
-
### Secrets — Datos sensibles
|
|
308
|
-
|
|
309
|
-
```bash
|
|
310
|
-
# Crear un secret desde un literal (CLI; luego guárdalo en Vault/SOPS)
|
|
311
|
-
kubectl create secret generic my-app-secrets \
|
|
312
|
-
--from-literal=db-password='s3cr3t' \
|
|
313
|
-
--namespace=my-namespace \
|
|
314
|
-
--dry-run=client -o yaml | kubectl apply -f -
|
|
315
|
-
```
|
|
316
|
-
|
|
317
|
-
```yaml
|
|
318
|
-
apiVersion: v1
|
|
319
|
-
kind: Secret
|
|
320
|
-
metadata:
|
|
321
|
-
name: my-app-secrets
|
|
322
|
-
namespace: my-namespace
|
|
323
|
-
type: Opaque
|
|
324
|
-
# Los valores están codificados en base64 (NO cifrados — usa Sealed Secrets o ESO para cifrado real)
|
|
325
|
-
data:
|
|
326
|
-
db-password: czNjcjN0 # base64 de 's3cr3t'
|
|
327
|
-
```
|
|
328
|
-
|
|
329
|
-
> **Importante:** Los Secrets crudos de Kubernetes solo están codificados en base64; no están cifrados en reposo salvo que tu clúster tenga el cifrado configurado. Usa [Sealed Secrets](https://github.com/bitnami-labs/sealed-secrets) o [External Secrets Operator](https://external-secrets.io) en producción.
|
|
330
|
-
|
|
331
|
-
---
|
|
332
|
-
|
|
333
|
-
## Requests y Limits de recursos
|
|
334
|
-
|
|
335
|
-
```yaml
|
|
336
|
-
resources:
|
|
337
|
-
requests: # El scheduler usa esto para ubicar el pod
|
|
338
|
-
cpu: "100m" # 100 milicores = 0,1 CPU
|
|
339
|
-
memory: "128Mi"
|
|
340
|
-
limits: # El contenedor es matado/limitado por encima de esto
|
|
341
|
-
cpu: "500m"
|
|
342
|
-
memory: "256Mi"
|
|
343
|
-
```
|
|
344
|
-
|
|
345
|
-
**Reglas prácticas:**
|
|
346
|
-
|
|
347
|
-
| Tipo de carga | Request de CPU | Request de memoria | Notas |
|
|
348
|
-
|---------------|-------------|----------------|-------|
|
|
349
|
-
| API web | 100–250m | 128–256Mi | Configura limits de 2-4x los requests |
|
|
350
|
-
| Worker/consumidor | 250–500m | 256–512Mi | Limit de memoria = request para previsibilidad |
|
|
351
|
-
| App JVM | 500m–1 | 512Mi–2Gi | Deja margen por encima de `-Xmx` para el overhead de la JVM |
|
|
352
|
-
| Sidecar | 10–50m | 32–64Mi | Mantenlo mínimo |
|
|
353
|
-
|
|
354
|
-
```yaml
|
|
355
|
-
# INCORRECTO: sin requests ni limits — planificación impredecible, expulsiones por OOM
|
|
356
|
-
containers:
|
|
357
|
-
- name: app
|
|
358
|
-
image: myapp:latest
|
|
359
|
-
# Falta resources: {} — esto es peligroso en producción
|
|
360
|
-
|
|
361
|
-
# INCORRECTO: limits sin requests — los requests toman por defecto los limits, sobre-reserva capacidad
|
|
362
|
-
resources:
|
|
363
|
-
limits:
|
|
364
|
-
cpu: "2"
|
|
365
|
-
memory: "1Gi"
|
|
366
|
-
# Faltan los requests — tomarán por defecto los valores de los limits
|
|
367
|
-
```
|
|
368
|
-
|
|
369
|
-
---
|
|
370
|
-
|
|
371
|
-
## RBAC — Roles y ServiceAccounts
|
|
372
|
-
|
|
373
|
-
### Principio de mínimo privilegio
|
|
374
|
-
|
|
375
|
-
**Dos patrones según si la app llama a la API de Kubernetes:**
|
|
376
|
-
|
|
377
|
-
#### Patrón A — La app NO necesita la API de Kubernetes (la mayoría de apps)
|
|
378
|
-
|
|
379
|
-
Deshabilita el automontaje del token en el ServiceAccount. El Role/RoleBinding no son necesarios.
|
|
380
|
-
|
|
381
|
-
```yaml
|
|
382
|
-
# ServiceAccount con token deshabilitado — el valor por defecto más seguro
|
|
383
|
-
apiVersion: v1
|
|
384
|
-
kind: ServiceAccount
|
|
385
|
-
metadata:
|
|
386
|
-
name: my-app-sa
|
|
387
|
-
namespace: my-namespace
|
|
388
|
-
automountServiceAccountToken: false # No se inyecta token de la API de K8s en los pods
|
|
389
|
-
```
|
|
390
|
-
|
|
391
|
-
```yaml
|
|
392
|
-
# Referencia en el Deployment — sin token, sin acceso a la API
|
|
393
|
-
spec:
|
|
394
|
-
template:
|
|
395
|
-
spec:
|
|
396
|
-
serviceAccountName: my-app-sa
|
|
397
|
-
automountServiceAccountToken: false # Doble seguro: también se define a nivel de pod
|
|
398
|
-
```
|
|
399
|
-
|
|
400
|
-
#### Patrón B — La app SÍ necesita la API de Kubernetes (operadores, controladores, watchers de configuración)
|
|
401
|
-
|
|
402
|
-
Habilita el token y concede solo los permisos realmente necesarios.
|
|
403
|
-
|
|
404
|
-
```yaml
|
|
405
|
-
# 1. ServiceAccount — habilitar el token para este SA
|
|
406
|
-
apiVersion: v1
|
|
407
|
-
kind: ServiceAccount
|
|
408
|
-
metadata:
|
|
409
|
-
name: my-app-sa
|
|
410
|
-
namespace: my-namespace
|
|
411
|
-
automountServiceAccountToken: true # Token requerido: la app llama a la API de K8s
|
|
412
|
-
```
|
|
413
|
-
|
|
414
|
-
```yaml
|
|
415
|
-
# 2. Role — concede solo lo que la app necesita (con alcance de namespace)
|
|
416
|
-
apiVersion: rbac.authorization.k8s.io/v1
|
|
417
|
-
kind: Role
|
|
418
|
-
metadata:
|
|
419
|
-
name: my-app-role
|
|
420
|
-
namespace: my-namespace
|
|
421
|
-
rules:
|
|
422
|
-
- apiGroups: [""]
|
|
423
|
-
resources: ["configmaps"]
|
|
424
|
-
verbs: ["get", "list", "watch"] # Solo lectura, recurso específico
|
|
425
|
-
- apiGroups: [""]
|
|
426
|
-
resources: ["secrets"]
|
|
427
|
-
resourceNames: ["my-app-secrets"] # Restringir a un secret específico por nombre
|
|
428
|
-
verbs: ["get"]
|
|
429
|
-
```
|
|
430
|
-
|
|
431
|
-
```yaml
|
|
432
|
-
# 3. Vincular el Role al ServiceAccount
|
|
433
|
-
apiVersion: rbac.authorization.k8s.io/v1
|
|
434
|
-
kind: RoleBinding
|
|
435
|
-
metadata:
|
|
436
|
-
name: my-app-rolebinding
|
|
437
|
-
namespace: my-namespace
|
|
438
|
-
subjects:
|
|
439
|
-
- kind: ServiceAccount
|
|
440
|
-
name: my-app-sa
|
|
441
|
-
namespace: my-namespace
|
|
442
|
-
roleRef:
|
|
443
|
-
kind: Role
|
|
444
|
-
apiGroup: rbac.authorization.k8s.io
|
|
445
|
-
name: my-app-role
|
|
446
|
-
```
|
|
447
|
-
|
|
448
|
-
```yaml
|
|
449
|
-
# 4. Referenciar el SA en el Deployment
|
|
450
|
-
spec:
|
|
451
|
-
template:
|
|
452
|
-
spec:
|
|
453
|
-
serviceAccountName: my-app-sa
|
|
454
|
-
# automountServiceAccountToken toma por defecto true desde el SA — el token se inyecta
|
|
455
|
-
```
|
|
456
|
-
|
|
457
|
-
---
|
|
458
|
-
|
|
459
|
-
## Horizontal Pod Autoscaler (HPA)
|
|
460
|
-
|
|
461
|
-
```yaml
|
|
462
|
-
apiVersion: autoscaling/v2
|
|
463
|
-
kind: HorizontalPodAutoscaler
|
|
464
|
-
metadata:
|
|
465
|
-
name: my-app-hpa
|
|
466
|
-
namespace: my-namespace
|
|
467
|
-
spec:
|
|
468
|
-
scaleTargetRef:
|
|
469
|
-
apiVersion: apps/v1
|
|
470
|
-
kind: Deployment
|
|
471
|
-
name: my-app
|
|
472
|
-
minReplicas: 2 # Siempre al menos 2 para alta disponibilidad
|
|
473
|
-
maxReplicas: 10
|
|
474
|
-
metrics:
|
|
475
|
-
- type: Resource
|
|
476
|
-
resource:
|
|
477
|
-
name: cpu
|
|
478
|
-
target:
|
|
479
|
-
type: Utilization
|
|
480
|
-
averageUtilization: 70 # Escala hacia arriba cuando la CPU promedio > 70%
|
|
481
|
-
- type: Resource
|
|
482
|
-
resource:
|
|
483
|
-
name: memory
|
|
484
|
-
target:
|
|
485
|
-
type: Utilization
|
|
486
|
-
averageUtilization: 80
|
|
487
|
-
```
|
|
488
|
-
|
|
489
|
-
> El HPA requiere que `resources.requests` esté configurado en todos los contenedores — calcula la utilización como `actual / request`.
|
|
490
|
-
|
|
491
|
-
---
|
|
492
|
-
|
|
493
|
-
## PodDisruptionBudget (PDB)
|
|
494
|
-
|
|
495
|
-
Evita que caigan demasiados pods durante drenados de nodos o rolling updates:
|
|
496
|
-
|
|
497
|
-
```yaml
|
|
498
|
-
apiVersion: policy/v1
|
|
499
|
-
kind: PodDisruptionBudget
|
|
500
|
-
metadata:
|
|
501
|
-
name: my-app-pdb
|
|
502
|
-
namespace: my-namespace
|
|
503
|
-
spec:
|
|
504
|
-
minAvailable: 2 # O bien usa maxUnavailable: 1
|
|
505
|
-
selector:
|
|
506
|
-
matchLabels:
|
|
507
|
-
app: my-app
|
|
508
|
-
```
|
|
509
|
-
|
|
510
|
-
---
|
|
511
|
-
|
|
512
|
-
## Namespaces y multi-tenencia
|
|
513
|
-
|
|
514
|
-
```bash
|
|
515
|
-
# Crear un namespace con cuotas de recursos
|
|
516
|
-
kubectl create namespace my-namespace
|
|
517
|
-
|
|
518
|
-
# Aplicar un ResourceQuota para limitar el consumo del namespace
|
|
519
|
-
kubectl apply -f - <<EOF
|
|
520
|
-
apiVersion: v1
|
|
521
|
-
kind: ResourceQuota
|
|
522
|
-
metadata:
|
|
523
|
-
name: my-namespace-quota
|
|
524
|
-
namespace: my-namespace
|
|
525
|
-
spec:
|
|
526
|
-
hard:
|
|
527
|
-
requests.cpu: "4"
|
|
528
|
-
requests.memory: 4Gi
|
|
529
|
-
limits.cpu: "8"
|
|
530
|
-
limits.memory: 8Gi
|
|
531
|
-
pods: "20"
|
|
532
|
-
EOF
|
|
533
|
-
```
|
|
534
|
-
|
|
535
|
-
---
|
|
536
|
-
|
|
537
|
-
## Jobs y CronJobs
|
|
538
|
-
|
|
539
|
-
```yaml
|
|
540
|
-
# Job puntual (migración de BD, procesamiento de datos)
|
|
541
|
-
apiVersion: batch/v1
|
|
542
|
-
kind: Job
|
|
543
|
-
metadata:
|
|
544
|
-
name: db-migrate
|
|
545
|
-
namespace: my-namespace
|
|
546
|
-
spec:
|
|
547
|
-
backoffLimit: 3 # Reintentar hasta 3 veces ante fallo
|
|
548
|
-
ttlSecondsAfterFinished: 3600 # Autoeliminarse después de 1h
|
|
549
|
-
template:
|
|
550
|
-
spec:
|
|
551
|
-
restartPolicy: OnFailure # Nunca "Always" en Jobs
|
|
552
|
-
containers:
|
|
553
|
-
- name: migrate
|
|
554
|
-
image: ghcr.io/org/my-app:1.0.0
|
|
555
|
-
command: ["python", "manage.py", "migrate"]
|
|
556
|
-
resources:
|
|
557
|
-
requests:
|
|
558
|
-
cpu: "100m"
|
|
559
|
-
memory: "256Mi"
|
|
560
|
-
```
|
|
561
|
-
|
|
562
|
-
```yaml
|
|
563
|
-
# CronJob
|
|
564
|
-
apiVersion: batch/v1
|
|
565
|
-
kind: CronJob
|
|
566
|
-
metadata:
|
|
567
|
-
name: cleanup-job
|
|
568
|
-
namespace: my-namespace
|
|
569
|
-
spec:
|
|
570
|
-
schedule: "0 2 * * *" # 2am cada día
|
|
571
|
-
concurrencyPolicy: Forbid # No ejecutar si el anterior sigue corriendo
|
|
572
|
-
successfulJobsHistoryLimit: 3
|
|
573
|
-
failedJobsHistoryLimit: 1
|
|
574
|
-
jobTemplate:
|
|
575
|
-
spec:
|
|
576
|
-
template:
|
|
577
|
-
spec:
|
|
578
|
-
restartPolicy: OnFailure
|
|
579
|
-
containers:
|
|
580
|
-
- name: cleanup
|
|
581
|
-
image: ghcr.io/org/cleanup:1.0.0
|
|
582
|
-
resources:
|
|
583
|
-
requests:
|
|
584
|
-
cpu: "50m"
|
|
585
|
-
memory: "64Mi"
|
|
586
|
-
```
|
|
587
|
-
|
|
588
|
-
---
|
|
589
|
-
|
|
590
|
-
## Chuleta de depuración con kubectl
|
|
591
|
-
|
|
592
|
-
```bash
|
|
593
|
-
# --- Estado de pods y logs ---
|
|
594
|
-
kubectl get pods -n my-namespace
|
|
595
|
-
kubectl get pods -n my-namespace -o wide # Muestra la asignación de nodo
|
|
596
|
-
kubectl describe pod <pod-name> -n my-namespace # Detalles de eventos y estado
|
|
597
|
-
kubectl logs <pod-name> -n my-namespace # Logs actuales
|
|
598
|
-
kubectl logs <pod-name> -n my-namespace --previous # Logs del contenedor que crasheó
|
|
599
|
-
kubectl logs <pod-name> -n my-namespace -c <container> # Pod multi-contenedor
|
|
600
|
-
|
|
601
|
-
# --- Ejecutar dentro de un contenedor en marcha ---
|
|
602
|
-
kubectl exec -it <pod-name> -n my-namespace -- sh
|
|
603
|
-
kubectl exec -it <pod-name> -n my-namespace -- bash
|
|
604
|
-
|
|
605
|
-
# --- Comprobar el uso de recursos ---
|
|
606
|
-
kubectl top pods -n my-namespace
|
|
607
|
-
kubectl top nodes
|
|
608
|
-
|
|
609
|
-
# --- Operaciones de Deployment ---
|
|
610
|
-
kubectl rollout status deployment/my-app -n my-namespace
|
|
611
|
-
kubectl rollout history deployment/my-app -n my-namespace
|
|
612
|
-
kubectl rollout undo deployment/my-app -n my-namespace # Rollback
|
|
613
|
-
kubectl rollout undo deployment/my-app --to-revision=2 -n my-namespace
|
|
614
|
-
|
|
615
|
-
# --- Escalar manualmente ---
|
|
616
|
-
kubectl scale deployment my-app --replicas=5 -n my-namespace
|
|
617
|
-
|
|
618
|
-
# --- Inspeccionar eventos (problemas a nivel de clúster) ---
|
|
619
|
-
kubectl get events -n my-namespace --sort-by='.lastTimestamp'
|
|
620
|
-
|
|
621
|
-
# --- Port-forward para depuración local ---
|
|
622
|
-
kubectl port-forward pod/<pod-name> 8080:8080 -n my-namespace
|
|
623
|
-
kubectl port-forward svc/my-app 8080:80 -n my-namespace
|
|
624
|
-
|
|
625
|
-
# --- Dry-run para validar YAML ---
|
|
626
|
-
kubectl apply -f deployment.yaml --dry-run=client
|
|
627
|
-
kubectl apply -f deployment.yaml --dry-run=server # Valida contra el clúster en vivo
|
|
628
|
-
```
|
|
629
|
-
|
|
630
|
-
### Diagnóstico de errores comunes
|
|
631
|
-
|
|
632
|
-
```bash
|
|
633
|
-
# CrashLoopBackOff: el contenedor no deja de crashear
|
|
634
|
-
kubectl logs <pod-name> --previous -n my-namespace # Revisar los logs del crash
|
|
635
|
-
kubectl describe pod <pod-name> -n my-namespace # Revisar el código de salida y OOMKilled
|
|
636
|
-
|
|
637
|
-
# ImagePullBackOff: no se puede descargar la imagen
|
|
638
|
-
kubectl describe pod <pod-name> -n my-namespace # Revisar la sección Events
|
|
639
|
-
# Causas: tag de imagen incorrecto, falta imagePullSecret, registro privado
|
|
640
|
-
|
|
641
|
-
# Pod pendiente: no fue planificado
|
|
642
|
-
kubectl describe pod <pod-name> -n my-namespace
|
|
643
|
-
# Causas: recursos insuficientes, sin node selector coincidente, desajuste de taint/toleration
|
|
644
|
-
|
|
645
|
-
# OOMKilled: sin memoria
|
|
646
|
-
# Aumenta los limits de memoria, busca fugas de memoria
|
|
647
|
-
kubectl describe pod <pod-name> -n my-namespace | grep -A5 "Last State"
|
|
648
|
-
```
|
|
649
|
-
|
|
650
|
-
---
|
|
651
|
-
|
|
652
|
-
## Antipatrones
|
|
653
|
-
|
|
654
|
-
```yaml
|
|
655
|
-
# MAL: usar el tag :latest — despliegues no deterministas
|
|
656
|
-
image: myapp:latest
|
|
657
|
-
|
|
658
|
-
# BIEN: fijar un tag inmutable específico (SHA o semver)
|
|
659
|
-
image: ghcr.io/org/myapp:1.4.2
|
|
660
|
-
# o
|
|
661
|
-
image: ghcr.io/org/myapp@sha256:abc123...
|
|
662
|
-
|
|
663
|
-
# ---
|
|
664
|
-
|
|
665
|
-
# MAL: ejecutar como root
|
|
666
|
-
securityContext: {} # Por defecto es root
|
|
667
|
-
|
|
668
|
-
# BIEN: no-root con UID explícito
|
|
669
|
-
securityContext:
|
|
670
|
-
runAsNonRoot: true
|
|
671
|
-
runAsUser: 1001
|
|
672
|
-
|
|
673
|
-
# ---
|
|
674
|
-
|
|
675
|
-
# MAL: sin límites de recursos — un pod puede dejar sin recursos al nodo entero
|
|
676
|
-
containers:
|
|
677
|
-
- name: app
|
|
678
|
-
image: myapp:1.0.0
|
|
679
|
-
# Sin resources definidos
|
|
680
|
-
|
|
681
|
-
# BIEN: configura siempre requests y limits
|
|
682
|
-
resources:
|
|
683
|
-
requests:
|
|
684
|
-
cpu: "100m"
|
|
685
|
-
memory: "128Mi"
|
|
686
|
-
limits:
|
|
687
|
-
cpu: "500m"
|
|
688
|
-
memory: "256Mi"
|
|
689
|
-
|
|
690
|
-
# ---
|
|
691
|
-
|
|
692
|
-
# MAL: guardar secretos en texto plano en ConfigMaps
|
|
693
|
-
apiVersion: v1
|
|
694
|
-
kind: ConfigMap
|
|
695
|
-
data:
|
|
696
|
-
DB_PASSWORD: "mysecretpassword" # NUNCA — usa un Secret o un gestor de secretos externo
|
|
697
|
-
|
|
698
|
-
# ---
|
|
699
|
-
|
|
700
|
-
# MAL: ClusterAdmin para service accounts de aplicaciones
|
|
701
|
-
apiVersion: rbac.authorization.k8s.io/v1
|
|
702
|
-
kind: ClusterRoleBinding
|
|
703
|
-
roleRef:
|
|
704
|
-
kind: ClusterRole
|
|
705
|
-
name: cluster-admin # Le da modo dios a tu app
|
|
706
|
-
|
|
707
|
-
# ---
|
|
708
|
-
|
|
709
|
-
# MAL: minAvailable: 0 en un PDB — anula su propósito
|
|
710
|
-
spec:
|
|
711
|
-
minAvailable: 0
|
|
712
|
-
|
|
713
|
-
# ---
|
|
714
|
-
|
|
715
|
-
# MAL: restartPolicy: Always en un Job (provoca un bucle infinito de reinicios)
|
|
716
|
-
spec:
|
|
717
|
-
restartPolicy: Always # Usa OnFailure o Never en Jobs
|
|
718
|
-
```
|
|
719
|
-
|
|
720
|
-
---
|
|
721
|
-
|
|
722
|
-
## Lista de verificación de buenas prácticas
|
|
723
|
-
|
|
724
|
-
### Seguridad
|
|
725
|
-
- [ ] El contenedor se ejecuta como no-root (`runAsNonRoot: true`, `runAsUser` definido)
|
|
726
|
-
- [ ] `readOnlyRootFilesystem: true` con `emptyDir` para las rutas escribibles
|
|
727
|
-
- [ ] `allowPrivilegeEscalation: false`
|
|
728
|
-
- [ ] Todas las capacidades eliminadas (`capabilities.drop: [ALL]`)
|
|
729
|
-
- [ ] ServiceAccount dedicado por app, no `default`
|
|
730
|
-
- [ ] `automountServiceAccountToken: false` salvo que sea necesario
|
|
731
|
-
- [ ] El RBAC sigue el mínimo privilegio (usa `Role`, no `ClusterRole`, salvo que sea necesario)
|
|
732
|
-
- [ ] Secretos gestionados con Sealed Secrets o External Secrets Operator
|
|
733
|
-
|
|
734
|
-
### Confiabilidad
|
|
735
|
-
- [ ] Los 3 tipos de probes configurados (startup + liveness + readiness)
|
|
736
|
-
- [ ] Requests Y limits de recursos definidos en cada contenedor
|
|
737
|
-
- [ ] `minReplicas: 2+` para cualquier carga de producción
|
|
738
|
-
- [ ] PodDisruptionBudget definido para servicios con estado o críticos
|
|
739
|
-
- [ ] Estrategia `RollingUpdate` con `maxUnavailable: 0`
|
|
740
|
-
- [ ] HPA configurado para servicios de carga variable
|
|
741
|
-
|
|
742
|
-
### Observabilidad
|
|
743
|
-
- [ ] La app expone endpoints `/health` (liveness) y `/ready` (readiness)
|
|
744
|
-
- [ ] Logging JSON estructurado (sin PII en los logs)
|
|
745
|
-
- [ ] Etiquetas de recursos: `app`, `version`, `environment`
|
|
746
|
-
|
|
747
|
-
---
|
|
748
|
-
|
|
749
|
-
## Skills relacionadas
|
|
750
|
-
|
|
751
|
-
- `patrones-docker` — Dockerfiles multi-stage y seguridad de imágenes
|
|
752
|
-
- `patrones-despliegue` — Pipelines de CI/CD, estrategia de rollback, endpoints de health check
|
|
753
|
-
- `revision-seguridad` — Contexto más amplio de endurecimiento de seguridad
|
|
754
|
-
- `flujo-git` — Integración GitOps con K8s (patrones ArgoCD / Flux)
|