Phase C (Context) and A (Analysis) complete: - Analyzed 11 schemas, ~90 tables, 68+ enums - Identified 15 gaps (4 P0, 4 P1, 7 P2) - Detected 5 conflicts and 3 duplicities - Created validation matrix DDL vs requirements Phase P (Planning) in progress: - 7-phase execution plan with CAPVED compliance - Subtask delegation plan for parallel execution - Estimated effort: 126h (without MT4) Key findings: - GAP-002: financial.refunds missing (P0 - Stripe blocker) - GAP-003: education.instructors missing (P0) - CONF-001: transaction_type enum conflict - DUP-001: timeframe enum duplicated Deliverables created: - 01-CAPTURA.md, 02-ANALISIS.md, 03-PLANIFICACION.md - DDL-GAPS-REGISTRY.yml - DDL-CONFLICTS-REGISTRY.yml - DDL-VALIDATION-MATRIX.yml - DELEGATION-PLAN.yml Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
194 lines
5.0 KiB
YAML
194 lines
5.0 KiB
YAML
# DDL-GAPS-REGISTRY.yml
|
|
# Registro de gaps identificados en el modelado DDL
|
|
# Tarea: TASK-2026-02-03-ANALISIS-DDL-MODELADO
|
|
|
|
metadata:
|
|
fecha_creacion: "2026-02-03"
|
|
fecha_actualizacion: "2026-02-03"
|
|
total_gaps: 15
|
|
por_prioridad:
|
|
P0: 4
|
|
P1: 4
|
|
P2: 7
|
|
|
|
gaps_criticos_P0:
|
|
- id: "GAP-001"
|
|
schema: "trading"
|
|
objeto: "price_alerts"
|
|
tipo: "missing_fk"
|
|
descripcion: "Tabla price_alerts sin FK a trading.symbols"
|
|
impacto: "Integridad referencial comprometida"
|
|
epica: "OQI-003"
|
|
resolucion:
|
|
accion: "Agregar FK symbol_id"
|
|
esfuerzo: "2h"
|
|
prioridad: "P0"
|
|
estado: "pendiente"
|
|
|
|
- id: "GAP-002"
|
|
schema: "financial"
|
|
objeto: "refunds"
|
|
tipo: "missing_table"
|
|
descripcion: "Tabla refunds no existe - requerida para Stripe"
|
|
impacto: "Funcionalidad refunds bloqueada"
|
|
epica: "OQI-005"
|
|
resolucion:
|
|
accion: "Crear tabla completa"
|
|
esfuerzo: "8h"
|
|
prioridad: "P0"
|
|
estado: "pendiente"
|
|
|
|
- id: "GAP-003"
|
|
schema: "education"
|
|
objeto: "instructors"
|
|
tipo: "missing_table"
|
|
descripcion: "Tabla instructors no definida"
|
|
impacto: "Videos y cursos sin autor"
|
|
epica: "OQI-002"
|
|
resolucion:
|
|
accion: "Crear tabla + FK en courses"
|
|
esfuerzo: "10h"
|
|
prioridad: "P0"
|
|
estado: "pendiente"
|
|
|
|
- id: "GAP-004"
|
|
schema: "ml"
|
|
objeto: "overlay_predictions"
|
|
tipo: "incomplete_design"
|
|
descripcion: "Overlay predicciones incompleto"
|
|
impacto: "Señales ML no se muestran en charts"
|
|
epica: "OQI-006"
|
|
resolucion:
|
|
accion: "Completar diseño overlay"
|
|
esfuerzo: "8h"
|
|
prioridad: "P0"
|
|
estado: "pendiente"
|
|
|
|
gaps_moderados_P1:
|
|
- id: "GAP-005"
|
|
schema: "education"
|
|
objeto: "course_tags"
|
|
tipo: "missing_table"
|
|
descripcion: "Falta tabla para tags de cursos"
|
|
impacto: "Búsqueda y SEO limitados"
|
|
epica: "OQI-002"
|
|
resolucion:
|
|
accion: "Crear tabla + tabla M:N"
|
|
esfuerzo: "6h"
|
|
prioridad: "P1"
|
|
estado: "pendiente"
|
|
|
|
- id: "GAP-006"
|
|
schema: "trading"
|
|
objeto: "drawing_tools"
|
|
tipo: "missing_tables"
|
|
descripcion: "Tablas para herramientas de dibujo no existen"
|
|
impacto: "Feature drawing tools huérfana"
|
|
epica: "OQI-003"
|
|
resolucion:
|
|
accion: "Diseñar e implementar tablas"
|
|
esfuerzo: "12h"
|
|
prioridad: "P1"
|
|
estado: "pendiente"
|
|
|
|
- id: "GAP-007"
|
|
schema: "investment"
|
|
objeto: "agent_executions"
|
|
tipo: "incomplete_table"
|
|
descripcion: "Tabla agent_executions incompleta"
|
|
impacto: "Tracking agentes limitado"
|
|
epica: "OQI-004"
|
|
resolucion:
|
|
accion: "Agregar columnas faltantes"
|
|
esfuerzo: "4h"
|
|
prioridad: "P1"
|
|
estado: "pendiente"
|
|
|
|
- id: "GAP-008"
|
|
schema: "ml"
|
|
objeto: "predictions"
|
|
tipo: "missing_index"
|
|
descripcion: "Falta índice compuesto symbol+timeframe+created"
|
|
impacto: "Performance queries degradada"
|
|
epica: "OQI-006"
|
|
resolucion:
|
|
accion: "Crear índice compuesto"
|
|
esfuerzo: "2h"
|
|
prioridad: "P1"
|
|
estado: "pendiente"
|
|
|
|
gaps_menores_P2:
|
|
- id: "GAP-009"
|
|
schema: "auth"
|
|
objeto: "users"
|
|
tipo: "missing_index"
|
|
descripcion: "Falta índice en locked_until"
|
|
impacto: "Performance menor"
|
|
epica: "OQI-001"
|
|
resolucion:
|
|
accion: "Agregar índice"
|
|
esfuerzo: "1h"
|
|
prioridad: "P2"
|
|
estado: "pendiente"
|
|
|
|
- id: "GAP-010"
|
|
schema: "education"
|
|
objeto: "course_reviews"
|
|
tipo: "missing_column"
|
|
descripcion: "Sin soft delete (deleted_at)"
|
|
impacto: "Gestión datos limitada"
|
|
epica: "OQI-002"
|
|
resolucion:
|
|
accion: "Agregar columna deleted_at"
|
|
esfuerzo: "2h"
|
|
prioridad: "P2"
|
|
estado: "pendiente"
|
|
|
|
- id: "GAP-011"
|
|
schema: "audit"
|
|
objeto: "audit_logs"
|
|
tipo: "missing_partitioning"
|
|
descripcion: "Sin particionamiento por fecha"
|
|
impacto: "Escalabilidad futura"
|
|
epica: "Transversal"
|
|
resolucion:
|
|
accion: "Implementar particionamiento"
|
|
esfuerzo: "8h"
|
|
prioridad: "P2"
|
|
estado: "pendiente"
|
|
|
|
- id: "GAP-012"
|
|
schema: "llm"
|
|
objeto: "conversations"
|
|
tipo: "missing_index"
|
|
descripcion: "Falta índice GIN en tags"
|
|
impacto: "Búsqueda por tags lenta"
|
|
epica: "OQI-007"
|
|
resolucion:
|
|
accion: "Agregar índice GIN"
|
|
esfuerzo: "1h"
|
|
prioridad: "P2"
|
|
estado: "pendiente"
|
|
|
|
gaps_documentacion:
|
|
- id: "GAP-DOC-001"
|
|
ubicacion: "docs/02-definicion-modulos/OQI-003-trading-charts/especificaciones/"
|
|
archivo: "ET-TRD-003-database.md"
|
|
problema: "Desactualizado vs DDL actual"
|
|
accion: "Actualizar con tablas actuales"
|
|
prioridad: "P2"
|
|
|
|
- id: "GAP-DOC-002"
|
|
ubicacion: "docs/02-definicion-modulos/OQI-005-pagos-stripe/especificaciones/"
|
|
archivo: "ET-PAY-005-refunds.md"
|
|
problema: "No existe"
|
|
accion: "Crear cuando se implemente tabla"
|
|
prioridad: "P0"
|
|
|
|
- id: "GAP-DOC-003"
|
|
ubicacion: "orchestration/inventarios/"
|
|
archivo: "DATABASE_INVENTORY.yml"
|
|
problema: "Desactualizado"
|
|
accion: "Sincronizar con DDL actual"
|
|
prioridad: "P1"
|