# BACKLOG — InQ ROI

> Features de producto pendientes. Decisión del director (qué entra, cuándo).
> No incluye deuda técnica ni hallazgos de sprint actual (ver TECH_DEBT.md y OBSERVATIONS.md).

---

## Convención de etiquetas

Cada ítem tiene una etiqueta de estado:

- `[SPRINT-2]` — Comprometido para el próximo sprint
- `[BACKLOG]` — Disponible para asignar en planning de sprint futuro
- `[FASE-2]` — Versión 2.0 del producto, más allá del horizonte actual
- `[DEFERRED]` — Pospuesto sin sprint asignado, requiere decisión

Al cerrar un sprint, los ítems `[SPRINT-N]` se promocionan a `[SPRINT-(N+1)]` o vuelven a `[BACKLOG]`.

---
  
## Features de alta prioridad

### [RESOLVED] Ver procesos asociados a un recurso + navegar a ellos
Implementado en Sprint 5 Etapa 4. `ResourceCatalogPage` muestra columna "Procesos" con conteo. Click expande lista de procesos con links. `resource-repo.ts` provee `getProcessCountsByResourceId()` y `getProcessesByResourceId()`. Confirmado 2026-06-23.

### [RESOLVED] Campo "empresa" en perfil de usuario
Implementado en Sprint 5 Etapa 4. Columna `company` en tabla `users` (Supabase), campo editable en `ProfileSheet`, visible en dropdown `AppHeader`. Confirmado 2026-06-23.

### [RESOLVED] Indicador de simulación desactualizada
Implementado en Sprint 3. Confirmado funcionando en validación visual Sprint 4 (muestra "Hay cambios sin simular" junto al botón Simular). Cerrado Sprint 5 planning (2026-06-19).

### [BACKLOG] Múltiples simulaciones por proceso
Historial de simulaciones con comparación de escenarios.

### [BACKLOG] Recursos con costo por hora
Link actividad ↔ recurso (rol, persona, sistema) con cálculo automático del costo agregado.

### [RESOLVED] Edición del nombre de proceso y cliente desde el workspace
Implementado en Sprint 2. Confirmado funcionando en validación visual Sprint 4. Cerrado Sprint 5 planning (2026-06-19).

### [BACKLOG] Gateway OR inclusivo nativo
Actualmente se simula como XOR. Implementar propagación OR real con probabilidades independientes.

### [BACKLOG] Distribuciones de probabilidad
Gamma/triangular por actividad en lugar de valores fijos. Permite análisis de sensibilidad.

---

## Features de media prioridad

### [BACKLOG] Export a Excel (.xlsx)
Múltiples hojas: resumen + por actividad + metodología. Útil para clientes que necesitan análisis adicional en planillas.

### [BACKLOG] Modo oscuro
Dark mode para el web app.

### [BACKLOG] i18n: inglés + español configurable
Necesario cuando InQuality empiece a vender fuera de LATAM.

### [BACKLOG] PWA installable
Manifest + service worker para uso offline.

### [BACKLOG] Zoom/pan del heatmap desde el reporte
Hoy es visualización estática. Permitir interacción.

### [RESOLVED] Controles de zoom en canvas BPMN (fit-to-screen / zoom-in / zoom-out)
Implementado en Sprint 5 Etapa 2. fit-viewport con centering correcto, botones zoom-in/zoom-out/fit en esquina inferior izquierda (1.2x factor, límites 0.1x–4x). OK formal del director 2026-06-19.

### [BACKLOG] Detalle de recursos por actividad en el PDF
Tabla de costos por recurso asignado dentro de cada actividad.

### [BACKLOG] Importación por URL
Cargar BPMN desde enlace directo (GitHub, Confluence, etc.).

### [RESOLVED] Columna "Eficiencia de automatización" en ComparisonTable
Implementado en Sprint 5 Etapa 5. Dos columnas: "Ahorro esperado" (`ahorro$ × executionProbability`) y "Eficiencia" (`ahorro$ × executionProbability / executionTimeMinutes` en `currency/min`). Barras de progreso proporcionales, sort multi-columna, tooltips. A/B para focus group con clientes. OK formal del director 2026-06-23.

### [BACKLOG] ComparisonTable — whitespace-nowrap en celda de Eficiencia
El valor y la unidad ("1.02 USD/min") se cortan en dos líneas por ancho de celda.
**Fix:** agregar `whitespace-nowrap` al `<span>` del número en `MetricCell` dentro de `ComparisonTable.tsx`. Una línea de cambio.

