Files
inq-roi-simulador-web/OBSERVATIONS.md
Marcos Benítez 2f4633a33c feat(sprint-1.5): rediseño visual PDF ROI + identidad InQ (Etapas 4-7)
- Header/footer compartidos con paleta InQ naranja en los 3 PDFs (Etapa 4)
- Layout híbrido portrait+landscape en PDFs Actual/Automatizado:
  página 2 landscape para diagrama BPMN heatmap (Etapa 5)
- Página 1 PDF ROI rediseñada: header denso, banner narrativo, KPI Hero
  con gradiente naranja→magenta, grid 2×2 de KPIs secundarios, Top 3
  actividades por ahorro (Etapa 6)
- Páginas 2-5 PDF ROI con identidad InQ: tabla con paleta naranja,
  análisis del ahorro, nota metodológica, trayectoria del ahorro
  acumulado con gráfico SVG nativo (Etapa 7)
- 500 tests verdes (+ 34 tests nuevos del Sprint 1.5)
- BACKLOG.md, TECH_DEBT.md, OBSERVATIONS.md: sistema de planificación
  reemplaza TODO.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-17 20:45:01 -03:00

113 lines
4.8 KiB
Markdown

# OBSERVATIONS — Sprint 1.5 (Rediseño visual)
> Hallazgos descubiertos durante validación visual del sprint actual.
> Este archivo se vacía al cerrar el sprint: los hallazgos se promocionan a TECH_DEBT.md o BACKLOG.md, o quedan resueltos.
---
## Convención de etiquetas
- `[CURRENT-SPRINT]` — Se resuelve en este sprint (Sprint 1.5)
- `[DEFERRED-TECH-DEBT]` — Se va a TECH_DEBT.md al cerrar el sprint
- `[DEFERRED-BACKLOG]` — Se va a BACKLOG.md al cerrar el sprint
- `[RESOLVED]` — Resuelto durante el sprint, archivar al cierre
---
## Hallazgos activos
### [CURRENT-SPRINT — POLISH FINAL] Refinamientos visuales página 1 PDF ROI
Detectados en validación visual de Etapa 6.
Se resuelven en polish final del sprint (Etapa 11).
**Lista de refinamientos:**
1. **KPI Hero**: spacing label-cifra, tamaño cifra, esquinas redondeadas
2. **Banner narrativo**: destacar cifras y keywords tipográficamente
3. **Grid 2x2 KPIs secundarios**: inconsistencia tipográfica entre cards
4. **Top 3 actividades**: título pequeño, barras sin contraste de fondo
**Decisión:** todos los refinamientos van a Etapa 11 (polish final), no se abordan ahora para mantener ritmo del sprint.
**Origen:** validación visual del director en cierre de Etapa 6.
---
## Hallazgos resueltos durante el sprint
### [RESOLVED] Carácter Unicode `↓` roto en card AHORRO POR EJECUCIÓN
**Síntoma:** mostraba `!"` en lugar de `↓`.
**Resolución:** reemplazado por texto plano en Etapa 6 (fix post-validación).
**Sprint cerrado en:** Sprint 1.5 Etapa 6.
### [RESOLVED] PDF generado del tab equivocado en E2E
**Síntoma:** test E2E generaba PDF del tab "Actual" en lugar de "Comparación + ROI".
**Resolución:** helper `setupRealisticScenario()` ahora navega al tab correcto antes del export.
**Sprint cerrado en:** Sprint 1.5 Etapa 2.
### [RESOLVED] Strings de marca "Process Cost Platform" en footers PDF
**Síntoma:** footers seguían diciendo "Process Cost Platform" en lugar de "InQ ROI · Powered by InQuality".
**Resolución:** strings reemplazados en pdf-export.ts y pdf-sections-roi.ts.
**Sprint cerrado en:** Sprint 1.5 Etapa 2 (adelanto de Etapa 4).
### [RESOLVED] Threshold "1.000,0%" con decimal en sección Transparencia
**Síntoma:** umbral de ROI inusual aparecía con decimal innecesario.
**Resolución:** usar `formatPercent(ROI_HIGH_THRESHOLD, 0)`.
**Sprint cerrado en:** Sprint 1.5 Etapa 2.
### [RESOLVED] Decisión proactiva "Hecho desde Paraguay 🇵🇾" sin consulta
**Síntoma:** Claude Code agregó texto al footer del web app sin reportar.
**Resolución:** mantener decisión (aprobada retroactivamente). El cambio de método mayor fue la creación del Patrón C.6 (iniciativa agéntica con consulta clasificada).
**Sprint cerrado en:** Sprint 1.5 Etapa 3.
### [RESOLVED] Compactación no autorizada de página 3 PDFs Actual/Automatizado
**Síntoma:** Claude Code fusionó "Análisis de composición + Tabla + Nota metodológica" en una sola página, truncando la nota metodológica.
**Resolución:** restauración de estructura 4 páginas con nota metodológica en página separada.
**Aprendizaje:** la decisión fue clasificada como Nivel 1 cuando era Nivel 2 mínimo. Reforzó el Patrón C.6 con criterios de clasificación explícitos.
**Sprint cerrado en:** Sprint 1.5 Etapa 5.
---
## Hallazgos diferidos (promocionar al cerrar sprint)
### [DEFERRED-TECH-DEBT] Fórmulas truncadas + Unicode roto en notas metodológicas
Ya migrado a `TECH_DEBT.md` sección "Deuda crítica". Se mantiene acá como referencia hasta el cierre del sprint.
**Plan:** Sprint 2, etapa dedicada a font embedding + text wrapping.
### [DEFERRED-BACKLOG] Footer "Hecho desde Paraguay 🇵🇾" — destino final
Ya migrado a `BACKLOG.md` sección "Decisiones de producto pendientes".
**Plan:** decidir en Sprint 3-4 con feedback real.
### [DEFERRED-BACKLOG] CumulativeSavingsChart web — empezar en -inversión
Ya migrado a `TECH_DEBT.md` sección "Refinamientos UX".
**Plan:** próxima etapa que toque el componente, o Sprint 2.
### [DEFERRED-BACKLOG] Label "Payback" superpuesto en CumulativeSavingsChart
Ya migrado a `TECH_DEBT.md` sección "Refinamientos UX".
**Plan:** próxima etapa que toque el componente.
---
## Notas operativas del sprint
- Los hallazgos resueltos quedan acá hasta el cierre del sprint. Al cerrar, se archiva el documento o se purga.
- Los hallazgos sin resolver se promocionan a `TECH_DEBT.md` o `BACKLOG.md` según corresponda.
- Este archivo NO contiene roadmap futuro ni deuda histórica — solo hallazgos del sprint en curso.
---
## Cierre del sprint (checklist)
Cuando Sprint 1.5 cierre, ejecutar:
```
[ ] Verificar que todos los items [CURRENT-SPRINT] están RESOLVED
[ ] Mover items [DEFERRED-TECH-DEBT] a TECH_DEBT.md (si no están ya)
[ ] Mover items [DEFERRED-BACKLOG] a BACKLOG.md (si no están ya)
[ ] Archivar o purgar este archivo
[ ] Crear OBSERVATIONS.md vacío para Sprint 2
```