Etapa 8 — PDFs Actual y Automatizado: - Página 1: header denso + metadata strip + grid 2×2 KPI cards con paleta #FEF3E2 (naranja claro InQ), sin gradiente (jerarquía visual preservada) - Página 3: tabla con header naranja claro #FFF8ED + #92400E, em dash en filas no-automatizables, título ANÁLISIS DE COMPOSICIÓN uppercase - Página 4: NOTA METODOLÓGICA uppercase + caja contenedora slate-50 - 526 tests verdes (+ 15 tests nuevos) Etapa 9 — Badge ⚡ en BpmnCanvas: - Reemplaza badge legacy (Bot SVG ámbar #fffbeb) por círculo naranja sólido #F59845 con símbolo ⚡ blanco, 14×14px, border white 1.5px - Usa var(--inq-orange) definido en globals.css (sin hex hardcodeados) - Elimina los 3 hex legacy del audit Etapa 1: #f59e0b, #fffbeb, #e2e8f0 - 5 tests E2E de lifecycle del badge + 2 screenshots Política de iniciativa refinada post-Sprint 1.5 (CLAUDE.md actualizado) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
6.9 KiB
TECH_DEBT — InQ ROI
Deuda técnica, refactors postergados y decisiones arquitectónicas pendientes. Requiere consulta entre director y técnico para resolver. No incluye features de producto (ver BACKLOG.md) ni hallazgos de sprint actual (ver OBSERVATIONS.md).
Convención de etiquetas
[SPRINT-2]— Comprometido para resolución en el próximo sprint[BACKLOG]— Disponible para asignar[DEFERRED]— Pospuesto, requiere decisión arquitectónica[INVESTIGATING]— Necesita análisis técnico antes de planear
Cada ítem incluye:
- Estado actual del problema
- Causa raíz hipotetizada
- Impacto si no se resuelve
- Solución propuesta
- Archivos afectados (cuando aplica)
Deuda crítica — afecta calidad del entregable
[INVESTIGATING] Truncamiento de líneas largas en notas metodológicas (parcialmente resuelto)
Estado actual: los caracteres Unicode rotos (Σ → £, − → ") fueron resueltos en Etapa 8 mediante reescritura a ASCII puro (SUM, x, -). Decisión arquitectónica: la notación ASCII se mantiene como solución permanente porque alinea con terminología financiera/Excel.
Pendiente: verificar si todavía hay líneas largas que se truncan en margen derecho cuando una fórmula excede el ancho de página portrait.
Acción: test E2E que valide ancho de cada línea de notas metodológicas en los 3 PDFs. Si hay truncamiento, evaluar:
- Opción A: usar
doc.splitTextToSize()para wrap automático - Opción B: reformular fórmulas problemáticas en múltiples líneas en el texto fuente
Sprint asignado: [BACKLOG] — investigar al inicio de Sprint 2 con tests de regresión. Si los tests confirman ausencia de truncamiento después del cambio a ASCII, el ítem se cierra. Si hay casos truncados, asignar etapa de Sprint 2.
Archivos afectados:
- src/lib/export/pdf-sections.ts (notas metodológicas Actual/Automatizado)
- src/lib/export/pdf-sections-roi.ts (nota metodológica ROI)
Deuda media — afecta DX o evolución del producto
[INVESTIGATING] Dexie live queries (sincronización store ↔ db)
Estado actual: la invalidación del resultado de simulación se garantiza vía ESLint rule (no-restricted-imports) + convención: todas las mutaciones pasan por useProcessStore.
Riesgo a futuro: si en Sprint 2 la grilla de edición masiva requiere escrituras de alta frecuencia directas a IndexedDB (por performance), la convención actual no escala.
Solución a evaluar: migración a live queries de Dexie que invaliden el store automáticamente.
Acción pendiente: análisis técnico de costo/beneficio cuando se planee la grilla de edición masiva.
Origen: auditoría de Mayo 2026.
[BACKLOG] Indicador visual en reporte de actividades automatable
Estado: Sprint 1 usa solo leyenda de texto para diferenciar actividades automatables. Acción: evaluar si el cliente necesita más claridad visual (borde punteado o ícono diferenciador) cuando compara Actual vs Automatizado en reuniones. Decidir con feedback de uso real.
[BACKLOG] Paleta del heatmap — saturado vs pastel
Estado: los colores saturados actuales (#10B981, #F59E0B, #EF4444) funcionan bien en pantallas grandes de talleres InQuality. El brief de Sprint 1.5 propuso pasteles "más consultivos" (#BBF7D0, #FED7AA, #FECACA).
Decisión actual: mantener saturados (Sprint 1.5 Etapa 1).
Impacto del cambio futuro: requiere recalibrar tests E2E de análisis de píxeles (umbrales de verde/ámbar/rojo).
Acción: decidir con feedback real de uso en talleres InQuality. Sprint 3-4.
Refinamientos UX
[BACKLOG] Mejorar animación de expansión de sección "Automatización" en ActivityPanel
Estado: actualmente usa max-h trick (funciona, pero la aceleración no es lineal en los últimos píxeles).
Solución sofisticada: useRef + scrollHeight para animar a la altura real del contenido.
Costo: medio. Beneficio: micro-pulido visual.
[BACKLOG] Label "Payback" superpuesto con eje Y en CumulativeSavingsChart (web)
Estado: bug visual menor. El texto del marker vertical "Payback · X meses" se superpone con los labels del eje Y.
Solución: ajustar offset del label del marker payback.
Costo: 10 min en próxima etapa que toque el componente.
Prioridad: baja, no afecta funcionalidad.
[BACKLOG] CumulativeSavingsChart — empezar en -inversión, no en 0 (web)
Estado: el gráfico web parte de (Año 0, 0). Decisión arquitectónica: cambiar a (Año 0, -inversión) para ser financieramente honesto.
Justificación: mostrar el punto inicial como -USD 80.000 hace visible el "valle de retorno". La línea cruza el cero exactamente en el mes de payback. Es la representación estándar en análisis financiero.
Impacto: consistencia con el chart del PDF (que ya se implementó así en Sprint 1.5 Etapa 7).
Archivos: src/features/report/CumulativeSavingsChart.tsx.
Refinamientos visuales del PDF — derivados de validaciones de Sprint 1.5
Estos hallazgos surgieron en validaciones visuales del director durante Sprint 1.5. Se difirieron a "polish final" del mismo sprint o a Sprint 2.
[SPRINT-1.5 — POLISH FINAL] Refinamientos página 1 PDF ROI
KPI Hero:
- Spacing entre label "AHORRO PROYECTADO A 3 AÑOS" y la cifra
- Tamaño de la cifra (evaluar reducir ligeramente)
- Esquinas redondeadas (si se logra técnicamente — jsPDF no hace clip en addImage)
Banner narrativo:
- Destacar tipográficamente cifras y palabras clave (negrita en USD, %, meses)
- Considerar bullets o estructura más visual
Grid 2x2 KPIs secundarios:
- Inconsistencia tipográfica detectada — investigar y armonizar
- Verificar que los 4 cards sigan el mismo patrón visual
Top 3 actividades:
- Aumentar tamaño del título "TOP 3 ACTIVIDADES POR AHORRO"
- Agregar fondo claro a las barras para mejor contraste
- Reconsiderar diseño completo del bloque
Decisiones arquitectónicas tomadas en Sprint 1.5 (cerradas, archivadas)
Sección informativa. Estas decisiones ya están aplicadas en el código. Se mantienen acá como referencia.
Subtítulo "Análisis de retorno de inversión" solo en página 1 ROI
Decidido: página 1 tiene subtítulo descriptivo, páginas 2-4 no. Patrón estándar de reportes financieros (página 1 con título extendido).
KPI cards en página 1 de PDFs Actual/Automatizado — color naranja
Decidido: el KPI "Costo total" se migró a naranja durante refactor de Sprint 1.5. Antes era azul. Decisión retroactiva del audit.
ComparisonTable — actividades no automatizables muestran em dash
Decidido: en filas donde isAutomatable === false, mostrar "—" (em dash) en columnas Ahorro y % Ahorro en lugar de "USD 0,00" y "0,0%". Aplicado en Sprint 1.5.
Versión "v0.1.0" en footer — fuera de PDFs, presente en web
Decidido: la versión es útil para usuarios internos en web. En PDFs entregados a clientes genera dudas de estabilidad. Aplicado en Sprint 1.5.