# Investigación profunda — qué más implementar (Contable, PILAS)

Documento vivo: prioriza huecos detectados tras revisar **LEE INDEX**, **CORE**, `MEJORAS_Y_PENDIENTES.md`, `QUE_MAS_AGREGAR.md`, `PENDIENTES.md`, `PROBLEMATICAS`, código activo (sin `vendor/`).  
**Regla:** lo que no sea solo Contable o requiera credenciales → **derivar** en `memory-bank/TASK_QUEUE.md`.

---

## 1. Ya sólido (no repetir como “falta”)

- Facturación 01, firma, WS SRI, monitor, límites recepción, healthz, CSRF en flujos críticos, 2FA sensible, export CSV/XLSX, express CSV/XLSX, pasarela **demo**, suscripciones + CLI sync, documentación extensa, **LEE INDEX** enlazado en UI.

---

## 2. Alta prioridad técnica (Dev Contable — cuando haya spec o keys)

| # | Mejora | Qué falta | Dependencia |
|---|--------|-----------|-------------|
| A1 | **OAuth Google / Microsoft / Meta** | **Hecho (stub + state):** `oauth_start.php` genera `state` en sesión y redirige a Google/Microsoft/Meta si hay `CLIENT_ID` en `.env`; callbacks validan `state` y muestran resultado. **Falta:** intercambio código→token, alta/vinculación `usuarios` | `CLIENT_ID`, `SECRET` en `.env` |
| A2 | **Webhook pasarela real** | Endpoint único o por proveedor, verificación firma, idempotencia, llamada a `suscripcion_registrar_pago` / cobro | Credenciales proveedor + URL pública HTTPS |
| A3 | **NC (04) y liquidación (03) al SRI** | XML + validación XSD + mismo pipeline que factura 01 | Prioridad producto + pruebas SRI |
| A4 | **Descarga masiva RIDE / sincronizar autorizados** | Job que consulte SRI por clave o lote y guarde XML/PDF | API/documentación SRI vigente, cupos |

---

## 3. Media prioridad (Contable + algo de Admin)

| # | Mejora | Qué falta |
|---|--------|-----------|
| M1 | **API inventario externo por empresa** | **Hecho (26/02):** `empresas.inventario_api_key` + UI + prioridad sobre clave global; rate limit IP/min. Pendiente: rotación/historial (ver `INTEGRACION_INVENTARIO_EXTERNO.md`) |
| M2 | **Aceptación explícita de términos** | **Parcial:** `registro.php` + `completar_cuenta.php` + columnas `acepta_*_at`. **Falta:** re-aceptación anual / login, copy Legal |
| M3 | **Auditoría ampliada** | **Parcial (26/02):** `audit_log` en productos, clientes, **proveedores**, **empresas** (crear/actualizar); parámetro opcional `empresa_id_contexto` en `audit_log()` para superadmin; filtros en `reportes/auditoria.php` (producto, cliente, proveedor, empresa, cobro). **CSV (26/02):** `reportes/auditoria.php?export=csv` (mismos filtros GET, máx. 10k filas, UTF-8 BOM). **Eliminar (26/02):** `comprobantes/borrar.php` registra `eliminar` antes de borrar comprobante no autorizado SRI. **Falta:** más entidades con borrado físico/lógico auditado |
| M4 | **WAF / rate limit perimetral** | nginx/Cloudflare — **DevOps**, no solo PHP |

---

## 4. Baja prioridad / UX / producto

- Búsqueda global en cabecera (comprobantes, clientes, RUC).
- Modo oscuro (tema Bootstrap + `prefers-color-scheme`).
- **PWA mínima (26/02):** `manifest.json` + `theme-color` + manifest + **iconos** (`cescac-logo.svg` en `manifest.json`; `rel="icon"` en `header.php` y `login.php`). Sin `service worker`; PNG 192/512 opcional si algún cliente no acepta SVG en instalación.
- Notificaciones in-app (campana) además de correo.
- App móvil PWA (manifest + service worker liviano).

---

## 5. Derivado explícito (no cierra Dev Contable solo)

| Tema | Rol |
|------|-----|
| Cron VPS, backups, permisos `.env` | Admin / DevOps |
| Landing precios, trial 14 días, CTA demo | Sitio Web |
| Embudo, creatividades, referidos | Marketing |
| QA visual módulos SRI | QA / Anthony |
| Ticket SRI error 35 con adjuntos | Admin + SRI |
| MSI / `msi-report.php` | Agente MSI |
| Réplica bitácora en admin-docs | Admin |

---

## 6. Archivos de apoyo creados para implementación futura

- `config/env_oauth_ejemplo.txt` — plantilla variables OAuth para `.env` (comentada hasta que Admin entregue credenciales).
- `integraciones/oauth_start.php` — inicio OAuth con `state` (superadmin).
- `integraciones/oauth_callback_base.php` + `oauth_*_callback.php` — validación `state` + guía; pendiente token y sesión usuario.
- `manifest.json` — PWA mínima (nombre, `start_url`, `standalone`).

## 8. Pasada investigación + auditoría (26/02/2026, LEE INDEX)

- **Enlaces:** referencias `APP_URL/docs/*.md` desde `.php` activo (excl. `backups/`): comprobadas — **sin `.md` faltantes** en `docs/`.
- **Corrección UX:** enlace `MISMA_FIRMA_PRUEBAS_PRODUCCION` en `config_sri_cert.php` con `target="_blank"`.
- **Derivación:** cron, disco, MSI, admin-docs, QA pantalla, pasarela real, NC/Liq SRI → TASK_QUEUE y §5 de este doc.
- **Última pasada (misma fecha):** CLI `scripts/check_docs_links_cli.php`; `audit_log` proveedor/empresa; `auditoria.php` ampliada; LEE INDEX consolidado en `INDICE_ENTRADA_CONTABLE.md`.

---

## 7. Enlaces operativos

- [LEE INDEX — todos los agentes](https://vps.cescac.com/lee-index-todos-agentes.html) (incluye **Centro unificado** OMEGA: [omega-centro-unificado.php](https://vps.cescac.com/omega-centro-unificado.php))
- [CORE](https://vps.cescac.com/core.php)
- Índice local: `INDICE_ENTRADA_CONTABLE.md`
- Cola: `memory-bank/TASK_QUEUE.md`

---

*Próxima revisión: al cerrar un ítem de la tabla o al cambiar prioridad de Anthony.*
