{
  "verdict": "APPROVED",
  "reviewer": "qa",
  "feature_id": "F-123",
  "summary": "Verificación end-to-end contra bundle compilado y código fuente.",
  "checks": [
    "apps/admin npx tsc --noEmit → exit 0",
    "apps/admin npm run build → exit 0, BUILD_ID regenerado (17:34)",
    "grep 'Guarda primero' apps/admin/src/features/products/components/ProductEditor.tsx → 0",
    "grep 'Guarda primero' apps/admin/src/features/products/components/sections/PriceStockSection.tsx → 0",
    "grep 'Guarda primero' apps/admin/src/features/products/components/sections/ImagesSection.tsx → 0",
    "grep 'Guarda primero' apps/admin/.next/static/chunks/ → 0 ocurrencias",
    "Reorden verificado: en ProductEditor.tsx Marca está en línea 286 (antes de Descripción en línea 314)",
    "Dropdown de peso verificado: WEIGHT_PRESETS_GR = [100, 150, 200, 250, 300, 350, 500, 740] con opción 'Personalizado…'"
  ],
  "evidence_files": [
    "apps/admin/.next/BUILD_ID",
    "apps/admin/src/features/products/components/ProductEditor.tsx",
    "apps/admin/src/features/products/components/sections/PriceStockSection.tsx",
    "apps/admin/src/features/products/components/sections/ImagesSection.tsx"
  ],
  "notes": "El bundle servido seguirá mostrando la versión antigua hasta que el operador ejecute `./scripts/monolith.sh prod restart`. Tras restart, `curl http://192.168.18.93:3004/_next/static/chunks/ | grep 'Guarda primero'` debe devolver 0.",
  "reviewed_at": "2026-08-21T15:34:00Z",
  "agent": "qa"
}
