@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,143 @@
|
|
|
1
|
+
# ROADMAP: [Nombre del Proyecto]
|
|
2
|
+
|
|
3
|
+
> Versión: 0.1 | Última actualización: YYYY-MM-DD
|
|
4
|
+
> El roadmap refleja el plan actual. Las fases futuras son estimaciones —
|
|
5
|
+
> se refinan conforme se completan las fases anteriores.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Resumen de fases
|
|
10
|
+
|
|
11
|
+
| Fase | Nombre | Objetivo | Duración estimada | Estado |
|
|
12
|
+
|------|--------|----------|-------------------|--------|
|
|
13
|
+
| 1 | [Nombre] | [Qué se logra al terminar] | [N semanas] | Pendiente |
|
|
14
|
+
| 2 | [Nombre] | [Qué se logra al terminar] | [N semanas] | Pendiente |
|
|
15
|
+
| 3 | [Nombre] | [Qué se logra al terminar] | [N semanas] | Pendiente |
|
|
16
|
+
| 4 | [Nombre] | [Qué se logra al terminar] | [N semanas] | Pendiente |
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Fase 1: [Nombre de la Fase]
|
|
21
|
+
|
|
22
|
+
**Objetivo**: [Descripción clara de qué capacidad nueva tiene el sistema al final de esta fase]
|
|
23
|
+
**Duración estimada**: [N semanas]
|
|
24
|
+
**Estado**: Pendiente | En progreso | Completado
|
|
25
|
+
**Fecha inicio**: YYYY-MM-DD
|
|
26
|
+
**Fecha fin estimada**: YYYY-MM-DD
|
|
27
|
+
**Fecha fin real**: —
|
|
28
|
+
|
|
29
|
+
### Entregables
|
|
30
|
+
|
|
31
|
+
| # | Entregable | Descripción | Requisitos cubiertos | Estado |
|
|
32
|
+
|---|------------|-------------|---------------------|--------|
|
|
33
|
+
| 1.1 | [Nombre técnico del entregable] | [Qué se construye] | REQ-001, REQ-002 | Pendiente |
|
|
34
|
+
| 1.2 | | | | Pendiente |
|
|
35
|
+
| 1.3 | | | | Pendiente |
|
|
36
|
+
| 1.4 | | | | Pendiente |
|
|
37
|
+
|
|
38
|
+
### Criterios de verificación de la fase
|
|
39
|
+
|
|
40
|
+
Al completar la Fase 1, TODOS estos criterios deben ser verdaderos:
|
|
41
|
+
- [ ] [Criterio de funcionalidad verificable]
|
|
42
|
+
- [ ] [Criterio de calidad — tests pasan, cobertura >= 80%]
|
|
43
|
+
- [ ] [Criterio de performance — tiempos de respuesta dentro del objetivo]
|
|
44
|
+
- [ ] [Criterio de documentación — README, ADRs actualizados]
|
|
45
|
+
|
|
46
|
+
### Dependencias y riesgos
|
|
47
|
+
|
|
48
|
+
- **Dependencia**: [Qué debe estar listo antes de empezar esta fase]
|
|
49
|
+
- **Riesgo**: [Qué puede retrasarla] — Mitigación: [cómo se mitiga]
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Fase 2: [Nombre de la Fase]
|
|
54
|
+
|
|
55
|
+
**Objetivo**:
|
|
56
|
+
**Duración estimada**:
|
|
57
|
+
**Estado**: Pendiente
|
|
58
|
+
**Fecha inicio**: YYYY-MM-DD
|
|
59
|
+
**Fecha fin estimada**: YYYY-MM-DD
|
|
60
|
+
**Fecha fin real**: —
|
|
61
|
+
|
|
62
|
+
### Entregables
|
|
63
|
+
|
|
64
|
+
| # | Entregable | Descripción | Requisitos cubiertos | Estado |
|
|
65
|
+
|---|------------|-------------|---------------------|--------|
|
|
66
|
+
| 2.1 | | | | Pendiente |
|
|
67
|
+
| 2.2 | | | | Pendiente |
|
|
68
|
+
| 2.3 | | | | Pendiente |
|
|
69
|
+
|
|
70
|
+
### Criterios de verificación de la fase
|
|
71
|
+
|
|
72
|
+
- [ ]
|
|
73
|
+
- [ ]
|
|
74
|
+
- [ ]
|
|
75
|
+
|
|
76
|
+
### Dependencias y riesgos
|
|
77
|
+
|
|
78
|
+
- **Dependencia**:
|
|
79
|
+
- **Riesgo**: — Mitigación:
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Fase 3: [Nombre de la Fase]
|
|
84
|
+
|
|
85
|
+
**Objetivo**:
|
|
86
|
+
**Duración estimada**:
|
|
87
|
+
**Estado**: Pendiente
|
|
88
|
+
**Fecha inicio**: YYYY-MM-DD (estimada)
|
|
89
|
+
**Fecha fin estimada**: YYYY-MM-DD
|
|
90
|
+
|
|
91
|
+
### Entregables
|
|
92
|
+
|
|
93
|
+
| # | Entregable | Descripción | Requisitos cubiertos | Estado |
|
|
94
|
+
|---|------------|-------------|---------------------|--------|
|
|
95
|
+
| 3.1 | | | | Pendiente |
|
|
96
|
+
| 3.2 | | | | Pendiente |
|
|
97
|
+
| 3.3 | | | | Pendiente |
|
|
98
|
+
|
|
99
|
+
### Criterios de verificación de la fase
|
|
100
|
+
|
|
101
|
+
- [ ]
|
|
102
|
+
- [ ]
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Fase 4: [Nombre de la Fase — ej. Go-live y estabilización]
|
|
107
|
+
|
|
108
|
+
**Objetivo**:
|
|
109
|
+
**Duración estimada**:
|
|
110
|
+
**Estado**: Pendiente
|
|
111
|
+
|
|
112
|
+
### Entregables
|
|
113
|
+
|
|
114
|
+
| # | Entregable | Descripción | Estado |
|
|
115
|
+
|---|------------|-------------|--------|
|
|
116
|
+
| 4.1 | | | Pendiente |
|
|
117
|
+
| 4.2 | | | Pendiente |
|
|
118
|
+
|
|
119
|
+
### Criterios de verificación de la fase
|
|
120
|
+
|
|
121
|
+
- [ ]
|
|
122
|
+
- [ ]
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Leyenda de estados
|
|
127
|
+
|
|
128
|
+
| Estado | Significado |
|
|
129
|
+
|--------|-------------|
|
|
130
|
+
| Pendiente | No iniciado |
|
|
131
|
+
| En progreso | Trabajo activo |
|
|
132
|
+
| Bloqueado | Esperando dependencia externa |
|
|
133
|
+
| En revisión | Implementado, pendiente de verificación |
|
|
134
|
+
| Completado | Verificado y aceptado |
|
|
135
|
+
| Cancelado | Descartado (documentar razón) |
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Historial de cambios al roadmap
|
|
140
|
+
|
|
141
|
+
| Fecha | Cambio | Motivo | Impacto |
|
|
142
|
+
|-------|--------|--------|---------|
|
|
143
|
+
| YYYY-MM-DD | [descripción del cambio al plan] | [por qué cambió] | [qué fases se afectan] |
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# PROJECT: [Nombre del Proyecto]
|
|
2
|
+
|
|
3
|
+
> Documento vivo. Actualizar cuando cambie el alcance, el equipo o las restricciones.
|
|
4
|
+
> Versión: 0.1 | Última actualización: YYYY-MM-DD | Autor: [nombre]
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Visión
|
|
9
|
+
|
|
10
|
+
[Una sola frase que describe el producto terminado y el valor que entrega.
|
|
11
|
+
Debe ser comprensible para alguien externo al proyecto.]
|
|
12
|
+
|
|
13
|
+
Ejemplo: "Sistema web que permite a las PyMEs emitir facturas electrónicas CFDI 4.0
|
|
14
|
+
de forma autónoma, sin depender de un contador externo para el proceso cotidiano."
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Contexto y motivación
|
|
19
|
+
|
|
20
|
+
[2-4 párrafos describiendo el problema actual. Por qué existe este proyecto.
|
|
21
|
+
Qué está roto, es ineficiente o falta en el estado actual. Quién sufre el problema
|
|
22
|
+
y cómo lo sufre hoy. Datos cuantitativos si están disponibles.]
|
|
23
|
+
|
|
24
|
+
**Problema actual:**
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
**Impacto del problema:**
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
**Por qué ahora:**
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Objetivos
|
|
36
|
+
|
|
37
|
+
Resultados medibles que este proyecto debe alcanzar. Cada objetivo tiene un
|
|
38
|
+
criterio de éxito verificable.
|
|
39
|
+
|
|
40
|
+
| # | Objetivo | Criterio de éxito | Prioridad |
|
|
41
|
+
|---|----------|-------------------|-----------|
|
|
42
|
+
| O1 | [Qué se quiere lograr] | [Cómo saber que se logró] | Alta |
|
|
43
|
+
| O2 | | | Alta |
|
|
44
|
+
| O3 | | | Media |
|
|
45
|
+
| O4 | | | Baja |
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## No-objetivos (fuera del alcance)
|
|
50
|
+
|
|
51
|
+
Explicitar lo que este proyecto NO hace evita scope creep y alinea expectativas.
|
|
52
|
+
|
|
53
|
+
- **No:** [Funcionalidad que parece relacionada pero está fuera del alcance]
|
|
54
|
+
*Razón: [por qué está fuera]*
|
|
55
|
+
- **No:** [Integración o caso de uso que se excluye explícitamente]
|
|
56
|
+
*Razón: [dependencia futura, proyecto separado, etc.]*
|
|
57
|
+
- **No:** [Tipo de usuario o mercado que no se atiende en esta fase]
|
|
58
|
+
*Razón: [foco, recursos, etc.]*
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Restricciones
|
|
63
|
+
|
|
64
|
+
Límites no negociables que la solución debe respetar.
|
|
65
|
+
|
|
66
|
+
### Técnicas
|
|
67
|
+
- [Restricción de plataforma, lenguaje o framework mandatorio]
|
|
68
|
+
- [Restricción de integración con sistema existente]
|
|
69
|
+
- [Restricción de performance o disponibilidad]
|
|
70
|
+
|
|
71
|
+
### De negocio
|
|
72
|
+
- [Restricción regulatoria o de compliance]
|
|
73
|
+
- [Restricción de tiempo — fecha de entrega fija]
|
|
74
|
+
- [Restricción de presupuesto o recursos]
|
|
75
|
+
|
|
76
|
+
### Asunciones
|
|
77
|
+
[Lo que se asume como verdadero para que el proyecto tenga sentido.
|
|
78
|
+
Si alguna asunción resulta falsa, el proyecto requiere revisión.]
|
|
79
|
+
- Se asume que [condición del contexto].
|
|
80
|
+
- Se asume que [comportamiento del usuario].
|
|
81
|
+
- Se asume que [disponibilidad de recurso externo].
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Stack tecnológico
|
|
86
|
+
|
|
87
|
+
| Capa | Tecnología | Versión | Justificación |
|
|
88
|
+
|------|-----------|---------|---------------|
|
|
89
|
+
| Backend | [ej. FastAPI] | [ej. 0.111] | [por qué] |
|
|
90
|
+
| ORM / BD | [ej. SQLAlchemy + PostgreSQL] | [versión] | [por qué] |
|
|
91
|
+
| Frontend | [ej. Angular] | [versión] | [por qué] |
|
|
92
|
+
| Auth | [ej. JWT + OAuth2] | — | [por qué] |
|
|
93
|
+
| Infraestructura | [ej. Docker + Kubernetes] | — | [por qué] |
|
|
94
|
+
| CI/CD | [ej. GitHub Actions] | — | [por qué] |
|
|
95
|
+
| Observabilidad | [ej. Sentry + Grafana] | — | [por qué] |
|
|
96
|
+
|
|
97
|
+
Ver investigación detallada en: `research/STACK.md`
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Equipo
|
|
102
|
+
|
|
103
|
+
| Rol | Nombre | Responsabilidad |
|
|
104
|
+
|-----|--------|-----------------|
|
|
105
|
+
| Tech Lead | [nombre] | Decisiones arquitecturales, reviews |
|
|
106
|
+
| Backend Dev | [nombre] | API, base de datos, lógica de negocio |
|
|
107
|
+
| Frontend Dev | [nombre] | UI, componentes, integración de API |
|
|
108
|
+
| QA | [nombre] | Tests de aceptación, regresión |
|
|
109
|
+
| Product Owner | [nombre] | Priorización, criterios de aceptación |
|
|
110
|
+
| Stakeholder | [nombre/área] | Aprobación final, presupuesto |
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## Links y recursos
|
|
115
|
+
|
|
116
|
+
- Repositorio: [URL]
|
|
117
|
+
- Tablero de tareas: [URL]
|
|
118
|
+
- Entorno de staging: [URL]
|
|
119
|
+
- Documentación API: [URL]
|
|
120
|
+
- Canal de comunicación: [Slack/Teams channel]
|
|
121
|
+
- ADRs: `docs/adr/`
|
|
122
|
+
- Investigación técnica: `research/`
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
# REQUIREMENTS: [Nombre del Proyecto]
|
|
2
|
+
|
|
3
|
+
> Versión: 0.1 | Última actualización: YYYY-MM-DD
|
|
4
|
+
> Los requisitos con estado "Aprobado" están congelados para la fase actual.
|
|
5
|
+
> Cambios a requisitos aprobados requieren aprobación del Product Owner.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Guía de prioridades
|
|
10
|
+
|
|
11
|
+
| Nivel | Significado |
|
|
12
|
+
|-------|-------------|
|
|
13
|
+
| P0 | Crítico — sin esto el sistema no funciona. Bloqueante para el lanzamiento. |
|
|
14
|
+
| P1 | Alta — funcionalidad core esperada por el usuario. MVP incompleto sin esto. |
|
|
15
|
+
| P2 | Media — mejora significativa. Puede lanzarse sin esto pero debe estar pronto. |
|
|
16
|
+
| P3 | Baja — nice-to-have. Entra si hay tiempo disponible en la fase. |
|
|
17
|
+
|
|
18
|
+
## Guía de estados
|
|
19
|
+
|
|
20
|
+
| Estado | Significado |
|
|
21
|
+
|--------|-------------|
|
|
22
|
+
| Borrador | En discusión, puede cambiar |
|
|
23
|
+
| Aprobado | Congelado para esta fase, listo para implementar |
|
|
24
|
+
| En desarrollo | Siendo implementado actualmente |
|
|
25
|
+
| Completado | Implementado y verificado |
|
|
26
|
+
| Pospuesto | Movido a fase futura |
|
|
27
|
+
| Cancelado | Descartado con justificación documentada |
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Requisitos Funcionales
|
|
32
|
+
|
|
33
|
+
### Módulo: [Nombre del módulo — ej. Autenticación]
|
|
34
|
+
|
|
35
|
+
| ID | Prioridad | Descripción | Criterios de aceptación | Estado |
|
|
36
|
+
|----|-----------|-------------|------------------------|--------|
|
|
37
|
+
| REQ-001 | P0 | [Descripción concisa de qué debe hacer el sistema] | - [Criterio 1 verificable] / - [Criterio 2 verificable] | Borrador |
|
|
38
|
+
| REQ-002 | P0 | | | Borrador |
|
|
39
|
+
| REQ-003 | P1 | | | Borrador |
|
|
40
|
+
|
|
41
|
+
### Módulo: [Nombre del segundo módulo — ej. Gestión de Facturas]
|
|
42
|
+
|
|
43
|
+
| ID | Prioridad | Descripción | Criterios de aceptación | Estado |
|
|
44
|
+
|----|-----------|-------------|------------------------|--------|
|
|
45
|
+
| REQ-010 | P0 | | | Borrador |
|
|
46
|
+
| REQ-011 | P1 | | | Borrador |
|
|
47
|
+
| REQ-012 | P1 | | | Borrador |
|
|
48
|
+
| REQ-013 | P2 | | | Borrador |
|
|
49
|
+
|
|
50
|
+
### Módulo: [Nombre del tercer módulo]
|
|
51
|
+
|
|
52
|
+
| ID | Prioridad | Descripción | Criterios de aceptación | Estado |
|
|
53
|
+
|----|-----------|-------------|------------------------|--------|
|
|
54
|
+
| REQ-020 | P1 | | | Borrador |
|
|
55
|
+
| REQ-021 | P2 | | | Borrador |
|
|
56
|
+
| REQ-022 | P3 | | | Borrador |
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Requisitos No Funcionales
|
|
61
|
+
|
|
62
|
+
| ID | Categoría | Descripción | Métrica | Estado |
|
|
63
|
+
|----|-----------|-------------|---------|--------|
|
|
64
|
+
| RNF-001 | Performance | El sistema responde en menos de [N]ms para el P95 | P95 < [N]ms bajo [X] usuarios concurrentes | Borrador |
|
|
65
|
+
| RNF-002 | Disponibilidad | Uptime mínimo en producción | >= 99.5% mensual | Borrador |
|
|
66
|
+
| RNF-003 | Seguridad | Datos en tránsito cifrados | TLS 1.2+ en todos los endpoints | Borrador |
|
|
67
|
+
| RNF-004 | Seguridad | Autenticación obligatoria en toda operación de escritura | 100% endpoints POST/PUT/DELETE con auth | Borrador |
|
|
68
|
+
| RNF-005 | Escalabilidad | El sistema soporta [N] usuarios concurrentes | Sin degradación hasta [N] usuarios | Borrador |
|
|
69
|
+
| RNF-006 | Mantenibilidad | Cobertura de tests | >= 80% en módulos de lógica de negocio | Borrador |
|
|
70
|
+
| RNF-007 | Accesibilidad | Interfaz web accesible | WCAG 2.1 nivel AA | Borrador |
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Restricciones de implementación
|
|
75
|
+
|
|
76
|
+
| ID | Descripción | Impacto |
|
|
77
|
+
|----|-------------|---------|
|
|
78
|
+
| RES-001 | [Restricción técnica mandatoria — ej. debe integrarse con SAP existente] | [Cómo afecta el diseño] |
|
|
79
|
+
| RES-002 | [Restricción regulatoria — ej. datos deben residir en México] | [Cómo afecta la infraestructura] |
|
|
80
|
+
| RES-003 | [Restricción de tiempo — ej. lanzamiento fijado para fecha X] | [Qué se prioriza] |
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Casos de uso principales (flujos happy path)
|
|
85
|
+
|
|
86
|
+
### [CU-001] [Nombre del caso de uso]
|
|
87
|
+
|
|
88
|
+
**Actor**: [Tipo de usuario]
|
|
89
|
+
**Precondición**: [Estado del sistema antes de empezar]
|
|
90
|
+
|
|
91
|
+
1. El usuario [acción 1]
|
|
92
|
+
2. El sistema [respuesta 1]
|
|
93
|
+
3. El usuario [acción 2]
|
|
94
|
+
4. El sistema [respuesta 2]
|
|
95
|
+
5. [...]
|
|
96
|
+
|
|
97
|
+
**Postcondición**: [Estado del sistema al finalizar]
|
|
98
|
+
**Flujos alternativos**:
|
|
99
|
+
- Si [condición]: [qué pasa]
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
### [CU-002] [Nombre del caso de uso]
|
|
104
|
+
|
|
105
|
+
**Actor**:
|
|
106
|
+
**Precondición**:
|
|
107
|
+
|
|
108
|
+
1.
|
|
109
|
+
2.
|
|
110
|
+
3.
|
|
111
|
+
|
|
112
|
+
**Postcondición**:
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## Preguntas abiertas
|
|
117
|
+
|
|
118
|
+
Decisiones de requisitos que aún no están resueltas. Cada una bloquea
|
|
119
|
+
uno o más requisitos hasta que se responda.
|
|
120
|
+
|
|
121
|
+
| # | Pregunta | Quién decide | Fecha límite | Estado |
|
|
122
|
+
|---|----------|-------------|--------------|--------|
|
|
123
|
+
| Q1 | [Pregunta específica sobre el comportamiento esperado] | [Nombre/Rol] | YYYY-MM-DD | Abierta |
|
|
124
|
+
| Q2 | | | | Abierta |
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## Historial de cambios a requisitos
|
|
129
|
+
|
|
130
|
+
| Fecha | ID Req | Cambio | Motivo | Aprobado por |
|
|
131
|
+
|-------|--------|--------|--------|-------------|
|
|
132
|
+
| YYYY-MM-DD | REQ-NNN | [descripción del cambio] | [por qué] | [nombre] |
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# Plantilla: Auditor con Veto Items + Cap Enforcement
|
|
2
|
+
|
|
3
|
+
Plantilla reusable para revisores SWL que aplican el patrón "veto items + cap
|
|
4
|
+
enforcement". Ver `reglas/gobernanza.md` sección "Veto items y cap enforcement".
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Cuándo usar esta plantilla
|
|
9
|
+
|
|
10
|
+
Cuando crees o actualices un revisor (`revisor-*-swl.md`) que:
|
|
11
|
+
|
|
12
|
+
- Audita cumplimiento de reglas globales del sistema (`reglas/*.md`).
|
|
13
|
+
- Necesita comunicar al lector cuáles violaciones son **no negociables**.
|
|
14
|
+
- Debe evitar que un score promedio "redondeado" oculte un problema crítico.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Estructura a copiar (insertar antes de "Formato de reporte obligatorio")
|
|
19
|
+
|
|
20
|
+
```markdown
|
|
21
|
+
## Veto items — cap enforcement a [LÍMITE]
|
|
22
|
+
|
|
23
|
+
Ciertos hallazgos son **no negociables**. Si encuentras CUALQUIERA de los
|
|
24
|
+
siguientes, el `score` del reporte queda **CAP a [LÍMITE] como máximo absoluto**,
|
|
25
|
+
independientemente de qué tan limpio esté el resto del código. Patrón adaptado
|
|
26
|
+
del modelo de auditor con veto items (ver `reglas/gobernanza.md`).
|
|
27
|
+
|
|
28
|
+
**Lista de veto items**:
|
|
29
|
+
|
|
30
|
+
1. **[Nombre del veto]**: [descripción específica + regla que viola].
|
|
31
|
+
2. ...
|
|
32
|
+
N. ...
|
|
33
|
+
|
|
34
|
+
**Reglas del cap**:
|
|
35
|
+
|
|
36
|
+
- Encontrar 1 veto item → `score ≤ [LÍMITE]`. Veredicto automático:
|
|
37
|
+
`RECHAZADO` o `APROBADO CON CORRECCIONES` (nunca `APROBADO` limpio).
|
|
38
|
+
- Encontrar 2+ veto items → `score ≤ [LÍMITE_ESTRICTO]`. Bloqueo absoluto.
|
|
39
|
+
- El veto NO se puede negociar bajando severidad.
|
|
40
|
+
- El cap se levanta SOLO cuando se demuestra remediación (commit + test) y el
|
|
41
|
+
revisor re-ejecuta la auditoría.
|
|
42
|
+
|
|
43
|
+
Reportar al inicio del reporte con bloque dedicado:
|
|
44
|
+
|
|
45
|
+
\`\`\`
|
|
46
|
+
### VETO ITEMS DETECTADOS
|
|
47
|
+
- [VI-1] <descripción>: \`archivo:linea\` — <evidencia>
|
|
48
|
+
- [VI-N] <descripción>: \`archivo:linea\` — <evidencia>
|
|
49
|
+
→ score CAP a [VALOR] ([N] veto items). Veredicto: [VEREDICTO].
|
|
50
|
+
\`\`\`
|
|
51
|
+
|
|
52
|
+
Si no se detecta ninguno: \`### VETO ITEMS DETECTADOS\n- Ninguno\`.
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Reglas para definir veto items
|
|
58
|
+
|
|
59
|
+
Antes de declarar un veto item, verifica:
|
|
60
|
+
|
|
61
|
+
1. **¿Existe una regla global que lo respalde?** Si no, no es veto. Crear o
|
|
62
|
+
actualizar la regla primero (`reglas/<dominio>.md`).
|
|
63
|
+
2. **¿Es objetivamente detectable?** Un veto debe ser binario (presente o
|
|
64
|
+
ausente). Criterios subjetivos como "código feo" no califican.
|
|
65
|
+
3. **¿Su presencia justifica bloquear el merge?** Si el equipo puede aprobar
|
|
66
|
+
el código sin corregirlo, no es veto — es hallazgo regular.
|
|
67
|
+
4. **¿Es proporcional al dominio del revisor?** Un revisor de seguridad no
|
|
68
|
+
declara vetos de estilo. Cada revisor solo veta lo de su dominio.
|
|
69
|
+
5. **¿Está la lista cerrada?** Una lista de 50 veto items es señal de mala
|
|
70
|
+
curación. Lo razonable: 8-15 items por revisor.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Escalas recomendadas
|
|
75
|
+
|
|
76
|
+
| Tipo de reporte | Cap con 1 veto | Cap con 2+ vetos |
|
|
77
|
+
|-----------------|---------------|-----------------|
|
|
78
|
+
| Score 0-100 (CVSSv3-like) | 60/100 | 30/100 |
|
|
79
|
+
| Score 0-10 promedio por dimensión | 6.0/10 | 3.0/10 |
|
|
80
|
+
| Score 0-1 (probabilístico) | 0.6 | 0.3 |
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Ejemplos en agentes existentes
|
|
85
|
+
|
|
86
|
+
- `agentes/revisor-seguridad-swl.md` — 10 veto items de OWASP Top 10 + secrets + CVEs
|
|
87
|
+
- `agentes/revisor-codigo-swl.md` — 10 veto items mapeando a `reglas/estilo-codigo.md`
|
|
88
|
+
y `reglas/arquitectura.md`
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Cómo el ejecutor responde a un cap
|
|
93
|
+
|
|
94
|
+
Si recibes un reporte con veto items detectados:
|
|
95
|
+
|
|
96
|
+
1. **NO negocies la severidad**. El cap está justificado por regla global.
|
|
97
|
+
2. **Aplica las correcciones específicas** que el revisor indica con
|
|
98
|
+
archivo:línea.
|
|
99
|
+
3. **Agrega un test que pruebe la corrección** (regression test). Sin test,
|
|
100
|
+
el veto puede regresar.
|
|
101
|
+
4. **Solicita re-revisión** al mismo revisor. Si el veto desapareció, el cap
|
|
102
|
+
se levanta y el score se recalcula sin penalización.
|
|
103
|
+
5. **Si NO puedes corregir** (limitación externa, blocker técnico): documenta
|
|
104
|
+
en `.planning/AUDITORIA.md` y escala al humano. NUNCA marques el trabajo
|
|
105
|
+
como completado con vetos abiertos.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Plantillas de GitHub Actions — swl-ses
|
|
2
|
+
|
|
3
|
+
Tres workflows listos para copiar a `.github/workflows/` de cualquier proyecto.
|
|
4
|
+
|
|
5
|
+
## Cómo instalar
|
|
6
|
+
|
|
7
|
+
La forma recomendada es via el comando interactivo:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
/swl:configurar-ci init
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
O manualmente: copiar los archivos de esta carpeta a `.github/workflows/` de tu proyecto.
|
|
14
|
+
|
|
15
|
+
## Workflows disponibles
|
|
16
|
+
|
|
17
|
+
### `swl-security.yml` — Revisión de seguridad con Claude
|
|
18
|
+
|
|
19
|
+
Corre en cada PR a `main`. Analiza el diff con `anthropics/claude-code-security-review`
|
|
20
|
+
y comenta hallazgos directamente en el PR.
|
|
21
|
+
|
|
22
|
+
**Requiere**: secret `CLAUDE_API_KEY` en GitHub Settings → Secrets and variables → Actions.
|
|
23
|
+
|
|
24
|
+
### `swl-ci.yml` — CI estándar
|
|
25
|
+
|
|
26
|
+
Corre en push y PRs a `main`. Detecta Node.js automáticamente. Incluye secciones
|
|
27
|
+
comentadas para Python, Rust y Go — activar las que correspondan al proyecto.
|
|
28
|
+
|
|
29
|
+
- Matrix Node 22 + 24
|
|
30
|
+
- `npm ci` → lint → type-check (si hay tsconfig.json) → tests
|
|
31
|
+
- `concurrency: cancel-in-progress: true`
|
|
32
|
+
|
|
33
|
+
**No requiere** secrets adicionales.
|
|
34
|
+
|
|
35
|
+
### `release-please.yml` — Releases automáticos
|
|
36
|
+
|
|
37
|
+
Tras merge a `main`, crea un Release PR con el bump de versión y CHANGELOG
|
|
38
|
+
generados desde conventional commits. Al mergear el Release PR, crea el tag
|
|
39
|
+
y el GitHub Release.
|
|
40
|
+
|
|
41
|
+
**No requiere** secrets adicionales (usa `GITHUB_TOKEN`). Requiere conventional commits.
|
|
42
|
+
|
|
43
|
+
Ver `docs/RELEASE-PLEASE-MIGRATION.md` para comparativa con el flujo manual actual.
|
|
44
|
+
|
|
45
|
+
## Skill de referencia
|
|
46
|
+
|
|
47
|
+
Para guía completa de setup, troubleshooting y gotchas: `Skill("infra-github-actions")`.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
name: release-please
|
|
2
|
+
|
|
3
|
+
# Plantilla distribuida por swl-ses.
|
|
4
|
+
# Copiar este archivo a .github/workflows/ de tu proyecto.
|
|
5
|
+
# Para setup automatizado: /swl:configurar-ci --with-release-please
|
|
6
|
+
#
|
|
7
|
+
# Release Please automatiza:
|
|
8
|
+
# - Crea un "Release PR" con el bump de versión y CHANGELOG generado
|
|
9
|
+
# automáticamente al detectar commits convencionales en main.
|
|
10
|
+
# - Al mergear el Release PR, crea el tag git y el GitHub Release.
|
|
11
|
+
#
|
|
12
|
+
# Requiere conventional commits (feat:, fix:, chore(release):, etc.)
|
|
13
|
+
# No requiere secrets adicionales — usa el GITHUB_TOKEN automático.
|
|
14
|
+
#
|
|
15
|
+
# Referencia oficial: https://github.com/googleapis/release-please-action
|
|
16
|
+
# Versión en uso: v4
|
|
17
|
+
|
|
18
|
+
on:
|
|
19
|
+
push:
|
|
20
|
+
branches:
|
|
21
|
+
- main
|
|
22
|
+
|
|
23
|
+
# release-please necesita escribir en el repo y abrir PRs.
|
|
24
|
+
permissions:
|
|
25
|
+
contents: write
|
|
26
|
+
pull-requests: write
|
|
27
|
+
|
|
28
|
+
name: release-please
|
|
29
|
+
|
|
30
|
+
jobs:
|
|
31
|
+
release-please:
|
|
32
|
+
runs-on: ubuntu-latest
|
|
33
|
+
steps:
|
|
34
|
+
- uses: googleapis/release-please-action@v4
|
|
35
|
+
with:
|
|
36
|
+
# GITHUB_TOKEN es suficiente en la mayoría de repos.
|
|
37
|
+
# Si el repo es de organización y las Actions no tienen permiso
|
|
38
|
+
# de crear PRs, crear un PAT y usar secrets.MY_RELEASE_TOKEN.
|
|
39
|
+
token: ${{ secrets.GITHUB_TOKEN }}
|
|
40
|
+
# Estrategia de release. Opciones comunes:
|
|
41
|
+
# "node" — para proyectos Node.js con package.json
|
|
42
|
+
# "python" — para pyproject.toml / setup.cfg
|
|
43
|
+
# "simple" — para cualquier stack (actualiza VERSION file)
|
|
44
|
+
release-type: node
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
# Plantilla distribuida por swl-ses.
|
|
4
|
+
# Copiar este archivo a .github/workflows/ de tu proyecto.
|
|
5
|
+
# Para setup automatizado: /swl:configurar-ci init
|
|
6
|
+
#
|
|
7
|
+
# Este workflow corre en push y PRs a main.
|
|
8
|
+
# Detecta automáticamente Node.js; los stacks adicionales están comentados.
|
|
9
|
+
# Activar las secciones que correspondan a tu proyecto.
|
|
10
|
+
#
|
|
11
|
+
# Para extender con Python, Rust o Go: descomentar las secciones al final
|
|
12
|
+
# y combinar con el job principal o crear jobs separados según convenga.
|
|
13
|
+
|
|
14
|
+
on:
|
|
15
|
+
push:
|
|
16
|
+
branches: [main]
|
|
17
|
+
pull_request:
|
|
18
|
+
branches: [main]
|
|
19
|
+
|
|
20
|
+
# Cancela runs anteriores del mismo PR para evitar deploys simultáneos.
|
|
21
|
+
concurrency:
|
|
22
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
23
|
+
cancel-in-progress: true
|
|
24
|
+
|
|
25
|
+
jobs:
|
|
26
|
+
test:
|
|
27
|
+
runs-on: ubuntu-latest
|
|
28
|
+
strategy:
|
|
29
|
+
fail-fast: false
|
|
30
|
+
matrix:
|
|
31
|
+
# Node 22 (LTS) + Node 24 (current). Ajustar si el proyecto requiere
|
|
32
|
+
# solo una versión.
|
|
33
|
+
node-version: [22, 24]
|
|
34
|
+
|
|
35
|
+
steps:
|
|
36
|
+
- uses: actions/checkout@v5
|
|
37
|
+
|
|
38
|
+
- name: Configurar Node.js ${{ matrix.node-version }}
|
|
39
|
+
uses: actions/setup-node@v5
|
|
40
|
+
with:
|
|
41
|
+
node-version: ${{ matrix.node-version }}
|
|
42
|
+
cache: npm
|
|
43
|
+
|
|
44
|
+
# ── Node.js / JavaScript / TypeScript ────────────────────────────────
|
|
45
|
+
|
|
46
|
+
- name: Instalar dependencias
|
|
47
|
+
if: hashFiles('package.json') != ''
|
|
48
|
+
run: npm ci
|
|
49
|
+
|
|
50
|
+
- name: Lint
|
|
51
|
+
if: hashFiles('package.json') != ''
|
|
52
|
+
# Ajustar el script según cómo esté configurado en package.json.
|
|
53
|
+
# Alternativas comunes: "lint", "lint:check", "eslint"
|
|
54
|
+
run: npm run lint --if-present
|
|
55
|
+
|
|
56
|
+
- name: Verificar tipos (TypeScript)
|
|
57
|
+
if: hashFiles('tsconfig.json') != ''
|
|
58
|
+
run: npx tsc --noEmit
|
|
59
|
+
|
|
60
|
+
- name: Ejecutar tests
|
|
61
|
+
if: hashFiles('package.json') != ''
|
|
62
|
+
run: npm test
|
|
63
|
+
|
|
64
|
+
# ── Python ────────────────────────────────────────────────────────────
|
|
65
|
+
# Descomentar si el proyecto tiene código Python.
|
|
66
|
+
#
|
|
67
|
+
# - name: Configurar Python
|
|
68
|
+
# if: hashFiles('pyproject.toml', 'setup.py', 'requirements.txt') != ''
|
|
69
|
+
# uses: actions/setup-python@v5
|
|
70
|
+
# with:
|
|
71
|
+
# python-version: "3.11"
|
|
72
|
+
# cache: pip
|
|
73
|
+
#
|
|
74
|
+
# - name: Instalar dependencias Python
|
|
75
|
+
# if: hashFiles('pyproject.toml') != ''
|
|
76
|
+
# run: pip install -e ".[dev]"
|
|
77
|
+
#
|
|
78
|
+
# - name: Lint Python (ruff)
|
|
79
|
+
# run: ruff check .
|
|
80
|
+
#
|
|
81
|
+
# - name: Tests Python
|
|
82
|
+
# run: pytest --cov-fail-under=80
|
|
83
|
+
|
|
84
|
+
# ── Rust ─────────────────────────────────────────────────────────────
|
|
85
|
+
# Descomentar si el proyecto tiene código Rust.
|
|
86
|
+
#
|
|
87
|
+
# - name: Configurar Rust
|
|
88
|
+
# if: hashFiles('Cargo.toml') != ''
|
|
89
|
+
# uses: dtolnay/rust-toolchain@stable
|
|
90
|
+
#
|
|
91
|
+
# - name: Lint Rust (clippy)
|
|
92
|
+
# run: cargo clippy -- -D warnings
|
|
93
|
+
#
|
|
94
|
+
# - name: Tests Rust
|
|
95
|
+
# run: cargo test
|
|
96
|
+
|
|
97
|
+
# ── Go ───────────────────────────────────────────────────────────────
|
|
98
|
+
# Descomentar si el proyecto tiene código Go.
|
|
99
|
+
#
|
|
100
|
+
# - name: Configurar Go
|
|
101
|
+
# if: hashFiles('go.mod') != ''
|
|
102
|
+
# uses: actions/setup-go@v5
|
|
103
|
+
# with:
|
|
104
|
+
# go-version: stable
|
|
105
|
+
#
|
|
106
|
+
# - name: Tests Go
|
|
107
|
+
# run: go test ./...
|