trading-platform/orchestration/analisis/integracion/EXECUTION-ORDER.yml
Adrian Flores Cortes 090fe5d278 feat: Add Trading Agents types for frontend
Create comprehensive TypeScript type definitions for Trading Agents (Atlas, Orion, Nova) in the frontend.

- Align with backend trading-agents.client.ts interfaces
- Export AgentType, AgentStatus, BotStatus types
- Define TradingBot, AgentMetrics, AgentPosition, AgentTrade interfaces
- Include utility functions for status mapping and display names
- Full JSDoc documentation for all types
- Export from main types/index.ts

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 15:40:04 -06:00

646 lines
22 KiB
YAML

# 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