@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,229 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: generacion-mermaid
|
|
3
|
+
description: >
|
|
4
|
+
Generación automática de diagramas Mermaid desde planes de ejecución, workflows
|
|
5
|
+
y estructuras de agentes. Convierte planes textuales en diagramas flowchart,
|
|
6
|
+
sequence y state. Cargar cuando se necesite documentación visual de un plan,
|
|
7
|
+
workflow o flujo de agentes en /swl:planear-fase, /swl:ejecutar-fase o docs.
|
|
8
|
+
version: "1.0.0"
|
|
9
|
+
herramientasPermitidas: [Read, Grep]
|
|
10
|
+
user-invocable: false
|
|
11
|
+
evolvable: true # default para skill estandar
|
|
12
|
+
exclusiones:
|
|
13
|
+
- "No cargar para diagramas de arquitectura de sistemas con componentes visuales enriquecidos (cajas con colores, leyendas, fondos oscuros) — para diagramas de arquitectura visual cargar `diagrama-arquitectura`."
|
|
14
|
+
- "No cargar para diagramas de entidad-relación de base de datos — para ER cargar `dbml-experto` (DBML) o usar la sintaxis `erDiagram` de Mermaid directamente si el alcance es simple."
|
|
15
|
+
- "No cargar para diagramas de arquitectura C4 en formato as-code versionable — para C4 cargar `likec4-experto`."
|
|
16
|
+
- "No cargar para wireframes o mockups de interfaz de usuario — para UI prototyping cargar `wireframes-flujos`."
|
|
17
|
+
---
|
|
18
|
+
# Generación de Diagramas Mermaid
|
|
19
|
+
|
|
20
|
+
Convierte planes de ejecución, workflows y flujos de agentes en diagramas Mermaid
|
|
21
|
+
renderizables en Markdown. Basado en patrones de CC Workflow Studio.
|
|
22
|
+
|
|
23
|
+
## Cuándo NO cargar
|
|
24
|
+
|
|
25
|
+
- La tarea requiere diagramas de arquitectura con paleta de colores, leyendas y fondo oscuro enriquecido: cargar `diagrama-arquitectura`.
|
|
26
|
+
- La tarea es modelar un esquema de base de datos (ER): cargar `dbml-experto` o usar `erDiagram` directamente.
|
|
27
|
+
- El proyecto ya adoptó LikeC4/C4 model y el diagrama debe ser versionable as-code: cargar `likec4-experto`.
|
|
28
|
+
- La tarea es prototipar flujos de UI o wireframes: cargar `wireframes-flujos`.
|
|
29
|
+
|
|
30
|
+
## Cuándo cargar
|
|
31
|
+
|
|
32
|
+
- `planificador-swl` genera un plan y necesita visualización
|
|
33
|
+
- `documentador-swl` documenta flujos de ejecución
|
|
34
|
+
- `/swl:planear-fase` necesita diagrama del plan generado
|
|
35
|
+
- Cualquier ADR o RFC que necesite diagrama de flujo
|
|
36
|
+
|
|
37
|
+
## Tipos de diagrama soportados
|
|
38
|
+
|
|
39
|
+
### 1. Flowchart (para planes de ejecución)
|
|
40
|
+
|
|
41
|
+
```mermaid
|
|
42
|
+
flowchart TD
|
|
43
|
+
Start([Inicio]) --> Slice1[Slice 1: API endpoints]
|
|
44
|
+
Start --> Slice2[Slice 2: Frontend forms]
|
|
45
|
+
Slice1 --> Test1{Tests pasan?}
|
|
46
|
+
Slice2 --> Test2{Tests pasan?}
|
|
47
|
+
Test1 -->|Sí| Review[Revisión de código]
|
|
48
|
+
Test1 -->|No| Fix1[Corregir slice 1]
|
|
49
|
+
Fix1 --> Test1
|
|
50
|
+
Test2 -->|Sí| Review
|
|
51
|
+
Test2 -->|No| Fix2[Corregir slice 2]
|
|
52
|
+
Fix2 --> Test2
|
|
53
|
+
Review --> Deploy([Deploy])
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### 2. Sequence (para flujos de agentes)
|
|
57
|
+
|
|
58
|
+
```mermaid
|
|
59
|
+
sequenceDiagram
|
|
60
|
+
participant U as Usuario
|
|
61
|
+
participant O as Orquestador
|
|
62
|
+
participant A as Arquitecto
|
|
63
|
+
participant I as Implementador
|
|
64
|
+
participant R as Revisor
|
|
65
|
+
|
|
66
|
+
U->>O: Feature request
|
|
67
|
+
O->>A: Diseñar arquitectura
|
|
68
|
+
A-->>O: Plan aprobado
|
|
69
|
+
O->>I: Implementar slice 1
|
|
70
|
+
O->>I: Implementar slice 2
|
|
71
|
+
I-->>O: Implementación completa
|
|
72
|
+
O->>R: Revisar código
|
|
73
|
+
R-->>O: Aprobado
|
|
74
|
+
O-->>U: Feature lista
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### 3. State (para ciclo de vida)
|
|
78
|
+
|
|
79
|
+
```mermaid
|
|
80
|
+
stateDiagram-v2
|
|
81
|
+
[*] --> Discutir
|
|
82
|
+
Discutir --> Planear: Contexto completo
|
|
83
|
+
Planear --> Ejecutar: Plan aprobado
|
|
84
|
+
Ejecutar --> Verificar: Implementación completa
|
|
85
|
+
Verificar --> Ejecutar: Correcciones necesarias
|
|
86
|
+
Verificar --> [*]: Verificación exitosa
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Patrones de conversión plan → Mermaid
|
|
90
|
+
|
|
91
|
+
### Plan con slices independientes (paralelo)
|
|
92
|
+
|
|
93
|
+
```markdown
|
|
94
|
+
Plan:
|
|
95
|
+
Slice 1: API de usuarios (backend-api-swl)
|
|
96
|
+
Slice 2: Formulario de registro (frontend-react-swl)
|
|
97
|
+
Slice 3: Tests E2E (tdd-qa-swl)
|
|
98
|
+
Dependencias: Slice 3 depende de Slice 1 y Slice 2
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
```mermaid
|
|
102
|
+
flowchart TD
|
|
103
|
+
S([Inicio]) --> S1[Slice 1: API usuarios]
|
|
104
|
+
S --> S2[Slice 2: Form registro]
|
|
105
|
+
S1 --> S3[Slice 3: Tests E2E]
|
|
106
|
+
S2 --> S3
|
|
107
|
+
S3 --> E([Fin])
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Plan con branching (decisión)
|
|
111
|
+
|
|
112
|
+
```markdown
|
|
113
|
+
Plan:
|
|
114
|
+
Paso 1: Analizar si el módulo existe
|
|
115
|
+
Decisión: ¿Existe el módulo?
|
|
116
|
+
Sí → Paso 2a: Modificar módulo existente
|
|
117
|
+
No → Paso 2b: Crear módulo nuevo
|
|
118
|
+
Paso 3: Tests
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
```mermaid
|
|
122
|
+
flowchart TD
|
|
123
|
+
S([Inicio]) --> P1[Analizar módulo]
|
|
124
|
+
P1 --> D{¿Existe?}
|
|
125
|
+
D -->|Sí| P2a[Modificar existente]
|
|
126
|
+
D -->|No| P2b[Crear nuevo]
|
|
127
|
+
P2a --> P3[Tests]
|
|
128
|
+
P2b --> P3
|
|
129
|
+
P3 --> E([Fin])
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Plan con agentes específicos
|
|
133
|
+
|
|
134
|
+
```markdown
|
|
135
|
+
Plan:
|
|
136
|
+
Fase 1: Discovery (investigador-swl)
|
|
137
|
+
Fase 2: Arquitectura (arquitecto-swl)
|
|
138
|
+
Fase 3: Implementación paralela
|
|
139
|
+
- backend-api-swl: API REST
|
|
140
|
+
- frontend-react-swl: UI
|
|
141
|
+
Fase 4: Calidad (tdd-qa-swl + revisor-codigo-swl)
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
```mermaid
|
|
145
|
+
flowchart TD
|
|
146
|
+
S([Inicio]) --> F1[🔍 Discovery<br/>investigador-swl]
|
|
147
|
+
F1 --> F2[📐 Arquitectura<br/>arquitecto-swl]
|
|
148
|
+
F2 --> F3a[⚙️ API REST<br/>backend-api-swl]
|
|
149
|
+
F2 --> F3b[🖥️ UI<br/>frontend-react-swl]
|
|
150
|
+
F3a --> F4[✅ Calidad<br/>tdd-qa + revisor]
|
|
151
|
+
F3b --> F4
|
|
152
|
+
F4 --> E([Fin])
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## Reglas de generación
|
|
156
|
+
|
|
157
|
+
### Nodos
|
|
158
|
+
|
|
159
|
+
| Tipo de paso | Forma Mermaid | Ejemplo |
|
|
160
|
+
|-------------|---------------|---------|
|
|
161
|
+
| Inicio/Fin | `([texto])` | `([Inicio])`, `([Deploy])` |
|
|
162
|
+
| Acción/Tarea | `[texto]` | `[Implementar API]` |
|
|
163
|
+
| Decisión | `{texto}` | `{¿Tests pasan?}` |
|
|
164
|
+
| Subproceso | `[[texto]]` | `[[Workflow anidado]]` |
|
|
165
|
+
| Base de datos | `[(texto)]` | `[(PostgreSQL)]` |
|
|
166
|
+
|
|
167
|
+
### Conexiones
|
|
168
|
+
|
|
169
|
+
| Tipo | Sintaxis | Cuándo |
|
|
170
|
+
|------|---------|--------|
|
|
171
|
+
| Secuencial | `-->` | Paso A antes que paso B |
|
|
172
|
+
| Con etiqueta | `-->|etiqueta|` | Ramas de decisión |
|
|
173
|
+
| Paralelo | Mismo origen, múltiples destinos | Slices independientes |
|
|
174
|
+
| Punteado | `-.->` | Dependencia débil/opcional |
|
|
175
|
+
|
|
176
|
+
### Estilo
|
|
177
|
+
|
|
178
|
+
- Máximo 15 nodos por diagrama (si más, dividir en sub-diagramas)
|
|
179
|
+
- Nombres de nodos: 3-5 palabras máximo
|
|
180
|
+
- Incluir agente responsable en nodos de implementación
|
|
181
|
+
- Usar `TD` (top-down) para planes lineales, `LR` (left-right) para pipelines
|
|
182
|
+
- No incluir detalles de implementación — solo flujo de alto nivel
|
|
183
|
+
|
|
184
|
+
## Integración con swl-ses
|
|
185
|
+
|
|
186
|
+
El diagrama Mermaid se incluye automáticamente en:
|
|
187
|
+
- `PLAN.md` generado por `/swl:planear-fase`
|
|
188
|
+
- ADRs en `.planning/adrs/`
|
|
189
|
+
- Documentación generada por `documentador-swl`
|
|
190
|
+
- Exports de `/swl:revisar-impacto` (blast radius visual)
|
|
191
|
+
|
|
192
|
+
## Ejemplo: conversión completa
|
|
193
|
+
|
|
194
|
+
**Input (plan textual):**
|
|
195
|
+
```
|
|
196
|
+
Feature: Sistema de notificaciones push
|
|
197
|
+
Slices:
|
|
198
|
+
1. Modelo de datos y migraciones (backend-python-swl) — 2h
|
|
199
|
+
2. API de suscripción (backend-api-swl) — 3h
|
|
200
|
+
3. Worker de envío (backend-workers-swl) — 4h, depende de 1
|
|
201
|
+
4. UI de preferencias (frontend-react-swl) — 3h, depende de 2
|
|
202
|
+
5. Tests E2E (tdd-qa-swl) — 2h, depende de 3 y 4
|
|
203
|
+
Gate: Revisión de código antes de merge
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
**Output (Mermaid):**
|
|
207
|
+
```mermaid
|
|
208
|
+
flowchart TD
|
|
209
|
+
S([Inicio]) --> S1[1. Modelo de datos<br/>backend-python-swl]
|
|
210
|
+
S --> S2[2. API suscripción<br/>backend-api-swl]
|
|
211
|
+
S1 --> S3[3. Worker envío<br/>backend-workers-swl]
|
|
212
|
+
S2 --> S4[4. UI preferencias<br/>frontend-react-swl]
|
|
213
|
+
S3 --> S5[5. Tests E2E<br/>tdd-qa-swl]
|
|
214
|
+
S4 --> S5
|
|
215
|
+
S5 --> G{Gate: Revisión}
|
|
216
|
+
G -->|Aprobado| E([Merge])
|
|
217
|
+
G -->|Rechazado| Fix[Correcciones]
|
|
218
|
+
Fix --> S5
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
## Gotchas / Errores comunes no obvios
|
|
222
|
+
|
|
223
|
+
**Los caracteres de paréntesis `(` `)` en etiquetas de nodos rompen el render de flowchart sin error visible**: Mermaid interpreta `[nombre (acción)]` correctamente, pero `[(nombre)]` o `((nombre))` tienen significados especiales (cilindros, círculos). Si el nombre del nodo contiene paréntesis del dominio (ej: nombres de funciones), el diagrama renderiza mal o produce un nodo vacío. Causa: Mermaid usa paréntesis como operadores de forma de nodo. Fix: escapar el contenido con comillas dentro del corchete: `["nombre (acción)"]` para texto con paréntesis literales.
|
|
224
|
+
|
|
225
|
+
**Los nodos con IDs largos (más de 20 caracteres) generan conexiones que se solapan visualmente en diagramas `LR`**: Mermaid calcula el ancho de las cajas basándose en el ID del nodo en `flowchart LR`, no en el texto de la etiqueta. IDs largos crean cajas anchas que se solapan con las flechas. Causa: el layouter de Mermaid (Dagre) usa el ID para calcular el bbox inicial. Fix: usar IDs cortos (S1, P2, D3) y poner el texto descriptivo en la etiqueta: `S1[Slice 1: API de usuarios]` en lugar de `implementar-api-usuarios[Implementar API de usuarios]`.
|
|
226
|
+
|
|
227
|
+
**En diagramas `sequenceDiagram`, los mensajes con `-->>` (línea punteada) en bucles producen un loop infinito visual si el `loop` y el `end` no están correctamente indentados en el código Mermaid**: Mermaid no reporta error de sintaxis, simplemente renderiza el diagrama sin el bloque `loop`, perdiendo la semántica del flujo. Causa: el parser de `sequenceDiagram` es sensible a la indentación de las palabras clave `loop`, `alt`, `opt` y sus `end` correspondientes. Fix: usar siempre indentación de 4 espacios para el contenido de bloques `loop`/`alt`/`opt` y verificar el render en [mermaid.live](https://mermaid.live) antes de incluir en documentación.
|
|
228
|
+
|
|
229
|
+
**Los diagramas con más de 15 nodos en `flowchart TD` se renderizan con cruce de flechas inevitables porque Dagre no garantiza planarity para grafos densos**: aunque se sigan las reglas de diseño, los grafos con muchas aristas no pueden ser planares y el layout de Dagre produce cruce de aristas que confunden la lectura. Causa: el algoritmo de layout Dagre es heurístico y no garantiza planarity. Fix: dividir el diagrama en dos subdiagramas (por capa o por subsistema) con un nodo de conexión explícito entre ellos, o cambiar a `flowchart LR` que Dagre maneja mejor para grafos anchos.
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: git-worktrees-paralelo
|
|
3
|
+
description: Uso de git worktrees para ejecución paralela de agentes. Crear, usar y limpiar worktrees de forma segura para que múltiples agentes trabajen sin conflictos.
|
|
4
|
+
version: "1.0.0"
|
|
5
|
+
herramientasPermitidas: [Read, Bash]
|
|
6
|
+
evolvable: true # default para skill estandar
|
|
7
|
+
exclusiones:
|
|
8
|
+
- "No cargar para trabajo secuencial de un solo agente — un checkout normal es suficiente; los worktrees añaden complejidad sin beneficio."
|
|
9
|
+
- "No cargar para gestión de ramas sin paralelismo real (feature branching estándar) — para flujo de ramas estándar seguir la regla `git-workflow.md`."
|
|
10
|
+
- "No cargar para repositorios monorepo con submódulos Git — los worktrees en repos con submódulos tienen comportamiento inconsistente; usar contenedores o directorios de trabajo separados."
|
|
11
|
+
- "No cargar para tareas que requieren estado compartido entre agentes (mismo archivo modificado simultáneamente) — los worktrees aíslan pero no resuelven conflictos de edición concurrente."
|
|
12
|
+
---
|
|
13
|
+
# Git Worktrees para Ejecución Paralela
|
|
14
|
+
|
|
15
|
+
## Cuándo NO cargar
|
|
16
|
+
|
|
17
|
+
- Solo hay un agente trabajando en el repo: un checkout normal es suficiente.
|
|
18
|
+
- La tarea es feature branching secuencial sin paralelismo real: seguir `git-workflow.md`.
|
|
19
|
+
- El repo tiene submódulos Git: los worktrees con submódulos tienen comportamiento inconsistente.
|
|
20
|
+
- Los agentes paralelos modificarían los mismos archivos simultáneamente: los worktrees aíslan ramas pero no resuelven conflictos de edición concurrente.
|
|
21
|
+
|
|
22
|
+
## Qué es un worktree
|
|
23
|
+
|
|
24
|
+
Un **git worktree** permite tener múltiples directorios de trabajo conectados al mismo
|
|
25
|
+
repositorio. Cada worktree tiene su propio árbol de trabajo y puede estar en una rama
|
|
26
|
+
distinta, pero comparten el objeto store de Git (commits, blobs, trees). Esto es ideal
|
|
27
|
+
para agentes paralelos: cada uno trabaja en su propia rama y su propio directorio sin
|
|
28
|
+
interferir con los demás.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Cuándo usar worktrees
|
|
33
|
+
|
|
34
|
+
- Múltiples agentes ejecutando tareas en paralelo sobre el mismo repo.
|
|
35
|
+
- Trabajar en un hotfix mientras el desarrollo principal sigue en `main`.
|
|
36
|
+
- Revisar el código de una rama sin perder el contexto de la rama actual.
|
|
37
|
+
- Ejecutar la suite de tests de una rama sin hacer checkout.
|
|
38
|
+
- Comparar implementaciones de dos ramas side-by-side.
|
|
39
|
+
|
|
40
|
+
**No usar worktrees cuando:**
|
|
41
|
+
- Solo hay un agente trabajando. Un checkout normal es suficiente.
|
|
42
|
+
- Las tareas tienen dependencias de orden entre sí.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Comandos esenciales
|
|
47
|
+
|
|
48
|
+
### Crear un worktree
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
# Sintaxis básica
|
|
52
|
+
git worktree add <ruta> <rama>
|
|
53
|
+
|
|
54
|
+
# Crear worktree en rama existente
|
|
55
|
+
git worktree add ../mi-proyecto-feature feature/login
|
|
56
|
+
|
|
57
|
+
# Crear worktree con nueva rama desde HEAD
|
|
58
|
+
git worktree add -b feature/nueva-ruta ../mi-proyecto-nueva-ruta
|
|
59
|
+
|
|
60
|
+
# Crear worktree con nueva rama desde commit específico
|
|
61
|
+
git worktree add -b hotfix/auth ../mi-proyecto-hotfix origin/main
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Listar worktrees activos
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
git worktree list
|
|
68
|
+
# Salida:
|
|
69
|
+
# /ruta/repo-principal abc1234 [main]
|
|
70
|
+
# /ruta/repo-feature def5678 [feature/login]
|
|
71
|
+
# /ruta/repo-hotfix ghi9012 [hotfix/auth]
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Eliminar un worktree
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
# Primero quitar el directorio, luego limpiar la referencia
|
|
78
|
+
git worktree remove ../mi-proyecto-feature
|
|
79
|
+
|
|
80
|
+
# Forzar si el directorio tiene cambios sin commitear (cuidado)
|
|
81
|
+
git worktree remove --force ../mi-proyecto-feature
|
|
82
|
+
|
|
83
|
+
# Limpiar referencias a worktrees eliminados manualmente
|
|
84
|
+
git worktree prune
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Mover un worktree
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
git worktree move ../mi-proyecto-feature ../nueva-ubicacion
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Patrón de trabajo para agentes paralelos
|
|
96
|
+
|
|
97
|
+
### Estructura de directorios recomendada
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
proyectos/
|
|
101
|
+
├── mi-app/ # Worktree principal (main)
|
|
102
|
+
├── mi-app-agente-1/ # Worktree para Agente 1 (feature/modulo-a)
|
|
103
|
+
├── mi-app-agente-2/ # Worktree para Agente 2 (feature/modulo-b)
|
|
104
|
+
└── mi-app-agente-3/ # Worktree para Agente 3 (feature/modulo-c)
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Flujo completo: lanzar agentes paralelos
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
# 1. Asegurarse de estar en main actualizado
|
|
111
|
+
cd /ruta/mi-app
|
|
112
|
+
git checkout main
|
|
113
|
+
git pull origin main
|
|
114
|
+
|
|
115
|
+
# 2. Crear worktrees para cada agente
|
|
116
|
+
git worktree add -b feature/modulo-usuarios ../mi-app-agente-1
|
|
117
|
+
git worktree add -b feature/modulo-reportes ../mi-app-agente-2
|
|
118
|
+
git worktree add -b feature/modulo-notificaciones ../mi-app-agente-3
|
|
119
|
+
|
|
120
|
+
# 3. Cada agente trabaja en su propio directorio
|
|
121
|
+
# Agente 1 → cd ../mi-app-agente-1
|
|
122
|
+
# Agente 2 → cd ../mi-app-agente-2
|
|
123
|
+
# Agente 3 → cd ../mi-app-agente-3
|
|
124
|
+
|
|
125
|
+
# 4. Los agentes hacen commits normalmente dentro de su worktree
|
|
126
|
+
cd ../mi-app-agente-1
|
|
127
|
+
git add .
|
|
128
|
+
git commit -m "feat(usuarios): implementa CRUD de usuarios"
|
|
129
|
+
|
|
130
|
+
# 5. Al terminar, crear PRs o mergear
|
|
131
|
+
cd /ruta/mi-app
|
|
132
|
+
git merge feature/modulo-usuarios
|
|
133
|
+
|
|
134
|
+
# 6. Limpiar worktrees terminados
|
|
135
|
+
git worktree remove ../mi-app-agente-1
|
|
136
|
+
git worktree remove ../mi-app-agente-2
|
|
137
|
+
git worktree remove ../mi-app-agente-3
|
|
138
|
+
git worktree prune
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## Reglas de seguridad para worktrees paralelos
|
|
144
|
+
|
|
145
|
+
### La misma rama NO puede estar en dos worktrees
|
|
146
|
+
|
|
147
|
+
Git prohíbe hacer checkout de la misma rama en dos worktrees. Si se intenta:
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
git worktree add ../copia-main main
|
|
151
|
+
# fatal: 'main' is already checked out at '/ruta/repo-principal'
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Solución: cada agente SIEMPRE trabaja en su propia rama, nunca en la misma.
|
|
155
|
+
|
|
156
|
+
### Archivos de bloqueo compartidos
|
|
157
|
+
|
|
158
|
+
Los hooks de Git se ejecutan desde el directorio `.git` compartido. Si dos agentes
|
|
159
|
+
ejecutan hooks simultáneamente puede haber condiciones de carrera. Usar ramas
|
|
160
|
+
completamente independientes minimiza este riesgo.
|
|
161
|
+
|
|
162
|
+
### Variables de entorno por worktree
|
|
163
|
+
|
|
164
|
+
Cada proceso de agente debe tener `GIT_DIR` implícito resuelto desde su CWD, no
|
|
165
|
+
configurado manualmente. Nunca exportar `GIT_DIR` de forma global si hay múltiples
|
|
166
|
+
worktrees activos.
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## Integración con agentes del sistema SWL
|
|
171
|
+
|
|
172
|
+
### Estado en ESTADO.md por worktree
|
|
173
|
+
|
|
174
|
+
Cada agente debe registrar en su `ESTADO.md` local:
|
|
175
|
+
|
|
176
|
+
```markdown
|
|
177
|
+
## Worktree
|
|
178
|
+
- Ruta: /ruta/mi-app-agente-1
|
|
179
|
+
- Rama: feature/modulo-usuarios
|
|
180
|
+
- Worktree base: /ruta/mi-app (main @ abc1234)
|
|
181
|
+
- Creado: 2026-03-25T10:00:00
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### Protocolo de limpieza
|
|
185
|
+
|
|
186
|
+
El agente coordinador (orquestador) es responsable de:
|
|
187
|
+
1. Crear los worktrees ANTES de lanzar los agentes.
|
|
188
|
+
2. Verificar que cada agente terminó (commit final presente).
|
|
189
|
+
3. Mergear las ramas al trunk.
|
|
190
|
+
4. Eliminar los worktrees con `git worktree remove`.
|
|
191
|
+
5. Borrar las ramas de feature si ya fueron mergeadas.
|
|
192
|
+
|
|
193
|
+
### Script de limpieza completa
|
|
194
|
+
|
|
195
|
+
```bash
|
|
196
|
+
#!/usr/bin/env bash
|
|
197
|
+
# cleanup-worktrees.sh
|
|
198
|
+
set -euo pipefail
|
|
199
|
+
|
|
200
|
+
REPO_ROOT="/ruta/mi-app"
|
|
201
|
+
cd "$REPO_ROOT"
|
|
202
|
+
|
|
203
|
+
echo "Worktrees activos:"
|
|
204
|
+
git worktree list
|
|
205
|
+
|
|
206
|
+
echo "Limpiando worktrees terminados..."
|
|
207
|
+
git worktree prune
|
|
208
|
+
|
|
209
|
+
echo "Estado final:"
|
|
210
|
+
git worktree list
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## Troubleshooting común
|
|
216
|
+
|
|
217
|
+
### El worktree quedó en estado corrupto
|
|
218
|
+
|
|
219
|
+
```bash
|
|
220
|
+
# Verificar integridad
|
|
221
|
+
git fsck
|
|
222
|
+
|
|
223
|
+
# Si el directorio ya no existe pero el worktree está registrado
|
|
224
|
+
git worktree prune --verbose
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
### Conflicto al intentar hacer checkout en el worktree principal
|
|
228
|
+
|
|
229
|
+
```bash
|
|
230
|
+
# Ver en qué worktree está cada rama
|
|
231
|
+
git worktree list --porcelain
|
|
232
|
+
|
|
233
|
+
# Ir al worktree donde está la rama y hacer el trabajo ahí
|
|
234
|
+
cd /ruta/worktree-con-esa-rama
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
### Cambios sin commitear en un worktree al intentar eliminarlo
|
|
238
|
+
|
|
239
|
+
```bash
|
|
240
|
+
# Opción 1: Commitear antes
|
|
241
|
+
cd ../mi-app-agente-1
|
|
242
|
+
git stash # o git commit
|
|
243
|
+
|
|
244
|
+
# Opción 2: Forzar eliminación (se pierden cambios)
|
|
245
|
+
cd /ruta/mi-app
|
|
246
|
+
git worktree remove --force ../mi-app-agente-1
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
## Resumen de comandos
|
|
252
|
+
|
|
253
|
+
| Comando | Acción |
|
|
254
|
+
|---------|--------|
|
|
255
|
+
| `git worktree add <ruta> <rama>` | Crear worktree en rama existente |
|
|
256
|
+
| `git worktree add -b <rama> <ruta>` | Crear worktree con rama nueva |
|
|
257
|
+
| `git worktree list` | Listar todos los worktrees |
|
|
258
|
+
| `git worktree remove <ruta>` | Eliminar worktree limpiamente |
|
|
259
|
+
| `git worktree prune` | Limpiar referencias obsoletas |
|
|
260
|
+
| `git worktree move <src> <dst>` | Mover worktree a nueva ruta |
|
|
261
|
+
|
|
262
|
+
## Gotchas / Errores comunes no obvios
|
|
263
|
+
|
|
264
|
+
**`git worktree add` falla con "fatal: already checked out" aunque la rama aparezca como no activa en `git branch`**: si un worktree anterior fue eliminado manualmente (borrando el directorio sin `git worktree remove`), Git mantiene la referencia del worktree en `.git/worktrees/` y cree que la rama sigue en uso. Causa: Git no detecta automáticamente que el directorio del worktree desapareció. Fix: ejecutar `git worktree prune` primero para limpiar referencias obsoletas, luego volver a intentar el `add`.
|
|
265
|
+
|
|
266
|
+
**Las hooks de Git (pre-commit, pre-push) se ejecutan desde `.git/hooks/` compartido entre todos los worktrees y pueden fallar si usan rutas relativas al directorio del worktree principal**: los hooks que asumen que `$PWD` es el directorio raíz del repositorio principal fallan cuando se ejecutan desde un worktree secundario porque `$PWD` apunta al directorio del worktree hijo. Causa: los hooks no tienen acceso automático al worktree actual — solo a `$GIT_DIR` y `$GIT_WORK_TREE`. Fix: en los hooks, usar `git rev-parse --show-toplevel` para obtener el directorio del worktree actual en lugar de rutas hardcodeadas, y `git rev-parse --git-common-dir` para encontrar el `.git` compartido.
|
|
267
|
+
|
|
268
|
+
**`git stash` en un worktree guarda el stash en el stash global del repositorio compartido, no en el worktree**: si el Agente 1 hace `git stash` en `mi-app-agente-1/` y luego el Agente 2 hace `git stash pop` en `mi-app-agente-2/`, aplica el stash del Agente 1 en la rama incorrecta. Causa: el stash de Git es una referencia global en `.git/refs/stash`, no por worktree. Fix: NUNCA usar `git stash` en flujos con múltiples worktrees. En su lugar, hacer un commit temporal con mensaje `WIP:` y usar `git reset HEAD~1` para deshacer cuando se necesite.
|
|
269
|
+
|
|
270
|
+
**Eliminar un worktree con `git worktree remove --force` mientras hay un agente activo escribiendo archivos en ese directorio produce corrupción del objeto store de Git**: si el agente tiene archivos en proceso de escritura (commit parcial, `git add` pendiente) y otro proceso ejecuta `remove --force`, Git puede quedar con objetos huérfanos o referencias rotas. Causa: `--force` no verifica si hay procesos con file handles abiertos en el worktree. Fix: el orquestador debe verificar que cada agente emitió su commit final antes de ejecutar `git worktree remove`. Usar `git worktree list --porcelain` para confirmar que la rama del worktree tiene el commit esperado.
|