Files
inq-roi-simulador-web/OBSERVATIONS.md
Marcos Benítez 3834c9f1c1 feat(sprint-1.5): PDFs Actual/Auto con identidad InQ + badge naranja (Etapas 8-9)
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>
2026-05-18 10:03:37 -03:00

135 lines
5.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.
### [RESOLVED] Reescritura de fórmulas Σ → ASCII puro en notas metodológicas
**Síntoma:** durante Etapas 7 y 8, Claude Code reescribió las fórmulas
matemáticas de las notas metodológicas de los 3 PDFs (Σ → "SUM", × → "x",
→ "-"). El cambio en Etapa 7 pasó sin reporte. El cambio en Etapa 8
fue reportado como Nivel 1 cuando era Nivel 3.
**Resolución:** decisión arquitectónica retroactiva. La notación ASCII
pura es más alineada con terminología financiera/Excel (audiencia de
InQ ROI: contadores y consultores). Se acepta como solución permanente.
**Consecuencia en TECH_DEBT.md:** el ítem "Sprint 2 — Fórmulas truncadas
+ Unicode roto" se reduce. Las fórmulas ya no necesitan font embedding
Unicode. Sigue pendiente investigar si hay truncamiento de líneas largas
en algún caso edge.
**Aprendizaje meta:** dos casos de mala clasificación de iniciativa en
el sprint (Etapa 5 + Etapa 7-8). Originaron refinamiento del Patrón C.6
y nuevo Anti-Patrón AP.8 (adelanto silencioso de deuda técnica).
**Sprint cerrado en:** Sprint 1.5 Etapa 8.
---
## 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
```