{"ok":true,"checkedAt":"2026-07-17T20:53:50.516Z","contractVersion":"moral-trade-ai-preference-elicitation-v0.1-2026-06","purpose":"Fail-closed AI-assisted preference-elicitation contract for baselines, caps, side constraints, empirical assumptions, cause buckets, evidence preferences, fallback rules, matching, clearing, disclosure, payment, public metrics, and release-gate transitions.","validation":{"status":"pass","validatorName":"moral-trade-ai-preference-elicitation-contract","validatorVersion":"moral-trade-ai-preference-elicitation-validator-v0.1","contractVersion":"moral-trade-ai-preference-elicitation-v0.1-2026-06","checks":[{"id":"versioned-contract","label":"Contract version is pinned","status":"pass","evidence":"moral-trade-ai-preference-elicitation-v0.1-2026-06"},{"id":"first-class-records","label":"First-class AI preference-elicitation tables are declared","status":"pass","evidence":"moral_trade_ai_preference_elicitation_policies, moral_trade_ai_preference_elicitation_records"},{"id":"policy-snapshot-subjects","label":"Policy snapshot subject includes AI preference elicitation","status":"pass","evidence":"ai_preference_elicitation"},{"id":"scope-coverage","label":"Contract covers baselines, caps, cause buckets, evidence preferences, and fallback rules","status":"pass","evidence":"baseline, caps, side_constraints, empirical_assumptions, cause_buckets, evidence_preferences, fallback_rules, manual_review"},{"id":"transition-coverage","label":"Matching, clearing, disclosure, payment, public metric, and release transitions require user-edited structured input","status":"pass","evidence":"draft_preference_elicitation:false, structured_input_conversion:true, match_candidate_preview:true, matched_trade_lock:true, clearing_run_input:true, counterparty_disclosure:true, payment_authorization:true, payment_capture:true, public_metric_publication:true, release_gate_promotion:true"},{"id":"prohibited-use-blockers","label":"Prohibited-use blockers cover hidden WTP, autonomous counteroffers, and AI state changes","status":"pass","evidence":"hidden_willingness_to_pay_inference_not_prohibited, autonomous_counteroffer_or_acceptance_attempted, ai_output_state_change_allowed, ai_output_not_converted_to_user_edited_structured_input, ai_preference_confirmation_or_reviewer_decision_missing, raw_ai_preference_elicitation_output_public"},{"id":"sample-evaluations","label":"Sample evaluations cover pass and fail-closed AI preference states","status":"pass","evidence":"draft_preference_elicitation:pass, match_candidate_preview:blocked, matched_trade_lock:pass, payment_capture:blocked, public_metric_publication:blocked"},{"id":"privacy-boundary","label":"Public boundary excludes raw AI and private participant details","status":"pass","evidence":"Public surfaces may expose table names, scopes, transition rules, blocker categories, and sample statuses only. They must not expose raw prompts, raw AI outputs, hidden willingness-to-pay estimates, hidden negotiation moves, private participant notes, reviewer notes, private disclosure candidates, payment details, or participant-specific elicitation records."},{"id":"contract-tests","label":"Contract test hooks are named","status":"pass","evidence":"ai_preference_elicitation_contract_validator, ai_preference_elicitation_boundary_test, ai_preference_elicitation_state_change_blocking_test, ai_preference_elicitation_privacy_boundary_test, ai_preference_elicitation_route_health_spec_and_migration_wiring"}],"blockers":[]},"publicContract":{"failClosedRule":"AI may help participants draft preference structure, but AI output cannot infer hidden willingness to pay, create negotiation moves, accept or counteroffer, disclose private facts, authorize matching or clearing, authorize payment, or change state. If AI shaped a baseline, cap, cause bucket, side constraint, evidence preference, fallback rule, or manual-review input, it must be converted into user-edited structured input and backed by participant confirmation or reviewer decision before it affects matching, clearing, disclosure, payment, public metrics, or release promotion.","privacyBoundary":"Public surfaces may expose table names, scopes, transition rules, blocker categories, and sample statuses only. They must not expose raw prompts, raw AI outputs, hidden willingness-to-pay estimates, hidden negotiation moves, private participant notes, reviewer notes, private disclosure candidates, payment details, or participant-specific elicitation records.","firstClassRecordTables":["moral_trade_ai_preference_elicitation_policies","moral_trade_ai_preference_elicitation_records"],"policySnapshotSubjects":["ai_preference_elicitation"],"subjectTypes":["offset_offer","pledge_swap_offer","matched_trade_lock_proposal","common_ground_budget","participant_confirmation_record"],"scopes":["baseline","caps","side_constraints","empirical_assumptions","cause_buckets","evidence_preferences","fallback_rules","manual_review"],"elicitationStates":["sandbox","user_reviewed","converted_to_structured_input","discarded","blocked","superseded"],"policyStatuses":["resolved_immutable","missing","mutable","stale","superseded"],"prohibitedUseBlockers":["hidden_willingness_to_pay_inference_not_prohibited","autonomous_counteroffer_or_acceptance_attempted","ai_output_state_change_allowed","ai_output_not_converted_to_user_edited_structured_input","ai_preference_confirmation_or_reviewer_decision_missing","raw_ai_preference_elicitation_output_public"],"transitions":[{"key":"draft_preference_elicitation","allowsAiAssistedDrafting":true,"requiresImmutablePolicyWhenUsed":true,"requiresRecordWhenUsed":true,"requiresConvertedStructuredInput":false,"requiresParticipantConfirmationOrReviewerDecision":false,"prohibitsStateChangeFromAiOutput":true,"userFacingBlockerCategory":"AI preference drafting is sandbox-only and cannot change state"},{"key":"structured_input_conversion","allowsAiAssistedDrafting":true,"requiresImmutablePolicyWhenUsed":true,"requiresRecordWhenUsed":true,"requiresConvertedStructuredInput":true,"requiresParticipantConfirmationOrReviewerDecision":true,"prohibitsStateChangeFromAiOutput":true,"userFacingBlockerCategory":"AI output must be edited into structured input and confirmed or reviewed"},{"key":"match_candidate_preview","allowsAiAssistedDrafting":true,"requiresImmutablePolicyWhenUsed":true,"requiresRecordWhenUsed":true,"requiresConvertedStructuredInput":true,"requiresParticipantConfirmationOrReviewerDecision":true,"prohibitsStateChangeFromAiOutput":true,"userFacingBlockerCategory":"Matching previews wait for user-edited preference inputs"},{"key":"matched_trade_lock","allowsAiAssistedDrafting":true,"requiresImmutablePolicyWhenUsed":true,"requiresRecordWhenUsed":true,"requiresConvertedStructuredInput":true,"requiresParticipantConfirmationOrReviewerDecision":true,"prohibitsStateChangeFromAiOutput":true,"userFacingBlockerCategory":"Final lock cannot rely on unconverted AI preference output"},{"key":"clearing_run_input","allowsAiAssistedDrafting":true,"requiresImmutablePolicyWhenUsed":true,"requiresRecordWhenUsed":true,"requiresConvertedStructuredInput":true,"requiresParticipantConfirmationOrReviewerDecision":true,"prohibitsStateChangeFromAiOutput":true,"userFacingBlockerCategory":"Clearing input cannot be AI-generated without user-edited conversion"},{"key":"counterparty_disclosure","allowsAiAssistedDrafting":true,"requiresImmutablePolicyWhenUsed":true,"requiresRecordWhenUsed":true,"requiresConvertedStructuredInput":true,"requiresParticipantConfirmationOrReviewerDecision":true,"prohibitsStateChangeFromAiOutput":true,"userFacingBlockerCategory":"Disclosure cannot expose AI-inferred private preferences"},{"key":"payment_authorization","allowsAiAssistedDrafting":true,"requiresImmutablePolicyWhenUsed":true,"requiresRecordWhenUsed":true,"requiresConvertedStructuredInput":true,"requiresParticipantConfirmationOrReviewerDecision":true,"prohibitsStateChangeFromAiOutput":true,"userFacingBlockerCategory":"Payment authorization waits for confirmed structured terms"},{"key":"payment_capture","allowsAiAssistedDrafting":true,"requiresImmutablePolicyWhenUsed":true,"requiresRecordWhenUsed":true,"requiresConvertedStructuredInput":true,"requiresParticipantConfirmationOrReviewerDecision":true,"prohibitsStateChangeFromAiOutput":true,"userFacingBlockerCategory":"Payment capture cannot be authorized by AI-generated preferences"},{"key":"public_metric_publication","allowsAiAssistedDrafting":true,"requiresImmutablePolicyWhenUsed":true,"requiresRecordWhenUsed":true,"requiresConvertedStructuredInput":true,"requiresParticipantConfirmationOrReviewerDecision":true,"prohibitsStateChangeFromAiOutput":true,"userFacingBlockerCategory":"Public metrics cannot include hidden AI-inferred preference values"},{"key":"release_gate_promotion","allowsAiAssistedDrafting":true,"requiresImmutablePolicyWhenUsed":true,"requiresRecordWhenUsed":true,"requiresConvertedStructuredInput":true,"requiresParticipantConfirmationOrReviewerDecision":true,"prohibitsStateChangeFromAiOutput":true,"userFacingBlockerCategory":"Release promotion waits for AI preference-elicitation blockers to clear"}],"aiPreferenceElicitationSampleEvaluationStatuses":{"draft_preference_elicitation":{"status":"pass","blockers":[],"aiPreferenceElicitationUsed":false,"convertedStructuredInputCount":0,"confirmationOrReviewerDecisionCount":0},"match_candidate_preview":{"status":"blocked","blockers":["ai_preference_elicitation_policy_required","ai_preference_elicitation_record_required","ai_preference_elicitation_converted_record_required"],"aiPreferenceElicitationUsed":true,"convertedStructuredInputCount":0,"confirmationOrReviewerDecisionCount":0},"matched_trade_lock":{"status":"pass","blockers":[],"aiPreferenceElicitationUsed":true,"convertedStructuredInputCount":1,"confirmationOrReviewerDecisionCount":1},"payment_capture":{"status":"blocked","blockers":["hidden_willingness_to_pay_inference_not_prohibited:ai-preference-elicitation:offset-offer-demo","autonomous_counteroffer_or_acceptance_attempted:ai-preference-elicitation:offset-offer-demo","ai_output_state_change_allowed:ai-preference-elicitation:offset-offer-demo"],"aiPreferenceElicitationUsed":true,"convertedStructuredInputCount":1,"confirmationOrReviewerDecisionCount":1},"public_metric_publication":{"status":"blocked","blockers":["raw_ai_preference_elicitation_output_public:ai-preference-elicitation:offset-offer-demo","hidden_willingness_to_pay_estimate_public:ai-preference-elicitation:offset-offer-demo","hidden_negotiation_moves_public:ai-preference-elicitation:offset-offer-demo"],"aiPreferenceElicitationUsed":true,"convertedStructuredInputCount":1,"confirmationOrReviewerDecisionCount":1}},"contractTests":["ai_preference_elicitation_contract_validator","ai_preference_elicitation_boundary_test","ai_preference_elicitation_state_change_blocking_test","ai_preference_elicitation_privacy_boundary_test","ai_preference_elicitation_route_health_spec_and_migration_wiring"]},"blockers":[]}