Auditoría completa en 5 fases CAPVED (81 SP): Fase 1 - Inventario: - 22 módulos SAAS documentados (SAAS-001 a SAAS-022) - 11 ADRs, 7 integraciones, 5 especificaciones técnicas - 17 schemas DDL, 48 tablas, 72 RLS policies - 23 módulos backend, 71 entities, 41 controllers - 56 páginas frontend, 22 hooks Fase 2 - Coherencia: - DDL→Backend: 93% cobertura - Backend→Frontend: 58% cobertura (gaps críticos) - Trazabilidad RF/RNF: 97.3% Fase 3 - Plan Remediación: - 16 gaps identificados (4 P0, 4 P1, 4 P2, 4 P3) - P0: Audit, RBAC, Notifications sin frontend - 57 archivos obsoletos a purgar (620 KB) - Plan: 21 tareas, 39 SP en 3 sprints Outputs: - FASE-1-INVENTARIO-CONTEXTO.md - FASE-2-ANALISIS-COHERENCIA.md - FASE-3-PLANEACION-REMEDIACION.md - REPORTE-FINAL-ANALISIS.md Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
15 KiB
FASE 3: PLANEACIÓN DE REMEDIACIÓN
ID: TASK-2026-02-03-ANALISIS-INTEGRAL-TEMPLATE-SAAS Fecha: 2026-02-03 Estado: COMPLETADA SP Ejecutados: 30
1. PLAN DE PURGA DE DOCUMENTACIÓN OBSOLETA (3.1)
1.1 Clasificación Final
| Carpeta | Archivos | Clasificación | Acción |
|---|---|---|---|
| 2026-01-07-trazas | 5 | 100% OBSOLETO | PURGAR |
| 2026-01-10-simco-v37 | 51 | 71% OBSOLETO | PURGAR 36, REVISAR 15 |
| 2026-01-10-sprint5 | 19 | 84% OBSOLETO | PURGAR 16, REVISAR 3 |
| TOTAL | 75 | 77% | 57 a PURGAR |
1.2 Archivos a Purgar Inmediatamente (57 archivos)
Carpeta: 2026-01-07-trazas/ (5 archivos - TODA)
- REPORTE-EJECUCION-SPRINT5-2026-01-07.md
- TRAZA-2026-01-07-tests-ddl.md
- TRAZA-TAREAS-BACKEND.md
- TRAZA-TAREAS-DATABASE.md
- TRAZA-TAREAS-FRONTEND.md
Carpeta: 2026-01-10-simco-v37/ (36 archivos)
- FASE-1-.md a FASE-8-.md (16 archivos)
- ANALISIS-BF-02 a ANALISIS-BF-08 (7 archivos)
- CP-3-VALIDACION-FASE-3.md, CP-4-VALIDACION-FASE-4-5.md
- ESTRUCTURA-OBJETIVO-*.md (2 archivos)
- GUIA-ORQUESTACION-SUBAGENTES.md
- MAPA-ENLACES-ROTOS.md
- README.md, _INDEX.md
- Otros archivos de fases completadas
Carpeta: 2026-01-10-sprint5/ (16 archivos)
- PLAN-SPRINT-1-TESTS.md a PLAN-SPRINT-5-WHATSAPP.md (5 archivos)
- PLAN-FEATURES-ADICIONALES-2026-01-10.md
- ANALISIS-VALIDACION-SPRINT-5-2026-01-10.md
- FASE-1 a FASE-5 integracion (5 archivos)
- VALIDACION-PLAN-*.md (2 archivos)
- CP-2-VALIDACION-FASE-1-2.md
1.3 Archivos a Revisar Antes de Purgar (18 archivos)
| Archivo | Razón Revisión | Acción Post-Revisión |
|---|---|---|
| HALLAZGOS-ANALISIS-DOCUMENTAL-2026-01-10.md | 23 discrepancias identificadas | Crear issue tracker si no resueltas |
| MAPA-CONFLICTOS-NOMENCLATURA.md | Conflictos SAAS-006 a 013 | Verificar resolución |
| MAPA-DISCREPANCIAS-DOC-CODIGO.md | Gaps doc↔código | Verificar coherencia actual |
| PLAN-MAESTRO-PURGA-DOCUMENTAL-2026-01-10.md | Discrepancias listadas | Verificar cumplimiento |
| INVENTARIO-ARCHIVOS-HUERFANOS.md | Archivos sin referencia | Validar limpieza |
| INVENTARIO-DOCUMENTACION-FALTANTE.md | Docs faltantes | Verificar creación |
| HISTORICO-SPRINTS.md | Referencia histórica | Opcional mantener resumen |
| PLAN-CORRECCION-SPRINT-5-2026-01-10.md | Issues pendientes | Verificar resolución |
| MAPA-DUPLICIDADES.md | Refactoring pendiente | Verificar completitud |
| MATRIZ-DEPENDENCIAS-MODULOS.md | Arquitectura histórica | Comparar con DEPENDENCY-GRAPH |
1.4 Validación Pre-Purga
# 1. Verificar que no hay referencias activas
grep -r "2026-01-07-trazas" orchestration/ docs/
grep -r "simco-v37" orchestration/ docs/
grep -r "sprint5" orchestration/ docs/
# 2. Verificar imports en código
grep -r "_archive" backend/src frontend/src
# 3. Backup antes de purga
cp -r orchestration/_archive/ orchestration/_archive_backup_2026-02-03/
1.5 Espacio a Liberar
| Categoría | Espacio |
|---|---|
| Purga inmediata | 620 KB |
| Post-revisión | 80 KB |
| Total | ~700 KB (87%) |
2. PLAN DE ACTUALIZACIÓN DE DOCUMENTACIÓN (3.2)
2.1 Actualizar docs/_MAP.md (P0)
Estado Actual: Lista SAAS-001 a SAAS-014, 5 ADRs, 12 schemas
Cambios Requeridos:
## Agregar en Sección Módulos:
- SAAS-015: OAuth 2.0 Endpoints
- SAAS-016: Analytics Dashboard
- SAAS-017: Reportes Exportables
- SAAS-018: Sales Foundation
- SAAS-019: Portfolio
- SAAS-020: Commissions
- SAAS-021: MLM
- SAAS-022: Goals
## Agregar en Sección ADRs:
- ADR-006: AI Integration Multi-Provider
- ADR-007: Storage Abstraction Layer
- ADR-008: Webhook Retry Strategy
- ADR-009: WhatsApp Business Integration
- ADR-010: Audit Log Retention Policy
- ADR-011: Rate Limiting Strategy
## Actualizar Sección Database:
- Total schemas: 12 → 17
- Total tablas: 24 → 48
- Agregar: sales, commissions, portfolio, goals, mlm
Estimación: 1 SP
2.2 Actualizar docs/01-modulos/_INDEX.md (P1)
Agregar referencias a:
- SAAS-015 a SAAS-022 con descripciones
- Actualizar contadores y estadísticas
Estimación: 1 SP
2.3 Documentación Faltante para Páginas (P2)
| Página | Ubicación | Acción |
|---|---|---|
| DashboardSettingsPage | dashboard/ | Crear spec |
| DashboardStoragePage | dashboard/ | Crear spec |
| DashboardAnalyticsPage | dashboard/ | Crear spec |
| SettingsProfilePage | settings/ | Crear spec |
| SettingsSecurityPage | settings/ | Crear spec |
| OnboardingStep4-6 | onboarding/ | Crear specs |
| AdminWebhooksPage | admin/ | Crear spec |
| AdminNotificationsPage | admin/ | Crear spec |
| AdminAuditPage | admin/ | Crear spec |
| AdminRbacPage | admin/ | Crear spec |
Estimación: 3 SP
2.4 Actualizar Inventarios (P1)
| Inventario | Cambios |
|---|---|
| MASTER_INVENTORY.yml | Agregar estadísticas actualizadas |
| BACKEND_INVENTORY.yml | Verificar 71 entities, 41 controllers |
| FRONTEND_INVENTORY.yml | Verificar 56 páginas, 22 hooks |
| DATABASE_INVENTORY.yml | Verificar 17 schemas, 48 tablas |
Estimación: 2 SP
3. PLAN DE ESPECIFICACIONES TÉCNICAS FALTANTES (3.3)
3.1 ET-SAAS-018-sales.md (P1)
Contenido:
- Arquitectura módulo Sales
- 4 entities: PipelineStage, Lead, Opportunity, Activity
- 5 controllers: leads, opportunities, activities, dashboard, pipeline
- 36 endpoints documentados
- Integraciones: notifications, commissions
- Flujos de negocio: Lead conversion, Pipeline management
Estimación: 2 SP
3.2 ET-SAAS-019-portfolio.md (P1)
Contenido:
- Arquitectura módulo Portfolio
- 4 entities: Category, Product, Variant, Price
- 2 controllers: categories, products
- 21 endpoints documentados
- Flujos: Gestión catálogo, variantes, precios
Estimación: 2 SP
3.3 ET-SAAS-020-commissions.md (P1)
Contenido:
- Arquitectura módulo Commissions
- 4 entities: Scheme, Assignment, Entry, Period
- 5 controllers documentados
- 37 endpoints
- Cálculos: % fijo, escalonado, combinado
Estimación: 2 SP
3.4 ET-SAAS-021-mlm.md (P1)
Contenido:
- Arquitectura módulo MLM
- 6 entities: Structure, Rank, Node, Commission, Bonus, RankHistory
- 4 controllers documentados
- 29 endpoints
- Estructuras: Binary, Unilevel, Matrix
- Comisiones por niveles
Estimación: 2 SP
3.5 ET-SAAS-022-goals.md (P1)
Contenido:
- Arquitectura módulo Goals
- 4 entities: Definition, Assignment, ProgressLog, MilestoneNotification
- 2 controllers documentados
- 22 endpoints
- Tipos: OKR, KPI, Sales targets
Estimación: 2 SP
4. PLAN DE CORRECCIÓN DE GAPS DE CÓDIGO (3.4)
4.1 Plan UI MLM (P1 - 6 páginas React)
Páginas a crear:
| Página | Ruta | Componentes |
|---|---|---|
| MLMStructuresPage | /dashboard/mlm/structures | StructuresList, StructureForm |
| MLMStructureDetailPage | /dashboard/mlm/structures/:id | TreeVisualization, NodesList |
| MLMNodesPage | /dashboard/mlm/nodes | NodesGrid, NodeFilters |
| MLMNodeDetailPage | /dashboard/mlm/nodes/:id | NodeProfile, Downlines, Commissions |
| MLMRanksPage | /dashboard/mlm/ranks | RanksList, RankRequirements |
| MLMCommissionsPage | /dashboard/mlm/commissions | CommissionsTable, PeriodSelector |
Dependencias: useMlm hook (ya existe)
Estimación: 3 SP
4.2 Plan UI Goals (P1 - 6 páginas React)
Páginas a crear:
| Página | Ruta | Componentes |
|---|---|---|
| GoalsDefinitionsPage | /dashboard/goals/definitions | GoalsList, GoalForm |
| GoalDetailPage | /dashboard/goals/definitions/:id | GoalProgress, Assignments |
| GoalsAssignmentsPage | /dashboard/goals/assignments | AssignmentsList, Filters |
| GoalAssignmentDetailPage | /dashboard/goals/assignments/:id | ProgressChart, Logs |
| GoalsDashboardPage | /dashboard/goals | KPICards, TrendCharts |
| GoalsReportsPage | /dashboard/goals/reports | ReportGenerator |
Dependencias: useGoals hook (ya existe)
Estimación: 3 SP
4.3 Plan Tests Sales (P1)
Cobertura actual: 0%
Tests a crear:
| Servicio | Tests Unitarios | Tests E2E |
|---|---|---|
| leads.service.ts | 15 tests | 5 flows |
| opportunities.service.ts | 15 tests | 5 flows |
| activities.service.ts | 12 tests | 3 flows |
| pipeline.service.ts | 10 tests | 3 flows |
| dashboard.service.ts | 8 tests | 2 flows |
Total: 60 unit tests + 18 E2E tests
Estimación: 3 SP
4.4 Plan Tests Commissions (P1)
Cobertura actual: 0%
Tests a crear:
| Servicio | Tests Unitarios | Tests E2E |
|---|---|---|
| schemes.service.ts | 12 tests | 4 flows |
| assignments.service.ts | 10 tests | 3 flows |
| entries.service.ts | 15 tests | 5 flows |
| periods.service.ts | 12 tests | 4 flows |
| dashboard.service.ts | 8 tests | 2 flows |
Total: 57 unit tests + 18 E2E tests
Estimación: 3 SP
4.5 Plan Tests Portfolio (P2)
Cobertura actual: 0%
Tests a crear:
| Servicio | Tests Unitarios | Tests E2E |
|---|---|---|
| categories.service.ts | 10 tests | 3 flows |
| products.service.ts | 18 tests | 5 flows |
| variants.service.ts | 8 tests | 2 flows |
| prices.service.ts | 8 tests | 2 flows |
Total: 44 unit tests + 12 E2E tests
Estimación: 2 SP
4.6 Corrección Gaps DDL↔Backend (P0)
Session Entity:
// backend/src/modules/auth/entities/session.entity.ts
@Entity({ name: 'sessions', schema: 'auth' })
export class Session {
@PrimaryGeneratedColumn('uuid')
id: string;
@Column({ name: 'user_id' })
userId: string;
@Column({ name: 'tenant_id' })
tenantId: string;
@Column({ name: 'device_info', type: 'jsonb' })
deviceInfo: object;
@Column({ name: 'ip_address' })
ipAddress: string;
@Column({ name: 'user_agent' })
userAgent: string;
@Column({ name: 'expires_at' })
expiresAt: Date;
@CreateDateColumn({ name: 'created_at' })
createdAt: Date;
@Column({ name: 'last_activity_at' })
lastActivityAt: Date;
}
Campos Notification:
// Agregar a notification.entity.ts
@Column({ name: 'body_html', nullable: true })
bodyHtml: string;
@Column({ name: 'recipient_phone', nullable: true })
recipientPhone: string;
@Column({ name: 'delivered_at', nullable: true })
deliveredAt: Date;
@Column({ name: 'failure_reason', nullable: true })
failureReason: string;
Estimación: 1 SP
4.7 Corrección Frontend Críticos (P0)
Audit Frontend:
frontend/src/
├── services/api/audit.api.ts (8 endpoints)
├── hooks/useAudit.ts (queries + mutations)
└── pages/dashboard/AuditLogsPage.tsx
RBAC Frontend:
frontend/src/
├── services/api/rbac.api.ts (14 endpoints)
├── hooks/useRbac.ts (queries + mutations)
├── pages/dashboard/RolesPage.tsx
└── pages/dashboard/PermissionsPage.tsx
Notifications Frontend:
frontend/src/
├── services/api/notifications.api.ts (17 endpoints)
├── hooks/useNotifications.ts (queries + mutations)
└── pages/dashboard/NotificationsPage.tsx
Estimación: 5 SP
5. PRIORIZACIÓN DE TAREAS
Sprint Inmediato (P0 - 10 SP)
| ID | Tarea | SP | Dependencias |
|---|---|---|---|
| T1 | Actualizar docs/_MAP.md | 1 | - |
| T2 | Crear Session entity | 0.5 | - |
| T3 | Agregar campos Notification | 0.5 | - |
| T4 | Crear Audit frontend | 2 | - |
| T5 | Crear RBAC frontend | 2 | - |
| T6 | Crear Notifications frontend | 2 | - |
| T7 | Purgar _archive (fase 1) | 1 | Validación |
| T8 | Actualizar inventarios | 1 | T1 |
Sprint Siguiente (P1 - 18 SP)
| ID | Tarea | SP | Dependencias |
|---|---|---|---|
| T9 | Crear UI MLM (6 páginas) | 3 | - |
| T10 | Crear UI Goals (6 páginas) | 3 | - |
| T11 | Crear Portfolio pages | 2 | - |
| T12 | Crear ET-SAAS-018 sales | 2 | - |
| T13 | Crear ET-SAAS-019 portfolio | 2 | - |
| T14 | Crear ET-SAAS-020 commissions | 2 | - |
| T15 | Crear ET-SAAS-021 mlm | 2 | - |
| T16 | Crear ET-SAAS-022 goals | 2 | - |
Sprint Posterior (P2 - 11 SP)
| ID | Tarea | SP | Dependencias |
|---|---|---|---|
| T17 | Tests Sales | 3 | - |
| T18 | Tests Commissions | 3 | - |
| T19 | Tests Portfolio | 2 | - |
| T20 | Consolidar Logging | 2 | Análisis |
| T21 | Extraer patrones CRUD | 1 | T17-T19 |
6. DIAGRAMA DE DEPENDENCIAS
T1 (docs/_MAP) ──────────────────────────────────────┐
│
T2 (Session entity) ────────────────────────────────▶│
│
T3 (Notification campos) ──────────────────────────▶ │
▼
T4 (Audit frontend) ────────────────────────────────▶ RELEASE P0
│
T5 (RBAC frontend) ─────────────────────────────────▶│
│
T6 (Notifications frontend) ────────────────────────▶│
│
T7 (Purgar _archive) ───────────────────────────────▶│
│
T8 (Inventarios) ───────────────────────────────────▶│
│
▼
T9 (UI MLM) ────────────────────────────────────────▶ RELEASE P1
│
T10 (UI Goals) ─────────────────────────────────────▶│
│
T11 (Portfolio pages) ──────────────────────────────▶│
│
T12-T16 (Especificaciones) ─────────────────────────▶│
│
▼
T17-T19 (Tests) ────────────────────────────────────▶ RELEASE P2
│
T20 (Consolidar Logging) ───────────────────────────▶│
│
T21 (Patrones CRUD) ────────────────────────────────▶│
7. MÉTRICAS DEL PLAN
| Métrica | Valor |
|---|---|
| Tareas planificadas | 21 |
| SP totales | 39 |
| Archivos a purgar | 57 |
| Archivos a crear | 35+ |
| Tests a crear | 161+ |
| Páginas a crear | 14+ |
Generado: 2026-02-03 | Agente: Claude Opus 4.5 | Metodología: SIMCO v4.0.0 + CAPVED