{"ok":true,"checkedAt":"2026-07-17T20:53:17.940Z","contractVersion":"moral-trade-post-clear-audit-v0.1-2026-06","purpose":"Fail-closed privacy-safe post-clear audit sampling contract for completed non-public-goods donation offsets and pledge swaps, covering baselines, evidence, recipient acceptance, disclosure, payment state, classification, public metrics, payout release, and release-gate promotion.","validation":{"status":"pass","validatorName":"moral-trade-post-clear-audit-contract","validatorVersion":"moral-trade-post-clear-audit-validator-v0.1","contractVersion":"moral-trade-post-clear-audit-v0.1-2026-06","checks":[{"id":"versioned-contract","label":"Contract version is pinned","status":"pass","evidence":"moral-trade-post-clear-audit-v0.1-2026-06"},{"id":"first-class-records","label":"First-class post-clear audit tables are declared","status":"pass","evidence":"moral_trade_post_clear_audit_policies, moral_trade_post_clear_audit_records"},{"id":"policy-snapshot-subjects","label":"Policy snapshot subject includes post-clear audit","status":"pass","evidence":"post_clear_audit"},{"id":"subject-coverage","label":"Contract covers cleared trades, lock proposals, payment events, evidence, payouts, and impact claims","status":"pass","evidence":"cleared_trade_agreement, matched_trade_lock_proposal, payment_event, evidence_record, payout_milestone, impact_claim_record"},{"id":"audit-type-coverage","label":"Contract covers random, risk, dispute, payment, evidence, recipient, classification, and manual audits","status":"pass","evidence":"random_sample, risk_triggered, dispute_triggered, payment_triggered, evidence_triggered, recipient_triggered, classification_triggered, manual_review"},{"id":"transition-coverage","label":"Public metrics, payout release, and release promotion require non-blocking audit records","status":"pass","evidence":"post_clear_sampling_assignment:false, audit_record_review:false, corrective_action_resolution:false, payment_reconciliation_close:true, payout_release:true, public_metric_publication:true, release_gate_promotion:true"},{"id":"correction-boundaries","label":"Correction boundaries prohibit public reputation and new retroactive obligations","status":"pass","evidence":"fraud_error_correction_only_under_frozen_policy, payment_error_correction_only_under_frozen_policy, evidence_error_correction_only_under_frozen_policy, recipient_disclosure_error_correction_only_under_frozen_policy, classification_error_correction_only_under_frozen_policy, no_public_moral_reputation_or_retroactive_obligation"},{"id":"sample-evaluations","label":"Sample evaluations cover pass and fail-closed post-clear audit states","status":"pass","evidence":"post_clear_sampling_assignment:pass, public_metric_publication:blocked, release_gate_promotion:pass, payout_release:blocked, public_metric_publication:blocked"},{"id":"privacy-boundary","label":"Public boundary excludes raw payment evidence and private audit rows","status":"pass","evidence":"Public surfaces may expose table names, subject types, audit types, match-state categories, transition rules, blocker categories, and sample statuses only. They must not expose raw payment evidence, private counterparty terms, reviewer notes, raw reconciliation rows, raw provider payloads, participant-specific audit rows, private evidence artifacts, or public moral reputation scores."},{"id":"contract-tests","label":"Contract test hooks are named","status":"pass","evidence":"post_clear_audit_contract_validator, post_clear_audit_sampling_test, post_clear_audit_public_metric_fail_closed_test, post_clear_audit_privacy_boundary_test, post_clear_audit_route_health_spec_and_migration_wiring"}],"blockers":[]},"publicContract":{"failClosedRule":"Completed non-public-goods trades may be sampled only under a frozen post-clear audit policy. Required public metrics, payout release, payment reconciliation close, and release promotion fail closed when policy or hash-backed audit records are missing, mutable, stale, superseded, failed, privacy-leaking, or unresolved. Corrections may address fraud, evidence, payment, recipient, disclosure, or classification errors only under the frozen dispute, fraud, refund, or audit policy, and must not create public moral reputation, retroactive blame, or new obligations beyond the locked term sheet.","privacyBoundary":"Public surfaces may expose table names, subject types, audit types, match-state categories, transition rules, blocker categories, and sample statuses only. They must not expose raw payment evidence, private counterparty terms, reviewer notes, raw reconciliation rows, raw provider payloads, participant-specific audit rows, private evidence artifacts, or public moral reputation scores.","firstClassRecordTables":["moral_trade_post_clear_audit_policies","moral_trade_post_clear_audit_records"],"policySnapshotSubjects":["post_clear_audit"],"subjectTypes":["cleared_trade_agreement","matched_trade_lock_proposal","payment_event","evidence_record","payout_milestone","impact_claim_record"],"auditTypes":["random_sample","risk_triggered","dispute_triggered","payment_triggered","evidence_triggered","recipient_triggered","classification_triggered","manual_review"],"matchStates":["not_checked","matched","mismatch","manual_review"],"auditStates":["pending","passed","failed","corrective_action_open","closed","superseded"],"policyStatuses":["resolved_immutable","missing","mutable","stale","superseded"],"correctionBoundaries":["fraud_error_correction_only_under_frozen_policy","payment_error_correction_only_under_frozen_policy","evidence_error_correction_only_under_frozen_policy","recipient_disclosure_error_correction_only_under_frozen_policy","classification_error_correction_only_under_frozen_policy","no_public_moral_reputation_or_retroactive_obligation"],"transitions":[{"key":"post_clear_sampling_assignment","requiresImmutablePolicyWhenRequired":true,"requiresAuditRecordWhenRequired":false,"requiresNonBlockingAuditForPublicSurface":false,"requiresReviewerDecision":false,"userFacingBlockerCategory":"Post-clear sampling requires a frozen audit policy before selection"},{"key":"audit_record_review","requiresImmutablePolicyWhenRequired":true,"requiresAuditRecordWhenRequired":true,"requiresNonBlockingAuditForPublicSurface":false,"requiresReviewerDecision":false,"userFacingBlockerCategory":"Audit review requires a hash-backed post-clear audit record"},{"key":"corrective_action_resolution","requiresImmutablePolicyWhenRequired":true,"requiresAuditRecordWhenRequired":true,"requiresNonBlockingAuditForPublicSurface":false,"requiresReviewerDecision":true,"userFacingBlockerCategory":"Corrective action must stay inside the frozen audit and dispute policy"},{"key":"payment_reconciliation_close","requiresImmutablePolicyWhenRequired":true,"requiresAuditRecordWhenRequired":true,"requiresNonBlockingAuditForPublicSurface":true,"requiresReviewerDecision":true,"userFacingBlockerCategory":"Payment reconciliation cannot close with unresolved post-clear audit blockers"},{"key":"payout_release","requiresImmutablePolicyWhenRequired":true,"requiresAuditRecordWhenRequired":true,"requiresNonBlockingAuditForPublicSurface":true,"requiresReviewerDecision":true,"userFacingBlockerCategory":"Payout release waits for non-blocking post-clear audit status"},{"key":"public_metric_publication","requiresImmutablePolicyWhenRequired":true,"requiresAuditRecordWhenRequired":true,"requiresNonBlockingAuditForPublicSurface":true,"requiresReviewerDecision":true,"userFacingBlockerCategory":"Public metrics wait for privacy-safe post-clear audit sampling"},{"key":"release_gate_promotion","requiresImmutablePolicyWhenRequired":true,"requiresAuditRecordWhenRequired":true,"requiresNonBlockingAuditForPublicSurface":true,"requiresReviewerDecision":true,"userFacingBlockerCategory":"Release promotion waits for post-clear audit blockers to clear"}],"postClearAuditSampleEvaluationStatuses":{"post_clear_sampling_assignment":{"status":"pass","blockers":[],"postClearAuditRequired":false,"nonBlockingAuditRecordCount":0,"reviewerDecisionCount":0},"public_metric_publication":{"status":"blocked","blockers":["post_clear_audit_raw_payment_evidence_public:post-clear-audit:cleared-trade-demo","post_clear_audit_provider_payload_public:post-clear-audit:cleared-trade-demo","post_clear_audit_participant_specific_rows_public:post-clear-audit:cleared-trade-demo"],"postClearAuditRequired":true,"nonBlockingAuditRecordCount":1,"reviewerDecisionCount":1},"release_gate_promotion":{"status":"pass","blockers":[],"postClearAuditRequired":true,"nonBlockingAuditRecordCount":1,"reviewerDecisionCount":1},"payout_release":{"status":"blocked","blockers":["post_clear_audit_payment_and_reconciliation_not_matched:post-clear-audit:cleared-trade-demo:manual_review","post_clear_audit_not_non_blocking:post-clear-audit:cleared-trade-demo:corrective_action_open","post_clear_audit_corrective_action_open:post-clear-audit:cleared-trade-demo","post_clear_audit_non_blocking_record_required"],"postClearAuditRequired":true,"nonBlockingAuditRecordCount":0,"reviewerDecisionCount":1}},"contractTests":["post_clear_audit_contract_validator","post_clear_audit_sampling_test","post_clear_audit_public_metric_fail_closed_test","post_clear_audit_privacy_boundary_test","post_clear_audit_route_health_spec_and_migration_wiring"]},"blockers":[]}