{
  "verdict": "APPROVED",
  "reviewer": "qa",
  "feature_id": "F-125",
  "summary": "Verificación: tests pasan, build OK, state machine consistente entre backend y frontend.",
  "checks": [
    "npx vitest run src/modules/orders/tests/order-state-machine.test.ts → 5 passed (1 nuevo)",
    "cd apps/admin && npx tsc --noEmit → exit 0",
    "cd apps/admin && npm run build → exit 0",
    "Backend ALLOWED_TRANSITIONS.PROCESSING incluye 'PAID'",
    "Backend ALLOWED_TRANSITIONS.SHIPPED incluye 'PROCESSING'",
    "Backend ALLOWED_TRANSITIONS.DELIVERED incluye 'SHIPPED'",
    "Backend ALLOWED_TRANSITIONS.REFUNDED y PARTIALLY_REFUNDED siguen vacíos (terminales)",
    "Frontend ALLOWED_TRANSITIONS mismo contenido",
    "ACTION_LABELS_BY_TRANSITION con 16 pares (from>to)",
    "Helper actionLabel(from, to) usado en 2 sitios"
  ],
  "evidence_files": [
    "src/modules/orders/domain/order.ts",
    "src/modules/orders/tests/order-state-machine.test.ts",
    "apps/admin/src/app/(dashboard)/orders/[id]/page.tsx"
  ],
  "notes": "Tras restart del monolith, el admin muestra los nuevos botones 'Revertir a X' en pedidos PROCESSING/SHIPPED/DELIVERED.",
  "reviewed_at": "2026-08-21T15:58:00Z",
  "agent": "qa"
}
