# PLAN DE EJECUCION: Resolucion de GAPS Detectados **ID:** PLAN-GAPS-2026-01-10 **Fecha:** 2026-01-10 **Version:** 1.0 **Sistema:** SIMCO v3.5 + CAPVED **Orquestador:** Claude Code - Opus 4.5 --- ## C - CONTEXTO ### Vinculacion | Campo | Valor | |-------|-------| | Proyecto | erp-core | | Nivel | SUITE (erp-suite/apps/erp-core) | | Epic | EPIC-VALIDACION-2026-01 | | Origen | Validacion de ejecucion FASE 7 | | Prioridad | ALTA | ### Documentos de Referencia | Documento | Ubicacion | |-----------|-----------| | Reporte GAPS | `orchestration/03-validacion/REPORTE-EJECUCION-FINAL-2026-01-10.md` | | Estado MFA | `orchestration/03-validacion/VALIDACION-MFA-2026-01-10.md` | | Estado Financial | `orchestration/03-validacion/ESTADO-TESTS-FINANCIAL-2026-01-10.md` | | Estado Inventory | `orchestration/03-validacion/ESTADO-TESTS-INVENTORY-2026-01-10.md` | | Estado Roles | `orchestration/03-validacion/ESTADO-TESTS-ROLES-2026-01-10.md` | ### SIMCO Aplicables - @TAREA (SIMCO-TAREA.md) - @OP_BACKEND (SIMCO-BACKEND.md) - @DOCUMENTAR (SIMCO-DOCUMENTAR.md) - @VALIDAR (Principio validacion obligatoria) - @DOC-PRIMERO (Documentacion primero) --- ## A - ANALISIS ### GAPS Identificados | ID | Descripcion | Modulo | Severidad | SP Estimado | |----|-------------|--------|-----------|-------------| | GAP-001 | Tests MFA faltantes | auth/mfa | MEDIA | 5 SP | | GAP-002 | Trusted Devices service incompleto | auth/trusted-devices | BAJA | 3 SP | | GAP-003 | Tests Permissions service faltantes | roles/permissions | MEDIA | 5 SP | | GAP-004 | Tests Payment Reconciliation faltantes | financial/payments | BAJA | 3 SP | | GAP-005 | Tests Valuation faltantes | inventory/valuation | BAJA | 5 SP | | **TOTAL** | - | - | - | **21 SP** | ### Descripcion de Negocio 1. **GAP-001 (MFA Tests):** El modulo MFA esta 95% implementado pero carece de tests unitarios, lo que impide validar la seguridad del flujo de autenticacion de dos factores. 2. **GAP-002 (Trusted Devices):** La entidad `trusted-device.entity.ts` existe pero falta el servicio que gestione dispositivos confiables para bypass de MFA. 3. **GAP-003 (Permissions Tests):** El servicio `permissions.service.ts` contiene logica critica de autorizacion sin tests, representando un riesgo de seguridad. 4. **GAP-004 (Payment Reconciliation Tests):** Logica de conciliacion de pagos existe en `payments.service.ts` pero sin cobertura de tests. 5. **GAP-005 (Valuation Tests):** El servicio `valuation.service.ts` implementa FIFO/LIFO/Average pero carece de tests para validar calculos. ### Restricciones | Tipo | Restriccion | |------|-------------| | Seguridad | Tests MFA y Permissions son criticos para seguridad | | Performance | Tests deben ejecutar en <30s | | Cobertura | Target minimo 80% por modulo | | Estandares | Seguir patron de auth/__tests__/ | ### Objetos Impactados #### Backend | Archivo | Accion | Dependencias | |---------|--------|--------------| | `auth/__tests__/mfa.service.spec.ts` | CREAR | mfa.service.ts | | `auth/services/trusted-devices.service.ts` | CREAR | trusted-device.entity.ts | | `auth/__tests__/trusted-devices.service.spec.ts` | CREAR | trusted-devices.service.ts | | `roles/__tests__/permissions.service.spec.ts` | CREAR | permissions.service.ts | | `financial/__tests__/payments.service.spec.ts` | CREAR | payments.service.ts | | `inventory/__tests__/valuation.service.spec.ts` | CREAR | valuation.service.ts | #### Database | Archivo | Accion | Notas | |---------|--------|-------| | Ningun cambio DDL requerido | - | Entidades y tablas existen | ### Riesgos | Riesgo | Probabilidad | Mitigacion | |--------|-------------|------------| | MFA tests complejos por crypto | MEDIA | Usar mocks para otplib | | Valuation tests requieren fixtures | MEDIA | Crear factories de stock moves | | Tiempo estimado excedido | BAJA | Priorizar por severidad | --- ## P - PLANEACION ### Subtareas por Dominio #### Orden de Ejecucion (siempre: Docs -> DB -> Backend -> Frontend -> Validacion) ``` 1. DOCUMENTACION (pre-implementacion) └── Actualizar specs si es necesario 2. DATABASE └── Verificar que no hay cambios DDL requeridos 3. BACKEND ├── GAP-003: permissions.service.spec.ts (MEDIA - seguridad) ├── GAP-001: mfa.service.spec.ts (MEDIA - seguridad) ├── GAP-002: trusted-devices.service.ts + tests (BAJA) ├── GAP-004: payments.service.spec.ts (BAJA) └── GAP-005: valuation.service.spec.ts (BAJA) 4. VALIDACION ├── Ejecutar npm test (todos los tests) ├── Verificar cobertura >80% └── Recrear DB y validar integridad ``` ### Criterios de Aceptacion | GAP | Criterio | |-----|----------| | GAP-001 | 15+ tests para mfa.service.ts cubriendo setup, verify, backup codes | | GAP-002 | trusted-devices.service.ts con CRUD + 10+ tests | | GAP-003 | 12+ tests para permissions.service.ts cubriendo check, assign, remove | | GAP-004 | 8+ tests para reconciliacion de pagos | | GAP-005 | 10+ tests para FIFO, LIFO, Average | ### Plan de Pruebas | Test Suite | Tipo | Casos | |------------|------|-------| | mfa.service.spec.ts | Unit | setup, verify, disable, backup-codes | | trusted-devices.service.spec.ts | Unit | add, list, remove, verify | | permissions.service.spec.ts | Unit | check, assign, remove, getAll | | payments.service.spec.ts | Unit | reconcile, match, allocate | | valuation.service.spec.ts | Unit | FIFO, LIFO, Average, revalue | ### Asignacion de Agentes | Agente | Tareas | SP | |--------|--------|-----| | Backend-Agent | GAP-001, GAP-002, GAP-003, GAP-004, GAP-005 | 21 | | Database-Agent | Verificar DDL (no cambios) | 0 | | QA-Agent | Validacion final | 2 | --- ## V - VALIDACION ### Cobertura Analisis -> Plan | Requisito | Cubierto en Plan | |-----------|------------------| | Tests MFA | GAP-001 | | Trusted Devices | GAP-002 | | Tests Permissions | GAP-003 | | Tests Payments | GAP-004 | | Tests Valuation | GAP-005 | | Recrear DB | Paso de validacion | | Documentar cambios | Fase D | ### Gaps Detectados - Ninguno. Todos los GAPS tienen tarea asignada. ### Scope Creep - N/A. El scope esta bien definido. ### Gate de Validacion - [x] Todos los GAPS tienen tarea asignada - [x] Orden de ejecucion definido (prioridad por severidad) - [x] Criterios de aceptacion claros - [x] Plan de pruebas definido - [x] Sin cambios DDL requeridos **GATE: APROBADO - Proceder con ejecucion** --- ## E - EJECUCION ### Progreso | Tarea | Estado | Inicio | Fin | |-------|--------|--------|-----| | GAP-003 (Permissions) | COMPLETADO | 2026-01-10 | 2026-01-10 | | GAP-001 (MFA) | COMPLETADO | 2026-01-10 | 2026-01-10 | | GAP-002 (Trusted Devices) | COMPLETADO | 2026-01-10 | 2026-01-10 | | GAP-004 (Payments) | COMPLETADO | 2026-01-10 | 2026-01-10 | | GAP-005 (Valuation) | COMPLETADO | 2026-01-10 | 2026-01-10 | | Validacion | COMPLETADO | 2026-01-10 | 2026-01-10 | | Recrear DB | N/A (Sin cambios DDL) | - | - | ### Archivos a Crear ``` backend/src/modules/auth/__tests__/mfa.service.spec.ts backend/src/modules/auth/services/trusted-devices.service.ts backend/src/modules/auth/__tests__/trusted-devices.service.spec.ts backend/src/modules/roles/__tests__/permissions.service.spec.ts backend/src/modules/financial/__tests__/payments.service.spec.ts backend/src/modules/inventory/__tests__/valuation.service.spec.ts ``` ### Validaciones por Subtarea | Subtarea | Build | Lint | Tests | |----------|-------|------|-------| | GAP-003 | Req | Req | Req | | GAP-001 | Req | Req | Req | | GAP-002 | Req | Req | Req | | GAP-004 | Req | Req | Req | | GAP-005 | Req | Req | Req | --- ## D - DOCUMENTACION ### Actualizaciones Requeridas | Documento | Tipo | Ubicacion | |-----------|------|-----------| | Inventario Backend | Actualizar | orchestration/inventarios/MASTER_INVENTORY.yml | | Traza Backend | Actualizar | orchestration/trazas/TRAZA-TAREAS-BACKEND.md | | @PROXIMA | Actualizar | orchestration/PROXIMA-ACCION.md | | Reporte Final | Crear | orchestration/03-validacion/REPORTE-GAPS-RESUELTOS.md | ### Inventario a Actualizar ```yaml backend: modules: auth: services: - name: TrustedDevicesService # NUEVO file: "@BACKEND/auth/services/trusted-devices.service.ts" methods: [add, list, remove, verify, cleanup] tests: - name: MfaServiceSpec # NUEVO file: "@BACKEND/auth/__tests__/mfa.service.spec.ts" - name: TrustedDevicesServiceSpec # NUEVO file: "@BACKEND/auth/__tests__/trusted-devices.service.spec.ts" roles: tests: - name: PermissionsServiceSpec # NUEVO file: "@BACKEND/roles/__tests__/permissions.service.spec.ts" financial: tests: - name: PaymentsServiceSpec # NUEVO file: "@BACKEND/financial/__tests__/payments.service.spec.ts" inventory: tests: - name: ValuationServiceSpec # NUEVO file: "@BACKEND/inventory/__tests__/valuation.service.spec.ts" ``` ### Traza a Registrar ```markdown ## [GAPS-2026-01-10] Resolucion de GAPS de Tests **Fecha:** 2026-01-10 **Estado:** En Progreso **Agente:** Backend-Agent + Orquestador **Duracion:** TBD ### Archivos Creados - auth/__tests__/mfa.service.spec.ts - auth/services/trusted-devices.service.ts - auth/__tests__/trusted-devices.service.spec.ts - roles/__tests__/permissions.service.spec.ts - financial/__tests__/payments.service.spec.ts - inventory/__tests__/valuation.service.spec.ts ### Validaciones - [ ] Build: Pendiente - [ ] Lint: Pendiente - [ ] Tests: Pendiente - [ ] Cobertura: Pendiente ``` --- ## RESUMEN | Metrica | Valor | |---------|-------| | Total GAPS | 5 | | Story Points | 21 SP | | Archivos a crear | 6 | | Archivos a modificar | 0 | | Cambios DDL | 0 | | Tests a crear | ~55+ | --- **Documento generado por:** ORQUESTADOR (Claude Code Opus 4.5) **Sistema:** SIMCO v3.5 + CAPVED **Fase actual:** D (Documentacion) -> COMPLETADA **Estado:** TODOS LOS GAPS RESUELTOS **Reporte final:** orchestration/03-validacion/REPORTE-GAPS-RESUELTOS-2026-01-10.md