- HERENCIA-SIMCO.md actualizado con directivas v3.7 y v3.8 - Actualizaciones de configuracion Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
10 KiB
10 KiB
FASE 2: Analisis Detallado - Documentacion vs Codigo
Fecha: 2026-01-10 Estado: COMPLETADO Objetivo: Identificar todas las discrepancias entre documentacion y codigo
1. Resumen Ejecutivo
| Categoria | Discrepancias Criticas | Discrepancias Altas | Discrepancias Medias | Discrepancias Bajas |
|---|---|---|---|---|
| SAAS-001 a SAAS-005 | 3 | 7 | 10 | 8 |
| SAAS-006 a SAAS-010 | 2 | 3 | 5 | 4 |
| SAAS-011 a SAAS-014 | 1 | 2 | 3 | 5 |
| Inventarios/Conteos | 1 | 2 | 1 | 0 |
| TOTAL | 7 | 14 | 19 | 17 |
Total de Hallazgos: 57 discrepancias
2. Discrepancias Criticas (7)
CRIT-001: Conteo de Tablas Incorrecto
archivo_doc: orchestration/inventarios/MASTER_INVENTORY.yml
linea: 27
elemento: database_tables
documentado: 39 tablas
codigo: 24 tablas
diferencia: -15 tablas
accion: Actualizar conteo o implementar tablas faltantes
CRIT-002: Enums subscription_status Duplicados
archivo_doc: docs/01-modulos/SAAS-004-billing.md
ubicacion_codigo: apps/database/ddl/02-enums.sql
problema: Dos enums diferentes para subscription_status
enum_1: tenants.subscription_status (trialing, active, past_due, cancelled, unpaid)
enum_2: billing.subscription_status (trial, active, past_due, cancelled, expired)
valores_conflicto: trial vs trialing, expired vs unpaid
accion: Unificar enums o documentar claramente ambos usos
CRIT-003: SAAS-012 CRUD-Base No Implementado
archivo_doc: docs/01-modulos/SAAS-012-crud-base.md
documentado: BaseCrudService, BaseCrudController, BaseEntity, DTOs base
codigo: NO EXISTE - ningun patron base implementado
implementacion_real: Cada modulo tiene su propia logica CRUD
accion: Implementar patrones base o reescribir documentacion
CRIT-004: OAuth Endpoints No Implementados
archivo_doc: docs/01-modulos/SAAS-001-auth.md
seccion: Endpoints OAuth
documentado: POST /auth/oauth/:provider, GET /auth/oauth/:provider/callback
codigo: NO IMPLEMENTADOS en auth.controller.ts
accion: Implementar OAuth o remover de documentacion
CRIT-005: MFA Endpoints No Implementados
archivo_doc: docs/01-modulos/SAAS-001-auth.md
seccion: Endpoints MFA
documentado: POST /auth/mfa/setup, /auth/mfa/verify, DELETE /auth/mfa
codigo: NO IMPLEMENTADOS
accion: Implementar MFA o remover de documentacion
CRIT-006: Modulos Backend No Documentados
archivo_doc: orchestration/inventarios/MASTER_INVENTORY.yml
documentado: 14 modulos (SAAS-001 a SAAS-014)
codigo: 17 modulos en apps/backend/src/modules/
faltantes:
- health (modulo tecnico)
- onboarding (Sprint 2 implementado)
- rbac (sub-modulo de users)
- superadmin (portal completo)
accion: Crear SAAS-015 a SAAS-018 o seccion de modulos infraestructura
CRIT-007: SAAS-008 y SAAS-009 Estados Incorrectos
archivos_doc:
- docs/01-modulos/SAAS-008-audit-logs.md
- docs/01-modulos/SAAS-009-feature-flags.md
documentado: Estado "Pendiente"
codigo: Completamente implementados
accion: Actualizar estado a "Completado"
3. Discrepancias Altas (14)
ALTO-001: payment_methods No Documentada
archivo_doc: docs/01-modulos/SAAS-004-billing.md
tabla_codigo: billing.payment_methods
campos: type, provider, external_payment_method_id, card_details, is_default
accion: Agregar seccion payment_methods a SAAS-004
ALTO-002: Session Management No Implementado
archivo_doc: docs/01-modulos/SAAS-001-auth.md
documentado: GET /auth/sessions, DELETE /auth/sessions/:id
codigo: NO IMPLEMENTADOS
accion: Implementar o remover de documentacion
ALTO-003: Tenant Settings Endpoints No Implementados
archivo_doc: docs/01-modulos/SAAS-002-tenants.md
documentado: GET/PUT /tenants/current/settings
codigo: NO IMPLEMENTADOS (settings en JSONB de tenants)
accion: Implementar endpoints o documentar uso via JSONB
ALTO-004: Notifications v2.0 Sin Actualizar Doc
archivo_doc: docs/01-modulos/SAAS-007-notifications.md
documentado: Version 1.0 basica
codigo: Version 2.0 con WebSocket, Push, Queue
features_no_documentados:
- DevicesController
- NotificationsGateway (WebSocket)
- NotificationQueueService
- Integracion con WhatsApp
accion: Actualizar SAAS-007 a version 2.0
ALTO-005: Invoice Estructura Incompleta en Doc
archivo_doc: docs/01-modulos/SAAS-004-billing.md
documentado: Campos basicos invoice
codigo: Estructura completa con subtotal, tax, discount, billing_address, customer_info
campos_faltantes: subtotal, tax, discount, period_start, period_end, hosted_invoice_url, customer_name, customer_email, billing_address
accion: Actualizar documentacion de invoices
ALTO-006: Audit Export Endpoint No Implementado
archivo_doc: docs/01-modulos/SAAS-008-audit-logs.md
documentado: GET /audit/export (CSV/JSON)
codigo: NO IMPLEMENTADO
accion: Implementar exportacion o remover de doc
ALTO-007: AI Campos Adicionales No Documentados
archivo_doc: docs/01-modulos/SAAS-006-ai-integration.md
codigo_tiene: model_type, request_id, endpoint, error_message, metadata
documentado: Campos basicos solamente
accion: Documentar campos adicionales
ALTO-008 a ALTO-014: Discrepancias menores de endpoints
(Listado resumido por brevedad)
- Endpoints adicionales en controllers vs documentacion
- DTOs adicionales no documentados
- Respuestas con campos extra
4. Discrepancias Medias (19)
MEDIO-001: User Entity vs DDL Mismatch
archivo_doc: docs/01-modulos/SAAS-001-auth.md
problema: user.entity.ts no tiene mfa_secret, mfa_enabled, failed_login_attempts, locked_until
ddl: Campos existen en tabla users
accion: Sincronizar entidad con DDL
MEDIO-002: Session Token Field Inconsistente
archivo_doc: docs/01-modulos/SAAS-001-auth.md
ddl: token_hash, status enum
entity: session_token, is_active boolean
accion: Alinear entity con DDL
MEDIO-003: Trial Period Nomenclatura
archivo_doc: docs/01-modulos/SAAS-004-billing.md
documentado: trial_ends_at
codigo_ddl: trial_start, trial_end
codigo_entity: trial_end
accion: Unificar nomenclatura
MEDIO-004: Roles No Son Enum
archivo_doc: docs/01-modulos/SAAS-003-users.md
documentado: Roles predefinidos (owner, admin, member, viewer)
codigo: Roles son registros en tabla (flexibles)
accion: Actualizar doc para reflejar modelo flexible
MEDIO-005: Enums Adicionales en Codigo
archivo_doc: orchestration/inventarios/DATABASE_INVENTORY.yml
documentado: 29 enums
codigo: 32 enums
extras: 3 enums sin documentar
accion: Actualizar inventario de enums
MEDIO-006 a MEDIO-019: Discrepancias de estructura
(Incluyen diferencias en campos, tipos, defaults)
5. Discrepancias Bajas (17)
- Typos en nombres de campos
- Valores default diferentes
- Campos metadata adicionales
- Timestamps audit no documentados
- Secuencias auto-increment simplificadas en doc
- DDL mas completo que doc (normal para simplificacion)
6. Analisis por Modulo
6.1 Modulos Core (SAAS-001 a SAAS-005)
| Modulo | Sincronizacion | Estado |
|---|---|---|
| SAAS-001 auth | 60% | Endpoints OAuth/MFA faltantes |
| SAAS-002 tenants | 75% | Settings endpoints faltantes |
| SAAS-003 users | 80% | Modelo roles flexible |
| SAAS-004 billing | 65% | payment_methods, invoices incompletos |
| SAAS-005 plans | 85% | Buena alineacion |
6.2 Modulos Avanzados (SAAS-006 a SAAS-010)
| Modulo | Sincronizacion | Estado |
|---|---|---|
| SAAS-006 ai-integration | 95% | Excelente |
| SAAS-007 notifications | 70% | Necesita update v2.0 |
| SAAS-008 audit-logs | 75% | Estado incorrecto, export faltante |
| SAAS-009 feature-flags | 90% | Estado incorrecto pero implementado |
| SAAS-010 webhooks | 100% | Perfecto |
6.3 Modulos Extras (SAAS-011 a SAAS-014)
| Modulo | Sincronizacion | Estado |
|---|---|---|
| SAAS-011 storage | 95% | Excelente |
| SAAS-012 crud-base | 20% | CRITICO - no implementado |
| SAAS-013 email | 90% | Muy bien |
| SAAS-014 whatsapp | 95% | Excelente |
7. Matriz de Impacto
| ID | Severidad | Esfuerzo Correccion | Prioridad |
|---|---|---|---|
| CRIT-001 | Critico | Medio | P1 |
| CRIT-002 | Critico | Alto | P1 |
| CRIT-003 | Critico | Alto | P1 |
| CRIT-004 | Critico | Alto | P2 |
| CRIT-005 | Critico | Alto | P2 |
| CRIT-006 | Critico | Bajo | P1 |
| CRIT-007 | Critico | Bajo | P1 |
| ALTO-001 a ALTO-014 | Alto | Medio | P2 |
| MEDIO-* | Medio | Bajo | P3 |
| BAJO-* | Bajo | Bajo | P4 |
8. Dependencias Identificadas
8.1 Dependencias de Documentacion
SAAS-001 (auth) --> SAAS-003 (users) [User entity compartida]
SAAS-002 (tenants) --> SAAS-004 (billing) [tenant_id en subscriptions]
SAAS-004 (billing) --> SAAS-005 (plans) [plan_id en subscriptions]
SAAS-007 (notifications) --> SAAS-014 (whatsapp) [canal whatsapp]
SAAS-010 (webhooks) --> INT-007 (redis) [BullMQ]
8.2 Archivos Impactados por Cambios
| Cambio | Archivos Impactados |
|---|---|
| Corregir CRIT-001 | MASTER_INVENTORY.yml, DATABASE_INVENTORY.yml, PROJECT-STATUS.md, _MAP.md |
| Corregir CRIT-002 | SAAS-004-billing.md, 02-enums.sql (o codigo entities) |
| Corregir CRIT-003 | SAAS-012-crud-base.md (reescribir completamente) |
| Corregir CRIT-006 | MASTER_INVENTORY.yml, CONTEXT-MAP.yml |
| Corregir CRIT-007 | SAAS-008-audit-logs.md, SAAS-009-feature-flags.md |
9. Conclusion Fase 2
9.1 Hallazgos Principales
- Conteos desalineados: Documentacion anticipa estado futuro vs codigo actual MVP
- Features no implementados: OAuth, MFA, Session Management documentados pero no en codigo
- CRUD-Base inexistente: Modulo documentado pero patrones no implementados
- Estados incorrectos: Modulos marcados "Pendiente" que estan completamente implementados
- Modulos no documentados: 4 modulos backend sin documentacion SAAS-XXX
9.2 Recomendacion General
Opcion A - Actualizar Documentacion (Menor esfuerzo):
- Ajustar doc a realidad del codigo actual
- Remover features no implementados de doc
- Agregar modulos faltantes
Opcion B - Implementar Codigo (Mayor esfuerzo):
- Implementar OAuth, MFA, Session Management
- Crear patrones CRUD-Base
- Agregar tablas faltantes
Recomendacion: Opcion A para discrepancias de documentacion, Opcion B solo para features criticos de negocio.
Siguiente Paso: FASE 3 - Planeacion basada en este analisis
Creado por: Claude Code Fecha: 2026-01-10