@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,215 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: estructura-proyecto-claude
|
|
3
|
+
description: >
|
|
4
|
+
Genera y valida estructuras de proyecto Claude-ready según las guías oficiales
|
|
5
|
+
"Claude Code Project Structure" y "Claude Code Workflow Cheatsheet".
|
|
6
|
+
Cargar al inicializar proyecto nuevo, migrar proyecto existente al sistema SWL,
|
|
7
|
+
auditar estructura Claude-ready, agregar extensiones (commands, skills, agents,
|
|
8
|
+
hooks, plugins), o configurar MCP. Cubre arquitectura de 4 capas, jerarquía
|
|
9
|
+
de memoria, 6 tipos de extensión, 27 hook events, frontmatter de skills/agents/commands
|
|
10
|
+
y settings avanzados.
|
|
11
|
+
version: "1.0.0"
|
|
12
|
+
herramientasPermitidas: [Read, Write, Edit, Bash, Glob, Grep]
|
|
13
|
+
exclusiones:
|
|
14
|
+
- "No cargar para iniciar un proyecto desde cero — ese flujo usa `/swl:nuevo-proyecto` que incluye entrevista de contexto antes de generar la estructura; este skill genera estructura pero no recoge requisitos de negocio."
|
|
15
|
+
- "No cargar para agregar o actualizar un agente o skill específico dentro de un proyecto ya estructurado — eso es trabajo directo sobre el frontmatter del componente; cargar este skill solo cuando se auditea o crea la estructura completa del proyecto."
|
|
16
|
+
- "No cargar para configurar permisos de tools individuales en un agente — `seguridad-agentes` cubre la decisión de permisos; este skill cubre la estructura del proyecto, no la política de permisos de cada agente."
|
|
17
|
+
- "No cargar solo para leer la documentación de un tipo de extensión Claude Code — la guía oficial vía Context7 MCP es más actualizada para detalles de API específicos de extensiones."
|
|
18
|
+
evolvable: true # default para skill estandar
|
|
19
|
+
---
|
|
20
|
+
# Estructura de Proyecto Claude-ready
|
|
21
|
+
|
|
22
|
+
Fuentes oficiales:
|
|
23
|
+
- `referencias/Claude Code Project Structure.jpg`
|
|
24
|
+
- `referencias/Claude Code WorkFlow Cheatsheet.jpg`
|
|
25
|
+
- https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview
|
|
26
|
+
|
|
27
|
+
## Cuándo cargar esta skill
|
|
28
|
+
|
|
29
|
+
- Se inicializa un proyecto nuevo (`/swl:nuevo-proyecto`)
|
|
30
|
+
- Se migra un proyecto existente al sistema SWL
|
|
31
|
+
- Se audita si un proyecto tiene estructura Claude-ready correcta
|
|
32
|
+
- Se agregan extensiones (commands, skills, agents, hooks, plugins)
|
|
33
|
+
- Se configura MCP para un proyecto
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Estructura base oficial
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
mi_proyecto/
|
|
41
|
+
+-- CLAUDE.md # Fuente de verdad del proyecto (L1)
|
|
42
|
+
+-- .claude/
|
|
43
|
+
| +-- settings.json # Permisos, hooks y context rules
|
|
44
|
+
| +-- settings.local.json # Config local (NUNCA commitear)
|
|
45
|
+
| +-- commands/ # Slash commands del proyecto
|
|
46
|
+
| +-- skills/ # Módulos de capacidad (L2)
|
|
47
|
+
| | +-- nombre-skill/
|
|
48
|
+
| | +-- SKILL.md
|
|
49
|
+
| | +-- scripts/, references/, assets/
|
|
50
|
+
| +-- agents/ # Subagentes del proyecto (L4)
|
|
51
|
+
| +-- hooks/ # Automatizaciones event-driven (L3)
|
|
52
|
+
| +-- rules/ # Reglas con scope por paths
|
|
53
|
+
| +-- plugins/ # Plugins distribuibles
|
|
54
|
+
+-- .planning/ # Estado de planificación SWL
|
|
55
|
+
| +-- PROYECTO.md, REQUISITOS.md, HOJA-RUTA.md, ESTADO.md
|
|
56
|
+
| +-- research/
|
|
57
|
+
+-- .mcp.json # Configuracion de servidores MCP
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Arquitectura de 4 capas
|
|
63
|
+
|
|
64
|
+
| Capa | Componente | Propósito |
|
|
65
|
+
|------|-----------|-----------|
|
|
66
|
+
| **L1** | **CLAUDE.md** | Contexto persistente — cargado SIEMPRE al inicio |
|
|
67
|
+
| **L2** | **Skills** | Conocimiento versionado — cargados por coincidencia |
|
|
68
|
+
| **L3** | **Hooks** | Seguridad y automatización — event-driven |
|
|
69
|
+
| **L4** | **Agents** | Subagentes con contexto propio — ejecución aislada |
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Jerarquía de memoria CLAUDE.md
|
|
74
|
+
|
|
75
|
+
| Scope | Path | Aplica a |
|
|
76
|
+
|-------|------|----------|
|
|
77
|
+
| **Managed Policy** | Sistema | Todos los usuarios org |
|
|
78
|
+
| **User** | `~/.claude/CLAUDE.md` | Todos tus proyectos |
|
|
79
|
+
| **Project** | `./CLAUDE.md` | Proyecto (repo) |
|
|
80
|
+
| **Subdirectory** | `packages/frontend/CLAUDE.md` | Paquete del monorepo |
|
|
81
|
+
|
|
82
|
+
### Comportamiento de carga
|
|
83
|
+
|
|
84
|
+
- **Ancestor (ARRIBA)**: al inicio, carga TODOS los CLAUDE.md desde cwd hasta la raíz del sistema de archivos — siempre se cargan
|
|
85
|
+
- **Descendant (ABAJO)**: lazy — solo carga cuando Claude navega a un subdirectorio
|
|
86
|
+
- **Siblings**: NUNCA se cargan entre sí
|
|
87
|
+
- Solo las **primeras 200 líneas** de cada CLAUDE.md se inyectan al prompt del sistema
|
|
88
|
+
|
|
89
|
+
**Reglas clave**: Menos de 200 líneas por CLAUDE.md. Subdirectorios agregan, NUNCA sobreescriben.
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## 6 tipos de extensión
|
|
94
|
+
|
|
95
|
+
| Tipo | Activación | Ubicación |
|
|
96
|
+
|------|-----------|-----------|
|
|
97
|
+
| **Skills** | Auto-activación | `.claude/skills/` |
|
|
98
|
+
| **Commands** | Manual (`/comando`) | `.claude/commands/` |
|
|
99
|
+
| **Subagents** | Spawn por orquestador | `.claude/agents/` |
|
|
100
|
+
| **Hooks** | Event-driven | `settings.json` hooks |
|
|
101
|
+
| **MCP Servers** | Siempre disponibles | `.mcp.json` |
|
|
102
|
+
| **Plugins** | Instalación | `.claude/plugins/` |
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Anatomía de una skill — Tres niveles de carga
|
|
107
|
+
|
|
108
|
+
| Nivel | Qué carga | Cuándo | Costo |
|
|
109
|
+
|-------|-----------|--------|-------|
|
|
110
|
+
| **Level 1** | Frontmatter (name + description) | Siempre | ~100 tokens |
|
|
111
|
+
| **Level 2** | Cuerpo de SKILL.md | Al activarse | <5k tokens |
|
|
112
|
+
| **Level 3** | scripts/, references/, assets/ | Bajo demanda | Sin límite |
|
|
113
|
+
|
|
114
|
+
### Frontmatter completo de SKILL.md
|
|
115
|
+
|
|
116
|
+
```yaml
|
|
117
|
+
---
|
|
118
|
+
name: nombre-skill # kebab-case, max 64 chars
|
|
119
|
+
description: > # max 1024 chars — QUÉ + CUÁNDO
|
|
120
|
+
Describe qué hace y cuándo Claude debe auto-activarla.
|
|
121
|
+
allowed-tools: ["Read", "Grep", "Glob"]
|
|
122
|
+
paths:
|
|
123
|
+
- "src/api/**/*.ts"
|
|
124
|
+
context: fork # fork = subagente aislado
|
|
125
|
+
---
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Ver referencia completa en [recursos/frontmatter-y-hooks-referencia.md](recursos/frontmatter-y-hooks-referencia.md).
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Hook Events (14 críticos de 27 oficiales)
|
|
133
|
+
|
|
134
|
+
| Evento | Cuándo se dispara | Uso típico |
|
|
135
|
+
|--------|-------------------|-----------|
|
|
136
|
+
| **PreToolUse** | Antes de ejecutar herramienta | Bloquear ops inseguras |
|
|
137
|
+
| **PostToolUse** | Después de ejecutar herramienta | Auto-lint, format |
|
|
138
|
+
| **SessionStart** | Al iniciar sesión | Cargar contexto |
|
|
139
|
+
| **Stop** | Al completar respuesta | Verificar tarea |
|
|
140
|
+
| **PreCompact** | Antes de compactar | Salvar estado crítico |
|
|
141
|
+
| **PostCompact** | Después de compactar | Re-inyectar contexto |
|
|
142
|
+
| **Notification** | Claude espera input | Alertas desktop |
|
|
143
|
+
|
|
144
|
+
Los 20 eventos restantes, frontmatter de agents (16 campos) y commands (13 campos),
|
|
145
|
+
opciones avanzadas de hooks y orden de resolución en
|
|
146
|
+
[recursos/frontmatter-y-hooks-referencia.md](recursos/frontmatter-y-hooks-referencia.md).
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## 7 secciones obligatorias de CLAUDE.md
|
|
151
|
+
|
|
152
|
+
| # | Sección | Contenido |
|
|
153
|
+
|---|---------|-----------|
|
|
154
|
+
| 1 | **Tech Stack** | Lenguaje, framework, BD, herramientas con versiones |
|
|
155
|
+
| 2 | **Conventions** | Estilo, tipo hints, formato, imports |
|
|
156
|
+
| 3 | **Architecture** | Directorios clave y qué contiene cada uno |
|
|
157
|
+
| 4 | **Security** | No secretos, validación, queries parametrizadas |
|
|
158
|
+
| 5 | **Testing** | Framework de tests, cómo correr, cobertura mínima |
|
|
159
|
+
| 6 | **Git Workflow** | Branch strategy, commit format, PR rules |
|
|
160
|
+
| 7 | **Common Workflows** | Comandos de build, test, deploy, dev server |
|
|
161
|
+
|
|
162
|
+
Ver template completo en [recursos/claude-md-template.md](recursos/claude-md-template.md).
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## Gestión de contexto
|
|
167
|
+
|
|
168
|
+
| Rango | Accion |
|
|
169
|
+
|-------|--------|
|
|
170
|
+
| **0-40%** | Trabajar normalmente |
|
|
171
|
+
| **40-70%** | Monitorear uso de contexto |
|
|
172
|
+
| **70-90%** | Ejecutar `/compact` |
|
|
173
|
+
| **90-100%** | Detener, compactar, o nueva sesion |
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## Reglas de generación
|
|
178
|
+
|
|
179
|
+
1. **No sobrescribir sin confirmación** — verificar existencia antes de crear.
|
|
180
|
+
2. **Ajustar al stack detectado** — `pyproject.toml` -> Python, `package.json` -> Node.
|
|
181
|
+
3. **Registrar decisiones en ESTADO.md**.
|
|
182
|
+
4. **`.gitignore`** debe incluir `.claude/settings.local.json` y `.env`.
|
|
183
|
+
5. **Skills usan `references/`** dentro de `.claude/skills/`, y `recursos/` en `habilidades/`.
|
|
184
|
+
6. **CLAUDE.md < 200 líneas** — dividir en `.claude/rules/*.md` con `paths:` si excede.
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## Variantes por stack
|
|
189
|
+
|
|
190
|
+
Ver [recursos/variantes-por-stack.md](recursos/variantes-por-stack.md).
|
|
191
|
+
|
|
192
|
+
| Stack | Archivo raiz | ORM / DB | Framework de test |
|
|
193
|
+
|-------|-------------|----------|-------------------|
|
|
194
|
+
| Python/FastAPI | `pyproject.toml` | SQLAlchemy + Alembic | pytest + httpx |
|
|
195
|
+
| Node.js | `package.json` | Prisma / Drizzle | Vitest / Jest |
|
|
196
|
+
| Angular | `angular.json` | N/A | Karma / Jest |
|
|
197
|
+
| React/Next.js | `next.config.js` | N/A | Vitest + RTL |
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
Para configuración completa de settings.json, .mcp.json, plugins y checklist detallado, ver [recursos/configuracion-y-extensiones.md](recursos/configuracion-y-extensiones.md).
|
|
202
|
+
|
|
203
|
+
## Cuándo NO cargar
|
|
204
|
+
|
|
205
|
+
- Se inicia un proyecto completamente nuevo — usar `/swl:nuevo-proyecto`, que conduce la entrevista de contexto antes de elegir estructura; este skill genera la estructura pero no recoge los requisitos del proyecto.
|
|
206
|
+
- Se modifica o crea un componente específico (un agente, un skill, un hook) dentro de un proyecto ya estructurado — el overhead de cargar toda la arquitectura de 4 capas no compensa para una edición puntual de frontmatter.
|
|
207
|
+
- Se configuran permisos de herramientas o nivel de riesgo de un agente — esa decisión requiere `seguridad-agentes`; este skill describe dónde vive la configuración, no qué valores son seguros.
|
|
208
|
+
- Se busca la sintaxis actual de una API de extensión específica de Claude Code — Context7 MCP tiene la documentación oficial más actualizada para APIs de comandos, hooks y settings avanzados.
|
|
209
|
+
|
|
210
|
+
## Gotchas / Errores comunes no obvios
|
|
211
|
+
|
|
212
|
+
- **CLAUDE.md supera 200 líneas sin subdirectorios y Claude Code deja de respetarlo**: el agente empieza a saltarse reglas de proyecto porque el archivo es demasiado largo para ser incluido completo en el contexto. Causa: reglas que deberían estar en `.claude/rules/*.md` con `paths:` quedan todas en el CLAUDE.md raíz. Solución: dividir en archivos en `.claude/rules/` con `paths:` filtrado por extensión o directorio — la regla 6 de este skill dice CLAUDE.md < 200 líneas.
|
|
213
|
+
- **`settings.local.json` committeado con permisos de desarrollo**: el archivo contiene `allowedTools` con `Bash` habilitado globalmente y queda en el repositorio. Causa: `.gitignore` no incluye `.claude/settings.local.json`. Solución: verificar que `.gitignore` tiene la entrada antes de cualquier commit que toque `.claude/` — este archivo es por definición local y nunca debe versionarse.
|
|
214
|
+
- **Hook declarado en `hooks/` pero sin registrar en `manifiestos/hooks-config.json`**: el hook no se ejecuta y nadie entiende por qué el evento PreToolUse no dispara. Causa: crear el archivo del hook sin actualizar el manifiesto. Solución: toda adición de hook requiere actualización de `manifiestos/hooks-config.json` y `.claude/settings.json` según la tabla de propagación en CLAUDE.md — el hook no se activa si Claude Code no sabe que existe.
|
|
215
|
+
- **`herramientasPermitidas` en skill declarada con tools que el agente invocador no tiene**: el skill requiere `Write` pero el agente que lo carga solo tiene `Read`. Causa: el frontmatter del skill declara herramientas sin verificar qué agentes lo invocarán. Solución: al crear un skill, verificar que los agentes que están en `skillsInvocables` del skill tienen al menos las mismas tools en su propio frontmatter — la cadena de permisos no escala hacia arriba.
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
# CLAUDE.md — [Nombre del Proyecto]
|
|
2
|
+
|
|
3
|
+
> Fuente de verdad del proyecto para Claude Code.
|
|
4
|
+
> Claude lee este archivo al inicio de cada sesión.
|
|
5
|
+
> Actualizar cuando cambien convenciones, stack o arquitectura.
|
|
6
|
+
> Mantener bajo 200 líneas — usar .claude/rules/ para instrucciones extensas.
|
|
7
|
+
> Última actualización: [YYYY-MM-DD]
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Qué es este proyecto
|
|
12
|
+
|
|
13
|
+
[2-3 oraciones describiendo el propósito del proyecto, el problema que resuelve
|
|
14
|
+
y a quién va dirigido. Ser específico — evitar frases genéricas como "sistema
|
|
15
|
+
de gestión empresarial".]
|
|
16
|
+
|
|
17
|
+
**Ejemplo**:
|
|
18
|
+
> API REST para el sistema de facturación electrónica de PyMEs en México.
|
|
19
|
+
> Genera CFDIs 4.0 certificados por el SAT e integra con los PACs Finkok y Diverza.
|
|
20
|
+
> Expone una interfaz REST consumida por el frontend Angular y la app móvil React Native.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## 1. Stack tecnológico
|
|
25
|
+
|
|
26
|
+
| Capa | Tecnologia | Version |
|
|
27
|
+
|------|-----------|---------|
|
|
28
|
+
| Lenguaje backend | Python | 3.12 |
|
|
29
|
+
| Framework backend | FastAPI | 0.115+ |
|
|
30
|
+
| ORM | SQLAlchemy | 2.0 (async) |
|
|
31
|
+
| Base de datos | PostgreSQL | 16 |
|
|
32
|
+
| Migraciones | Alembic | 1.13+ |
|
|
33
|
+
| Gestor de paquetes | uv | 0.5+ |
|
|
34
|
+
| Lenguaje frontend | TypeScript | 5.4+ |
|
|
35
|
+
| Framework frontend | Angular | 20+ |
|
|
36
|
+
| Estilos | Tailwind CSS | 4.0 |
|
|
37
|
+
| Tests backend | pytest + httpx | - |
|
|
38
|
+
| Tests frontend | Jasmine + Karma | - |
|
|
39
|
+
| CI/CD | GitHub Actions | - |
|
|
40
|
+
| Contenedores | Docker + Compose | - |
|
|
41
|
+
|
|
42
|
+
> Ajustar esta tabla al stack real del proyecto. Eliminar filas que no aplican.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## 2. Convenciones de código
|
|
47
|
+
|
|
48
|
+
### Python / Backend
|
|
49
|
+
|
|
50
|
+
- **Estilo**: PEP 8 + Ruff para lint y formato. Máximo 88 caracteres por línea.
|
|
51
|
+
- **Type hints**: Obligatorios en toda función pública. Sin `Any` sin justificación.
|
|
52
|
+
- **Docstrings**: Solo en funciones públicas de módulos, clases y endpoints complejos.
|
|
53
|
+
Formato Google Style.
|
|
54
|
+
- **Imports**: Agrupados — stdlib, terceros, locales. Separados por línea en blanco.
|
|
55
|
+
- **Nombres**: `snake_case` para variables y funciones, `PascalCase` para clases.
|
|
56
|
+
|
|
57
|
+
### TypeScript / Frontend
|
|
58
|
+
|
|
59
|
+
- **Framework**: Angular 20+ con signals. Sin NgModules para componentes nuevos.
|
|
60
|
+
- **Directivas de control**: `@if`, `@for`, `@switch`. NUNCA `*ngIf`, `*ngFor`.
|
|
61
|
+
- **Estado**: `signal()` y `computed()` para estado reactivo.
|
|
62
|
+
- **Estilos**: Tailwind CSS. Angular Material SOLO para componentes funcionales.
|
|
63
|
+
- **HTTP**: Siempre tipado. Sin `any` en responses de API.
|
|
64
|
+
|
|
65
|
+
### Naming conventions
|
|
66
|
+
|
|
67
|
+
- Archivos: `kebab-case` para todos los archivos
|
|
68
|
+
- Componentes Angular: `nombre.component.ts`, `nombre.component.html`
|
|
69
|
+
- Services: `nombre.service.ts`
|
|
70
|
+
- Models: `nombre.model.ts`
|
|
71
|
+
- Tests: `nombre.spec.ts` (frontend), `test_nombre.py` (backend)
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## 3. Arquitectura
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
src/
|
|
79
|
+
+-- [capa-1]/ # [Descripción: ej. "Componentes React compartidos"]
|
|
80
|
+
+-- [capa-2]/ # [Descripción: ej. "Handlers / lógica de negocio"]
|
|
81
|
+
+-- [capa-3]/ # [Descripción: ej. "Utilidades compartidas"]
|
|
82
|
+
+-- [capa-4]/ # [Descripción: ej. "Modelos de datos y schemas"]
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Reglas de arquitectura
|
|
86
|
+
- Services no importan directamente modelos de otros dominios
|
|
87
|
+
- Endpoints no tienen lógica de negocio — delegan a services
|
|
88
|
+
- Componentes no hacen llamadas HTTP directamente — usan services
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## 4. Seguridad
|
|
93
|
+
|
|
94
|
+
- No secretos en código ni logs — usar variables de entorno
|
|
95
|
+
- Validar todos los inputs del usuario en el boundary del sistema
|
|
96
|
+
- Usar queries parametrizadas — NUNCA concatenación de strings SQL
|
|
97
|
+
- RBAC en todos los endpoints que modifican datos
|
|
98
|
+
- CORS configurado explícitamente — no wildcard `*` en producción
|
|
99
|
+
- Rate limiting en endpoints públicos
|
|
100
|
+
- Headers de seguridad: HSTS, X-Content-Type-Options, X-Frame-Options
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## 5. Testing
|
|
105
|
+
|
|
106
|
+
### Estrategia de tests
|
|
107
|
+
|
|
108
|
+
| Tipo | Framework | Cobertura mínima |
|
|
109
|
+
|------|-----------|-----------------|
|
|
110
|
+
| Unit tests backend | pytest | 80% líneas |
|
|
111
|
+
| Integration tests | pytest + httpx | Todos los endpoints |
|
|
112
|
+
| Unit tests frontend | Jasmine + Karma | 70% líneas |
|
|
113
|
+
| E2E tests | Playwright / Cypress | Flujos críticos |
|
|
114
|
+
|
|
115
|
+
### Como correr tests
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
# Backend — tests completos con cobertura
|
|
119
|
+
pytest tests/ --cov=app --cov-report=html -v
|
|
120
|
+
|
|
121
|
+
# Backend — solo un modulo
|
|
122
|
+
pytest tests/test_facturacion.py -v
|
|
123
|
+
|
|
124
|
+
# Frontend — tests unitarios
|
|
125
|
+
ng test
|
|
126
|
+
|
|
127
|
+
# Frontend — E2E
|
|
128
|
+
ng e2e
|
|
129
|
+
|
|
130
|
+
# Lint y tipo-checking
|
|
131
|
+
ruff check app/ tests/
|
|
132
|
+
mypy app/
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Reglas de testing
|
|
136
|
+
- Todo PR debe incluir tests para código nuevo/modificado
|
|
137
|
+
- Tests deben tener assertions reales (no solo verificar que no lanza excepción)
|
|
138
|
+
- Fixtures compartidas en `conftest.py` / `test-utils.ts`
|
|
139
|
+
- Mock solo para dependencias externas (APIs, email). NUNCA mockear la BD en integration tests.
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## 6. Git Workflow
|
|
144
|
+
|
|
145
|
+
### Ramas
|
|
146
|
+
- `main` — produccion, protegida
|
|
147
|
+
- `develop` — integracion (si aplica)
|
|
148
|
+
- `feature/descripcion-corta` — features nuevas
|
|
149
|
+
- `fix/descripcion-corta` — bug fixes
|
|
150
|
+
- `chore/descripcion` — mantenimiento
|
|
151
|
+
|
|
152
|
+
### Commits
|
|
153
|
+
Formato Conventional Commits en inglés:
|
|
154
|
+
```
|
|
155
|
+
feat: add CFDI billing endpoint
|
|
156
|
+
fix: correct RFC validation in schema
|
|
157
|
+
chore: update security dependencies
|
|
158
|
+
refactor: extract billing logic to service
|
|
159
|
+
test: add integration tests for auth flow
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### Pull Requests
|
|
163
|
+
- Al menos 1 revisor
|
|
164
|
+
- Tests pasando en CI
|
|
165
|
+
- Sin TODO sin ticket asociado
|
|
166
|
+
- Squash merge a main
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## 7. Comandos comunes (Workflows)
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
# --- Setup inicial ---
|
|
174
|
+
uv sync # Instalar dependencias Python
|
|
175
|
+
npm install # Instalar dependencias frontend
|
|
176
|
+
|
|
177
|
+
# --- Desarrollo ---
|
|
178
|
+
uvicorn app.main:app --reload --port 8000 # Backend dev server
|
|
179
|
+
ng serve --open # Frontend dev server
|
|
180
|
+
|
|
181
|
+
# --- Base de datos ---
|
|
182
|
+
alembic revision --autogenerate -m "desc" # Crear migracion
|
|
183
|
+
alembic upgrade head # Aplicar migraciones
|
|
184
|
+
alembic downgrade -1 # Revertir ultima
|
|
185
|
+
|
|
186
|
+
# --- Testing ---
|
|
187
|
+
pytest tests/ -v # Tests backend
|
|
188
|
+
ng test # Tests frontend
|
|
189
|
+
|
|
190
|
+
# --- Calidad ---
|
|
191
|
+
ruff check app/ tests/ # Lint Python
|
|
192
|
+
ruff format app/ tests/ # Format Python
|
|
193
|
+
mypy app/ # Type checking
|
|
194
|
+
|
|
195
|
+
# --- Docker ---
|
|
196
|
+
docker compose up -d postgres redis # Solo infra
|
|
197
|
+
docker compose up --build # Todo
|
|
198
|
+
docker compose down # Detener
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## Reglas anti-error del proyecto
|
|
204
|
+
|
|
205
|
+
> Estas reglas documentan errores que ya ocurrieron en este proyecto.
|
|
206
|
+
> Son la segunda defensa después de los tests.
|
|
207
|
+
|
|
208
|
+
### Backend
|
|
209
|
+
|
|
210
|
+
- **selectinload OBLIGATORIO**: Toda relación accedida en serialización Pydantic
|
|
211
|
+
DEBE tener `selectinload()` en el query. Sin esto -> `MissingGreenlet` en runtime.
|
|
212
|
+
- **Services NO hacen commit**: Solo `db.add()`, `db.flush()`, `db.refresh()`.
|
|
213
|
+
El commit SIEMPRE en el endpoint.
|
|
214
|
+
- **Literal[] en schemas**: Campos con dominio cerrado (`estatus`, `tipo`) DEBEN
|
|
215
|
+
usar `Literal["valor1", "valor2"]`. NUNCA `str` sin restricción.
|
|
216
|
+
- **RBAC en escritura**: Todos los endpoints POST/PUT/DELETE deben tener
|
|
217
|
+
`_=Depends(require_role([...]))`.
|
|
218
|
+
|
|
219
|
+
### Frontend
|
|
220
|
+
|
|
221
|
+
- **PaginatedResponse**: Todo endpoint paginado parsear con `.pipe(map(r => r.items))`.
|
|
222
|
+
- **track obligatorio en @for**: `@for (item of items; track item.id)`.
|
|
223
|
+
- **takeUntilDestroyed()**: En toda suscripcion larga o polling.
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
## Estructura de archivos
|
|
228
|
+
|
|
229
|
+
```
|
|
230
|
+
[Pegar aqui la estructura de arbol del proyecto, generada con:
|
|
231
|
+
tree -I "node_modules|__pycache__|.git|*.pyc|dist|build" --max-depth=3
|
|
232
|
+
]
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
## Variables de entorno requeridas
|
|
238
|
+
|
|
239
|
+
Copiar `.env.example` a `.env` y completar antes de ejecutar:
|
|
240
|
+
|
|
241
|
+
```bash
|
|
242
|
+
cp .env.example .env
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
Descripción de cada variable en `.env.example`. Las variables marcadas con `*`
|
|
246
|
+
son obligatorias para correr en desarrollo.
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
## Agentes y skills activos en este proyecto
|
|
251
|
+
|
|
252
|
+
| Tipo | Nombre | Propósito |
|
|
253
|
+
|------|--------|-----------|
|
|
254
|
+
| Skill | [nombre] | [qué cubre] |
|
|
255
|
+
| Agente | [nombre] | [cuándo se usa] |
|
|
256
|
+
| Comando | `/proyecto:nombre` | [qué hace] |
|
|
257
|
+
|
|
258
|
+
---
|
|
259
|
+
|
|
260
|
+
*Template generado con `Skill("estructura-proyecto-claude")` el [YYYY-MM-DD].*
|
|
261
|
+
*Mantener actualizado al cierre de cada fase con `consolidador-swl`.*
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
# Estructura de Proyecto Claude-ready — Configuracion y Extensiones
|
|
2
|
+
|
|
3
|
+
Referencia extendida de la skill `estructura-proyecto-claude`. Contiene ejemplos
|
|
4
|
+
completos de settings.json, .mcp.json, plugins y checklists detallados.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Estructura de settings.json
|
|
9
|
+
|
|
10
|
+
```json
|
|
11
|
+
{
|
|
12
|
+
"permissions": {
|
|
13
|
+
"allow": [
|
|
14
|
+
"Bash(git:*)",
|
|
15
|
+
"Bash(npm:*)",
|
|
16
|
+
"Bash(python:*)",
|
|
17
|
+
"Read(**/src/**)",
|
|
18
|
+
"Write(**/src/**)"
|
|
19
|
+
],
|
|
20
|
+
"deny": [
|
|
21
|
+
"Bash(rm -rf:*)",
|
|
22
|
+
"Bash(curl * | bash:*)",
|
|
23
|
+
"Bash(sudo:*)",
|
|
24
|
+
"Read(**/env:*)"
|
|
25
|
+
]
|
|
26
|
+
},
|
|
27
|
+
"hooks": {
|
|
28
|
+
"PreToolUse": [
|
|
29
|
+
{
|
|
30
|
+
"matcher": "Bash",
|
|
31
|
+
"type": "command",
|
|
32
|
+
"command": "node .claude/hooks/lint-check.js"
|
|
33
|
+
}
|
|
34
|
+
],
|
|
35
|
+
"PostToolUse": [
|
|
36
|
+
{
|
|
37
|
+
"matcher": "Write",
|
|
38
|
+
"type": "command",
|
|
39
|
+
"command": "node .claude/hooks/format-on-save.js"
|
|
40
|
+
}
|
|
41
|
+
],
|
|
42
|
+
"SessionStart": [
|
|
43
|
+
{
|
|
44
|
+
"matcher": "startup",
|
|
45
|
+
"type": "command",
|
|
46
|
+
"command": "node .claude/hooks/load-context.js"
|
|
47
|
+
}
|
|
48
|
+
]
|
|
49
|
+
},
|
|
50
|
+
"context": {
|
|
51
|
+
"rules": [
|
|
52
|
+
"CLAUDE.md"
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### Jerarquía de settings (mayor a menor prioridad)
|
|
59
|
+
|
|
60
|
+
1. **Managed** (MDM plist / Registry / Server-managed / `managed-settings.d/`)
|
|
61
|
+
2. **CLI arguments** (solo sesión actual)
|
|
62
|
+
3. **`.claude/settings.local.json`** (personal, git-ignored)
|
|
63
|
+
4. **`.claude/settings.json`** (equipo, commiteado)
|
|
64
|
+
5. **`~/.claude/settings.json`** (global personal)
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Settings avanzados y variables de entorno
|
|
69
|
+
|
|
70
|
+
Settings poco documentados pero de alto impacto:
|
|
71
|
+
|
|
72
|
+
| Setting | Tipo | Efecto |
|
|
73
|
+
|---------|------|--------|
|
|
74
|
+
| `plansDirectory` | string | Redirige archivos de plan a directorio custom (ej: `"./.planning"`) |
|
|
75
|
+
| `outputStyle` | string | Estilo de respuesta: `"Explanatory"`, `"Concise"`, etc. |
|
|
76
|
+
| `spinnerVerbs` | array | Verbos custom para el spinner de actividad |
|
|
77
|
+
| `spinnerTipsOverride` | object | `{ "tips": [...], "excludeDefault": true }` para tips personalizados |
|
|
78
|
+
| `enableAllProjectMcpServers` | boolean | Habilitar todos los MCP sin pedir permiso |
|
|
79
|
+
|
|
80
|
+
### Variables de entorno de control (en `"env"` de settings.json)
|
|
81
|
+
|
|
82
|
+
| Variable | Valor | Efecto |
|
|
83
|
+
|----------|-------|--------|
|
|
84
|
+
| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | `"80"` | Compactar al 80% de contexto (default: ~95%) — reduce riesgo de overflow |
|
|
85
|
+
| `CLAUDE_CODE_TASK_LIST_ID` | string | ID de lista de tareas compartida (Agent Teams) |
|
|
86
|
+
| `CLAUDE_PLUGIN_DATA` | path | Directorio de datos persistentes por skill entre sesiones |
|
|
87
|
+
| `ENABLE_TOOL_SEARCH` | `"true"` | Habilitar Tool Search para lazy loading de herramientas |
|
|
88
|
+
|
|
89
|
+
### Flags CLI de alto impacto
|
|
90
|
+
|
|
91
|
+
| Flag | Efecto |
|
|
92
|
+
|------|--------|
|
|
93
|
+
| `--bare` | Arranque hasta 10x más rápido — omite carga de CLAUDE.md y skills. Útil para scripts |
|
|
94
|
+
| `--add-dir <path>` | Agregar directorio adicional a la sesión — sesiones multi-repo sin copiar archivos |
|
|
95
|
+
| `-w` / `--worktree` | Git worktree aislado — cada sesión en su propia rama |
|
|
96
|
+
| `--agent=<nombre>` | Usar agente custom como agente principal de la sesión |
|
|
97
|
+
| `--effort high` | Nivel de esfuerzo alto para todas las respuestas |
|
|
98
|
+
| `/sandbox` | Reduce 84% los diálogos de permisos — sandbox seguro para exploración |
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Estructura de .mcp.json
|
|
104
|
+
|
|
105
|
+
```json
|
|
106
|
+
{
|
|
107
|
+
"mcpServers": {
|
|
108
|
+
"context7": {
|
|
109
|
+
"command": "npx",
|
|
110
|
+
"args": ["-y", "@upstash/context7-mcp@latest"]
|
|
111
|
+
},
|
|
112
|
+
"github": {
|
|
113
|
+
"command": "npx",
|
|
114
|
+
"args": ["-y", "@modelcontextprotocol/server-github"],
|
|
115
|
+
"env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "" }
|
|
116
|
+
},
|
|
117
|
+
"playwright": {
|
|
118
|
+
"command": "npx",
|
|
119
|
+
"args": ["-y", "@anthropic/mcp-playwright"]
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Ver catalogo completo en [mcp-json-template.json](mcp-json-template.json).
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Plugins distribuibles
|
|
130
|
+
|
|
131
|
+
Los plugins empaquetan skills + agents + hooks para distribucion:
|
|
132
|
+
|
|
133
|
+
```
|
|
134
|
+
mi-plugin/
|
|
135
|
+
+-- plugin.json # Manifest (nombre, version, dependencias)
|
|
136
|
+
+-- skills/
|
|
137
|
+
| +-- mi-skill/SKILL.md
|
|
138
|
+
+-- agents/
|
|
139
|
+
| +-- mi-agent.md
|
|
140
|
+
+-- hooks/
|
|
141
|
+
| +-- hooks.json
|
|
142
|
+
+-- mcp-servers/
|
|
143
|
+
| +-- server.json
|
|
144
|
+
+-- README.md
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Distribucion via Git, GitHub, npm o paths locales. Namespace: `plugin-name:skill-name`.
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## Checklist completo de proyecto Claude-ready
|
|
152
|
+
|
|
153
|
+
### Estructura base
|
|
154
|
+
- [ ] `CLAUDE.md` existe con las 7 secciones (Stack, Conventions, Architecture, Security, Testing, Git, Workflows)
|
|
155
|
+
- [ ] `CLAUDE.md` tiene menos de 200 lineas
|
|
156
|
+
- [ ] `.claude/settings.json` existe con permisos (allow/deny) y hooks
|
|
157
|
+
- [ ] `.claude/settings.local.json` esta en `.gitignore`
|
|
158
|
+
|
|
159
|
+
### Extensiones
|
|
160
|
+
- [ ] `.claude/commands/` tiene al menos 1 comando del proyecto
|
|
161
|
+
- [ ] `.claude/skills/` tiene skills con SKILL.md + references/
|
|
162
|
+
- [ ] `.claude/agents/` tiene agentes especializados del proyecto
|
|
163
|
+
- [ ] `.claude/hooks/` tiene hooks configurados (al menos PreToolUse)
|
|
164
|
+
- [ ] `.claude/rules/` tiene reglas path-scoped si CLAUDE.md > 200 lineas
|
|
165
|
+
|
|
166
|
+
### Integraciones
|
|
167
|
+
- [ ] `.mcp.json` existe con al menos context7 y github
|
|
168
|
+
- [ ] Archivos de stack (package.json o pyproject.toml) son consistentes con CLAUDE.md
|
|
169
|
+
|
|
170
|
+
### Estado SWL
|
|
171
|
+
- [ ] `.planning/ESTADO.md` existe y esta actualizado
|
|
172
|
+
- [ ] `.planning/PROYECTO.md` define el proyecto
|
|
173
|
+
|
|
174
|
+
### Jerarquia de memoria
|
|
175
|
+
- [ ] CLAUDE.md de subdirectorios (si monorepo) NO sobreescriben padre
|
|
176
|
+
- [ ] Cada CLAUDE.md < 200 lineas
|