@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,585 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: swl:verificar
|
|
3
|
+
description: Ejecuta verificación post-ejecución sobre el trabajo implementado. Delega a los agentes revisor-codigo-swl y revisor-seguridad-swl. Produce VERIFICACION.md con hallazgos, severidad y acciones requeridas. Soporta flag --ultra para una tercera pasada de revisión profunda con Opus 4.7. Soporta flag --until-converge para iterar verificar→corregir→re-verificar hasta 0 hallazgos CRÍTICO+ALTO+MAYOR (max-iter=5, --no-prompt para CI).
|
|
4
|
+
allowed_tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep"]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /swl:verificar — Verificación post-ejecución
|
|
8
|
+
|
|
9
|
+
Eres el coordinador de verificación SWL. Tu trabajo es asegurar la calidad del código implementado antes de declarar una fase como lista para entrega. La verificación es sistemática, cubre código y seguridad, y produce un reporte accionable.
|
|
10
|
+
|
|
11
|
+
## Flags del comando
|
|
12
|
+
|
|
13
|
+
| Flag | Efecto |
|
|
14
|
+
|------|--------|
|
|
15
|
+
| (sin flag) | Verificación estándar: tests + linter + revisor-codigo-swl + revisor-seguridad-swl |
|
|
16
|
+
| `--ultra` | Añade tercera pasada de **revisión profunda** con Opus 4.7 sobre los hallazgos de los dos revisores. Consolida, prioriza, detecta contradicciones entre reviewers y genera plan de acción. Ideal para fases críticas (auth, pagos, migraciones de schema, endpoints públicos). |
|
|
17
|
+
| `--solo-codigo` | Ejecuta solo revisor-codigo-swl (salta seguridad). Usar solo para refactors internos sin impacto externo. |
|
|
18
|
+
| `--solo-seguridad` | Ejecuta solo revisor-seguridad-swl (salta código). Usar para auditorías de seguridad focalizadas. |
|
|
19
|
+
| `--aplicar-iteracion=<scope>` | Tras el veredicto, aplica automáticamente las correcciones según el scope elegido sin pedir confirmación adicional. Valores: `urgentes` (CRÍTICOS + MAYORES), `todo` (CRÍTICOS + MAYORES + MEDIOS), `custom:A,B,C` (solo los IDs listados separados por coma). Sin el flag, el comportamiento es el estándar (ofrece opciones al usuario). |
|
|
20
|
+
| `--until-converge` | Itera el ciclo verificar → corregir → re-verificar hasta convergencia (0 hallazgos CRÍTICO + ALTO + MAYOR en una pasada nueva) o hasta alcanzar `--max-iter`. Compatible con `--ultra` y `--solo-codigo`/`--solo-seguridad`. Ver sección "Modo `--until-converge`". |
|
|
21
|
+
| `--max-iter=N` | Límite de iteraciones para `--until-converge`. Default: `5`. Rango válido: 1-10. |
|
|
22
|
+
| `--no-prompt` | Suprime la confirmación interactiva entre pasadas (para CI). Solo aplica con `--until-converge`. |
|
|
23
|
+
|
|
24
|
+
### Cuándo usar `--ultra`
|
|
25
|
+
|
|
26
|
+
- La fase toca código crítico: autenticación, autorización, pagos, PII, migraciones.
|
|
27
|
+
- Hay discrepancia aparente entre los hallazgos del revisor-codigo y revisor-seguridad.
|
|
28
|
+
- Se prepara un release mayor o se despliega a producción.
|
|
29
|
+
- El usuario pide explícitamente "revisión profunda" o "ultrareview".
|
|
30
|
+
|
|
31
|
+
**Costo**: la pasada `--ultra` invoca Opus 4.7 de forma adicional. Si tienes Pro/Max de Claude Code, las primeras 3 usos por día son gratis. Después consume presupuesto normal de Opus.
|
|
32
|
+
|
|
33
|
+
### Cuándo usar `--until-converge`
|
|
34
|
+
|
|
35
|
+
- La fase tiene una cola conocida de iteraciones verificar → corregir → re-verificar (≥3 manuales históricamente).
|
|
36
|
+
- Quieres dejar el comando trabajando hasta convergencia sin re-invocar manualmente cada pasada.
|
|
37
|
+
- Estás en CI donde no hay humano para aprobar cada batch (combinar con `--no-prompt`).
|
|
38
|
+
- Estás cerrando una fase y quieres reducir hallazgos a 0 antes de declarar APROBADO.
|
|
39
|
+
|
|
40
|
+
**Cuándo NO usar `--until-converge`**:
|
|
41
|
+
- Cuando quieres revisar cada batch antes de aprobar correcciones (usa la verificación estándar).
|
|
42
|
+
- Cuando esperas hallazgos que requieran decisión arquitectónica humana — el loop no debe automatizarse.
|
|
43
|
+
- Cuando el código tocado es crítico (auth, pagos): combinar con `--ultra` para que cada pasada tenga revisión profunda.
|
|
44
|
+
|
|
45
|
+
## Paso 0 — Carga de habilidades
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
Skill("verificar-trabajo")
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Carga también:
|
|
52
|
+
```
|
|
53
|
+
Skill("error-handling-patterns")
|
|
54
|
+
Skill("code-review-excellence")
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Si el stack tiene Python: `Skill("python-testing-patterns")`
|
|
58
|
+
Si el stack tiene Angular: `Skill("javascript-testing-patterns")`
|
|
59
|
+
|
|
60
|
+
## Paso 1 — Determinación del alcance de verificación
|
|
61
|
+
|
|
62
|
+
Determina qué verificar leyendo:
|
|
63
|
+
|
|
64
|
+
1. `.planning/ESTADO.md` — identifica la fase más reciente ejecutada.
|
|
65
|
+
2. `.planning/fases/0N-RESUMEN.md` — lista de archivos creados y modificados.
|
|
66
|
+
3. `.planning/fases/0N-PLAN.md` — criterios de aceptación de la fase.
|
|
67
|
+
4. `git log --oneline -20` — commits de la sesión de trabajo reciente.
|
|
68
|
+
|
|
69
|
+
Si no hay RESUMEN.md reciente, usa `git diff HEAD~10 --name-only` para detectar archivos cambiados en los últimos 10 commits.
|
|
70
|
+
|
|
71
|
+
Anuncia al usuario el alcance:
|
|
72
|
+
```
|
|
73
|
+
Verificando los cambios de la Fase N.
|
|
74
|
+
Archivos en alcance: [número]
|
|
75
|
+
Criterios de aceptación a verificar: [número]
|
|
76
|
+
Tiempo estimado: [minutos]
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Paso 2 — Verificación técnica automatizada
|
|
80
|
+
|
|
81
|
+
Antes de delegar a los agentes especializados, ejecuta verificaciones automáticas:
|
|
82
|
+
|
|
83
|
+
### 2.1 — Tests
|
|
84
|
+
```bash
|
|
85
|
+
# Detectar y ejecutar el comando de tests según el stack
|
|
86
|
+
# Python con pytest:
|
|
87
|
+
pytest --tb=short -q
|
|
88
|
+
|
|
89
|
+
# Node/Angular:
|
|
90
|
+
npm test -- --watchAll=false --passWithNoTests
|
|
91
|
+
|
|
92
|
+
# Reportar: cuántos pasan, cuántos fallan, cobertura si está configurada
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Si hay tests fallando, registra cada uno con su error exacto. Los tests fallando son severidad CRÍTICA.
|
|
96
|
+
|
|
97
|
+
### 2.2 — Linter y format
|
|
98
|
+
```bash
|
|
99
|
+
# Python
|
|
100
|
+
ruff check . --output-format=concise 2>/dev/null || flake8 --max-line-length=120 . 2>/dev/null
|
|
101
|
+
|
|
102
|
+
# TypeScript/JavaScript
|
|
103
|
+
npx eslint src/ --format=compact 2>/dev/null
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### 2.3 — Type checking
|
|
107
|
+
```bash
|
|
108
|
+
# Python
|
|
109
|
+
mypy . --ignore-missing-imports --no-error-summary 2>/dev/null
|
|
110
|
+
|
|
111
|
+
# TypeScript
|
|
112
|
+
npx tsc --noEmit 2>/dev/null
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### 2.4 — Archivos de debug olvidados
|
|
116
|
+
|
|
117
|
+
Busca patrones de debug que no deben ir a producción:
|
|
118
|
+
|
|
119
|
+
```
|
|
120
|
+
Grep(pattern="console\.log|print\(|debugger|pdb\.set_trace|breakpoint\(\)", output_mode="content")
|
|
121
|
+
Grep(pattern="TODO|FIXME|HACK|XXX", output_mode="content")
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Registra todos los hallazgos con archivo y línea.
|
|
125
|
+
|
|
126
|
+
### 2.5 — Verificación de commits
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
git log --oneline -20
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
Verifica que los mensajes de commit siguen la convención del proyecto (si está definida en CLAUDE.md).
|
|
133
|
+
|
|
134
|
+
## Paso 3 — Delegación al revisor-codigo-swl
|
|
135
|
+
|
|
136
|
+
Delega al agente `revisor-codigo-swl` para revisión de código en profundidad.
|
|
137
|
+
|
|
138
|
+
**Instrucción al agente revisor-codigo-swl:**
|
|
139
|
+
|
|
140
|
+
```
|
|
141
|
+
Revisa el código de la Fase N del proyecto [nombre].
|
|
142
|
+
|
|
143
|
+
Archivos a revisar (en orden de prioridad):
|
|
144
|
+
[lista del RESUMEN.md]
|
|
145
|
+
|
|
146
|
+
Lee también:
|
|
147
|
+
- .planning/fases/0N-CONTEXTO.md (para entender requisitos)
|
|
148
|
+
- .planning/fases/0N-PLAN.md (para entender qué se debía hacer)
|
|
149
|
+
- CLAUDE.md (para convenciones del proyecto)
|
|
150
|
+
|
|
151
|
+
Para cada archivo revisado, verifica:
|
|
152
|
+
|
|
153
|
+
1. LÓGICA DE NEGOCIO
|
|
154
|
+
- ¿La implementación cumple los requisitos del CONTEXTO.md?
|
|
155
|
+
- ¿Los casos borde están manejados?
|
|
156
|
+
- ¿Hay lógica duplicada que debería estar centralizada?
|
|
157
|
+
|
|
158
|
+
2. CALIDAD DEL CÓDIGO
|
|
159
|
+
- ¿Las funciones tienen responsabilidad única?
|
|
160
|
+
- ¿Los nombres de variables y funciones son descriptivos?
|
|
161
|
+
- ¿El código es comprensible sin comentarios extensos?
|
|
162
|
+
- ¿Hay funciones o clases demasiado largas (>50 líneas en funciones, >300 en clases)?
|
|
163
|
+
|
|
164
|
+
3. MANEJO DE ERRORES
|
|
165
|
+
- ¿Todos los caminos de error están manejados explícitamente?
|
|
166
|
+
- ¿Los errores se loguean con suficiente contexto?
|
|
167
|
+
- ¿No hay excepciones capturadas y silenciadas?
|
|
168
|
+
|
|
169
|
+
4. TESTS
|
|
170
|
+
- ¿Cada función pública tiene al menos un test?
|
|
171
|
+
- ¿Los tests cubren caminos feliz y caminos de error?
|
|
172
|
+
- ¿Los tests son deterministas (no dependen de tiempo o datos externos sin mock)?
|
|
173
|
+
|
|
174
|
+
Reporta cada hallazgo con:
|
|
175
|
+
- Archivo y línea
|
|
176
|
+
- Severidad: CRÍTICO | MAYOR | MENOR | SUGERENCIA
|
|
177
|
+
- Descripción del problema
|
|
178
|
+
- Corrección recomendada
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
## Paso 4 — Delegación al revisor-seguridad-swl
|
|
182
|
+
|
|
183
|
+
Delega al agente `revisor-seguridad-swl` en paralelo (si es posible) o secuencialmente:
|
|
184
|
+
|
|
185
|
+
**Instrucción al agente revisor-seguridad-swl:**
|
|
186
|
+
|
|
187
|
+
```
|
|
188
|
+
Revisa la seguridad del código de la Fase N del proyecto [nombre].
|
|
189
|
+
|
|
190
|
+
Archivos a revisar:
|
|
191
|
+
[lista del RESUMEN.md]
|
|
192
|
+
|
|
193
|
+
Verifica específicamente:
|
|
194
|
+
|
|
195
|
+
1. AUTENTICACIÓN Y AUTORIZACIÓN
|
|
196
|
+
- ¿Todos los endpoints protegidos verifican autenticación?
|
|
197
|
+
- ¿Los endpoints de escritura (POST/PUT/DELETE) verifican roles?
|
|
198
|
+
- ¿Hay protección contra IDOR (acceso a recursos de otros usuarios)?
|
|
199
|
+
|
|
200
|
+
2. VALIDACIÓN DE ENTRADAS
|
|
201
|
+
- ¿Se validan todos los inputs del usuario antes de usarlos?
|
|
202
|
+
- ¿Hay protección contra inyección SQL, XSS, command injection?
|
|
203
|
+
- ¿Los campos tienen restricciones de longitud y formato?
|
|
204
|
+
|
|
205
|
+
3. DATOS SENSIBLES
|
|
206
|
+
- ¿Hay credenciales, tokens o secrets hardcodeados en el código?
|
|
207
|
+
- ¿Los logs no exponen datos personales o sensibles?
|
|
208
|
+
- ¿Los mensajes de error no revelan información interna del sistema?
|
|
209
|
+
|
|
210
|
+
4. DEPENDENCIAS
|
|
211
|
+
- ¿Hay dependencias con vulnerabilidades conocidas?
|
|
212
|
+
- ¿Se usan versiones específicas en el lockfile?
|
|
213
|
+
|
|
214
|
+
5. CONFIGURACIÓN
|
|
215
|
+
- ¿Las variables de entorno tienen valores seguros por defecto?
|
|
216
|
+
- ¿El modo debug está desactivado en configuración de producción?
|
|
217
|
+
|
|
218
|
+
Reporta con:
|
|
219
|
+
- Archivo y línea
|
|
220
|
+
- Severidad: CRÍTICO | ALTO | MEDIO | BAJO
|
|
221
|
+
- CVE o categoría OWASP si aplica
|
|
222
|
+
- Corrección específica recomendada
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
## Paso 4.5 — Pasada `--ultra` (solo si flag activo)
|
|
226
|
+
|
|
227
|
+
Si el usuario invocó `/swl:verificar --ultra`, después de consolidar los hallazgos de los Pasos 3 y 4 ejecuta una tercera pasada de revisión profunda.
|
|
228
|
+
|
|
229
|
+
**Instrucción para la pasada ultra:**
|
|
230
|
+
|
|
231
|
+
Invoca un nuevo contexto de revisor-codigo-swl (o un sub-agente dedicado) con este prompt específico:
|
|
232
|
+
|
|
233
|
+
```
|
|
234
|
+
Eres el revisor senior de la pasada --ultra de /swl:verificar.
|
|
235
|
+
|
|
236
|
+
Tienes en input:
|
|
237
|
+
- HALLAZGOS_CODIGO: [hallazgos del revisor-codigo-swl, Paso 3]
|
|
238
|
+
- HALLAZGOS_SEGURIDAD: [hallazgos del revisor-seguridad-swl, Paso 4]
|
|
239
|
+
- PLAN y CONTEXTO de la fase (ya cargados)
|
|
240
|
+
|
|
241
|
+
Tu tarea es:
|
|
242
|
+
|
|
243
|
+
1. CONSOLIDAR. Identifica hallazgos duplicados entre ambos reviewers y
|
|
244
|
+
fúsionalos en una sola entrada con la severidad más alta.
|
|
245
|
+
|
|
246
|
+
2. DETECTAR CONTRADICCIONES. Si un reviewer aprueba algo que el otro
|
|
247
|
+
rechaza, marca la contradicción explícitamente y argumenta cuál es
|
|
248
|
+
la postura correcta según el contexto del proyecto.
|
|
249
|
+
|
|
250
|
+
3. PRIORIZAR. Ordena los hallazgos por impacto real (no solo severidad
|
|
251
|
+
nominal). Un "MAYOR" en código que toca pagos supera a un "CRÍTICO"
|
|
252
|
+
en código muerto.
|
|
253
|
+
|
|
254
|
+
4. DETECTAR HALLAZGOS OMITIDOS. Con visión completa de ambos reports,
|
|
255
|
+
identifica problemas que ninguno detectó individualmente — especialmente:
|
|
256
|
+
- Interacciones peligrosas entre módulos que cada reviewer vio aisladamente
|
|
257
|
+
- Inconsistencias entre la especificación y la implementación
|
|
258
|
+
- Patrones de deuda técnica que afectan más de un módulo
|
|
259
|
+
|
|
260
|
+
5. GENERAR PLAN DE ACCIÓN. Lista ordenada de correcciones con:
|
|
261
|
+
- Archivo y línea
|
|
262
|
+
- Acción específica
|
|
263
|
+
- Dependencia con otras correcciones
|
|
264
|
+
- Estimación de tiempo
|
|
265
|
+
- Si requiere decisión del arquitecto o planificador
|
|
266
|
+
|
|
267
|
+
6. VEREDICTO FINAL: APROBADO / APROBADO_CON_OBSERVACIONES / REQUIERE_CORRECCIONES / RECHAZADO.
|
|
268
|
+
|
|
269
|
+
NO ejecutes correcciones — solo identificas y priorizas. Tu output se
|
|
270
|
+
integra al VERIFICACION.md del Paso 6.
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
Guarda el output de la pasada ultra en una sección del VERIFICACION.md llamada `## Pasada --ultra (consolidación profunda)` justo antes del veredicto final.
|
|
274
|
+
|
|
275
|
+
## Paso 4.6 — Bucle de convergencia (solo si `--until-converge` activo)
|
|
276
|
+
|
|
277
|
+
Cuando se invoca con `--until-converge`, el comando itera el ciclo completo de los Pasos 1-7 (verificar → ofrecer correcciones → aplicar → re-verificar) automáticamente como una sola operación unitaria. La pasada N+1 se ejecuta sobre el resultado de las correcciones aplicadas en la pasada N.
|
|
278
|
+
|
|
279
|
+
### 4.6.1 — Criterio de salida por convergencia
|
|
280
|
+
|
|
281
|
+
El loop se detiene cuando se cumple **cualquiera** de estas señales (la primera que ocurra):
|
|
282
|
+
|
|
283
|
+
| Señal | Criterio | Razón |
|
|
284
|
+
|-------|----------|-------|
|
|
285
|
+
| **A — éxito** | La pasada N produce 0 hallazgos nuevos de severidad `CRÍTICO`, `ALTO` o `MAYOR` | Convergencia natural — la fase está limpia |
|
|
286
|
+
| **B — adversarial** | La pasada N+1 introduce ≥5 hallazgos NUEVOS sobre el código corregido en la pasada N | Las correcciones están introduciendo regresión; escalar al usuario |
|
|
287
|
+
| **C — máximo** | Se alcanza `--max-iter=N` (default 5) sin converger | No-convergente; reportar al usuario |
|
|
288
|
+
|
|
289
|
+
Los hallazgos `MEDIO`, `BAJO` y `SUGERENCIA` no rompen convergencia — se acumulan como deuda técnica documentada.
|
|
290
|
+
|
|
291
|
+
### 4.6.2 — Control de pausa entre iteraciones
|
|
292
|
+
|
|
293
|
+
Antes de invocar al implementador para aplicar correcciones de la pasada N, el comando muestra un resumen y permite al usuario decidir:
|
|
294
|
+
|
|
295
|
+
```
|
|
296
|
+
Pasada N completada: [X] hallazgos CRÍTICO + [Y] ALTO + [Z] MAYOR
|
|
297
|
+
|
|
298
|
+
Próximo: aplicar correcciones y ejecutar pasada N+1.
|
|
299
|
+
|
|
300
|
+
[c] continuar a pasada N+1 (default tras 30s)
|
|
301
|
+
[p] pausar — mostrar reporte completo de la pasada N y esperar input
|
|
302
|
+
[q] cancelar — mantener correcciones aplicadas hasta ahora, salir del loop
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
Sin respuesta en 30s: continúa automáticamente con `c` (default).
|
|
306
|
+
|
|
307
|
+
Con `--no-prompt`: salta este prompt completamente. Útil en CI o cuando el usuario aprobó el loop completo de antemano. Equivale a aceptar `c` automáticamente en cada iteración.
|
|
308
|
+
|
|
309
|
+
### 4.6.3 — Detección de loop adversarial
|
|
310
|
+
|
|
311
|
+
Tras cada pasada N+1, comparar el conjunto de hallazgos contra el archivo `.planning/fases/0N-converge-state.json` (sección 4.6.5). Si:
|
|
312
|
+
|
|
313
|
+
- La pasada N+1 introduce **≥5 hallazgos NUEVOS** (signature distinto) sobre archivos que se modificaron entre pasadas N y N+1, **escalar al usuario**:
|
|
314
|
+
|
|
315
|
+
```
|
|
316
|
+
Pasada N+1 detectó N hallazgos nuevos sobre código que se acaba de corregir.
|
|
317
|
+
Las correcciones de la pasada N pueden estar introduciendo regresión.
|
|
318
|
+
|
|
319
|
+
Hallazgos nuevos:
|
|
320
|
+
[lista breve archivo:línea]
|
|
321
|
+
|
|
322
|
+
¿Continuar (c), pausar para inspección (p), o abortar el loop (q)?
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
Esto NO es lo mismo que la pausa estándar — es una alerta explícita por adversarialidad.
|
|
326
|
+
|
|
327
|
+
### 4.6.4 — Compatibilidad con otros flags
|
|
328
|
+
|
|
329
|
+
| Combinación | Comportamiento |
|
|
330
|
+
|-------------|----------------|
|
|
331
|
+
| `--until-converge --ultra` | Cada pasada ejecuta la consolidación profunda (Paso 4.5). Más caro, más sólido. |
|
|
332
|
+
| `--until-converge --solo-codigo` | El loop se itera solo sobre revisor-codigo-swl. Convergencia ignora hallazgos de seguridad. |
|
|
333
|
+
| `--until-converge --solo-seguridad` | El loop se itera solo sobre revisor-seguridad-swl. |
|
|
334
|
+
| `--until-converge --aplicar-iteracion=urgentes` | El default del scope para las aplicaciones automáticas dentro del loop es `urgentes` (CRÍTICOS+MAYORES). Sin este flag, el loop pregunta scope al usuario en la primera iteración y lo reutiliza. |
|
|
335
|
+
| `--until-converge --no-prompt` | Pasadas sin pausa interactiva — adecuado para CI. La detección adversarial sigue activa y aborta si se dispara. |
|
|
336
|
+
|
|
337
|
+
### 4.6.5 — Estado de convergencia persistido
|
|
338
|
+
|
|
339
|
+
Entre iteraciones se mantiene `.planning/fases/0N-converge-state.json`:
|
|
340
|
+
|
|
341
|
+
```json
|
|
342
|
+
{
|
|
343
|
+
"fase": "0N",
|
|
344
|
+
"session_id": "...",
|
|
345
|
+
"iniciado_at": "ISO timestamp",
|
|
346
|
+
"max_iter": 5,
|
|
347
|
+
"no_prompt": false,
|
|
348
|
+
"iteraciones": [
|
|
349
|
+
{
|
|
350
|
+
"n": 1,
|
|
351
|
+
"criticos": 3, "altos": 5, "mayores": 9, "medios": 4, "bajos": 2,
|
|
352
|
+
"hallazgos_signatures": ["sha256(archivo+linea+regla)", ...],
|
|
353
|
+
"archivos_corregidos": ["..."],
|
|
354
|
+
"duracion_ms": 124000
|
|
355
|
+
}
|
|
356
|
+
],
|
|
357
|
+
"convergencia": null,
|
|
358
|
+
"razon_salida": null
|
|
359
|
+
}
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
Al terminar el loop se anexa `convergencia` y `razon_salida` y se renombra a `0N-converge-run-[timestamp].json` para mantener historia.
|
|
363
|
+
|
|
364
|
+
### 4.6.6 — Integración al VERIFICACION.md final
|
|
365
|
+
|
|
366
|
+
El VERIFICACION.md reportado al usuario al final del loop incluye una sección al inicio:
|
|
367
|
+
|
|
368
|
+
```markdown
|
|
369
|
+
## Resumen del modo --until-converge
|
|
370
|
+
|
|
371
|
+
- Pasadas ejecutadas: K / max=5
|
|
372
|
+
- Convergencia: alcanzada en pasada K | no-alcanzada (límite max-iter) | abortada (loop adversarial) | abortada por usuario
|
|
373
|
+
- Razón de salida: [descripción]
|
|
374
|
+
- Hallazgos por pasada:
|
|
375
|
+
| Pasada | CRÍTICO | ALTO | MAYOR | MEDIO | BAJO |
|
|
376
|
+
|--------|---------|------|-------|-------|------|
|
|
377
|
+
| 1 | 3 | 5 | 9 | 4 | 2 |
|
|
378
|
+
| 2 | 0 | 1 | 3 | 2 | 1 |
|
|
379
|
+
| 3 | 0 | 0 | 0 | 2 | 1 |
|
|
380
|
+
- Estado persistido: `.planning/fases/0N-converge-run-[timestamp].json`
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
### 4.6.7 — Backward compatibility
|
|
384
|
+
|
|
385
|
+
Sin `--until-converge`, el comportamiento del comando es idéntico al actual: una sola pasada, ofrece correcciones tras el veredicto, sale. El flag es 100% aditivo.
|
|
386
|
+
|
|
387
|
+
## Paso 5 — Verificación de criterios de aceptación
|
|
388
|
+
|
|
389
|
+
Lee los criterios de aceptación del `.planning/fases/0N-CONTEXTO.md` y verifica cada uno:
|
|
390
|
+
|
|
391
|
+
Para cada criterio:
|
|
392
|
+
1. Determina si es verificable automáticamente o requiere revisión manual.
|
|
393
|
+
2. Si es automático: ejecuta la verificación y registra el resultado.
|
|
394
|
+
3. Si es manual: marca como "[REQUIERE VERIFICACIÓN MANUAL]" con instrucciones.
|
|
395
|
+
|
|
396
|
+
Ejemplo de tabla de verificación:
|
|
397
|
+
```
|
|
398
|
+
| Criterio | Método | Resultado |
|
|
399
|
+
|---------|--------|----------|
|
|
400
|
+
| El usuario puede crear una cuenta | Test e2e / manual | PASA / FALLA / PENDIENTE |
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
## Paso 6 — Consolidación y generación del VERIFICACION.md
|
|
404
|
+
|
|
405
|
+
Consolida todos los hallazgos en `.planning/fases/0N-VERIFICACION.md`:
|
|
406
|
+
|
|
407
|
+
```markdown
|
|
408
|
+
# Reporte de verificación — Fase N: [nombre]
|
|
409
|
+
|
|
410
|
+
**Proyecto**: [nombre]
|
|
411
|
+
**Fecha de verificación**: [fecha]
|
|
412
|
+
**Verificado por**: swl:verificar + revisor-codigo-swl + revisor-seguridad-swl
|
|
413
|
+
**Estado general**: APROBADO | APROBADO_CON_OBSERVACIONES | REQUIERE_CORRECCIONES | RECHAZADO
|
|
414
|
+
|
|
415
|
+
## Resumen ejecutivo
|
|
416
|
+
|
|
417
|
+
| Categoría | CRÍTICO | MAYOR | MENOR | SUGERENCIA |
|
|
418
|
+
|-----------|---------|-------|-------|-----------|
|
|
419
|
+
| Tests | N | N | N | N |
|
|
420
|
+
| Código | N | N | N | N |
|
|
421
|
+
| Seguridad | N | N | N | N |
|
|
422
|
+
| **Total** | **N** | **N** | **N** | **N** |
|
|
423
|
+
|
|
424
|
+
## Criterios de aceptación
|
|
425
|
+
|
|
426
|
+
[tabla del Paso 5]
|
|
427
|
+
|
|
428
|
+
## Hallazgos por categoría
|
|
429
|
+
|
|
430
|
+
### Tests automatizados
|
|
431
|
+
[resultados del Paso 2.1]
|
|
432
|
+
|
|
433
|
+
### Calidad de código
|
|
434
|
+
[hallazgos del revisor-codigo-swl]
|
|
435
|
+
|
|
436
|
+
### Seguridad
|
|
437
|
+
[hallazgos del revisor-seguridad-swl]
|
|
438
|
+
|
|
439
|
+
### Issues menores y sugerencias
|
|
440
|
+
[lista]
|
|
441
|
+
|
|
442
|
+
## Acciones requeridas antes del deploy
|
|
443
|
+
|
|
444
|
+
[solo los CRÍTICO y MAYOR — ordenados por prioridad]
|
|
445
|
+
|
|
446
|
+
1. [ ] [acción específica con archivo y línea]
|
|
447
|
+
2. [ ] [acción específica]
|
|
448
|
+
|
|
449
|
+
## Decisión de verificación
|
|
450
|
+
|
|
451
|
+
**APROBADO**: No hay hallazgos CRÍTICO ni MAYOR. La fase puede avanzar.
|
|
452
|
+
**APROBADO_CON_OBSERVACIONES**: Hay MAYOR pero no bloquea el avance inmediato. Resolver en la siguiente iteración.
|
|
453
|
+
**REQUIERE_CORRECCIONES**: Hay hallazgos CRÍTICO que deben resolverse antes de deploy.
|
|
454
|
+
**RECHAZADO**: La implementación no cumple los criterios de aceptación fundamentales.
|
|
455
|
+
```
|
|
456
|
+
|
|
457
|
+
## Paso 7 — Reporte al usuario
|
|
458
|
+
|
|
459
|
+
Reporta el resultado de verificación al usuario con formato claro:
|
|
460
|
+
|
|
461
|
+
```
|
|
462
|
+
Verificación de la Fase N completada.
|
|
463
|
+
|
|
464
|
+
Estado: [APROBADO | REQUIERE_CORRECCIONES | etc.]
|
|
465
|
+
|
|
466
|
+
Hallazgos críticos: [N] — [descripción breve o "ninguno"]
|
|
467
|
+
Hallazgos mayores: [N]
|
|
468
|
+
Hallazgos menores: [N]
|
|
469
|
+
Criterios de aceptación: [N de N cumplidos]
|
|
470
|
+
|
|
471
|
+
Reporte completo en: .planning/fases/0N-VERIFICACION.md
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
Si hay hallazgos CRÍTICOS, lista cada uno explícitamente y pregunta:
|
|
475
|
+
```
|
|
476
|
+
Hay [N] hallazgos críticos que deben corregirse. ¿Deseas:
|
|
477
|
+
1. Corregirlos ahora (recomendado)
|
|
478
|
+
2. Continuar de todas formas y registrar como deuda técnica
|
|
479
|
+
3. Ver el detalle completo del reporte primero
|
|
480
|
+
```
|
|
481
|
+
|
|
482
|
+
Si el veredicto es **APROBADO_CON_OBSERVACIONES** (hay MAYORES pero ninguno CRÍTICO), ofrecer al usuario el flujo de corrección automatizado:
|
|
483
|
+
|
|
484
|
+
```
|
|
485
|
+
Veredicto: APROBADO_CON_OBSERVACIONES
|
|
486
|
+
|
|
487
|
+
Hay [N] hallazgos mayores no bloqueantes:
|
|
488
|
+
[lista breve con archivo:línea por cada uno]
|
|
489
|
+
|
|
490
|
+
¿Deseas:
|
|
491
|
+
1. Aplicar todas las correcciones sugeridas ahora (delegar al implementador-swl
|
|
492
|
+
con el VERIFICACION.md como spec — resuelve los N hallazgos en un solo slice)
|
|
493
|
+
2. Resolverlos selectivamente (te muestro uno a uno y decides)
|
|
494
|
+
3. Registrar como deuda técnica y continuar
|
|
495
|
+
4. Ver el detalle completo del reporte primero
|
|
496
|
+
```
|
|
497
|
+
|
|
498
|
+
**Comportamiento de la opción 1** (aplicar todas las correcciones automatizado):
|
|
499
|
+
|
|
500
|
+
1. Extraer cada hallazgo MAYOR del VERIFICACION.md como una tarea del slice.
|
|
501
|
+
2. Delegar a `implementador-swl` con un brief que incluye:
|
|
502
|
+
- Ruta del VERIFICACION.md como spec primaria
|
|
503
|
+
- Lista explícita de archivo:línea por cada hallazgo
|
|
504
|
+
- Regla: aplicar solo las correcciones listadas, sin refactorings adicionales
|
|
505
|
+
3. Al terminar el implementador, ejecutar re-verificación automática (no bloqueante)
|
|
506
|
+
sobre los mismos archivos para confirmar cierre de hallazgos.
|
|
507
|
+
4. Si la re-verificación reporta nuevos MAYORES en código tocado, escalar al usuario
|
|
508
|
+
(no entrar en bucle infinito).
|
|
509
|
+
5. Commit atómico con mensaje `fix(verificar): resuelve N observaciones de
|
|
510
|
+
fase X — <ticket/referencia VERIFICACION.md>`.
|
|
511
|
+
|
|
512
|
+
**Por qué este flujo es necesario**: hoy el usuario tras APROBADO_CON_OBSERVACIONES
|
|
513
|
+
debe pedir manualmente cada corrección. Eso genera fricción y olvido de observaciones
|
|
514
|
+
menores que se acumulan como deuda. El flujo automatizado preserva la autonomía
|
|
515
|
+
del usuario (opciones 2/3/4 siguen disponibles) pero ofrece la ruta feliz cuando
|
|
516
|
+
el usuario quiere cerrar todo el batch.
|
|
517
|
+
|
|
518
|
+
### Flag `--aplicar-iteracion=<scope>` (salta el prompt de opciones)
|
|
519
|
+
|
|
520
|
+
Cuando el usuario ya sabe qué scope quiere aplicar, el flag elimina la fricción
|
|
521
|
+
de 2 mensajes de ida/vuelta (veredicto → respuesta del usuario → ejecución).
|
|
522
|
+
|
|
523
|
+
**Sintaxis**:
|
|
524
|
+
|
|
525
|
+
```bash
|
|
526
|
+
/swl:verificar --aplicar-iteracion=urgentes
|
|
527
|
+
/swl:verificar --aplicar-iteracion=todo
|
|
528
|
+
/swl:verificar --aplicar-iteracion=custom:C2,M3,M5
|
|
529
|
+
```
|
|
530
|
+
|
|
531
|
+
**Interpretación por valor**:
|
|
532
|
+
|
|
533
|
+
| Valor | Alcance | Casos de uso |
|
|
534
|
+
|-------|---------|--------------|
|
|
535
|
+
| `urgentes` | CRÍTICOS + MAYORES | Default razonable para la mayoría de fases; resuelve bloqueantes sin tocar mejoras de calidad. |
|
|
536
|
+
| `todo` | CRÍTICOS + MAYORES + MEDIOS | Cierre completo antes de release o entrega. Aplica todo lo accionable. |
|
|
537
|
+
| `custom:IDs` | Solo los hallazgos con IDs listados (comas sin espacios) | Selección quirúrgica — por ejemplo, usuario quiere omitir `C1` por razones de scope: `custom:C2,C3,M1,M4`. |
|
|
538
|
+
|
|
539
|
+
**Comportamiento del flag**:
|
|
540
|
+
|
|
541
|
+
1. Ejecuta verificación completa (Pasos 1-6 estándar).
|
|
542
|
+
2. Genera VERIFICACION.md normalmente.
|
|
543
|
+
3. Si el veredicto es `APROBADO_CON_OBSERVACIONES` o `REQUIERE_CORRECCIONES`:
|
|
544
|
+
- En lugar de presentar el menú de opciones, selecciona los hallazgos según el scope del flag.
|
|
545
|
+
- Delega a `implementador-swl` con la lista filtrada como brief (mismo formato que opción 1 estándar).
|
|
546
|
+
- Ejecuta re-verificación no bloqueante al terminar.
|
|
547
|
+
4. Si el veredicto es `APROBADO` o `RECHAZADO`:
|
|
548
|
+
- `APROBADO`: el flag no tiene efecto (nada que aplicar).
|
|
549
|
+
- `RECHAZADO`: el flag se ignora y se escala al usuario (fase con defectos críticos requiere decisión humana).
|
|
550
|
+
|
|
551
|
+
**Reglas del flag**:
|
|
552
|
+
|
|
553
|
+
- **SIEMPRE listar explícitamente** los IDs que se aplicarán antes de delegar (para que el log del comando refleje qué se está cerrando).
|
|
554
|
+
- **Si el scope incluye un ID que no existe** en el VERIFICACION.md, advertir pero continuar con los que sí existen.
|
|
555
|
+
- **`custom:` es case-sensitive** para los IDs (ej: `C2` ≠ `c2`).
|
|
556
|
+
- **El flag NO suprime el commit** — el mensaje `fix(verificar): resuelve N observaciones` registra la aplicación igual que el flujo manual.
|
|
557
|
+
- **No combinar con `--solo-codigo` o `--solo-seguridad` sin criterio**: si solo se corre un revisor, el scope `todo` o `urgentes` solo aplica a los hallazgos de ese lado.
|
|
558
|
+
|
|
559
|
+
**Ejemplo concreto**:
|
|
560
|
+
|
|
561
|
+
```bash
|
|
562
|
+
# Usuario quiere cerrar MAYORES y MEDIOS pero omitir C1 (que marcó como
|
|
563
|
+
# fuera de scope por discusión previa con el equipo):
|
|
564
|
+
/swl:verificar --aplicar-iteracion=custom:C2,C3,M1,M2,M3,Med1,Med2
|
|
565
|
+
```
|
|
566
|
+
|
|
567
|
+
El comando:
|
|
568
|
+
1. Corre verificación completa.
|
|
569
|
+
2. Al ver `APROBADO_CON_OBSERVACIONES` con 8 hallazgos incluyendo C1:
|
|
570
|
+
3. Selecciona los 7 IDs listados (omite C1).
|
|
571
|
+
4. Delega al implementador con brief que incluye solo esos 7.
|
|
572
|
+
5. Re-verifica. Commitea. Reporta `7 de 7 aplicados; C1 omitido por flag custom`.
|
|
573
|
+
|
|
574
|
+
**Origen**: esta funcionalidad se agregó tras observar en campo (proyecto EMAIA,
|
|
575
|
+
2026-04-23) que el patrón "veredicto → usuario pide X manualmente → ejecución" se
|
|
576
|
+
repetía 2+ veces por sesión con alta variación sobre el alcance exacto. Formalizar
|
|
577
|
+
con flag elimina los 2 mensajes de fricción y deja el scope auditable en el comando.
|
|
578
|
+
|
|
579
|
+
## Reglas de comportamiento
|
|
580
|
+
|
|
581
|
+
- NUNCA marques una fase como APROBADO si hay hallazgos CRÍTICOS de seguridad.
|
|
582
|
+
- NUNCA ejecutes correcciones de código directamente en este comando — solo identifica. Las correcciones son responsabilidad del implementador.
|
|
583
|
+
- Si los tests fallan, es siempre CRÍTICO, sin excepción.
|
|
584
|
+
- Las SUGERENCIAS son de largo plazo — no bloquean el avance pero deben documentarse.
|
|
585
|
+
- Si el RESUMEN.md no existe, usa git diff para inferir el alcance. Nunca te bloquees.
|