Sistema completo de gestión de tokens para subagentes NEXUS v4.0: Nuevas directivas SIMCO: - SIMCO-SUBAGENTE.md: Protocolo para agentes en modo subagente - SIMCO-CCA-SUBAGENTE.md: CCA ligero para subagentes (~1,500 tokens) - SIMCO-CONTROL-TOKENS.md: Gestión de límites de tokens - SIMCO-DELEGACION-PARALELA.md: Delegación paralela Perfiles compact (~250 tokens cada uno): - PERFIL-BACKEND-COMPACT.md - PERFIL-FRONTEND-COMPACT.md - PERFIL-DATABASE-COMPACT.md - PERFIL-DEVOPS-COMPACT.md - PERFIL-ML-COMPACT.md - PERFIL-GENERIC-SUBAGENT.md Templates de delegación escalonados: - TEMPLATE-DELEGACION-MINIMA.md (~250 tokens) - TEMPLATE-DELEGACION-ESTANDAR.md (~600 tokens) - TEMPLATE-DELEGACION-COMPLETA.md (~1,800 tokens) Nuevos perfiles especializados: - PERFIL-MCP-ARCHITECT.md - PERFIL-MCP-DEVELOPER.md - PERFIL-RAG-ENGINEER.md - PERFIL-CICD-SPECIALIST.md - PERFIL-PRODUCTION-MANAGER.md - PERFIL-MONITORING-AGENT.md - PERFIL-SECRETS-MANAGER.md - PERFIL-PROPAGATION-TRACKER.md Checklists y documentación: - CHECKLIST-PRE-DELEGACION.md - Análisis y planes de implementación Métricas de mejora: - ~59% reducción de tokens por delegación - Perfiles compact: 69% más ligeros - CCA subagente: 85% más ligero 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
342 lines
8.8 KiB
Markdown
342 lines
8.8 KiB
Markdown
# TEMPLATE: CONTEXTO DE PROYECTO
|
|
|
|
**Versión:** 1.1.0
|
|
**Sistema:** SIMCO + Catálogo
|
|
**Propósito:** Template para crear el archivo CONTEXTO-PROYECTO.md en cada proyecto
|
|
|
|
---
|
|
|
|
## INSTRUCCIONES DE USO
|
|
|
|
1. Copiar este template a: `projects/{proyecto}/orchestration/00-guidelines/CONTEXTO-PROYECTO.md`
|
|
2. Reemplazar todos los `{PLACEHOLDER}` con valores reales del proyecto
|
|
3. Eliminar secciones que no apliquen
|
|
4. Este archivo es la fuente de verdad para resolver aliases en el proyecto
|
|
|
|
---
|
|
|
|
# CONTEXTO: {PROJECT_NAME}
|
|
|
|
**Proyecto:** {PROJECT_NAME}
|
|
**Descripción:** {Descripción breve del proyecto}
|
|
**Fecha creación:** {YYYY-MM-DD}
|
|
**Última actualización:** {YYYY-MM-DD}
|
|
**Versión:** 1.0.0
|
|
|
|
---
|
|
|
|
## INFORMACIÓN GENERAL
|
|
|
|
```yaml
|
|
Proyecto:
|
|
nombre: "{PROJECT_NAME}"
|
|
descripcion: "{Descripción del proyecto}"
|
|
tipo: "standalone | multi-vertical | monorepo"
|
|
estado: "desarrollo | staging | producción"
|
|
|
|
Equipo:
|
|
tech_lead: "{nombre o sistema}"
|
|
repository: "{URL del repositorio}"
|
|
|
|
Stack:
|
|
database: "PostgreSQL {versión}"
|
|
backend: "NestJS {versión}"
|
|
frontend: "React {versión}"
|
|
otros: []
|
|
```
|
|
|
|
---
|
|
|
|
## VARIABLES DEL PROYECTO (ALIAS RESUELTOS)
|
|
|
|
### Database
|
|
|
|
```yaml
|
|
# Variables para @DDL, @SEEDS, etc.
|
|
DB_NAME: "{nombre_base_datos}"
|
|
DB_DDL_PATH: "{ruta}/ddl"
|
|
DB_SCRIPTS_PATH: "{ruta}"
|
|
DB_SEEDS_PATH: "{ruta}/seeds"
|
|
RECREATE_CMD: "{script_recreacion}.sh"
|
|
|
|
# Schemas del proyecto
|
|
SCHEMAS:
|
|
- name: "{schema_1}"
|
|
descripcion: "{propósito}"
|
|
- name: "{schema_2}"
|
|
descripcion: "{propósito}"
|
|
```
|
|
|
|
**Ejemplo resuelto:**
|
|
```yaml
|
|
DB_NAME: "gamilit_platform"
|
|
DB_DDL_PATH: "apps/database/ddl"
|
|
DB_SCRIPTS_PATH: "apps/database"
|
|
DB_SEEDS_PATH: "apps/database/seeds"
|
|
RECREATE_CMD: "drop-and-recreate-database.sh"
|
|
|
|
SCHEMAS:
|
|
- name: "auth_management"
|
|
descripcion: "Autenticación y usuarios"
|
|
- name: "gamification_system"
|
|
descripcion: "Sistema de gamificación"
|
|
```
|
|
|
|
### Backend
|
|
|
|
```yaml
|
|
# Variables para @BACKEND, @BACKEND_ROOT, etc.
|
|
BACKEND_ROOT: "{ruta_backend}"
|
|
BACKEND_SRC: "{ruta_backend}/src"
|
|
BACKEND_TESTS: "{ruta_backend}/tests"
|
|
BACKEND_PORT: "{puerto}"
|
|
|
|
# Módulos principales
|
|
MODULES:
|
|
- name: "{modulo_1}"
|
|
descripcion: "{propósito}"
|
|
- name: "{modulo_2}"
|
|
descripcion: "{propósito}"
|
|
```
|
|
|
|
**Ejemplo resuelto:**
|
|
```yaml
|
|
BACKEND_ROOT: "apps/backend"
|
|
BACKEND_SRC: "apps/backend/src"
|
|
BACKEND_TESTS: "apps/backend/tests"
|
|
BACKEND_PORT: "3000"
|
|
|
|
MODULES:
|
|
- name: "auth"
|
|
descripcion: "Autenticación JWT"
|
|
- name: "users"
|
|
descripcion: "Gestión de usuarios"
|
|
- name: "gamification"
|
|
descripcion: "Sistema de puntos y badges"
|
|
```
|
|
|
|
### Frontend
|
|
|
|
```yaml
|
|
# Variables para @FRONTEND, @FRONTEND_ROOT, etc.
|
|
FRONTEND_ROOT: "{ruta_frontend}"
|
|
FRONTEND_SRC: "{ruta_frontend}/src"
|
|
FRONTEND_PORT: "{puerto}"
|
|
API_BASE_URL: "{url_api}"
|
|
|
|
# Apps del frontend
|
|
APPS:
|
|
- name: "{app_1}"
|
|
descripcion: "{propósito}"
|
|
ruta: "{path}"
|
|
```
|
|
|
|
**Ejemplo resuelto:**
|
|
```yaml
|
|
FRONTEND_ROOT: "apps/frontend/web"
|
|
FRONTEND_SRC: "apps/frontend/web/src"
|
|
FRONTEND_PORT: "5173"
|
|
API_BASE_URL: "http://localhost:3000/api"
|
|
|
|
APPS:
|
|
- name: "main"
|
|
descripcion: "Aplicación principal"
|
|
ruta: "/"
|
|
- name: "admin"
|
|
descripcion: "Panel de administración"
|
|
ruta: "/admin"
|
|
```
|
|
|
|
---
|
|
|
|
## ALIAS RESUELTOS PARA ESTE PROYECTO
|
|
|
|
Copia de `@ALIASES` con valores concretos:
|
|
|
|
```yaml
|
|
# ═══════════════════════════════════════════════════════════════
|
|
# ALIAS RESUELTOS - {PROJECT_NAME}
|
|
# ═══════════════════════════════════════════════════════════════
|
|
|
|
# Código
|
|
@DDL: "{DB_DDL_PATH}/schemas/"
|
|
@DDL_ROOT: "{DB_DDL_PATH}/"
|
|
@SEEDS: "{DB_SEEDS_PATH}/"
|
|
@SEEDS_DEV: "{DB_SEEDS_PATH}/dev/"
|
|
@SEEDS_PROD: "{DB_SEEDS_PATH}/prod/"
|
|
@DB_SCRIPTS: "{DB_SCRIPTS_PATH}/"
|
|
|
|
@BACKEND: "{BACKEND_SRC}/modules/"
|
|
@BACKEND_ROOT: "{BACKEND_ROOT}/"
|
|
@BACKEND_SHARED: "{BACKEND_SRC}/shared/"
|
|
|
|
@FRONTEND: "{FRONTEND_SRC}/apps/"
|
|
@FRONTEND_ROOT: "{FRONTEND_ROOT}/"
|
|
@FRONTEND_SHARED: "{FRONTEND_SRC}/shared/"
|
|
|
|
# Orchestration
|
|
@ORCH: "orchestration/"
|
|
@INVENTORY: "orchestration/inventarios/MASTER_INVENTORY.yml"
|
|
@INV_DB: "orchestration/inventarios/DATABASE_INVENTORY.yml"
|
|
@INV_BE: "orchestration/inventarios/BACKEND_INVENTORY.yml"
|
|
@INV_FE: "orchestration/inventarios/FRONTEND_INVENTORY.yml"
|
|
@TRAZA_DB: "orchestration/trazas/TRAZA-TAREAS-DATABASE.md"
|
|
@TRAZA_BE: "orchestration/trazas/TRAZA-TAREAS-BACKEND.md"
|
|
@TRAZA_FE: "orchestration/trazas/TRAZA-TAREAS-FRONTEND.md"
|
|
|
|
# Documentación
|
|
@DOCS: "docs/"
|
|
@GUIAS: "docs/95-guias-desarrollo/"
|
|
@ADR: "docs/97-adr/"
|
|
```
|
|
|
|
**Ejemplo resuelto para GAMILIT:**
|
|
```yaml
|
|
@DDL: "apps/database/ddl/schemas/"
|
|
@DDL_ROOT: "apps/database/ddl/"
|
|
@SEEDS: "apps/database/seeds/"
|
|
@DB_SCRIPTS: "apps/database/"
|
|
|
|
@BACKEND: "apps/backend/src/modules/"
|
|
@BACKEND_ROOT: "apps/backend/"
|
|
@BACKEND_SHARED: "apps/backend/src/shared/"
|
|
|
|
@FRONTEND: "apps/frontend/web/src/apps/"
|
|
@FRONTEND_ROOT: "apps/frontend/web/"
|
|
|
|
@INVENTORY: "orchestration/inventarios/MASTER_INVENTORY.yml"
|
|
# ... etc
|
|
```
|
|
|
|
---
|
|
|
|
## COMANDOS FRECUENTES
|
|
|
|
```yaml
|
|
# Database
|
|
recrear_db: "cd {DB_SCRIPTS_PATH} && ./{RECREATE_CMD}"
|
|
crear_db: "cd {DB_SCRIPTS_PATH} && ./create-database.sh"
|
|
psql_connect: "psql -d {DB_NAME}"
|
|
|
|
# Backend
|
|
build_be: "cd {BACKEND_ROOT} && npm run build"
|
|
lint_be: "cd {BACKEND_ROOT} && npm run lint"
|
|
test_be: "cd {BACKEND_ROOT} && npm run test"
|
|
start_be: "cd {BACKEND_ROOT} && npm run start:dev"
|
|
|
|
# Frontend
|
|
build_fe: "cd {FRONTEND_ROOT} && npm run build"
|
|
lint_fe: "cd {FRONTEND_ROOT} && npm run lint"
|
|
start_fe: "cd {FRONTEND_ROOT} && npm run dev"
|
|
```
|
|
|
|
---
|
|
|
|
## ESTRUCTURA DEL PROYECTO
|
|
|
|
```
|
|
{PROJECT_NAME}/
|
|
├── apps/
|
|
│ ├── database/
|
|
│ │ ├── ddl/
|
|
│ │ │ ├── 00-init.sql
|
|
│ │ │ └── schemas/
|
|
│ │ │ └── {schema}/
|
|
│ │ ├── seeds/
|
|
│ │ │ ├── dev/
|
|
│ │ │ └── prod/
|
|
│ │ ├── create-database.sh
|
|
│ │ └── {RECREATE_CMD}
|
|
│ │
|
|
│ ├── backend/
|
|
│ │ ├── src/
|
|
│ │ │ ├── shared/
|
|
│ │ │ └── modules/
|
|
│ │ │ └── {modulo}/
|
|
│ │ ├── tests/
|
|
│ │ └── package.json
|
|
│ │
|
|
│ └── frontend/
|
|
│ └── web/
|
|
│ ├── src/
|
|
│ │ ├── apps/
|
|
│ │ └── shared/
|
|
│ └── package.json
|
|
│
|
|
├── docs/
|
|
│ ├── 00-vision-general/
|
|
│ ├── 01-fase-*/
|
|
│ ├── 95-guias-desarrollo/
|
|
│ ├── 97-adr/
|
|
│ └── README.md
|
|
│
|
|
├── orchestration/
|
|
│ ├── 00-guidelines/
|
|
│ │ └── CONTEXTO-PROYECTO.md ← ESTE ARCHIVO
|
|
│ ├── inventarios/
|
|
│ │ ├── MASTER_INVENTORY.yml
|
|
│ │ ├── DATABASE_INVENTORY.yml
|
|
│ │ ├── BACKEND_INVENTORY.yml
|
|
│ │ └── FRONTEND_INVENTORY.yml
|
|
│ ├── trazas/
|
|
│ │ ├── TRAZA-TAREAS-DATABASE.md
|
|
│ │ ├── TRAZA-TAREAS-BACKEND.md
|
|
│ │ └── TRAZA-TAREAS-FRONTEND.md
|
|
│ └── PROXIMA-ACCION.md
|
|
│
|
|
└── README.md
|
|
```
|
|
|
|
---
|
|
|
|
## REFERENCIAS A CORE/ORCHESTRATION
|
|
|
|
Este proyecto usa el sistema SIMCO definido en:
|
|
|
|
```yaml
|
|
SIMCO:
|
|
indice: "core/orchestration/directivas/simco/_INDEX.md"
|
|
principios: "core/orchestration/directivas/principios/"
|
|
aliases_globales: "core/orchestration/referencias/ALIASES.yml"
|
|
perfiles: "core/orchestration/agents/perfiles/"
|
|
|
|
# 🆕 CATÁLOGO DE FUNCIONALIDADES REUTILIZABLES
|
|
CATALOGO:
|
|
indice: "shared/catalog/CATALOG-INDEX.yml"
|
|
reutilizar: "core/orchestration/directivas/simco/SIMCO-REUTILIZAR.md"
|
|
funcionalidades:
|
|
- auth: "shared/catalog/auth/"
|
|
- session: "shared/catalog/session-management/"
|
|
- rate-limiting: "shared/catalog/rate-limiting/"
|
|
- notifications: "shared/catalog/notifications/"
|
|
- multi-tenancy: "shared/catalog/multi-tenancy/"
|
|
- feature-flags: "shared/catalog/feature-flags/"
|
|
- websocket: "shared/catalog/websocket/"
|
|
- payments: "shared/catalog/payments/"
|
|
```
|
|
|
|
---
|
|
|
|
## 🆕 FUNCIONALIDADES DEL CATÁLOGO USADAS EN ESTE PROYECTO
|
|
|
|
```yaml
|
|
# Marcar las funcionalidades que este proyecto usa del catálogo global
|
|
funcionalidades_del_catalogo:
|
|
- nombre: "{funcionalidad}"
|
|
version: "{version del catálogo}"
|
|
adaptaciones: "{cambios específicos del proyecto}"
|
|
fecha_implementacion: "{YYYY-MM-DD}"
|
|
```
|
|
|
|
---
|
|
|
|
## NOTAS ESPECÍFICAS DEL PROYECTO
|
|
|
|
{Agregar notas específicas, decisiones de arquitectura locales, particularidades del proyecto, etc.}
|
|
|
|
---
|
|
|
|
**Creado:** {YYYY-MM-DD}
|
|
**Autor:** {nombre}
|
|
**Basado en:** TEMPLATE-CONTEXTO-PROYECTO.md v1.0.0
|