# Sprint 1.5 — Etapa 11: Polish final + cierre formal del sprint > **Objetivo:** completar los refinamientos visuales diferidos de Etapa 6 sobre la página 1 del PDF ROI (KPI Hero, banner narrativo, grid 2x2, Top 3). Ejecutar el cierre formal del Sprint 1.5: curaduría de OBSERVATIONS.md, migración de items DEFERRED, actualización de STRATEGIC_DIRECTION.md, generación de case study en methodology/, y tag del sprint. > > **Pre-requisitos:** Etapas 1-10 cerradas. CI 100% verde. 3 PDFs baseline en `tests/e2e/__output__/sprint-1-5-final/`. Docs `COVERAGE_STATE.md` y `QA_CHECKLIST.md` creados. > > **Etapa siguiente:** apertura de Sprint 2 (etapa por planificar, no parte de este sprint). --- ## 1. Esta etapa tiene dos partes diferenciadas **Parte A — Polish visual** (mitad de la etapa): refinamientos del PDF ROI página 1. **Parte B — Cierre formal** (otra mitad): curaduría de archivos del sprint. Hacé las dos partes EN ORDEN. La parte A primero. Cuando esté validada por el director, ejecutar parte B. --- ## 2. Parte A — Polish visual de página 1 PDF ROI ### 2.1 Alcance estricto de Parte A Recoger los 4 refinamientos diferidos documentados en `TECH_DEBT.md` sección "Refinamientos visuales del PDF": #### Refinamiento 1 — KPI Hero (gradiente naranja → magenta) **Hallazgos del director en Etapa 6:** - Cifra demasiado pegada al label "AHORRO PROYECTADO A 3 AÑOS" - Tamaño de la cifra (USD 8.020.000,00) podría reducirse ligeramente - Esquinas cuadradas — pasa, pero si se logra redondear, mejor **Cambios propuestos:** ``` Label "AHORRO PROYECTADO A N AÑOS": - Tamaño: 10pt (sin cambios) - Margin-bottom: aumentar de 6mm a 9mm (más respiro hacia la cifra) - Letter-spacing: 1.2pt (sin cambios) Cifra principal (USD N.NNN.NNN): - Tamaño: bajar de 30pt a 26pt (más balanceada) - Tracking: -0.8pt (un poco menos cerrado) - Margin-bottom: 5mm (sin cambios significativos) Esquinas redondeadas (intento opcional): - Si jsPDF permite recortar la imagen del gradiente con border-radius, aplicar 6mm de radius - Si requiere implementación compleja (cuatro triángulos blancos en esquinas, máscara SVG, etc.), DEJAR esquinas cuadradas y reportar - Tiempo máximo invertido: 30 minutos. Si no sale, pasar. ``` #### Refinamiento 2 — Banner narrativo **Hallazgo del director:** - "Texto corrido", no destaca cifras ni palabras clave - Podría tener tratamiento más visual **Cambios propuestos:** ``` Estructura del banner: - Mantener fondo #FFF8ED + border-left 3px #F59845 - Mantener tamaño general del texto (11pt) Tratamiento tipográfico del contenido: - Las CIFRAS dentro del texto en peso 600 + color #B45309 (naranja oscuro): - "5.000 ejecuciones" - "3 años" - "USD 80.000,00" - "USD 540,00" - "90,0%" - "0.4 meses" (o equivalente del payback) - El RESULTADO ("Resultado: ahorro de...") en peso 500 - El resto del texto en peso 400 (sin cambios) Implementación técnica: - jsPDF requiere usar doc.text() con setFont() para cada segmento - Construir el banner como secuencia de fragmentos en lugar de párrafo monolítico - Alternativa: usar doc.text() con array de strings y posicionar manualmente ``` #### Refinamiento 3 — Grid 2x2 KPIs secundarios **Hallazgo del director:** - "No tienen consistencia en el uso de tipografía" - Verificar que los 4 cards sigan el mismo patrón visual **Cambios propuestos:** Auditar visualmente los 4 cards y unificar: ``` Card label superior (las 4 cards): - Tamaño: 9pt (fijo, no variar) - Peso: 500 - Color: #92400E - Letter-spacing: 1pt - Uppercase - Margin-bottom: 5mm (fijo) Card cifra principal (las 4 cards): - Tamaño: 18pt (fijo, no variar entre cards) - Peso: 700 (bold) - Color: #0F172A - Font-family: mono (alineación de números consistente) - Margin-bottom: 3mm Card delta/contexto (las 4 cards): - Tamaño: 9pt (fijo) - Peso: 500 - Color: #B45309 - Margin-top: 0 (después del 3mm de margin-bottom de la cifra) ``` **Específicamente verificar:** - Card "AHORRO POR EJECUCIÓN": la línea "-90,0% vs. actual" debe tener mismo tamaño/peso/color que las deltas de los otros cards - Card "PAYBACK": la línea "Dentro del horizonte" debe tener mismo tratamiento - Card "AHORRO ANUAL": "× 3 años" debe tener mismo tratamiento - Card "ROI ANUAL": "retorno anual" debe tener mismo tratamiento #### Refinamiento 4 — Top 3 actividades **Hallazgos del director:** - Título "TOP 3 ACTIVIDADES POR AHORRO" se ve pequeño - Las barras no tienen fondo para contraste **Cambios propuestos:** ``` Título de la sección: - Texto: "TOP 3 ACTIVIDADES POR AHORRO" - Tamaño: aumentar de 9pt a 11pt - Peso: 600 (más bold) - Color: #92400E (naranja oscuro, en vez de gris) - Letter-spacing: 1.2pt - Margin-bottom: 8mm (más respiro hacia las barras) Barras horizontales: - Track (fondo): mantener #FED7AA (inq-orange-100) - Fill: mantener #F59845 (inq-orange) - Aumentar visibilidad del track: agregar border 0.3pt #F59845 en track para definir el área completa - Border-radius: 1mm en track y fill Layout fila: - Mantener grid 3 columnas (nombre 40% / barra 40% / cifra 20%) - Gap entre filas: 5mm (un poco más que antes) ``` ### 2.2 Validación visual obligatoria de Parte A Cuando Claude Code termine los 4 refinamientos, **NO HACER PARTE B AÚN**. Generar el PDF ROI actualizado: ``` tests/e2e/__output__/etapa-11-roi.pdf ``` Y presentarlo para validación del director. El director va a: 1. Comparar la página 1 con el PDF de Etapa 6 (donde se identificaron los problemas) 2. Decidir si los 4 refinamientos resuelven sus observaciones 3. O pedir ajustes específicos **Solo después del OK explícito del director sobre Parte A, ejecutar Parte B.** ### 2.3 Iteración esperada Es probable que la primera pasada no satisfaga al 100%. El director va a dar feedback específico tipo: - "La cifra del KPI Hero todavía está muy grande, bajá a 24pt" - "El banner no destaca lo suficiente, los números deberían ser color naranja oscuro más fuerte" - "Las barras del Top 3 ahora tienen border, pero el border es muy delgado" **Mentalidad correcta:** la primera pasada es punto de partida. La conversación visual con el director afina hasta llegar al resultado. Esperá 1-3 iteraciones. --- ## 3. Parte B — Cierre formal del sprint **Ejecutar SOLO después del OK explícito del director sobre Parte A.** ### 3.1 Curaduría de OBSERVATIONS.md Acciones específicas: 1. **Items con etiqueta `[RESOLVED]`**: - Verificar que todos están realmente resueltos - Trasladar a una sección final del archivo "Historial de Sprint 1.5" o eliminarlos según preferencia del director 2. **Items con etiqueta `[DEFERRED-TECH-DEBT]`**: - Verificar que ya están migrados a `TECH_DEBT.md` - Si NO están migrados, migrarlos ahora - Eliminar de `OBSERVATIONS.md` 3. **Items con etiqueta `[DEFERRED-BACKLOG]`**: - Verificar que ya están migrados a `BACKLOG.md` - Si NO están migrados, migrarlos ahora - Eliminar de `OBSERVATIONS.md` 4. **Items con etiqueta `[CURRENT-SPRINT]`**: - Si están resueltos por Parte A (polish final), marcarlos `[RESOLVED]` - Si NO están resueltos, **PARAR Y CONSULTAR**: ¿se difieren a Sprint 2 o se cierran como deuda asumida? 5. **Vaciar el archivo dejando estructura para Sprint 2**: ```markdown # OBSERVATIONS — Sprint 2 > Hallazgos descubiertos durante validación visual del sprint actual. > Este archivo se vacía al cerrar el sprint. (Sin hallazgos activos. Sprint 2 inicia.) ## Convención de etiquetas [mantener la convención de etiquetas como referencia] ``` ### 3.2 Actualización de STRATEGIC_DIRECTION.md Agregar al final del archivo una nueva sección con reflexiones del Sprint 1.5: ```markdown ## Reflexiones del cierre de Sprint 1.5 ### Lo que funcionó - [Capturar 3-5 cosas que el director identificó como aprendizajes positivos] - Ejemplo esperable: "Política de iniciativa proactiva con consulta clasificada redujo errores de scope después de Etapa 8" ### Lo que costó más de lo esperado - [Capturar 2-3 dificultades específicas] - Ejemplo esperable: "El gradiente del KPI Hero requirió varias iteraciones" ### Decisiones arquitectónicas tomadas durante el sprint - ASCII puro en fórmulas matemáticas (en lugar de Σ Unicode) - Layout híbrido portrait/landscape para PDFs - Jerarquía visual: KPI Hero exclusivo del PDF ROI - Badge ⚡ con posición basada en `left` (no `right`) - Permisos de Claude Code versionados en .claude/ ### Estado de las definiciones del producto - Identidad visual: estable hasta Sprint 4+ - Posicionamiento de mercado: pendiente de consolidar con feedback real - Métricas de éxito: pendientes de definir con datos de uso ### Anticipación para Sprint 2 [Espacio para que el director complete cuando arranque Sprint 2] ``` ### 3.3 Generación de case study Crear `methodology/CASE_STUDIES/inq-roi-sprint-1-5.md` con resumen del sprint para uso futuro del director con su equipo. Estructura: ```markdown # Case Study — InQ ROI Sprint 1.5: Rediseño visual con identidad InQ ## Contexto inicial - Producto: InQ ROI, herramienta interna de InQuality - Director: Marcos (CEO/fundador InQuality) - Equipo de ejecución: Claude Code (un solo agente) + Claude Sonnet (asesor) - Duración planeada: 11 etapas - Duración real: 11 etapas + 1 fix puntual entre Etapas 10 y 11 ## Alcance del sprint [Lista de qué se construyó: identidad visual, sistema de design, 3 PDFs rediseñados, badge en web, metodología documentada] ## Aplicación del método ### Patrones aplicados con casos concretos [Mencionar cada patrón usado durante el sprint con el caso específico donde se aplicó:] - A.1 Brief versionado: BRIEF.md de 852 líneas, base del sprint completo - A.2 Mockup como contrato: mockups iterados pre-implementación - B.4 Reglas no negociables en CLAUDE.md: marca "InQ", política de iniciativa proactiva - C.1 Validación visual mandatoria: cazó truncamiento de notas en Etapa 5 - C.3 Auditoría adversarial: detectó decisión proactiva no autorizada en Etapa 3 - C.6 Iniciativa agéntica con consulta clasificada: refinada en Etapas 5 y 8 - D.4 Permisos versionados en .claude/: aplicado mid-sprint ### Anti-patrones detectados con casos concretos - AP.3 Racionalización de output anómalo: detectado en validación visual de Etapa 5 (compactación de páginas) - AP.8 Adelanto silencioso de deuda técnica: detectado en Etapa 7-8 (reescritura de fórmulas Σ → ASCII) ### Cosechas del método originadas en este sprint - Refinamiento del Patrón C.6 con criterios explícitos de clasificación - Nuevo Anti-Patrón AP.7: Bypass total de permisos en desarrollo local - Nuevo Anti-Patrón AP.8: Adelanto silencioso de deuda técnica - Nuevo Patrón D.4: Permisos del agente versionados en .claude/ - Extensión del Principio 3: "El auditor también debe ser auditado" ## Lecciones aprendidas [3-5 lecciones operativas que el director identificó como transferibles al equipo] ## Métricas - Etapas: 11 (+ 1 fix puntual) - Tests: 526 unit + 38 E2E al cierre - Archivos modificados/creados: [contar de los commits] - Decisiones de iniciativa: total y desglose por nivel - Casos de mala clasificación de iniciativa: 2 (Etapas 5 y 7-8) ## Material para transmisión al equipo [Sugerencias de qué partes de este case study usar en las 4 sesiones × 1h de transmisión del método al equipo de 5 técnicos de InQuality] ``` ### 3.4 Tag final del sprint ```bash git tag sprint-1-5-cerrado git push --tags ``` ### 3.5 Validación final del cierre Antes de declarar Etapa 11 (y Sprint 1.5) cerrados: - [ ] OBSERVATIONS.md vaciado o resetado para Sprint 2 - [ ] STRATEGIC_DIRECTION.md actualizado con reflexiones del sprint - [ ] CASE_STUDIES/inq-roi-sprint-1-5.md creado - [ ] Tag git `sprint-1-5-cerrado` creado - [ ] Suite completa de tests sigue 100% verde - [ ] CI limpio --- ## 4. Validaciones automatizadas ``` Parte A — Polish visual: 1. PDF ROI etapa-11-roi.pdf generado, 5 páginas 2. Página 1: cifra del KPI Hero ≤ 26pt 3. Página 1: banner narrativo con cifras destacadas (verificar fragmentos de texto con setFont en peso 600) 4. Página 1: grid 2x2 con tamaños consistentes en los 4 cards 5. Página 1: título "TOP 3 ACTIVIDADES POR AHORRO" en color naranja oscuro (#92400E) 6. PDFs Actual y Automatizado: SIN CAMBIOS respecto a Etapa 8 7. Tests previos siguen verdes (526 unit + 38 E2E) Parte B — Cierre formal: 8. OBSERVATIONS.md tiene estructura limpia para Sprint 2 9. STRATEGIC_DIRECTION.md tiene nueva sección de reflexiones 10. methodology/CASE_STUDIES/inq-roi-sprint-1-5.md existe y tiene estructura mínima esperada 11. Tag git sprint-1-5-cerrado existe en local (push pendiente del director) ``` --- ## 5. Entregables (Definition of Done) ``` PARTE A: [ ] 4 refinamientos del PDF ROI página 1 aplicados según especificación [ ] PDF ROI etapa-11-roi.pdf generado para validación visual [ ] PDFs Actual y Automatizado NO modificados [ ] Tests previos verdes [ ] OK explícito del director sobre Parte A antes de avanzar PARTE B: [ ] OBSERVATIONS.md curado y reseteado para Sprint 2 [ ] STRATEGIC_DIRECTION.md actualizado con reflexiones [ ] methodology/CASE_STUDIES/inq-roi-sprint-1-5.md creado [ ] Tag git sprint-1-5-cerrado local [ ] CI 100% verde [ ] Reporte final entregado ``` --- ## 6. Reporte final a entregar 1. **Tabla de archivos modificados/creados** (parte A + parte B separadas) 2. **PDF ROI etapa-11-roi.pdf presentado** con path absoluto 3. **Validaciones automatizadas confirmadas** (11 puntos) 4. **Resumen de cambios en cada refinamiento**: qué se modificó exactamente 5. **Decisiones tomadas durante refinamientos** (especialmente sobre esquinas redondeadas del KPI Hero — sí/no se logró) 6. **Resumen de curaduría**: cuántos items procesados de cada estado ([RESOLVED], [DEFERRED-*], [CURRENT-SPRINT]) 7. **Confirmación de tag git** y estado final del sprint 8. **Decisiones de iniciativa proactiva** según política CLAUDE.md --- ## 7. Reglas operativas 1. **PARTE A ANTES DE PARTE B.** No mezclar. Cuando Parte A está validada por el director, recién entonces ejecutar Parte B. 2. **ITERACIÓN EN PARTE A.** Los refinamientos visuales pueden requerir 2-3 pasadas. Eso es normal. Mantener iteraciones acotadas a feedback específico del director, sin re-rediseñar de cero. 3. **NO TOCAR PDFs Actual y Automatizado.** Cerrados en Etapa 8. 4. **NO MODIFICAR código no relacionado con los 4 refinamientos** durante Parte A. Es polish, no refactor. 5. **EN PARTE B, las decisiones de curaduría son del director.** Si un item DEFERRED no está claro a dónde migrar, consultar. Si un item CURRENT-SPRINT no se resolvió en el sprint, consultar antes de diferirlo automáticamente. 6. **Política de iniciativa refinada (post-Etapa 8):** - Cambios en código fuera de los 4 refinamientos: Nivel 3 — consultar - Cambios en archivos de documentación dentro del scope de Parte B: Nivel 2 — reportar - Eliminar items de OBSERVATIONS.md: SIEMPRE Nivel 2 (reportar lo que se eliminó/movió) 7. **Si encontrás contradicción** entre prompt y código: PARÁ y consultá. 8. **Si la iteración de Parte A se extiende mucho**, evaluar con el director si vale la pena cerrar Etapa 11 con el polish "razonable" y diferir refinamientos finos a una etapa de mantenimiento en Sprint 2. --- ## 8. Por qué esta etapa importa Etapa 11 es **el cierre del primer sprint donde se construyó el método mientras se construía el producto**. Lo que decidas acá determina: 1. La calidad final del entregable visual que va a clientes 2. La calidad del registro del sprint (case study + reflexiones) 3. La capacidad de transmitir el método a tu equipo con material concreto **No te apures con esta etapa.** Si Parte A requiere 3 iteraciones, está bien. Si Parte B requiere 1 hora de curaduría con decisiones por item, está bien. El éxito de Etapa 11 NO se mide en velocidad. Se mide en: - Página 1 del PDF ROI alcanza el nivel que vos pretendías al inicio del sprint - Sprint 1.5 cierra con artefactos transferibles (case study + docs actualizados) - Tu equipo puede ver Sprint 1.5 como ejemplo concreto del método en acción --- ## 9. Después de Etapa 11 Cuando esta etapa cierre: - Sprint 1.5 queda completamente cerrado - Tu siguiente trabajo es planificar Sprint 2 con la dirección estratégica documentada (rebalanceo web/PDF, criterio de wow obligatorio) - Las 4 sesiones × 1h de transmisión metodológica al equipo pueden arrancar usando el case study como material Es el momento de inflexión. Sprint 1.5 fue donde construiste vocabulario, patrones y método. Sprint 2 va a ser donde vos aplicás eso para producir features de valor, y donde tu equipo eventualmente toma el método y lo usa. Esta es la última etapa donde estamos todos enfocados solo en InQ ROI. Después, el método cobra vida propia.