workspace-v1/orchestration/templates/TEMPLATE-DELEGACION-COMPLETA.md
rckrdmrd ff3038f183 feat(orchestration): Add subagent token management system
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>
2026-01-07 04:43:01 -06:00

698 lines
17 KiB
Markdown

# TEMPLATE: DELEGACION COMPLETA A SUBAGENTE
**Version:** 1.2.0
**Sistema:** SIMCO - NEXUS v4.0
**Proposito:** Template completo para delegaciones complejas (>2 archivos)
**Tokens:** ~1,800
> **NOTA:** Para tareas mas simples, usar:
> - `TEMPLATE-DELEGACION-ESTANDAR.md` (1-2 archivos, ~600 tokens)
> - `TEMPLATE-DELEGACION-MINIMA.md` (1 archivo, ~250 tokens)
---
## PRINCIPIO FUNDAMENTAL
> **Un subagente sin contexto completo = alucinaciones garantizadas**
> **Un subagente con contexto heredado = ejecución precisa**
---
## 🆕 VERIFICACIÓN DE CATÁLOGO (OBLIGATORIO)
> **ANTES de delegar, verificar si la funcionalidad existe en el catálogo:**
```bash
# Buscar en catálogo global
grep -i "{funcionalidad}" shared/catalog/CATALOG-INDEX.yml
```
**Si existe en @CATALOG:**
- Instruir al subagente usar `@REUTILIZAR` (SIMCO-REUTILIZAR.md)
- Proporcionar ruta al código de referencia: `@CATALOG_{FUNCIONALIDAD}/`
- El subagente debe ADAPTAR, no crear desde cero
**Funcionalidades catalogadas:** auth, session-management, rate-limiting, notifications,
multi-tenancy, feature-flags, websocket, payments
---
## TEMPLATE DE DELEGACIÓN
```markdown
# ═══════════════════════════════════════════════════════════════
# DELEGACIÓN A SUBAGENTE
# ═══════════════════════════════════════════════════════════════
## BLOQUE 1: IDENTIDAD Y CONTEXTO
### Identidad del Subagente
```yaml
perfil: "{DATABASE | BACKEND | FRONTEND}"
proyecto: "{NOMBRE_PROYECTO}"
workspace: "/home/isem/workspace"
```
### Protocolo de Inicialización
```
Serás {PERFIL}-Agent trabajando en el proyecto {PROYECTO}
para realizar: {DESCRIPCION_TAREA}
ANTES de actuar, ejecuta el protocolo CCA:
1. Lee shared/catalog/CATALOG-INDEX.yml (🆕 verificar si existe funcionalidad)
2. Si existe en catálogo: Lee SIMCO-REUTILIZAR.md
3. Lee core/orchestration/directivas/simco/SIMCO-INICIALIZACION.md
4. Sigue los pasos de carga de contexto
5. Confirma "READY_TO_EXECUTE" antes de implementar
```
---
## BLOQUE 2: CONTEXTO HEREDADO (PRE-CARGADO)
### Variables Resueltas del Proyecto
```yaml
# Copiar de CONTEXTO-PROYECTO.md del proyecto
DB_NAME: "{valor}"
DB_DDL_PATH: "{valor}"
DB_SCRIPTS_PATH: "{valor}"
BACKEND_ROOT: "{valor}"
BACKEND_SRC: "{valor}"
FRONTEND_ROOT: "{valor}"
FRONTEND_SRC: "{valor}"
```
### Alias Resueltos
```yaml
# Copiar alias resueltos relevantes
@DDL: "{ruta_completa}"
@BACKEND: "{ruta_completa}"
@FRONTEND: "{ruta_completa}"
@INVENTORY: "{ruta_completa}"
@INV_DB: "{ruta_completa}"
@INV_BE: "{ruta_completa}"
@INV_FE: "{ruta_completa}"
```
### Estado Actual del Proyecto
```yaml
# Resumen del inventario relevante
tablas_existentes:
- "{schema}.{tabla1}"
- "{schema}.{tabla2}"
entities_existentes:
- "{Entity1}"
- "{Entity2}"
endpoints_existentes:
- "GET /api/{recurso}"
- "POST /api/{recurso}"
```
---
## BLOQUE 3: DIRECTIVAS A SEGUIR
### Principios (OBLIGATORIO leer)
```yaml
siempre_leer:
- core/orchestration/directivas/principios/PRINCIPIO-DOC-PRIMERO.md
- core/orchestration/directivas/principios/PRINCIPIO-ANTI-DUPLICACION.md
- core/orchestration/directivas/principios/PRINCIPIO-VALIDACION-OBLIGATORIA.md
```
### SIMCO Específicos (según tarea)
```yaml
# Ajustar según la tarea delegada
operacion: "{REUTILIZAR | CREAR | MODIFICAR | VALIDAR}" # 🆕 REUTILIZAR si existe en catálogo
dominio: "{DDL | BACKEND | FRONTEND}"
leer_simco:
- core/orchestration/directivas/simco/SIMCO-REUTILIZAR.md # 🆕 SI existe en catálogo
- core/orchestration/directivas/simco/SIMCO-{OPERACION}.md
- core/orchestration/directivas/simco/SIMCO-{DOMINIO}.md
# Referencias del catálogo (si aplica)
catalogo:
funcionalidad: "{auth | session | rate-limiting | ...}"
path: "shared/catalog/{funcionalidad}/"
readme: "shared/catalog/{funcionalidad}/README.md"
```
---
## BLOQUE 4: TAREA ESPECÍFICA
### Descripción de la Tarea
```yaml
tarea: "{Descripción clara y específica}"
objetivo: "{Qué debe lograr}"
alcance: "{Qué incluye y qué NO incluye}"
```
### Archivos a Crear/Modificar
```yaml
archivos_esperados:
- path: "{ruta/archivo1.ext}"
tipo: "crear | modificar"
descripcion: "{qué es este archivo}"
- path: "{ruta/archivo2.ext}"
tipo: "crear | modificar"
descripcion: "{qué es este archivo}"
```
### Documentación de Referencia
```yaml
# Documentos que DEBE consultar antes de implementar
docs_obligatorios:
- path: "projects/{PROYECTO}/docs/{documento1}.md"
proposito: "{qué contiene}"
- path: "projects/{PROYECTO}/docs/{documento2}.md"
proposito: "{qué contiene}"
```
### Código de Referencia
```yaml
# 🆕 PRIMERO: Verificar catálogo global
catalogo_global:
- path: "shared/catalog/{funcionalidad}/"
usar_si: "Funcionalidad existe en CATALOG-INDEX.yml"
nota: "Usar SIMCO-REUTILIZAR.md para adaptar"
# Código existente en el proyecto que debe usar como patrón
patrones_a_seguir:
- path: "{ruta/codigo_similar}"
usar_para: "{qué copiar de aquí}"
```
---
## BLOQUE 5: DEPENDENCIAS
### Pre-requisitos (DEBEN existir)
```yaml
dependencias:
- tipo: "tabla"
nombre: "{schema}.{tabla}"
verificar_en: "@INV_DB"
si_no_existe: "ERROR - No continuar"
- tipo: "entity"
nombre: "{EntityName}"
verificar_en: "@INV_BE"
si_no_existe: "ERROR - No continuar"
```
### Post-requisitos (crear DESPUÉS de esta tarea)
```yaml
crear_despues:
- tipo: "entity"
nombre: "{EntityName}"
agente: "Backend-Agent"
nota: "Informar al completar DDL"
```
---
## BLOQUE 6: CRITERIOS DE ACEPTACIÓN
### Funcionales
```yaml
criterios_funcionales:
- [ ] "{Criterio 1 específico}"
- [ ] "{Criterio 2 específico}"
- [ ] "{Criterio 3 específico}"
```
### Técnicos
```yaml
criterios_tecnicos:
- [ ] Verificó @CATALOG antes de crear # 🆕
- [ ] Si usó catálogo: adaptó correctamente sin romper estructura
- [ ] Nomenclatura sigue convenciones del proyecto
- [ ] Documentación inline completa (COMMENT ON / JSDoc)
- [ ] Sin código duplicado
- [ ] Alineado con DDL/DTOs existentes
```
### Validaciones Obligatorias
```yaml
validaciones:
database:
- [ ] Carga limpia pasa (./{RECREATE_CMD})
- [ ] Estructura verificada (\dt, \di)
backend:
- [ ] npm run build pasa
- [ ] npm run lint pasa
- [ ] npm run test pasa (si hay tests)
frontend:
- [ ] npm run build pasa
- [ ] npm run lint pasa
- [ ] npm run typecheck pasa
```
---
## BLOQUE 7: ENTREGABLES
### Al Completar, Reportar
```yaml
reporte_entrega:
archivos_creados:
- "{lista de archivos}"
archivos_modificados:
- "{lista de archivos}"
validaciones_ejecutadas:
- "{validación}: {PASS | FAIL}"
inventario_actualizado:
- "{inventario}: {sí | no}"
traza_actualizada:
- "{traza}: {sí | no}"
siguiente_paso_recomendado:
- "{qué debe hacer el siguiente agente}"
```
### Formato de Respuesta
```markdown
## ENTREGA: {TAREA}
### Archivos Creados
- `{ruta/archivo}`: {descripción breve}
### Validaciones
- Build: ✅ PASS
- Lint: ✅ PASS
- {Otra}: ✅ PASS
### Inventario Actualizado
- {INVENTORY}.yml: ✅
### Siguiente Paso
{Descripción de qué sigue}
```
---
## BLOQUE 8: RESTRICCIONES
### NO Hacer
```yaml
prohibido:
- NO crear archivos fuera del alcance definido
- NO modificar código no relacionado con la tarea
- NO saltarse validaciones
- NO asumir sin verificar en docs/
- NO dejar build roto
- NO crear duplicados
```
### Escalar Si
```yaml
escalar_a_orquestador:
- Si encuentro conflicto con código existente
- Si la especificación es ambigua
- Si necesito crear algo fuera del alcance
- Si las dependencias no existen
```
# ═══════════════════════════════════════════════════════════════
# FIN DEL TEMPLATE
# ═══════════════════════════════════════════════════════════════
```
---
## EJEMPLO COMPLETO: Delegación a Database-Agent
```markdown
# ═══════════════════════════════════════════════════════════════
# DELEGACIÓN A SUBAGENTE: Database-Agent
# ═══════════════════════════════════════════════════════════════
## BLOQUE 1: IDENTIDAD Y CONTEXTO
### Identidad del Subagente
```yaml
perfil: "DATABASE"
proyecto: "trading-platform"
workspace: "/home/isem/workspace"
```
### Protocolo de Inicialización
```
Serás Database-Agent trabajando en el proyecto trading-platform
para realizar: Crear tabla notifications en schema notification_system
ANTES de actuar, ejecuta el protocolo CCA:
1. Lee core/orchestration/directivas/simco/SIMCO-INICIALIZACION.md
2. Sigue los pasos de carga de contexto
3. Confirma "READY_TO_EXECUTE" antes de implementar
```
---
## BLOQUE 2: CONTEXTO HEREDADO
### Variables Resueltas
```yaml
DB_NAME: "orbiquant_trading"
DB_DDL_PATH: "apps/database/ddl"
DB_SCRIPTS_PATH: "apps/database"
DB_SEEDS_PATH: "apps/database/seeds"
RECREATE_CMD: "drop-and-recreate-database.sh"
```
### Alias Resueltos
```yaml
@DDL: "apps/database/ddl/schemas/"
@SEEDS: "apps/database/seeds/"
@DB_SCRIPTS: "apps/database/"
@INV_DB: "projects/trading-platform/orchestration/inventarios/DATABASE_INVENTORY.yml"
```
### Estado Actual
```yaml
schemas_existentes:
- auth_management
- trading_core
- notification_system # Ya existe, agregar tabla aquí
tablas_en_notification_system:
- notification_templates
- notification_preferences
# notifications NO existe - crear
```
---
## BLOQUE 3: DIRECTIVAS
### Principios
```yaml
siempre_leer:
- core/orchestration/directivas/principios/PRINCIPIO-DOC-PRIMERO.md
- core/orchestration/directivas/principios/PRINCIPIO-ANTI-DUPLICACION.md
- core/orchestration/directivas/principios/PRINCIPIO-VALIDACION-OBLIGATORIA.md
```
### SIMCO
```yaml
operacion: "CREAR"
dominio: "DDL"
leer_simco:
- core/orchestration/directivas/simco/SIMCO-CREAR.md
- core/orchestration/directivas/simco/SIMCO-DDL.md
```
---
## BLOQUE 4: TAREA
### Descripción
```yaml
tarea: "Crear tabla notifications"
objetivo: "Almacenar notificaciones del sistema para usuarios"
alcance: "Solo la tabla, NO seeds ni funciones adicionales"
```
### Archivos a Crear
```yaml
archivos_esperados:
- path: "apps/database/ddl/schemas/notification_system/05-notifications.sql"
tipo: "crear"
descripcion: "DDL de la tabla notifications"
```
### Documentación de Referencia
```yaml
docs_obligatorios:
- path: "projects/trading-platform/docs/01-fase-mvp/notificaciones.md"
proposito: "Especificación de campos y tipos"
```
### Código de Referencia
```yaml
patrones_a_seguir:
- path: "apps/database/ddl/schemas/notification_system/02-notification_templates.sql"
usar_para: "Convenciones de nomenclatura, estructura, COMMENT ON"
```
---
## BLOQUE 5: DEPENDENCIAS
### Pre-requisitos
```yaml
dependencias:
- tipo: "schema"
nombre: "notification_system"
verificar_en: "apps/database/ddl/00-init.sql"
si_no_existe: "ERROR - Schema debe existir"
- tipo: "tabla"
nombre: "auth_management.users"
verificar_en: "@INV_DB"
si_no_existe: "ERROR - FK a users"
```
### Post-requisitos
```yaml
crear_despues:
- tipo: "entity"
nombre: "NotificationEntity"
agente: "Backend-Agent"
nota: "Informar al completar para crear Entity alineada"
```
---
## BLOQUE 6: CRITERIOS DE ACEPTACIÓN
### Funcionales
```yaml
criterios_funcionales:
- [ ] Tabla tiene campos: id, user_id, type, title, message, read, created_at
- [ ] FK a auth_management.users funciona
- [ ] Índice en user_id para queries frecuentes
```
### Técnicos
```yaml
criterios_tecnicos:
- [ ] snake_case en todos los nombres
- [ ] COMMENT ON en tabla y columnas
- [ ] UUID para id usando gen_random_uuid()
- [ ] Timestamps con timezone
```
### Validaciones
```yaml
validaciones:
database:
- [ ] ./drop-and-recreate-database.sh pasa
- [ ] psql -d orbiquant_trading -c "\d notification_system.notifications" muestra estructura
```
---
## BLOQUE 7: ENTREGABLES
### Al Completar
```yaml
reporte_entrega:
archivos_creados:
- apps/database/ddl/schemas/notification_system/05-notifications.sql
validaciones_ejecutadas:
- "Carga limpia: PASS"
inventario_actualizado:
- "DATABASE_INVENTORY.yml: sí"
siguiente_paso_recomendado:
- "Backend-Agent debe crear NotificationEntity alineada con este DDL"
```
---
## BLOQUE 8: RESTRICCIONES
### NO Hacer
```yaml
prohibido:
- NO crear seeds (solo DDL)
- NO crear funciones/triggers (solo tabla)
- NO modificar otras tablas
- NO crear Entity (es tarea de Backend-Agent)
```
# ═══════════════════════════════════════════════════════════════
```
---
## EJEMPLO: Delegación a Backend-Agent
```markdown
# ═══════════════════════════════════════════════════════════════
# DELEGACIÓN A SUBAGENTE: Backend-Agent
# ═══════════════════════════════════════════════════════════════
## BLOQUE 1: IDENTIDAD
```yaml
perfil: "BACKEND"
proyecto: "trading-platform"
workspace: "/home/isem/workspace"
```
### Protocolo
```
Serás Backend-Agent trabajando en el proyecto trading-platform
para realizar: Crear módulo de notificaciones con Entity, Service, Controller y DTOs
ANTES de actuar, ejecuta el protocolo CCA.
```
---
## BLOQUE 2: CONTEXTO HEREDADO
```yaml
BACKEND_ROOT: "apps/backend"
BACKEND_SRC: "apps/backend/src"
@BACKEND: "apps/backend/src/modules/"
@INV_BE: "projects/trading-platform/orchestration/inventarios/BACKEND_INVENTORY.yml"
@INV_DB: "projects/trading-platform/orchestration/inventarios/DATABASE_INVENTORY.yml"
```
### DDL de Referencia (CRÍTICO)
```sql
-- Tabla notification_system.notifications
-- Copiar estructura exacta del DDL para alinear Entity
CREATE TABLE notification_system.notifications (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID NOT NULL REFERENCES auth_management.users(id),
type VARCHAR(50) NOT NULL,
title VARCHAR(255) NOT NULL,
message TEXT NOT NULL,
read BOOLEAN DEFAULT FALSE,
created_at TIMESTAMPTZ DEFAULT NOW()
);
```
---
## BLOQUE 3: DIRECTIVAS
```yaml
leer_simco:
- SIMCO-CREAR.md
- SIMCO-BACKEND.md
```
---
## BLOQUE 4: TAREA
```yaml
tarea: "Crear módulo notifications completo"
alcance:
- NotificationEntity (alineada con DDL)
- NotificationService (CRUD básico)
- NotificationController (endpoints REST)
- CreateNotificationDto, UpdateNotificationDto, NotificationResponseDto
```
### Archivos a Crear
```yaml
archivos_esperados:
- apps/backend/src/modules/notifications/notification.entity.ts
- apps/backend/src/modules/notifications/notification.service.ts
- apps/backend/src/modules/notifications/notification.controller.ts
- apps/backend/src/modules/notifications/dto/create-notification.dto.ts
- apps/backend/src/modules/notifications/dto/update-notification.dto.ts
- apps/backend/src/modules/notifications/dto/notification-response.dto.ts
- apps/backend/src/modules/notifications/notification.module.ts
```
---
## BLOQUE 5: DEPENDENCIAS
```yaml
dependencias:
- tipo: "tabla"
nombre: "notification_system.notifications"
verificar_en: "@INV_DB"
si_no_existe: "ERROR - Delegar a Database-Agent primero"
```
---
## BLOQUE 6: CRITERIOS
```yaml
criterios_funcionales:
- [ ] Entity tiene EXACTAMENTE los mismos campos que DDL
- [ ] Tipos TypeScript coinciden con PostgreSQL
- [ ] Endpoints: GET /notifications, GET /notifications/:id, POST, PATCH, DELETE
validaciones:
backend:
- [ ] npm run build pasa
- [ ] npm run lint pasa
```
---
## BLOQUE 8: RESTRICCIONES
```yaml
prohibido:
- NO modificar DDL (ya existe)
- NO crear componentes frontend
- NO agregar campos que no estén en DDL
```
# ═══════════════════════════════════════════════════════════════
```
---
## CHECKLIST PARA EL ORQUESTADOR
Antes de enviar delegación, verificar:
```markdown
- [ ] 🆕 Verificó @CATALOG para funcionalidades existentes
- [ ] 🆕 Si existe en catálogo: incluyó instrucción de usar @REUTILIZAR
- [ ] Perfil correcto identificado
- [ ] Variables del proyecto incluidas
- [ ] Alias resueltos incluidos
- [ ] Estado actual del proyecto documentado
- [ ] Directivas SIMCO especificadas
- [ ] Tarea claramente definida
- [ ] Archivos esperados listados
- [ ] Documentación de referencia incluida
- [ ] Dependencias verificadas (existen)
- [ ] Criterios de aceptación definidos
- [ ] Validaciones requeridas especificadas
- [ ] Restricciones claras
```
---
**Versión:** 1.1.0 | **Sistema:** SIMCO-CCA + Catálogo | **Tipo:** Template de Delegación