- Rename _archivo to _archive (standard convention) - Move analisis/, planes/ to _archive/ - Archive extra root files - Update _MAP.md with standardized structure Standard: SIMCO-ESTANDAR-ORCHESTRATION v1.0.0 Level: PROVIDER (L1A) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
5.7 KiB
5.7 KiB
VALIDACIÓN DE PLAN - SPRINT 5
Fecha: 2026-01-10 Fase: 4 - Validación de Planeación Documento Plan: PLAN-CORRECCION-SPRINT-5-2026-01-10.md Documento Análisis: ANALISIS-VALIDACION-SPRINT-5-2026-01-10.md
MATRIZ DE COBERTURA GAPS vs TASKS
| GAP ID | Descripción | Task Asignada | Cubierto |
|---|---|---|---|
| GAP-DDL-001 | Schema no declarado en 01-schemas.sql | TASK-A1 | ✅ |
| GAP-DDL-002 | ENUMs no centralizados en 02-enums.sql | TASK-A2 | ✅ |
| GAP-DDL-003 | create-database.sh no incluye whatsapp | TASK-A3 | ✅ |
| GAP-BE-001 | Módulo no registrado en app.module.ts | TASK-B1 | ✅ |
| GAP-BE-002 | Configuración no definida en env.config.ts | TASK-B2 | ✅ |
| GAP-BE-003 | Notifications no importa WhatsApp | TASK-B3 | ✅ |
| GAP-FE-001 | Import incorrecto de api-client | TASK-C1 | ✅ |
| GAP-FE-002 | Ruta no registrada en router | TASK-C2 | ✅ |
| GAP-FE-003 | Navegación no actualizada | TASK-C3 | ✅ |
Cobertura: 9/9 GAPS = 100%
VALIDACIÓN DE DEPENDENCIAS
Orden de Ejecución de Tasks
TASK-A1 (01-schemas.sql)
↓ dependencia: schema debe existir
TASK-A2 (02-enums.sql) ← requiere schema whatsapp
↓ dependencia: enums deben existir
TASK-A3 (create-database.sh) ← requiere schema y enums
↓ validación: recrear DB
[VALIDACIÓN DDL]
↓
TASK-B1 (app.module.ts) ← independiente
TASK-B2 (env.config.ts) ← independiente
TASK-B3 (notifications.module.ts) ← requiere TASK-B1 (módulo debe existir)
↓ validación: tests backend
[VALIDACIÓN BACKEND]
↓
TASK-C1 (whatsapp.api.ts) ← independiente
TASK-C2 (router/index.tsx) ← independiente
TASK-C3 (DashboardLayout.tsx) ← independiente
↓ validación: build frontend
[VALIDACIÓN FRONTEND]
Estado: ✅ Orden correcto, dependencias respetadas
VERIFICACIÓN DE CAMBIOS ESPECÍFICOS
TASK-A1: 01-schemas.sql
- Agrega
CREATE SCHEMA IF NOT EXISTS whatsapp; - Agrega
COMMENT ON SCHEMA whatsapp - Ubicación correcta (después de webhooks)
TASK-A2: 02-enums.sql
- Agrega 3 tipos ENUM de whatsapp
- Elimina enums duplicados de 02-whatsapp-messages.sql
- Ubicación correcta (después de webhooks enums)
TASK-A3: create-database.sh
- Agrega GRANT USAGE para whatsapp
- Agrega "whatsapp" a SCHEMA_ORDER
- Agrega GRANT ALL PRIVILEGES ON TABLES
- Agrega GRANT ALL PRIVILEGES ON SEQUENCES
- Agrega GRANT EXECUTE ON FUNCTIONS
TASK-B1: app.module.ts
- Agrega import de WhatsAppModule
- Agrega WhatsAppModule a imports array
TASK-B2: env.config.ts
- Agrega objeto whatsapp en envConfig()
- Agrega validación Joi para variables WhatsApp
TASK-B3: notifications.module.ts
- Agrega import de WhatsAppModule
- Agrega WhatsAppModule a imports
TASK-C1: whatsapp.api.ts
- Cambia import de apiClient a api
- Reemplaza todas las ocurrencias (10 cambios)
TASK-C2: router/index.tsx
- Agrega import de WhatsAppSettings
- Agrega Route para /dashboard/whatsapp
TASK-C3: DashboardLayout.tsx
- Agrega import de icono MessageSquare
- Agrega item WhatsApp a navigation array
VALIDACIÓN DE IMPACTO
Archivos Existentes Afectados
| Archivo | Tipo de Cambio | Riesgo | Mitigación |
|---|---|---|---|
| 01-schemas.sql | Adición | Bajo | Solo agrega líneas |
| 02-enums.sql | Adición | Bajo | Solo agrega líneas |
| 02-whatsapp-messages.sql | Eliminación | Medio | Elimina enums duplicados |
| create-database.sh | Adición | Bajo | Solo agrega grants |
| app.module.ts | Adición | Bajo | Solo agrega módulo |
| env.config.ts | Adición | Bajo | Solo agrega config |
| notifications.module.ts | Adición | Bajo | Solo agrega import |
| whatsapp.api.ts | Modificación | Medio | Cambia nombre de import |
| router/index.tsx | Adición | Bajo | Solo agrega ruta |
| DashboardLayout.tsx | Adición | Bajo | Solo agrega navegación |
Riesgo General: BAJO
CHECKLIST DE VALIDACIÓN
Pre-Ejecución
- Todos los GAPS tienen task asignada
- Orden de ejecución respeta dependencias
- Cambios son específicos y localizados
- No hay conflictos entre tasks
- Criterios de validación definidos
Criterios de Éxito
- DDL: 37 tablas tras recreación (35 + 2 whatsapp)
- DDL: 3 enums en schema whatsapp
- Backend: 22 tests passing en módulo whatsapp
- Backend: App compila sin errores
- Frontend: Build exitoso
- Frontend: Ruta /dashboard/whatsapp accesible
- Frontend: WhatsApp visible en navegación
GAPS MENORES NO CUBIERTOS
Los siguientes GAPS menores fueron identificados pero no incluidos en el plan por ser de baja prioridad:
| GAP ID | Descripción | Razón de Exclusión |
|---|---|---|
| GAP-DDL-004 | README.md no documentado | Documentación opcional |
| GAP-DDL-005 | Cambios Sprint 5 no registrados | Documentación opcional |
| GAP-BE-004 | TODO: Encrypt access_token | Mejora de seguridad futura |
| GAP-BE-005 | TODO: Emit events | Feature adicional |
| GAP-FE-004 | Export incompleto | No bloquea funcionalidad |
Decisión: Estos GAPS se documentan para futura iteración pero no bloquean la funcionalidad principal.
RESULTADO DE VALIDACIÓN
| Aspecto | Estado |
|---|---|
| Cobertura de GAPS críticos | ✅ 100% |
| Orden de dependencias | ✅ Correcto |
| Especificidad de cambios | ✅ Detallado |
| Criterios de validación | ✅ Definidos |
| Riesgo de impacto | ✅ Bajo |
VEREDICTO: PLAN APROBADO PARA EJECUCIÓN
Validado: 2026-01-10 Estado: APROBADO Y EJECUTADO
EJECUCION
Fecha Ejecución: 2026-01-10 Reporte: REPORTE-EJECUCION-SPRINT-5-CORRECCION-2026-01-10.md Resultado: 9/9 GAPS resueltos (100%)