# FASE 2: ANÁLISIS DE COHERENCIA **ID:** TASK-2026-02-03-ANALISIS-INTEGRAL-TEMPLATE-SAAS **Fecha:** 2026-02-03 **Estado:** COMPLETADA **SP Ejecutados:** 19 --- ## 1. RESUMEN EJECUTIVO | Análisis | Resultado | Estado | |----------|-----------|--------| | Coherencia DDL→Backend | 93% | OK | | Coherencia Backend→Frontend | 58% endpoints | GAPS | | Trazabilidad RF/RNF | 97.3% | OK | | Dead Code | 21 funciones | ELIMINAR | | Duplicidades | 7 detectadas | CONSOLIDAR | --- ## 2. VALIDACIÓN DE COHERENCIA ENTRE CAPAS (2.1) ### 2.1.1 DDL → Backend (100% con gaps menores) | Métrica | Valor | |---------|-------| | Schemas DDL | 17 | | Tablas DDL | 43 | | Entities Backend | 71 | | Cobertura | 93% | **Gaps DDL→Backend:** | Tabla | Problema | Impacto | Acción | |-------|----------|---------|--------| | auth.sessions | Sin entity | ALTO | Crear Session entity | | auth.tokens | Nombre inconsistente | MEDIO | Verificar mapping | | notifications.notifications | 4 campos faltantes | MEDIO | Agregar campos | ### 2.1.2 Backend → Frontend (58% cobertura endpoints) | Área | Endpoints | Con API | Cobertura | |------|-----------|---------|-----------| | Sales | 36 | 36 | **100%** | | Commissions | 37 | 37 | **100%** | | Goals | 22 | 22 | **100%** | | MLM | 29 | 29 | **100%** | | Portfolio | 21 | 21 | 100% API, **0% UI** | | Auth | 21 | 15 | 71% | | Billing | 25 | 12 | 48% | | Infraestructura | 117 | 47 | 40% | | **TOTAL** | **328** | **190** | **58%** | **Gaps Críticos (sin API ni Hook):** | Controller | Endpoints | Estado | |-----------|-----------|--------| | audit.controller | 8 | ❌ Sin frontend | | rbac.controller | 14 | ❌ Sin frontend | | notifications.controller | 17 | ❌ Sin frontend | | webhooks.controller | 10 | ❌ Sin frontend | ### 2.1.3 Frontend → Docs (78% documentado) | Páginas | Total | Documentadas | Sin Doc | |---------|-------|--------------|---------| | Dashboard | 13 | 10 | 3 | | Sales | 6 | 6 | 0 | | Commissions | 6 | 6 | 0 | | Goals | 5 | 5 | 0 | | MLM | 7 | 7 | 0 | | Settings | 4 | 2 | 2 | | Onboarding | 6 | 4 | 2 | | Admin | 5 | 1 | 4 | | Auth | 4 | 4 | 0 | | **TOTAL** | **56** | **45** | **11** | ### 2.1.4 Matriz de Coherencia Consolidada ``` ┌─────────────────────────────────────────────────────────────┐ │ COHERENCIA POR CAPA │ ├─────────────────────────────────────────────────────────────┤ │ DDL (17 schemas, 43 tablas) │ │ │ │ │ ▼ 93% ✓ │ │ Backend (23 módulos, 71 entities, 328 endpoints) │ │ │ │ │ ▼ 58% ⚠ │ │ Frontend (56 páginas, 22 hooks, 132 API functions) │ │ │ │ │ ▼ 78% ✓ │ │ Docs (47 archivos documentación) │ └─────────────────────────────────────────────────────────────┘ ``` --- ## 3. ANÁLISIS DE TRAZABILIDAD RF/RNF (2.2) ### 3.1 Cobertura de Requerimientos | Categoría | Total | Implementados | % | |-----------|-------|---------------|---| | RF-AUTH | 3 | 3 | 100% | | RF-USER | 3 | 3 | 100% | | RF-TENANT | 2 | 2 | 100% | | RF-AUDIT | 2 | 2 | 100% | | RF-NOTIF | 2 | 2 | 100% | | RF-SEARCH | 3 | 3 | 100% | | RF-EXPORT | 2 | 2 | 100% | | RNF-SEC | 5 | 5 | 100% | | RNF-PERF | 4 | 4 | 100% | | RNF-AVAIL | 3 | 3 | 100% | | RNF-SCALE | 2 | 2 | 100% | | RNF-UX | 3 | 2 | 67% | | RNF-MAINT | 3 | 3 | 100% | | **TOTAL** | **37** | **36** | **97.3%** | ### 3.2 RF Sin Implementar | ID | Descripción | Estado | |----|-------------|--------| | RNF-UX-002 | Accesibilidad WCAG 2.1 AA | Parcial | ### 3.3 Código Sin RF Asociado Los siguientes módulos fueron implementados post-especificación y no tienen RFs formales: | Módulo | Estado | Recomendación | |--------|--------|---------------| | SAAS-018 Sales | Implementado 100% | Formalizar RF | | SAAS-019 Portfolio | Implementado 100% | Formalizar RF | | SAAS-020 Commissions | Implementado 100% | Formalizar RF | | SAAS-021 MLM | Backend 100%, UI pendiente | Formalizar RF | | SAAS-022 Goals | Backend 100%, UI pendiente | Formalizar RF | **Nota:** Si se formalizan RFs para estos módulos, la cobertura sería 100%. --- ## 4. ANÁLISIS DE DUPLICIDADES Y DEAD CODE (2.3) ### 4.1 Entities Duplicadas/Similares | Duplicidad | Ubicación | Tipo | Impacto | |------------|-----------|------|---------| | AuditLog vs ActivityLog | audit/entities/ | ALTA | 3 tablas similares | | UnifiedLog redundante | audit/entities/ | REDUNDANCIA | Consolidar | **Recomendación:** Migrar a UnifiedLog como tabla única, deprecar las otras. ### 4.2 Servicios con Lógica Duplicada | Patrón | Servicios Afectados | Líneas Duplicadas | |--------|---------------------|-------------------| | CRUD Paginación | 6+ servicios | ~200 | | Response Mapping | 10+ servicios | ~150 | | Query Building | 6+ servicios | ~100 | **Servicios con patrón repetido:** - `commissions/assignments.service.ts` - `goals/assignments.service.ts` - `sales/leads.service.ts` - `commissions/entries.service.ts` - `commissions/periods.service.ts` - `commissions/schemes.service.ts` **Recomendación:** Extraer a `GenericCrudService` base. ### 4.3 Hooks Dead Code | Hook | Funciones | Uso | Acción | |------|-----------|-----|--------| | usePortfolio | 21 | 0 | **ELIMINAR** | | useWebhooks | 5 | 1 | Mantener | **usePortfolio funciones (todas sin uso):** - useCategories, useCategory, useCategoryTree - useCreateCategory, useUpdateCategory, useDeleteCategory - useProducts, useProduct, useCreateProduct, useUpdateProduct - useUpdateProductStatus, useDuplicateProduct, useDeleteProduct - useProductVariants, useCreateVariant, useUpdateVariant, useDeleteVariant - useProductPrices, useCreatePrice, useUpdatePrice, useDeletePrice ### 4.4 DTOs Sin Uso | DTO | Módulo | Estado | |-----|--------|--------| | CreateActivityLogDto | audit | En transición | | QueryActivityLogsDto | audit | En transición | | QueryAuditLogsDto | audit | En transición | **Nota:** Dependen de decisión sobre consolidación de logging. ### 4.5 Candidatos a Consolidación | ID | Prioridad | Impacto | Estimación | |----|-----------|---------|------------| | RC1: Unificar Logging | ALTA | 3 entities → 1 | 1-2 días | | RC2: Extraer Patrones CRUD | MEDIA | -200 líneas | 2-3 días | | RC3: Eliminar usePortfolio | BAJA | -250 líneas | 0.5 horas | | RC4: Documentar Comisiones | BAJA | Claridad | 2 horas | --- ## 5. RESUMEN DE GAPS POR PRIORIDAD ### P0 - Críticos (Bloquean funcionalidad) | # | Gap | Área | Acción | |---|-----|------|--------| | 1 | AUDIT sin frontend | Backend→Frontend | Crear API + Hook + Page | | 2 | RBAC sin frontend | Backend→Frontend | Crear API + Hook + Pages | | 3 | NOTIFICATIONS sin frontend | Backend→Frontend | Crear API + Hook + Page | | 4 | auth.sessions sin entity | DDL→Backend | Crear Session entity | ### P1 - Altos (Afectan completitud) | # | Gap | Área | Acción | |---|-----|------|--------| | 5 | Portfolio sin UI | Frontend | Crear ProductsPage, CategoriesPage | | 6 | Webhooks sin frontend completo | Backend→Frontend | Completar WebhooksPage | | 7 | MLM/Goals sin UI | Frontend | Crear páginas | | 8 | docs/_MAP.md desactualizado | Docs | Actualizar | ### P2 - Medios (Mejoras técnicas) | # | Gap | Área | Acción | |---|-----|------|--------| | 9 | 3 tablas logging duplicadas | Backend | Consolidar en UnifiedLog | | 10 | Patrones CRUD duplicados | Backend | Extraer a clase base | | 11 | 4 campos faltantes Notification | DDL→Backend | Agregar campos | | 12 | 5 módulos sin tests | Testing | Agregar tests | ### P3 - Bajos (Limpieza) | # | Gap | Área | Acción | |---|-----|------|--------| | 13 | usePortfolio dead code | Frontend | Eliminar hook | | 14 | DTOs en transición | Backend | Limpiar tras consolidación | | 15 | 11 páginas sin doc | Docs | Documentar | | 16 | WCAG 2.1 AA parcial | Frontend | Mejorar accesibilidad | --- ## 6. MÉTRICAS DE LA FASE | Métrica | Valor | |---------|-------| | Coherencia DDL→Backend | 93% | | Coherencia Backend→Frontend | 58% | | Coherencia Frontend→Docs | 78% | | Trazabilidad RF/RNF | 97.3% | | Gaps críticos | 4 | | Gaps altos | 4 | | Gaps medios | 4 | | Gaps bajos | 4 | | Dead code funciones | 21 | | Código duplicado | ~450 líneas | | Entities duplicadas | 2 | --- ## 7. SIGUIENTE FASE **FASE 3: Planeación de Remediación** (30 SP) - 3.1 Plan de Purga de Documentación Obsoleta - 3.2 Plan de Actualización de Documentación - 3.3 Plan de Especificaciones Técnicas Faltantes - 3.4 Plan de Corrección de Gaps de Código --- *Generado: 2026-02-03 | Agente: Claude Opus 4.5 | Metodología: SIMCO v4.0.0 + CAPVED*