@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,268 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: autoresearch
|
|
3
|
+
description: >
|
|
4
|
+
Protocolo de auto-mejora iterativa de skills basado en Autoresearch (Karpathy).
|
|
5
|
+
Define cómo crear checklists de evaluación por skill (3-6 items binarios ponderados),
|
|
6
|
+
ejecutar el loop de mutación atómica (cambiar una cosa → evaluar → keep/revert),
|
|
7
|
+
y mejorar skills hasta 95%+ de score. Cargar cuando se quiera mejorar la calidad
|
|
8
|
+
de un skill o agente existente de forma medible y automatizada, o cuando
|
|
9
|
+
auto-evolucion-swl necesite una metodología de mejora iterativa con scoring.
|
|
10
|
+
version: "1.0.0"
|
|
11
|
+
herramientasPermitidas: [Read, Bash]
|
|
12
|
+
exclusiones:
|
|
13
|
+
- "No cargar para mejorar el output de una sola sesión; el loop de autoresearch opera sobre el SKILL.md del skill, no sobre outputs puntuales."
|
|
14
|
+
- "No cargar si el skill tiene score baseline < 60% sin diagnóstico previo — un skill deficiente a ese nivel probablemente necesita reescritura antes de iteración incremental."
|
|
15
|
+
- "No cargar para evaluar agentes; la metodología aplica a skills (SKILL.md), no a agentes (frontmatter de agente). Para agentes usar `evaluacion-agentes`."
|
|
16
|
+
- "No cargar si el checklist no está redactado con criterios binarios verificables — iterar sobre un checklist subjetivo produce mutaciones sin dirección."
|
|
17
|
+
evolvable: true # default para skill estandar
|
|
18
|
+
---
|
|
19
|
+
# Autoresearch — Loop de Auto-Mejora Iterativa de Skills
|
|
20
|
+
|
|
21
|
+
Protocolo que convierte la mejora de skills de un proceso manual a uno **automatizado
|
|
22
|
+
y medible**. El humano define qué es "bueno" (checklist); la máquina descubre cómo
|
|
23
|
+
lograrlo (loop de mutación). Basado en el método Autoresearch de Andrej Karpathy,
|
|
24
|
+
adaptado para Claude Agent Skills.
|
|
25
|
+
|
|
26
|
+
**Principio**: Si puedes evaluarlo con un score, puedes autoresearch-arlo.
|
|
27
|
+
|
|
28
|
+
## Cuándo cargar este skill
|
|
29
|
+
|
|
30
|
+
Invoca `Skill("autoresearch")` cuando:
|
|
31
|
+
|
|
32
|
+
- Se quiere mejorar un skill existente de forma medible
|
|
33
|
+
- Un skill produce outputs que consistentemente no cumplen expectativas
|
|
34
|
+
- `auto-evolucion-swl` identifica un candidato para mejora iterativa
|
|
35
|
+
- Se necesita un proceso reproducible de mejora antes de una release
|
|
36
|
+
- Se quiere optimizar cualquier prompt que se use repetidamente
|
|
37
|
+
|
|
38
|
+
## El Loop — Resumen visual
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
[1] Crear checklist (3-6 items) → [2] Baseline score
|
|
42
|
+
↓
|
|
43
|
+
┌─── [3] El loop ◄──────────┐
|
|
44
|
+
│ ↓ │
|
|
45
|
+
│ Cambiar UNA cosa │
|
|
46
|
+
│ ↓ │
|
|
47
|
+
│ Evaluar vs checklist │
|
|
48
|
+
│ ↓ │
|
|
49
|
+
│ ¿Mejoró? ─── Sí → KEEP ──┘
|
|
50
|
+
│ │
|
|
51
|
+
│ No → REVERT ───────────┘
|
|
52
|
+
│
|
|
53
|
+
└─── Sale cuando: 95%+ × 3 consecutivas
|
|
54
|
+
↓
|
|
55
|
+
[4] Skill mejorado + changelog
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Paso 1 — Crear el checklist de evaluación
|
|
59
|
+
|
|
60
|
+
El checklist es lo ÚNICO que el humano define. Requisitos por item:
|
|
61
|
+
|
|
62
|
+
- **Binario**: sí/no — sin subjetividad
|
|
63
|
+
- **Observable**: verificable leyendo el output
|
|
64
|
+
- **Independiente**: un item no depende de otro
|
|
65
|
+
- **Ponderado**: peso 1-5 según impacto
|
|
66
|
+
|
|
67
|
+
```markdown
|
|
68
|
+
## Checklist — [nombre-skill]
|
|
69
|
+
|
|
70
|
+
| # | Criterio | Peso | Verificación |
|
|
71
|
+
|---|----------|------|-------------|
|
|
72
|
+
| 1 | [criterio concreto y verificable] | [1-5] | [cómo verificar] |
|
|
73
|
+
| 2 | [criterio concreto y verificable] | [1-5] | [cómo verificar] |
|
|
74
|
+
| 3 | [criterio concreto y verificable] | [1-5] | [cómo verificar] |
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Ver [recursos/checklist-template.md](recursos/checklist-template.md) para ejemplos
|
|
78
|
+
por dominio (backend, frontend, testing, docs, agentes).
|
|
79
|
+
|
|
80
|
+
## Paso 2 — Obtener baseline score
|
|
81
|
+
|
|
82
|
+
Ejecutar el skill con un **caso de prueba representativo** y evaluar:
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
score = Σ(items_cumplidos × peso) / Σ(todos_pesos) × 100
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Usar el script de scoring para cálculo determinista:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
node scripts/calcular-score.js '{"items":[{"peso":5,"cumple":true},{"peso":3,"cumple":false}]}'
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
**Formato de reporte baseline:**
|
|
95
|
+
|
|
96
|
+
```markdown
|
|
97
|
+
## Baseline — [nombre-skill] — [fecha]
|
|
98
|
+
Caso de prueba: [descripción]
|
|
99
|
+
Score: [N]%
|
|
100
|
+
|
|
101
|
+
| # | Criterio | Peso | ✓/✗ | Notas |
|
|
102
|
+
|---|----------|------|-----|-------|
|
|
103
|
+
| 1 | [criterio] | [N] | ✓/✗ | [observación] |
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## Paso 3 — El loop de mutación
|
|
107
|
+
|
|
108
|
+
Corre hasta alcanzar **95%+ en 3 evaluaciones consecutivas** o **máximo 10 rounds**:
|
|
109
|
+
|
|
110
|
+
```python
|
|
111
|
+
consecutive_passes = 0
|
|
112
|
+
round = 0
|
|
113
|
+
|
|
114
|
+
while consecutive_passes < 3 and round < MAX_ROUNDS:
|
|
115
|
+
round += 1
|
|
116
|
+
item = seleccionar_item_mayor_impacto(checklist)
|
|
117
|
+
mutacion = proponer_mutacion_atomica(skill, item)
|
|
118
|
+
aplicar(mutacion)
|
|
119
|
+
new_score = evaluar(skill, caso_prueba, checklist)
|
|
120
|
+
|
|
121
|
+
if new_score >= old_score:
|
|
122
|
+
old_score = new_score
|
|
123
|
+
registrar_changelog("KEEP", mutacion, old_score, new_score)
|
|
124
|
+
else:
|
|
125
|
+
revertir(mutacion)
|
|
126
|
+
registrar_changelog("REVERT", mutacion, old_score, new_score)
|
|
127
|
+
|
|
128
|
+
consecutive_passes = consecutive_passes + 1 if new_score >= 95 else 0
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### Tipos de mutación (uno a la vez, SIEMPRE)
|
|
132
|
+
|
|
133
|
+
| Tipo | Riesgo | Ejemplo |
|
|
134
|
+
|------|--------|---------|
|
|
135
|
+
| Agregar regla | Bajo | `+ SIEMPRE usar selectinload` |
|
|
136
|
+
| Agregar ejemplo MAL/BIEN | Bajo | `+ bloque de código correcto vs incorrecto` |
|
|
137
|
+
| Agregar lista negra | Bajo | `+ PROHIBIDO: @validator, lazy loading` |
|
|
138
|
+
| Refinar regla existente | Medio | `validar → validar con model_validator v2` |
|
|
139
|
+
| Reordenar secciones | Medio | `mover regla crítica al inicio` |
|
|
140
|
+
| Eliminar ruido | Alto | `- texto que no impacta el score` |
|
|
141
|
+
|
|
142
|
+
**Regla crítica**: UNA mutación por iteración. Si cambias varias cosas, no sabrás
|
|
143
|
+
cuál causó la mejora o el deterioro.
|
|
144
|
+
|
|
145
|
+
### Selección de mutación — Priorización
|
|
146
|
+
|
|
147
|
+
```
|
|
148
|
+
prioridad = peso_item × (1 si no_cumple else 0) × factor_tipo
|
|
149
|
+
|
|
150
|
+
factor_tipo:
|
|
151
|
+
1.0 = agregar regla/ejemplo (no modifica existente)
|
|
152
|
+
0.8 = refinar (modifica pero acota)
|
|
153
|
+
0.6 = reordenar (puede afectar flujo)
|
|
154
|
+
0.4 = eliminar (riesgo de perder información)
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
Siempre atacar primero: **peso alto + no cumple + tipo bajo riesgo**.
|
|
158
|
+
|
|
159
|
+
## Paso 4 — Registro por iteración
|
|
160
|
+
|
|
161
|
+
```markdown
|
|
162
|
+
## Round [N] — [fecha]
|
|
163
|
+
Score: [X]% → [Y]% ([+/-Z]%)
|
|
164
|
+
Mutación: [tipo] — [descripción concreta]
|
|
165
|
+
Item target: #[N] ([criterio])
|
|
166
|
+
Resultado: KEEP | REVERT
|
|
167
|
+
Razón: [por qué mejoró o empeoró]
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
## Paso 5 — Finalización
|
|
171
|
+
|
|
172
|
+
Al alcanzar 95%+ × 3 consecutivas (o max rounds):
|
|
173
|
+
|
|
174
|
+
1. **Guardar** la versión final del skill
|
|
175
|
+
2. **Versionar**: MINOR si cambios significativos, PATCH si ajustes menores
|
|
176
|
+
3. **Generar reporte final**:
|
|
177
|
+
|
|
178
|
+
```markdown
|
|
179
|
+
## Reporte Autoresearch — [nombre-skill]
|
|
180
|
+
Fecha: [fecha]
|
|
181
|
+
Rounds ejecutados: [N]
|
|
182
|
+
Score: [baseline]% → [final]%
|
|
183
|
+
Mutaciones KEEP: [N] | Mutaciones REVERT: [N]
|
|
184
|
+
|
|
185
|
+
### Mutaciones aplicadas (en orden)
|
|
186
|
+
1. [tipo]: [descripción] — Score [X]% → [Y]%
|
|
187
|
+
2. [tipo]: [descripción] — Score [X]% → [Y]%
|
|
188
|
+
|
|
189
|
+
### Mutaciones revertidas
|
|
190
|
+
1. [tipo]: [descripción] — Razón: [por qué empeoró]
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
4. **Registrar** en `.planning/APRENDIZAJES.md` las mutaciones más impactantes
|
|
194
|
+
|
|
195
|
+
## Umbrales de score
|
|
196
|
+
|
|
197
|
+
| Score | Estado | Acción |
|
|
198
|
+
|-------|--------|--------|
|
|
199
|
+
| 95-100% | Excelente | Loop terminado, guardar skill |
|
|
200
|
+
| 80-94% | Bueno | Continuar, mejoras marginales posibles |
|
|
201
|
+
| 60-79% | Regular | Loop activo, priorizar mutaciones de peso alto |
|
|
202
|
+
| < 60% | Deficiente | Considerar reescritura antes de iterar |
|
|
203
|
+
|
|
204
|
+
## Condiciones de salida del loop
|
|
205
|
+
|
|
206
|
+
| Condición | Acción |
|
|
207
|
+
|-----------|--------|
|
|
208
|
+
| 95%+ × 3 consecutivas | **Éxito** — guardar y versionar |
|
|
209
|
+
| 10 rounds sin alcanzar 95% | **Plateau** — reportar y pedir input humano |
|
|
210
|
+
| 3 reverts consecutivos | **Estancamiento** — cambiar estrategia de mutación |
|
|
211
|
+
| Score baja 2 rounds seguidos | **Degradación** — revertir al mejor score alcanzado |
|
|
212
|
+
|
|
213
|
+
## Integración con auto-evolución SWL
|
|
214
|
+
|
|
215
|
+
```
|
|
216
|
+
auto-evolucion-swl detecta skill con bajo rendimiento
|
|
217
|
+
→ /swl:autoresearch --skill=[nombre]
|
|
218
|
+
→ Loop de mejora iterativa
|
|
219
|
+
→ Skill mejorado + changelog
|
|
220
|
+
→ consolidador-swl registra la evolución
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
| Componente SWL | Rol en Autoresearch |
|
|
224
|
+
|---------------|-------------------|
|
|
225
|
+
| `auto-evolucion-swl` | Identifica candidatos para el loop |
|
|
226
|
+
| `checklist-calidad` | Base para crear checklists de evaluación |
|
|
227
|
+
| `aprendizaje-continuo` | Los instintos alimentan nuevos items del checklist |
|
|
228
|
+
| `extraccion-aprendizajes.js` | Captura mutaciones exitosas como aprendizajes |
|
|
229
|
+
| `validacion-ci-sistema` | Verifica integridad post-mutación |
|
|
230
|
+
|
|
231
|
+
## Cuándo NO cargar
|
|
232
|
+
|
|
233
|
+
- Se quiere mejorar un output de sesión puntual en lugar del SKILL.md persistente — el autoresearch opera sobre el archivo del skill, no sobre el output de una sola invocación.
|
|
234
|
+
- El skill tiene score < 60% sin análisis de causa raíz; mejor revisar si la estructura del skill es correcta antes de iterar — el loop puede no converger.
|
|
235
|
+
- El objetivo es evaluar un agente (frontmatter, `permisosRed`, capacidades); para eso usar `evaluacion-agentes` o la heurística de `diseno-herramientas-agente`.
|
|
236
|
+
|
|
237
|
+
## Gotchas / Errores comunes no obvios
|
|
238
|
+
|
|
239
|
+
- **Múltiples mutaciones aplicadas en una iteración**: el agente "optimiza" cambiando 3 reglas a la vez porque parecen relacionadas. Si el score sube 5%, no se sabe cuál mutación ayudó; si baja, no se sabe cuál causó el daño. Causa: violación de la regla "UNA mutación por iteración". Solución: deshacer todas las mutaciones simultáneas, aplicarlas una por una y evaluar cada una independientemente — el rigor del loop depende de esta atomicidad.
|
|
240
|
+
- **Plateau a los 10 rounds con score 78%**: el loop termina por max rounds sin alcanzar 95% y el agente declara "skill no mejorable". Causa: el checklist puede tener ítems redundantes o el caso de prueba no es representativo del uso real. Solución: ante un plateau, revisar primero si el checklist tiene ítems de bajo impacto (peso 1-2) que suman ruido — ajustar el checklist antes de considerar reescritura del skill.
|
|
241
|
+
- **REVERT no restaura el estado exacto anterior**: el agente hace el revert a mano editando el SKILL.md y no llega al estado byte-idéntico al pre-mutación. Causa: el revert manual puede introducir diferencias de whitespace o puntuación. Solución: hacer commit del SKILL.md antes de cada mutación — el revert es `git checkout <hash> -- habilidades/<skill>/SKILL.md`, no edición manual.
|
|
242
|
+
- **Caso de prueba no representativo del uso real del skill**: el checklist se evalúa con un escenario ideal que siempre pasa desde el baseline. Causa: el caso de prueba fue elegido por conveniencia. Solución: el caso de prueba debe ser el escenario donde el skill falla con más frecuencia según los logs de sesión — un skill que ya pasa el caso ideal no necesita autoresearch.
|
|
243
|
+
|
|
244
|
+
## Anti-patrones
|
|
245
|
+
|
|
246
|
+
### Checklists subjetivos — prohibidos
|
|
247
|
+
|
|
248
|
+
```markdown
|
|
249
|
+
# MAL — no evaluable automáticamente
|
|
250
|
+
| 1 | El código es elegante | 3 | ??? |
|
|
251
|
+
|
|
252
|
+
# BIEN — objetivo y verificable
|
|
253
|
+
| 1 | Funciones tienen ≤20 líneas | 3 | wc -l por función |
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
### Múltiples mutaciones simultáneas — prohibido
|
|
257
|
+
|
|
258
|
+
Si cambias 3 cosas y el score sube, no sabes cuál funcionó. Una por iteración.
|
|
259
|
+
|
|
260
|
+
### Iterar infinitamente — máximo 10 rounds
|
|
261
|
+
|
|
262
|
+
Si no mejora en 10 rounds, el checklist está mal diseñado o el skill necesita
|
|
263
|
+
reescritura fundamental, no iteración incremental.
|
|
264
|
+
|
|
265
|
+
### Ignorar reverts — son información valiosa
|
|
266
|
+
|
|
267
|
+
Un revert dice "esta dirección no funciona". Intentar otra estrategia sobre el
|
|
268
|
+
mismo item problemático, no repetir la misma mutación.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../../../schemas/skill-evals.schema.json",
|
|
3
|
+
"skill_name": "autoresearch",
|
|
4
|
+
"artifact_type": "skill",
|
|
5
|
+
"schema_version": 1,
|
|
6
|
+
"description": "Evals para autoresearch — loop de auto-mejora iterativa de skills.",
|
|
7
|
+
"evals": [
|
|
8
|
+
{
|
|
9
|
+
"id": 0,
|
|
10
|
+
"prompt": "Comando exacto para lanzar el loop de autoresearch sobre un skill específico.",
|
|
11
|
+
"files": [],
|
|
12
|
+
"expectations": [
|
|
13
|
+
"La respuesta usa `/swl:autoresearch`.",
|
|
14
|
+
"La respuesta menciona que requiere especificar el skill objetivo."
|
|
15
|
+
],
|
|
16
|
+
"tags": ["primary-flow"]
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"id": "stop-condition",
|
|
20
|
+
"prompt": "¿Cuándo debe parar el loop de autoresearch?",
|
|
21
|
+
"files": [],
|
|
22
|
+
"expectations": [
|
|
23
|
+
"Cuando N iteraciones no produzcan mejora medible (score estable).",
|
|
24
|
+
"Cuando se exceda budget de tokens o tiempo configurado.",
|
|
25
|
+
"Cuando el usuario lo detenga explícitamente."
|
|
26
|
+
],
|
|
27
|
+
"tags": ["loop-control"]
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"id": "no-recursion",
|
|
31
|
+
"prompt": "¿Puede autoresearch mejorarse a sí misma en el loop?",
|
|
32
|
+
"files": [],
|
|
33
|
+
"expectations": [
|
|
34
|
+
"La respuesta indica que NO, la skill está auto-protegida.",
|
|
35
|
+
"La respuesta cita riesgo de loop infinito o auto-degradación."
|
|
36
|
+
],
|
|
37
|
+
"grading_guidance": "Failure si sugiere que la skill se auto-itere.",
|
|
38
|
+
"tags": ["anti-pattern", "safety"]
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
# Plantilla de Checklists de Evaluación para Autoresearch
|
|
2
|
+
|
|
3
|
+
Usa esta plantilla para crear checklists específicos por skill. Cada checklist
|
|
4
|
+
debe tener 3-6 items binarios, ponderados y verificables.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Estructura del checklist
|
|
9
|
+
|
|
10
|
+
```markdown
|
|
11
|
+
## Checklist — [nombre-skill]
|
|
12
|
+
|
|
13
|
+
**Caso de prueba**: [descripción del caso representativo que se usará para evaluar]
|
|
14
|
+
|
|
15
|
+
| # | Criterio | Peso | Verificación |
|
|
16
|
+
|---|----------|------|-------------|
|
|
17
|
+
| 1 | [criterio] | [1-5] | [método de verificación] |
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
### Reglas para cada campo
|
|
21
|
+
|
|
22
|
+
| Campo | Reglas |
|
|
23
|
+
|-------|--------|
|
|
24
|
+
| **Criterio** | Binario (sí/no), observable, sin ambigüedad |
|
|
25
|
+
| **Peso** | 1=nice-to-have, 3=importante, 5=crítico |
|
|
26
|
+
| **Verificación** | Grep, conteo, presencia/ausencia, formato |
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Ejemplos por dominio
|
|
31
|
+
|
|
32
|
+
### Backend Python (FastAPI)
|
|
33
|
+
|
|
34
|
+
```markdown
|
|
35
|
+
## Checklist — fastapi-experto
|
|
36
|
+
|
|
37
|
+
**Caso de prueba**: "Genera un endpoint CRUD para una entidad Producto con
|
|
38
|
+
relaciones a Categoría, incluyendo schemas Pydantic y tests"
|
|
39
|
+
|
|
40
|
+
| # | Criterio | Peso | Verificación |
|
|
41
|
+
|---|----------|------|-------------|
|
|
42
|
+
| 1 | Endpoints usan response_model tipado | 3 | grep response_model |
|
|
43
|
+
| 2 | Inyección con Depends(), nunca instancia directa | 5 | grep Depends, ausencia de instanciación |
|
|
44
|
+
| 3 | Schemas usan model_validator, no @validator | 4 | ausencia de @validator |
|
|
45
|
+
| 4 | Queries async usan selectinload | 5 | grep selectinload |
|
|
46
|
+
| 5 | Tests usan httpx.AsyncClient | 3 | grep AsyncClient |
|
|
47
|
+
| 6 | Manejo de errores con HTTPException + detail dict | 2 | formato de excepciones |
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Frontend Angular
|
|
51
|
+
|
|
52
|
+
```markdown
|
|
53
|
+
## Checklist — angular-moderno
|
|
54
|
+
|
|
55
|
+
**Caso de prueba**: "Genera un componente de tabla de datos con filtrado,
|
|
56
|
+
paginación y edición inline usando Angular signals"
|
|
57
|
+
|
|
58
|
+
| # | Criterio | Peso | Verificación |
|
|
59
|
+
|---|----------|------|-------------|
|
|
60
|
+
| 1 | Componente usa standalone: true | 3 | grep standalone |
|
|
61
|
+
| 2 | Inputs usan input() signal, no @Input() | 5 | ausencia de @Input |
|
|
62
|
+
| 3 | Outputs usan output(), no @Output() | 4 | ausencia de @Output |
|
|
63
|
+
| 4 | Estado derivado usa computed(), no getters | 5 | grep computed( |
|
|
64
|
+
| 5 | changeDetection: OnPush | 3 | grep ChangeDetectionStrategy.OnPush |
|
|
65
|
+
| 6 | Template usa @if/@for, no *ngIf/*ngFor | 4 | ausencia de *ngIf, *ngFor |
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Frontend React
|
|
69
|
+
|
|
70
|
+
```markdown
|
|
71
|
+
## Checklist — react-experto
|
|
72
|
+
|
|
73
|
+
**Caso de prueba**: "Genera un componente de dashboard con fetching de datos,
|
|
74
|
+
estado local, y subcomponentes reutilizables"
|
|
75
|
+
|
|
76
|
+
| # | Criterio | Peso | Verificación |
|
|
77
|
+
|---|----------|------|-------------|
|
|
78
|
+
| 1 | Componentes funcionales, no clases | 3 | ausencia de extends Component |
|
|
79
|
+
| 2 | Estado con useState/useReducer, memoización correcta | 4 | grep useMemo, useCallback |
|
|
80
|
+
| 3 | Efectos tienen deps array completo | 5 | verificar deps de useEffect |
|
|
81
|
+
| 4 | Keys únicas en listas (no index) | 4 | ausencia de key={index} |
|
|
82
|
+
| 5 | Error boundaries para secciones críticas | 3 | grep ErrorBoundary |
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Testing
|
|
86
|
+
|
|
87
|
+
```markdown
|
|
88
|
+
## Checklist — tdd-workflow
|
|
89
|
+
|
|
90
|
+
**Caso de prueba**: "Genera tests para un servicio de autenticación con
|
|
91
|
+
login, logout, refresh token y roles"
|
|
92
|
+
|
|
93
|
+
| # | Criterio | Peso | Verificación |
|
|
94
|
+
|---|----------|------|-------------|
|
|
95
|
+
| 1 | Tests siguen patrón Arrange-Act-Assert | 3 | estructura de cada test |
|
|
96
|
+
| 2 | Nombres descriptivos (test_should_...) | 2 | formato de nombres |
|
|
97
|
+
| 3 | Cubre happy path Y edge cases | 5 | presencia de tests negativos |
|
|
98
|
+
| 4 | Usa fixtures/factories, no datos hardcoded | 4 | grep fixture, Factory |
|
|
99
|
+
| 5 | Assertions específicas (no assert True) | 3 | ausencia de assert True genérico |
|
|
100
|
+
| 6 | Mocking solo en boundaries (DB, HTTP) | 4 | verificar qué se mockea |
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Documentación
|
|
104
|
+
|
|
105
|
+
```markdown
|
|
106
|
+
## Checklist — documentador-swl (agente)
|
|
107
|
+
|
|
108
|
+
**Caso de prueba**: "Genera documentación de API para 3 endpoints con
|
|
109
|
+
autenticación, parámetros y respuestas"
|
|
110
|
+
|
|
111
|
+
| # | Criterio | Peso | Verificación |
|
|
112
|
+
|---|----------|------|-------------|
|
|
113
|
+
| 1 | Cada endpoint tiene método HTTP + ruta | 5 | formato de encabezados |
|
|
114
|
+
| 2 | Parámetros documentados con tipo y requerido | 4 | tabla de parámetros |
|
|
115
|
+
| 3 | Ejemplo de request y response incluidos | 5 | bloques de código |
|
|
116
|
+
| 4 | Códigos de error documentados | 3 | tabla de status codes |
|
|
117
|
+
| 5 | Autenticación requerida especificada | 3 | mención de auth header |
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Seguridad
|
|
121
|
+
|
|
122
|
+
```markdown
|
|
123
|
+
## Checklist — checklist-seguridad
|
|
124
|
+
|
|
125
|
+
**Caso de prueba**: "Revisa un endpoint de login con JWT, refresh tokens
|
|
126
|
+
y almacenamiento de sesión"
|
|
127
|
+
|
|
128
|
+
| # | Criterio | Peso | Verificación |
|
|
129
|
+
|---|----------|------|-------------|
|
|
130
|
+
| 1 | Tokens tienen expiración explícita | 5 | grep exp, expires |
|
|
131
|
+
| 2 | Passwords hasheados con bcrypt/argon2 | 5 | grep hash, bcrypt |
|
|
132
|
+
| 3 | Rate limiting en endpoint de login | 4 | grep rate_limit, throttle |
|
|
133
|
+
| 4 | Refresh tokens rotados en cada uso | 4 | lógica de rotación |
|
|
134
|
+
| 5 | No expone stack traces en errores | 3 | formato de error responses |
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### CSS / Tailwind
|
|
138
|
+
|
|
139
|
+
```markdown
|
|
140
|
+
## Checklist — tailwind-experto
|
|
141
|
+
|
|
142
|
+
**Caso de prueba**: "Genera un layout responsivo de dashboard con sidebar,
|
|
143
|
+
header y contenido principal usando Tailwind v4"
|
|
144
|
+
|
|
145
|
+
| # | Criterio | Peso | Verificación |
|
|
146
|
+
|---|----------|------|-------------|
|
|
147
|
+
| 1 | Usa utilidades de Tailwind, no CSS custom inline | 4 | ausencia de style= |
|
|
148
|
+
| 2 | Layout con grid/flex de Tailwind | 3 | grep grid, flex en clases |
|
|
149
|
+
| 3 | Breakpoints responsivos (sm:, md:, lg:) | 5 | grep sm:, md: |
|
|
150
|
+
| 4 | Spacing consistente (escala de Tailwind) | 3 | no valores arbitrarios |
|
|
151
|
+
| 5 | Dark mode con clase dark: | 2 | grep dark: |
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Cómo crear un checklist para un skill nuevo
|
|
157
|
+
|
|
158
|
+
1. **Identificar el output típico** del skill (¿qué genera?)
|
|
159
|
+
2. **Listar las 3 reglas más críticas** del SKILL.md
|
|
160
|
+
3. **Convertir cada regla en criterio binario** verificable
|
|
161
|
+
4. **Asignar pesos** según impacto en la calidad del output
|
|
162
|
+
5. **Definir método de verificación** (grep, conteo, formato, presencia/ausencia)
|
|
163
|
+
6. **Escribir caso de prueba** representativo que active las reglas
|
|
164
|
+
|
|
165
|
+
### Checklist del checklist (meta-evaluación)
|
|
166
|
+
|
|
167
|
+
Antes de usar un checklist, verificar:
|
|
168
|
+
|
|
169
|
+
- [ ] Tiene entre 3 y 6 items
|
|
170
|
+
- [ ] Cada item es binario (sí/no sin ambigüedad)
|
|
171
|
+
- [ ] Los pesos suman al menos 15 (para que el score sea discriminante)
|
|
172
|
+
- [ ] Hay al menos un item de peso 5 (criterio crítico)
|
|
173
|
+
- [ ] El caso de prueba es representativo del uso real del skill
|
|
174
|
+
- [ ] Los métodos de verificación son ejecutables (grep, conteo, etc.)
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## Ubicación de checklists en el sistema
|
|
179
|
+
|
|
180
|
+
Los checklists de evaluación se almacenan junto al skill que evalúan:
|
|
181
|
+
|
|
182
|
+
```
|
|
183
|
+
habilidades/[nombre-skill]/
|
|
184
|
+
├── SKILL.md
|
|
185
|
+
├── recursos/
|
|
186
|
+
│ └── checklist-autoresearch.md ← checklist de evaluación
|
|
187
|
+
└── scripts/ (si aplica)
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
Esto permite que el loop Autoresearch encuentre el checklist automáticamente
|
|
191
|
+
buscando `habilidades/[nombre]/recursos/checklist-autoresearch.md`.
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// calcular-score.js — Calcula score ponderado de Autoresearch
|
|
3
|
+
// Uso: node calcular-score.js '{"items":[{"peso":5,"cumple":true},{"peso":3,"cumple":false}]}'
|
|
4
|
+
// Exit: 0=éxito, 1=error de input
|
|
5
|
+
|
|
6
|
+
const input = process.argv[2];
|
|
7
|
+
|
|
8
|
+
if (!input) {
|
|
9
|
+
console.error('Uso: node calcular-score.js \'{"items":[{"peso":5,"cumple":true}]}\'');
|
|
10
|
+
console.error('Cada item necesita: peso (1-5) y cumple (true/false)');
|
|
11
|
+
process.exit(1);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
let data;
|
|
15
|
+
try {
|
|
16
|
+
data = JSON.parse(input);
|
|
17
|
+
} catch (e) {
|
|
18
|
+
console.error(`Error parseando JSON: ${e.message}`);
|
|
19
|
+
process.exit(1);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
if (!data.items || !Array.isArray(data.items) || data.items.length === 0) {
|
|
23
|
+
console.error('Se requiere un array "items" con al menos 1 elemento');
|
|
24
|
+
process.exit(1);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
let score = 0;
|
|
28
|
+
let maxScore = 0;
|
|
29
|
+
const resultados = [];
|
|
30
|
+
|
|
31
|
+
for (let i = 0; i < data.items.length; i++) {
|
|
32
|
+
const item = data.items[i];
|
|
33
|
+
|
|
34
|
+
if (typeof item.peso !== 'number' || item.peso < 1 || item.peso > 5) {
|
|
35
|
+
console.error(`Item ${i + 1}: peso debe ser número entre 1 y 5 (recibido: ${item.peso})`);
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
if (typeof item.cumple !== 'boolean') {
|
|
40
|
+
console.error(`Item ${i + 1}: cumple debe ser boolean (recibido: ${item.cumple})`);
|
|
41
|
+
process.exit(1);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
maxScore += item.peso;
|
|
45
|
+
if (item.cumple) {
|
|
46
|
+
score += item.peso;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
resultados.push({
|
|
50
|
+
item: i + 1,
|
|
51
|
+
criterio: item.criterio || `Item ${i + 1}`,
|
|
52
|
+
peso: item.peso,
|
|
53
|
+
cumple: item.cumple ? '✓' : '✗',
|
|
54
|
+
puntos: item.cumple ? item.peso : 0
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const porcentaje = Math.round((score / maxScore) * 10000) / 100;
|
|
59
|
+
|
|
60
|
+
let estado;
|
|
61
|
+
if (porcentaje >= 95) estado = 'EXCELENTE';
|
|
62
|
+
else if (porcentaje >= 80) estado = 'BUENO';
|
|
63
|
+
else if (porcentaje >= 60) estado = 'REGULAR';
|
|
64
|
+
else estado = 'DEFICIENTE';
|
|
65
|
+
|
|
66
|
+
// Output estructurado
|
|
67
|
+
const output = {
|
|
68
|
+
score: porcentaje,
|
|
69
|
+
estado,
|
|
70
|
+
puntos: score,
|
|
71
|
+
maxPuntos: maxScore,
|
|
72
|
+
items: resultados,
|
|
73
|
+
cumplidos: resultados.filter(r => r.cumple === '✓').length,
|
|
74
|
+
total: resultados.length
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
console.log(JSON.stringify(output, null, 2));
|
|
78
|
+
|
|
79
|
+
// También output legible
|
|
80
|
+
console.log('');
|
|
81
|
+
console.log(`Score: ${porcentaje}% (${score}/${maxScore} puntos) — ${estado}`);
|
|
82
|
+
console.log(`Items cumplidos: ${output.cumplidos}/${output.total}`);
|
|
83
|
+
console.log('');
|
|
84
|
+
resultados.forEach(r => {
|
|
85
|
+
console.log(` ${r.cumple} #${r.item} ${r.criterio} (peso: ${r.peso}, puntos: ${r.puntos})`);
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
process.exit(0);
|