# 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 ```bash # 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:** ```markdown ## 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:** ```typescript // 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:** ```typescript // 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*