@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,227 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: swl:configurar-ci
|
|
3
|
+
description: Instala y gestiona los workflows CI/CD de swl-ses en proyectos de usuarios. Subcomandos init (flujo interactivo completo), status (muestra qué está instalado) y uninstall (quita los workflows). Para setup automatizado de GitHub Actions con revisión de seguridad Claude, CI genérico y release automatizado.
|
|
4
|
+
allowed_tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep"]
|
|
5
|
+
user-invocable: true
|
|
6
|
+
version: "1.0.0"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# /swl:configurar-ci — Setup de CI/CD en tu proyecto
|
|
10
|
+
|
|
11
|
+
Orquesta la instalación de los workflows GitHub Actions de swl-ses en el proyecto donde estés trabajando.
|
|
12
|
+
|
|
13
|
+
## Subcomandos
|
|
14
|
+
|
|
15
|
+
| Subcomando | Descripción |
|
|
16
|
+
|-----------|-------------|
|
|
17
|
+
| `init` | Flujo interactivo completo (default) |
|
|
18
|
+
| `status` | Muestra qué workflows están instalados y qué secrets se necesitan |
|
|
19
|
+
| `uninstall` | Quita los workflows SWL del proyecto |
|
|
20
|
+
|
|
21
|
+
Si se invoca sin subcomando, ejecutar `init`.
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## /swl:configurar-ci init
|
|
26
|
+
|
|
27
|
+
Flujo interactivo paso a paso. Detecta el proyecto en el directorio actual.
|
|
28
|
+
|
|
29
|
+
### Paso 1 — Verificar contexto
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
node -e "const p=require('./package.json');console.log('Proyecto:',p.name,'v'+p.version)" 2>/dev/null || echo "Sin package.json"
|
|
33
|
+
ls .github/workflows/ 2>/dev/null && echo "Directorio .github/workflows existe" || echo "Directorio .github/workflows no existe"
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Mostrar al usuario qué se detectó y confirmar que es el proyecto correcto.
|
|
37
|
+
|
|
38
|
+
### Paso 2 — Preguntar qué workflows instalar (si TTY)
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
¿Qué workflows quieres instalar? (Enter para activar, espacio para omitir)
|
|
42
|
+
|
|
43
|
+
[x] swl-security.yml — Revisión de seguridad con Claude en cada PR
|
|
44
|
+
REQUIERE: secret CLAUDE_API_KEY en GitHub Settings → Secrets
|
|
45
|
+
|
|
46
|
+
[x] swl-ci.yml — CI estándar (lint + test) en push y PRs
|
|
47
|
+
Sin secrets adicionales
|
|
48
|
+
|
|
49
|
+
[ ] release-please.yml — Releases automáticos desde conventional commits
|
|
50
|
+
Sin secrets adicionales. Requiere conventional commits.
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Si el usuario omite `init` e invoca con flags directos, respetar esos flags sin preguntar:
|
|
54
|
+
- `--with-security` / `--no-security`
|
|
55
|
+
- `--with-ci` / `--no-ci`
|
|
56
|
+
- `--with-release-please`
|
|
57
|
+
- `--dry-run`
|
|
58
|
+
- `--force`
|
|
59
|
+
|
|
60
|
+
### Paso 3 — Copiar workflows
|
|
61
|
+
|
|
62
|
+
Invocar `scripts/lib/configurar-ci.js` con las opciones seleccionadas:
|
|
63
|
+
|
|
64
|
+
```javascript
|
|
65
|
+
const { init } = require('./scripts/lib/configurar-ci');
|
|
66
|
+
const resultado = init({
|
|
67
|
+
withSecurity: true,
|
|
68
|
+
withCi: true,
|
|
69
|
+
withReleasePlease: false,
|
|
70
|
+
// dryRun: true, // con --dry-run
|
|
71
|
+
});
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Si hay archivos existentes en `resultado.existentes`, preguntar:
|
|
75
|
+
```
|
|
76
|
+
Los siguientes workflows ya existen en .github/workflows/:
|
|
77
|
+
- swl-security.yml
|
|
78
|
+
¿Sobreescribir? (s/N)
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Si el usuario dice que sí, volver a llamar `init` con `force: true`.
|
|
82
|
+
|
|
83
|
+
### Paso 4 — Configurar CLAUDE_API_KEY (solo si se instaló swl-security.yml)
|
|
84
|
+
|
|
85
|
+
Preguntar:
|
|
86
|
+
```
|
|
87
|
+
swl-security.yml requiere el secret CLAUDE_API_KEY en GitHub.
|
|
88
|
+
|
|
89
|
+
¿Quieres configurarlo ahora con gh CLI? (s/N)
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Si dice sí, verificar que `gh` esté disponible:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
gh auth status 2>&1 | head -3
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Si está autenticado, guiar al usuario para que pegue su API key (sin almacenarla):
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
Pega tu CLAUDE_API_KEY (la input estará oculta):
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Luego ejecutar:
|
|
105
|
+
```bash
|
|
106
|
+
gh secret set CLAUDE_API_KEY
|
|
107
|
+
# gh leerá el valor desde stdin de forma segura
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Si `gh` no está disponible o el usuario dice que no, mostrar el link para hacerlo manualmente:
|
|
111
|
+
```
|
|
112
|
+
Para configurar manualmente:
|
|
113
|
+
https://github.com/<owner>/<repo>/settings/secrets/actions/new
|
|
114
|
+
Nombre: CLAUDE_API_KEY
|
|
115
|
+
Valor: tu clave de https://console.anthropic.com
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### Paso 5 — Configurar branch protection (opcional)
|
|
119
|
+
|
|
120
|
+
Preguntar:
|
|
121
|
+
```
|
|
122
|
+
¿Aplicar branch protection en main?
|
|
123
|
+
Esto requiere gh CLI autenticado y permisos de admin en el repo.
|
|
124
|
+
(s/N)
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Si dice sí:
|
|
128
|
+
```bash
|
|
129
|
+
node scripts/configurar-branch-protection.js --dry-run
|
|
130
|
+
# Mostrar el plan al usuario
|
|
131
|
+
# Si confirma:
|
|
132
|
+
node scripts/configurar-branch-protection.js
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
**NOTA**: el script de branch protection vive en el repo swl-ses. Si el usuario está en su propio proyecto, advertir que debe copiar el script o usar la guía manual de GitHub Settings → Branches.
|
|
136
|
+
|
|
137
|
+
### Paso 6 — Resumen final
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
Setup completado:
|
|
141
|
+
✓ .github/workflows/swl-security.yml
|
|
142
|
+
✓ .github/workflows/swl-ci.yml
|
|
143
|
+
- release-please.yml (omitido)
|
|
144
|
+
|
|
145
|
+
Próximos pasos:
|
|
146
|
+
1. git add .github/workflows/ && git commit -m "ci: agregar workflows CI/CD swl-ses"
|
|
147
|
+
2. Abrir un PR para ver el workflow en acción
|
|
148
|
+
3. Verificar que CLAUDE_API_KEY esté en GitHub Settings → Secrets
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## /swl:configurar-ci status
|
|
154
|
+
|
|
155
|
+
Muestra el estado actual de los workflows SWL en el proyecto.
|
|
156
|
+
|
|
157
|
+
```javascript
|
|
158
|
+
const { status } = require('./scripts/lib/configurar-ci');
|
|
159
|
+
const resultado = status();
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
Formato de salida:
|
|
163
|
+
|
|
164
|
+
```
|
|
165
|
+
Workflows SWL en .github/workflows/:
|
|
166
|
+
|
|
167
|
+
Instalados:
|
|
168
|
+
✓ swl-security.yml
|
|
169
|
+
Secrets requeridos: CLAUDE_API_KEY (verificar en GitHub Settings)
|
|
170
|
+
✓ swl-ci.yml
|
|
171
|
+
Sin secrets adicionales
|
|
172
|
+
|
|
173
|
+
No instalados:
|
|
174
|
+
- release-please.yml
|
|
175
|
+
|
|
176
|
+
Para instalar los faltantes: /swl:configurar-ci init
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
Si `gh` está disponible, intentar verificar si el secret existe:
|
|
180
|
+
```bash
|
|
181
|
+
gh secret list 2>/dev/null | grep CLAUDE_API_KEY
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## /swl:configurar-ci uninstall
|
|
187
|
+
|
|
188
|
+
Elimina los workflows gestionados por swl-ses. No toca branch protection ni otros workflows.
|
|
189
|
+
|
|
190
|
+
```javascript
|
|
191
|
+
const { uninstall } = require('./scripts/lib/configurar-ci');
|
|
192
|
+
|
|
193
|
+
// Primero listar qué se eliminaría (sin confirmar)
|
|
194
|
+
const plan = uninstall({ confirmar: false });
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
Mostrar:
|
|
198
|
+
```
|
|
199
|
+
Los siguientes workflows serán eliminados:
|
|
200
|
+
- .github/workflows/swl-security.yml
|
|
201
|
+
- .github/workflows/swl-ci.yml
|
|
202
|
+
|
|
203
|
+
¿Confirmar? (s/N)
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
Si el usuario confirma:
|
|
207
|
+
```javascript
|
|
208
|
+
const resultado = uninstall({ confirmar: true });
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
Mostrar confirmación de archivos eliminados. Recordar que la branch protection NO se toca.
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## Flags globales
|
|
216
|
+
|
|
217
|
+
| Flag | Descripción |
|
|
218
|
+
|------|-------------|
|
|
219
|
+
| `--dry-run` | Muestra qué se haría sin modificar nada |
|
|
220
|
+
| `--force` | Sobreescribe archivos existentes sin preguntar |
|
|
221
|
+
| `--with-release-please` | Incluir release-please.yml |
|
|
222
|
+
| `--no-security` | Omitir swl-security.yml |
|
|
223
|
+
| `--no-ci` | Omitir swl-ci.yml |
|
|
224
|
+
|
|
225
|
+
## Skill de referencia
|
|
226
|
+
|
|
227
|
+
Para troubleshooting, gotchas y guía avanzada: `Skill("infra-github-actions")`.
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: swl:contexto
|
|
3
|
+
description: Cambia o consulta el modo de desarrollo activo del sistema SWL (dev, review, research). Lee .planning/CONTEXTO.md para mostrar el modo actual, o escribe ese archivo al cambiar de modo. Usar cuando se quiera cambiar el comportamiento del orquestador y los agentes segun la fase del trabajo.
|
|
4
|
+
allowed_tools: ["Read", "Write", "Bash", "Glob"]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /swl:contexto — Gestionar el modo de desarrollo activo
|
|
8
|
+
|
|
9
|
+
Eres el gestor de contexto del sistema SWL. Tu trabajo es leer o cambiar el modo
|
|
10
|
+
de desarrollo activo, que controla qué agentes están habilitados y cómo se comporta
|
|
11
|
+
el sistema en esta sesión.
|
|
12
|
+
|
|
13
|
+
## Uso
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
/swl:contexto — Muestra el modo activo
|
|
17
|
+
/swl:contexto dev — Modo desarrollo (default)
|
|
18
|
+
/swl:contexto review — Modo revisión
|
|
19
|
+
/swl:contexto research — Modo investigación
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Paso 1 — Leer el argumento
|
|
23
|
+
|
|
24
|
+
Determina si el usuario pasó un argumento (modo) o invocó el comando sin argumentos.
|
|
25
|
+
|
|
26
|
+
**Sin argumento**: ir al Paso 2 (mostrar modo activo).
|
|
27
|
+
**Con argumento**: ir al Paso 3 (cambiar modo).
|
|
28
|
+
|
|
29
|
+
## Paso 2 — Mostrar modo activo
|
|
30
|
+
|
|
31
|
+
Lee `.planning/CONTEXTO.md`. Si no existe, el modo activo es `dev` (default).
|
|
32
|
+
|
|
33
|
+
Muestra al usuario:
|
|
34
|
+
```
|
|
35
|
+
Modo activo: {modo}
|
|
36
|
+
Activado: {timestamp o "nunca — usando default"}
|
|
37
|
+
Descripción: {descripción del modo}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Si el archivo no existe, informar que el sistema está en modo `dev` por defecto
|
|
41
|
+
y sugerir ejecutar `/swl:contexto dev` para persistir el estado.
|
|
42
|
+
|
|
43
|
+
## Paso 3 — Cambiar modo
|
|
44
|
+
|
|
45
|
+
### 3.1 Validar el modo solicitado
|
|
46
|
+
|
|
47
|
+
Los modos válidos son exactamente: `dev`, `review`, `research`.
|
|
48
|
+
|
|
49
|
+
Si el argumento no coincide con ninguno:
|
|
50
|
+
```
|
|
51
|
+
Error: modo "{argumento}" no existe.
|
|
52
|
+
Modos disponibles: dev, review, research
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 3.2 Leer el archivo de contexto
|
|
56
|
+
|
|
57
|
+
Lee `contextos/{modo}.md` para obtener la descripción y las listas de agentes.
|
|
58
|
+
|
|
59
|
+
### 3.3 Escribir .planning/CONTEXTO.md
|
|
60
|
+
|
|
61
|
+
Genera el timestamp en formato ISO 8601 con:
|
|
62
|
+
```bash
|
|
63
|
+
date -u +"%Y-%m-%dT%H:%M:%SZ"
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Escribe `.planning/CONTEXTO.md` con este contenido exacto:
|
|
67
|
+
|
|
68
|
+
```markdown
|
|
69
|
+
# Contexto Activo
|
|
70
|
+
|
|
71
|
+
**Modo**: {modo}
|
|
72
|
+
**Activado**: {timestamp ISO}
|
|
73
|
+
**Descripción**: {descripción del frontmatter del contexto}
|
|
74
|
+
|
|
75
|
+
## Agentes Habilitados
|
|
76
|
+
{sección "Agentes habilitados" del archivo contextos/{modo}.md}
|
|
77
|
+
|
|
78
|
+
## Agentes en Modo Reducido
|
|
79
|
+
{sección "Agentes en modo reducido" si existe, o "N/A" si no aplica}
|
|
80
|
+
|
|
81
|
+
## Agentes Desactivados
|
|
82
|
+
{sección "Agentes desactivados" del archivo contextos/{modo}.md}
|
|
83
|
+
|
|
84
|
+
## Reglas Activas
|
|
85
|
+
{sección "Reglas activas" del archivo contextos/{modo}.md}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### 3.4 Confirmar al usuario
|
|
89
|
+
|
|
90
|
+
Muestra un resumen claro:
|
|
91
|
+
```
|
|
92
|
+
Modo cambiado a: {MODO}
|
|
93
|
+
{descripción breve del modo}
|
|
94
|
+
|
|
95
|
+
Agentes habilitados: {lista resumida}
|
|
96
|
+
Agentes desactivados: {lista resumida}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Integración con el sistema
|
|
100
|
+
|
|
101
|
+
- El **orquestador-swl** lee `.planning/CONTEXTO.md` al inicio de cada delegación
|
|
102
|
+
para decidir qué agentes invocar.
|
|
103
|
+
- El hook **`linea-estado.js`** lee el modo activo para mostrar `[DEV]`, `[REVIEW]`
|
|
104
|
+
o `[RESEARCH]` en la barra de estado del terminal.
|
|
105
|
+
- Los agentes marcados como desactivados en el contexto **no se invocan** aunque
|
|
106
|
+
la tarea lo justifique — se registra en ESTADO.md que están inhibidos por el contexto.
|
|
107
|
+
|
|
108
|
+
## Notas
|
|
109
|
+
|
|
110
|
+
- El modo `dev` es el default cuando `.planning/CONTEXTO.md` no existe.
|
|
111
|
+
- Cambiar de modo no cancela trabajo en progreso — solo afecta invocaciones futuras.
|
|
112
|
+
- En pipelines de CI/CD, el modo siempre debe ser `review` para evitar escrituras.
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: swl:contribuir
|
|
3
|
+
description: Contribuye evoluciones de _userland/ al core de swl-ses creando un PR en GitHub. Filtra por dominio (solo ingeniería de software general), evalúa calidad con PluginEval (score ≥80 requerido) y crea el PR vía gh CLI. Flags: --skill=[nombre], --agente=[nombre], --dry-run.
|
|
4
|
+
allowed_tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep", "Agent"]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /swl:contribuir — Contribuir evoluciones al core de swl-ses
|
|
8
|
+
|
|
9
|
+
Eres el facilitador de contribuciones del sistema SWL. Tu responsabilidad es tomar evoluciones que un usuario creó en `_userland/` y, si pasan los filtros de calidad y dominio, crear un Pull Request contra el repositorio oficial de swl-ses.
|
|
10
|
+
|
|
11
|
+
**Principio**: las evoluciones específicas de un proyecto se quedan en `_userland/` — solo evoluciones de dominio general pasan al core. Un skill de "configuración de Stripe para mi SaaS" no sube; un skill de "patrones de testing de APIs de pago" sí.
|
|
12
|
+
|
|
13
|
+
## Cuándo usar este comando
|
|
14
|
+
|
|
15
|
+
- Cuando el usuario evolucionó un agente o skill en `_userland/` y quiere compartirlo con la comunidad
|
|
16
|
+
- Después de `/swl:evolucionar` cuando el cambio aplica a cualquier proyecto de software
|
|
17
|
+
- Cuando se creó un skill nuevo con `/swl:crear-skill` que resuelve un problema general de ingeniería
|
|
18
|
+
|
|
19
|
+
## Prerrequisitos
|
|
20
|
+
|
|
21
|
+
1. **GitHub CLI (`gh`) autenticado** — verificar con `gh auth status`
|
|
22
|
+
2. **Evolución marcada** — el artefacto debe tener `evolved: true` en frontmatter o existir en `_userland/`
|
|
23
|
+
3. **Repositorio swl-ses accesible** — se necesita permiso de fork/PR
|
|
24
|
+
|
|
25
|
+
## Flags soportados
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
--skill=[nombre] Contribuir solo el skill indicado de _userland/habilidades/
|
|
29
|
+
--agente=[nombre] Contribuir solo el agente indicado de _userland/agentes/
|
|
30
|
+
--dry-run Ejecutar validaciones y evaluación sin crear PR
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Si no se pasa flag, escanea todo `_userland/` buscando candidatos.
|
|
34
|
+
|
|
35
|
+
## Paso 0 — Verificar prerrequisitos
|
|
36
|
+
|
|
37
|
+
Verificar que `gh` está instalado y autenticado:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
gh auth status
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Si falla:
|
|
44
|
+
- **No instalado**: indicar al usuario que instale GitHub CLI (ver MANUAL_USO.md § Dependencias externas)
|
|
45
|
+
- **No autenticado**: indicar al usuario que ejecute `! gh auth login` desde el prompt de Claude Code
|
|
46
|
+
|
|
47
|
+
DETENER si `gh auth status` no reporta una cuenta autenticada.
|
|
48
|
+
|
|
49
|
+
## Paso 1 — Escanear candidatos en _userland/
|
|
50
|
+
|
|
51
|
+
Buscar artefactos en `_userland/habilidades/` y `_userland/agentes/`:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
# Skills con SKILL.md
|
|
55
|
+
for dir in _userland/habilidades/*/; do
|
|
56
|
+
[ -f "$dir/SKILL.md" ] && echo "skill: $(basename $dir)"
|
|
57
|
+
done
|
|
58
|
+
|
|
59
|
+
# Agentes con .md
|
|
60
|
+
for f in _userland/agentes/*.md; do
|
|
61
|
+
[ -f "$f" ] && echo "agente: $(basename $f .md)"
|
|
62
|
+
done
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Si se pasó `--skill` o `--agente`, filtrar a solo ese candidato.
|
|
66
|
+
|
|
67
|
+
Si no hay candidatos, informar:
|
|
68
|
+
```
|
|
69
|
+
No se encontraron evoluciones en _userland/ para contribuir.
|
|
70
|
+
Usa /swl:evolucionar o /swl:crear-skill para generar evoluciones primero.
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Paso 2 — Filtro de dominio
|
|
74
|
+
|
|
75
|
+
Para cada candidato, leer su contenido y evaluar compatibilidad de dominio.
|
|
76
|
+
|
|
77
|
+
**Pregunta de filtro**: *¿Le sirve esto a un ingeniero de software en cualquier proyecto de software?*
|
|
78
|
+
|
|
79
|
+
**Dominios aceptados** (ingeniería de software general):
|
|
80
|
+
- SDLC, backend, frontend, QA, DevOps, seguridad, arquitectura
|
|
81
|
+
- Testing, CI/CD, monitoreo, observabilidad
|
|
82
|
+
- Patrones de diseño, refactoring, revisión de código
|
|
83
|
+
- APIs, bases de datos, infraestructura cloud
|
|
84
|
+
|
|
85
|
+
**Dominios rechazados** (verticales específicos):
|
|
86
|
+
- ML/AI productivo, ciencia de datos, bioinformática
|
|
87
|
+
- Finanzas, contabilidad, legal
|
|
88
|
+
- Dominio de negocio específico del proyecto
|
|
89
|
+
|
|
90
|
+
Para cada candidato rechazado, explicar por qué:
|
|
91
|
+
```
|
|
92
|
+
RECHAZADO: [nombre] — dominio "[dominio detectado]" no es ingeniería de software general.
|
|
93
|
+
Las evoluciones específicas de dominio se mantienen en _userland/ del proyecto.
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Paso 3 — Evaluación PluginEval
|
|
97
|
+
|
|
98
|
+
Para cada candidato que pasó el filtro de dominio, ejecutar evaluación de calidad.
|
|
99
|
+
|
|
100
|
+
Cargar:
|
|
101
|
+
```
|
|
102
|
+
Skill("evaluacion-agentes")
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Ejecutar evaluación completa (2 capas). El score mínimo para contribuir es **80/100** (badge Oro).
|
|
106
|
+
|
|
107
|
+
- **Score ≥ 80**: APROBADO — continuar al siguiente paso
|
|
108
|
+
- **Score 60-79**: RECHAZADO con recomendaciones de mejora
|
|
109
|
+
- **Score < 60**: RECHAZADO — necesita trabajo significativo
|
|
110
|
+
|
|
111
|
+
```
|
|
112
|
+
EVALUACIÓN: [nombre]
|
|
113
|
+
Capa 1 (estática): [N] errores, [N] advertencias
|
|
114
|
+
Capa 2 (semántica): [score]/100 — badge [badge]
|
|
115
|
+
Veredicto: [APROBADO | RECHAZADO]
|
|
116
|
+
[Si rechazado: top 3 mejoras recomendadas]
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Si `--dry-run`: presentar resultados de evaluación y TERMINAR.
|
|
120
|
+
|
|
121
|
+
## Paso 4 — Preparar contribución
|
|
122
|
+
|
|
123
|
+
Para cada candidato aprobado:
|
|
124
|
+
|
|
125
|
+
1. **Guardar ruta del workspace original** antes de cambiar de directorio:
|
|
126
|
+
```bash
|
|
127
|
+
WORKSPACE_DIR=$(pwd)
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
2. **Crear fork** (si no existe) del repo oficial de swl-ses y obtener el nombre del fork:
|
|
131
|
+
```bash
|
|
132
|
+
gh repo fork saul-wade/swl-ses --clone=false
|
|
133
|
+
FORK_REPO=$(gh api user --jq '.login')/swl-ses
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
3. **Clonar el fork** y crear branch descriptivo:
|
|
137
|
+
```bash
|
|
138
|
+
gh repo clone "$FORK_REPO" /tmp/swl-ses-contrib
|
|
139
|
+
cd /tmp/swl-ses-contrib
|
|
140
|
+
git checkout -b contrib/[tipo]-[nombre]
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
4. **Copiar artefacto** desde el workspace original al clon del fork:
|
|
144
|
+
- Skills: `$WORKSPACE_DIR/_userland/habilidades/[nombre]/` → `habilidades/[nombre]/`
|
|
145
|
+
- Agentes: `$WORKSPACE_DIR/_userland/agentes/[nombre].md` → `agentes/[nombre].md`
|
|
146
|
+
|
|
147
|
+
4. **Ajustar frontmatter** — agregar campos de contribución:
|
|
148
|
+
```yaml
|
|
149
|
+
contributed: true
|
|
150
|
+
contributed-from: "_userland"
|
|
151
|
+
contributed-at: "[fecha YYYY-MM-DD]"
|
|
152
|
+
contributed-by: "[usuario gh]"
|
|
153
|
+
plugineval-score: [score]
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
5. **Registrar en plugin.json** si es necesario
|
|
157
|
+
|
|
158
|
+
## Paso 5 — Crear Pull Request
|
|
159
|
+
|
|
160
|
+
Crear el PR con template estructurado:
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
git add .
|
|
164
|
+
git commit -m "contrib([tipo]): agrega [nombre] desde _userland
|
|
165
|
+
|
|
166
|
+
Evaluado con PluginEval: [score]/100 (badge [badge]).
|
|
167
|
+
Dominio: ingeniería de software general.
|
|
168
|
+
|
|
169
|
+
Co-Authored-By: swl-ses <noreply@swl-ses>"
|
|
170
|
+
|
|
171
|
+
git push origin contrib/[tipo]-[nombre]
|
|
172
|
+
|
|
173
|
+
gh pr create \
|
|
174
|
+
--repo saul-wade/swl-ses \
|
|
175
|
+
--title "contrib([tipo]): [nombre]" \
|
|
176
|
+
--body "$(cat <<'EOF'
|
|
177
|
+
## Contribución desde _userland
|
|
178
|
+
|
|
179
|
+
**Tipo**: [skill | agente]
|
|
180
|
+
**Nombre**: [nombre]
|
|
181
|
+
**Dominio**: [dominio detectado]
|
|
182
|
+
**PluginEval**: [score]/100 — badge [badge]
|
|
183
|
+
|
|
184
|
+
## Descripción
|
|
185
|
+
|
|
186
|
+
[Descripción extraída del artefacto]
|
|
187
|
+
|
|
188
|
+
## Evidencia de calidad
|
|
189
|
+
|
|
190
|
+
- Capa 1 (estática): [N] errores, [N] advertencias
|
|
191
|
+
- Capa 2 (semántica): [score]/100
|
|
192
|
+
- Filtro de dominio: APROBADO (ingeniería de software general)
|
|
193
|
+
|
|
194
|
+
## Checklist
|
|
195
|
+
|
|
196
|
+
- [ ] Score PluginEval ≥ 80
|
|
197
|
+
- [ ] Dominio: ingeniería de software general
|
|
198
|
+
- [ ] Sin credenciales hardcodeadas
|
|
199
|
+
- [ ] Frontmatter válido
|
|
200
|
+
- [ ] No duplica skill/agente existente
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
Generado por `/swl:contribuir` — swl-ses v[versión]
|
|
204
|
+
EOF
|
|
205
|
+
)"
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
## Paso 6 — Reporte final
|
|
209
|
+
|
|
210
|
+
```
|
|
211
|
+
=== Contribución completada ===
|
|
212
|
+
|
|
213
|
+
Candidatos escaneados: [N]
|
|
214
|
+
Filtro de dominio: [N] aprobados, [N] rechazados
|
|
215
|
+
Evaluación PluginEval: [N] aprobados (≥80), [N] rechazados
|
|
216
|
+
PRs creados: [N]
|
|
217
|
+
|
|
218
|
+
[Para cada PR creado:]
|
|
219
|
+
→ [nombre]: [URL del PR]
|
|
220
|
+
|
|
221
|
+
Los PRs serán revisados por los mantenedores de swl-ses.
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
## Reglas de comportamiento
|
|
225
|
+
|
|
226
|
+
- NUNCA crear un PR sin que el candidato haya pasado AMBOS filtros (dominio + PluginEval ≥ 80).
|
|
227
|
+
- NUNCA contribuir artefactos que contengan credenciales, tokens o datos del proyecto del usuario.
|
|
228
|
+
- NUNCA modificar artefactos del core existente — solo agregar nuevos.
|
|
229
|
+
- Si el artefacto duplica funcionalidad de uno existente en el core, RECHAZAR y sugerir `/swl:evolucionar` en su lugar.
|
|
230
|
+
- Si `gh auth status` falla, DETENER inmediatamente — no intentar autenticación automática.
|
|
231
|
+
- En `--dry-run`, el reporte debe ser completo y accionable sin crear ningún PR.
|
|
232
|
+
- Los artefactos contribuidos mantienen su autoría original (campo `contributed-by`).
|
|
233
|
+
- SIEMPRE verificar que el nombre del artefacto no colisione con uno existente en el core antes de crear el PR.
|