@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,165 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: diagrama-arquitectura
|
|
3
|
+
description: >
|
|
4
|
+
Genera diagramas de arquitectura profesionales como archivos HTML auto-contenidos
|
|
5
|
+
con gráficos SVG inline. Usar cuando se necesiten diagramas de sistema, infraestructura
|
|
6
|
+
cloud, topología de red, flujos de seguridad, o cualquier diagrama técnico que muestre
|
|
7
|
+
componentes y sus relaciones. Ideal para documentación, presentaciones y onboarding.
|
|
8
|
+
version: "1.0.0"
|
|
9
|
+
herramientasPermitidas: [Read, Grep]
|
|
10
|
+
user-invocable: false
|
|
11
|
+
license: MIT (basado en architecture-diagram-generator de Cocoon AI)
|
|
12
|
+
evolvable: true # default para skill estandar
|
|
13
|
+
exclusiones:
|
|
14
|
+
- "No cargar para diagramas de flujo de datos ETL o pipelines de datos — para diagramas de datos cargar `datos-etl` que incluye su propia notación de capas."
|
|
15
|
+
- "No cargar para diagramas de entidad-relación de base de datos — para ER cargar `generacion-mermaid` con sintaxis erDiagram o `dbml-experto`."
|
|
16
|
+
- "No cargar para wireframes o mockups de interfaz de usuario — para UI prototyping cargar `wireframes-flujos`."
|
|
17
|
+
- "No cargar para diagramas de secuencia de API o flujos de autenticación en texto plano (Mermaid) — para diagramas Mermaid cargar `generacion-mermaid`."
|
|
18
|
+
---
|
|
19
|
+
# Diagrama de Arquitectura
|
|
20
|
+
|
|
21
|
+
Genera diagramas técnicos de arquitectura como archivos HTML standalone con SVG inline y CSS.
|
|
22
|
+
Basado en architecture-diagram-generator (MIT, Cocoon AI) — adaptado al sistema SWL.
|
|
23
|
+
|
|
24
|
+
## Cuándo NO cargar
|
|
25
|
+
|
|
26
|
+
- Los diagramas son de entidad-relación de base de datos: cargar `generacion-mermaid` (sintaxis `erDiagram`) o `dbml-experto`.
|
|
27
|
+
- Los diagramas son de flujo de datos ETL o pipelines de datos: `datos-etl` tiene su propia notación Medallion.
|
|
28
|
+
- Los diagramas son wireframes o mockups de UI: cargar `wireframes-flujos`.
|
|
29
|
+
- Los diagramas son de secuencia o flujo en texto Mermaid: cargar `generacion-mermaid`.
|
|
30
|
+
|
|
31
|
+
## Cuándo cargar
|
|
32
|
+
|
|
33
|
+
- El usuario pide un diagrama de arquitectura del proyecto
|
|
34
|
+
- `arquitecto-swl` necesita visualizar la arquitectura propuesta
|
|
35
|
+
- `documentador-swl` genera documentación visual
|
|
36
|
+
- `/swl:wiki` o `/swl:dashboard` necesitan representación gráfica
|
|
37
|
+
- Cualquier tarea de RFC, ADR o propuesta arquitectónica
|
|
38
|
+
|
|
39
|
+
## Sistema de diseño
|
|
40
|
+
|
|
41
|
+
### Paleta semántica de colores
|
|
42
|
+
|
|
43
|
+
| Tipo de componente | Fill (rgba) | Stroke |
|
|
44
|
+
|-------------------|-------------|--------|
|
|
45
|
+
| Frontend | `rgba(8, 51, 68, 0.4)` | `#22d3ee` (cyan-400) |
|
|
46
|
+
| Backend | `rgba(6, 78, 59, 0.4)` | `#34d399` (emerald-400) |
|
|
47
|
+
| Base de datos | `rgba(76, 29, 149, 0.4)` | `#a78bfa` (violet-400) |
|
|
48
|
+
| Cloud/AWS/GCP/Azure | `rgba(120, 53, 15, 0.3)` | `#fbbf24` (amber-400) |
|
|
49
|
+
| Seguridad | `rgba(136, 19, 55, 0.4)` | `#fb7185` (rose-400) |
|
|
50
|
+
| Bus de mensajes | `rgba(251, 146, 60, 0.3)` | `#fb923c` (orange-400) |
|
|
51
|
+
| Externo/Genérico | `rgba(30, 41, 59, 0.5)` | `#94a3b8` (slate-400) |
|
|
52
|
+
|
|
53
|
+
### Tipografía
|
|
54
|
+
|
|
55
|
+
JetBrains Mono (monoespaciada, estética técnica):
|
|
56
|
+
```html
|
|
57
|
+
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap" rel="stylesheet">
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Tamaños: 12px nombres de componentes, 9px sub-etiquetas, 8px anotaciones, 7px etiquetas pequeñas.
|
|
61
|
+
|
|
62
|
+
### Elementos visuales
|
|
63
|
+
|
|
64
|
+
**Fondo:** `#020617` (slate-950) con patrón de grilla sutil:
|
|
65
|
+
```svg
|
|
66
|
+
<pattern id="grid" width="40" height="40" patternUnits="userSpaceOnUse">
|
|
67
|
+
<path d="M 40 0 L 0 0 0 40" fill="none" stroke="#1e293b" stroke-width="0.5"/>
|
|
68
|
+
</pattern>
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
**Cajas de componentes:** Rectángulos redondeados (`rx="6"`) con stroke 1.5px, fills semi-transparentes.
|
|
72
|
+
|
|
73
|
+
**Grupos de seguridad:** Stroke punteado (`stroke-dasharray="4,4"`), fill transparente, color rose.
|
|
74
|
+
|
|
75
|
+
**Límites de región:** Stroke punteado largo (`stroke-dasharray="8,4"`), color amber, `rx="12"`.
|
|
76
|
+
|
|
77
|
+
**Flechas:** Marker SVG para puntas:
|
|
78
|
+
```svg
|
|
79
|
+
<marker id="arrowhead" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
|
80
|
+
<polygon points="0 0, 10 3.5, 0 7" fill="#64748b" />
|
|
81
|
+
</marker>
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
**Z-order de flechas:** Dibujar flechas temprano en el SVG (después de la grilla) para que queden detrás de componentes.
|
|
85
|
+
|
|
86
|
+
**Enmascarar flechas bajo fills transparentes:** Dado que las cajas usan fills semi-transparentes, las flechas se ven a través. Para enmascarar, dibujar un rect opaco (`fill="#0f172a"`) debajo del rect estilizado:
|
|
87
|
+
```svg
|
|
88
|
+
<!-- Fondo opaco para enmascarar flechas -->
|
|
89
|
+
<rect x="X" y="Y" width="W" height="H" rx="6" fill="#0f172a"/>
|
|
90
|
+
<!-- Componente estilizado encima -->
|
|
91
|
+
<rect x="X" y="Y" width="W" height="H" rx="6" fill="rgba(76, 29, 149, 0.4)" stroke="#a78bfa" stroke-width="1.5"/>
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Reglas de espaciado
|
|
95
|
+
|
|
96
|
+
**CRÍTICO:** Al apilar componentes verticalmente, asegurar espaciado correcto:
|
|
97
|
+
|
|
98
|
+
- **Altura estándar de componente:** 60px para servicios, 80-120px para componentes grandes
|
|
99
|
+
- **Gap vertical mínimo entre componentes:** 40px
|
|
100
|
+
- **Conectores inline (buses de mensajes):** Colocar EN el gap, sin solapar
|
|
101
|
+
- **Leyendas:** FUERA de todos los boundary boxes, al menos 20px debajo del más bajo
|
|
102
|
+
- **ViewBox SVG:** Extender si es necesario para acomodar leyendas
|
|
103
|
+
|
|
104
|
+
### Patrón de componente
|
|
105
|
+
|
|
106
|
+
```svg
|
|
107
|
+
<rect x="X" y="Y" width="W" height="H" rx="6" fill="FILL_COLOR" stroke="STROKE_COLOR" stroke-width="1.5"/>
|
|
108
|
+
<text x="CENTER_X" y="Y+20" fill="white" font-size="11" font-weight="600" text-anchor="middle">ETIQUETA</text>
|
|
109
|
+
<text x="CENTER_X" y="Y+36" fill="#94a3b8" font-size="9" text-anchor="middle">sub-etiqueta</text>
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### Estructura del layout
|
|
113
|
+
|
|
114
|
+
1. **Encabezado** — Título con punto pulsante, subtítulo
|
|
115
|
+
2. **Diagrama SVG principal** — Contenido en tarjeta con borde redondeado
|
|
116
|
+
3. **Tarjetas de resumen** — Grid de 3 tarjetas debajo con detalles clave
|
|
117
|
+
4. **Pie** — Línea de metadatos mínima
|
|
118
|
+
|
|
119
|
+
## Template
|
|
120
|
+
|
|
121
|
+
Usar y personalizar el template en `assets/template.html`. Puntos de personalización:
|
|
122
|
+
|
|
123
|
+
1. Actualizar `<title>` y texto del encabezado
|
|
124
|
+
2. Modificar dimensiones del viewBox SVG si es necesario (default: `1000 x 680`)
|
|
125
|
+
3. Agregar/quitar/reposicionar cajas de componentes
|
|
126
|
+
4. Dibujar flechas de conexión entre componentes
|
|
127
|
+
5. Actualizar las tres tarjetas de resumen
|
|
128
|
+
6. Actualizar metadatos del pie
|
|
129
|
+
|
|
130
|
+
## Salida
|
|
131
|
+
|
|
132
|
+
Siempre producir un archivo `.html` auto-contenido con:
|
|
133
|
+
- CSS embebido (sin hojas de estilo externas excepto Google Fonts)
|
|
134
|
+
- SVG inline (sin imágenes externas)
|
|
135
|
+
- Sin JavaScript requerido (animaciones puras CSS)
|
|
136
|
+
|
|
137
|
+
El archivo debe renderizar correctamente al abrirlo directamente en cualquier navegador moderno.
|
|
138
|
+
|
|
139
|
+
## Flujo de uso en swl-ses
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
1. arquitecto-swl analiza el codebase → genera descripción textual de la arquitectura
|
|
143
|
+
2. Se carga Skill("diagrama-arquitectura")
|
|
144
|
+
3. Se genera HTML personalizado a partir del template + descripción
|
|
145
|
+
4. Se guarda en .planning/diagramas/ o docs/ del proyecto
|
|
146
|
+
5. Se actualiza en cada fase de verificación si hay cambios estructurales
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## Casos de uso
|
|
150
|
+
|
|
151
|
+
- **Documentación de proyecto:** Diagrama visual para README o wiki
|
|
152
|
+
- **Propuesta arquitectónica:** Visualizar RFC o ADR antes de implementar
|
|
153
|
+
- **Onboarding:** Mostrar a nuevos desarrolladores cómo se conectan los componentes
|
|
154
|
+
- **Revisión de arquitectura:** Validar visualmente que el diseño cumpla requisitos
|
|
155
|
+
- **Presentaciones:** Diagrama profesional sin depender de herramientas externas (Lucidchart, Draw.io)
|
|
156
|
+
|
|
157
|
+
## Gotchas / Errores comunes no obvios
|
|
158
|
+
|
|
159
|
+
**Las flechas de conexión se ven a través de los componentes porque los fills son semi-transparentes**: cuando las flechas se dibujan en el SVG después de las cajas, se ven detrás de los fills transparentes y el diagrama parece correcto en el SVG editor, pero en el browser la línea atraviesa visualmente la caja. Causa: el orden de elementos SVG determina el z-order — los elementos dibujados después están "encima". Fix: dibujar todas las flechas **antes** de las cajas en el SVG (justo después del patrón de grilla). Además, para cada caja, agregar un `<rect>` opaco (`fill="#0f172a"`) detrás del `<rect>` con fill semitransparente para enmascarar las líneas que pasan por debajo.
|
|
160
|
+
|
|
161
|
+
**El viewBox del SVG es muy pequeño y las leyendas o etiquetas largas se recortan fuera del área visible**: si el diagrama tiene más componentes de los previstos, o los nombres son más largos que los del template, los elementos se solapan o quedan fuera del borde derecho/inferior del SVG. Causa: el viewBox por defecto `0 0 1000 680` es un punto de partida, no un límite flexible. Fix: calcular el espacio necesario antes de definir el viewBox. La leyenda debe quedar al menos 20px debajo del componente más bajo. Si el diagrama crece, extender el viewBox verticalmente: `0 0 1000 800` o más.
|
|
162
|
+
|
|
163
|
+
**Los textos centrados en componentes se desplazan cuando los nombres tienen acento o caracteres Unicode**: `text-anchor="middle"` en SVG calcula el centro basado en el ancho visual del texto, pero algunos navegadores calculan el ancho de manera diferente para caracteres no ASCII. Causa: SVG delega el cálculo de ancho de texto al motor de renderizado del navegador, que puede diferir entre Chrome, Firefox y Safari para caracteres especiales. Fix: para garantizar consistencia, usar nombres de componentes en inglés o en formato `Servicio: Nombre` donde el componente crítico es la palabra en inglés. Si se necesitan nombres en español, verificar el diagrama en Chrome y Firefox antes de publicarlo.
|
|
164
|
+
|
|
165
|
+
**El archivo HTML generado no renderiza correctamente al compartirlo por correo o subirlo a Confluence**: algunos sistemas de correo y wikis sanitizan el HTML y eliminan etiquetas `<svg>` o atributos inline de estilo. Causa: el HTML auto-contenido con SVG inline es correcto en el browser, pero los sanitizadores de contenido de Confluence/Outlook remueven elementos SVG por política de seguridad. Fix: para compartir en estas plataformas, renderizar el HTML en un browser y hacer captura de pantalla como PNG, o usar el comando de exportación de Confluence que soporta SVG como adjunto separado.
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="es">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>[NOMBRE DEL PROYECTO] — Diagrama de Arquitectura</title>
|
|
7
|
+
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap" rel="stylesheet">
|
|
8
|
+
<style>
|
|
9
|
+
* {
|
|
10
|
+
margin: 0;
|
|
11
|
+
padding: 0;
|
|
12
|
+
box-sizing: border-box;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
body {
|
|
16
|
+
font-family: 'JetBrains Mono', monospace;
|
|
17
|
+
background: #020617;
|
|
18
|
+
min-height: 100vh;
|
|
19
|
+
padding: 2rem;
|
|
20
|
+
color: white;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.container {
|
|
24
|
+
max-width: 1200px;
|
|
25
|
+
margin: 0 auto;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.header {
|
|
29
|
+
margin-bottom: 2rem;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.header-row {
|
|
33
|
+
display: flex;
|
|
34
|
+
align-items: center;
|
|
35
|
+
gap: 1rem;
|
|
36
|
+
margin-bottom: 0.5rem;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.pulse-dot {
|
|
40
|
+
width: 12px;
|
|
41
|
+
height: 12px;
|
|
42
|
+
background: #22d3ee;
|
|
43
|
+
border-radius: 50%;
|
|
44
|
+
animation: pulse 2s infinite;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
@keyframes pulse {
|
|
48
|
+
0%, 100% { opacity: 1; }
|
|
49
|
+
50% { opacity: 0.5; }
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
h1 {
|
|
53
|
+
font-size: 1.5rem;
|
|
54
|
+
font-weight: 700;
|
|
55
|
+
letter-spacing: -0.025em;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.subtitle {
|
|
59
|
+
color: #94a3b8;
|
|
60
|
+
font-size: 0.875rem;
|
|
61
|
+
margin-left: 1.75rem;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.diagram-container {
|
|
65
|
+
background: rgba(15, 23, 42, 0.5);
|
|
66
|
+
border-radius: 1rem;
|
|
67
|
+
border: 1px solid #1e293b;
|
|
68
|
+
padding: 1.5rem;
|
|
69
|
+
overflow-x: auto;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
svg {
|
|
73
|
+
width: 100%;
|
|
74
|
+
min-width: 900px;
|
|
75
|
+
display: block;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.cards {
|
|
79
|
+
display: grid;
|
|
80
|
+
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
|
|
81
|
+
gap: 1rem;
|
|
82
|
+
margin-top: 2rem;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.card {
|
|
86
|
+
background: rgba(15, 23, 42, 0.5);
|
|
87
|
+
border-radius: 0.75rem;
|
|
88
|
+
border: 1px solid #1e293b;
|
|
89
|
+
padding: 1.25rem;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.card-header {
|
|
93
|
+
display: flex;
|
|
94
|
+
align-items: center;
|
|
95
|
+
gap: 0.5rem;
|
|
96
|
+
margin-bottom: 0.75rem;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.card-dot {
|
|
100
|
+
width: 8px;
|
|
101
|
+
height: 8px;
|
|
102
|
+
border-radius: 50%;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.card-dot.cyan { background: #22d3ee; }
|
|
106
|
+
.card-dot.emerald { background: #34d399; }
|
|
107
|
+
.card-dot.violet { background: #a78bfa; }
|
|
108
|
+
.card-dot.amber { background: #fbbf24; }
|
|
109
|
+
.card-dot.rose { background: #fb7185; }
|
|
110
|
+
|
|
111
|
+
.card h3 {
|
|
112
|
+
font-size: 0.875rem;
|
|
113
|
+
font-weight: 600;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.card ul {
|
|
117
|
+
list-style: none;
|
|
118
|
+
color: #94a3b8;
|
|
119
|
+
font-size: 0.75rem;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
.card li {
|
|
123
|
+
margin-bottom: 0.375rem;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.footer {
|
|
127
|
+
text-align: center;
|
|
128
|
+
margin-top: 1.5rem;
|
|
129
|
+
color: #475569;
|
|
130
|
+
font-size: 0.75rem;
|
|
131
|
+
}
|
|
132
|
+
</style>
|
|
133
|
+
</head>
|
|
134
|
+
<body>
|
|
135
|
+
<div class="container">
|
|
136
|
+
<!-- Encabezado -->
|
|
137
|
+
<div class="header">
|
|
138
|
+
<div class="header-row">
|
|
139
|
+
<div class="pulse-dot"></div>
|
|
140
|
+
<h1>[NOMBRE DEL PROYECTO] — Arquitectura</h1>
|
|
141
|
+
</div>
|
|
142
|
+
<p class="subtitle">[Descripción del subtítulo]</p>
|
|
143
|
+
</div>
|
|
144
|
+
|
|
145
|
+
<!-- Diagrama principal -->
|
|
146
|
+
<div class="diagram-container">
|
|
147
|
+
<svg viewBox="0 0 1000 680">
|
|
148
|
+
<!-- Definiciones -->
|
|
149
|
+
<defs>
|
|
150
|
+
<marker id="arrowhead" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
|
151
|
+
<polygon points="0 0, 10 3.5, 0 7" fill="#64748b" />
|
|
152
|
+
</marker>
|
|
153
|
+
<pattern id="grid" width="40" height="40" patternUnits="userSpaceOnUse">
|
|
154
|
+
<path d="M 40 0 L 0 0 0 40" fill="none" stroke="#1e293b" stroke-width="0.5"/>
|
|
155
|
+
</pattern>
|
|
156
|
+
</defs>
|
|
157
|
+
|
|
158
|
+
<!-- Grilla de fondo -->
|
|
159
|
+
<rect width="100%" height="100%" fill="url(#grid)" />
|
|
160
|
+
|
|
161
|
+
<!-- ===============================================================
|
|
162
|
+
COMPONENTES — Copiar y personalizar estos patrones
|
|
163
|
+
=============================================================== -->
|
|
164
|
+
|
|
165
|
+
<!-- Componente externo/genérico -->
|
|
166
|
+
<rect x="30" y="280" width="100" height="50" rx="6" fill="rgba(30, 41, 59, 0.5)" stroke="#94a3b8" stroke-width="1.5"/>
|
|
167
|
+
<text x="80" y="300" fill="white" font-size="11" font-weight="600" text-anchor="middle">Usuarios</text>
|
|
168
|
+
<text x="80" y="316" fill="#94a3b8" font-size="9" text-anchor="middle">Navegador/Móvil</text>
|
|
169
|
+
|
|
170
|
+
<!-- Componente de seguridad -->
|
|
171
|
+
<rect x="30" y="80" width="100" height="60" rx="6" fill="rgba(136, 19, 55, 0.4)" stroke="#fb7185" stroke-width="1.5"/>
|
|
172
|
+
<text x="80" y="105" fill="white" font-size="11" font-weight="600" text-anchor="middle">Auth Provider</text>
|
|
173
|
+
<text x="80" y="121" fill="#94a3b8" font-size="9" text-anchor="middle">OAuth 2.0</text>
|
|
174
|
+
|
|
175
|
+
<!-- Límite de región/cloud -->
|
|
176
|
+
<rect x="160" y="40" width="820" height="620" rx="12" fill="rgba(251, 191, 36, 0.05)" stroke="#fbbf24" stroke-width="1" stroke-dasharray="8,4"/>
|
|
177
|
+
<text x="172" y="58" fill="#fbbf24" font-size="10" font-weight="600">Región Cloud</text>
|
|
178
|
+
|
|
179
|
+
<!-- Servicio cloud -->
|
|
180
|
+
<rect x="200" y="280" width="110" height="50" rx="6" fill="rgba(120, 53, 15, 0.3)" stroke="#fbbf24" stroke-width="1.5"/>
|
|
181
|
+
<text x="255" y="300" fill="white" font-size="11" font-weight="600" text-anchor="middle">CDN</text>
|
|
182
|
+
<text x="255" y="316" fill="#94a3b8" font-size="9" text-anchor="middle">CloudFront</text>
|
|
183
|
+
|
|
184
|
+
<!-- Backend -->
|
|
185
|
+
<rect x="510" y="280" width="110" height="50" rx="6" fill="rgba(6, 78, 59, 0.4)" stroke="#34d399" stroke-width="1.5"/>
|
|
186
|
+
<text x="565" y="300" fill="white" font-size="11" font-weight="600" text-anchor="middle">API Server</text>
|
|
187
|
+
<text x="565" y="316" fill="#94a3b8" font-size="9" text-anchor="middle">FastAPI :8000</text>
|
|
188
|
+
|
|
189
|
+
<!-- Base de datos -->
|
|
190
|
+
<rect x="700" y="280" width="120" height="50" rx="6" fill="rgba(76, 29, 149, 0.4)" stroke="#a78bfa" stroke-width="1.5"/>
|
|
191
|
+
<text x="760" y="300" fill="white" font-size="11" font-weight="600" text-anchor="middle">Base de datos</text>
|
|
192
|
+
<text x="760" y="316" fill="#94a3b8" font-size="9" text-anchor="middle">PostgreSQL</text>
|
|
193
|
+
|
|
194
|
+
<!-- Frontend -->
|
|
195
|
+
<rect x="200" y="520" width="200" height="110" rx="8" fill="rgba(8, 51, 68, 0.4)" stroke="#22d3ee" stroke-width="1.5"/>
|
|
196
|
+
<text x="300" y="545" fill="white" font-size="12" font-weight="600" text-anchor="middle">Frontend</text>
|
|
197
|
+
<text x="300" y="565" fill="#94a3b8" font-size="9" text-anchor="middle">React + TypeScript</text>
|
|
198
|
+
|
|
199
|
+
<!-- ===============================================================
|
|
200
|
+
FLECHAS
|
|
201
|
+
=============================================================== -->
|
|
202
|
+
<line x1="130" y1="305" x2="198" y2="305" stroke="#22d3ee" stroke-width="1.5" marker-end="url(#arrowhead)"/>
|
|
203
|
+
<text x="164" y="299" fill="#94a3b8" font-size="9" text-anchor="middle">HTTPS</text>
|
|
204
|
+
|
|
205
|
+
<line x1="310" y1="305" x2="508" y2="305" stroke="#34d399" stroke-width="1.5" marker-end="url(#arrowhead)"/>
|
|
206
|
+
<line x1="620" y1="305" x2="698" y2="305" stroke="#a78bfa" stroke-width="1.5" marker-end="url(#arrowhead)"/>
|
|
207
|
+
<text x="655" y="299" fill="#94a3b8" font-size="9">TLS</text>
|
|
208
|
+
|
|
209
|
+
<!-- ===============================================================
|
|
210
|
+
LEYENDA
|
|
211
|
+
=============================================================== -->
|
|
212
|
+
<text x="720" y="70" fill="white" font-size="10" font-weight="600">Leyenda</text>
|
|
213
|
+
|
|
214
|
+
<rect x="720" y="82" width="16" height="10" rx="2" fill="rgba(8, 51, 68, 0.4)" stroke="#22d3ee" stroke-width="1"/>
|
|
215
|
+
<text x="742" y="90" fill="#94a3b8" font-size="8">Frontend</text>
|
|
216
|
+
|
|
217
|
+
<rect x="720" y="98" width="16" height="10" rx="2" fill="rgba(6, 78, 59, 0.4)" stroke="#34d399" stroke-width="1"/>
|
|
218
|
+
<text x="742" y="106" fill="#94a3b8" font-size="8">Backend</text>
|
|
219
|
+
|
|
220
|
+
<rect x="720" y="114" width="16" height="10" rx="2" fill="rgba(120, 53, 15, 0.3)" stroke="#fbbf24" stroke-width="1"/>
|
|
221
|
+
<text x="742" y="122" fill="#94a3b8" font-size="8">Servicio Cloud</text>
|
|
222
|
+
|
|
223
|
+
<rect x="720" y="130" width="16" height="10" rx="2" fill="rgba(76, 29, 149, 0.4)" stroke="#a78bfa" stroke-width="1"/>
|
|
224
|
+
<text x="742" y="138" fill="#94a3b8" font-size="8">Base de datos</text>
|
|
225
|
+
|
|
226
|
+
<rect x="720" y="146" width="16" height="10" rx="2" fill="rgba(136, 19, 55, 0.4)" stroke="#fb7185" stroke-width="1"/>
|
|
227
|
+
<text x="742" y="154" fill="#94a3b8" font-size="8">Seguridad</text>
|
|
228
|
+
</svg>
|
|
229
|
+
</div>
|
|
230
|
+
|
|
231
|
+
<!-- Tarjetas informativas -->
|
|
232
|
+
<div class="cards">
|
|
233
|
+
<div class="card">
|
|
234
|
+
<div class="card-header">
|
|
235
|
+
<div class="card-dot rose"></div>
|
|
236
|
+
<h3>Seguridad</h3>
|
|
237
|
+
</div>
|
|
238
|
+
<ul>
|
|
239
|
+
<li>- Autenticación OAuth 2.0</li>
|
|
240
|
+
<li>- TLS en tránsito</li>
|
|
241
|
+
<li>- Cifrado en reposo</li>
|
|
242
|
+
</ul>
|
|
243
|
+
</div>
|
|
244
|
+
|
|
245
|
+
<div class="card">
|
|
246
|
+
<div class="card-header">
|
|
247
|
+
<div class="card-dot amber"></div>
|
|
248
|
+
<h3>Infraestructura</h3>
|
|
249
|
+
</div>
|
|
250
|
+
<ul>
|
|
251
|
+
<li>- CDN para activos estáticos</li>
|
|
252
|
+
<li>- Auto-scaling horizontal</li>
|
|
253
|
+
<li>- Monitoreo centralizado</li>
|
|
254
|
+
</ul>
|
|
255
|
+
</div>
|
|
256
|
+
|
|
257
|
+
<div class="card">
|
|
258
|
+
<div class="card-header">
|
|
259
|
+
<div class="card-dot violet"></div>
|
|
260
|
+
<h3>Datos</h3>
|
|
261
|
+
</div>
|
|
262
|
+
<ul>
|
|
263
|
+
<li>- PostgreSQL principal</li>
|
|
264
|
+
<li>- Backups automatizados</li>
|
|
265
|
+
<li>- Réplica de lectura</li>
|
|
266
|
+
</ul>
|
|
267
|
+
</div>
|
|
268
|
+
</div>
|
|
269
|
+
|
|
270
|
+
<!-- Pie -->
|
|
271
|
+
<p class="footer">
|
|
272
|
+
[Nombre del proyecto] — Generado con swl-ses
|
|
273
|
+
</p>
|
|
274
|
+
</div>
|
|
275
|
+
</body>
|
|
276
|
+
</html>
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: discutir-fase
|
|
3
|
+
description: Cuestionario adaptativo que se ejecuta antes de planear una fase de desarrollo. Extrae decisiones técnicas y de negocio del usuario, clasifica respuestas como "cerradas" (no negociables) o "abiertas" (decisión delegada al agente), y produce un archivo CONTEXTO.md que alimenta al planificador.
|
|
4
|
+
version: "1.0.0"
|
|
5
|
+
herramientasPermitidas: [Read, Write, Edit, Bash, Glob, Grep]
|
|
6
|
+
exclusiones:
|
|
7
|
+
- "No cargar si el usuario ya tiene un CONTEXTO.md poblado para la fase en curso — ir directo a `planear-fase`."
|
|
8
|
+
- "No cargar para tareas one-shot que no forman parte de un plan de fases (ej: 'arregla este bug')."
|
|
9
|
+
- "No cargar para diagnóstico rápido o exploración libre; en ese caso usar `workflow-claude-code` o simplemente conversar."
|
|
10
|
+
- "No cargar si la fase ya está en ejecución y se busca retomar el estado; usar `ejecutar-fase` + ESTADO.md."
|
|
11
|
+
evolvable: true # default para skill estandar
|
|
12
|
+
---
|
|
13
|
+
# Habilidad: Discutir Fase Antes de Planear
|
|
14
|
+
|
|
15
|
+
## Propósito
|
|
16
|
+
|
|
17
|
+
El planificador no puede crear un plan ejecutable sin contexto de decisiones.
|
|
18
|
+
Esta habilidad hace las preguntas correctas, en el orden correcto, para extraer
|
|
19
|
+
ese contexto antes de que se escriba una sola línea del PLAN.md. Evita el
|
|
20
|
+
antipatrón de planear con suposiciones implícitas que luego se contradicen.
|
|
21
|
+
|
|
22
|
+
## Cuándo activar
|
|
23
|
+
|
|
24
|
+
- Antes de ejecutar la habilidad `planear-fase`
|
|
25
|
+
- Cuando el usuario dice "vamos a la siguiente fase" sin dar detalles
|
|
26
|
+
- Cuando el HOJA-RUTA.md describe una fase de forma vaga
|
|
27
|
+
- Cuando hay decisiones de diseño no resueltas que bloquean el plan
|
|
28
|
+
|
|
29
|
+
## Cuándo NO cargar
|
|
30
|
+
|
|
31
|
+
- El CONTEXTO.md de la fase ya existe en `.planning/fases/` con decisiones cerradas — ir directo a `planear-fase`.
|
|
32
|
+
- El usuario pide hacer una tarea puntual sin ciclo de fases formal (no tiene HOJA-RUTA.md).
|
|
33
|
+
- La fase ya está en ejecución; las preguntas de esta habilidad son pre-planeación, no retoma. Usar `ejecutar-fase`.
|
|
34
|
+
- El usuario quiere diagnóstico rápido de qué sigue; no se necesita el cuestionario completo, basta revisar HOJA-RUTA.md.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Protocolo de entrevista adaptativa
|
|
39
|
+
|
|
40
|
+
### Regla 1 — Máximo 4 preguntas por mensaje
|
|
41
|
+
|
|
42
|
+
No bombardear al usuario. Agrupa preguntas relacionadas. Espera respuesta antes
|
|
43
|
+
de continuar con el siguiente bloque.
|
|
44
|
+
|
|
45
|
+
### Regla 2 — Clasifica cada respuesta al recibirla
|
|
46
|
+
|
|
47
|
+
| Tipo | Definición | Cómo registrar |
|
|
48
|
+
|------|-----------|---------------|
|
|
49
|
+
| CERRADA | Decisión no negociable del usuario | `[CERRADA]` en CONTEXTO.md |
|
|
50
|
+
| ABIERTA | El usuario delega la decisión al agente | `[ABIERTA - decisión del agente]` |
|
|
51
|
+
| PENDIENTE | Sin respuesta todavía | `[PENDIENTE - bloquea plan]` |
|
|
52
|
+
|
|
53
|
+
### Regla 3 — No avanzar con PENDIENTE en ítems críticos
|
|
54
|
+
|
|
55
|
+
Si una decisión es crítica para el plan y está marcada PENDIENTE, detente y
|
|
56
|
+
notifica explícitamente antes de proceder.
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Bloque 1 — Contexto de la fase (siempre preguntar)
|
|
61
|
+
|
|
62
|
+
1. ¿Cuál es el objetivo principal de esta fase en una oración?
|
|
63
|
+
2. ¿Qué debe existir y funcionar al finalizar esta fase para considerarla exitosa?
|
|
64
|
+
3. ¿Hay alguna restricción de tiempo (deadline, demo, sprint)?
|
|
65
|
+
4. ¿Alguna decisión tomada en fases anteriores afecta el alcance de esta?
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Bloque 2 — Decisiones técnicas (preguntar si aplica)
|
|
70
|
+
|
|
71
|
+
Preguntar solo si la fase involucra código nuevo o cambios de arquitectura:
|
|
72
|
+
|
|
73
|
+
5. ¿Se crean nuevas entidades de base de datos? ¿Cuáles?
|
|
74
|
+
6. ¿Se expone una nueva API pública o se modifican endpoints existentes?
|
|
75
|
+
7. ¿Hay integraciones con sistemas externos en esta fase?
|
|
76
|
+
8. ¿Se espera algún cambio en la autenticación o los permisos?
|
|
77
|
+
9. ¿Hay requerimientos de rendimiento específicos para esta fase?
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Bloque 3 — Calidad y proceso (preguntar si aplica)
|
|
82
|
+
|
|
83
|
+
Preguntar si el equipo tiene proceso definido o si la fase es crítica:
|
|
84
|
+
|
|
85
|
+
10. ¿Se requieren tests unitarios, de integración o ambos en esta fase?
|
|
86
|
+
11. ¿Hay features que requieren revisión de seguridad antes de merge?
|
|
87
|
+
12. ¿Se va a hacer deployment de esta fase de forma independiente o junto con otras?
|
|
88
|
+
13. ¿Hay features marcadas como "nice to have" que pueden salir del scope si hay tiempo?
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Bloque 4 — Dependencias y riesgos (siempre preguntar)
|
|
93
|
+
|
|
94
|
+
14. ¿Hay tareas en esta fase que dependen de trabajo de otro equipo o sistema externo?
|
|
95
|
+
15. ¿Hay algún riesgo técnico conocido que podría bloquear alguna tarea?
|
|
96
|
+
16. ¿Hay deuda técnica existente que DEBE resolverse antes o durante esta fase?
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Técnicas de extracción cuando las respuestas son vagas
|
|
101
|
+
|
|
102
|
+
### Si el usuario dice "como siempre" o "igual que antes"
|
|
103
|
+
Preguntar: "¿Puedes confirmar qué patrón específico seguimos? Quiero asegurarme
|
|
104
|
+
de documentarlo correctamente en el CONTEXTO.md."
|
|
105
|
+
|
|
106
|
+
### Si el usuario dice "lo que tú veas mejor"
|
|
107
|
+
Registrar como ABIERTA y anotar la decisión que tomará el agente con su
|
|
108
|
+
justificación en el CONTEXTO.md.
|
|
109
|
+
|
|
110
|
+
### Si el usuario da información contradictoria
|
|
111
|
+
Señalar la contradicción explícitamente: "Mencionaste X antes pero ahora Y.
|
|
112
|
+
¿Cuál aplica para esta fase?"
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## Plantilla de salida: `.planning/fases/0N-CONTEXTO.md`
|
|
117
|
+
|
|
118
|
+
```markdown
|
|
119
|
+
# CONTEXTO.md — Fase [N]: [Nombre]
|
|
120
|
+
**Fecha de discusión**: [fecha]
|
|
121
|
+
**Participantes**: [usuario, agente]
|
|
122
|
+
|
|
123
|
+
## Objetivo de la fase
|
|
124
|
+
[Respuesta del usuario a pregunta 1 y 2]
|
|
125
|
+
|
|
126
|
+
## Criterio de éxito
|
|
127
|
+
[Lo que debe existir y funcionar al terminar]
|
|
128
|
+
|
|
129
|
+
## Restricciones de tiempo
|
|
130
|
+
- Deadline: [fecha o "sin deadline definido"]
|
|
131
|
+
- Sprint: [número si aplica]
|
|
132
|
+
|
|
133
|
+
## Decisiones técnicas
|
|
134
|
+
|
|
135
|
+
| ID | Decisión | Tipo | Notas |
|
|
136
|
+
|-----|---------|------|-------|
|
|
137
|
+
| D-01 | [decisión] | CERRADA | [contexto] |
|
|
138
|
+
| D-02 | [decisión] | ABIERTA | [el agente decidirá X porque Y] |
|
|
139
|
+
| D-03 | [decisión] | PENDIENTE | [bloquea tarea T] |
|
|
140
|
+
|
|
141
|
+
## Alcance confirmado
|
|
142
|
+
### Incluido en esta fase
|
|
143
|
+
- Feature A
|
|
144
|
+
- Feature B
|
|
145
|
+
|
|
146
|
+
### Explícitamente excluido
|
|
147
|
+
- Feature C (pasa a siguiente fase)
|
|
148
|
+
|
|
149
|
+
## Dependencias externas
|
|
150
|
+
| Dependencia | Equipo/Sistema | Estado | Riesgo |
|
|
151
|
+
|------------|---------------|--------|--------|
|
|
152
|
+
| | | | |
|
|
153
|
+
|
|
154
|
+
## Riesgos identificados
|
|
155
|
+
| Riesgo | Probabilidad | Impacto | Mitigación |
|
|
156
|
+
|--------|-------------|---------|-----------|
|
|
157
|
+
| | | | |
|
|
158
|
+
|
|
159
|
+
## Deuda técnica a resolver
|
|
160
|
+
- [ ] [deuda 1] — obligatoria
|
|
161
|
+
- [ ] [deuda 2] — si hay tiempo
|
|
162
|
+
|
|
163
|
+
## Decisiones pendientes (bloqueos)
|
|
164
|
+
- [ ] [decisión] — necesaria antes de [tarea]
|
|
165
|
+
|
|
166
|
+
## Notas de la discusión
|
|
167
|
+
[Contexto adicional, cambios de opinión, razonamiento detrás de decisiones]
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## Gotchas / Errores comunes no obvios
|
|
173
|
+
|
|
174
|
+
- **Respuesta "como siempre" archivada sin verificar**: el usuario dice "igual que en la fase anterior" y el agente asume que el patrón aplica sin leer el CONTEXTO.md previo. Causa: confianza en el modelo mental sin verificación. Solución: siempre leer el CONTEXTO.md de la fase anterior antes de aceptar la respuesta.
|
|
175
|
+
- **Decisiones PENDIENTE que bloquean el plan ignoradas**: el agente avanza a `planear-fase` con ítems de los Bloques 1 o 4 en estado PENDIENTE. Causa: no se aplicó la Regla 3. Solución: verificar explícitamente que ningún ítem crítico quede PENDIENTE antes de cerrar la discusión.
|
|
176
|
+
- **CONTEXTO.md escrito sin confirmar criterio de éxito verificable**: el usuario da un objetivo vago ("mejorar rendimiento") y se registra sin cuestionarlo. Causa: el agente no aplica la prueba de observabilidad. Solución: pedir reformulación hasta que el criterio sea binario y observable.
|
|
177
|
+
- **Bloque 2 omitido cuando sí aplica**: si la fase incluye nuevas entidades de BD o endpoints pero el agente saltó el Bloque 2 por considerarlo "técnico". Causa: interpretación laxa de "preguntar si aplica". Solución: si hay código nuevo, el Bloque 2 siempre aplica.
|
|
178
|
+
|
|
179
|
+
## Checklist de cierre de discusión
|
|
180
|
+
|
|
181
|
+
Antes de pasar a `planear-fase`, verificar:
|
|
182
|
+
|
|
183
|
+
- [ ] El objetivo de la fase es una oración accionable (no "mejorar el sistema")
|
|
184
|
+
- [ ] El criterio de éxito es verificable (observable sin ambigüedad)
|
|
185
|
+
- [ ] No hay decisiones PENDIENTE en ítems de los Bloques 1 y 4
|
|
186
|
+
- [ ] Todas las decisiones ABIERTA tienen una nota de qué decidirá el agente
|
|
187
|
+
- [ ] Las features excluidas están documentadas explícitamente
|
|
188
|
+
- [ ] CONTEXTO.md guardado en `.planning/fases/`
|