{"success":true,"module":"mupza_private_beta_readiness_scorecard_preview_v1","data":{"previewId":"mupza-private-beta-readiness-scorecard-preview-v1","route":"/private-beta-readiness-scorecard","mockApiRoute":"/api/mock/restaurant-os/private-beta-readiness-scorecard","generatedForDay":"Day 21 / 30","releaseDecisionAuthority":"human-gated","finalReleaseDecisionHumanGated":true,"safetyBoundary":{"syntheticLocalPreviewDataOnly":true,"isRealReleaseDecision":false,"deploysAnything":false,"callsProduction":false,"callsStaging":false,"createsMonitoringChecks":false,"readsRealLogs":false,"connectsBackend":false,"connectsDatabase":false,"readsSecretsOrEnv":false,"touchesVeloraCrm":false},"categories":[{"categoryId":"permission-adapter","categoryName":"Permission Adapter","readinessStatus":"ready","readinessScore":96,"riskLevel":"low","evidenceSource":"Day 16 Permission Adapter Preview and local QA marker","evidenceSummary":"Synthetic allow/deny examples document central permission adapter behavior without creating role grants.","qaMarker":"RESULT: MUPZA_BUSINESS_OS_PERMISSION_ADAPTER_PREVIEW_V1_PASS","ownerReviewRequired":false,"operatorReviewRequired":true,"blockerReason":"None for local preview data.","recommendedNextAction":"Owner/operator should review adapter evidence before any human-approved beta gate.","lastVerifiedExample":"2026-06-10T10:00:00.000Z local synthetic QA evidence","releaseGateDecision":"ready-for-private-beta"},{"categoryId":"owner-admin-permission-matrix","categoryName":"Owner/Admin Permission Matrix","readinessStatus":"ready","readinessScore":92,"riskLevel":"low","evidenceSource":"Day 17 Owner/Admin Permission Matrix Preview","evidenceSummary":"Read-only matrix shows owner/admin visibility and decision expectations with synthetic module rows.","qaMarker":"RESULT: MUPZA_OWNER_ADMIN_PERMISSION_MATRIX_PREVIEW_V1_PASS","ownerReviewRequired":true,"operatorReviewRequired":true,"blockerReason":"None for local preview data.","recommendedNextAction":"Collect owner sign-off notes in a human-reviewed release checklist.","lastVerifiedExample":"2026-06-10T10:01:00.000Z local synthetic QA evidence","releaseGateDecision":"ready-for-private-beta"},{"categoryId":"tenant-branch-scope-guard","categoryName":"Tenant/Branch Scope Guard","readinessStatus":"ready","readinessScore":95,"riskLevel":"low","evidenceSource":"Day 18 Tenant/Branch Scope Guard Preview","evidenceSummary":"Synthetic same-branch allow and cross-branch/cross-tenant deny examples are visible for review.","qaMarker":"RESULT: MUPZA_TENANT_BRANCH_SCOPE_GUARD_PREVIEW_V1_PASS","ownerReviewRequired":false,"operatorReviewRequired":true,"blockerReason":"None for local preview data.","recommendedNextAction":"Keep scope assertions in the private beta acceptance checklist.","lastVerifiedExample":"2026-06-10T10:02:00.000Z local synthetic QA evidence","releaseGateDecision":"ready-for-private-beta"},{"categoryId":"sensitive-data-redaction","categoryName":"Sensitive Data Redaction","readinessStatus":"ready","readinessScore":94,"riskLevel":"low","evidenceSource":"Day 19 Sensitive Data Redaction Preview","evidenceSummary":"Placeholder customer contact and secret-like fields are masked in the preview evidence set.","qaMarker":"RESULT: MUPZA_SENSITIVE_DATA_REDACTION_PREVIEW_V1_PASS","ownerReviewRequired":false,"operatorReviewRequired":true,"blockerReason":"None for local preview data.","recommendedNextAction":"Confirm beta support scripts keep using placeholders and never expose raw values.","lastVerifiedExample":"2026-06-10T10:03:00.000Z local synthetic QA evidence","releaseGateDecision":"ready-for-private-beta"},{"categoryId":"audit-evidence-timeline","categoryName":"Audit Evidence Timeline","readinessStatus":"ready","readinessScore":93,"riskLevel":"low","evidenceSource":"Day 20 Audit Evidence Timeline Preview","evidenceSummary":"Synthetic timeline rows connect permission, scope, redaction, approval and QA evidence markers.","qaMarker":"RESULT: MUPZA_AUDIT_EVIDENCE_TIMELINE_PREVIEW_V1_PASS","ownerReviewRequired":false,"operatorReviewRequired":true,"blockerReason":"None for local preview data.","recommendedNextAction":"Use the timeline as read-only release evidence context for human review.","lastVerifiedExample":"2026-06-10T10:04:00.000Z local synthetic QA evidence","releaseGateDecision":"ready-for-private-beta"},{"categoryId":"owner-admin-core","categoryName":"Owner/Admin Core","readinessStatus":"ready","readinessScore":90,"riskLevel":"medium","evidenceSource":"Owner/admin MVP screens and local smoke coverage","evidenceSummary":"Core admin screens are represented by local mock Restaurant OS views and review package evidence.","qaMarker":"RESULT: MUPZA_OWNER_ADMIN_CORE_LOCAL_PREVIEW_READY","ownerReviewRequired":true,"operatorReviewRequired":true,"blockerReason":"None for local preview data.","recommendedNextAction":"Have owner validate beta-critical admin workflows using local preview scenarios.","lastVerifiedExample":"2026-06-10T10:05:00.000Z local synthetic QA evidence","releaseGateDecision":"ready-for-private-beta"},{"categoryId":"pos-core","categoryName":"POS Core","readinessStatus":"ready","readinessScore":91,"riskLevel":"medium","evidenceSource":"POS Desktop, POS settings, POS offline and cashier preview evidence","evidenceSummary":"Local POS surfaces demonstrate cashier operations, settings, theme persistence and offline authority examples.","qaMarker":"RESULT: MUPZA_POS_CORE_LOCAL_PREVIEW_READY","ownerReviewRequired":true,"operatorReviewRequired":true,"blockerReason":"None for local preview data.","recommendedNextAction":"Run a human-observed POS tabletop test before private beta approval.","lastVerifiedExample":"2026-06-10T10:06:00.000Z local synthetic QA evidence","releaseGateDecision":"ready-for-private-beta"},{"categoryId":"pos-approval-audit","categoryName":"POS Approval Audit","readinessStatus":"ready","readinessScore":89,"riskLevel":"medium","evidenceSource":"POS Approval Audit local preview and QA smoke marker","evidenceSummary":"Approval actions and synthetic audit rows are visible for owner/operator review.","qaMarker":"RESULT: MUPZA_POS_APPROVAL_AUDIT_LOCAL_PREVIEW_READY","ownerReviewRequired":true,"operatorReviewRequired":true,"blockerReason":"None for local preview data.","recommendedNextAction":"Confirm manager approval wording with beta operators.","lastVerifiedExample":"2026-06-10T10:07:00.000Z local synthetic QA evidence","releaseGateDecision":"ready-for-private-beta"},{"categoryId":"order-flow","categoryName":"Order Flow","readinessStatus":"ready","readinessScore":90,"riskLevel":"medium","evidenceSource":"Order Flow, Order Routing and Order Ingest local previews","evidenceSummary":"Synthetic dine-in, pickup and delivery order actions are represented without backend persistence.","qaMarker":"RESULT: MUPZA_ORDER_FLOW_LOCAL_PREVIEW_READY","ownerReviewRequired":true,"operatorReviewRequired":true,"blockerReason":"None for local preview data.","recommendedNextAction":"Complete a human beta walkthrough using only mock orders.","lastVerifiedExample":"2026-06-10T10:08:00.000Z local synthetic QA evidence","releaseGateDecision":"ready-for-private-beta"},{"categoryId":"qr-public-ordering","categoryName":"QR/Public Ordering","readinessStatus":"ready","readinessScore":88,"riskLevel":"medium","evidenceSource":"QR Website Intake, Public Menu Availability and Cart Pricing previews","evidenceSummary":"Public ordering previews show local intake, availability and pricing boundaries with synthetic payloads.","qaMarker":"RESULT: MUPZA_QR_PUBLIC_ORDERING_LOCAL_PREVIEW_READY","ownerReviewRequired":true,"operatorReviewRequired":true,"blockerReason":"None for local preview data.","recommendedNextAction":"Owner should approve menu and public ordering copy before beta exposure.","lastVerifiedExample":"2026-06-10T10:09:00.000Z local synthetic QA evidence","releaseGateDecision":"ready-for-private-beta"},{"categoryId":"public-receipts","categoryName":"Public Receipts","readinessStatus":"ready","readinessScore":87,"riskLevel":"medium","evidenceSource":"Public receipt access, delivery, revocation, abuse guard and redaction previews","evidenceSummary":"Receipt links, delivery outbox, revocation and redaction examples are local-only and reviewable.","qaMarker":"RESULT: MUPZA_PUBLIC_RECEIPTS_LOCAL_PREVIEW_READY","ownerReviewRequired":true,"operatorReviewRequired":true,"blockerReason":"None for local preview data.","recommendedNextAction":"Review receipt copy and redaction expectations with beta operators.","lastVerifiedExample":"2026-06-10T10:10:00.000Z local synthetic QA evidence","releaseGateDecision":"ready-for-private-beta"},{"categoryId":"payment-readiness","categoryName":"Payment Readiness","readinessStatus":"warning","readinessScore":72,"riskLevel":"high","evidenceSource":"Public Payment Method Readiness preview","evidenceSummary":"Payment coverage remains a local readiness preview; provider activation must stay human-gated.","qaMarker":"RESULT: MUPZA_PUBLIC_PAYMENT_READINESS_WARNING_PREVIEW","ownerReviewRequired":true,"operatorReviewRequired":true,"blockerReason":"Warning only: real provider activation and settlement checks are outside this local preview.","recommendedNextAction":"Human owner/operator must confirm beta payment mode and rollback policy before any launch decision.","lastVerifiedExample":"2026-06-10T10:11:00.000Z local synthetic QA evidence","releaseGateDecision":"hold-with-warnings"},{"categoryId":"billing-subscription-guardrails","categoryName":"Billing/Subscription Guardrails","readinessStatus":"warning","readinessScore":74,"riskLevel":"high","evidenceSource":"Billing Subscription Guardrails mock preview","evidenceSummary":"Subscription and billing guardrails are represented as mock policy rows and require human finance review.","qaMarker":"RESULT: MUPZA_BILLING_SUBSCRIPTION_GUARDRAILS_WARNING_PREVIEW","ownerReviewRequired":true,"operatorReviewRequired":true,"blockerReason":"Warning only: no real billing provider or tenant billing state is exercised here.","recommendedNextAction":"Confirm beta billing plan, grace periods and support escalation wording with a human owner.","lastVerifiedExample":"2026-06-10T10:12:00.000Z local synthetic QA evidence","releaseGateDecision":"hold-with-warnings"},{"categoryId":"tenant-domain-routing","categoryName":"Tenant Domain Routing","readinessStatus":"warning","readinessScore":78,"riskLevel":"medium","evidenceSource":"Tenant Domain Routing Matrix preview","evidenceSummary":"Domain routing matrix is preview-only; custom domain cutovers remain outside Codex release authority.","qaMarker":"RESULT: MUPZA_TENANT_DOMAIN_ROUTING_WARNING_PREVIEW","ownerReviewRequired":true,"operatorReviewRequired":true,"blockerReason":"Warning only: real DNS/TLS cutover decisions are human-gated and not part of this scorecard.","recommendedNextAction":"Use assisted domain checklist only after explicit human approval.","lastVerifiedExample":"2026-06-10T10:13:00.000Z local synthetic QA evidence","releaseGateDecision":"hold-with-warnings"},{"categoryId":"provider-command-safety","categoryName":"Provider Command Safety","readinessStatus":"ready","readinessScore":95,"riskLevel":"low","evidenceSource":"Provider Command Safety Queue preview","evidenceSummary":"Provider commands are modeled as queued, reviewable local examples and do not execute provider actions.","qaMarker":"RESULT: MUPZA_PROVIDER_COMMAND_SAFETY_QUEUE_PASS","ownerReviewRequired":false,"operatorReviewRequired":true,"blockerReason":"None for local preview data.","recommendedNextAction":"Keep provider command execution disabled unless a human-approved workflow is created later.","lastVerifiedExample":"2026-06-10T10:14:00.000Z local synthetic QA evidence","releaseGateDecision":"ready-for-private-beta"},{"categoryId":"service-kill-switch","categoryName":"Service Kill Switch","readinessStatus":"ready","readinessScore":94,"riskLevel":"low","evidenceSource":"Service Kill Switch Matrix preview","evidenceSummary":"Kill switch states are visible as mock service controls with clear off/guarded semantics.","qaMarker":"RESULT: MUPZA_SERVICE_KILL_SWITCH_MATRIX_PASS","ownerReviewRequired":false,"operatorReviewRequired":true,"blockerReason":"None for local preview data.","recommendedNextAction":"Have operator confirm emergency contact and human escalation steps.","lastVerifiedExample":"2026-06-10T10:15:00.000Z local synthetic QA evidence","releaseGateDecision":"ready-for-private-beta"},{"categoryId":"route-regression-smoke","categoryName":"Route Regression Smoke","readinessStatus":"ready","readinessScore":88,"riskLevel":"medium","evidenceSource":"Route Smoke Index and Route Regression Smoke Bundle previews","evidenceSummary":"Restaurant OS route smoke coverage is represented by local route manifests and synthetic QA status rows.","qaMarker":"RESULT: MUPZA_ROUTE_REGRESSION_SMOKE_LOCAL_PREVIEW_READY","ownerReviewRequired":false,"operatorReviewRequired":true,"blockerReason":"None for local preview data.","recommendedNextAction":"Keep route smoke evidence attached to every private beta candidate review.","lastVerifiedExample":"2026-06-10T10:16:00.000Z local synthetic QA evidence","releaseGateDecision":"ready-for-private-beta"},{"categoryId":"build-typecheck-lint-evidence","categoryName":"Build/Typecheck/Lint Evidence","readinessStatus":"ready","readinessScore":93,"riskLevel":"low","evidenceSource":"Local npm build, typecheck and lint-if-present evidence","evidenceSummary":"Local validation commands are expected before commit; lint remains a safe no-op when the script is absent.","qaMarker":"RESULT: MUPZA_BUILD_TYPECHECK_LINT_EVIDENCE_READY","ownerReviewRequired":false,"operatorReviewRequired":true,"blockerReason":"None when local checks pass.","recommendedNextAction":"Attach command output summary to the PR and restore generated drift before commit.","lastVerifiedExample":"2026-06-10T10:17:00.000Z local synthetic QA evidence","releaseGateDecision":"ready-for-private-beta"},{"categoryId":"documentation-runbook-evidence","categoryName":"Documentation/Runbook Evidence","readinessStatus":"ready","readinessScore":91,"riskLevel":"low","evidenceSource":"Private Beta Readiness Scorecard Preview v1 runbook","evidenceSummary":"Runbook documents scope, safety boundaries, validation commands and human-gated release language.","qaMarker":"RESULT: MUPZA_PRIVATE_BETA_READINESS_RUNBOOK_READY","ownerReviewRequired":true,"operatorReviewRequired":true,"blockerReason":"None for this local runbook preview.","recommendedNextAction":"Human reviewer should compare runbook acceptance criteria with beta candidate evidence.","lastVerifiedExample":"2026-06-10T10:18:00.000Z local synthetic QA evidence","releaseGateDecision":"ready-for-private-beta"},{"categoryId":"private-beta-operator-review","categoryName":"Private Beta Operator Review","readinessStatus":"warning","readinessScore":70,"riskLevel":"high","evidenceSource":"Synthetic operator review placeholder for Day 21 scorecard","evidenceSummary":"Operator review is intentionally marked warning because final beta readiness requires human review.","qaMarker":"RESULT: MUPZA_PRIVATE_BETA_OPERATOR_REVIEW_WARNING_PREVIEW","ownerReviewRequired":true,"operatorReviewRequired":true,"blockerReason":"Warning only: the operator has not made a real private beta decision inside this preview.","recommendedNextAction":"Schedule human owner/operator review and record the final decision outside this local preview.","lastVerifiedExample":"2026-06-10T10:19:00.000Z local synthetic QA evidence","releaseGateDecision":"hold-with-warnings"},{"categoryId":"synthetic-future-beta-gate","categoryName":"Synthetic Future Beta Gate Example","readinessStatus":"blocked","readinessScore":0,"riskLevel":"critical","evidenceSource":"Synthetic future gate example only; not a real blocker","evidenceSummary":"This blocked row proves the UI and QA script can display blockers clearly without declaring an actual release stop.","qaMarker":"RESULT: MUPZA_SYNTHETIC_FUTURE_BETA_GATE_BLOCKED_EXAMPLE_ONLY","ownerReviewRequired":true,"operatorReviewRequired":true,"blockerReason":"Synthetic future gate example, not real blocker: future live-provider reconciliation evidence is intentionally absent from this local preview.","recommendedNextAction":"Do not treat this as a release decision; replace with real human-reviewed evidence only when explicitly approved.","lastVerifiedExample":"2026-06-10T10:20:00.000Z synthetic blocked visual example","releaseGateDecision":"blocked"}],"summary":{"categoryCount":21,"readyCount":16,"warningCount":4,"blockedCount":1,"notApplicableCount":0,"averageReadinessScore":84,"highestRiskLevel":"critical","recommendedReleaseGateDecision":"hold-with-warnings","humanGateSummary":"This is not a real release decision. Private beta remains human-gated and requires owner/operator review."},"qaMarker":"RESULT: MUPZA_PRIVATE_BETA_READINESS_SCORECARD_PREVIEW_V1_PASS"}}