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

488 lines
15 KiB
Markdown

# 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*