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<T> 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