# EXECUTION-ORDER.yml - Trading Platform # Orden de ejecución optimizado considerando dependencias, prioridad y paralelización metadata: fecha: 2026-01-27 proyecto: trading-platform version: 1.0.0 sistema: SIMCO v4.0.0 metodologia: "Topological sort by dependencies + priority-driven scheduling" fuentes: - orchestration/analisis/coherencia/COHERENCE-MASTER-REPORT.md - orchestration/PROXIMA-ACCION.md metricas_globales: total_gaps: 18 gaps_p0: 3 gaps_p1: 4 gaps_p2: 5 inconsistencias_arquitecturales: 2 esfuerzo_total_horas: 208 duracion_estimada_semanas: 8 # ============================================================================= # SPRINTS DE EJECUCION # ============================================================================= sprints: # --------------------------------------------------------------------------- # SPRINT 1: Bloqueantes P0 - Impiden producción # --------------------------------------------------------------------------- - sprint: 1 nombre: "Gaps P0 - Bloqueantes" duracion: "2 semanas" esfuerzo_total: 54h objetivo: "Eliminar todos los bloqueantes que impiden lanzar a producción" tareas: - id: GAP-P0-001 nombre: "Password Recovery UI" descripcion: "Implementar interfaz de recuperación de contraseña en frontend" capa: Frontend modulo: OQI-001-Auth esfuerzo: 8h prioridad: P0 impacto: "Usuarios no pueden recuperar acceso a sus cuentas" dependencias: [] entregables: - components/auth/PasswordRecovery.tsx - components/auth/ResetPassword.tsx - Integración con /auth/forgot-password endpoint paralelo_con: [GAP-P0-002] - id: GAP-P0-002 nombre: "User Profile Service + Endpoints" descripcion: "Crear userService.ts backend y endpoints CRUD para user_profiles" capa: Backend modulo: OQI-001-Auth esfuerzo: 6h prioridad: P0 impacto: "No existe gestión de perfiles de usuario" dependencias: [] entregables: - apps/backend/src/services/userService.ts - GET/PUT /api/users/profile - GET /api/users/:id/profile paralelo_con: [GAP-P0-001] - id: GAP-P0-003-FASE1 nombre: "Trading Agents UI - Fase 1 (Lista + Detalle)" descripcion: "Implementar componentes base para gestión de bots Atlas/Orion/Nova" capa: Frontend modulo: OQI-003-Trading esfuerzo: 20h prioridad: P0 impacto: "Feature core de trading agents sin interfaz - 40h total dividido en 2 fases" dependencias: [] entregables: - components/trading/agents/AgentsList.tsx - components/trading/agents/AgentDetail.tsx - stores/agentsStore.ts (zustand) paralelo_con: [] notas: "Primera mitad de GAP-P0-003. Segunda mitad en Sprint 2." - id: GAP-P0-003-FASE2 nombre: "Trading Agents UI - Fase 2 (Config + Monitor)" descripcion: "Completar UI con configuración y monitoreo en tiempo real" capa: Frontend modulo: OQI-003-Trading esfuerzo: 20h prioridad: P0 impacto: "Completar UI de trading agents" dependencias: [GAP-P0-003-FASE1] entregables: - components/trading/agents/AgentConfig.tsx - components/trading/agents/AgentMonitor.tsx - Real-time updates via WebSocket paralelo_con: [] notas: "Segunda mitad de GAP-P0-003. Depende de fase 1." # --------------------------------------------------------------------------- # SPRINT 2: Críticos P1 - Afectan funcionalidad core # --------------------------------------------------------------------------- - sprint: 2 nombre: "Gaps P1 - Críticos" duracion: "2 semanas" esfuerzo_total: 76h objetivo: "Resolver gaps que afectan funcionalidad crítica de la plataforma" tareas: - id: GAP-P1-001 nombre: "Market Data OHLCV Service" descripcion: "Crear servicio backend para consultar datos OHLCV de market_data schema" capa: Backend modulo: OQI-003-Trading esfuerzo: 16h prioridad: P1 impacto: "Charts de trading no tienen fuente de datos históricos" dependencias: [] entregables: - apps/backend/src/services/marketDataService.ts - GET /api/market-data/ohlcv/:symbol - Queries optimizadas con índices temporales paralelo_con: [GAP-P1-004] notas: "Crítico para charts en OQI-003" - id: GAP-P1-002 nombre: "Notifications API Completa" descripcion: "Completar endpoints de notificaciones (mark read, delete, preferences)" capa: Backend modulo: OQI-001-Auth esfuerzo: 20h prioridad: P1 impacto: "Push notifications funcionan parcialmente" dependencias: [] entregables: - POST /api/notifications/mark-read - DELETE /api/notifications/:id - GET/PUT /api/notifications/preferences - Integración FCM/APNs paralelo_con: [GAP-P1-004] - id: GAP-P1-003 nombre: "ML Chart Overlays UI" descripcion: "Conectar overlays de predicciones ML en componentes de charts" capa: Frontend modulo: OQI-006-ML esfuerzo: 24h prioridad: P1 impacto: "Visualización de predicciones ML no está conectada a charts" dependencias: [GAP-P1-001] entregables: - components/charts/MLOverlay.tsx - Integración con mlService.ts - Visualización de signals en lightweight-charts paralelo_con: [] notas: "Depende de Market Data Service" - id: GAP-P1-004 nombre: "2FA Flow Completo" descripcion: "Implementar flujo completo de autenticación de dos factores (setup + verify)" capa: Fullstack modulo: OQI-001-Auth esfuerzo: 16h prioridad: P1 impacto: "Seguridad avanzada no disponible para usuarios" dependencias: [] entregables: - Backend: POST /api/auth/2fa/setup, POST /api/auth/2fa/verify - Frontend: components/auth/TwoFactorSetup.tsx - QR code generation + TOTP validation paralelo_con: [GAP-P1-001, GAP-P1-002] # --------------------------------------------------------------------------- # SPRINT 3: Importantes P2 - Mejoran experiencia # --------------------------------------------------------------------------- - sprint: 3 nombre: "Gaps P2 - Importantes" duracion: "2 semanas" esfuerzo_total: 78h objetivo: "Implementar funcionalidades que mejoran significativamente la experiencia" tareas: - id: GAP-P2-001 nombre: "Audit System Services" descripcion: "Crear servicios backend para consultar logs de auditoría" capa: Backend modulo: Audit esfuerzo: 32h prioridad: P2 impacto: "No hay endpoints para consultar auditoría" dependencias: [] entregables: - apps/backend/src/services/auditService.ts - GET /api/audit/logs (paginado + filtros) - GET /api/audit/user/:userId - GET /api/audit/entity/:entityType/:entityId paralelo_con: [GAP-P2-002, GAP-P2-003] - id: GAP-P2-002 nombre: "Currency Exchange Service" descripcion: "Implementar servicio de conversión de monedas y consulta de tasas" capa: Backend modulo: Financial esfuerzo: 16h prioridad: P2 impacto: "Multi-moneda incompleto en la plataforma" dependencias: [] entregables: - apps/backend/src/services/currencyService.ts - GET /api/currency/rates - POST /api/currency/convert - Integración con API externa (e.g., exchangerate-api) paralelo_con: [GAP-P2-001, GAP-P2-003] - id: GAP-P2-003 nombre: "Risk Assessment Service" descripcion: "Conectar cuestionario de evaluación de riesgo con backend" capa: Backend modulo: OQI-004-Investment esfuerzo: 12h prioridad: P2 impacto: "Cuestionario de riesgo existe en DB pero no tiene lógica" dependencias: [] entregables: - apps/backend/src/services/riskService.ts - GET /api/risk/questionnaire - POST /api/risk/assessment (calcular score) - PUT /api/users/:id/risk-profile paralelo_con: [GAP-P2-001, GAP-P2-002] - id: GAP-P2-004 nombre: "Course Reviews Endpoints" descripcion: "Crear endpoints para gestionar reviews de cursos educativos" capa: Backend modulo: OQI-002-Education esfuerzo: 6h prioridad: P2 impacto: "Sistema de reviews no disponible" dependencias: [] entregables: - POST /api/education/courses/:id/reviews - GET /api/education/courses/:id/reviews - PUT /api/education/reviews/:id paralelo_con: [GAP-P2-005] - id: GAP-P2-005 nombre: "OAuth Flows Completos" descripcion: "Completar flujos de OAuth para Google/Facebook/Apple" capa: Frontend modulo: OQI-001-Auth esfuerzo: 12h prioridad: P2 impacto: "Login social está parcialmente implementado" dependencias: [] entregables: - components/auth/OAuthButtons.tsx - Callback handlers para cada provider - Error handling + fallback flows paralelo_con: [GAP-P2-004] # --------------------------------------------------------------------------- # SPRINT 4: Consolidación Arquitectural # --------------------------------------------------------------------------- - sprint: 4 nombre: "Consolidación Arquitectural" duracion: "2 semanas" esfuerzo_total: "No estimado (refactor)" objetivo: "Resolver inconsistencias arquitecturales y mejorar mantenibilidad" tareas: - id: ARCH-001 nombre: "Centralizar Acceso Python via Express Gateway" descripcion: "Migrar acceso directo Python (3083, 3085) para pasar por Express" capa: Backend modulo: Architecture esfuerzo: "TBD" prioridad: P1 impacto: "Sin auth centralizada, CORS issues, sin rate limiting" dependencias: [] entregables: - apps/backend/src/routes/ml.routes.ts (proxy a 3083) - apps/backend/src/routes/llm.routes.ts (proxy a 3085) - Middleware: auth, rate limiting, logging archivos_afectados: - apps/frontend/src/services/mlService.ts - apps/frontend/src/services/llmAgentService.ts - apps/frontend/src/services/backtestService.ts paralelo_con: [] - id: ARCH-002 nombre: "Migrar Services a apiClient Centralizado" descripcion: "Migrar 5 services que no usan apiClient para auto-refresh y retry logic" capa: Frontend modulo: Architecture esfuerzo: "TBD" prioridad: P1 impacto: "Sin auto-refresh tokens, sin retry logic, errores inconsistentes" dependencias: [ARCH-001] entregables: - Refactor portfolio.service.ts - Refactor adminService.ts - Refactor mlService.ts - Refactor llmAgentService.ts - Refactor backtestService.ts archivos_afectados: 5 archivos en apps/frontend/src/services/ paralelo_con: [] notas: "Ejecutar DESPUÉS de ARCH-001 para evitar doble refactor" - id: TEST-001 nombre: "Tests de Integración E2E" descripcion: "Crear suite de tests end-to-end para validar flujos críticos" capa: Testing modulo: QA esfuerzo: "TBD" prioridad: P2 impacto: "Validar coherencia completa de la plataforma" dependencias: [ARCH-001, ARCH-002] entregables: - tests/e2e/auth-flow.spec.ts - tests/e2e/trading-flow.spec.ts - tests/e2e/investment-flow.spec.ts paralelo_con: [] notas: "Ejecutar al final para validar todo" # ============================================================================= # GRAFO DE DEPENDENCIAS # ============================================================================= grafo_dependencias: # Sprint 1 - P0 GAP-P0-001: [] # Independiente - puede ejecutarse en paralelo GAP-P0-002: [] # Independiente - puede ejecutarse en paralelo GAP-P0-003-FASE1: [] # Independiente GAP-P0-003-FASE2: [GAP-P0-003-FASE1] # Depende de fase 1 # Sprint 2 - P1 GAP-P1-001: [] # Independiente GAP-P1-002: [] # Independiente GAP-P1-003: [GAP-P1-001] # Necesita Market Data Service GAP-P1-004: [] # Independiente # Sprint 3 - P2 GAP-P2-001: [] # Independiente GAP-P2-002: [] # Independiente GAP-P2-003: [] # Independiente GAP-P2-004: [] # Independiente GAP-P2-005: [] # Independiente # Sprint 4 - Arquitectura ARCH-001: [] # Debe ejecutarse primero ARCH-002: [ARCH-001] # Depende de proxy gateway TEST-001: [ARCH-001, ARCH-002] # Depende de refactors completos # ============================================================================= # RUTAS CRITICAS (Critical Paths) # ============================================================================= rutas_criticas: - id: RUTA-001 nombre: "Auth Flow Completo" descripcion: "Flujo de autenticación desde registro hasta 2FA" path: [GAP-P0-001, GAP-P0-002, GAP-P1-004] duracion_total: 30h impacto: "Alta - Seguridad y acceso de usuarios" - id: RUTA-002 nombre: "Trading Core" descripcion: "Trading agents con datos de mercado y visualización" path: [GAP-P0-003-FASE1, GAP-P0-003-FASE2, GAP-P1-001, GAP-P1-003] duracion_total: 80h impacto: "Crítica - Feature principal de la plataforma" - id: RUTA-003 nombre: "Consolidación Arquitectural" descripcion: "Refactor para centralizar acceso y mejorar mantenibilidad" path: [ARCH-001, ARCH-002, TEST-001] duracion_total: "TBD" impacto: "Media - Mejora técnica sin impacto funcional inmediato" # ============================================================================= # CADENAS DE DEPENDENCIA POR CAPA (DDL -> Backend -> Frontend) # ============================================================================= cadenas_capas: - cadena: CADENA-001 nombre: "Trading Bots" flujo: "DDL(trading.bots) -> Backend(bots.service) -> Frontend(BotManager)" estado_actual: ddl: "COMPLETO" backend: "PARCIAL" frontend: "BLOQUEADO (GAP-P0-003)" gap_bloqueante: GAP-P0-003-FASE1 - cadena: CADENA-002 nombre: "ML Predictions" flujo: "DDL(ml.predictions) -> Backend(ml.service) -> Frontend(mlService) -> Charts(overlays)" estado_actual: ddl: "COMPLETO" backend: "COMPLETO" frontend: "PARCIAL (GAP-P1-003)" gap_bloqueante: GAP-P1-003 - cadena: CADENA-003 nombre: "Notifications" flujo: "DDL(auth.notifications) -> Backend(notifications) -> Frontend(notification.service) -> Push(FCM)" estado_actual: ddl: "COMPLETO" backend: "PARCIAL (GAP-P1-002)" frontend: "COMPLETO" gap_bloqueante: GAP-P1-002 - cadena: CADENA-004 nombre: "User Profiles" flujo: "DDL(auth.user_profiles) -> Backend(userService) -> Frontend(ProfilePage)" estado_actual: ddl: "COMPLETO" backend: "BLOQUEADO (GAP-P0-002)" frontend: "COMPLETO" gap_bloqueante: GAP-P0-002 # ============================================================================= # ESTRATEGIA DE PARALELIZACION # ============================================================================= estrategia_paralelizacion: descripcion: "Maximizar eficiencia ejecutando tareas independientes en paralelo" sprint_1_paralelo: grupo_1: tareas: [GAP-P0-001, GAP-P0-002] razon: "Frontend y Backend independientes" recursos: "2 desarrolladores" grupo_2: tareas: [GAP-P0-003-FASE1] razon: "Después de grupo 1, tarea larga (20h)" recursos: "1 desarrollador" sprint_2_paralelo: grupo_1: tareas: [GAP-P1-001, GAP-P1-002, GAP-P1-004] razon: "3 tareas backend independientes" recursos: "3 desarrolladores" grupo_2: tareas: [GAP-P1-003] razon: "Espera a GAP-P1-001 completarse" recursos: "1 desarrollador" dependencia_bloqueante: GAP-P1-001 sprint_3_paralelo: grupo_1: tareas: [GAP-P2-001, GAP-P2-002, GAP-P2-003] razon: "3 tareas backend independientes" recursos: "3 desarrolladores" grupo_2: tareas: [GAP-P2-004, GAP-P2-005] razon: "2 tareas independientes (backend + frontend)" recursos: "2 desarrolladores" sprint_4_secuencial: razon: "Refactors arquitecturales deben ser secuenciales para evitar conflictos" orden: [ARCH-001, ARCH-002, TEST-001] # ============================================================================= # CHECKPOINTS DE VALIDACION # ============================================================================= checkpoints: - id: CP-01 nombre: "Sprint 1 Completado" criterios: - "GAP-P0-001, GAP-P0-002, GAP-P0-003 resueltos" - "0 gaps bloqueantes (P0)" - "Build exitoso en backend + frontend" - "Tests unitarios pasan" salida_esperada: "Plataforma lista para producción mínima viable" - id: CP-02 nombre: "Sprint 2 Completado" criterios: - "GAP-P1-001 a GAP-P1-004 resueltos" - "Cobertura DDL-Backend >= 95%" - "Market data service funcional" - "2FA operativo" salida_esperada: "Funcionalidad crítica completa" - id: CP-03 nombre: "Sprint 3 Completado" criterios: - "GAP-P2-001 a GAP-P2-005 resueltos" - "Audit system operativo" - "Multi-moneda funcional" - "OAuth completo" salida_esperada: "Experiencia de usuario mejorada" - id: CP-04 nombre: "Sprint 4 Completado" criterios: - "Todos los servicios usan apiClient" - "Acceso Python centralizado via Express" - "Tests E2E pasan al 100%" - "Coherencia global >= 95%" salida_esperada: "Arquitectura consolidada y mantenible" # ============================================================================= # METRICAS DE PROGRESO # ============================================================================= metricas_progreso: estado_inicial: fecha: "2026-01-27" coherencia_global: 81.25% gaps_p0: 3 gaps_p1: 4 gaps_p2: 5 servicios_apiClient: 64% targets: cp01: coherencia_global: 87% gaps_p0: 0 gaps_p1: 4 gaps_p2: 5 cp02: coherencia_global: 92% gaps_p0: 0 gaps_p1: 0 gaps_p2: 5 cp03: coherencia_global: 97% gaps_p0: 0 gaps_p1: 0 gaps_p2: 0 cp04: coherencia_global: 98% gaps_p0: 0 gaps_p1: 0 gaps_p2: 0 servicios_apiClient: 100% acceso_python_centralizado: 100% # ============================================================================= # RIESGOS Y MITIGACIONES # ============================================================================= riesgos: - id: RISK-001 descripcion: "GAP-P0-003 es muy grande (40h) - riesgo de bloquear sprint 1" probabilidad: Media impacto: Alto mitigacion: "Dividido en 2 fases (20h cada una) - fase 2 puede ir a sprint 2 si es necesario" - id: RISK-002 descripcion: "ARCH-001 puede generar regresiones en frontend" probabilidad: Media impacto: Medio mitigacion: "Ejecutar después de todos los gaps funcionales - sprint 4 dedicado" - id: RISK-003 descripcion: "Dependencia de GAP-P1-001 bloquea GAP-P1-003" probabilidad: Baja impacto: Medio mitigacion: "GAP-P1-001 tiene prioridad en sprint 2 - ejecutar primero" - id: RISK-004 descripcion: "Falta estimación en tareas de refactor (ARCH-001, ARCH-002)" probabilidad: Alta impacto: Bajo mitigacion: "Sprint 4 es flexible - puede extenderse si es necesario" # ============================================================================= # RECURSOS RECOMENDADOS # ============================================================================= recursos_recomendados: equipo_minimo: - rol: "Backend Developer" cantidad: 2 skills: "TypeScript, Express.js, PostgreSQL" - rol: "Frontend Developer" cantidad: 2 skills: "React, TypeScript, Zustand, TanStack Query" - rol: "QA Engineer" cantidad: 1 skills: "E2E testing, Playwright/Cypress" equipo_optimo: - rol: "Backend Developer" cantidad: 3 razon: "Permite paralelizar tareas backend en sprint 2 y 3" - rol: "Frontend Developer" cantidad: 2 razon: "Suficiente para tareas frontend en paralelo" - rol: "QA Engineer" cantidad: 1 razon: "Validación continua durante sprints" - rol: "DevOps/Architect" cantidad: 1 razon: "Para sprint 4 (consolidación arquitectural)" # ============================================================================= # NOTAS FINALES # ============================================================================= notas_finales: - "Este plan es DINAMICO - debe ajustarse según descubrimientos durante ejecución" - "Priorizar SIEMPRE gaps P0 antes de avanzar a P1" - "Validar build + tests después de CADA tarea completada" - "Documentar cambios arquitecturales en ADR (Architecture Decision Records)" - "Mantener COHERENCE-MASTER-REPORT.md actualizado con progreso" - "Los refactors arquitecturales (Sprint 4) NO deben bloquear lanzamiento si P0/P1/P2 están resueltos" - "Considerar lanzamiento gradual: MVP con P0 -> Feature complete con P1 -> Polish con P2" # ============================================================================= # REFERENCIAS # ============================================================================= referencias: - archivo: orchestration/analisis/coherencia/COHERENCE-MASTER-REPORT.md descripcion: "Reporte maestro de coherencia con todos los gaps identificados" - archivo: orchestration/analisis/coherencia/GAPS-TRACKING.yml descripcion: "Tracking detallado de cada gap" - archivo: orchestration/PROXIMA-ACCION.md descripcion: "Estado actual y próxima acción inmediata" - archivo: orchestration/analisis/coherencia/DDL-BACKEND-COHERENCE.yml descripcion: "Mapeo DDL -> Backend con gaps identificados" - archivo: orchestration/analisis/coherencia/BACKEND-FRONTEND-COHERENCE.yml descripcion: "Mapeo Backend -> Frontend con gaps identificados" --- # Generado por: Claude Code (Opus 4.5) # Sistema: SIMCO v4.0.0 # Fecha: 2026-01-27 # Version: 1.0.0