# Checklist de QA — pre-cierre de sprint / pre-deploy

> Lista de verificación para validar el estado del producto antes de
> cerrar un sprint o desplegar a producción.
> Actualizado al cierre de Sprint 1.5 (18 mayo 2026).
> Tiempo estimado: 15-20 minutos (5 automatizado + 10 manual).

---

## 1. Suite automatizada

```
[ ] npm test               → 0 rojos, 0 skip sin justificación
[ ] npm run test:e2e       → 0 rojos (excluir tests archivados)
[ ] npm run build          → sin errores (warnings de chunk-size: ignorar)
[ ] npx tsc --noEmit       → sin errores
[ ] npm run lint           → 0 errores (warnings de any: ignorar en lib/export/)
```

**Si hay rojos:** registrar en OBSERVATIONS.md como `[CURRENT-SPRINT]` con categoría:
- Bug nuevo introducido en este sprint → corregir antes de cerrar
- Test obsoleto (baseline caducado) → actualizar el test o archivarlo
- Flaky (pasa/falla según timing) → registrar como tech debt

---

## 2. Validación visual — web app

Ejecutar `npm run dev` → abrir `http://localhost:5173`

```
[ ] Homepage carga sin errores en consola del browser
[ ] Importar BPMN: arrastrar medium-with-gateways.bpmn → workspace carga
[ ] BPMN renderiza correctamente (nodos, flujos, gateways visibles)
[ ] Clic en actividad → ActivityPanel se abre con formulario de costos
[ ] Toggle "Automatizable" + Guardar → badge ⚡ naranja aparece sobre el nodo en el canvas
[ ] Desmarcar "Automatizable" + Guardar → badge ⚡ desaparece
[ ] Botón Simular → navega a /report/ con KPI cards
[ ] KPI cards usan paleta naranja InQ (fondo #FEF3E2, no gris)
[ ] Tab "Automatizado" → reporte actualizado con costos automatizados
[ ] Tab "Comparación" → KPI Hero naranja → magenta visible
[ ] CumulativeSavingsChart muestra curva con payback marcado
[ ] Ningún error de consola durante el flujo completo
[ ] Texto "InQ ROI" en header (no "Process Cost Platform")
[ ] Footer: "Hecho desde Paraguay 🇵🇾" (si aplica según decisión pendiente BACKLOG.md)
```

---

## 3. Validación visual — PDFs

Exportar los 3 PDFs después del flujo del punto anterior.

```
PDF Actual (4 páginas):
[ ] Página 1: "ANÁLISIS DE COSTOS — ESCENARIO ACTUAL" + cards naranja InQ
[ ] Página 1: strip de metadata con PROCESO, FECHA, MONEDA
[ ] Página 2: diagrama BPMN landscape con heatmap de colores
[ ] Página 3: "ANÁLISIS DE COMPOSICIÓN" uppercase + tabla con header naranja
[ ] Página 4: "NOTA METODOLÓGICA" uppercase + caja contenedora
[ ] Footer todas las páginas: "InQ ROI · Powered by InQuality · Página X de 4"

PDF Automatizado (4 páginas):
[ ] Página 1: "ANÁLISIS DE COSTOS — ESCENARIO AUTOMATIZADO" + cards naranja InQ
[ ] Páginas 2-4: mismo esquema que Actual
[ ] Footer: "Página X de 4"

PDF ROI (5 páginas):
[ ] Página 1: header denso + banner narrativo + KPI Hero gradiente naranja→magenta
[ ] Página 1: grid 2×2 KPIs secundarios + Top 3 actividades con barras
[ ] Página 2: tabla comparativa con header naranja (#FFF8ED)
[ ] Página 3: "ANÁLISIS DEL AHORRO" + sección transparencia (si aplica)
[ ] Página 4: "NOTA METODOLOGICA - ANALISIS DE ROI" + caja contenedora
[ ] Página 5: "TRAYECTORIA DEL AHORRO ACUMULADO" + gráfico SVG con áreas
[ ] Footer: "InQ ROI · Powered by InQuality · Página X de 5"
```

---

## 4. Regresiones de marca

```
[ ] "InQ" aparece siempre como I-n-Q (no INQ, Inq, inq, inQ)
[ ] "InQ ROI" es el nombre del producto (no "Process Cost Platform")
[ ] "Powered by InQuality" en footer de todos los PDFs
[ ] Sin "v0.1.0" en PDFs (puede estar en web si es útil internamente)
[ ] Sin colores CONCILIA (#572FA2, #CB1889) en ningún componente
[ ] Gradiente naranja→magenta solo en KPI Hero ROI (no en PDFs Actual/Automatizado)
```

---

## 5. Documentación del sprint

```
[ ] CLAUDE.md tiene criterios de iniciativa actualizados
[ ] methodology/PATTERNS.md tiene los patrones del sprint cosechados
[ ] methodology/ANTI_PATTERNS.md tiene los anti-patrones del sprint
[ ] OBSERVATIONS.md: todos los items son [RESOLVED] o [DEFERRED-*]
[ ] TECH_DEBT.md: items del sprint actualizados/promocionados
[ ] BACKLOG.md: items nuevos del sprint agregados
[ ] STRATEGIC_DIRECTION.md: refleja decisiones tomadas en el sprint
[ ] sprints/sprint-N/ tiene todos los ETAPA_N_PROMPT.md del sprint
```

---

## 6. Artefactos del sprint

```
[ ] tests/e2e/__output__/sprint-N-N-final/ tiene los 3 PDFs baseline
[ ] tests/screenshots/ tiene screenshots de Playwright de features visuales
[ ] docs/COVERAGE_STATE.md actualizado con el estado al cierre
[ ] docs/QA_CHECKLIST.md actualizado si hubo cambios en el proceso
[ ] git tag sprint-N-cerrado apuntando al commit de cierre
```

---

## Smoke test manual rápido (5 minutos)

Para verificar el flujo completo en producción después de un deploy:

```
1. Abrir la URL de producción (Cloudflare Pages)
2. Importar medium-with-gateways.bpmn desde public/sample-processes/
3. Configurar task_recv: costo directo 200, automatizado 20, marcar automatable → Guardar
4. Verificar: badge ⚡ naranja aparece sobre el nodo en el canvas
5. Clic en "Simular"
6. En el reporte, verificar KPI cards con paleta naranja
7. Ir a tab "Comparación" → verificar KPI Hero con gradiente naranja→magenta
8. Exportar PDF Actual → verificar que descarga y tiene 4 páginas
9. Exportar PDF ROI → verificar que descarga y tiene 5 páginas
10. Verificar que "InQ ROI" aparece en el header web y en los PDFs

Tiempo estimado: 5 minutos
Resultado esperado: todo funciona sin errores de consola
```

---

## Historial de actualizaciones

| Versión | Sprint | Cambios |
|---|---|---|
| 1.0 | Sprint 1.5 | Creación inicial al cierre del sprint |
