# 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
