{"ok":true,"checkedAt":"2026-06-02T19:20:03.064Z","profileVersion":"moral-trade-ai-governance-v0.2-2026-05","purpose":"Public governance contract for keeping Moral Trade decisioning deterministic, schema-bound, documented, and human-controlled before any ML-assisted ranking or scoring is introduced.","decisioningMode":"deterministic_rules_with_schema_bound_copilot","mlEnabledForMatching":false,"mlEnabledForStateChanges":false,"validation":{"status":"pass","validatorName":"moral-trade-ai-governance-profile","validatorVersion":"moral-trade-ai-governance-validator-v0.2","profileVersion":"moral-trade-ai-governance-v0.2-2026-05","checks":[{"id":"deterministic-decisioning","label":"Core matching and state changes are not ML-enabled","status":"pass","evidence":"deterministic_rules_with_schema_bound_copilot, matching ML=false, state ML=false."},{"id":"required-documentation-before-ml","label":"Model cards, datasheets, benchmarks, and change logs are required before ML","status":"pass","evidence":"model_card, dataset_datasheet, benchmark_slices, intended_use_limits, fairness_audit_report, change_log"},{"id":"documentation-templates","label":"Required ML documentation has machine-checkable templates","status":"pass","evidence":"model_card:8, dataset_datasheet:8, benchmark_slices:8, intended_use_limits:6, fairness_audit_report:7, change_log:7"},{"id":"sample-documentation-packets","label":"Required ML documentation templates have redacted sample packets","status":"pass","evidence":"model_card, dataset_datasheet, benchmark_slices, intended_use_limits, fairness_audit_report, change_log"},{"id":"permitted-automation","label":"Permitted automation is limited to drafting, checks, explanations, and summaries","status":"pass","evidence":"schema_bound_drafting, missing_field_detection, factor_code_explanation, evidence_checklist_drafting, reviewer_summary_drafting"},{"id":"prohibited-uses","label":"Hidden matching, moral ranking, trait inference, outreach, and raw-feed training are prohibited","status":"pass","evidence":"end_to_end_llm_matching, global_moral_ranking, unreviewed_learning_to_rank, protected_trait_inference, autonomous_outreach, raw_private_feed_training"},{"id":"fairness-documentation","label":"Fairness metrics and slices are required before any ML promotion","status":"pass","evidence":"subgroup_surfacing_parity, false_match_rate, human_overrule_rate, privacy_leakage_incidents, appeal_overturn_rate | trade_format, cause_area_pair, geography_bucket, privacy_stage, optional_governed_sensitive_attribute"},{"id":"explanation-controls","label":"NIST XAI and HCI explanation controls are explicit","status":"pass","evidence":"factor_codes_source_of_truth, meaningful_user_action, system_accuracy_boundary, uncertainty_and_redaction_notice, appealable_review_scope, reversible_interaction"},{"id":"external-standards","label":"Responsible AI documentation standards are named","status":"pass","evidence":"nist_ai_rmf, nist_xai, model_cards, datasheets_for_datasets, fairness_tradeoff_literature"},{"id":"human-controlled-decisions","label":"Safety, disclosure, completion, and disputes stay human-controlled","status":"pass","evidence":"safety_blocking, matching_disclosure, reviewed_completion, dispute_resolution, appeal_decision"},{"id":"governance-tests","label":"Governance test hooks","status":"pass","evidence":"ai_governance_profile_validator, no_undocumented_ml_gate, model_card_datasheet_required, fairness_documentation_contract, sample_documentation_packet_contract, technical_spec_ai_governance_smoke, health_route_contract_smoke"}],"blockers":[]},"publicContract":{"requiredDocumentationBeforeMl":["model_card","dataset_datasheet","benchmark_slices","intended_use_limits","fairness_audit_report","change_log"],"documentationTemplates":[{"key":"model_card","requiredFields":["intended_use","non_use_cases","decision_boundaries","training_data_summary","evaluation_slices","known_failure_modes","human_control_points","rollback_plan"],"publicSummaryFields":["intended_use","non_use_cases","evaluation_slices","known_failure_modes","human_control_points"],"redactedFields":["raw_private_wish_text","contact_details","exact_private_constraints","unreviewed_training_rows"],"reviewRule":"A reviewer must confirm intended use, non-use, performance slices, known risks, and rollback before any model leaves shadow mode."},{"key":"dataset_datasheet","requiredFields":["collection_purpose","consent_basis","composition_summary","exclusion_rules","retention_policy","known_limitations","sensitive_attribute_handling","deletion_or_correction_path"],"publicSummaryFields":["collection_purpose","composition_summary","exclusion_rules","retention_policy","known_limitations"],"redactedFields":["raw_private_wish_text","contact_details","source_note_details","row_level_sensitive_attributes"],"reviewRule":"A reviewer must confirm consent, exclusions, retention, redaction, and correction paths before any dataset supports training or evaluation."},{"key":"benchmark_slices","requiredFields":["slice_key","sample_count","trade_format","cause_area_pair","geography_bucket","privacy_stage","metric_values","confidence_notes"],"publicSummaryFields":["slice_key","sample_count","trade_format","cause_area_pair","metric_values"],"redactedFields":["raw_private_wish_text","contact_details","exact_location","small_cell_identifiers"],"reviewRule":"A reviewer must confirm benchmark slices are privacy-thresholded and include the documented trade-format, cause-area, geography, and privacy-stage cuts."},{"key":"intended_use_limits","requiredFields":["permitted_tasks","prohibited_tasks","human_review_boundary","state_mutation_boundary","disclosure_boundary","appeal_or_override_path"],"publicSummaryFields":["permitted_tasks","prohibited_tasks","human_review_boundary","state_mutation_boundary"],"redactedFields":["raw_private_wish_text","contact_details","exact_private_constraints"],"reviewRule":"A reviewer must confirm the documented use limit forbids global moral ranking, safety blocking, disclosure, and completion decisions."},{"key":"fairness_audit_report","requiredFields":["metrics","slices","thresholds","observed_deviations","reviewed_tradeoffs","remediation_plan","promotion_decision"],"publicSummaryFields":["metrics","slices","thresholds","observed_deviations","remediation_plan","promotion_decision"],"redactedFields":["raw_private_wish_text","contact_details","exact_sensitive_attribute_values","small_cell_identifiers"],"reviewRule":"A reviewer must log material slice gaps, trade-offs, remediation, and a promotion decision before any ML-assisted ranking or scoring scales."},{"key":"change_log","requiredFields":["change_id","changed_artifact","reason_for_change","risk_assessment","validation_run_ids","operator_approval","rollback_note"],"publicSummaryFields":["change_id","changed_artifact","reason_for_change","risk_assessment","rollback_note"],"redactedFields":["raw_private_wish_text","contact_details","private_operator_notes"],"reviewRule":"A reviewer or operator must approve material model, dataset, prompt, metric, or template changes before promotion and keep a rollback note."}],"sampleDocumentationPacketCount":6,"sampleDocumentationPackets":[{"key":"model_card","reviewerStatus":"shadow_only","publicSummary":{"intended_use":"Render reviewer-facing summaries from deterministic factor codes in shadow mode.","non_use_cases":["global moral ranking","autonomous matching","safety blocking","counterparty disclosure"],"evaluation_slices":["trade_format","cause_area_pair","privacy_stage"],"known_failure_modes":["overconfident wording","missing evidence context","unclear redaction notice"],"human_control_points":["reviewer approval before reliance","operator rollback before promotion"]},"redactionNotes":["raw_private_wish_text withheld","contact_details withheld"]},{"key":"dataset_datasheet","reviewerStatus":"shadow_only","publicSummary":{"collection_purpose":"Evaluate whether deterministic factor-code summaries remain faithful to reviewed fields.","composition_summary":"Small pilot slices by trade format, cause-area pair, and privacy stage.","exclusion_rules":["raw source notes","contact details","exact private wishes","unreviewed private feeds"],"retention_policy":"Aggregate summaries only; raw private text is not retained for ML evaluation.","known_limitations":"Pilot-scale samples are not representative of production liquidity."},"redactionNotes":["raw_private_wish_text withheld","contact_details withheld"]},{"key":"benchmark_slices","reviewerStatus":"shadow_only","publicSummary":{"slice_key":"worked_examples_by_trade_format","sample_count":"8 worked examples; no production readiness claim.","trade_format":"pledge_swap, donation_offset, public_good_commitment","cause_area_pair":"redacted broad cause-area pairs only.","metric_values":["false_match_rate: not enough live data","human_overrule_rate: shadow only"]},"redactionNotes":["raw_private_wish_text withheld","contact_details withheld","small_cell_identifiers withheld"]},{"key":"intended_use_limits","reviewerStatus":"shadow_only","publicSummary":{"permitted_tasks":["missing-field detection","factor-code explanation rendering","evidence-checklist drafting"],"prohibited_tasks":["global moral ranking","autonomous outreach","state mutation","safety blocking"],"human_review_boundary":"All reliance, disclosure, completion, and dispute outcomes require human control.","state_mutation_boundary":"AI output cannot directly write proposal status or agreement completion."},"redactionNotes":["raw_private_wish_text withheld","contact_details withheld"]},{"key":"fairness_audit_report","reviewerStatus":"shadow_only","publicSummary":{"metrics":["subgroup_surfacing_parity","false_match_rate","human_overrule_rate","privacy_leakage_incidents"],"slices":["trade_format","cause_area_pair","geography_bucket","privacy_stage"],"thresholds":"Material slice gaps require review before promotion.","observed_deviations":"No live ML deployment; sample is validator-only.","remediation_plan":"Keep ML in shadow mode until deviations are reviewed and remediated.","promotion_decision":"Blocked for live ranking or matching; shadow documentation only."},"redactionNotes":["raw_private_wish_text withheld","contact_details withheld","small_cell_identifiers withheld"]},{"key":"change_log","reviewerStatus":"shadow_only","publicSummary":{"change_id":"ai-governance-shadow-sample-001","changed_artifact":"sample documentation packet contract","reason_for_change":"Make model-card, datasheet, benchmark, fairness, limits, and change-log requirements executable.","risk_assessment":"No ML behavior enabled; validates public documentation shape only.","rollback_note":"Remove sample packet promotion and retain deterministic/manual fallback."},"redactionNotes":["raw_private_wish_text withheld","contact_details withheld"]}],"permittedAutomation":["schema_bound_drafting","missing_field_detection","factor_code_explanation","evidence_checklist_drafting","reviewer_summary_drafting"],"prohibitedUses":["end_to_end_llm_matching","global_moral_ranking","unreviewed_learning_to_rank","protected_trait_inference","autonomous_outreach","raw_private_feed_training"],"fairnessDocumentation":{"requiredBeforeAnyMl":true,"metrics":["subgroup_surfacing_parity","false_match_rate","human_overrule_rate","privacy_leakage_incidents","appeal_overturn_rate"],"slices":["trade_format","cause_area_pair","geography_bucket","privacy_stage","optional_governed_sensitive_attribute"],"reviewRule":"Material slice gaps must be thresholded, reviewed, documented, and remediated before promotion."},"explanationControls":["factor_codes_source_of_truth","meaningful_user_action","system_accuracy_boundary","uncertainty_and_redaction_notice","appealable_review_scope","reversible_interaction"],"externalStandards":["nist_ai_rmf","nist_xai","model_cards","datasheets_for_datasets","fairness_tradeoff_literature"],"humanControlledDecisions":["safety_blocking","matching_disclosure","reviewed_completion","dispute_resolution","appeal_decision"],"governanceTests":["ai_governance_profile_validator","no_undocumented_ml_gate","model_card_datasheet_required","fairness_documentation_contract","sample_documentation_packet_contract","technical_spec_ai_governance_smoke","health_route_contract_smoke"]},"blockers":[]}