# DELEGATION-PLAN.yml # Plan de delegación a subagentes para ejecución de la tarea # Tarea: TASK-2026-02-03-ANALISIS-DDL-MODELADO metadata: fecha_creacion: "2026-02-03" orquestador: "claude-opus-4.5" total_subagentes: 12 estrategia: "paralelo_por_fase" # Configuración de tipos de subagentes disponibles tipos_subagentes: ddl_specialist: tipo: "Bash" descripcion: "Especialista en operaciones DDL" herramientas: ["Read", "Write", "Bash", "Grep", "Glob"] permisos: - "apps/database/**" - "scripts/database/**" comandos_permitidos: - "psql" - "pg_dump" - "npm run db:*" backend_sync: tipo: "Explore" descripcion: "Sincronización DDL-Backend" herramientas: ["Read", "Grep", "Glob"] permisos: - "apps/backend/src/**" solo_lectura: true backend_edit: tipo: "general-purpose" descripcion: "Edición de código backend" herramientas: ["Read", "Edit", "Write", "Grep", "Glob"] permisos: - "apps/backend/src/**" doc_updater: tipo: "general-purpose" descripcion: "Actualización de documentación" herramientas: ["Read", "Edit", "Write"] permisos: - "docs/**" - "orchestration/**" inventory_sync: tipo: "general-purpose" descripcion: "Sincronización de inventarios" herramientas: ["Read", "Edit"] permisos: - "orchestration/inventarios/**" # Plan de delegación por fase delegacion_por_fase: FASE_1: nombre: "Gaps Críticos P0" estrategia: "paralelo" subagentes: - id: "SA-1.1" tarea: "ST-1.1 FINANCIAL-REFUNDS" tipo: "ddl_specialist" prompt: | Implementar tabla financial.refunds con las siguientes especificaciones: 1. Crear archivo: apps/database/ddl/schemas/financial/tables/11-refunds.sql 2. Campos requeridos: - id UUID PK DEFAULT gen_random_uuid() - payment_id UUID FK NOT NULL REFERENCES financial.payments(id) - amount DECIMAL(18,8) NOT NULL CHECK (amount > 0) - reason VARCHAR(500) - status financial.refund_status NOT NULL DEFAULT 'pending' - stripe_refund_id VARCHAR(100) UNIQUE - refunded_by UUID FK REFERENCES auth.users(id) - created_at TIMESTAMPTZ DEFAULT NOW() - updated_at TIMESTAMPTZ DEFAULT NOW() 3. Crear enum refund_status si no existe: pending, processing, succeeded, failed 4. Índices: payment_id, status, created_at 5. Trigger update_updated_at Validar DDL con: psql -f --dry-run - id: "SA-1.2" tarea: "ST-1.2 EDUCATION-INSTRUCTORS" tipo: "ddl_specialist" prompt: | Implementar tabla education.instructors con las siguientes especificaciones: 1. Crear archivo: apps/database/ddl/schemas/education/tables/17-instructors.sql 2. Campos: - id UUID PK - user_id UUID FK UNIQUE NOT NULL REFERENCES auth.users(id) - display_name VARCHAR(100) NOT NULL - bio TEXT - avatar_url VARCHAR(500) - expertise TEXT[] - social_links JSONB DEFAULT '{}' - total_courses INTEGER DEFAULT 0 - total_students INTEGER DEFAULT 0 - average_rating DECIMAL(3,2) - is_verified BOOLEAN DEFAULT false - created_at, updated_at TIMESTAMPTZ 3. Índices: user_id (unique), is_verified 4. Agregar FK instructor_id a courses si no existe - id: "SA-1.3" tarea: "ST-1.3 TRADING-PRICE-ALERTS-FK" tipo: "ddl_specialist" prompt: | Agregar FK a trading.price_alerts: 1. Verificar estructura actual de price_alerts 2. Crear migración para agregar columna symbol_id UUID 3. Agregar FK REFERENCES trading.symbols(id) 4. Crear índice en symbol_id 5. Script de migración de datos existentes (si hay) - id: "SA-1.4" tarea: "ST-1.4 ML-OVERLAY-PREDICCIONES" tipo: "ddl_specialist" prompt: | Completar diseño overlay predicciones ML: 1. Revisar estructura actual en ml.predictions 2. Agregar columnas para overlay si faltan: - overlay_data JSONB - chart_config JSONB - display_priority INTEGER 3. Crear tabla ml.prediction_overlays si es necesario 4. Documentar estructura final FASE_2: nombre: "Conflictos y Duplicidades" estrategia: "secuencial" depende_de: ["FASE_1"] subagentes: - id: "SA-2.1" tarea: "ST-2.1 UNIFICAR-ENUMS-TIMEFRAME" tipo: "ddl_specialist" prompt: | Unificar enum timeframe en schema público: 1. Crear enum public.trading_timeframe con valores: 1m, 5m, 15m, 30m, 1h, 4h, 1d, 1w, 1M 2. Crear migraciones para trading schema 3. Crear migraciones para market_data schema 4. Eliminar enums duplicados 5. Validar integridad post-migración - id: "SA-2.2" tarea: "ST-2.2 RESOLVER-TRANSACTION-TYPE" tipo: "ddl_specialist" depende_de: ["SA-2.1"] prompt: | Resolver conflicto transaction_type: 1. Renombrar financial.transaction_type → financial_tx_type 2. Renombrar investment.transaction_type → investment_tx_type 3. Actualizar referencias en tablas 4. Documentar cambios - id: "SA-2.3" tarea: "ST-2.3 UNIFICAR-FUNCIONES" tipo: "ddl_specialist" depende_de: ["SA-2.2"] prompt: | Mover funciones comunes a public: 1. Crear public.update_updated_at() 2. Actualizar triggers en todos los schemas 3. Eliminar funciones duplicadas 4. Validar triggers funcionan FASE_3: nombre: "Gaps Moderados P1" estrategia: "paralelo" depende_de: ["FASE_2"] subagentes: - id: "SA-3.1" tarea: "ST-3.1 EDUCATION-COURSE-TAGS" tipo: "ddl_specialist" - id: "SA-3.2" tarea: "ST-3.2 TRADING-DRAWING-TOOLS" tipo: "ddl_specialist" - id: "SA-3.3" tarea: "ST-3.3 INVESTMENT-AGENT-EXECUTIONS" tipo: "ddl_specialist" - id: "SA-3.4" tarea: "ST-3.4 ML-INDICES-COMPUESTOS" tipo: "ddl_specialist" FASE_5: nombre: "Coherencia Backend" estrategia: "paralelo" depende_de: ["FASE_1", "FASE_2", "FASE_3"] subagentes: - id: "SA-5.1" tarea: "ST-5.1 CREAR-ENTITIES-FALTANTES" tipo: "backend_edit" prompt: | Crear entities TypeORM faltantes: 1. education.instructors → instructor.entity.ts 2. ml.feature_store → feature-store.entity.ts 3. audit.compliance_logs → compliance-log.entity.ts Seguir patrones existentes en el proyecto. Incluir decoradores, validaciones y relaciones. - id: "SA-5.2" tarea: "ST-5.2 ACTUALIZAR-ENTITIES" tipo: "backend_edit" prompt: | Actualizar entities existentes para sincronizar con DDL: 1. Verificar auth entities vs DDL 2. Verificar trading entities vs DDL 3. Verificar financial entities vs DDL 4. Agregar campos/relaciones faltantes FASE_6: nombre: "Documentación" estrategia: "paralelo" depende_de: ["FASE_5"] subagentes: - id: "SA-6.1" tarea: "ST-6.1 ACTUALIZAR-ESPECIFICACIONES" tipo: "doc_updater" prompt: | Actualizar especificaciones técnicas: 1. ET-TRD-003-database.md con tablas actuales 2. ET-EDU-001-database.md con instructors 3. Crear ET-FIN-001-database.md (refunds) - id: "SA-6.2" tarea: "ST-6.2 ACTUALIZAR-INVENTARIOS" tipo: "inventory_sync" prompt: | Sincronizar inventarios: 1. DATABASE_INVENTORY.yml con todos los cambios 2. BACKEND_INVENTORY.yml con nuevas entities 3. MASTER_INVENTORY.yml consolidado - id: "SA-6.3" tarea: "ST-6.3 PURGAR-OBSOLETOS" tipo: "doc_updater" prompt: | Purgar documentación obsoleta: 1. Archivar tareas 2025 a _archive/ 2. Eliminar análisis superados en docs/99-analisis/ 3. Limpiar duplicados en docs/ # Coordinación entre subagentes coordinacion: archivo_bloqueo: "orchestration/trazas/ACTIVE-FILES.yml" notificacion_completado: true validacion_cruzada: true # Criterios de éxito por subagente criterios_exito: ddl_specialist: - "DDL ejecuta sin errores" - "Índices creados correctamente" - "Constraints validados" backend_edit: - "npm run build pasa" - "npm run lint pasa" - "Entity exportada en index" doc_updater: - "Documentos coherentes con DDL" - "Links internos funcionan" - "Formato markdown correcto" inventory_sync: - "YAML válido" - "Conteos actualizados" - "Referencias correctas" # Rollback plan rollback: estrategia: "git_revert_por_fase" checkpoints: - "post-FASE-1" - "post-FASE-2" - "post-FASE-3"