trading-platform/orchestration/tareas/TASK-2026-02-04-ANALISIS-PLANIFICACION-INTEGRAL/inventarios/CONSOLIDADO-GAPS.yml
Adrian Flores Cortes b9098ca91c [TASK-2026-02-05-ANALISIS-VALIDACION-MODELADO-BD] docs: Complete 6-phase database modeling analysis
Comprehensive analysis of 101 DDL tables across 11 schemas:
- Phase 1-2: Schema validation, 37 gaps cataloged (3 resolved)
- Phase 3: Integrity audit (80 FKs, 89 CHECKs, 17 issues: 2 CRIT/5 HIGH)
- Phase 4: DDL-Backend mapping (84% interfaces, 75% services, 61% controllers)
- Phase 5: Documentation purge catalog (201 files analyzed)
- Phase 6: Remediation plan (4 sprints, 204h)

Key finding: Backend uses raw SQL + pg Pool (NOT TypeORM).
13 deliverables + updated inventories to v2.0.0.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 16:48:45 -06:00

290 lines
7.5 KiB
YAML

consolidado_gaps:
version: 1.0.0
fecha: "2026-02-04"
fuentes:
- TASK-2026-02-03-ANALISIS-DDL-MODELADO
- TASK-2026-02-03-ANALISIS-FRONTEND-UXUI
- GAPS-TRACKING.yml
- CROSS-VALIDATION-GAPS.yml
resumen:
total_gaps: 24
p0_bloqueantes: 3
p1_criticos: 6
p2_importantes: 10
p3_menores: 5
story_points_total: 558
horas_estimadas: 430
gaps_p0_bloqueantes:
- id: GAP-P0-001
nombre: Password Recovery sin UI
modulo: OQI-001 Auth
capa: Frontend
descripcion: "Backend tiene email.service.ts pero no hay endpoints de reset. Frontend falta PasswordRecovery.tsx y PasswordReset.tsx"
esfuerzo_horas: 8
story_points: 8
dependencias: []
bloquea: ["User self-service"]
estado: PENDIENTE
asignado_a: SUBTASK-002-OQI-001-AUTH
- id: GAP-P0-002
nombre: User Profile Management sin servicio
modulo: OQI-001 Auth
capa: Backend
descripcion: "No existe userService.ts backend. users.controller.ts falta. Frontend sin ProfileSettings component."
esfuerzo_horas: 6
story_points: 5
dependencias: []
bloquea: ["User cannot update personal data"]
estado: PENDIENTE
asignado_a: ST-2.3
- id: GAP-P0-003
nombre: Trading Agents sin UI
modulo: OQI-003 Trading
capa: Full Stack
descripcion: "Backend bots.service.ts 60% completo. Frontend 0%: BotManager.tsx, BotCard, BotConfigWizard, BotMonitoringDashboard todos faltantes."
esfuerzo_horas: 40
story_points: 40
dependencias:
- ST-3.4
bloquea: ["Feature vendida no disponible"]
estado: PENDIENTE
asignado_a: SUBTASK-003-OQI-003-TRADING
gaps_p1_criticos:
- id: GAP-P1-001
nombre: Market Data OHLCV Service
modulo: OQI-003 Trading
capa: Backend
descripcion: "DDL market_data.ohlcv_5m/15m existe. NO hay marketData.service.ts ni market-data.controller.ts. Charts bloqueados."
esfuerzo_horas: 16
story_points: 16
dependencias: []
bloquea:
- CHAIN-001
- FE Charts históricos
- ML Overlays
estado: PENDIENTE
asignado_a: ST-2.1
critico: true
- id: GAP-P1-002
nombre: Notifications sin API Completa
modulo: Core
capa: Backend
descripcion: "DDL OK. Backend falta notification.service.ts completo, push.service.ts, notification.controller.ts"
esfuerzo_horas: 20
story_points: 18
dependencias: []
bloquea:
- CHAIN-002
- Push notifications
- Trading alerts
estado: PENDIENTE
asignado_a: ST-2.2
- id: GAP-P1-003
nombre: ML Chart Overlays sin UI
modulo: OQI-006 ML
capa: Frontend
descripcion: "Backend ML models existen pero frontend no puede visualizar. Faltan MLPredictionOverlay.tsx, SignalMarkers.tsx, ICTConceptsOverlay.tsx"
esfuerzo_horas: 24
story_points: 21
dependencias:
- GAP-P1-001
bloquea: ["OQI-006 ↔ OQI-003 integration"]
estado: PENDIENTE
asignado_a: SUBTASK-004-OQI-006-ML
- id: GAP-P1-004
nombre: 2FA sin flujo completo
modulo: OQI-001 Auth
capa: Full Stack
descripcion: "Backend twofa.service.ts existe pero faltan setup/verify endpoints. Frontend falta TwoFactorSetup.tsx, TwoFactorVerifyModal.tsx, BackupCodesDisplay.tsx"
esfuerzo_horas: 16
story_points: 13
dependencias: []
bloquea: ["Enhanced security"]
estado: PENDIENTE
asignado_a: ST-2.5
- id: GAP-P1-005
nombre: education.instructors sin tabla
modulo: OQI-002 Education
capa: DDL
descripcion: "Tabla para perfiles de instructores no existe. instructor.service.ts ya creado pero sin tabla."
esfuerzo_horas: 4
story_points: 3
dependencias: []
bloquea: ["instructor.service.ts"]
estado: PENDIENTE
asignado_a: ST-1.1
- id: GAP-P1-006
nombre: course_tags sin campo
modulo: OQI-002 Education
capa: DDL
descripcion: "Campo para filtrado de cursos por tags faltante. tag.service.ts existe."
esfuerzo_horas: 2
story_points: 2
dependencias: []
bloquea: ["Course filtering"]
estado: PENDIENTE
asignado_a: ST-1.2
gaps_p2_importantes:
- id: GAP-P2-001
nombre: Audit System Service
modulo: Core
capa: Backend
esfuerzo_horas: 32
story_points: 28
estado: PENDIENTE
asignado_a: ST-2.4
- id: GAP-P2-002
nombre: Currency Exchange Service
modulo: OQI-005 Payments
capa: Backend
esfuerzo_horas: 16
story_points: 13
estado: PENDIENTE
- id: GAP-P2-003
nombre: Risk Assessment Service
modulo: OQI-004 Investment
capa: Backend
esfuerzo_horas: 12
story_points: 10
estado: PENDIENTE
- id: GAP-P2-004
nombre: Course Reviews Endpoints
modulo: OQI-002 Education
capa: Backend
esfuerzo_horas: 6
story_points: 5
estado: PENDIENTE
- id: GAP-P2-005
nombre: OAuth Flows Incomplete
modulo: OQI-001 Auth
capa: Backend
esfuerzo_horas: 12
story_points: 10
estado: PENDIENTE
cadenas_bloqueo:
CHAIN-001:
nombre: Market Data Pipeline
estado: BLOQUEADO_COMPLETO
secuencia:
- paso: DDL market_data
estado: OK
- paso: Backend Service
estado: MISSING
gap: GAP-P1-001
- paso: API REST
estado: MISSING
depende_de: Backend Service
- paso: Frontend Charts
estado: BLOCKED
depende_de: API REST
- paso: ML Overlays
estado: BLOCKED
depende_de: Frontend Charts
CHAIN-002:
nombre: Notifications Pipeline
estado: BLOQUEADO
secuencia:
- paso: DDL auth.notifications
estado: OK
- paso: Backend Service
estado: PARTIAL
gap: GAP-P1-002
- paso: API REST
estado: MISSING
- paso: Frontend Consumer
estado: PARTIAL
CHAIN-003:
nombre: Trading Agents E2E
estado: BLOQUEADO
secuencia:
- paso: DDL trading.bots
estado: OK
- paso: Backend Service
estado: PARTIAL_60%
- paso: API Endpoints
estado: PARTIAL_40%
gap: ST-3.4
- paso: Frontend UI
estado: MISSING_0%
gap: GAP-P0-003
arquitectura:
inconsistencias:
- id: ARCH-001
nombre: Direct Access to Python Services
riesgo: ALTO
descripcion: "Frontend bypasses Express.js para acceder a ML Engine y LLM Agent directamente"
servicios_afectados:
- mlService.ts
- llmAgentService.ts
- backtestService.ts
solucion: Crear proxy endpoints en Express
esfuerzo_horas: 16
asignado_a: ST-5.1
- id: ARCH-002
nombre: Inconsistent apiClient Usage
riesgo: MEDIO
descripcion: "5 servicios no usan apiClient centralizado"
servicios_afectados:
- portfolio.service.ts
- adminService.ts
- mlService.ts
- llmAgentService.ts
- backtestService.ts
solucion: Refactorizar para usar apiClient
esfuerzo_horas: 8
asignado_a: ST-5.2
documentacion_obsoleta:
a_purgar:
- archivo: orchestration/tareas/TASK-2026-02-03-DDL-VALIDATION/
razon: Supersedida por ANALISIS-DDL-MODELADO
accion: MOVER_A_ARCHIVE
- archivo: docs/90-transversal/gaps/ANALISIS-GAPS-DOCUMENTACION.md
razon: Marcado OUTDATED, rutas rotas
accion: ELIMINAR
a_actualizar:
- archivo: BACKEND_INVENTORY.yml
gap: Conteo 57→79 endpoints
- archivo: FRONTEND_INVENTORY.yml
gap: Conteo 90→146 componentes
- archivo: PROJECT-STATUS.md
gap: Fecha 2026-01-30
metricas_objetivo:
coherencia_global:
actual: 81.25%
objetivo: 95%
ddl_backend:
actual: 85%
objetivo: 98%
backend_frontend:
actual: 77.5%
objetivo: 92%
test_coverage:
actual: 15%
objetivo: 40%