@saulwade/swl-ses 1.0.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/CLAUDE.md +238 -0
- package/README.md +560 -0
- package/_userland/agentes/.gitkeep +0 -0
- package/_userland/habilidades/.gitkeep +0 -0
- package/agentes/.evolved.json +9 -0
- package/agentes/accesibilidad-wcag-swl.md +692 -0
- package/agentes/arquitecto-swl.md +238 -0
- package/agentes/auto-evolucion-swl.md +854 -0
- package/agentes/backend-api-swl.md +470 -0
- package/agentes/backend-csharp-swl.md +418 -0
- package/agentes/backend-go-swl.md +388 -0
- package/agentes/backend-java-swl.md +279 -0
- package/agentes/backend-node-swl.md +477 -0
- package/agentes/backend-python-swl.md +608 -0
- package/agentes/backend-rust-swl.md +362 -0
- package/agentes/backend-workers-swl.md +480 -0
- package/agentes/cloud-infra-swl.md +485 -0
- package/agentes/consolidador-swl.md +539 -0
- package/agentes/datos-swl.md +584 -0
- package/agentes/depurador-swl.md +349 -0
- package/agentes/devops-ci-swl.md +374 -0
- package/agentes/disenador-ui-swl.md +558 -0
- package/agentes/documentador-swl.md +343 -0
- package/agentes/evals/arquitecto-swl.evals.json +56 -0
- package/agentes/evals/auto-evolucion-swl.evals.json +68 -0
- package/agentes/evals/implementador-swl.evals.json +56 -0
- package/agentes/evals/orquestador-swl.evals.json +60 -0
- package/agentes/evals/perfilador-usuario-swl.evals.json +60 -0
- package/agentes/evals/red-team-swl.evals.json +59 -0
- package/agentes/evals/revisor-codigo-swl.evals.json +59 -0
- package/agentes/frontend-angular-swl.md +627 -0
- package/agentes/frontend-css-swl.md +720 -0
- package/agentes/frontend-react-swl.md +696 -0
- package/agentes/frontend-swl.md +500 -0
- package/agentes/frontend-tailwind-swl.md +830 -0
- package/agentes/implementador-swl.md +328 -0
- package/agentes/investigador-swl.md +430 -0
- package/agentes/investigador-ux-swl.md +500 -0
- package/agentes/llm-apps-swl.md +276 -0
- package/agentes/migrador-swl.md +417 -0
- package/agentes/mobile-android-swl.md +509 -0
- package/agentes/mobile-cross-swl.md +539 -0
- package/agentes/mobile-ios-swl.md +500 -0
- package/agentes/mobile-testing-swl.md +300 -0
- package/agentes/notificador-swl.md +916 -0
- package/agentes/observabilidad-swl.md +436 -0
- package/agentes/orquestador-swl.md +884 -0
- package/agentes/pagos-swl.md +283 -0
- package/agentes/perfilador-usuario-swl.md +306 -0
- package/agentes/planificador-swl.md +402 -0
- package/agentes/producto-prd-swl.md +587 -0
- package/agentes/red-team-swl.md +216 -0
- package/agentes/release-manager-swl.md +568 -0
- package/agentes/rendimiento-swl.md +714 -0
- package/agentes/resolutor-build-swl.md +243 -0
- package/agentes/revisor-angular-swl.md +276 -0
- package/agentes/revisor-codigo-swl.md +348 -0
- package/agentes/revisor-csharp-swl.md +262 -0
- package/agentes/revisor-go-swl.md +257 -0
- package/agentes/revisor-java-swl.md +255 -0
- package/agentes/revisor-kotlin-swl.md +271 -0
- package/agentes/revisor-nextjs-swl.md +279 -0
- package/agentes/revisor-php-swl.md +269 -0
- package/agentes/revisor-react-swl.md +276 -0
- package/agentes/revisor-rust-swl.md +344 -0
- package/agentes/revisor-seguridad-swl.md +390 -0
- package/agentes/revisor-swift-swl.md +266 -0
- package/agentes/revisor-typescript-swl.md +344 -0
- package/agentes/sre-swl.md +265 -0
- package/agentes/tdd-qa-swl.md +354 -0
- package/agentes/ux-disenador-swl.md +501 -0
- package/bin/lib/bot-comandos.js +1030 -0
- package/bin/lib/bot-discovery.js +182 -0
- package/bin/lib/bot-git.js +142 -0
- package/bin/swl-ses.js +325 -0
- package/bin/swl-telegram-bot.js +442 -0
- package/bin/swl-telegram-bot.plist +21 -0
- package/bin/swl-telegram-bot.service +14 -0
- package/comandos/swl/.evolved.json +23 -0
- package/comandos/swl/actualizar.md +174 -0
- package/comandos/swl/adoptar-proyecto.md +207 -0
- package/comandos/swl/aprender.md +701 -0
- package/comandos/swl/auditar-deps.md +134 -0
- package/comandos/swl/autoresearch.md +170 -0
- package/comandos/swl/ayuda.md +224 -0
- package/comandos/swl/brainstorm.md +50 -0
- package/comandos/swl/checkpoint.md +330 -0
- package/comandos/swl/compactar.md +283 -0
- package/comandos/swl/configurar-ci.md +227 -0
- package/comandos/swl/contexto.md +112 -0
- package/comandos/swl/contribuir.md +233 -0
- package/comandos/swl/crear-skill.md +292 -0
- package/comandos/swl/cron.md +196 -0
- package/comandos/swl/dashboard.md +146 -0
- package/comandos/swl/discutir-fase.md +230 -0
- package/comandos/swl/ejecutar-fase.md +135 -0
- package/comandos/swl/evaluar-skill.md +487 -0
- package/comandos/swl/evolucion-estado.md +142 -0
- package/comandos/swl/evolucionar.md +259 -0
- package/comandos/swl/exportar-vault.md +189 -0
- package/comandos/swl/gateway.md +158 -0
- package/comandos/swl/inbox.md +116 -0
- package/comandos/swl/instalar.md +220 -0
- package/comandos/swl/instintos.md +86 -0
- package/comandos/swl/mapear-codebase.md +312 -0
- package/comandos/swl/mcp-status.md +175 -0
- package/comandos/swl/metricas.md +270 -0
- package/comandos/swl/modelo.md +102 -0
- package/comandos/swl/notificaciones.md +396 -0
- package/comandos/swl/nuevo-proyecto.md +154 -0
- package/comandos/swl/planear-fase.md +221 -0
- package/comandos/swl/plugins.md +256 -0
- package/comandos/swl/reflect-skills.md +125 -0
- package/comandos/swl/release.md +217 -0
- package/comandos/swl/revisar-impacto.md +206 -0
- package/comandos/swl/revisar.md +330 -0
- package/comandos/swl/salud.md +363 -0
- package/comandos/swl/sesiones.md +200 -0
- package/comandos/swl/skill-search.md +113 -0
- package/comandos/swl/verificar.md +585 -0
- package/comandos/swl/wiki.md +620 -0
- package/contextos/dev.md +32 -0
- package/contextos/research.md +30 -0
- package/contextos/review.md +31 -0
- package/habilidades/accesibilidad-a11y/SKILL.md +201 -0
- package/habilidades/accesibilidad-a11y/evals/evals.json +56 -0
- package/habilidades/accesibilidad-a11y/recursos/ejemplos-y-checklist-completo.md +441 -0
- package/habilidades/agent-browser/SKILL.md +218 -0
- package/habilidades/agentes-como-servicio/SKILL.md +218 -0
- package/habilidades/ai-runtime-security/SKILL.md +273 -0
- package/habilidades/angular-avanzado/SKILL.md +164 -0
- package/habilidades/angular-avanzado/recursos/ejemplos-avanzados.md +219 -0
- package/habilidades/angular-moderno/SKILL.md +186 -0
- package/habilidades/angular-moderno/evals/evals.json +45 -0
- package/habilidades/angular-moderno/recursos/ejemplos-avanzados.md +106 -0
- package/habilidades/api-rest-diseno/SKILL.md +191 -0
- package/habilidades/api-rest-diseno/recursos/openapi-template.yaml +506 -0
- package/habilidades/api-rest-diseno/recursos/referencia-api.md +140 -0
- package/habilidades/aprendizaje-continuo/SKILL.md +151 -0
- package/habilidades/aprendizaje-continuo/evals/evals.json +53 -0
- package/habilidades/aprendizaje-continuo/recursos/referencia-instintos.md +290 -0
- package/habilidades/async-python/SKILL.md +149 -0
- package/habilidades/async-python/evals/evals.json +47 -0
- package/habilidades/async-python/recursos/patrones-y-ejemplos-completos.md +292 -0
- package/habilidades/auth-patrones/.evolved.json +9 -0
- package/habilidades/auth-patrones/SKILL.md +413 -0
- package/habilidades/auth-patrones/recursos/implementaciones-completas.md +229 -0
- package/habilidades/auto-evolucion-protocolo/SKILL.md +276 -0
- package/habilidades/auto-evolucion-protocolo/evals/evals.json +55 -0
- package/habilidades/auto-evolucion-protocolo/recursos/referencia-completa.md +145 -0
- package/habilidades/autoresearch/SKILL.md +268 -0
- package/habilidades/autoresearch/evals/evals.json +41 -0
- package/habilidades/autoresearch/recursos/checklist-template.md +191 -0
- package/habilidades/autoresearch/scripts/calcular-score.js +88 -0
- package/habilidades/azure-cloud/SKILL.md +308 -0
- package/habilidades/azure-cloud/recursos/aks.md +327 -0
- package/habilidades/backend-mcp-servidor/SKILL.md +270 -0
- package/habilidades/backend-production-resilience/SKILL.md +288 -0
- package/habilidades/brainstorming/SKILL.md +295 -0
- package/habilidades/brainstorming/recursos/componentes-html.md +247 -0
- package/habilidades/build-errors-cpp/SKILL.md +270 -0
- package/habilidades/build-errors-csharp/SKILL.md +265 -0
- package/habilidades/build-errors-go/SKILL.md +306 -0
- package/habilidades/build-errors-java/SKILL.md +278 -0
- package/habilidades/build-errors-kotlin/SKILL.md +303 -0
- package/habilidades/build-errors-nextjs/SKILL.md +312 -0
- package/habilidades/build-errors-php/SKILL.md +270 -0
- package/habilidades/build-errors-python/SKILL.md +292 -0
- package/habilidades/build-errors-rust/SKILL.md +284 -0
- package/habilidades/build-errors-swift/SKILL.md +272 -0
- package/habilidades/build-errors-typescript/SKILL.md +369 -0
- package/habilidades/checklist-calidad/SKILL.md +271 -0
- package/habilidades/checklist-calidad/recursos/quality-report-template.md +148 -0
- package/habilidades/checklist-seguridad/SKILL.md +285 -0
- package/habilidades/checkpoints-verificacion/SKILL.md +298 -0
- package/habilidades/checkpoints-verificacion/recursos/checkpoint-templates.md +360 -0
- package/habilidades/ci-cd-pipelines/SKILL.md +157 -0
- package/habilidades/ci-cd-pipelines/recursos/github-actions-template.yaml +403 -0
- package/habilidades/ci-cd-pipelines/recursos/pipelines-completos.md +487 -0
- package/habilidades/cloud-aws/SKILL.md +142 -0
- package/habilidades/cloud-aws/recursos/servicios-aws-referencia.md +321 -0
- package/habilidades/compactacion-contexto/SKILL.md +247 -0
- package/habilidades/contenedores-docker/SKILL.md +137 -0
- package/habilidades/contenedores-docker/recursos/dockerfile-template.dockerfile +160 -0
- package/habilidades/contenedores-docker/recursos/ejemplos-y-configuraciones.md +327 -0
- package/habilidades/context-builder/SKILL.md +170 -0
- package/habilidades/control-profundidad/SKILL.md +128 -0
- package/habilidades/csharp-experto/SKILL.md +322 -0
- package/habilidades/csharp-patrones/SKILL.md +316 -0
- package/habilidades/csharp-testing/SKILL.md +286 -0
- package/habilidades/css-moderno/SKILL.md +166 -0
- package/habilidades/css-moderno/evals/evals.json +43 -0
- package/habilidades/css-moderno/recursos/ejemplos-y-patrones-completos.md +337 -0
- package/habilidades/datos-etl/SKILL.md +129 -0
- package/habilidades/datos-etl/recursos/implementaciones-completas.md +322 -0
- package/habilidades/dbml-experto/SKILL.md +339 -0
- package/habilidades/dbml-experto/evals/evals.json +56 -0
- package/habilidades/dependencias-auditoria/SKILL.md +320 -0
- package/habilidades/deprecacion-migracion/SKILL.md +169 -0
- package/habilidades/deprecacion-migracion/recursos/implementaciones-completas.md +220 -0
- package/habilidades/design-tokens/SKILL.md +158 -0
- package/habilidades/design-tokens/recursos/tokens-y-configuracion.md +363 -0
- package/habilidades/devsecops-pipeline-security/SKILL.md +309 -0
- package/habilidades/diagrama-arquitectura/SKILL.md +165 -0
- package/habilidades/diagrama-arquitectura/assets/template.html +276 -0
- package/habilidades/discutir-fase/SKILL.md +188 -0
- package/habilidades/diseno-herramientas-agente/SKILL.md +199 -0
- package/habilidades/diseno-responsivo/SKILL.md +186 -0
- package/habilidades/diseno-responsivo/recursos/ejemplos-layouts.md +156 -0
- package/habilidades/django-experto/SKILL.md +205 -0
- package/habilidades/django-experto/recursos/async-django.md +390 -0
- package/habilidades/django-experto/recursos/drf-patrones.md +438 -0
- package/habilidades/django-experto/recursos/orm-avanzado.md +382 -0
- package/habilidades/django-experto/recursos/referencia-completa.md +188 -0
- package/habilidades/django-experto/recursos/testing-django.md +415 -0
- package/habilidades/doc-sync/SKILL.md +280 -0
- package/habilidades/drift-detection/SKILL.md +179 -0
- package/habilidades/ejecutar-fase/SKILL.md +468 -0
- package/habilidades/estilo-sin-ai-isms/SKILL.md +775 -0
- package/habilidades/estilo-sin-ai-isms/evals/evals.json +63 -0
- package/habilidades/estilo-sin-ai-isms/scripts/detectar_aiisms.py +500 -0
- package/habilidades/estructura-proyecto-claude/SKILL.md +215 -0
- package/habilidades/estructura-proyecto-claude/recursos/claude-md-template.md +261 -0
- package/habilidades/estructura-proyecto-claude/recursos/configuracion-y-extensiones.md +176 -0
- package/habilidades/estructura-proyecto-claude/recursos/frontmatter-y-hooks-referencia.md +289 -0
- package/habilidades/estructura-proyecto-claude/recursos/mcp-json-template.json +77 -0
- package/habilidades/estructura-proyecto-claude/recursos/variantes-por-stack.md +177 -0
- package/habilidades/evaluacion-agentes/SKILL.md +314 -0
- package/habilidades/event-driven/SKILL.md +153 -0
- package/habilidades/event-driven/recursos/implementaciones-completas.md +423 -0
- package/habilidades/extraccion-documentos/SKILL.md +221 -0
- package/habilidades/extractor-de-aprendizajes/.evolved.json +9 -0
- package/habilidades/extractor-de-aprendizajes/SKILL.md +311 -0
- package/habilidades/extractor-de-aprendizajes/evals/evals.json +55 -0
- package/habilidades/fastapi-experto/SKILL.md +221 -0
- package/habilidades/fastapi-experto/recursos/async-patterns.md +438 -0
- package/habilidades/fastapi-experto/recursos/dependency-injection.md +330 -0
- package/habilidades/fastapi-experto/recursos/referencia-completa.md +79 -0
- package/habilidades/fastapi-experto/recursos/testing-httpx.md +420 -0
- package/habilidades/filament-admin/SKILL.md +290 -0
- package/habilidades/frontend-avanzado/SKILL.md +257 -0
- package/habilidades/frontend-avanzado/recursos/apis-nativas-ejemplos.md +341 -0
- package/habilidades/gcp-cloud/SKILL.md +260 -0
- package/habilidades/gcp-cloud/recursos/gke.md +234 -0
- package/habilidades/gcp-cloud/recursos/terraform-gcp.md +307 -0
- package/habilidades/generacion-mermaid/SKILL.md +229 -0
- package/habilidades/git-worktrees-paralelo/SKILL.md +270 -0
- package/habilidades/go-experto/SKILL.md +305 -0
- package/habilidades/go-patrones/SKILL.md +299 -0
- package/habilidades/go-testing/SKILL.md +291 -0
- package/habilidades/graphql-experto/SKILL.md +323 -0
- package/habilidades/guardrail-semantico/SKILL.md +282 -0
- package/habilidades/harness-claude-code/SKILL.md +299 -0
- package/habilidades/iam-secretos/SKILL.md +265 -0
- package/habilidades/iam-secretos/recursos/implementaciones-completas.md +356 -0
- package/habilidades/infra-github-actions/SKILL.md +166 -0
- package/habilidades/instalar-sistema/.evolved.json +9 -0
- package/habilidades/instalar-sistema/SKILL.md +221 -0
- package/habilidades/java-experto/SKILL.md +290 -0
- package/habilidades/java-patrones/SKILL.md +275 -0
- package/habilidades/java-testing/SKILL.md +288 -0
- package/habilidades/kotlin-compose/SKILL.md +278 -0
- package/habilidades/kotlin-compose/recursos/animaciones-performance.md +93 -0
- package/habilidades/kotlin-experto/SKILL.md +318 -0
- package/habilidades/kotlin-testing/SKILL.md +267 -0
- package/habilidades/kotlin-testing/recursos/testing-avanzado.md +74 -0
- package/habilidades/kubernetes-orquestacion/SKILL.md +152 -0
- package/habilidades/kubernetes-orquestacion/recursos/manifiestos-completos.md +452 -0
- package/habilidades/langchain-langraph/SKILL.md +386 -0
- package/habilidades/langchain-langraph/recursos/evaluacion-rag.md +321 -0
- package/habilidades/langchain-langraph/recursos/rag-maturity-model.md +225 -0
- package/habilidades/langchain-langraph/recursos/vectorstores.md +306 -0
- package/habilidades/legacy-code-rescue/SKILL.md +267 -0
- package/habilidades/likec4-experto/SKILL.md +412 -0
- package/habilidades/likec4-experto/evals/evals.json +69 -0
- package/habilidades/manejo-errores/.evolved.json +9 -0
- package/habilidades/manejo-errores/SKILL.md +407 -0
- package/habilidades/manejo-errores/recursos/implementaciones-completas.md +248 -0
- package/habilidades/mapear-codebase/SKILL.md +275 -0
- package/habilidades/memoria-busqueda/SKILL.md +194 -0
- package/habilidades/memoria-busqueda/evals/evals.json +44 -0
- package/habilidades/meta-skills-estandar/SKILL.md +298 -0
- package/habilidades/meta-skills-estandar/recursos/anti-patrones-y-leyes.md +205 -0
- package/habilidades/meta-skills-estandar/recursos/frameworks-seguridad.md +107 -0
- package/habilidades/meta-skills-estandar/recursos/idiomas-framework.md +60 -0
- package/habilidades/meta-skills-estandar/recursos/skills-as-agents.md +163 -0
- package/habilidades/microservicios/SKILL.md +155 -0
- package/habilidades/microservicios/recursos/patrones-y-ejemplos-completos.md +325 -0
- package/habilidades/mobile-flutter/SKILL.md +199 -0
- package/habilidades/mobile-flutter/recursos/ejemplos-completos.md +319 -0
- package/habilidades/mobile-react-native/SKILL.md +176 -0
- package/habilidades/mobile-react-native/recursos/ejemplos-completos.md +216 -0
- package/habilidades/mongodb-experto/SKILL.md +302 -0
- package/habilidades/monitoring-alertas/SKILL.md +201 -0
- package/habilidades/monitoring-alertas/recursos/instrumentacion-y-alertas.md +301 -0
- package/habilidades/nestjs-experto/SKILL.md +307 -0
- package/habilidades/nestjs-experto/recursos/guards-interceptors.md +339 -0
- package/habilidades/nestjs-experto/recursos/modulos-di.md +287 -0
- package/habilidades/nestjs-experto/recursos/testing-nestjs.md +354 -0
- package/habilidades/nextjs-experto/SKILL.md +335 -0
- package/habilidades/nextjs-patrones/SKILL.md +303 -0
- package/habilidades/nextjs-testing/SKILL.md +331 -0
- package/habilidades/node-experto/.evolved.json +9 -0
- package/habilidades/node-experto/SKILL.md +266 -0
- package/habilidades/node-experto/recursos/patrones-completos.md +283 -0
- package/habilidades/notificaciones-multicanal/SKILL.md +159 -0
- package/habilidades/notificaciones-multicanal/recursos/config-template.json +115 -0
- package/habilidades/notificaciones-multicanal/recursos/configuracion-y-templates.md +303 -0
- package/habilidades/nuevo-proyecto/SKILL.md +204 -0
- package/habilidades/orquestacion-async/SKILL.md +303 -0
- package/habilidades/paid-media-tracking/SKILL.md +269 -0
- package/habilidades/paid-media-tracking/recursos/auditoria-tracking.md +220 -0
- package/habilidades/paid-media-tracking/recursos/google-ads-api.md +215 -0
- package/habilidades/patrones-python/SKILL.md +228 -0
- package/habilidades/patrones-python/evals/evals.json +56 -0
- package/habilidades/patrones-python/recursos/patrones-avanzados.md +469 -0
- package/habilidades/patrones-python/recursos/referencia-completa.md +202 -0
- package/habilidades/perfil-usuario/SKILL.md +200 -0
- package/habilidades/perfil-usuario/evals/evals.json +55 -0
- package/habilidades/performance-baseline/SKILL.md +297 -0
- package/habilidades/php-experto/SKILL.md +291 -0
- package/habilidades/php-patrones/SKILL.md +306 -0
- package/habilidades/php-testing/SKILL.md +280 -0
- package/habilidades/planear-fase/SKILL.md +269 -0
- package/habilidades/postgresql-experto/SKILL.md +151 -0
- package/habilidades/postgresql-experto/evals/evals.json +53 -0
- package/habilidades/postgresql-experto/recursos/referencia-completa.md +215 -0
- package/habilidades/prevencion-racionalizacion/SKILL.md +175 -0
- package/habilidades/prevencion-sobreingenieria/SKILL.md +323 -0
- package/habilidades/privacy-memoria/SKILL.md +141 -0
- package/habilidades/privacy-memoria/evals/evals.json +43 -0
- package/habilidades/prompt-engineering/SKILL.md +518 -0
- package/habilidades/prompt-engineering/recursos/patrones-avanzados.md +467 -0
- package/habilidades/rag-arquitectura/SKILL.md +338 -0
- package/habilidades/rails-experto/SKILL.md +237 -0
- package/habilidades/rails-experto/recursos/active-record.md +260 -0
- package/habilidades/rails-experto/recursos/hotwire-turbo.md +293 -0
- package/habilidades/rails-experto/recursos/testing-rspec.md +362 -0
- package/habilidades/react-experto/SKILL.md +209 -0
- package/habilidades/react-experto/evals/evals.json +55 -0
- package/habilidades/react-experto/recursos/patrones-y-ejemplos-completos.md +240 -0
- package/habilidades/react-optimizacion/SKILL.md +174 -0
- package/habilidades/react-optimizacion/recursos/patrones-avanzados.md +138 -0
- package/habilidades/redis-experto/SKILL.md +305 -0
- package/habilidades/release-semver/.evolved.json +9 -0
- package/habilidades/release-semver/SKILL.md +248 -0
- package/habilidades/release-semver/scripts/generar-changelog.sh +238 -0
- package/habilidades/rust-experto/SKILL.md +400 -0
- package/habilidades/rust-patrones/SKILL.md +296 -0
- package/habilidades/rust-testing/SKILL.md +311 -0
- package/habilidades/seguridad-skills-ia/SKILL.md +262 -0
- package/habilidades/sql-optimizacion/SKILL.md +200 -0
- package/habilidades/sql-optimizacion/evals/evals.json +54 -0
- package/habilidades/sql-optimizacion/recursos/patrones-sql-avanzados.md +131 -0
- package/habilidades/sre-patrones/SKILL.md +333 -0
- package/habilidades/sre-patrones/recursos/chaos-engineering.md +241 -0
- package/habilidades/sre-patrones/recursos/oncall-design.md +236 -0
- package/habilidades/stripe-pagos/SKILL.md +550 -0
- package/habilidades/stripe-pagos/recursos/errores-reintentos.md +390 -0
- package/habilidades/stripe-pagos/recursos/stripe-connect.md +290 -0
- package/habilidades/structured-outputs/SKILL.md +343 -0
- package/habilidades/swift-experto/SKILL.md +320 -0
- package/habilidades/swift-experto/recursos/keychain-y-wrappers.md +110 -0
- package/habilidades/swift-patrones/SKILL.md +313 -0
- package/habilidades/swift-patrones/recursos/tca-ejemplo-completo.md +113 -0
- package/habilidades/swift-testing/SKILL.md +254 -0
- package/habilidades/swift-testing/recursos/xcuitest-planes.md +143 -0
- package/habilidades/swl-dashboard/SKILL.md +370 -0
- package/habilidades/swl-markitdown/SKILL.md +285 -0
- package/habilidades/swl-markitdown/evals/evals.json +52 -0
- package/habilidades/swl-revisar-impacto/SKILL.md +233 -0
- package/habilidades/tailwind-experto/SKILL.md +240 -0
- package/habilidades/tailwind-experto/recursos/referencia-completa.md +184 -0
- package/habilidades/tdd-workflow/SKILL.md +293 -0
- package/habilidades/terraform-experto/SKILL.md +321 -0
- package/habilidades/testing-python/SKILL.md +340 -0
- package/habilidades/testing-python/recursos/ejemplos-completos.md +167 -0
- package/habilidades/threat-model-lite/SKILL.md +246 -0
- package/habilidades/tracing-processor/SKILL.md +212 -0
- package/habilidades/tracking-measurement/SKILL.md +239 -0
- package/habilidades/tracking-measurement/recursos/consent-mode.md +231 -0
- package/habilidades/tracking-measurement/recursos/gtm-datalayer.md +216 -0
- package/habilidades/tracking-measurement/recursos/meta-capi.md +262 -0
- package/habilidades/typescript-avanzado/SKILL.md +144 -0
- package/habilidades/typescript-avanzado/evals/evals.json +55 -0
- package/habilidades/typescript-avanzado/recursos/patrones-y-ejemplos-completos.md +298 -0
- package/habilidades/typescript-diagnosticos/SKILL.md +513 -0
- package/habilidades/ux-diseno/SKILL.md +116 -0
- package/habilidades/ux-diseno/evals/evals.json +43 -0
- package/habilidades/ux-diseno/recursos/patrones-ux-referencia.md +214 -0
- package/habilidades/validacion-ci-sistema/SKILL.md +136 -0
- package/habilidades/validacion-ci-sistema/recursos/validadores-completos.md +369 -0
- package/habilidades/validacion-ci-sistema/scripts/validar-sistema.sh +286 -0
- package/habilidades/verificacion-evidencia/SKILL.md +160 -0
- package/habilidades/verificar-trabajo/SKILL.md +303 -0
- package/habilidades/verificar-trabajo/recursos/plantilla-verificacion.md +60 -0
- package/habilidades/wiki-conocimiento/SKILL.md +276 -0
- package/habilidades/wireframes-flujos/SKILL.md +212 -0
- package/habilidades/wireframes-flujos/recursos/referencia-completa.md +192 -0
- package/habilidades/workflow-claude-code/SKILL.md +260 -0
- package/habilidades/workflow-claude-code/recursos/referencia-completa.md +109 -0
- package/hooks/_run-hook.sh +57 -0
- package/hooks/actualizar-perfil-usuario.js +364 -0
- package/hooks/agente-lifecycle.js +71 -0
- package/hooks/aiisms-detector.js +173 -0
- package/hooks/audit-trail.js +204 -0
- package/hooks/auto-background.js +97 -0
- package/hooks/auto-consolidacion.js +178 -0
- package/hooks/auto-evolucion.js +666 -0
- package/hooks/auto-restaurar-settings.js +360 -0
- package/hooks/calidad-pre-commit.js +929 -0
- package/hooks/calidad-typescript.js +511 -0
- package/hooks/captura-feedback-usuario.js +148 -0
- package/hooks/check-update.js +211 -0
- package/hooks/clasificador-mensajes.js +271 -0
- package/hooks/degradacion-instintos.js +272 -0
- package/hooks/escaneo-secretos.js +389 -0
- package/hooks/extraccion-aprendizajes.js +763 -0
- package/hooks/grafo-contexto.js +129 -0
- package/hooks/graph-update.js +67 -0
- package/hooks/guardrail-modelo.js +247 -0
- package/hooks/inbox-aviso.js +75 -0
- package/hooks/inyeccion-contexto.js +246 -0
- package/hooks/lib/abort-registry.js +214 -0
- package/hooks/lib/agent-backend.js +210 -0
- package/hooks/lib/agent-comms.js +263 -0
- package/hooks/lib/agent-issue-codes.js +284 -0
- package/hooks/lib/agent-matcher.js +189 -0
- package/hooks/lib/async-hook-registry.js +252 -0
- package/hooks/lib/atomic-write.js +130 -0
- package/hooks/lib/auto-consolidator.js +335 -0
- package/hooks/lib/canary-skills.js +187 -0
- package/hooks/lib/consolidation-lock.js +291 -0
- package/hooks/lib/context-builder.js +430 -0
- package/hooks/lib/context-compressor.js +657 -0
- package/hooks/lib/convergence-detector.js +105 -0
- package/hooks/lib/delegation-tracker.js +198 -0
- package/hooks/lib/detectar-package-manager.js +423 -0
- package/hooks/lib/edit-accumulator.js +171 -0
- package/hooks/lib/error-classifier.js +308 -0
- package/hooks/lib/event-bus.js +112 -0
- package/hooks/lib/evolution-tracker.js +442 -0
- package/hooks/lib/execution-state.js +316 -0
- package/hooks/lib/fingerprint-id.js +135 -0
- package/hooks/lib/gateway-notify.js +116 -0
- package/hooks/lib/graph-security.js +75 -0
- package/hooks/lib/guardrail-metrics.js +202 -0
- package/hooks/lib/hook-circuit-breaker.js +206 -0
- package/hooks/lib/loop-detector.js +267 -0
- package/hooks/lib/mcp-health.js +184 -0
- package/hooks/lib/mcp-pool.js +436 -0
- package/hooks/lib/memory-search.js +506 -0
- package/hooks/lib/merkle-audit.js +96 -0
- package/hooks/lib/model-router.js +222 -0
- package/hooks/lib/normalize-error.js +324 -0
- package/hooks/lib/normalize-input.js +65 -0
- package/hooks/lib/nudge-tracker.js +306 -0
- package/hooks/lib/otlp-exporter.js +365 -0
- package/hooks/lib/performance-marks.js +239 -0
- package/hooks/lib/privacy-filter.js +128 -0
- package/hooks/lib/prompt-injection-scanner.js +209 -0
- package/hooks/lib/provenance-tracker.js +183 -0
- package/hooks/lib/rate-limit-tracker.js +253 -0
- package/hooks/lib/reflect-classifier.js +164 -0
- package/hooks/lib/resource-quota.js +122 -0
- package/hooks/lib/retry-jitter.js +165 -0
- package/hooks/lib/risk-engine.js +368 -0
- package/hooks/lib/run-log.js +408 -0
- package/hooks/lib/session-fts.js +379 -0
- package/hooks/lib/session-store.js +293 -0
- package/hooks/lib/singleton-guard.js +159 -0
- package/hooks/lib/skill-auditor.js +588 -0
- package/hooks/lib/sync-status.js +228 -0
- package/hooks/lib/taint-tracker.js +107 -0
- package/hooks/lib/task-service.js +295 -0
- package/hooks/lib/tech-skills-map.js +146 -0
- package/hooks/lib/telegram-cliente.js +159 -0
- package/hooks/lib/telegram-config.js +170 -0
- package/hooks/lib/token-budget.js +156 -0
- package/hooks/lib/token-estimator.js +420 -0
- package/hooks/lib/toon-compressor.js +245 -0
- package/hooks/lib/usage-model.js +183 -0
- package/hooks/lib/variable-resolver.js +230 -0
- package/hooks/linea-estado.js +324 -0
- package/hooks/metricas-evolucion.js +209 -0
- package/hooks/monitor-contexto.js +325 -0
- package/hooks/notificacion-sesion-stop.js +198 -0
- package/hooks/notificacion-telegram-notification.js +4 -0
- package/hooks/notificacion-telegram-subagent.js +4 -0
- package/hooks/notificacion-telegram.js +267 -0
- package/hooks/preservar-estado-pre-compact.js +150 -0
- package/hooks/proteccion-rutas.js +366 -0
- package/hooks/registro-turnos.js +209 -0
- package/hooks/resumen-sesion.js +249 -0
- package/hooks/risk-scoring.js +323 -0
- package/hooks/rotar-audit-auto.js +122 -0
- package/hooks/sugerir-regenerar-inventario.js +170 -0
- package/hooks/telemetria-agentes.js +167 -0
- package/hooks/tracking-costos.js +688 -0
- package/instintos/global.yaml +8 -0
- package/instintos/perfil-usuario.yaml +53 -0
- package/instintos/prompt-appendices.yaml +57 -0
- package/instintos/proyecto.yaml +372 -0
- package/manifiestos/gateway-config.json +77 -0
- package/manifiestos/handoff-context.json +223 -0
- package/manifiestos/hook-profiles.json +44 -0
- package/manifiestos/hooks-config.json +360 -0
- package/manifiestos/modulos.json +1173 -0
- package/manifiestos/perfiles.json +404 -0
- package/package.json +86 -0
- package/plantillas/ESTADO.md +109 -0
- package/plantillas/HOJA-RUTA.md +143 -0
- package/plantillas/PROYECTO.md +122 -0
- package/plantillas/REQUISITOS.md +132 -0
- package/plantillas/auditor-veto-template.md +105 -0
- package/plantillas/github-workflows/README.md +47 -0
- package/plantillas/github-workflows/release-please.yml +44 -0
- package/plantillas/github-workflows/swl-ci.yml +107 -0
- package/plantillas/github-workflows/swl-security.yml +51 -0
- package/plantillas/mcp-mineru.json +13 -0
- package/plantillas/research/ARQUITECTURA.md +220 -0
- package/plantillas/research/FUNCIONALIDADES.md +175 -0
- package/plantillas/research/RESUMEN.md +165 -0
- package/plantillas/research/STACK.md +233 -0
- package/plantillas/research/TRAMPAS.md +299 -0
- package/plantillas/skill-evals-template.json +44 -0
- package/plugin.json +343 -0
- package/reglas/accesibilidad.md +269 -0
- package/reglas/api-diseno.md +400 -0
- package/reglas/arquitectura.md +352 -0
- package/reglas/brevedad-output.md +124 -0
- package/reglas/cloud-infra.md +247 -0
- package/reglas/docs.md +245 -0
- package/reglas/estilo-codigo.md +201 -0
- package/reglas/git-workflow.md +245 -0
- package/reglas/gobernanza.md +271 -0
- package/reglas/harness-claude-code.md +213 -0
- package/reglas/hooks.md +186 -0
- package/reglas/lenguajes/csharp/estilo-codigo.md +231 -0
- package/reglas/lenguajes/csharp/hooks.md +281 -0
- package/reglas/lenguajes/csharp/patrones.md +226 -0
- package/reglas/lenguajes/csharp/seguridad.md +258 -0
- package/reglas/lenguajes/csharp/testing.md +176 -0
- package/reglas/lenguajes/go/estilo-codigo.md +195 -0
- package/reglas/lenguajes/go/hooks.md +249 -0
- package/reglas/lenguajes/go/patrones.md +249 -0
- package/reglas/lenguajes/go/seguridad.md +225 -0
- package/reglas/lenguajes/go/testing.md +272 -0
- package/reglas/lenguajes/java/estilo-codigo.md +217 -0
- package/reglas/lenguajes/java/hooks.md +251 -0
- package/reglas/lenguajes/java/patrones.md +226 -0
- package/reglas/lenguajes/java/seguridad.md +233 -0
- package/reglas/lenguajes/java/testing.md +238 -0
- package/reglas/lenguajes/kotlin/estilo-codigo.md +208 -0
- package/reglas/lenguajes/kotlin/hooks.md +245 -0
- package/reglas/lenguajes/kotlin/patrones.md +201 -0
- package/reglas/lenguajes/kotlin/seguridad.md +202 -0
- package/reglas/lenguajes/kotlin/testing.md +236 -0
- package/reglas/lenguajes/nextjs/estilo-codigo.md +175 -0
- package/reglas/lenguajes/nextjs/hooks.md +186 -0
- package/reglas/lenguajes/nextjs/patrones.md +225 -0
- package/reglas/lenguajes/nextjs/seguridad.md +216 -0
- package/reglas/lenguajes/nextjs/testing.md +193 -0
- package/reglas/lenguajes/php/estilo-codigo.md +228 -0
- package/reglas/lenguajes/php/hooks.md +165 -0
- package/reglas/lenguajes/php/patrones.md +233 -0
- package/reglas/lenguajes/php/seguridad.md +186 -0
- package/reglas/lenguajes/php/testing.md +205 -0
- package/reglas/lenguajes/rust/estilo-codigo.md +207 -0
- package/reglas/lenguajes/rust/hooks.md +240 -0
- package/reglas/lenguajes/rust/patrones.md +250 -0
- package/reglas/lenguajes/rust/seguridad.md +221 -0
- package/reglas/lenguajes/rust/testing.md +194 -0
- package/reglas/lenguajes/swift/estilo-codigo.md +238 -0
- package/reglas/lenguajes/swift/hooks.md +257 -0
- package/reglas/lenguajes/swift/patrones.md +235 -0
- package/reglas/lenguajes/swift/seguridad.md +248 -0
- package/reglas/lenguajes/swift/testing.md +242 -0
- package/reglas/markitdown.md +60 -0
- package/reglas/memoria-consolidada.md +209 -0
- package/reglas/patrones.md +225 -0
- package/reglas/performance.md +195 -0
- package/reglas/pruebas.md +159 -0
- package/reglas/seguridad-agentes.md +351 -0
- package/reglas/seguridad.md +151 -0
- package/reglas/skills-estandar.md +373 -0
- package/reglas/testing.md +193 -0
- package/schemas/agent-contract.json +176 -0
- package/schemas/agent-frontmatter.schema.json +149 -0
- package/schemas/agent-message.schema.json +53 -0
- package/schemas/agent-output-implementacion.schema.json +85 -0
- package/schemas/agent-output-planificacion.schema.json +113 -0
- package/schemas/agent-output-review.schema.json +78 -0
- package/schemas/diary-entry.schema.json +80 -0
- package/schemas/hook-profiles.schema.json +39 -0
- package/schemas/hooks-config.schema.json +74 -0
- package/schemas/instinct.schema.json +115 -0
- package/schemas/modulos.schema.json +29 -0
- package/schemas/perfiles.schema.json +28 -0
- package/schemas/plugin.schema.json +64 -0
- package/schemas/skill-evals.schema.json +95 -0
- package/schemas/skill-frontmatter.schema.json +170 -0
- package/scripts/actualizar.js +145 -0
- package/scripts/audit-skills.sh +78 -0
- package/scripts/auditar-agentes-gaps.js +149 -0
- package/scripts/auditar-cobertura-frameworks.js +241 -0
- package/scripts/auditar-skills-gaps.js +206 -0
- package/scripts/bootstrap-instintos.js +259 -0
- package/scripts/check-update.js +109 -0
- package/scripts/comandos/agents.js +105 -0
- package/scripts/comandos/info.js +108 -0
- package/scripts/comandos/install-asistido.js +186 -0
- package/scripts/comandos/skills.js +211 -0
- package/scripts/configurar-branch-protection.js +418 -0
- package/scripts/daemon-swl.py +388 -0
- package/scripts/desinstalar.js +130 -0
- package/scripts/doctor.js +559 -0
- package/scripts/field-report.js +199 -0
- package/scripts/generar-inventario.js +317 -0
- package/scripts/inbox-tmux-inject.js +161 -0
- package/scripts/inferir-herramientas-permitidas.js +586 -0
- package/scripts/inicializar.js +133 -0
- package/scripts/instalador.js +1031 -0
- package/scripts/instalar-git-hook.js +122 -0
- package/scripts/lib/agp-frontmatter.js +222 -0
- package/scripts/lib/append-con-marcadores.js +199 -0
- package/scripts/lib/artefactos-python.js +43 -0
- package/scripts/lib/audit-query.js +221 -0
- package/scripts/lib/autostart-linux.js +347 -0
- package/scripts/lib/autostart-macos.js +360 -0
- package/scripts/lib/autostart-windows.js +307 -0
- package/scripts/lib/budget-enforcer.js +252 -0
- package/scripts/lib/claude-sessions.js +285 -0
- package/scripts/lib/configurar-ci.js +380 -0
- package/scripts/lib/console-span-exporter.js +92 -0
- package/scripts/lib/contadores-inventario.js +217 -0
- package/scripts/lib/dashboard-widgets.js +290 -0
- package/scripts/lib/detectar-runtime.js +279 -0
- package/scripts/lib/detectar-stack.js +187 -0
- package/scripts/lib/diary-entry.js +234 -0
- package/scripts/lib/drift-detector.js +545 -0
- package/scripts/lib/estado.js +124 -0
- package/scripts/lib/gestor-componentes.js +243 -0
- package/scripts/lib/gitignore-manifest.js +305 -0
- package/scripts/lib/graph-analyze.py +556 -0
- package/scripts/lib/graph-builder.py +485 -0
- package/scripts/lib/graph-cluster.py +259 -0
- package/scripts/lib/health-row.js +168 -0
- package/scripts/lib/hooks-settings.js +789 -0
- package/scripts/lib/manifiestos.js +138 -0
- package/scripts/lib/mc-client.js +137 -0
- package/scripts/lib/notificaciones-telegram.js +1107 -0
- package/scripts/lib/npm-version.js +261 -0
- package/scripts/lib/paquetes-conocidos.js +50 -0
- package/scripts/lib/preservar-usuario.js +586 -0
- package/scripts/lib/prompt-builder.js +264 -0
- package/scripts/lib/resolver-externo.js +332 -0
- package/scripts/lib/schedule-parser.js +305 -0
- package/scripts/lib/scoring-instintos.js +240 -0
- package/scripts/lib/seguridad.js +160 -0
- package/scripts/lib/selector-interactivo.js +152 -0
- package/scripts/lib/semantic-search.js +242 -0
- package/scripts/lib/skill-discovery.js +234 -0
- package/scripts/lib/skill-metrics.js +246 -0
- package/scripts/lib/skill-normalizer.js +112 -0
- package/scripts/lib/skills-hub.js +340 -0
- package/scripts/lib/span-schema.js +134 -0
- package/scripts/lib/tool-cost-analyzer.js +255 -0
- package/scripts/lib/tracing-processor-interface.js +286 -0
- package/scripts/lib/transformadores/base.js +80 -0
- package/scripts/lib/transformadores/claude.js +124 -0
- package/scripts/lib/transformadores/codex.js +115 -0
- package/scripts/lib/transformadores/copilot.js +106 -0
- package/scripts/lib/transformadores/gemini.js +74 -0
- package/scripts/lib/transformadores/index.js +35 -0
- package/scripts/lib/transformadores/opencode.js +75 -0
- package/scripts/lib/ui.js +259 -0
- package/scripts/limpiar-artefactos-python.js +131 -0
- package/scripts/mcp-orchestrator.py +386 -0
- package/scripts/mcp-pool-manager.py +352 -0
- package/scripts/mcp-telemetry.py +378 -0
- package/scripts/poblar-evolvable.js +226 -0
- package/scripts/publicar.js +287 -0
- package/scripts/reflect-skills.js +403 -0
- package/scripts/rotar-audit-logs.js +185 -0
- package/scripts/run-skill-evals.js +242 -0
- package/scripts/smoke-test.js +374 -0
- package/scripts/token-analysis.py +471 -0
- package/scripts/validar-manifest.js +195 -0
- package/scripts/validar-memoria.js +321 -0
- package/scripts/validar-tests-aislamiento.js +184 -0
- package/scripts/validar-tokens-test.js +208 -0
- package/scripts/validar.js +147 -0
- package/scripts/validate-markdown.py +339 -0
- package/scripts/validate-skills.py +385 -0
- package/scripts/vendor/claude-usage/README.md +116 -0
- package/scripts/vendor/claude-usage/cli.py +334 -0
- package/scripts/vendor/claude-usage/dashboard.py +795 -0
- package/scripts/vendor/claude-usage/scanner.py +467 -0
- package/scripts/vendor/markitdown/cli.py +194 -0
- package/scripts/verificar-evolucion.js +289 -0
- package/scripts/verificar-release.js +494 -0
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "handoff-context",
|
|
4
|
+
"title": "SWL Handoff Context Schemas",
|
|
5
|
+
"description": "Schemas para contexto de transferencia entre agentes SWL. Portados del patrón HandoffContext/PipelineContext de rowboat con adaptación al sistema de agentes Claude Code.",
|
|
6
|
+
|
|
7
|
+
"definitions": {
|
|
8
|
+
|
|
9
|
+
"HandoffContext": {
|
|
10
|
+
"type": "object",
|
|
11
|
+
"description": "Contexto mínimo de transferencia entre dos agentes. Incluye trazabilidad de la cadena y limite de profundidad.",
|
|
12
|
+
"required": ["reason", "parentAgent", "transferCount"],
|
|
13
|
+
"additionalProperties": false,
|
|
14
|
+
"properties": {
|
|
15
|
+
"reason": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"enum": ["direct_handoff", "pipeline_execution", "task_delegation", "escalation", "review_request"],
|
|
18
|
+
"description": "Motivo de la transferencia. 'escalation' para problemas que superan capacidad del agente origen. 'review_request' para validación de calidad."
|
|
19
|
+
},
|
|
20
|
+
"parentAgent": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"description": "Nombre del agente que origina la transferencia (ej: 'orquestador-swl', 'planificador-swl')."
|
|
23
|
+
},
|
|
24
|
+
"transferCount": {
|
|
25
|
+
"type": "integer",
|
|
26
|
+
"minimum": 0,
|
|
27
|
+
"maximum": 10,
|
|
28
|
+
"description": "Número de transferencias desde el agente raíz. Si supera 10, el agente debe rechazar y reportar loop al usuario."
|
|
29
|
+
},
|
|
30
|
+
"sessionId": {
|
|
31
|
+
"type": "string",
|
|
32
|
+
"description": "ID de la sesión de Claude Code para correlación con run-log.js."
|
|
33
|
+
},
|
|
34
|
+
"metadata": {
|
|
35
|
+
"type": "object",
|
|
36
|
+
"description": "Datos adicionales específicos del dominio (libre). No incluir datos sensibles ni contexto de conversación completo.",
|
|
37
|
+
"additionalProperties": true
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
|
|
42
|
+
"PipelineContext": {
|
|
43
|
+
"type": "object",
|
|
44
|
+
"description": "Contexto enriquecido para ejecución de pipelines multi-agente (ej: fases del PLAN.md). Extiende HandoffContext con estado del pipeline.",
|
|
45
|
+
"required": ["reason", "parentAgent", "transferCount", "pipelineName", "currentStep", "totalSteps"],
|
|
46
|
+
"additionalProperties": false,
|
|
47
|
+
"properties": {
|
|
48
|
+
"reason": {
|
|
49
|
+
"type": "string",
|
|
50
|
+
"enum": ["pipeline_execution"],
|
|
51
|
+
"description": "Siempre 'pipeline_execution' para este schema."
|
|
52
|
+
},
|
|
53
|
+
"parentAgent": {
|
|
54
|
+
"type": "string"
|
|
55
|
+
},
|
|
56
|
+
"transferCount": {
|
|
57
|
+
"type": "integer",
|
|
58
|
+
"minimum": 0,
|
|
59
|
+
"maximum": 10
|
|
60
|
+
},
|
|
61
|
+
"sessionId": {
|
|
62
|
+
"type": "string"
|
|
63
|
+
},
|
|
64
|
+
"pipelineName": {
|
|
65
|
+
"type": "string",
|
|
66
|
+
"description": "Nombre del pipeline o fase (ej: 'fase-2-backend', 'ejecutar-plan-v3')."
|
|
67
|
+
},
|
|
68
|
+
"currentStep": {
|
|
69
|
+
"type": "integer",
|
|
70
|
+
"minimum": 1,
|
|
71
|
+
"description": "Número del paso actual (base 1)."
|
|
72
|
+
},
|
|
73
|
+
"totalSteps": {
|
|
74
|
+
"type": "integer",
|
|
75
|
+
"minimum": 1,
|
|
76
|
+
"description": "Total de pasos del pipeline."
|
|
77
|
+
},
|
|
78
|
+
"isLastStep": {
|
|
79
|
+
"type": "boolean",
|
|
80
|
+
"description": "true si currentStep === totalSteps."
|
|
81
|
+
},
|
|
82
|
+
"stepResults": {
|
|
83
|
+
"type": "array",
|
|
84
|
+
"description": "Resultados acumulados de pasos anteriores. Cada agente SOLO recibe los resultados relevantes para su paso, no el array completo.",
|
|
85
|
+
"items": {
|
|
86
|
+
"type": "object",
|
|
87
|
+
"required": ["step", "agentName"],
|
|
88
|
+
"properties": {
|
|
89
|
+
"step": {
|
|
90
|
+
"type": "integer",
|
|
91
|
+
"description": "Número del paso que produjo este resultado."
|
|
92
|
+
},
|
|
93
|
+
"agentName": {
|
|
94
|
+
"type": "string",
|
|
95
|
+
"description": "Agente que produjo este resultado."
|
|
96
|
+
},
|
|
97
|
+
"output": {
|
|
98
|
+
"type": "object",
|
|
99
|
+
"description": "Output estructurado del paso (artefactos: paths, resúmenes, decisiones).",
|
|
100
|
+
"additionalProperties": true
|
|
101
|
+
},
|
|
102
|
+
"status": {
|
|
103
|
+
"type": "string",
|
|
104
|
+
"enum": ["completed", "skipped", "failed"],
|
|
105
|
+
"default": "completed"
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
"pipelineData": {
|
|
111
|
+
"type": "object",
|
|
112
|
+
"description": "Datos compartidos mutables del pipeline (estado acumulado accesible por todos los pasos).",
|
|
113
|
+
"additionalProperties": true
|
|
114
|
+
},
|
|
115
|
+
"metadata": {
|
|
116
|
+
"type": "object",
|
|
117
|
+
"additionalProperties": true
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
|
|
122
|
+
"TaskDelegationContext": {
|
|
123
|
+
"type": "object",
|
|
124
|
+
"description": "Contexto para delegación de una tarea específica del PLAN.md a un agente especializado.",
|
|
125
|
+
"required": ["reason", "parentAgent", "transferCount", "taskId", "taskDescription"],
|
|
126
|
+
"additionalProperties": false,
|
|
127
|
+
"properties": {
|
|
128
|
+
"reason": {
|
|
129
|
+
"type": "string",
|
|
130
|
+
"enum": ["task_delegation"]
|
|
131
|
+
},
|
|
132
|
+
"parentAgent": {
|
|
133
|
+
"type": "string"
|
|
134
|
+
},
|
|
135
|
+
"transferCount": {
|
|
136
|
+
"type": "integer",
|
|
137
|
+
"minimum": 0,
|
|
138
|
+
"maximum": 10
|
|
139
|
+
},
|
|
140
|
+
"sessionId": {
|
|
141
|
+
"type": "string"
|
|
142
|
+
},
|
|
143
|
+
"taskId": {
|
|
144
|
+
"type": "string",
|
|
145
|
+
"description": "ID de la tarea del PLAN.md (ej: 'T-03')."
|
|
146
|
+
},
|
|
147
|
+
"taskDescription": {
|
|
148
|
+
"type": "string",
|
|
149
|
+
"maxLength": 500,
|
|
150
|
+
"description": "Descripción completa de la tarea del plan (self-contained, sin referencias a otros docs)."
|
|
151
|
+
},
|
|
152
|
+
"verificationCriteria": {
|
|
153
|
+
"type": "string",
|
|
154
|
+
"description": "Criterio de verificación de la tarea (copiado del PLAN.md)."
|
|
155
|
+
},
|
|
156
|
+
"relevantFiles": {
|
|
157
|
+
"type": "array",
|
|
158
|
+
"items": { "type": "string" },
|
|
159
|
+
"description": "Lista de archivos relevantes para la tarea (file:line cuando aplica)."
|
|
160
|
+
},
|
|
161
|
+
"previousTaskOutputs": {
|
|
162
|
+
"type": "array",
|
|
163
|
+
"description": "Outputs de tareas previas que esta tarea depende.",
|
|
164
|
+
"items": {
|
|
165
|
+
"type": "object",
|
|
166
|
+
"properties": {
|
|
167
|
+
"taskId": { "type": "string" },
|
|
168
|
+
"output": { "type": "object", "additionalProperties": true }
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
},
|
|
172
|
+
"metadata": {
|
|
173
|
+
"type": "object",
|
|
174
|
+
"additionalProperties": true
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
},
|
|
180
|
+
|
|
181
|
+
"oneOf": [
|
|
182
|
+
{ "$ref": "#/definitions/HandoffContext" },
|
|
183
|
+
{ "$ref": "#/definitions/PipelineContext" },
|
|
184
|
+
{ "$ref": "#/definitions/TaskDelegationContext" }
|
|
185
|
+
],
|
|
186
|
+
|
|
187
|
+
"examples": [
|
|
188
|
+
{
|
|
189
|
+
"comment": "HandoffContext — orquestador delega al planificador",
|
|
190
|
+
"reason": "direct_handoff",
|
|
191
|
+
"parentAgent": "orquestador-swl",
|
|
192
|
+
"transferCount": 1,
|
|
193
|
+
"sessionId": "abc123",
|
|
194
|
+
"metadata": { "requestType": "feature", "priority": "high" }
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
"comment": "PipelineContext — ejecutar-fase pasa resultados del paso 2 al paso 3",
|
|
198
|
+
"reason": "pipeline_execution",
|
|
199
|
+
"parentAgent": "implementador-swl",
|
|
200
|
+
"transferCount": 3,
|
|
201
|
+
"sessionId": "abc123",
|
|
202
|
+
"pipelineName": "fase-2-backend",
|
|
203
|
+
"currentStep": 3,
|
|
204
|
+
"totalSteps": 7,
|
|
205
|
+
"isLastStep": false,
|
|
206
|
+
"stepResults": [
|
|
207
|
+
{ "step": 1, "agentName": "implementador-swl", "output": { "schemaPath": "src/models/user.ts" }, "status": "completed" },
|
|
208
|
+
{ "step": 2, "agentName": "backend-python-swl", "output": { "migrationPath": "db/migrations/001.sql" }, "status": "completed" }
|
|
209
|
+
]
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
"comment": "TaskDelegationContext — orquestador delega T-03 al backend-python-swl",
|
|
213
|
+
"reason": "task_delegation",
|
|
214
|
+
"parentAgent": "orquestador-swl",
|
|
215
|
+
"transferCount": 1,
|
|
216
|
+
"sessionId": "abc123",
|
|
217
|
+
"taskId": "T-03",
|
|
218
|
+
"taskDescription": "Implementar endpoint POST /users con validación Pydantic v2 y persistencia SQLAlchemy async.",
|
|
219
|
+
"verificationCriteria": "curl -X POST /users devuelve 201 con { id, email, created_at }",
|
|
220
|
+
"relevantFiles": ["src/routers/users.py:1", "src/models/user.py:45", "src/schemas/user.py"]
|
|
221
|
+
}
|
|
222
|
+
]
|
|
223
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"descripcion": "Perfiles de hooks SWL. Cada perfil define que hooks se activan y configuracion de umbrales.",
|
|
3
|
+
"perfilActivo": "standard",
|
|
4
|
+
"perfiles": {
|
|
5
|
+
"minimal": {
|
|
6
|
+
"descripcion": "Solo seguridad básica — ideal para proyectos personales y exploración",
|
|
7
|
+
"hooks": ["escaneo-secretos.js", "proteccion-rutas.js"],
|
|
8
|
+
"overrides": {}
|
|
9
|
+
},
|
|
10
|
+
"standard": {
|
|
11
|
+
"descripcion": "Seguridad + calidad + observabilidad — recomendado para equipos",
|
|
12
|
+
"hooks": [
|
|
13
|
+
"escaneo-secretos.js",
|
|
14
|
+
"proteccion-rutas.js",
|
|
15
|
+
"calidad-pre-commit.js",
|
|
16
|
+
"linea-estado.js",
|
|
17
|
+
"monitor-contexto.js",
|
|
18
|
+
"risk-scoring.js",
|
|
19
|
+
"inyeccion-contexto.js"
|
|
20
|
+
],
|
|
21
|
+
"overrides": {}
|
|
22
|
+
},
|
|
23
|
+
"strict": {
|
|
24
|
+
"descripcion": "Todos los hooks + umbrales estrictos — producción y compliance",
|
|
25
|
+
"hooks": ["*"],
|
|
26
|
+
"overrides": {
|
|
27
|
+
"riskThresholds": {
|
|
28
|
+
"allow": 0.25,
|
|
29
|
+
"review": 0.45,
|
|
30
|
+
"confirm": 0.70
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"custom": {
|
|
35
|
+
"descripcion": "Perfil personalizable — el usuario define que hooks activar",
|
|
36
|
+
"hooks": [],
|
|
37
|
+
"overrides": {}
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"variablesEntorno": {
|
|
41
|
+
"SWL_HOOK_PROFILE": "Override del perfil activo (minimal|standard|strict|custom)",
|
|
42
|
+
"SWL_DISABLED_HOOKS": "Lista de hooks desactivados separados por coma (ej: extraccion-aprendizajes.js,degradacion-instintos.js)"
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,360 @@
|
|
|
1
|
+
{
|
|
2
|
+
"descripcion": "Configuración centralizada de hooks SWL. Define el evento, matcher y metadata de cada hook para registro automático en settings.json del runtime destino.",
|
|
3
|
+
"prioridad_hooks": {
|
|
4
|
+
"descripcion": "Orden de precedencia cuando múltiples hooks coinciden. Mayor prioridad gana.",
|
|
5
|
+
"orden": [
|
|
6
|
+
"settings.local.json (proyecto, no versionado — máxima prioridad)",
|
|
7
|
+
"settings.json (proyecto, versionado — hooks SWL se registran aquí)",
|
|
8
|
+
"~/.claude/settings.json (global del usuario — menor prioridad)"
|
|
9
|
+
],
|
|
10
|
+
"regla": "Los hooks SWL SOLO se registran a nivel proyecto. Si existen a nivel global, el doctor los elimina para evitar ejecución duplicada."
|
|
11
|
+
},
|
|
12
|
+
"opciones_avanzadas_hooks": {
|
|
13
|
+
"descripcion": "Campos opcionales soportados por Claude Code en cada hook entry.",
|
|
14
|
+
"timeout": "Tiempo máximo en segundos antes de abortar el hook (default: 60)",
|
|
15
|
+
"async": "Si true, el hook no bloquea la ejecución — corre en background (default: false)",
|
|
16
|
+
"once": "Si true, el hook se ejecuta solo una vez por sesión (default: false)"
|
|
17
|
+
},
|
|
18
|
+
"riskThresholds": {
|
|
19
|
+
"allow": 0.35,
|
|
20
|
+
"review": 0.60,
|
|
21
|
+
"confirm": 0.85
|
|
22
|
+
},
|
|
23
|
+
"costBudget": {
|
|
24
|
+
"maxUsd": 10.0,
|
|
25
|
+
"maxTokens": 500000,
|
|
26
|
+
"alertAt": 0.80
|
|
27
|
+
},
|
|
28
|
+
"circuitBreaker": {
|
|
29
|
+
"maxConsecutiveFailures": 3,
|
|
30
|
+
"halfOpenCooldownMs": 300000,
|
|
31
|
+
"auditThreshold": 10
|
|
32
|
+
},
|
|
33
|
+
"hooks": {
|
|
34
|
+
"escaneo-secretos.js": {
|
|
35
|
+
"event": "PreToolUse",
|
|
36
|
+
"matcher": "Write|Edit",
|
|
37
|
+
"description": "Bloquea escritura de archivos con secretos hardcodeados",
|
|
38
|
+
"blocking": true,
|
|
39
|
+
"maxConsecutiveFailures": 3,
|
|
40
|
+
"degradeOnFailure": "block"
|
|
41
|
+
},
|
|
42
|
+
"proteccion-rutas.js": {
|
|
43
|
+
"event": "PreToolUse",
|
|
44
|
+
"matcher": "Write|Edit",
|
|
45
|
+
"description": "Previene path traversal y escritura fuera del proyecto",
|
|
46
|
+
"blocking": true,
|
|
47
|
+
"maxConsecutiveFailures": 3,
|
|
48
|
+
"degradeOnFailure": "block"
|
|
49
|
+
},
|
|
50
|
+
"calidad-pre-commit.js": {
|
|
51
|
+
"event": "PreToolUse",
|
|
52
|
+
"matcher": "Bash",
|
|
53
|
+
"description": "Gate de calidad pre-commit (debug stmts, type hints, TODOs)",
|
|
54
|
+
"blocking": true,
|
|
55
|
+
"maxConsecutiveFailures": 3,
|
|
56
|
+
"degradeOnFailure": "warn"
|
|
57
|
+
},
|
|
58
|
+
"linea-estado.js": {
|
|
59
|
+
"event": "PostToolUse",
|
|
60
|
+
"matcher": "",
|
|
61
|
+
"description": "Muestra linea de estado con modelo, tarea y porcentaje de contexto",
|
|
62
|
+
"blocking": false,
|
|
63
|
+
"async": true,
|
|
64
|
+
"maxConsecutiveFailures": 5,
|
|
65
|
+
"degradeOnFailure": "skip"
|
|
66
|
+
},
|
|
67
|
+
"monitor-contexto.js": {
|
|
68
|
+
"event": "PostToolUse",
|
|
69
|
+
"matcher": "",
|
|
70
|
+
"description": "Alerta cuando el contexto supera umbrales de saturacion (65% warning, 75% critical)",
|
|
71
|
+
"blocking": false,
|
|
72
|
+
"maxConsecutiveFailures": 3,
|
|
73
|
+
"degradeOnFailure": "warn"
|
|
74
|
+
},
|
|
75
|
+
"extraccion-aprendizajes.js": {
|
|
76
|
+
"event": "PostToolUse",
|
|
77
|
+
"matcher": "Bash|Write|Edit",
|
|
78
|
+
"description": "Captura aprendizajes automaticamente de la actividad de la sesion",
|
|
79
|
+
"blocking": false,
|
|
80
|
+
"async": true,
|
|
81
|
+
"maxConsecutiveFailures": 3,
|
|
82
|
+
"degradeOnFailure": "skip"
|
|
83
|
+
},
|
|
84
|
+
"sugerir-regenerar-inventario.js": {
|
|
85
|
+
"event": "PostToolUse",
|
|
86
|
+
"matcher": "Write|Edit|MultiEdit",
|
|
87
|
+
"description": "Sugiere regenerar INVENTARIO.md cuando el agente toca agentes/, habilidades/, comandos/swl/, hooks/ o reglas/. Cooldown 30 min para evitar spam.",
|
|
88
|
+
"blocking": false,
|
|
89
|
+
"async": true,
|
|
90
|
+
"maxConsecutiveFailures": 5,
|
|
91
|
+
"degradeOnFailure": "skip"
|
|
92
|
+
},
|
|
93
|
+
"degradacion-instintos.js": {
|
|
94
|
+
"event": "PostToolUse",
|
|
95
|
+
"matcher": "Bash|Write|Edit",
|
|
96
|
+
"description": "Degrada instintos contradichos por evidencia negativa en la sesion",
|
|
97
|
+
"blocking": false,
|
|
98
|
+
"async": true,
|
|
99
|
+
"maxConsecutiveFailures": 3,
|
|
100
|
+
"degradeOnFailure": "skip"
|
|
101
|
+
},
|
|
102
|
+
"risk-scoring.js": {
|
|
103
|
+
"event": "PreToolUse",
|
|
104
|
+
"matcher": "",
|
|
105
|
+
"description": "Scoring de riesgo compuesto para operaciones — bloquea operaciones peligrosas",
|
|
106
|
+
"blocking": true,
|
|
107
|
+
"maxConsecutiveFailures": 5,
|
|
108
|
+
"degradeOnFailure": "warn"
|
|
109
|
+
},
|
|
110
|
+
"tracking-costos.js": {
|
|
111
|
+
"event": "PostToolUse",
|
|
112
|
+
"matcher": "",
|
|
113
|
+
"description": "Registra tokens estimados y costo por sesion en .planning/METRICAS.md",
|
|
114
|
+
"blocking": false,
|
|
115
|
+
"async": true,
|
|
116
|
+
"maxConsecutiveFailures": 5,
|
|
117
|
+
"degradeOnFailure": "skip"
|
|
118
|
+
},
|
|
119
|
+
"inyeccion-contexto.js": {
|
|
120
|
+
"event": "PostToolUse",
|
|
121
|
+
"matcher": "",
|
|
122
|
+
"description": "Inyecta contexto de sesion anterior automaticamente al inicio de nueva sesion",
|
|
123
|
+
"blocking": false,
|
|
124
|
+
"maxConsecutiveFailures": 3,
|
|
125
|
+
"degradeOnFailure": "skip"
|
|
126
|
+
},
|
|
127
|
+
"auto-consolidacion.js": {
|
|
128
|
+
"event": "PostToolUse",
|
|
129
|
+
"matcher": "",
|
|
130
|
+
"description": "Sugiere /swl:aprender cuando hay >= 24h y >= 5 sesiones nuevas sin consolidar (patrón autoDream)",
|
|
131
|
+
"blocking": false,
|
|
132
|
+
"async": true,
|
|
133
|
+
"maxConsecutiveFailures": 3,
|
|
134
|
+
"degradeOnFailure": "skip"
|
|
135
|
+
},
|
|
136
|
+
"auto-background.js": {
|
|
137
|
+
"event": "PreToolUse",
|
|
138
|
+
"matcher": "Bash",
|
|
139
|
+
"description": "Sugiere run_in_background para comandos lentos (npm install, cargo build, docker build, etc.)",
|
|
140
|
+
"blocking": false,
|
|
141
|
+
"maxConsecutiveFailures": 5,
|
|
142
|
+
"degradeOnFailure": "skip"
|
|
143
|
+
},
|
|
144
|
+
"resumen-sesion.js": {
|
|
145
|
+
"event": "Stop",
|
|
146
|
+
"matcher": "",
|
|
147
|
+
"description": "Imprime resumen de sesión SWL al terminar: agentes, skills, comandos, tokens y costo",
|
|
148
|
+
"blocking": false,
|
|
149
|
+
"async": true,
|
|
150
|
+
"maxConsecutiveFailures": 5,
|
|
151
|
+
"degradeOnFailure": "skip"
|
|
152
|
+
},
|
|
153
|
+
"actualizar-perfil-usuario.js": {
|
|
154
|
+
"event": "Stop",
|
|
155
|
+
"matcher": "",
|
|
156
|
+
"description": "Detecta señales de corrección/preferencia del usuario y acumula un dirty-bit en .planning/perfil-usuario/. Emite nudge a perfilador-usuario-swl cuando cruza el umbral (default 3 señales).",
|
|
157
|
+
"blocking": false,
|
|
158
|
+
"async": true,
|
|
159
|
+
"maxConsecutiveFailures": 5,
|
|
160
|
+
"degradeOnFailure": "skip"
|
|
161
|
+
},
|
|
162
|
+
"metricas-evolucion.js": {
|
|
163
|
+
"event": "Stop",
|
|
164
|
+
"matcher": "",
|
|
165
|
+
"description": "Consolida métricas del ciclo de evolución (nudges accionados/pendientes, instintos, fallos de agentes, evoluciones aplicadas/revertidas) y actualiza .planning/evolucion/metricas.json con health_score compuesto. Dispara escalamiento a alertas persistentes si >=5 nudges del mismo tipo ignorados en 14d.",
|
|
166
|
+
"blocking": false,
|
|
167
|
+
"async": true,
|
|
168
|
+
"maxConsecutiveFailures": 5,
|
|
169
|
+
"degradeOnFailure": "skip"
|
|
170
|
+
},
|
|
171
|
+
"rotar-audit-auto.js": {
|
|
172
|
+
"event": "Stop",
|
|
173
|
+
"matcher": "",
|
|
174
|
+
"description": "Rotación automática de logs de auditoría (.planning/audit.jsonl y audit-merkle.jsonl) cuando superan 5 MB. Invoca scripts/rotar-audit-logs.js con retención de 30 días, comprime a .gz mensual y preserva cadena Merkle. Desactivable con SWL_AUDIT_ROTATE_OFF=1. Configurable con SWL_AUDIT_ROTATE_UMBRAL_MB y SWL_AUDIT_ROTATE_DIAS. Cooldown de 6 horas para evitar ejecución repetida.",
|
|
175
|
+
"blocking": false,
|
|
176
|
+
"async": true,
|
|
177
|
+
"maxConsecutiveFailures": 5,
|
|
178
|
+
"degradeOnFailure": "skip"
|
|
179
|
+
},
|
|
180
|
+
"auto-evolucion.js": {
|
|
181
|
+
"event": "SubagentStop",
|
|
182
|
+
"matcher": "",
|
|
183
|
+
"description": "Registra cada terminación de subagente SWL en .planning/auto-evolucion/agentes.jsonl y emite nudge a /swl:evolucionar cuando un agente acumula fallos o volumen de runs (ventana 14 días, throttle 24h).",
|
|
184
|
+
"blocking": false,
|
|
185
|
+
"async": true,
|
|
186
|
+
"maxConsecutiveFailures": 5,
|
|
187
|
+
"degradeOnFailure": "skip"
|
|
188
|
+
},
|
|
189
|
+
"telemetria-agentes.js": {
|
|
190
|
+
"event": "PostToolUse",
|
|
191
|
+
"matcher": "Agent",
|
|
192
|
+
"description": "Registra traza OTLP-lite por cada invocación de agente SWL en .planning/traces/",
|
|
193
|
+
"blocking": false,
|
|
194
|
+
"async": true,
|
|
195
|
+
"maxConsecutiveFailures": 5,
|
|
196
|
+
"degradeOnFailure": "skip"
|
|
197
|
+
},
|
|
198
|
+
"audit-trail.js": {
|
|
199
|
+
"event": "PostToolUse",
|
|
200
|
+
"matcher": "",
|
|
201
|
+
"description": "Registra cada tool call en .planning/audit.jsonl para auditoría y cumplimiento",
|
|
202
|
+
"blocking": false,
|
|
203
|
+
"async": true,
|
|
204
|
+
"maxConsecutiveFailures": 5,
|
|
205
|
+
"degradeOnFailure": "skip"
|
|
206
|
+
},
|
|
207
|
+
"registro-turnos.js": {
|
|
208
|
+
"event": "PostToolUse",
|
|
209
|
+
"matcher": "",
|
|
210
|
+
"description": "Persiste cada turn en .planning/sessions/{id}/turns.jsonl con sanitización PII (OPT-IN: SWL_REGISTRO_TURNOS=1)",
|
|
211
|
+
"blocking": false,
|
|
212
|
+
"async": true,
|
|
213
|
+
"maxConsecutiveFailures": 5,
|
|
214
|
+
"degradeOnFailure": "skip"
|
|
215
|
+
},
|
|
216
|
+
"agente-lifecycle.js": {
|
|
217
|
+
"event": "SubagentStop",
|
|
218
|
+
"matcher": "",
|
|
219
|
+
"description": "Emite eventos de ciclo de vida al event-bus y actualiza execution-state al finalizar cada agente SWL",
|
|
220
|
+
"blocking": false,
|
|
221
|
+
"async": true,
|
|
222
|
+
"maxConsecutiveFailures": 5,
|
|
223
|
+
"degradeOnFailure": "skip"
|
|
224
|
+
},
|
|
225
|
+
"grafo-contexto.js": {
|
|
226
|
+
"event": "PreToolUse",
|
|
227
|
+
"matcher": "Glob|Grep|Read",
|
|
228
|
+
"description": "Inyecta resumen del grafo de dependencias SWL antes de búsquedas de archivos — reduce tool calls ~71x. Opt-in: silencioso si .planning/graph.json no existe.",
|
|
229
|
+
"blocking": false,
|
|
230
|
+
"async": false,
|
|
231
|
+
"maxConsecutiveFailures": 5,
|
|
232
|
+
"degradeOnFailure": "skip"
|
|
233
|
+
},
|
|
234
|
+
"calidad-typescript.js": {
|
|
235
|
+
"event": "PreToolUse",
|
|
236
|
+
"matcher": "Bash",
|
|
237
|
+
"description": "Verifica calidad TypeScript en archivos staged antes de git commit: any explícito, @ts-ignore sin justificación, double cast, tsc --noEmit",
|
|
238
|
+
"blocking": true,
|
|
239
|
+
"maxConsecutiveFailures": 3,
|
|
240
|
+
"degradeOnFailure": "warn"
|
|
241
|
+
},
|
|
242
|
+
"clasificador-mensajes.js": {
|
|
243
|
+
"event": "UserPromptSubmit",
|
|
244
|
+
"matcher": "",
|
|
245
|
+
"description": "Clasifica intención del mensaje del usuario e inyecta hints de routing para el orquestador (decisión, bug, requisito, arquitectura, etc.)",
|
|
246
|
+
"blocking": false,
|
|
247
|
+
"async": true,
|
|
248
|
+
"maxConsecutiveFailures": 5,
|
|
249
|
+
"degradeOnFailure": "skip"
|
|
250
|
+
},
|
|
251
|
+
"graph-update.js": {
|
|
252
|
+
"event": "PostToolUse",
|
|
253
|
+
"matcher": "Write|Edit",
|
|
254
|
+
"description": "Actualiza el grafo de code-review-graph automáticamente después de cada modificación de archivo",
|
|
255
|
+
"blocking": false,
|
|
256
|
+
"async": true,
|
|
257
|
+
"maxConsecutiveFailures": 5,
|
|
258
|
+
"degradeOnFailure": "skip"
|
|
259
|
+
},
|
|
260
|
+
"preservar-estado-pre-compact.js": {
|
|
261
|
+
"event": "PreCompact",
|
|
262
|
+
"matcher": "",
|
|
263
|
+
"description": "Preserva execution-state.json y task-queue.json antes de compactación de contexto para asegurar continuidad del plan",
|
|
264
|
+
"blocking": false,
|
|
265
|
+
"maxConsecutiveFailures": 3,
|
|
266
|
+
"degradeOnFailure": "skip"
|
|
267
|
+
},
|
|
268
|
+
"check-update.js": {
|
|
269
|
+
"event": "UserPromptSubmit",
|
|
270
|
+
"matcher": "",
|
|
271
|
+
"description": "Detecta actualizaciones disponibles de swl-ses comparando versión local vs npm registry (throttled 24h)",
|
|
272
|
+
"blocking": false,
|
|
273
|
+
"async": true,
|
|
274
|
+
"maxConsecutiveFailures": 5,
|
|
275
|
+
"degradeOnFailure": "skip"
|
|
276
|
+
},
|
|
277
|
+
"guardrail-modelo.js": {
|
|
278
|
+
"event": "PreToolUse",
|
|
279
|
+
"matcher": "Task|Agent",
|
|
280
|
+
"description": "Guardrail semántico observacional: registra subagentes que podrían ejecutarse con un modelo menos costoso. Opt-in: SWL_GUARDRAIL_MODELO=1. Modo observacional — nunca bloquea.",
|
|
281
|
+
"blocking": false,
|
|
282
|
+
"async": false,
|
|
283
|
+
"optIn": "SWL_GUARDRAIL_MODELO",
|
|
284
|
+
"maxConsecutiveFailures": 5,
|
|
285
|
+
"degradeOnFailure": "skip"
|
|
286
|
+
},
|
|
287
|
+
"notificacion-sesion-stop.js": {
|
|
288
|
+
"event": "Stop",
|
|
289
|
+
"matcher": "",
|
|
290
|
+
"description": "Al terminar un turno con >=10 tool calls envía al gateway una notificación con contexto: modelo, llamadas, tokens, costo, archivos modificados y último tramo del transcript. Opt-in: requiere gateway habilitado en manifiestos/gateway-config.json. Opt-out: SWL_NOTIFICAR_STOP=0.",
|
|
291
|
+
"blocking": false,
|
|
292
|
+
"async": true,
|
|
293
|
+
"maxConsecutiveFailures": 5,
|
|
294
|
+
"degradeOnFailure": "skip"
|
|
295
|
+
},
|
|
296
|
+
"captura-feedback-usuario.js": {
|
|
297
|
+
"event": "UserPromptSubmit",
|
|
298
|
+
"matcher": "",
|
|
299
|
+
"description": "Detecta correcciones explícitas del usuario (no hagas X, prefiero Y, recuerda Z, nunca W) y las encola en .planning/evolucion/feedback-queue.jsonl para consumo por perfilador-usuario-swl y el ciclo AGP. Patrones regex en español e inglés. Opt-out: SWL_CAPTURAR_FEEDBACK=0.",
|
|
300
|
+
"blocking": false,
|
|
301
|
+
"async": true,
|
|
302
|
+
"maxConsecutiveFailures": 5,
|
|
303
|
+
"degradeOnFailure": "skip"
|
|
304
|
+
},
|
|
305
|
+
"inbox-aviso.js": {
|
|
306
|
+
"event": "UserPromptSubmit",
|
|
307
|
+
"matcher": "",
|
|
308
|
+
"description": "Avisa cuando hay comandos pendientes en .planning/inbox/ enviados desde canales externos (Telegram vía gateway con relay). Inyecta additionalContext para que Claude sugiera ejecutar /swl:inbox. Opt-out: SWL_INBOX_AVISO=0.",
|
|
309
|
+
"blocking": false,
|
|
310
|
+
"async": true,
|
|
311
|
+
"maxConsecutiveFailures": 5,
|
|
312
|
+
"degradeOnFailure": "skip"
|
|
313
|
+
},
|
|
314
|
+
"aiisms-detector.js": {
|
|
315
|
+
"event": "PostToolUse",
|
|
316
|
+
"matcher": "Write|Edit|MultiEdit",
|
|
317
|
+
"description": "Ejecuta detector portable Python contra archivos .md recién modificados y emite nudge a .planning/evolucion/nudges.jsonl si encuentra al menos un AI-ism P0. No bloquea. Requiere Python 3.10+. Respeta auto-referencia (habilidades/estilo-sin-ai-isms/), .planning/, temp/, node_modules/. Opt-out: SWL_AIISMS_HOOK=0.",
|
|
318
|
+
"blocking": false,
|
|
319
|
+
"async": true,
|
|
320
|
+
"maxConsecutiveFailures": 5,
|
|
321
|
+
"degradeOnFailure": "skip"
|
|
322
|
+
},
|
|
323
|
+
"notificacion-telegram.js": {
|
|
324
|
+
"event": "Stop",
|
|
325
|
+
"matcher": "",
|
|
326
|
+
"description": "Envía notificación Telegram al terminar un turno. Muestra último mensaje del asistente, proyecto y estado. Best-effort: siempre exit 0. Requiere ~/.claude/notifications/.env con TELEGRAM_BOT_TOKEN y TELEGRAM_CHAT_ID. Opt-out: SWL_NOTIFICACIONES_TELEGRAM=0.",
|
|
327
|
+
"blocking": false,
|
|
328
|
+
"async": true,
|
|
329
|
+
"maxConsecutiveFailures": 5,
|
|
330
|
+
"degradeOnFailure": "skip"
|
|
331
|
+
},
|
|
332
|
+
"notificacion-telegram-notification.js": {
|
|
333
|
+
"event": "Notification",
|
|
334
|
+
"matcher": "",
|
|
335
|
+
"description": "Envía notificación Telegram cuando Claude espera respuesta del usuario (permisos, idle, atención requerida). Best-effort: siempre exit 0. Comparte implementación con notificacion-telegram.js. Opt-out: SWL_NOTIFICACIONES_TELEGRAM=0.",
|
|
336
|
+
"blocking": false,
|
|
337
|
+
"async": true,
|
|
338
|
+
"maxConsecutiveFailures": 5,
|
|
339
|
+
"degradeOnFailure": "skip"
|
|
340
|
+
},
|
|
341
|
+
"notificacion-telegram-subagent.js": {
|
|
342
|
+
"event": "SubagentStop",
|
|
343
|
+
"matcher": "",
|
|
344
|
+
"description": "Envía notificación Telegram cuando un subagente termina su turno. Best-effort: siempre exit 0. Comparte implementación con notificacion-telegram.js. Opt-out: SWL_NOTIFICACIONES_TELEGRAM=0.",
|
|
345
|
+
"blocking": false,
|
|
346
|
+
"async": true,
|
|
347
|
+
"maxConsecutiveFailures": 5,
|
|
348
|
+
"degradeOnFailure": "skip"
|
|
349
|
+
},
|
|
350
|
+
"auto-restaurar-settings.js": {
|
|
351
|
+
"event": "SessionStart",
|
|
352
|
+
"matcher": "",
|
|
353
|
+
"description": "Al inicio de cada sesión verifica que ~/.claude/settings.json contiene los hooks SWL registrados en ~/.claude/notifications/baseline-hooks.json. Si falta alguno, los restaura preservando todos los hooks ajenos al baseline. Backup obligatorio antes de cada modificación. Opt-out: SWL_NOTIFICACIONES_TELEGRAM=0.",
|
|
354
|
+
"blocking": false,
|
|
355
|
+
"async": false,
|
|
356
|
+
"maxConsecutiveFailures": 5,
|
|
357
|
+
"degradeOnFailure": "skip"
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
}
|