{"ok":true,"checkedAt":"2026-07-17T20:54:01.591Z","contractVersion":"moral-trade-reviewer-quality-v0.1-2026-06","purpose":"Require reviewer-quality policy, authorization, conflict, calibration, second-review, and audit evidence before human-review decisions can clear, release, publish, or promote marketplace state.","validation":{"status":"pass","validatorName":"moral-trade-reviewer-quality-contract","validatorVersion":"moral-trade-reviewer-quality-validator-v0.1","contractVersion":"moral-trade-reviewer-quality-v0.1-2026-06","checks":[{"id":"first-class-record-tables","label":"Reviewer-quality policies, audits, and review decisions are first-class records.","status":"pass","evidence":"moral_trade_reviewer_quality_policies, moral_trade_review_quality_audits, moral_trade_review_decisions"},{"id":"policy-snapshot-subject","label":"Reviewer quality resolves through an immutable policy snapshot subject.","status":"pass","evidence":"reviewer_quality"},{"id":"high-risk-review-types","label":"Reviewer quality covers clearing, release gates, recipient verification, privacy grants, evidence, impact claims, appeals, incidents, payout release, and overrides.","status":"pass","evidence":"matching_clearing, release_gate_approval, recipient_destination_verification, privacy_grant_approval, evidence_acceptance, impact_claim_publication, appeal_resolution, incident_closure, payout_release, blocker_override"},{"id":"fail-closed-statuses","label":"Authorization, scope, conflict, calibration, second-review, audit, default-approval, and stale-decision blockers are explicit.","status":"pass","evidence":"policy_missing, policy_mutable, policy_stale, policy_superseded, decision_missing, decision_stale, decision_superseded, reviewer_authorization_missing, reviewer_authorization_stale, reviewer_out_of_scope, reviewer_suspended, conflict_missing, conflict_unresolved, conflict_blocking, calibration_missing, calibration_failed, second_review_missing, audit_missing, audit_failed, audit_stale, default_approval_detected, review_speed_override_detected, invalid_reviewer_hash, invalid_decision_hash, invalid_audit_hash"},{"id":"default-approval-prohibited","label":"The contract states that review-speed targets cannot create default approvals or default private-data disclosures.","status":"pass","evidence":"Reviewer judgment is not an ungoverned primitive. Missing, stale, conflicted, out-of-scope, suspended, default-approved, uncalibrated, unaudited, or single-review decisions fail closed until an eligible reviewer or neutral panel records a superseding decision under the frozen reviewer-quality policy."},{"id":"privacy-boundary","label":"The public contract excludes reviewer identities, private notes, conflict facts, audit evidence, and participant-specific records.","status":"pass","evidence":"Reviewer-quality contract responses expose review-type keys, table names, status vocabularies, and aggregate sample statuses only. They never expose reviewer identities, private reviewer notes, calibration details, conflict facts, audit evidence, or participant-specific subject records."},{"id":"sample-evaluations","label":"The public contract exposes a passing release-gate sample and blocked evidence/payout samples.","status":"pass","evidence":"release_gate_approval:pass, evidence_acceptance:blocked, payout_release:blocked"},{"id":"contract-tests","label":"Reviewer-quality contract test hooks are published.","status":"pass","evidence":"reviewer_quality_contract_validator, reviewer_quality_missing_policy_or_decision_fails_closed, reviewer_quality_conflict_scope_calibration_second_review_blocks, reviewer_quality_default_approval_and_failed_audits_block, reviewer_quality_route_health_spec_and_schema_wiring"}],"blockers":[]},"publicContract":{"privacyRule":"Reviewer-quality contract responses expose review-type keys, table names, status vocabularies, and aggregate sample statuses only. They never expose reviewer identities, private reviewer notes, calibration details, conflict facts, audit evidence, or participant-specific subject records.","failClosedRule":"Reviewer judgment is not an ungoverned primitive. Missing, stale, conflicted, out-of-scope, suspended, default-approved, uncalibrated, unaudited, or single-review decisions fail closed until an eligible reviewer or neutral panel records a superseding decision under the frozen reviewer-quality policy.","firstClassRecordTables":["moral_trade_reviewer_quality_policies","moral_trade_review_quality_audits","moral_trade_review_decisions"],"policySnapshotSubjects":["reviewer_quality"],"reviewTypes":["matching_clearing","release_gate_approval","recipient_destination_verification","privacy_grant_approval","evidence_acceptance","impact_claim_publication","appeal_resolution","incident_closure","payout_release","blocker_override"],"failClosedStatuses":["policy_missing","policy_mutable","policy_stale","policy_superseded","decision_missing","decision_stale","decision_superseded","reviewer_authorization_missing","reviewer_authorization_stale","reviewer_out_of_scope","reviewer_suspended","conflict_missing","conflict_unresolved","conflict_blocking","calibration_missing","calibration_failed","second_review_missing","audit_missing","audit_failed","audit_stale","default_approval_detected","review_speed_override_detected","invalid_reviewer_hash","invalid_decision_hash","invalid_audit_hash"],"reviews":[{"key":"matching_clearing","blocksTransitions":["matching_clearing","matched_trade_lock"],"userFacingBlockerCategory":"Reviewer eligibility needs confirmation before clearing"},{"key":"release_gate_approval","blocksTransitions":["release_gate_promotion","public_metric_release"],"userFacingBlockerCategory":"Reviewer eligibility needs confirmation before release"},{"key":"recipient_destination_verification","blocksTransitions":["payment_capture","payout_release"],"userFacingBlockerCategory":"Reviewer eligibility needs confirmation before money movement"},{"key":"privacy_grant_approval","blocksTransitions":["privacy_disclosure","contact_introduction"],"userFacingBlockerCategory":"Reviewer eligibility needs confirmation before disclosure"},{"key":"evidence_acceptance","blocksTransitions":["evidence_acceptance","challenge_window_close"],"userFacingBlockerCategory":"Reviewer eligibility needs confirmation before evidence can count"},{"key":"impact_claim_publication","blocksTransitions":["impact_claim_publication","public_metric_release"],"userFacingBlockerCategory":"Reviewer eligibility needs confirmation before publication"},{"key":"appeal_resolution","blocksTransitions":["appeal_resolution","superseding_decision"],"userFacingBlockerCategory":"Reviewer eligibility needs confirmation before appeal resolution"},{"key":"incident_closure","blocksTransitions":["incident_closure","emergency_unpause"],"userFacingBlockerCategory":"Reviewer eligibility needs confirmation before incident closure"},{"key":"payout_release","blocksTransitions":["payout_release","round_close"],"userFacingBlockerCategory":"Reviewer eligibility needs confirmation before payout release"},{"key":"blocker_override","blocksTransitions":["blocker_override","non_emergency_privileged_change"],"userFacingBlockerCategory":"Reviewer eligibility needs confirmation before override"}],"reviewerQualitySampleEvaluationStatuses":{"release_gate_approval":"pass","evidence_acceptance":"blocked","payout_release":"blocked"},"contractTests":["reviewer_quality_contract_validator","reviewer_quality_missing_policy_or_decision_fails_closed","reviewer_quality_conflict_scope_calibration_second_review_blocks","reviewer_quality_default_approval_and_failed_audits_block","reviewer_quality_route_health_spec_and_schema_wiring"]},"blockers":[]}