---

## Features Fase 2 (versión 2.0 del producto)

### [RESOLVED] Login y multi-tenant
Implementado en Sprint 4. Supabase + Google Workspace OAuth, PostgreSQL, RLS, catálogo de recursos global, identidad en UI. Ver `sprints/sprint-4/BRIEF.md`. Cerrado 2026-05-xx.

### [FASE-2] Versionado de procesos
Historial de cambios con diff visual.

### [FASE-2] Gobernanza / RACI
Asignación de responsables por actividad (Responsible, Accountable, Consulted, Informed).

### [FASE-2] Jerarquía organizacional
Integración con orgchart para asignar costos por área de la empresa.

### [FASE-2] IA / asistente
Sugerencias de optimización, benchmarking automático.

### [FASE-2] Marketplace de procesos
Biblioteca de BPMNs precostos por industria.

### [FASE-2] Elementos RPA y agentes
Soporte para costos de bots y workflows automatizados.

### [FASE-2] Tutoriales interactivos
Onboarding guiado para usuarios nuevos.

---

## Decisiones de producto pendientes

### [DEFERRED] Footer "Hecho desde Paraguay 🇵🇾"
Mantener en web app o eliminar cuando InQuality venda a clientes internacionales no-LATAM.

**A favor:** identidad regional, toque humano, diferenciador.
**En contra:** sesgo gringo en clientes corporativos.

**Decisión pendiente para:** Sprint 3-4 con feedback de uso real en talleres y demos.

### [BACKLOG] Logo InQuality en header de PDFs
Los assets SÍ existen en `assets/` (4 PNGs documentados en `simulador-web/CLAUDE.md`). La justificación original ("aún no existen") era incorrecta.

**Assets disponibles:**
- `MARCA FINAL 2023 AREA DE SEGURIDAD 1 COLOR.png` — logo horizontal color (candidato principal)
- `MARCA FINAL 2023 AREA DE SEGURIDAD 1 BCO.png` — logo horizontal blanco (para fondos oscuros)

**Trabajo pendiente:** cargar el PNG vía `html2canvas` o convertirlo a base64 e inyectarlo en el header de los 3 PDFs (Actual, Automatizado, ROI). Ya existe la regla en CLAUDE.md de usar el PNG en lugar de texto "InQ"/"InQuality".

**Estimación:** Sprint 6 o posterior. Baja prioridad — los PDFs ya tienen "Powered by InQuality" en footer.

### [SPRINT-8] Consolidación modelo de cliente: organizations → areas → procesos

Refactorización de modelo de datos para unificar los tres conceptos paralelos de "cliente" (process_groups, clientName, org_id) en una jerarquía de dos niveles.

**Scope:**
- Nueva tabla `areas (id, org_id, name)` — reemplaza `process_groups`
- `area_id` en `processes` — reemplaza `group_id`
- Eliminar campo `clientName` (texto libre) del dominio y la UI
- `LibraryPage`: agrupa por org → área (en lugar de por clientName)
- Workspace sidebar: org como contexto (read-only), área como selector normalizado
- Admin UI: CRUD de áreas por org
- RLS para `areas`
- Migración: bulk-assign 154 procesos de prueba a InQuality, eliminar process_groups de prueba
- Tests E2E del flujo completo

**Referencia:** `STRATEGIC_DIRECTION.md` → "Consolidación del modelo de cliente" (2026-07-07).

---

### [BACKLOG] Ocultar Settings y ruta /settings para roles de cliente

El ícono de tuerca (⚙) en LibraryPage es visible y navegable para `client_editor` y `client_viewer`. La página de configuración ("Etiqueta de grupos") es una feature interna de InQuality — un cliente no debería ver ni editar esta preferencia.

**Trabajo pendiente:**
- Ocultar el botón de Settings en LibraryPage para `client_editor` y `client_viewer`
- Agregar guard en la ruta `/settings` (componente-level, mismo patrón que `/admin/*` y `/import`)
- Verificar si `/recursos` también debe ser inaccesible para roles de cliente

**No es riesgo de seguridad** (es solo preferencia de UI local, sin datos sensibles).
**Estimación:** 1h — agregar al sprint siguiente junto con otros ajustes de UX de cliente.
