@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,51 @@
|
|
|
1
|
+
name: Revisión de Seguridad — Claude Code
|
|
2
|
+
|
|
3
|
+
# Plantilla distribuida por swl-ses.
|
|
4
|
+
# Copiar este archivo a .github/workflows/ de tu proyecto.
|
|
5
|
+
# Para setup automatizado: /swl:configurar-ci init
|
|
6
|
+
#
|
|
7
|
+
# PREREQUISITO — configurar el secret CLAUDE_API_KEY en tu repositorio:
|
|
8
|
+
# GitHub → Settings → Secrets and variables → Actions → New repository secret
|
|
9
|
+
# Nombre: CLAUDE_API_KEY
|
|
10
|
+
# Valor: clave API de Anthropic (https://console.anthropic.com)
|
|
11
|
+
# La clave requiere permisos tanto para Claude API como para Claude Code.
|
|
12
|
+
#
|
|
13
|
+
# Referencia de la action oficial:
|
|
14
|
+
# https://github.com/anthropics/claude-code-security-review
|
|
15
|
+
#
|
|
16
|
+
# NOTA: los workflows de forks externos no reciben secrets por diseño de GitHub.
|
|
17
|
+
# La revisión de seguridad solo corre en PRs de ramas del mismo repositorio.
|
|
18
|
+
|
|
19
|
+
on:
|
|
20
|
+
pull_request:
|
|
21
|
+
branches: [main]
|
|
22
|
+
|
|
23
|
+
# Permisos mínimos: escribir comentarios en PRs y leer contenido del repo.
|
|
24
|
+
permissions:
|
|
25
|
+
pull-requests: write
|
|
26
|
+
contents: read
|
|
27
|
+
|
|
28
|
+
jobs:
|
|
29
|
+
security:
|
|
30
|
+
name: Análisis de seguridad con Claude
|
|
31
|
+
runs-on: ubuntu-latest
|
|
32
|
+
|
|
33
|
+
steps:
|
|
34
|
+
- uses: actions/checkout@v5
|
|
35
|
+
with:
|
|
36
|
+
# fetch-depth: 2 es requerido por la action para calcular el diff.
|
|
37
|
+
ref: ${{ github.event.pull_request.head.sha || github.sha }}
|
|
38
|
+
fetch-depth: 2
|
|
39
|
+
|
|
40
|
+
# Análisis semántico de seguridad sobre el diff del PR.
|
|
41
|
+
# Detecta: inyecciones SQL/OS, credenciales expuestas, auth débil,
|
|
42
|
+
# SSRF, XSS y las 10 categorías del OWASP Top 10.
|
|
43
|
+
# Comenta hallazgos directamente en el PR.
|
|
44
|
+
- uses: anthropics/claude-code-security-review@main
|
|
45
|
+
with:
|
|
46
|
+
claude-api-key: ${{ secrets.CLAUDE_API_KEY }}
|
|
47
|
+
comment-pr: true
|
|
48
|
+
upload-results: true
|
|
49
|
+
# Excluir directorios que no son código de producción.
|
|
50
|
+
# Ajustar según la estructura de tu proyecto.
|
|
51
|
+
# exclude-directories: "temp,docs,fixtures"
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json.schemastore.org/mcp-config.json",
|
|
3
|
+
"_comment": "Configuración MCP de MinerU para extracción de documentos. Se fusiona con .mcp.json del proyecto durante la instalación de SWL-SES.",
|
|
4
|
+
"mcpServers": {
|
|
5
|
+
"mineru": {
|
|
6
|
+
"command": "uvx",
|
|
7
|
+
"args": ["mineru-open-mcp"],
|
|
8
|
+
"env": {
|
|
9
|
+
"MINERU_API_TOKEN": ""
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
# ARCHITECTURE: Arquitectura Propuesta — [Nombre del Proyecto]
|
|
2
|
+
|
|
3
|
+
> Documento de diseño arquitectural. Define la estructura del sistema antes
|
|
4
|
+
> de escribir código. Las decisiones aquí deben estar respaldadas por ADRs
|
|
5
|
+
> para las más significativas.
|
|
6
|
+
> Autor: [nombre] | Fecha: YYYY-MM-DD | Estado: Borrador / Revisado / Aprobado
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Visión general
|
|
11
|
+
|
|
12
|
+
[2-3 párrafos describiendo la arquitectura en términos de alto nivel.
|
|
13
|
+
Qué tipo de sistema es (monolito modular, microservicios, serverless, etc.).
|
|
14
|
+
Por qué esta estructura es la correcta para este problema y equipo.]
|
|
15
|
+
|
|
16
|
+
**Estilo arquitectural**: [ej. Monolito modular con frontend SPA]
|
|
17
|
+
**Patrón principal**: [ej. Layered Architecture / Hexagonal / CQRS]
|
|
18
|
+
**Justificación**: [Por qué este estilo y no otro para este proyecto]
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Diagrama de contexto (Nivel 1 — C4)
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
26
|
+
│ Sistema: [Nombre] │
|
|
27
|
+
│ │
|
|
28
|
+
│ ┌──────────┐ HTTPS ┌──────────────────┐ │
|
|
29
|
+
│ │ Usuario │ ──────────► │ Frontend SPA │ │
|
|
30
|
+
│ │ │ ◄────────── │ (Angular) │ │
|
|
31
|
+
│ └──────────┘ └────────┬─────────┘ │
|
|
32
|
+
│ │ REST API │
|
|
33
|
+
│ ┌────────▼─────────┐ │
|
|
34
|
+
│ │ Backend API │ │
|
|
35
|
+
│ │ (FastAPI) │ │
|
|
36
|
+
│ └──┬────────────┬──┘ │
|
|
37
|
+
│ │ │ │
|
|
38
|
+
│ ┌──────────▼──┐ ┌──────▼──────────┐ │
|
|
39
|
+
│ │ PostgreSQL │ │ Redis (cache) │ │
|
|
40
|
+
│ │ (BD) │ │ │ │
|
|
41
|
+
│ └─────────────┘ └─────────────────┘ │
|
|
42
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
43
|
+
│
|
|
44
|
+
┌───────────────────┼───────────────────┐
|
|
45
|
+
│ │ │
|
|
46
|
+
┌──────▼──────┐ ┌─────────▼──────┐ ┌────────▼────────┐
|
|
47
|
+
│ [Servicio │ │ [API Externa │ │ [Servicio de │
|
|
48
|
+
│ Externo 1] │ │ ej. SAT CFDI] │ │ Email / SMS] │
|
|
49
|
+
└─────────────┘ └────────────────┘ └─────────────────┘
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
[Actualizar el diagrama con los componentes reales del proyecto]
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Diagrama de contenedores (Nivel 2 — C4)
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
┌─────────────────────────────────────────────────────────┐
|
|
60
|
+
│ Backend API │
|
|
61
|
+
│ │
|
|
62
|
+
│ ┌─────────────┐ ┌─────────────┐ ┌──────────────┐ │
|
|
63
|
+
│ │ Routers │──►│ Services │──►│ Repositories │ │
|
|
64
|
+
│ │ (endpoints) │ │ (lógica de │ │ (acceso a │ │
|
|
65
|
+
│ │ │◄──│ negocio) │◄──│ datos) │ │
|
|
66
|
+
│ └─────────────┘ └──────┬──────┘ └──────┬───────┘ │
|
|
67
|
+
│ │ │ │
|
|
68
|
+
│ ┌───────▼───────┐ ┌──────▼──────┐ │
|
|
69
|
+
│ │ Domain Models │ │ ORM │ │
|
|
70
|
+
│ │ (Pydantic) │ │ (SQLAlchemy)│ │
|
|
71
|
+
│ └───────────────┘ └─────────────┘ │
|
|
72
|
+
└─────────────────────────────────────────────────────────┘
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Módulos del sistema
|
|
78
|
+
|
|
79
|
+
### Módulo: [Nombre — ej. Autenticación]
|
|
80
|
+
|
|
81
|
+
**Responsabilidad**: [Qué problema resuelve este módulo y nada más]
|
|
82
|
+
**Interfaz pública**:
|
|
83
|
+
- `POST /auth/login` — obtener token JWT
|
|
84
|
+
- `POST /auth/refresh` — renovar token
|
|
85
|
+
- `POST /auth/logout` — invalidar token
|
|
86
|
+
- `AuthGuard` — guardia de Angular para rutas protegidas
|
|
87
|
+
|
|
88
|
+
**Lo que NO hace este módulo**:
|
|
89
|
+
- [Restricción explícita — qué responsabilidad NO tiene]
|
|
90
|
+
|
|
91
|
+
**Archivos principales**:
|
|
92
|
+
```
|
|
93
|
+
backend/app/
|
|
94
|
+
├── routers/auth.py
|
|
95
|
+
├── services/auth_service.py
|
|
96
|
+
├── models/usuario.py
|
|
97
|
+
└── schemas/auth.py
|
|
98
|
+
|
|
99
|
+
frontend/src/app/
|
|
100
|
+
├── core/guards/auth.guard.ts
|
|
101
|
+
└── features/auth/
|
|
102
|
+
├── login/
|
|
103
|
+
└── services/auth.service.ts
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
### Módulo: [Nombre — ej. Gestión de Facturas]
|
|
109
|
+
|
|
110
|
+
**Responsabilidad**:
|
|
111
|
+
**Interfaz pública**:
|
|
112
|
+
- `GET /facturas` — listar facturas del usuario
|
|
113
|
+
- `POST /facturas` — crear factura
|
|
114
|
+
- `GET /facturas/{id}` — detalle
|
|
115
|
+
- `PUT /facturas/{id}/timbrar` — enviar al PAC
|
|
116
|
+
|
|
117
|
+
**Lo que NO hace este módulo**:
|
|
118
|
+
-
|
|
119
|
+
|
|
120
|
+
**Archivos principales**:
|
|
121
|
+
```
|
|
122
|
+
backend/app/
|
|
123
|
+
├── routers/facturas.py
|
|
124
|
+
├── services/factura_service.py
|
|
125
|
+
├── models/factura.py
|
|
126
|
+
└── schemas/factura.py
|
|
127
|
+
|
|
128
|
+
frontend/src/app/features/facturas/
|
|
129
|
+
├── list/
|
|
130
|
+
├── form/
|
|
131
|
+
└── services/facturas.service.ts
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
### Módulo: [Nombre del tercer módulo]
|
|
137
|
+
|
|
138
|
+
**Responsabilidad**:
|
|
139
|
+
**Interfaz pública**:
|
|
140
|
+
-
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Flujos de datos principales
|
|
145
|
+
|
|
146
|
+
### Flujo 1: [ej. Creación de factura]
|
|
147
|
+
|
|
148
|
+
```
|
|
149
|
+
Usuario Frontend Backend API BD
|
|
150
|
+
│ │ │ │
|
|
151
|
+
│── Llena formulario ──►│ │ │
|
|
152
|
+
│ │── POST /facturas ───►│ │
|
|
153
|
+
│ │ │── Valida schema │
|
|
154
|
+
│ │ │── Crea registro ►│
|
|
155
|
+
│ │ │◄─ Retorna ID ────│
|
|
156
|
+
│ │◄── 201 { factura } ──│ │
|
|
157
|
+
│◄── Redirige al detalle│ │ │
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### Flujo 2: [ej. Autenticación con JWT]
|
|
161
|
+
|
|
162
|
+
```
|
|
163
|
+
Usuario Frontend Backend API Redis
|
|
164
|
+
│ │ │ │
|
|
165
|
+
│── Login (user/pass) ──►│ │ │
|
|
166
|
+
│ │── POST /auth/login ──►│ │
|
|
167
|
+
│ │ │── Verifica creds │
|
|
168
|
+
│ │ │── Genera JWT │
|
|
169
|
+
│ │◄── 200 { token } ────│ │
|
|
170
|
+
│ │── Guarda en storage │ │
|
|
171
|
+
│◄─ Redirige al dashboard│ │ │
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## Decisiones arquitecturales clave
|
|
177
|
+
|
|
178
|
+
| Decisión | Descripción | ADR |
|
|
179
|
+
|----------|-------------|-----|
|
|
180
|
+
| [Título de la decisión] | [Qué se decidió en una línea] | ADR-NNN |
|
|
181
|
+
| [Título de la decisión] | | ADR-NNN |
|
|
182
|
+
| [Título de la decisión] | | ADR-NNN |
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## Estrategia de autenticación y autorización
|
|
187
|
+
|
|
188
|
+
**Autenticación**: [ej. JWT con refresh tokens en httpOnly cookie]
|
|
189
|
+
**Autorización**: [ej. RBAC con roles: ADMIN, OPERADOR, LECTOR]
|
|
190
|
+
**Roles definidos**:
|
|
191
|
+
|
|
192
|
+
| Rol | Descripción | Permisos |
|
|
193
|
+
|-----|-------------|----------|
|
|
194
|
+
| [ADMIN] | [descripción] | [CRUD completo] |
|
|
195
|
+
| [OPERADOR] | [descripción] | [Crear y editar, no eliminar] |
|
|
196
|
+
| [LECTOR] | [descripción] | [Solo lectura] |
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## Estrategia de errores
|
|
201
|
+
|
|
202
|
+
| Tipo de error | HTTP Status | Formato de respuesta |
|
|
203
|
+
|---------------|-------------|---------------------|
|
|
204
|
+
| Validación de input | 422 | `{ detail: [{ loc, msg, type }] }` (Pydantic default) |
|
|
205
|
+
| No autenticado | 401 | `{ detail: "No autenticado" }` |
|
|
206
|
+
| Sin permisos | 403 | `{ detail: "Sin permisos para esta operación" }` |
|
|
207
|
+
| Recurso no encontrado | 404 | `{ detail: "Recurso no encontrado" }` |
|
|
208
|
+
| Error de negocio | 400 | `{ detail: "descripción del error de negocio" }` |
|
|
209
|
+
| Error interno | 500 | `{ detail: "Error interno del servidor" }` (sin exponer stack) |
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
## Checklist de arquitectura
|
|
214
|
+
|
|
215
|
+
- [ ] Cada módulo tiene responsabilidad claramente definida
|
|
216
|
+
- [ ] No hay dependencias circulares entre módulos
|
|
217
|
+
- [ ] Los flujos de datos están documentados para los casos principales
|
|
218
|
+
- [ ] La estrategia de auth cubre autenticación y autorización
|
|
219
|
+
- [ ] Las decisiones significativas tienen ADRs pendientes de redactar
|
|
220
|
+
- [ ] La arquitectura es verificable con los criterios definidos en HOJA-RUTA.md
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
# FEATURES: Investigación de Funcionalidades — [Nombre del Proyecto]
|
|
2
|
+
|
|
3
|
+
> Análisis técnico de cada feature antes de comprometerse a implementarla.
|
|
4
|
+
> El objetivo es estimar esfuerzo, identificar dependencias y anticipar riesgos
|
|
5
|
+
> ANTES de comenzar el desarrollo.
|
|
6
|
+
> Autor: [nombre] | Fecha: YYYY-MM-DD
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Cómo usar esta plantilla
|
|
11
|
+
|
|
12
|
+
Para cada feature:
|
|
13
|
+
1. Describir qué debe hacer (desde la perspectiva del usuario)
|
|
14
|
+
2. Investigar cómo se implementa técnicamente
|
|
15
|
+
3. Estimar la complejidad con base en la investigación, no en intuición
|
|
16
|
+
4. Identificar dependencias bloqueantes
|
|
17
|
+
5. Documentar riesgos técnicos específicos
|
|
18
|
+
|
|
19
|
+
Escala de complejidad:
|
|
20
|
+
- **S** (Small): <= 1 día de desarrollo
|
|
21
|
+
- **M** (Medium): 2-4 días
|
|
22
|
+
- **L** (Large): 1-2 semanas
|
|
23
|
+
- **XL** (Extra Large): > 2 semanas — candidata a dividir en sub-features
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Feature 1: [Nombre de la feature]
|
|
28
|
+
|
|
29
|
+
**Requisitos que implementa**: REQ-001, REQ-002
|
|
30
|
+
**Módulo**: [Nombre del módulo del sistema]
|
|
31
|
+
|
|
32
|
+
### Descripción funcional
|
|
33
|
+
[Qué hace esta feature desde la perspectiva del usuario final.
|
|
34
|
+
Flujo happy path en 3-5 pasos.]
|
|
35
|
+
|
|
36
|
+
### Análisis técnico
|
|
37
|
+
|
|
38
|
+
**Capa backend**:
|
|
39
|
+
[Qué endpoints se necesitan. Qué modelos y tablas se crean o modifican.
|
|
40
|
+
Qué lógica de negocio no trivial tiene. Operaciones async, jobs, etc.]
|
|
41
|
+
|
|
42
|
+
**Capa frontend**:
|
|
43
|
+
[Qué componentes. Qué formularios. Qué integración de API.
|
|
44
|
+
State management necesario.]
|
|
45
|
+
|
|
46
|
+
**Integraciones externas**:
|
|
47
|
+
[APIs de terceros, servicios externos, webhooks, etc.]
|
|
48
|
+
|
|
49
|
+
**Cambios a BD**:
|
|
50
|
+
[Tablas nuevas, columnas nuevas, índices, constraints.]
|
|
51
|
+
|
|
52
|
+
### Complejidad estimada
|
|
53
|
+
|
|
54
|
+
| Componente | Estimación | Justificación |
|
|
55
|
+
|-----------|------------|---------------|
|
|
56
|
+
| Backend API | [S/M/L/XL] | [por qué] |
|
|
57
|
+
| Frontend UI | [S/M/L/XL] | [por qué] |
|
|
58
|
+
| Integración externa | [S/M/L/XL / N/A] | [por qué] |
|
|
59
|
+
| Tests | [S/M/L/XL] | [por qué] |
|
|
60
|
+
| **Total feature** | **[S/M/L/XL]** | |
|
|
61
|
+
|
|
62
|
+
### Dependencias
|
|
63
|
+
|
|
64
|
+
| Dependencia | Tipo | Estado | Bloqueante |
|
|
65
|
+
|-------------|------|--------|------------|
|
|
66
|
+
| [Feature o componente que debe estar listo primero] | Interna / Externa | Disponible / Pendiente | Sí / No |
|
|
67
|
+
| [Librería o servicio externo necesario] | Externa | | |
|
|
68
|
+
|
|
69
|
+
### Riesgos técnicos
|
|
70
|
+
|
|
71
|
+
| Riesgo | Probabilidad | Impacto | Mitigación |
|
|
72
|
+
|--------|-------------|---------|------------|
|
|
73
|
+
| [Qué puede salir mal técnicamente] | Alta/Media/Baja | Alto/Medio/Bajo | [Cómo prevenirlo o manejarlo] |
|
|
74
|
+
|
|
75
|
+
### Prototipo / PoC necesario
|
|
76
|
+
|
|
77
|
+
[ ] No — suficientemente conocida para implementar directamente
|
|
78
|
+
[ ] Sí — necesita spike de [N días] para validar: [qué se necesita validar]
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Feature 2: [Nombre de la feature]
|
|
83
|
+
|
|
84
|
+
**Requisitos que implementa**: REQ-0XX
|
|
85
|
+
**Módulo**:
|
|
86
|
+
|
|
87
|
+
### Descripción funcional
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
### Análisis técnico
|
|
91
|
+
|
|
92
|
+
**Capa backend**:
|
|
93
|
+
|
|
94
|
+
**Capa frontend**:
|
|
95
|
+
|
|
96
|
+
**Integraciones externas**:
|
|
97
|
+
|
|
98
|
+
**Cambios a BD**:
|
|
99
|
+
|
|
100
|
+
### Complejidad estimada
|
|
101
|
+
|
|
102
|
+
| Componente | Estimación | Justificación |
|
|
103
|
+
|-----------|------------|---------------|
|
|
104
|
+
| Backend API | | |
|
|
105
|
+
| Frontend UI | | |
|
|
106
|
+
| Tests | | |
|
|
107
|
+
| **Total feature** | | |
|
|
108
|
+
|
|
109
|
+
### Dependencias
|
|
110
|
+
|
|
111
|
+
| Dependencia | Tipo | Estado | Bloqueante |
|
|
112
|
+
|-------------|------|--------|------------|
|
|
113
|
+
| | | | |
|
|
114
|
+
|
|
115
|
+
### Riesgos técnicos
|
|
116
|
+
|
|
117
|
+
| Riesgo | Probabilidad | Impacto | Mitigación |
|
|
118
|
+
|--------|-------------|---------|------------|
|
|
119
|
+
| | | | |
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Feature 3: [Nombre de la feature]
|
|
124
|
+
|
|
125
|
+
**Requisitos que implementa**:
|
|
126
|
+
**Módulo**:
|
|
127
|
+
|
|
128
|
+
### Descripción funcional
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
### Análisis técnico
|
|
132
|
+
|
|
133
|
+
**Capa backend**:
|
|
134
|
+
|
|
135
|
+
**Capa frontend**:
|
|
136
|
+
|
|
137
|
+
**Cambios a BD**:
|
|
138
|
+
|
|
139
|
+
### Complejidad estimada
|
|
140
|
+
|
|
141
|
+
| Componente | Estimación | Justificación |
|
|
142
|
+
|-----------|------------|---------------|
|
|
143
|
+
| **Total feature** | | |
|
|
144
|
+
|
|
145
|
+
### Dependencias
|
|
146
|
+
|
|
147
|
+
### Riesgos técnicos
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## Resumen de estimaciones
|
|
152
|
+
|
|
153
|
+
| Feature | Complejidad | Dependencias bloqueantes | PoC necesario |
|
|
154
|
+
|---------|-------------|--------------------------|---------------|
|
|
155
|
+
| Feature 1: [nombre] | [S/M/L/XL] | [ninguna / sí: X] | No / Sí |
|
|
156
|
+
| Feature 2: [nombre] | | | |
|
|
157
|
+
| Feature 3: [nombre] | | | |
|
|
158
|
+
|
|
159
|
+
**Esfuerzo total estimado**: [N semanas con [M] desarrolladores]
|
|
160
|
+
**Features de alto riesgo que necesitan atención temprana**: [lista]
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## Orden de implementación recomendado
|
|
165
|
+
|
|
166
|
+
[Propuesta de orden de implementación considerando dependencias, riesgo y valor.
|
|
167
|
+
Justificar por qué este orden y no otro.]
|
|
168
|
+
|
|
169
|
+
1. [Feature] — base para las siguientes / mayor riesgo técnico / mayor valor
|
|
170
|
+
2. [Feature] — depende de #1 / desbloquea features de frontend
|
|
171
|
+
3. [Feature]
|
|
172
|
+
4. [Feature]
|
|
173
|
+
|
|
174
|
+
**Criterio de ordenamiento**: [qué principio guía el orden — ej. "riesgo primero",
|
|
175
|
+
"valor al usuario antes posible", "dependencias técnicas"]
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
# SUMMARY: Resumen Ejecutivo de Investigación — [Nombre del Proyecto]
|
|
2
|
+
|
|
3
|
+
> Este documento consolida los hallazgos de toda la investigación técnica y
|
|
4
|
+
> presenta las recomendaciones finales para tomar decisiones informadas.
|
|
5
|
+
> Es el punto de entrada para el planificador y el equipo.
|
|
6
|
+
> Autor: [nombre] | Fecha: YYYY-MM-DD | Estado: Borrador / Final
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## TL;DR — Lo más importante
|
|
11
|
+
|
|
12
|
+
[3-5 bullets con los hallazgos más críticos y las recomendaciones clave.
|
|
13
|
+
Alguien que solo lea esto debe poder tomar decisiones informadas.]
|
|
14
|
+
|
|
15
|
+
- **Stack recomendado**: [tecnologías principales] — madurez probada, equipo familiarizado.
|
|
16
|
+
- **Mayor riesgo técnico**: [descripción en una línea] — mitigación disponible.
|
|
17
|
+
- **Feature más compleja**: [nombre] — requiere spike de [N] días antes de comprometerse.
|
|
18
|
+
- **Decisión más urgente**: [qué debe decidirse antes de empezar a codificar].
|
|
19
|
+
- **Estimación total**: [N] semanas con [M] desarrolladores en [P] fases.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Stack tecnológico — Decisión final
|
|
24
|
+
|
|
25
|
+
| Capa | Tecnología elegida | Confianza | Alternativa descartada |
|
|
26
|
+
|------|-------------------|-----------|------------------------|
|
|
27
|
+
| Backend | [ej. FastAPI 0.111 + Python 3.12] | Alta | [Django — overhead para API-only] |
|
|
28
|
+
| Base de datos | [ej. PostgreSQL 16] | Alta | [MySQL — menor soporte para JSONB] |
|
|
29
|
+
| Frontend | [ej. Angular 18] | Alta | [React — consistencia con stack actual] |
|
|
30
|
+
| Cache | [ej. Redis 7] | Alta | [Memcached — estructuras de datos limitadas] |
|
|
31
|
+
| Infraestructura | [ej. Docker + GCP Cloud Run] | Media | [VMs — mayor mantenimiento operativo] |
|
|
32
|
+
|
|
33
|
+
**Ver análisis detallado**: `research/STACK.md`
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Análisis de complejidad de features
|
|
38
|
+
|
|
39
|
+
### Features de alta prioridad (P0-P1)
|
|
40
|
+
|
|
41
|
+
| Feature | Complejidad | Esfuerzo estimado | Riesgo principal |
|
|
42
|
+
|---------|-------------|-------------------|-----------------|
|
|
43
|
+
| [Nombre] | [S/M/L/XL] | [N días] | [descripción del riesgo] |
|
|
44
|
+
| [Nombre] | | | |
|
|
45
|
+
| [Nombre] | | | |
|
|
46
|
+
|
|
47
|
+
### Features de media-baja prioridad (P2-P3)
|
|
48
|
+
|
|
49
|
+
| Feature | Complejidad | Esfuerzo estimado | Fase sugerida |
|
|
50
|
+
|---------|-------------|-------------------|---------------|
|
|
51
|
+
| [Nombre] | | | Fase [N] |
|
|
52
|
+
| [Nombre] | | | Fase [N] |
|
|
53
|
+
|
|
54
|
+
**Ver análisis detallado**: `research/FUNCIONALIDADES.md`
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Arquitectura — Resumen de decisiones
|
|
59
|
+
|
|
60
|
+
**Estilo adoptado**: [ej. Monolito modular con separación de capas + SPA Angular]
|
|
61
|
+
|
|
62
|
+
**Decisiones más importantes**:
|
|
63
|
+
|
|
64
|
+
1. **[Decisión 1]**: [Qué se decide y por qué — 2 líneas máximo]
|
|
65
|
+
2. **[Decisión 2]**: [Qué se decide y por qué]
|
|
66
|
+
3. **[Decisión 3]**: [Qué se decide y por qué]
|
|
67
|
+
|
|
68
|
+
**ADRs a redactar** (en orden de prioridad):
|
|
69
|
+
- [ ] ADR-001: [Título de la decisión]
|
|
70
|
+
- [ ] ADR-002: [Título]
|
|
71
|
+
- [ ] ADR-003: [Título]
|
|
72
|
+
|
|
73
|
+
**Ver arquitectura detallada**: `research/ARQUITECTURA.md`
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Riesgos identificados
|
|
78
|
+
|
|
79
|
+
| # | Riesgo | Severidad | Mitigación recomendada |
|
|
80
|
+
|---|--------|-----------|------------------------|
|
|
81
|
+
| R1 | [Riesgo técnico específico] | Alta | [Acción concreta] |
|
|
82
|
+
| R2 | [Riesgo de integración] | Alta | [Acción concreta] |
|
|
83
|
+
| R3 | [Riesgo de estimación — feature puede ser más compleja] | Media | [Spike de N días primero] |
|
|
84
|
+
| R4 | [Riesgo de dependencia externa] | Media | [Plan B] |
|
|
85
|
+
| R5 | [Riesgo de equipo — conocimiento del stack] | Baja | [Capacitación / pair programming] |
|
|
86
|
+
|
|
87
|
+
**Ver catálogo de trampas**: `research/TRAMPAS.md`
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Estimación de esfuerzo total
|
|
92
|
+
|
|
93
|
+
**Metodología de estimación**: [T-shirt sizing / Story points / días ideales]
|
|
94
|
+
|
|
95
|
+
| Fase | Contenido | Esfuerzo estimado | Supuestos |
|
|
96
|
+
|------|-----------|-------------------|-----------|
|
|
97
|
+
| Fase 1 | [Qué features incluye] | [N semanas] | [Supuesto de estimación] |
|
|
98
|
+
| Fase 2 | | | |
|
|
99
|
+
| Fase 3 | | | |
|
|
100
|
+
| **Total** | | **[N] semanas** | |
|
|
101
|
+
|
|
102
|
+
**Con [M] desarrolladores**: [N/M semanas en paralelo ideal]
|
|
103
|
+
|
|
104
|
+
**Margen de contingencia recomendado**: +20% sobre el estimado base.
|
|
105
|
+
|
|
106
|
+
**Incertidumbre**: [Alta/Media/Baja]
|
|
107
|
+
- Alta: hay features con tecnología no conocida por el equipo o integraciones no exploradas
|
|
108
|
+
- Media: stack conocido, pero hay 1-2 integraciones que necesitan spike
|
|
109
|
+
- Baja: stack dominado, todas las integraciones son conocidas
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## Preguntas que deben resolverse antes de iniciar
|
|
114
|
+
|
|
115
|
+
[Preguntas cuya respuesta cambia significativamente el diseño o el alcance.
|
|
116
|
+
Si no se resuelven antes de codificar, se acumula deuda de decisión.]
|
|
117
|
+
|
|
118
|
+
| # | Pregunta | Impacto si no se responde | Quién decide | Urgencia |
|
|
119
|
+
|---|----------|--------------------------|-------------|----------|
|
|
120
|
+
| P1 | [Pregunta técnica o de negocio específica] | [Qué parte del diseño queda bloqueada] | [Nombre/Rol] | Alta |
|
|
121
|
+
| P2 | | | | Alta |
|
|
122
|
+
| P3 | | | | Media |
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Recomendaciones para el planificador
|
|
127
|
+
|
|
128
|
+
[Recomendaciones específicas sobre cómo planificar la ejecución, basadas
|
|
129
|
+
en los hallazgos de la investigación.]
|
|
130
|
+
|
|
131
|
+
1. **Iniciar con spike técnico de [N] días** para validar [la integración X / la tecnología Y]
|
|
132
|
+
antes de comprometer el equipo a la estimación completa.
|
|
133
|
+
|
|
134
|
+
2. **Feature [nombre] es el camino crítico** — cualquier retraso en esta feature
|
|
135
|
+
retrasa todo lo demás. Debe iniciar en la Fase 1 sin importar qué.
|
|
136
|
+
|
|
137
|
+
3. **Contratar / capacitar en [tecnología]** antes de la Fase [N] — el equipo
|
|
138
|
+
actual no tiene experiencia suficiente con [tecnología específica].
|
|
139
|
+
|
|
140
|
+
4. **No iniciar el frontend hasta que [condición]** — el API contract debe estar
|
|
141
|
+
estable antes de invertir en componentes UI.
|
|
142
|
+
|
|
143
|
+
5. **Revisar este SUMMARY con el cliente** antes de iniciar — los supuestos de
|
|
144
|
+
[supuesto X] deben ser validados por el stakeholder.
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## Documentos de investigación completos
|
|
149
|
+
|
|
150
|
+
| Documento | Descripción | Estado |
|
|
151
|
+
|-----------|-------------|--------|
|
|
152
|
+
| `research/STACK.md` | Evaluación detallada de tecnologías | Completo / Pendiente |
|
|
153
|
+
| `research/FUNCIONALIDADES.md` | Análisis de complejidad por feature | Completo / Pendiente |
|
|
154
|
+
| `research/ARQUITECTURA.md` | Arquitectura propuesta con diagramas | Completo / Pendiente |
|
|
155
|
+
| `research/TRAMPAS.md` | Trampas y anti-patrones del stack | Completo / Pendiente |
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## Próximos pasos recomendados
|
|
160
|
+
|
|
161
|
+
1. [ ] Aprobar (o ajustar) el stack tecnológico — responsable: [nombre], fecha límite: YYYY-MM-DD
|
|
162
|
+
2. [ ] Responder preguntas abiertas P1 y P2 — responsable: [nombre], fecha límite: YYYY-MM-DD
|
|
163
|
+
3. [ ] Ejecutar spike de [N] días para validar [integración X] — responsable: [nombre]
|
|
164
|
+
4. [ ] Redactar ADR-001 a ADR-003 — responsable: [nombre]
|
|
165
|
+
5. [ ] Crear HOJA-RUTA.md con fases basadas en estas estimaciones — responsable: planificador
|