@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,160 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: verificacion-evidencia
|
|
3
|
+
description: >
|
|
4
|
+
Gate function que impide afirmar éxito sin evidencia verificada. Obliga a ejecutar
|
|
5
|
+
el comando de prueba, leer la salida completa y verificar antes de cualquier
|
|
6
|
+
afirmación positiva. Cargar SIEMPRE al terminar una tarea o slice, antes de
|
|
7
|
+
reportar éxito al usuario o al orquestador.
|
|
8
|
+
herramientasPermitidas: [Read, Write, Edit, Bash, Glob, Grep]
|
|
9
|
+
exclusiones:
|
|
10
|
+
- "No cargar como sustituto de `verificar-trabajo` — este skill es el gate de afirmaciones puntuales, no la verificación end-to-end de un plan completo."
|
|
11
|
+
- "No cargar para generar evidencia de métricas de negocio (conversiones, retención); eso requiere datos de analytics, no comandos de build."
|
|
12
|
+
- "No cargar si el usuario pide solo un resumen del estado del plan — leer ESTADO.md directamente es más eficiente."
|
|
13
|
+
evolvable: true # default para skill estandar
|
|
14
|
+
---
|
|
15
|
+
# Verificación por Evidencia
|
|
16
|
+
|
|
17
|
+
Ninguna afirmación de éxito es válida sin evidencia fresca obtenida en esta sesión.
|
|
18
|
+
El silencio no es éxito. La ausencia de error visible no es éxito. La confianza en
|
|
19
|
+
el código no es evidencia. Solo el output del comando ejecutado ahora es evidencia.
|
|
20
|
+
|
|
21
|
+
## Cuándo cargar este skill
|
|
22
|
+
|
|
23
|
+
Invoca `Skill("verificacion-evidencia")` cuando:
|
|
24
|
+
|
|
25
|
+
## Cuándo NO cargar
|
|
26
|
+
|
|
27
|
+
- Se necesita verificar un plan completo con múltiples artefactos; usar `verificar-trabajo` que aplica los 4 niveles sistemáticamente.
|
|
28
|
+
- El usuario pide reportar el estado del PLAN.md — leer ESTADO.md es suficiente, no se necesita ejecutar comandos de verificación.
|
|
29
|
+
- Se busca validar que el plan tiene buena estructura antes de ejecutarlo; eso es parte de `planear-fase`.
|
|
30
|
+
|
|
31
|
+
- Se va a reportar al usuario que una tarea está terminada
|
|
32
|
+
- Se va a marcar un slice como completado en el PLAN.md
|
|
33
|
+
- Se va a afirmar que los tests pasan, el build compila o el lint está limpio
|
|
34
|
+
- Se detecta el impulso de escribir "debería funcionar" o "se ve correcto"
|
|
35
|
+
- Un agente termina una fase y va a pasarle el control al siguiente
|
|
36
|
+
|
|
37
|
+
## La Ley de Hierro
|
|
38
|
+
|
|
39
|
+
> **NO AFIRMAR ÉXITO SIN EVIDENCIA FRESCA**
|
|
40
|
+
|
|
41
|
+
Esta ley no tiene excepciones. No importa si:
|
|
42
|
+
- El código "se ve correcto"
|
|
43
|
+
- Funcionó en el último intento hace 10 minutos
|
|
44
|
+
- Es un cambio trivial o de una sola línea
|
|
45
|
+
- El agente tiene alta confianza
|
|
46
|
+
|
|
47
|
+
La evidencia vence a la confianza. Siempre.
|
|
48
|
+
|
|
49
|
+
## Protocolo de 5 pasos
|
|
50
|
+
|
|
51
|
+
Antes de cualquier afirmación positiva, ejecutar este protocolo completo:
|
|
52
|
+
|
|
53
|
+
### Paso 1 — IDENTIFICAR
|
|
54
|
+
|
|
55
|
+
Responder: ¿qué comando demuestra que esto funciona?
|
|
56
|
+
|
|
57
|
+
- Tests: `pytest`, `npm test`, `go test ./...`, `cargo test`
|
|
58
|
+
- Build: `npm run build`, `cargo build --release`, `mvn package`
|
|
59
|
+
- Lint: `ruff check .`, `eslint src/`, `golangci-lint run`
|
|
60
|
+
- Type check: `mypy .`, `npx tsc --noEmit`
|
|
61
|
+
- Servidor: verificar que responde con `curl` o en el navegador
|
|
62
|
+
|
|
63
|
+
Si no existe un comando que lo demuestre, la tarea no está terminada.
|
|
64
|
+
|
|
65
|
+
### Paso 2 — EJECUTAR
|
|
66
|
+
|
|
67
|
+
Correr el comando completo. No:
|
|
68
|
+
- Correr solo un subconjunto de tests
|
|
69
|
+
- Usar resultados cacheados
|
|
70
|
+
- Omitir flags que estuvieron presentes antes (`--coverage`, `--all-features`)
|
|
71
|
+
- Interrumpir el comando antes de que termine
|
|
72
|
+
|
|
73
|
+
### Paso 3 — LEER
|
|
74
|
+
|
|
75
|
+
Revisar el output completo:
|
|
76
|
+
- Leer hasta el final, no solo las primeras líneas
|
|
77
|
+
- Verificar el exit code (0 = éxito, cualquier otro = fallo)
|
|
78
|
+
- Buscar WARNINGS que indiquen degradación silenciosa
|
|
79
|
+
- Contar: cuántos tests corrieron, cuántos pasaron, cuántos fallaron
|
|
80
|
+
|
|
81
|
+
### Paso 4 — VERIFICAR
|
|
82
|
+
|
|
83
|
+
¿El output confirma lo que se va a afirmar?
|
|
84
|
+
|
|
85
|
+
| Afirmación | Evidencia requerida |
|
|
86
|
+
|---|---|
|
|
87
|
+
| "Los tests pasan" | Output con `N passed, 0 failed` y exit code 0 |
|
|
88
|
+
| "El build compila" | Output de compilación exitosa y exit code 0 |
|
|
89
|
+
| "No hay errores de lint" | Output vacío o con solo warnings, exit code 0 |
|
|
90
|
+
| "El endpoint responde" | Respuesta HTTP con status 200 y body esperado |
|
|
91
|
+
| "La migración aplicó" | Output confirmando tablas/columnas creadas |
|
|
92
|
+
|
|
93
|
+
### Paso 5 — SOLO ENTONCES AFIRMAR
|
|
94
|
+
|
|
95
|
+
Con evidencia en mano, afirmar con precisión:
|
|
96
|
+
|
|
97
|
+
- Mal: "Los tests pasan"
|
|
98
|
+
- Bien: "Los tests pasan: 47 passed, 0 failed, 0 errors (pytest 3.2s)"
|
|
99
|
+
- Mal: "El build está listo"
|
|
100
|
+
- Bien: "Build exitoso: bundle de 234KB en dist/ (npm run build, 8.4s)"
|
|
101
|
+
|
|
102
|
+
Incluir siempre: resultado numérico + comando usado + tiempo si es relevante.
|
|
103
|
+
|
|
104
|
+
## Red flags que activan este skill
|
|
105
|
+
|
|
106
|
+
Detener y aplicar el protocolo si se detecta cualquiera de estos pensamientos:
|
|
107
|
+
|
|
108
|
+
- "debería funcionar" -> ejecutar para verificar que funciona
|
|
109
|
+
- "se ve correcto" -> ejecutar para confirmar que es correcto
|
|
110
|
+
- "probablemente pasa" -> ejecutar para saber si pasa
|
|
111
|
+
- "es un cambio trivial" -> los cambios triviales también pueden romper cosas
|
|
112
|
+
- "funcionó antes" -> el estado actual puede ser diferente al de antes
|
|
113
|
+
- "no necesito correr los tests para esto" -> sí necesitas
|
|
114
|
+
|
|
115
|
+
## Anti-patrones
|
|
116
|
+
|
|
117
|
+
### Verificación parcial
|
|
118
|
+
|
|
119
|
+
Correr solo el test del módulo modificado cuando la afirmación es "los tests pasan".
|
|
120
|
+
Si la afirmación es parcial, hacerla explícita: "los tests del módulo X pasan".
|
|
121
|
+
|
|
122
|
+
### Leer output incompleto
|
|
123
|
+
|
|
124
|
+
Leer solo las primeras líneas del output. Los errores frecuentemente aparecen al final.
|
|
125
|
+
Siempre leer hasta el final, especialmente la línea de resumen.
|
|
126
|
+
|
|
127
|
+
### Silencio como éxito
|
|
128
|
+
|
|
129
|
+
Asumir que la ausencia de output de error significa éxito. Algunos comandos fallan
|
|
130
|
+
silenciosamente. Verificar siempre el exit code.
|
|
131
|
+
|
|
132
|
+
### Build cacheado
|
|
133
|
+
|
|
134
|
+
Asumir que el resultado del build anterior sigue siendo válido. Si hubo cambios
|
|
135
|
+
desde el último build, correr el build de nuevo.
|
|
136
|
+
|
|
137
|
+
### Confianza en el modelo mental
|
|
138
|
+
|
|
139
|
+
Confiar en que se entiende el código lo suficiente para saber que funciona.
|
|
140
|
+
El modelo mental puede estar incompleto. La ejecución no miente.
|
|
141
|
+
|
|
142
|
+
## Gotchas / Errores comunes no obvios
|
|
143
|
+
|
|
144
|
+
- **Exit code ignorado en favor del output textual**: el comando devuelve "OK" en stdout pero el exit code es 1 (fallo). El agente lee "OK" y afirma éxito. Causa: el Paso 3 no incluye verificación explícita del exit code. Solución: verificar el exit code siempre (`echo $?` o capturar en el Bash tool) — el exit code es la fuente de verdad, no el texto del output.
|
|
145
|
+
- **Subset de tests citado como "los tests pasan"**: el agente corre `pytest tests/modulo_nuevo/` y afirma que los tests pasan sin verificar si los tests de otros módulos afectados también pasan. Causa: el Paso 2 dice "no correr solo un subconjunto" pero el agente optimiza por velocidad. Solución: si la afirmación es global ("los tests pasan"), el comando debe ser `pytest` sin filtro de módulo; si es parcial, la afirmación debe ser explícitamente parcial.
|
|
146
|
+
- **Output cacheado de build anterior**: en proyectos TypeScript con `tsc`, el compilador puede usar caché y no detectar el error introducido en la sesión actual. Causa: no se pasó `--force` ni se limpió el caché. Solución: para verificación post-cambio usar `npx tsc --noEmit` sin caché, o `rm -rf dist/ && npm run build`.
|
|
147
|
+
- **Warning elevado a evidencia de éxito**: el agente cita el output de ruff como evidencia de limpieza pero el output contiene 3 warnings de `W503`. Causa: se confundió "sin errores" con "sin warnings". Solución: definir el umbral antes de ejecutar — si el criterio es "sin warnings", el exit code de ruff con warnings es 1 en modo strict.
|
|
148
|
+
|
|
149
|
+
## Checklist de verificación
|
|
150
|
+
|
|
151
|
+
Antes de reportar cualquier éxito:
|
|
152
|
+
|
|
153
|
+
- [ ] Se identificó el comando que demuestra el éxito
|
|
154
|
+
- [ ] El comando se ejecutó completo (no parcial, no cacheado)
|
|
155
|
+
- [ ] Se leyó el output hasta el final
|
|
156
|
+
- [ ] Se verificó el exit code
|
|
157
|
+
- [ ] La afirmación incluye evidencia numérica concreta
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
*Skill creado con swl:crear-skill el 2026-03-31. Versión 1.0.0.*
|
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: verificar-trabajo
|
|
3
|
+
description: Verificación goal-backward del trabajo ejecutado en 4 niveles progresivos — EXISTE, SUSTANTIVO, CONECTADO, DATOS_FLUYEN. Detecta stubs, componentes huérfanos, integraciones rotas y flujos incompletos. Produce veredictos estructurados JSON con clasificación de riesgo (Low/Medium/High) y evidencia verificable. Soporta loop de reparación cuando el veredicto es Fail.
|
|
4
|
+
version: "1.1.0"
|
|
5
|
+
herramientasPermitidas: [Read, Write, Edit, Bash, Glob, Grep]
|
|
6
|
+
exclusiones:
|
|
7
|
+
- "No cargar durante la implementación activa de una tarea; la verificación es posterior a la implementación, no concurrente."
|
|
8
|
+
- "No cargar para revisar calidad de código estático (style, naming, SOLID); eso es `checklist-calidad` o el revisor de lenguaje correspondiente."
|
|
9
|
+
- "No cargar para validar que el PLAN.md está bien estructurado antes de ejecutar; eso es parte de `planear-fase`."
|
|
10
|
+
- "No cargar como único mecanismo de QA en producción — es verificación de entregables del plan, no monitoreo de sistemas en vivo."
|
|
11
|
+
evolvable: true # default para skill estandar
|
|
12
|
+
---
|
|
13
|
+
# Habilidad: Verificar Trabajo Ejecutado
|
|
14
|
+
|
|
15
|
+
## Propósito
|
|
16
|
+
|
|
17
|
+
El verificador no confía en que el código existe porque el desarrollador lo dice.
|
|
18
|
+
Verifica activamente, nivel por nivel, que cada entregable del plan está presente,
|
|
19
|
+
tiene implementación real (no stub), está conectado al sistema y los datos fluyen
|
|
20
|
+
a través de él de extremo a extremo.
|
|
21
|
+
|
|
22
|
+
## Cuándo activar
|
|
23
|
+
|
|
24
|
+
- Después de ejecutar una fase completa
|
|
25
|
+
- Antes de marcar una fase como "lista para producción"
|
|
26
|
+
- Cuando el usuario pide revisión o QA de trabajo entregado
|
|
27
|
+
- Como segunda opinión después de auto-reporte del desarrollador
|
|
28
|
+
|
|
29
|
+
## Cuándo NO cargar
|
|
30
|
+
|
|
31
|
+
- La tarea está en medio de la implementación — la verificación ocurre después de que el ejecutor declara que terminó.
|
|
32
|
+
- Se busca revisión de calidad de código (nombres, estructura, patrones); usar `checklist-calidad` o un skill de lenguaje específico.
|
|
33
|
+
- Se quiere auditar seguridad del código; usar `checklist-seguridad` o `threat-model-lite`.
|
|
34
|
+
- El objetivo es verificar el estado del sistema en producción en tiempo real; este skill verifica artefactos del plan, no métricas de runtime.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Gate Function (verificacion micro)
|
|
39
|
+
|
|
40
|
+
Antes de CUALQUIER afirmacion de exito, aplicar este protocolo de 5 pasos:
|
|
41
|
+
|
|
42
|
+
1. IDENTIFICAR: que comando prueba esta afirmacion?
|
|
43
|
+
2. EJECUTAR: correr el comando COMPLETO (no parcial, no cached)
|
|
44
|
+
3. LEER: revisar output completo Y exit code
|
|
45
|
+
4. VERIFICAR: el output confirma la afirmacion?
|
|
46
|
+
5. AFIRMAR: solo entonces, con la evidencia
|
|
47
|
+
|
|
48
|
+
Red flags que activan el gate:
|
|
49
|
+
- "deberia funcionar", "se ve correcto", "probablemente pasa"
|
|
50
|
+
- Afirmaciones sin haber ejecutado verificacion
|
|
51
|
+
- "Los tests pasan" sin output de test runner
|
|
52
|
+
|
|
53
|
+
Este gate aplica en CADA afirmacion, no solo al final de una fase.
|
|
54
|
+
El skill `verificacion-evidencia` tiene el detalle completo de este protocolo.
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Los 4 niveles de verificación
|
|
59
|
+
|
|
60
|
+
### Nivel 1 — EXISTE
|
|
61
|
+
|
|
62
|
+
**Pregunta**: ¿El artefacto prometido existe en el sistema de archivos / codebase?
|
|
63
|
+
|
|
64
|
+
Verificaciones:
|
|
65
|
+
- El archivo existe en la ruta esperada
|
|
66
|
+
- La clase / función / componente declarado está presente
|
|
67
|
+
- La migración de BD está en la carpeta correcta
|
|
68
|
+
- El endpoint está registrado en el router
|
|
69
|
+
|
|
70
|
+
Señal de falla: el archivo no existe, o existe pero está vacío, o existe pero
|
|
71
|
+
tiene solo el esqueleto generado automáticamente sin contenido real.
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
# Verificación de existencia
|
|
75
|
+
ls -la [ruta esperada]
|
|
76
|
+
grep -r "class [NombreEsperado]" .
|
|
77
|
+
grep -r "router\.[get|post|put|delete].*[ruta esperada]" .
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Nivel 2 — SUSTANTIVO
|
|
81
|
+
|
|
82
|
+
**Pregunta**: ¿La implementación tiene contenido real, no es un stub?
|
|
83
|
+
|
|
84
|
+
Un stub es cualquiera de:
|
|
85
|
+
- Función que solo tiene `pass` / `return null` / `throw new Error("not implemented")`
|
|
86
|
+
- Componente que solo renderiza un placeholder pendiente
|
|
87
|
+
- Service que solo tiene la firma pero no lógica
|
|
88
|
+
- Test que solo tiene `assert True` / `expect(true).toBe(true)`
|
|
89
|
+
|
|
90
|
+
Verificaciones por tipo:
|
|
91
|
+
|
|
92
|
+
| Tipo de artefacto | Señal de stub | Verificación real |
|
|
93
|
+
|------------------|--------------|------------------|
|
|
94
|
+
| Función Python | Solo `pass` o `return None` | Tiene lógica de negocio |
|
|
95
|
+
| Endpoint FastAPI | Solo `return {}` | Llama a un service |
|
|
96
|
+
| Componente Angular | Solo `<div>pendiente</div>` | Tiene template con datos reales |
|
|
97
|
+
| Test | Solo `assert True` | Tiene assert sobre comportamiento real |
|
|
98
|
+
| Migración SQL | Archivo vacío | Tiene operaciones DDL |
|
|
99
|
+
|
|
100
|
+
### Nivel 3 — CONECTADO
|
|
101
|
+
|
|
102
|
+
**Pregunta**: ¿El artefacto está integrado con los demás componentes del sistema?
|
|
103
|
+
|
|
104
|
+
Verificaciones:
|
|
105
|
+
- El endpoint está importado y registrado en el router principal
|
|
106
|
+
- El service es llamado desde el endpoint (no implementado en paralelo sin uso)
|
|
107
|
+
- El componente Angular está declarado en el módulo o importado en el componente padre
|
|
108
|
+
- La migración está en la secuencia correcta (no rompe la cadena de alembic/flyway)
|
|
109
|
+
- El modelo ORM está importado donde se usa
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
# Verificar que endpoint está registrado
|
|
113
|
+
grep -r "include_router\|app.include" . --include="*.py"
|
|
114
|
+
|
|
115
|
+
# Verificar que service es importado
|
|
116
|
+
grep -r "from.*service import\|import.*Service" . --include="*.py" --include="*.ts"
|
|
117
|
+
|
|
118
|
+
# Verificar cadena de migraciones (Alembic)
|
|
119
|
+
alembic history | head -20
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Señal de "orphan": el artefacto existe y tiene contenido, pero nadie lo llama.
|
|
123
|
+
Un componente huérfano es código muerto desde el día uno.
|
|
124
|
+
|
|
125
|
+
### Nivel 4 — DATOS_FLUYEN
|
|
126
|
+
|
|
127
|
+
**Pregunta**: Si envío datos reales al sistema, llegan al destino correcto?
|
|
128
|
+
|
|
129
|
+
Este es el nivel más importante y el más difícil de falsear. Requiere ejecutar
|
|
130
|
+
el sistema o correr tests de integración.
|
|
131
|
+
|
|
132
|
+
Estrategias de verificación:
|
|
133
|
+
|
|
134
|
+
**Para APIs REST**:
|
|
135
|
+
```bash
|
|
136
|
+
# Llamada real al endpoint y verificar respuesta
|
|
137
|
+
curl -X POST http://localhost:8000/api/v1/[recurso] \
|
|
138
|
+
-H "Content-Type: application/json" \
|
|
139
|
+
-d '{"campo": "valor"}' | jq .
|
|
140
|
+
|
|
141
|
+
# Verificar que el dato llegó a la BD
|
|
142
|
+
psql -c "SELECT * FROM [tabla] ORDER BY created_at DESC LIMIT 1;"
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
**Para componentes Angular**:
|
|
146
|
+
- El componente renderiza datos de la API (no mocks hardcodeados)
|
|
147
|
+
- Los formularios envían datos al service correcto
|
|
148
|
+
- Los errores de la API se muestran al usuario
|
|
149
|
+
|
|
150
|
+
**Para jobs y cron**:
|
|
151
|
+
- El job se ejecuta y produce el output esperado
|
|
152
|
+
- Los logs muestran la ejecución correcta
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Detección de antipatrones comunes
|
|
157
|
+
|
|
158
|
+
### Hollow Component
|
|
159
|
+
Un componente Angular que:
|
|
160
|
+
- Tiene template pero no usa señales/variables del componente
|
|
161
|
+
- Tiene métodos declarados pero no llamados desde el template
|
|
162
|
+
- Recibe `@Input()` pero nunca lo renderiza
|
|
163
|
+
|
|
164
|
+
### Endpoint Stub
|
|
165
|
+
Un endpoint FastAPI que:
|
|
166
|
+
- Devuelve datos hardcodeados sin consultar la BD
|
|
167
|
+
- No valida el body (acepta cualquier cosa)
|
|
168
|
+
- No usa el `db: AsyncSession` declarado en la firma
|
|
169
|
+
|
|
170
|
+
### Test sin Valor
|
|
171
|
+
Un test que:
|
|
172
|
+
- No tiene ningún `assert` o `expect`
|
|
173
|
+
- Hace assert sobre un valor hardcodeado que siempre es true
|
|
174
|
+
- Prueba el mock en lugar del código real
|
|
175
|
+
|
|
176
|
+
### Migración Fantasma
|
|
177
|
+
Una migración que:
|
|
178
|
+
- Está en la carpeta pero no en la cadena de Alembic
|
|
179
|
+
- Tiene `upgrade()` vacío
|
|
180
|
+
- No corresponde con los modelos ORM actuales
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## Veredicto estructurado (JSON)
|
|
185
|
+
|
|
186
|
+
Toda verificación DEBE producir un veredicto en formato JSON estructurado además
|
|
187
|
+
del reporte VERIFICACION.md legible. El veredicto es consumible por el orquestador
|
|
188
|
+
y por hooks de automatización.
|
|
189
|
+
|
|
190
|
+
### Schema del veredicto
|
|
191
|
+
|
|
192
|
+
```json
|
|
193
|
+
{
|
|
194
|
+
"verdict": "Pass | Fail",
|
|
195
|
+
"risk": "Low | Medium | High",
|
|
196
|
+
"score": 0.85,
|
|
197
|
+
"evidence": [
|
|
198
|
+
{
|
|
199
|
+
"level": "EXISTE | SUSTANTIVO | CONECTADO | DATOS_FLUYEN",
|
|
200
|
+
"artifact": "src/api/endpoints.py",
|
|
201
|
+
"status": "Pass | Fail",
|
|
202
|
+
"detail": "Endpoint registrado en router principal línea 42"
|
|
203
|
+
}
|
|
204
|
+
],
|
|
205
|
+
"failures": [
|
|
206
|
+
{
|
|
207
|
+
"artifact": "src/services/pago_service.py",
|
|
208
|
+
"level": "SUSTANTIVO",
|
|
209
|
+
"reason": "Función procesar_pago() solo contiene pass"
|
|
210
|
+
}
|
|
211
|
+
],
|
|
212
|
+
"nextStep": {
|
|
213
|
+
"action": "Continue | Fix | Escalate",
|
|
214
|
+
"instructions": [
|
|
215
|
+
"Implementar lógica real en procesar_pago()",
|
|
216
|
+
"Agregar test de integración para flujo de pago"
|
|
217
|
+
]
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### Reglas del veredicto
|
|
223
|
+
|
|
224
|
+
- `verdict`: **Pass** solo si TODOS los artefactos pasan los 4 niveles. Un solo Fail → Fail.
|
|
225
|
+
- `score`: proporción de (artefactos × niveles) que pasaron. Rango 0.0 a 1.0.
|
|
226
|
+
- `evidence`: al menos una entrada por artefacto verificado. Sin evidencia = sin veredicto.
|
|
227
|
+
- `failures`: vacío si verdict es Pass. Obligatorio si es Fail.
|
|
228
|
+
- `nextStep.action`: **Continue** (pasar a siguiente fase), **Fix** (reparar y re-verificar),
|
|
229
|
+
**Escalate** (requiere decisión humana — checkpoint `decision`).
|
|
230
|
+
|
|
231
|
+
### Loop de reparación
|
|
232
|
+
|
|
233
|
+
Cuando el veredicto es **Fail** con `nextStep.action: "Fix"`:
|
|
234
|
+
|
|
235
|
+
1. El verificador emite el veredicto con instrucciones concretas en `nextStep.instructions`.
|
|
236
|
+
2. El ejecutor aplica las correcciones indicadas (NO inventa correcciones adicionales).
|
|
237
|
+
3. El verificador re-ejecuta la verificación COMPLETA (no solo los items fallidos).
|
|
238
|
+
4. Si el veredicto sigue siendo Fail tras 2 intentos → escalar a `nextStep.action: "Escalate"`.
|
|
239
|
+
|
|
240
|
+
El ejecutor NUNCA se auto-verifica — el verificador es siempre un agente distinto
|
|
241
|
+
o una segunda invocación independiente.
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
## Clasificación de riesgo del cambio
|
|
246
|
+
|
|
247
|
+
El campo `risk` del veredicto se determina automáticamente según las características
|
|
248
|
+
del cambio verificado:
|
|
249
|
+
|
|
250
|
+
| Señal | Riesgo | Justificación |
|
|
251
|
+
|-------|--------|---------------|
|
|
252
|
+
| Eliminaciones de archivos o renombramientos | **High** | Puede romper imports y referencias |
|
|
253
|
+
| Migraciones de BD (DDL) | **High** | Irreversible en producción |
|
|
254
|
+
| Cambios en ≥12 archivos | **High** | Blast radius amplio |
|
|
255
|
+
| Cambios en ≥6 archivos o toca backend | **Medium** | Impacto moderado |
|
|
256
|
+
| Cambios en archivos de configuración (.env, CI) | **Medium** | Afecta infraestructura |
|
|
257
|
+
| Cambios en <6 archivos solo frontend | **Low** | Impacto contenido |
|
|
258
|
+
| Cambios solo en tests o documentación | **Low** | Sin impacto en producción |
|
|
259
|
+
|
|
260
|
+
### Verificaciones dinámicas por riesgo
|
|
261
|
+
|
|
262
|
+
El verificador ajusta su profundidad según el riesgo detectado:
|
|
263
|
+
|
|
264
|
+
- **Low**: Niveles 1-3 obligatorios. Nivel 4 recomendado.
|
|
265
|
+
- **Medium**: Los 4 niveles obligatorios. Ejecutar linter y type-checker si existen.
|
|
266
|
+
- **High**: Los 4 niveles obligatorios. Ejecutar tests completos. Verificar que
|
|
267
|
+
`package.json` scripts (test, typecheck, lint) pasan. Revisar diff contra main.
|
|
268
|
+
|
|
269
|
+
Detección automática de scripts disponibles:
|
|
270
|
+
```bash
|
|
271
|
+
# Detectar qué verificaciones están disponibles
|
|
272
|
+
node -e "const p=require('./package.json');console.log(JSON.stringify(p.scripts||{}))" 2>/dev/null
|
|
273
|
+
# Ejecutar condicionalmente
|
|
274
|
+
npm run typecheck 2>/dev/null && echo "TYPECHECK_OK" || echo "TYPECHECK_FAIL"
|
|
275
|
+
npm test 2>/dev/null && echo "TESTS_OK" || echo "TESTS_FAIL"
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
---
|
|
279
|
+
|
|
280
|
+
## Plantilla de salida: `VERIFICACION.md`
|
|
281
|
+
|
|
282
|
+
Para la plantilla completa con todos los campos incluyendo el bloque de veredicto
|
|
283
|
+
estructurado JSON, ver [recursos/plantilla-verificacion.md](recursos/plantilla-verificacion.md).
|
|
284
|
+
|
|
285
|
+
---
|
|
286
|
+
|
|
287
|
+
## Gotchas / Errores comunes no obvios
|
|
288
|
+
|
|
289
|
+
- **Verificación parcial elevada a veredicto Pass**: el agente verifica solo los Niveles 1-2 para un cambio de riesgo High y reporta Pass porque esos dos niveles pasaron. Causa: no se aplicaron las verificaciones dinámicas por riesgo. Solución: para cambios High, los 4 niveles son obligatorios y además se ejecutan los scripts `test`, `typecheck` y `lint` de `package.json`.
|
|
290
|
+
- **Score del veredicto calculado solo sobre artefactos verificados, no sobre todos los prometidos**: si el plan prometía 8 entregables pero solo se verificaron 5, el score 1.0 sobre los 5 no es evidencia de que los 8 están correctos. Causa: el agente omite entregables del plan en la lista de artefactos. Solución: antes de verificar, listar todos los artefactos del PLAN.md y verificar cada uno explícitamente — un artefacto no verificado es un Fail implícito.
|
|
291
|
+
- **Loop de reparación sin re-verificación completa**: tras el fix, el agente re-verifica solo el item que falló en lugar del veredicto completo. Causa: optimización incorrecta para ahorrar tiempo. Solución: el paso 3 del loop de reparación dice explícitamente "re-ejecutar la verificación COMPLETA" — un fix puede resolver un fallo pero introducir otro.
|
|
292
|
+
- **Hollow Component no detectado en Nivel 2**: el componente Angular tiene template pero no usa ninguna señal del componente. El agente verifica que el archivo existe (Nivel 1) y que tiene contenido (Nivel 2), pero no detecta que el contenido es decorativo. Causa: la definición de "stub" en Nivel 2 no se aplicó al caso de templates sin binding. Solución: verificar explícitamente que el template usa al menos una variable/señal del componente.
|
|
293
|
+
|
|
294
|
+
## Regla de oro del verificador
|
|
295
|
+
|
|
296
|
+
**"Si no puedes mostrar evidencia, no puedes decir que pasa."**
|
|
297
|
+
|
|
298
|
+
Cada nivel PASS debe tener evidencia adjunta en el reporte. Un "creo que funciona"
|
|
299
|
+
o "debería estar conectado" no es evidencia. La evidencia es:
|
|
300
|
+
- Output de un comando
|
|
301
|
+
- Línea de código específica
|
|
302
|
+
- Output de un test
|
|
303
|
+
- Screenshot o log de ejecución
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Plantilla: VERIFICACION.md
|
|
2
|
+
|
|
3
|
+
Usar esta plantilla al generar el reporte de verificación de una fase.
|
|
4
|
+
|
|
5
|
+
```markdown
|
|
6
|
+
# VERIFICACION.md — Fase [N]: [Nombre]
|
|
7
|
+
**Fecha**: [fecha]
|
|
8
|
+
**Verificador**: [agente/persona]
|
|
9
|
+
|
|
10
|
+
## Resumen ejecutivo
|
|
11
|
+
- Artefactos verificados: N
|
|
12
|
+
- Pasaron los 4 niveles: M
|
|
13
|
+
- Con problemas: K
|
|
14
|
+
- Score general: [M/N * 100]%
|
|
15
|
+
|
|
16
|
+
## Verificación por artefacto
|
|
17
|
+
|
|
18
|
+
### [Nombre del artefacto]
|
|
19
|
+
| Nivel | Estado | Evidencia |
|
|
20
|
+
|-------|--------|-----------|
|
|
21
|
+
| EXISTE | PASS / FAIL | [ruta del archivo o grep result] |
|
|
22
|
+
| SUSTANTIVO | PASS / FAIL | [líneas de código relevantes] |
|
|
23
|
+
| CONECTADO | PASS / FAIL | [dónde se importa/registra] |
|
|
24
|
+
| DATOS_FLUYEN | PASS / FAIL | [output del test o curl] |
|
|
25
|
+
|
|
26
|
+
**Problemas encontrados**:
|
|
27
|
+
- [descripción con archivo y línea]
|
|
28
|
+
|
|
29
|
+
**Veredicto**: APROBADO / REQUIERE CORRECCIÓN
|
|
30
|
+
|
|
31
|
+
[Repetir para cada artefacto]
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Hallazgos críticos (si los hay)
|
|
36
|
+
1. [Descripción, archivo, línea, impacto]
|
|
37
|
+
|
|
38
|
+
## Hallazgos menores
|
|
39
|
+
1. [Descripción, archivo, línea]
|
|
40
|
+
|
|
41
|
+
## Decisión final
|
|
42
|
+
[ ] APROBADO — listo para siguiente fase
|
|
43
|
+
[ ] APROBADO CON OBSERVACIONES — continuar pero resolver hallazgos menores
|
|
44
|
+
[ ] RECHAZADO — requiere correcciones antes de avanzar
|
|
45
|
+
|
|
46
|
+
## Veredicto estructurado
|
|
47
|
+
```json
|
|
48
|
+
{
|
|
49
|
+
"verdict": "Pass|Fail",
|
|
50
|
+
"risk": "Low|Medium|High",
|
|
51
|
+
"score": 0.0,
|
|
52
|
+
"evidence": [],
|
|
53
|
+
"failures": [],
|
|
54
|
+
"nextStep": { "action": "Continue|Fix|Escalate", "instructions": [] }
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Acciones requeridas (si hay rechazos)
|
|
59
|
+
- [ ] [Acción concreta con responsable y deadline]
|
|
60
|
+
```
|