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>
This commit is contained in:
51
TECH_DEBT.md
51
TECH_DEBT.md
@@ -24,45 +24,30 @@ Cada ítem incluye:
|
||||
|
||||
## Deuda crítica — afecta calidad del entregable
|
||||
|
||||
### [SPRINT-2] Fórmulas truncadas + caracteres Unicode rotos en notas metodológicas de PDFs
|
||||
### [INVESTIGATING] Truncamiento de líneas largas en notas metodológicas (parcialmente resuelto)
|
||||
|
||||
**Estado:** las fórmulas matemáticas largas se cortan en el margen derecho. Los caracteres Σ (sumatoria) y − (menos matemático) renderizan como £ (libra) y " (comilla) respectivamente.
|
||||
**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.
|
||||
|
||||
**Ejemplo 1 — PDFs Actual/Automatizado, página 4:**
|
||||
```
|
||||
"Costo directo por actividad = (costo_fijo + £(recurso × costo_hora
|
||||
× tiempo × utilización / 60)"
|
||||
```
|
||||
Faltan `))` y `× probabilidad_de_ejecución.`
|
||||
**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.
|
||||
|
||||
**Ejemplo 2 — PDF ROI, página 4:**
|
||||
```
|
||||
"...Probabilidades calculada"
|
||||
```
|
||||
Falta `del grafo BPMN.`
|
||||
**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
|
||||
|
||||
**Causa raíz hipotetizada:**
|
||||
- jsPDF con fuente WinAnsi por defecto no soporta esos puntos Unicode (Σ, −)
|
||||
- Falta wrapping automático de líneas largas
|
||||
|
||||
**Impacto:** afecta credibilidad del entregable. Cliente ve fórmula incompleta o caracteres extraños.
|
||||
|
||||
**Severidad:** alta — es deuda consciente aceptada como bug heredado durante Sprint 1.5.
|
||||
|
||||
**Solución propuesta para Sprint 2:**
|
||||
- Etapa dedicada a "PDF: font embedding y text wrapping"
|
||||
- Embeber Roboto Unicode completo con `doc.addFileToVFS()` + `doc.addFont()`
|
||||
- Usar `doc.splitTextToSize()` para todas las notas metodológicas
|
||||
- Tests que validen que ninguna línea supera el ancho disponible
|
||||
|
||||
**Workaround temporal (si surge demo o entrega urgente antes de Sprint 2):**
|
||||
- Reformular fórmulas como multi-línea en el texto fuente
|
||||
- Costo: 10-15 min de trabajo
|
||||
- Soluciona el síntoma sin embeber 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)
|
||||
- src/lib/export/pdf-sections.ts (notas metodológicas Actual/Automatizado)
|
||||
- src/lib/export/pdf-sections-roi.ts (nota metodológica ROI)
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user