{
  "feature_id": "F-150",
  "agent": "reviewer",
  "stage": "review_gate",
  "verdict": "APPROVED",
  "summary": "CSV export streaming endpoint GET /reporting/export/:report with REPORTING_EXPORT RBAC. Admin/editor can export. Streaming implementation (500 rows/page, max 10k). Metadata headers. tsc 0, boundaries 0.",
  "checks": [
    {"item": "AC1 CSV streaming", "ok": true, "evidence": "reply.raw.write per row; summary/sales/products branches; Content-Disposition header"},
    {"item": "AC2 RBAC", "ok": true, "evidence": "REPORTING_EXPORT in admin + editor REPORTING_ROLE_PERMISSIONS; requireReportingPermission called"},
    {"item": "AC3 streaming", "ok": true, "evidence": "Page-by-page fetch (500/page); MAX_ROWS=10_000; reply.raw.write + reply.raw.end()"},
    {"item": "AC4 metadata headers", "ok": true, "evidence": "reply.raw.write with # report/from/to/channel/exported_at header lines"},
    {"item": "AC5 permissions", "ok": true, "evidence": "requireReportingPermission(user, 'REPORTING_EXPORT')"},
    {"item": "tsc/verify", "ok": true, "evidence": "tsc 0 errors; boundaries 0 new; verify.sh green"}
  ],
  "issues": []
}
