# TECH_DEBT.md — actualización junio 2026
## Para aplicar en el repo del proyecto

> Reemplazar el contenido existente de TECH_DEBT.md en el repo con este bloque,
> o mergear los ítems nuevos si ya existe el archivo con otros ítems previos.

---

## Deuda técnica abierta

### TECH-DEBT-006 — Backup remoto S3
**Estado:** ABIERTO — BLOQUEANTE antes del primer dato real de empresa
**Descripción:** Los backups locales están configurados y funcionando (GFS, 3AM diario, retención 3 días + domingos 14 días). Pero los backups viven solo en el mismo VPS. Si el VPS muere, se pierden datos Y backups.
**Solución:** rsync nocturno a S3-compatible (Backblaze B2 o Wasabi, ~USD 5/mes) usando rclone.
**Referencia:** BACKUP_STRATEGY.md sección 5 — TECH-DEBT-006.

### TECH-DEBT-007 — auth.jwt() deprecado en GoTrue v2.189+
**Estado:** ABIERTO — no bloqueante para el piloto
**Descripción:** Las funciones helper `current_app_role()` y `current_org_id()` en migration 003 usan `auth.jwt()` que fue eliminado en GoTrue v2.189+. Las políticas que dependen de estas funciones no se crearon:
- `org_select_own` en organizations
- `surveys_select_auth` en surveys
- `questions_select_auth` en questions
**Impacto actual:** ninguno — el dashboard usa service_role que bypasa RLS. Los respondentes usan anon que tiene las políticas básicas de INSERT.
**Impacto futuro:** org_admin no podrá autenticarse con custom claims (app_role, org_id) hasta resolver esto.
**Solución:** migrar a auth.session() o implementar JWT claims via hook de GoTrue v2.
**NO resolver hasta tener caso de uso real de org_admin autenticado.**

### CVE-2025-66478 — Next.js 15.3.3 con vulnerabilidad de seguridad
**Estado:** ABIERTO — BLOQUEANTE antes del primer dato real de empresa
**Descripción:** Next.js 15.3.3 tiene una vulnerabilidad de seguridad crítica. El build lo reporta explícitamente: "This version has a security vulnerability. Please upgrade to a patched version."
**Solución:** actualizar next en package.json a la versión parcheada disponible, correr npm install, hacer redeploy.
**Referencia:** https://nextjs.org/blog/CVE-2025-66478

---

## Deuda técnica cerrada en Sprint 3

### TECH-DEBT-002 — KPI NPS eliminado ✅
KPI NPS eliminado — instrumento no tiene pregunta NPS.

### TECH-DEBT-003 — Brecha de políticas ✅
Widget W6 redefinido como demanda-only (6.2), sin oferta. Documentado.

### TECH-DEBT-004 — Intención directa de salida no capturada
Intención directa de salida laboral no capturada en el instrumento v2. No resuelto pero documentado como gap conocido.

### TECH-DEBT-005 — A1 País vs A1b ✅
Cerrado: A1 ya es Departamento (18 opciones Paraguay) en el instrumento final.
