template-saas/orchestration/tareas/TASK-2026-02-03-ANALISIS-INTEGRAL-TEMPLATE-SAAS/FASE-3-PLANEACION-REMEDIACION.md
Adrian Flores Cortes c8b75d0435
Some checks are pending
CI / Backend CI (push) Waiting to run
CI / Frontend CI (push) Waiting to run
CI / Security Scan (push) Waiting to run
CI / CI Summary (push) Blocked by required conditions
[TASK-2026-02-03] analysis: Complete integral analysis Template SaaS
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>
2026-02-03 12:49:20 -06:00

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