{"ok":false,"checkedAt":"2026-06-02T19:08:32.690Z","profileVersion":"moral-trade-core-v0.1.6-2026-06","purpose":"Public contract for core Moral Trade proposal review, matching explanations, evidence states, and provenance.","validation":{"status":"pass","validatorName":"moral-trade-core-protocol-profile","validatorVersion":"moral-trade-core-validator-v0.3","profileVersion":"moral-trade-core-v0.1.6-2026-06","checks":[{"id":"required-proposal-fields","label":"Required proposal fields","status":"pass","evidence":"9 required field(s) published."},{"id":"status-values","label":"Review status values","status":"pass","evidence":"draft, submitted, needs_clarification, needs_evidence, needs_human_review, challenge_window, completion_reviewed, disputed_unresolved, blocked, matchable"},{"id":"state-transition-rules","label":"Proposal state transition rules","status":"pass","evidence":"9 state transition rule(s) publish allowed edges, required checks, and provenance activities."},{"id":"decision-pipeline","label":"Proposed decision logic is public and signal-bound","status":"pass","evidence":"schema_completeness->needs_clarification, anti_threat_policy->blocked, factual_evidence_readiness->needs_evidence, counterfactual_baseline->needs_human_review, externality_review->challenge_window, privacy_redaction->needs_human_review, match_explanation->needs_human_review, human_review_routing->needs_human_review"},{"id":"guardrails","label":"Safety and privacy guardrails","status":"pass","evidence":"5 guardrail(s), including anti-threat and redaction rules."},{"id":"factor-codes","label":"Public factor-code explanations","status":"pass","evidence":"17 factor code(s) available for match and review explanations."},{"id":"evidence-schemas","label":"Evidence schemas by trade format","status":"pass","evidence":"pledge_swap_v1, donation_offset_v1, paid_action_v1, public_good_commitment_v1"},{"id":"provenance-model","label":"Provenance objects","status":"pass","evidence":"9 entities, 7 activities, 5 agents."},{"id":"provenance-object-schemas","label":"Provenance object schemas","status":"pass","evidence":"9 object schema(s) published for evidence and review provenance."},{"id":"provenance-persistence","label":"Provenance persistence tables","status":"pass","evidence":"9 append-only persistence table(s) map provenance object schemas to owner-scoped storage."},{"id":"quality-metrics","label":"Quality and safety metrics","status":"pass","evidence":"8 metric(s) published."}],"blockers":[]},"dataModelValidation":{"status":"pass","validatorName":"moral-trade-data-model-profile","validatorVersion":"moral-trade-data-model-validator-v0.3","profileVersion":"moral-trade-data-model-v0.1.5-2026-06","checks":[{"id":"entity-coverage","label":"Core data model entities","status":"pass","evidence":"27 entity/entities; duplicates: none; deprecated: none."},{"id":"entity-field-coverage","label":"Entities publish required field contracts","status":"pass","evidence":"27 entity/entities have four or more required fields."},{"id":"provenance-audit-questions","label":"Provenance events answer what, who, and when","status":"pass","evidence":"traceability=id,subject_id,event_time,recorded_at,action,business_step,disposition,what,where_recorded,why,agent_ids,redaction_level,audit_question_answers,sha256; state_transition=id,subject_id,from_status,to_status,provenance_activity,actor_agent_id,idempotency_key,audit_question_answers,event_hash,recorded_at"},{"id":"match-suggestion-disclosure-policy","label":"Match suggestions name disclosure stage, privacy policy, redactions, and human review","status":"pass","evidence":"id, left_profile_id, right_profile_id, status, factor_codes, confidence_band, redacted_fields, disclosure_stage, privacy_policy_id, human_review_required, created_at"},{"id":"offer-required-fields","label":"Offer fields match the audit data model","status":"pass","evidence":"cause_areas, offered_action, requested_action, expected_impact, verification_method, duration, exit_conditions, baseline_statement"},{"id":"privacy-classes","label":"Privacy classes cover public, private, consent, and operations records","status":"pass","evidence":"9 privacy class(es)."},{"id":"private-entity-boundaries","label":"Private records are not public by default","status":"pass","evidence":"private_wish_profile:private_authenticated, source_connection:private_authenticated, source_note:private_authenticated, saved_search:private_authenticated, privacy_grant:consent_granted, notification:operational_private, payment_record:operational_private, payment_update:operational_private"},{"id":"relationship-boundaries","label":"Relationship boundaries prevent hidden disclosure or automatic reliance","status":"pass","evidence":"5 boundary rule(s)."},{"id":"non-claims","label":"Public non-claims prevent overclaiming","status":"pass","evidence":"5 non-claim(s)."},{"id":"contract-tests","label":"Contract test hooks","status":"pass","evidence":"data_model_profile_validator, data_model_entity_coverage, data_model_profile_json_schema, offer_required_field_contract, source_note_privacy_boundary, public_data_model_contract_route, api_contract_data_model_route, health_data_model_smoke, technical_spec_data_model_smoke"}],"blockers":[]},"policyBundleValidation":{"status":"pass","validatorName":"moral-trade-policy-bundle-contract","validatorVersion":"moral-trade-policy-bundle-validator-v0.1","contractVersion":"moral-trade-policy-bundle-v0.1-2026-05","checks":[{"id":"strict-input-bundle-sources","label":"Strict input bundle sources are concrete","status":"pass","evidence":"structured_draft, policy_registry, prohibited_pattern_registry, factor_code_dictionary, verification_method_taxonomy, redaction_policy, evidence_metadata, redacted_profile_pair, match_constraint_set, stated_exclusions"},{"id":"policy-registry-coverage","label":"Policy registry covers core guardrails","status":"pass","evidence":"no_global_moral_ranking, anti_threat_baseline, no_autonomous_outreach, privacy_redaction_required, separate_trust_axes, approved_json_only, observable_claims_only, no_chain_of_thought, no_private_feed_ingestion, insufficient_evidence_artifact_requests, anti_threat_escalation, no_false_certainty, no_escrow_legal_tax_claims, verification_loop_matchability_gate"},{"id":"prohibited-pattern-registry","label":"Prohibited patterns have codes, patterns, and seeded fixtures","status":"pass","evidence":"anti_threat_baseline:5/1, prohibited_illegal_or_fraud:1/1, prohibited_doxxing_or_harassment:3/1, prohibited_political_campaign_offset:2/1, newly_escalated_harmful_behavior:3/1"},{"id":"seed-fixture-blocks","label":"Seeded harmful fixtures are blocked with exact policy reasons","status":"pass","evidence":"5 fixture(s) blocked."},{"id":"factor-code-dictionary","label":"Factor-code dictionary covers protocol, workflow, matching, and disclosure explanations","status":"pass","evidence":"44 factor-code entries."},{"id":"verification-method-taxonomy","label":"Verification-method taxonomy covers receipts, logs, attestations, audits, baselines, payments, and manual review","status":"pass","evidence":"receipt_or_provider_record, public_log, attestation, audit_or_external_review, baseline_artifact, payment_event, manual_review"},{"id":"redaction-policy","label":"Redaction policy covers exact wishes, contacts, constraints, notes, source notes, and private feeds","status":"pass","evidence":"exact_private_wishes, contact_details, sensitive_constraints, raw_profile_notes, protected_traits, ideology_or_psychology_inferences, exact_private_wishes_before_consent, exact_asks_before_consent, contact_details_before_introduction, raw_source_notes, sensitive_constraints_in_public_preview, private_feed_payloads"},{"id":"verification-loop","label":"Fixed verification loop runs before matchability","status":"pass","evidence":"schema_completeness, anti_threat, baseline_credibility, evidence_sufficiency, externality_trigger, privacy_redaction, match_explanation, human_review_routing"},{"id":"contract-tests","label":"Policy bundle contract test hooks are named","status":"pass","evidence":"policy_bundle_contract_validator, prohibited_pattern_seed_fixtures, factor_code_dictionary_coverage, verification_method_taxonomy_contract, redaction_policy_contract, public_policy_bundle_route, technical_spec_policy_bundle_smoke"}],"blockers":[]},"provenanceValidation":{"status":"pass","validatorName":"moral-trade-provenance-contract","validatorVersion":"moral-trade-provenance-contract-validator-v0.2","schemaVersion":"moral-trade-provenance-v0.3","checks":[{"id":"object-schema-coverage","label":"Evidence, decision, traceability, activity, and agent schemas are public","status":"pass","evidence":"evidence_artifact, evidence_claim, external_entity_reference, review_decision, match_signal, traceability_event, provenance_activity, provenance_agent, state_transition_event_record"},{"id":"validation-rule-coverage","label":"Published provenance rules match the bundle validator checks","status":"pass","evidence":"artifact-hashes, claim-artifact-links, scope-alignment, one-proof-one-claim, freshness-window, agent-links, traceability-events, audit-question-answers, external-entity-references, prov-triplets"},{"id":"sample-bundle-validation","label":"Synthetic evidence bundle proves the contract is executable","status":"pass","evidence":"1 artifact(s), 1 claim(s), 1 traceability event(s), 0 blocker(s)."},{"id":"agent-reviewed-decisions","label":"Reviewer decisions name provenance agents","status":"pass","evidence":"review-decision-sample:agent-reviewer-sample"},{"id":"persistence-table-coverage","label":"Append-only provenance objects have owner-scoped storage tables","status":"pass","evidence":"moral_trade_provenance_agents:provenance_agent, moral_trade_evidence_artifacts:evidence_artifact, moral_trade_evidence_claims:evidence_claim, moral_trade_evidence_claim_artifacts:evidence_claim, moral_trade_external_entity_references:external_entity_reference, moral_trade_review_decisions:review_decision, moral_trade_provenance_activities:provenance_activity, moral_trade_traceability_events:traceability_event, moral_trade_state_transition_events:state_transition_event_record"},{"id":"contract-tests","label":"Provenance contract test hooks are named","status":"pass","evidence":"provenance_contract_validator, provenance_sample_bundle_smoke, traceability_event_contract_smoke, provenance_persistence_schema_smoke, technical_spec_provenance_contract_smoke"}],"blockers":[]},"schemaRegistryValidation":{"status":"pass","validatorName":"moral-trade-schema-registry","validatorVersion":"moral-trade-schema-registry-validator-v0.2","registryVersion":"moral-trade-schema-registry-v0.2-2026-05","checks":[{"id":"schema-key-coverage","label":"Registry covers every core Moral Trade schema document","status":"pass","evidence":"12 schema document(s); duplicates: none."},{"id":"public-schema-paths","label":"Schema documents have stable public paths and canonical ids","status":"pass","evidence":"/schemas/moral-trade/ai-governance-profile.schema.json, /schemas/moral-trade/api-contract-profile.schema.json, /schemas/moral-trade/copilot-contract.schema.json, /schemas/moral-trade/data-model-profile.schema.json, /schemas/moral-trade/evaluation-profile.schema.json, /schemas/moral-trade/externality-profile.schema.json, /schemas/moral-trade/incident-response-profile.schema.json, /schemas/moral-trade/operations-profile.schema.json, /schemas/moral-trade/performance-profile.schema.json, /schemas/moral-trade/protocol-profile.schema.json, /schemas/moral-trade/public-offer-listing.schema.json, /schemas/moral-trade/security-profile.schema.json"},{"id":"json-schema-shapes","label":"Each schema has strict object shape, required fields, and top-level properties","status":"pass","evidence":"all schema shapes strict"},{"id":"profile-schema-parity","label":"Each profile schema covers its current top-level profile contract","status":"pass","evidence":"all profile top-level contracts are covered by public JSON Schema properties"},{"id":"profile-json-schema-conformance","label":"Each current profile JSON document conforms to its public schema subset","status":"pass","evidence":"all profile JSON documents satisfy their published schema requirements"},{"id":"public-schema-sample-conformance","label":"Executable public payload samples satisfy their published schemas","status":"pass","evidence":"public offer listing samples satisfy the published public-offer JSON Schema"},{"id":"data-model-schema","label":"Core data model profile has an exact public JSON Schema","status":"pass","evidence":"https://www.moraltrade.org/schemas/moral-trade/data-model-profile.schema.json"},{"id":"public-offer-listing-schema","label":"Public offers collection has an exact listing JSON Schema","status":"pass","evidence":"https://www.moraltrade.org/schemas/moral-trade/public-offer-listing.schema.json"},{"id":"registry-tests","label":"Schema registry test hooks","status":"pass","evidence":"schema_registry_validator, data_model_profile_json_schema, schema_document_route_smoke, api_contract_schema_registry_route, technical_spec_schema_registry_smoke, health_schema_registry_smoke"}],"blockers":[]},"copilotValidation":{"status":"pass","validatorName":"moral-trade-copilot-contract","validatorVersion":"moral-trade-copilot-contract-validator-v0.3","contractVersion":"moral-trade-copilot-v0.1.3-2026-06","checks":[{"id":"strict-input-bundle","label":"Strict input bundle","status":"pass","evidence":"structured_draft, policy_registry, prohibited_pattern_registry, factor_code_dictionary, verification_method_taxonomy, redaction_policy, evidence_metadata, redacted_profile_pair, match_constraint_set, stated_exclusions"},{"id":"approved-output-sections","label":"Approved output sections","status":"pass","evidence":"status, completeness, trade_structure, trust_assessment, match_explanation, verification_loop, clarification_questions, uncertainty_flags, next_step_checklist, cited_evidence_table, review_instructions, reviewer_summary, citations"},{"id":"status-values","label":"Status values","status":"pass","evidence":"draft, needs_clarification, needs_evidence, needs_human_review, challenge_window, blocked, matchable"},{"id":"trust-axes","label":"Trust axes stay separate","status":"pass","evidence":"factual_trust, counterfactual_baseline, externality_review, party_relative_benefit, privacy_redaction"},{"id":"guardrails","label":"Copilot guardrails","status":"pass","evidence":"12 guardrail(s), including no outreach and no global ranking."},{"id":"prompt-templates","label":"Approved prompt template registry","status":"pass","evidence":"system_prompt, draft_repair_prompt, matching_prompt, reviewer_summary_prompt"},{"id":"prompt-template-safety","label":"Prompt templates preserve copilot guardrails","status":"pass","evidence":"system_prompt:no_global_moral_ranking+no_autonomous_outreach+no_private_feed_ingestion+separate_trust_axes+no_chain_of_thought+human_review_required, draft_repair_prompt:schema_completeness+anti_threat_escalation+no_chain_of_thought+observable_claims_only, matching_prompt:redacted_profile_pair+no_private_inference+no_global_moral_ranking+human_review_required, reviewer_summary_prompt:reviewer_summary_word_limit+no_escrow_legal_tax_claims+observable_claims_only+no_global_moral_ranking"},{"id":"verification-loop","label":"Fixed verification loop","status":"pass","evidence":"schema_completeness, anti_threat, baseline_credibility, evidence_sufficiency, externality_trigger, privacy_redaction, match_explanation, human_review_routing"},{"id":"rollout-stages","label":"Constrained rollout stages","status":"pass","evidence":"shadow_mode, assist_mode, guarded_automation"},{"id":"rollout-readiness-signals","label":"Rollout readiness signals","status":"pass","evidence":"state_mutation_disabled, fallback_path_tested, zero_privacy_incidents, human_approval_for_status_changes, minimum_observed_runs, validated_output_rate, sample_evaluation_audits_passing, low_risk_task_scope"},{"id":"rollout-readiness-audit","label":"Default rollout audit starts in shadow mode and blocks higher automation until evidence exists","status":"pass","evidence":"shadow_mode:pass, assist_mode:blocked, guarded_automation:blocked"},{"id":"safe-fallback","label":"Safe fallback","status":"pass","evidence":"If copilot generation fails, times out, or emits invalid output, fall back to deterministic/manual review without changing proposal state."}],"blockers":[]},"matchSignalValidation":{"status":"pass","validatorName":"moral-trade-match-signal-contract","validatorVersion":"moral-trade-match-signal-contract-validator-v0.2","contractVersion":"moral-trade-match-signal-contract-v0.3-2026-06","checks":[{"id":"input-field-boundary","label":"Contract names only redacted profile input fields","status":"pass","evidence":"profileId, causeAreas, tradeModes, verificationPreferences, locationSensitivity, privacyStage, privacyConstraints, statedExclusions, offeredCauseAreas, requestedCauseAreas, locationRegion, locationCity"},{"id":"approved-factor-codes","label":"Contract publishes the approved match explanation factor codes","status":"pass","evidence":"cause_area_overlap, cause_area_complementarity, trade_mode_compatible, verification_preference_compatible, location_constraint_satisfied, privacy_safe_preview, privacy_stage_compatible, stated_exclusions_clear, human_review_required"},{"id":"signal-field-contract","label":"Sample signal carries id, profile ids, privacy policy, disclosure stage, and creation time","status":"pass","evidence":"match_signal_c2990cce2803eba3dae05927, sample-left, sample-right, moral-trade-redacted-profile-match-preview-v0.1, broad_preview"},{"id":"redaction-boundary","label":"Contract preserves exact wish, contact, source-note, and inference redactions","status":"pass","evidence":"exact_private_wishes, contact_details, sensitive_constraints, raw_profile_notes, protected_traits, ideology_or_psychology_inferences"},{"id":"sample-signal-validation","label":"Synthetic redacted-profile pair produces a valid match signal","status":"pass","evidence":"matchable; blockers 0"},{"id":"nonmutating-human-review","label":"Match previews cannot disclose, contact, rely, or mutate state","status":"pass","evidence":"redacted_profile_match_preview_only; stateMutation false"},{"id":"no-private-inference","label":"Contract forbids private inference and hidden preference fields","status":"pass","evidence":"Use only redacted profile fields: cause areas, trade modes, verification preferences, location sensitivity, privacy constraints, and stated exclusions. | Do not infer protected traits, ideology, psychology, hidden preferences, exact private wishes, raw notes, or contact details. | A matchable signal is only a preview and always requires human review before disclosure, contact, reliance, or state changes. | Factor codes must include cause overlap or complementarity, trade-mode compatibility, and verification compatibility before matchable status. | Privacy-safe preview requires compatible privacy stages, an explicit disclosure stage, a privacy policy id, and named redacted fields."},{"id":"participant-explanation-template","label":"Contract publishes participant copy that names match basis, redactions, and human review","status":"pass","evidence":"Why you are seeing this match; Exact wishes, contact details, sensitive constraints, raw profile notes, protected traits, and ideology or psychology inferences stay hidden until a valid consent stage."},{"id":"contract-tests","label":"Match signal contract test hooks are named","status":"pass","evidence":"match_signal_contract_validator, redacted_profile_match_signal_smoke, participant_explanation_copy_smoke, match_signal_evaluate_route_contract, technical_spec_match_signal_smoke"}],"blockers":[]},"challengeAppealValidation":{"status":"pass","validatorName":"moral-trade-challenge-appeal-contract","validatorVersion":"moral-trade-challenge-appeal-validator-v0.1","contractVersion":"moral-trade-challenge-appeal-v0.2","checks":[{"id":"subject-coverage","label":"Contract publishes all challenge and appeal subject types","status":"pass","evidence":"claim, evidence_row, baseline_concern, disclosure_decision, externality_trigger, completion_state, policy_flag"},{"id":"standing-coverage","label":"Contract publishes direct, reviewer, verifier, admin, and affected-party standing","status":"pass","evidence":"participant, counterparty, affected_party, reviewer, admin_safety, external_verifier"},{"id":"trigger-and-outcome-coverage","label":"Contract covers appeal triggers and allowed outcomes","status":"pass","evidence":"duplicate_proof, coercive_baseline, wrong_scope_evidence, material_factual_error, privacy_disclosure_error, externality_remedy_gap, reviewer_conflict, policy_misapplied -> uphold_decision, request_evidence, route_human_review, open_challenge_window, block_reliance, record_remedy, close_unresolved, correct_record"},{"id":"sample-decision-validation","label":"Sample challenge appeal decision validates","status":"pass","evidence":"ready_for_human_review; blockers 0"},{"id":"narrow-appeal-scope","label":"Contract forbids reopening unrelated moral disagreements by default","status":"pass","evidence":"Appeals target only the specific reviewed claim, evidence row, baseline concern, disclosure decision, externality trigger, completion state, or policy flag. | Appeals do not reopen unrelated moral disagreements by default and do not create platform-wide moral rankings. | Participant, counterparty, affected-party, reviewer, admin-safety, and external-verifier standing are explicit; affected-party standing needs a privacy-safe summary. | Externality remedy appeals must name the remedy gap before reliance, completion badges, or public reputation claims proceed. | Requested outcomes are advisory and must be compatible with the appeal trigger before reviewers can route them. | Private details, exact wishes, contact data, raw notes, and sensitive constraints are redacted before reviewer routing. | Every challenge or appeal packet names a provenance activity, traceability step, reason codes, and human reviewer scope. | Safety blocking, matching disclosure, reviewed completion, and dispute resolution remain human-controlled."},{"id":"remedy-and-human-control","label":"Contract preserves remedy handling and human control for dispute resolution","status":"pass","evidence":"Appeals target only the specific reviewed claim, evidence row, baseline concern, disclosure decision, externality trigger, completion state, or policy flag. | Appeals do not reopen unrelated moral disagreements by default and do not create platform-wide moral rankings. | Participant, counterparty, affected-party, reviewer, admin-safety, and external-verifier standing are explicit; affected-party standing needs a privacy-safe summary. | Externality remedy appeals must name the remedy gap before reliance, completion badges, or public reputation claims proceed. | Requested outcomes are advisory and must be compatible with the appeal trigger before reviewers can route them. | Private details, exact wishes, contact data, raw notes, and sensitive constraints are redacted before reviewer routing. | Every challenge or appeal packet names a provenance activity, traceability step, reason codes, and human reviewer scope. | Safety blocking, matching disclosure, reviewed completion, and dispute resolution remain human-controlled."},{"id":"privacy-and-provenance","label":"Contract requires redaction, provenance activity, and traceability","status":"pass","evidence":"specific_reviewed_claim, standing_established, affected_party_standing, evidence_scope_named, duplicate_proof_review, coercive_baseline_review, wrong_scope_evidence_review, material_factual_error_review, privacy_disclosure_review, externality_remedy_review, reviewer_conflict_review, policy_flag_review, challenge_window_required, human_review_required, no_unrelated_moral_disagreement, provenance_activity_required, private_details_redacted"},{"id":"nonmutating-decision-mode","label":"Contract evaluator is non-mutating and scope-only","status":"pass","evidence":"deterministic_challenge_appeal_scope_only; stateMutation false"},{"id":"contract-tests","label":"Challenge appeal contract test hooks are named","status":"pass","evidence":"challenge_appeal_contract_validator, challenge_appeal_evaluate_route_contract, challenge_appeal_scope_smoke, technical_spec_challenge_appeal_smoke"}],"blockers":[]},"disclosureValidation":{"status":"pass","validatorName":"moral-trade-disclosure-grant-contract","validatorVersion":"moral-trade-disclosure-grants-validator-v0.1","contractVersion":"moral-trade-disclosure-grants-v0.1","checks":[{"id":"lattice-coverage","label":"Contract publishes disclosure stages, access levels, and grant statuses","status":"pass","evidence":"hidden, broad, specific, contact | registry, consent, introduced | draft, granted, revoked"},{"id":"field-contract-coverage","label":"Contract publishes field-level disclosure boundaries","status":"pass","evidence":"cause_areas, exact_wish, exact_ask, capabilities, constraints, verification_preferences, coarse_location, source_summary, contact_email"},{"id":"sample-decision-validation","label":"Sample disclosure decision validates","status":"pass","evidence":"grant_ready; blockers 0"},{"id":"stage-and-contact-invariants","label":"Contract preserves broad preview, consent, and introduced-stage boundaries","status":"pass","evidence":"Registry-stage disclosure is limited to broad previews such as cause areas and coarse location. | Exact wishes, exact asks, capabilities, constraints, verification preferences, and source summaries require the consent stage and a narrow purpose. | Contact details require the introduced stage, explicit owner approval, and an active MFA step-up before live grant approval. | Raw source notes, private feed payloads, exact private wishes before consent, and sensitive constraints in public previews stay redacted. | Disclosure grants are field-level, purpose-bound, stage-bound, expiry-aware, and scoped to owner, counterparty, or match context. | Registry search must enforce query budgets, sparse-result privacy floors, redacted overlap tokens, and risk-signal logging before broad previews can be relied on. | Detail requests must suppress repeated same-owner probing over a seven-day window and log only counts, stages, and field totals. | Evaluators cannot disclose, introduce, contact, approve, revoke, or mutate records; live grants require authenticated owner-controlled actions."},{"id":"redaction-invariants","label":"Contract preserves raw-source and private-field redactions","status":"pass","evidence":"exact_private_wishes_before_consent, exact_asks_before_consent, contact_details_before_introduction, raw_source_notes, sensitive_constraints_in_public_preview, private_feed_payloads"},{"id":"search-privacy-controls","label":"Contract publishes query budget, sparse-result, fingerprint, overlap-token, and risk controls","status":"pass","evidence":"daily_registry_query_budget, sparse_result_privacy_floor, stable_query_fingerprint, redacted_overlap_tokens, risk_signal_logging, detail_request_probe_limit"},{"id":"detail-request-probing-controls","label":"Contract publishes repeated detail-request probing limits","status":"pass","evidence":"privacy_access_request; 7d"},{"id":"nonmutating-owner-control","label":"Contract evaluator is non-mutating and owner-controlled","status":"pass","evidence":"deterministic_disclosure_grant_scope_only; stateMutation false"},{"id":"approved-factor-codes","label":"Contract publishes approved disclosure factor codes","status":"pass","evidence":"purpose_bound_disclosure, field_level_grant, stage_lattice_enforced, registry_broad_preview_only, mutual_consent_required, introduced_contact_only, raw_source_notes_redacted, owner_approval_required, step_up_auth_required, no_private_feed_mining, non_mutating_evaluation, expiry_window_named"},{"id":"contract-tests","label":"Disclosure contract test hooks are named","status":"pass","evidence":"disclosure_grant_contract_validator, disclosure_grant_evaluate_route_contract, disclosure_query_budget_contract_smoke, background_disclosure_lattice_smoke, disclosure_contact_step_up_contract_smoke, privacy_access_request_cadence_smoke, technical_spec_disclosure_grant_smoke"}],"blockers":[]},"reviewWorkflowValidation":{"status":"pass","validatorName":"moral-trade-review-workflow-contract","validatorVersion":"moral-trade-review-workflow-validator-v0.2","contractVersion":"moral-trade-review-workflow-v0.2-2026-06","checks":[{"id":"card-key-coverage","label":"Detail card contract covers every rendered workflow card","status":"pass","evidence":"current_status, action_evidence, baseline_confidence, externality_review, participant_relative_scores, appeal_scope -> current_status, action_evidence, baseline_confidence, externality_review, participant_relative_scores, appeal_scope"},{"id":"status-reason-coverage","label":"Every detail and marketplace card exposes a structured status reason","status":"pass","evidence":"current_status.human_review=human review: the visible status is still a review state, not completion, custody, enforceability, or moral endorsement. | action_evidence.pass=pass: a named proof method and clear evidence locator are present for reviewer inspection. | baseline_confidence.pass=pass: the baseline is stated with enough support to enter counterfactual review. | externality_review.human_review=human review: the mode or causes can affect third parties, incentives, or unrepresented values. | participant_relative_scores.pass=pass: scores are bounded as participant-stated context, not platform ranking. | appeal_scope.human_review=human review: appeals require reviewer handling and must stay within the reviewed issue."},{"id":"factor-code-coverage","label":"Required factor codes appear in rendered samples","status":"pass","evidence":"status_visible, human_review_required, evidence_rule_named, evidence_sufficiency, baseline_stated, baseline_credibility, externality_review_required, participant_relative_scores, no_global_moral_ranking, appealable_review_scope, reviewer_summary"},{"id":"marketplace-factor-priority","label":"Marketplace factor priority is bounded and rendered","status":"pass","evidence":"human_review_required, evidence_rule_named, baseline_credibility, externality_review_required, no_global_moral_ranking"},{"id":"no-global-ranking-and-appeal-scope","label":"No-global-ranking and appeal-scope factors are preserved","status":"pass","evidence":"status_visible, human_review_required, evidence_rule_named, evidence_sufficiency, baseline_stated, baseline_credibility, externality_review_required, participant_relative_scores, no_global_moral_ranking, appealable_review_scope, reviewer_summary"},{"id":"separate-trust-dimensions","label":"Action evidence, baseline confidence, and externality review remain separate","status":"pass","evidence":"current_status, action_evidence, baseline_confidence, externality_review, participant_relative_scores, appeal_scope"},{"id":"participant-copy-templates","label":"Participant copy preserves baseline, evidence, safety, score, and appeal boundaries","status":"pass","evidence":"What would you do if this trade did not happen? Be concrete. Mention your current intention, prior behavior, or any evidence that makes your baseline credible. | Status: Needs evidence. Your draft is structurally complete, but no reviewable proof method has been attached yet. | This proposal cannot be published because it resembles a threat, coercive compensation request, or newly escalated harmful behavior. | This score reflects the participant's own stated priorities. It is not a platform judgment about objective moral value. | If you think this review decision is wrong, appeal the specific claim that was reviewed. Appeals do not reopen unrelated moral disagreements by default."},{"id":"contract-tests","label":"Review workflow contract test hooks are named","status":"pass","evidence":"review_workflow_contract_validator, offer_review_workflow_card_smoke, marketplace_factor_card_smoke, technical_spec_review_workflow_smoke"}],"blockers":[]},"reasoningPacketValidation":{"status":"pass","validatorName":"moral-trade-reasoning-packet-contract","validatorVersion":"moral-trade-reasoning-packet-validator-v0.2","contractVersion":"moral-trade-reasoning-packets-v0.3-2026-05","checks":[{"id":"public-packet-count","label":"Public packet count matches worked-example launch subset","status":"pass","evidence":"5 packet(s): reasoning-packet-seed-victoria, reasoning-packet-seed-paul, reasoning-packet-seed-nia, reasoning-packet-seed-omar, reasoning-packet-seed-lina"},{"id":"packet-field-shape","label":"Every packet exposes the approved structured fields","status":"pass","evidence":"id, sourceOfferId, rank, status, statusCode, statusTone, scope, title, href, factorCodes, summary, nextStep, decisionSteps, evidenceRows, uncertaintyFlags, reviewScope, reviewerSummary, contractSources"},{"id":"evidence-and-uncertainty-output","label":"Packets include cited evidence rows and uncertainty flags","status":"pass","evidence":"reasoning-packet-seed-victoria:3 evidence row(s), 4 uncertainty flag(s); reasoning-packet-seed-paul:3 evidence row(s), 4 uncertainty flag(s); reasoning-packet-seed-nia:3 evidence row(s), 4 uncertainty flag(s); reasoning-packet-seed-omar:3 evidence row(s), 4 uncertainty flag(s); reasoning-packet-seed-lina:3 evidence row(s), 4 uncertainty flag(s)"},{"id":"factor-code-and-next-step-output","label":"Packets include factor codes, reviewer scope, and a next human-controlled step","status":"pass","evidence":"reasoning-packet-seed-victoria:human_review_required|evidence_rule_named|baseline_credibility|externality_review_required|no_global_moral_ranking|terms_complete|baseline_stated; reasoning-packet-seed-paul:human_review_required|evidence_rule_named|baseline_credibility|externality_review_required|no_global_moral_ranking|terms_complete|baseline_stated; reasoning-packet-seed-nia:human_review_required|evidence_rule_named|baseline_credibility|externality_review_required|no_global_moral_ranking|terms_complete|baseline_stated; reasoning-packet-seed-omar:human_review_required|evidence_rule_named|baseline_credibility|externality_review_required|no_global_moral_ranking|terms_complete|baseline_stated; reasoning-packet-seed-lina:human_review_required|evidence_rule_named|baseline_credibility|externality_review_required|no_global_moral_ranking|terms_complete|baseline_stated"},{"id":"decision-step-output","label":"Packets include step-by-step pass/fail review gates","status":"pass","evidence":"reasoning-packet-seed-victoria:schema_completeness=pass|anti_threat=pass|baseline_credibility=pass|evidence_sufficiency=pass|externality_trigger=pass|privacy_redaction=pass|match_explanation=pass|human_review_routing=human_review; reasoning-packet-seed-paul:schema_completeness=pass|anti_threat=pass|baseline_credibility=pass|evidence_sufficiency=pass|externality_trigger=pass|privacy_redaction=pass|match_explanation=pass|human_review_routing=human_review; reasoning-packet-seed-nia:schema_completeness=pass|anti_threat=pass|baseline_credibility=pass|evidence_sufficiency=pass|externality_trigger=pass|privacy_redaction=pass|match_explanation=pass|human_review_routing=human_review; reasoning-packet-seed-omar:schema_completeness=pass|anti_threat=pass|baseline_credibility=pass|evidence_sufficiency=pass|externality_trigger=pass|privacy_redaction=pass|match_explanation=pass|human_review_routing=human_review; reasoning-packet-seed-lina:schema_completeness=pass|anti_threat=pass|baseline_credibility=pass|evidence_sufficiency=needs_input|externality_trigger=human_review|privacy_redaction=pass|match_explanation=pass|human_review_routing=needs_input"},{"id":"filter-contract","label":"Reasoning packet filters expose query facets and counts","status":"pass","evidence":"all:5, needs-evidence:1, human-review:5, blocked:0, pass-with-limits:4"},{"id":"public-link-and-contract-source","label":"Packets link only to worked examples and named public contracts","status":"pass","evidence":"/reasoning-center -> /api/moral-trade/reasoning/packets"},{"id":"privacy-and-no-hidden-reasoning","label":"Packets omit hidden reasoning and private-contact fields","status":"pass","evidence":"6 invariant(s)."},{"id":"linked-contracts","label":"Reasoning packets cite review workflow and provenance contract versions","status":"pass","evidence":"moral-trade-review-workflow-v0.2-2026-06; moral-trade-provenance-v0.3"},{"id":"contract-tests","label":"Reasoning packet contract test hooks are named","status":"pass","evidence":"reasoning_packet_contract_validator, reasoning_center_public_packet_smoke, reasoning_packets_api_route_smoke, reasoning_packets_recovery_payload_smoke, technical_spec_reasoning_packet_smoke"}],"blockers":[]},"operationsValidation":{"status":"pass","validatorName":"moral-trade-operations-profile","validatorVersion":"moral-trade-operations-validator-v0.2","profileVersion":"moral-trade-operations-v0.3-2026-05","checks":[{"id":"security-headers","label":"Security headers and private cache controls","status":"pass","evidence":"strict_transport_security, x_content_type_options, x_frame_options, referrer_policy, permissions_policy, csp_report_only, private_no_store"},{"id":"rate-limit-surfaces","label":"Core rate-limit surfaces","status":"pass","evidence":"public_contract_read, signup, login, offer_create, privacy_access_request, match_concierge_request, offer_comment, offer_collection_read, offer_detail_read, offer_facets_read, offer_follow_write, offer_create_similar, saved_search_write, copilot_draft_review, match_signal_evaluate, challenge_appeal_evaluate, disclosure_evaluate, review_workflow_evaluate, profile_portability, background_opportunity_brief_read, background_opportunity_feedback_write, background_source_summary_write, background_intro_packet_write, wish_registry_search, analytics_ingest"},{"id":"privacy-session-controls","label":"Privacy and session controls","status":"pass","evidence":"supabase_auth_cookies, private_route_cache_control, data_right_requests, field_level_disclosure_grants, email_outbox_safety_gate, audit_events"},{"id":"retention-lifecycle-controls","label":"Retention lifecycle controls","status":"pass","evidence":"account_profile_lifecycle, private_wish_source_lifecycle, evidence_provenance_lifecycle, payment_donation_reference_lifecycle, analytics_attribution_lifecycle, notification_delivery_lifecycle, data_right_request_lifecycle"},{"id":"observability-metrics","label":"Operational metrics","status":"pass","evidence":"funnel_event_counts, route_error_rate, api_latency_p95, web_vitals, blocked_proposal_rate, email_outbox_suppression_count, privacy_incident_count, copilot_fallback_rate, evidence_review_sla, appeal_overturn_rate"},{"id":"fallback-controls","label":"Safe fallback controls","status":"pass","evidence":"deterministic_manual_fallback, invalid_copilot_output_no_state_change, provider_timeout_no_state_change, unsafe_email_no_provider_send, replay_safe_state_transitions"},{"id":"rollout-gates","label":"Rollout gates","status":"pass","evidence":"shadow_mode, assist_mode, guarded_automation, human_controlled_safety"},{"id":"operational-tests","label":"Operational test hooks","status":"pass","evidence":"security_header_source_smoke, private_cache_header_smoke, rate_limit_surface_smoke, retention_lifecycle_contract_smoke, email_outbox_safety_gate_smoke, operations_profile_validator, resilience_fallback_audit, health_route_contract_smoke, production_build"}],"blockers":[]},"securityValidation":{"status":"pass","validatorName":"moral-trade-security-profile","validatorVersion":"moral-trade-security-validator-v0.3","profileVersion":"moral-trade-security-v0.3-2026-06","checks":[{"id":"required-security-controls","label":"Security controls and honest status labels","status":"pass","evidence":"hsts_csp_headers, private_no_store_cache, supabase_auth_cookies, provider_encryption_at_rest, field_level_encryption_not_claimed, background_field_encryption_keyring, server_only_secret_management, two_factor_admin_gate, participant_session_review_revocation, contact_disclosure_mfa_step_up, device_session_review_gate, key_rotation_gate, platform_abuse_throttling, incident_response_reporting"},{"id":"browser-and-session-controls","label":"Browser headers, private cache, and Supabase session controls","status":"pass","evidence":"hsts_csp_headers:implemented, private_no_store_cache:implemented, supabase_auth_cookies:implemented"},{"id":"provider-boundary-and-nonclaims","label":"Provider encryption boundary and non-claims are explicit","status":"pass","evidence":"Moral Trade does not claim custom field-level encryption for every private Moral Trade table; background-networking sensitive text has a separate versioned keyring control. | Moral Trade does not claim the app-level MFA/2FA admin gate replaces provider-console MFA, device inventory, session revocation, or key-rotation evidence. | Moral Trade does not claim a completed key-rotation program until provider rotation records are published. | Moral Trade does not claim 24/7 staffed security operations or zero incidents; incident summaries stay aggregate and privacy-redacted. | Moral Trade does not claim zero security risk; public health endpoints expose blockers instead."},{"id":"admin-and-key-scale-gates","label":"MFA is enforced while device/session review and key rotation still gate sensitive scale","status":"pass","evidence":"two_factor_admin_gate:implemented, participant_session_review_revocation:implemented, contact_disclosure_mfa_step_up:implemented, device_session_review_gate:required_before_scale, key_rotation_gate:required_before_scale"},{"id":"incident-response-lane","label":"Incident response is published without overclaiming security completion","status":"pass","evidence":"implemented; Moral Trade does not claim custom field-level encryption for every private Moral Trade table; background-networking sensitive text has a separate versioned keyring control. | Moral Trade does not claim the app-level MFA/2FA admin gate replaces provider-console MFA, device inventory, session revocation, or key-rotation evidence. | Moral Trade does not claim a completed key-rotation program until provider rotation records are published. | Moral Trade does not claim 24/7 staffed security operations or zero incidents; incident summaries stay aggregate and privacy-redacted. | Moral Trade does not claim zero security risk; public health endpoints expose blockers instead."},{"id":"scale-gates","label":"Scale gates reference known controls","status":"pass","evidence":"sensitive_admin_scale->two_factor_admin_gate+device_session_review_gate+key_rotation_gate+incident_response_reporting, paid_action_volume_scale->platform_abuse_throttling+provider_encryption_at_rest+server_only_secret_management+key_rotation_gate+incident_response_reporting, trust_badge_scale->private_no_store_cache+supabase_auth_cookies+contact_disclosure_mfa_step_up+platform_abuse_throttling+incident_response_reporting"},{"id":"security-tests","label":"Security test hooks","status":"pass","evidence":"security_profile_validator, security_scale_gate_audit, security_implementation_source_smoke, no_overclaim_nonclaim_smoke, private_cache_header_smoke, security_profile_incident_lane_smoke, security_health_route_contract_smoke, technical_spec_security_smoke"}],"blockers":[]},"incidentResponseValidation":{"status":"pass","validatorName":"moral-trade-incident-response-profile","validatorVersion":"moral-trade-incident-response-validator-v0.1","profileVersion":"moral-trade-incident-response-v0.1-2026-05","checks":[{"id":"intake-channels","label":"Incident intake channels","status":"pass","evidence":"safety_page_report, privacy_data_request, admin_console_report, provider_alert, validator_health_blocker"},{"id":"incident-categories","label":"Incident categories and owners","status":"pass","evidence":"privacy_leakage, security_control_failure, payment_provider_error, evidence_integrity_issue, unsafe_matching_or_disclosure, availability_route_failure, copilot_output_violation"},{"id":"severity-levels","label":"Severity levels and response SLAs","status":"pass","evidence":"sev0_active_sensitive_exposure:1h, sev1_control_or_payment_failure:4h, sev2_review_integrity_issue:24h, sev3_service_degradation:72h"},{"id":"response-phases","label":"Response phases cover containment, notice, public aggregates, and validator updates","status":"pass","evidence":"triage_and_severity, containment_and_pause, affected_participant_notice, provider_escalation, root_cause_and_correction, public_aggregate_update, validator_and_backlog_update"},{"id":"disclosure-rules","label":"Disclosure rules stay participant-scoped and privacy-safe","status":"pass","evidence":"affected_participant_notice_required, public_aggregate_only, no_private_details_in_public_postmortem, validator_blockers_linked, human_review_before_reopening"},{"id":"readiness-gates","label":"Incident readiness gates reference known response phases","status":"pass","evidence":"trust_badge_incident_lane->triage_and_severity+containment_and_pause+public_aggregate_update+validator_and_backlog_update, paid_action_incident_lane->triage_and_severity+containment_and_pause+affected_participant_notice+provider_escalation+root_cause_and_correction, copilot_assist_incident_lane->triage_and_severity+containment_and_pause+root_cause_and_correction+validator_and_backlog_update"},{"id":"public-non-claims","label":"Public non-claims prevent incident-response overclaiming","status":"pass","evidence":"Moral Trade does not claim 24/7 staffed security operations. | Moral Trade does not claim zero incidents or zero residual security risk. | Moral Trade does not publish raw private wishes, source notes, contact details, payment secrets, or provider payloads in public incident summaries. | Moral Trade does not treat incident-response publication as proof that MFA, device/session review, key rotation, or field-level encryption are complete."},{"id":"incident-tests","label":"Incident-response test hooks","status":"pass","evidence":"incident_response_profile_validator, incident_readiness_gate_audit, incident_privacy_boundary_smoke, incident_health_route_contract_smoke, security_profile_incident_lane_smoke, technical_spec_incident_response_smoke"},{"id":"sample-readiness-audits","label":"Sample readiness gates execute","status":"pass","evidence":"trust_badge_incident_lane:pass, paid_action_incident_lane:pass, copilot_assist_incident_lane:pass"}],"blockers":[]},"evaluationValidation":{"status":"pass","validatorName":"moral-trade-evaluation-profile","validatorVersion":"moral-trade-evaluation-validator-v0.3","profileVersion":"moral-trade-evaluation-v0.3-2026-05","checks":[{"id":"required-metrics","label":"Codex and reviewer quality metrics","status":"pass","evidence":"draft_completion_rate, time_to_valid_draft, blocked_proposal_precision, privacy_leakage_incidents, explanation_helpfulness, reviewer_efficiency_minutes, false_match_rate, subgroup_surfacing_parity, human_overrule_rate, appeal_overturn_rate, evidence_review_sla, duplicate_proof_miss_rate, unresolved_dispute_share"},{"id":"privacy-boundaries","label":"Privacy-safe measurement boundaries","status":"pass","evidence":"aggregate_only_by_default, no_raw_private_wish_text, no_contact_details, no_source_note_leakage, small_cell_suppression, deviation_review_log_redacted, free_text_quote_requires_consent"},{"id":"cohort-slices","label":"Fairness and review slices","status":"pass","evidence":"trade_format, cause_area_pair, geography_bucket, verification_method, privacy_stage, new_vs_returning_participant, consented_demographic_slice, optional_governed_sensitive_attribute"},{"id":"promotion-gates","label":"Rollout promotion gates","status":"pass","evidence":"shadow_mode, assist_mode, guarded_automation, human_controlled_decisions"},{"id":"zero-incident-targets","label":"Privacy and duplicate-proof targets","status":"pass","evidence":"privacy_leakage_incidents and duplicate_proof_miss_rate have zero-oriented targets."},{"id":"evaluation-tests","label":"Evaluation test hooks","status":"pass","evidence":"evaluation_profile_validator, workflow_quality_audit, surfacing_parity_audit, surfacing_deviation_review_log, ux_readiness_audit, health_route_contract_smoke, privacy_metric_boundary_smoke, promotion_gate_contract_smoke, public_technical_spec_smoke"},{"id":"sample-audits","label":"Deterministic sample evaluation audits execute","status":"pass","evidence":"surfacing pass; reviewed deviations 2; ux pass; workflow pass"}],"blockers":[]},"performanceValidation":{"status":"fail","validatorName":"moral-trade-performance-profile","validatorVersion":"moral-trade-performance-validator-v0.5","profileVersion":"moral-trade-performance-v0.4-2026-06","checks":[{"id":"metric-targets","label":"Performance targets for route errors, API latency, Web Vitals, loading recovery, and build coverage","status":"pass","evidence":"route_error_rate, api_latency_p95_ms, web_vitals_lcp_p75_ms, web_vitals_inp_p75_ms, web_vitals_cls_p75, specific_loading_recovery_ratio, build_route_manifest_coverage"},{"id":"instrumentation-controls","label":"Instrumentation controls","status":"pass","evidence":"web_vitals_capture, api_server_timing, route_error_boundary, loading_state_inventory, production_route_manifest_smoke"},{"id":"route-families","label":"Public route resilience families","status":"pass","evidence":"core_protocol_contract, offer_marketplace, background_networking, reasoning_and_review"},{"id":"route-recovery-manifest","label":"Route recovery manifest covers public Moral Trade route families","status":"fail","evidence":"11/13 route(s), blockers 2."},{"id":"release-gates","label":"Performance release gates reference known instrumentation","status":"pass","evidence":"instrument_before_optimize->web_vitals_capture+api_server_timing+route_error_boundary, public_route_resilience->route_error_boundary+loading_state_inventory+production_route_manifest_smoke, privacy_safe_telemetry->web_vitals_capture+api_server_timing"},{"id":"privacy-safe-telemetry","label":"Telemetry boundaries reject private text and unredacted query data","status":"pass","evidence":"route_error_rate:Route names and counts only; no raw query strings, private wish text, or contact details. | api_latency_p95_ms:Route key, status bucket, and duration bucket only. | web_vitals_lcp_p75_ms:Route bucket and metric value only; no raw user text. | web_vitals_inp_p75_ms:Route bucket and metric value only; no raw user text. | web_vitals_cls_p75:Route bucket and metric value only; no raw user text. | specific_loading_recovery_ratio:Route family counts only. | build_route_manifest_coverage:Route keys and manifest presence only."},{"id":"public-nonclaims","label":"Public non-claims for unverified performance readiness","status":"pass","evidence":"Moral Trade does not claim verified Core Web Vitals pass status until route-level samples are collected and published in aggregate. | Moral Trade does not claim all loading states are optimized; generic fallbacks are tracked as route-resilience debt. | Moral Trade does not claim production API latency targets are met without current server-timing or provider metrics. | Moral Trade does not claim performance telemetry can include raw private wishes, source notes, contact details, or unredacted query strings."},{"id":"performance-tests","label":"Performance test hooks","status":"pass","evidence":"performance_profile_validator, performance_snapshot_audit, route_recovery_manifest_audit, loading_error_boundary_smoke, route_manifest_coverage_smoke, performance_health_route_contract_smoke, technical_spec_performance_smoke, privacy_safe_telemetry_smoke"}],"blockers":["route-recovery-manifest: Route recovery manifest covers public Moral Trade route families"]},"externalityValidation":{"status":"pass","validatorName":"moral-trade-externality-profile","validatorVersion":"moral-trade-externality-validator-v0.2","profileVersion":"moral-trade-externality-v0.2-2026-05","checks":[{"id":"due-diligence-steps","label":"OECD-style due-diligence steps","status":"pass","evidence":"embed_policy, identify_impacts, prevent_or_mitigate, track_results, communicate, remediate"},{"id":"externality-triggers","label":"Material externality trigger codes","status":"pass","evidence":"unrepresented_third_party, vulnerable_party_pressure, political_or_campaign_adjacent, paid_action_pressure, labor_or_supply_chain, recipient_or_destination_risk, environment_or_community_impact, perverse_incentive"},{"id":"review-standards","label":"External review standards","status":"pass","evidence":"oecd_due_diligence, un_guiding_principles, ilo_fundamental_principles, eti_base_code, fairtrade_standards, open_supply_hub"},{"id":"trigger-standard-matrix","label":"Externality triggers map to required source standards and evidence expectations","status":"pass","evidence":"unrepresented_third_party->oecd_due_diligence+un_guiding_principles, vulnerable_party_pressure->oecd_due_diligence+un_guiding_principles+ilo_fundamental_principles, political_or_campaign_adjacent->oecd_due_diligence+un_guiding_principles, paid_action_pressure->oecd_due_diligence+un_guiding_principles+ilo_fundamental_principles, labor_or_supply_chain->oecd_due_diligence+un_guiding_principles+ilo_fundamental_principles+eti_base_code+open_supply_hub, recipient_or_destination_risk->oecd_due_diligence+un_guiding_principles+fairtrade_standards, environment_or_community_impact->oecd_due_diligence+un_guiding_principles+fairtrade_standards, perverse_incentive->oecd_due_diligence+un_guiding_principles"},{"id":"remedy-controls","label":"Affected-party standing and remedy controls","status":"pass","evidence":"affected_party_standing, remediation_plan, challenge_window_required, privacy_safe_reporting"},{"id":"allowed-outcomes","label":"Externality review outcomes","status":"pass","evidence":"no_externality_review_required, needs_human_review, challenge_window, blocked, disputed_unresolved"},{"id":"externality-tests","label":"Externality test hooks","status":"pass","evidence":"externality_profile_validator, due_diligence_steps_contract, trigger_standard_matrix_contract, affected_party_remedy_gate, labor_supply_chain_standard_gate, health_route_contract_smoke, technical_spec_externality_smoke"}],"blockers":[]},"transparencyReportValidation":{"blockers":[],"contractVersion":"moral-trade-transparency-report-v0.1-2026-05","status":"pass","validatorName":"moral-trade-transparency-report","validatorVersion":"moral-trade-transparency-report-validator-v0.1"},"apiContractValidation":{"status":"fail","validatorName":"moral-trade-api-contract-profile","validatorVersion":"moral-trade-api-contract-validator-v0.3","profileVersion":"moral-trade-api-contract-v0.24-2026-06","checks":[{"id":"core-api-routes","label":"Core API routes","status":"pass","evidence":"moral_trade_health, moral_trade_api_contract, public_offers_collection, public_offer_detail, public_offers_facets, saved_search_create, public_offer_follow, public_offer_create_similar, moral_trade_data_model_contract, moral_trade_policy_bundle_contract, moral_trade_provenance_schema, moral_trade_schema_registry, moral_trade_copilot_contract, moral_trade_copilot_review, moral_trade_match_signal_contract, moral_trade_match_signal_evaluate, moral_trade_challenge_appeal_contract, moral_trade_challenge_appeal_evaluate, moral_trade_disclosure_contract, moral_trade_disclosure_evaluate, moral_trade_review_workflow_contract, moral_trade_reasoning_packets, moral_trade_review_workflow_evaluate, moral_trade_operations_health, moral_trade_security_health, moral_trade_incident_response_health, moral_trade_evaluation_health, moral_trade_performance_health, moral_trade_externality_health, moral_trade_ai_governance_health, moral_trade_document_coverage_health, moral_trade_ai_shadow_contract, moral_trade_background_capability_gates_contract, moral_trade_private_overlap_contract, moral_trade_background_rls_audit_contract, moral_trade_transparency_report, profile_schema, profile_export, profile_import, background_source_connection_create, background_source_connection_revoke, background_source_summary_draft, background_source_summary_approve, background_profile_signal_recompute, background_source_summary_create, background_intro_packet_create, background_intro_request_create, background_intro_request_appeal, background_intro_request_approve_contact, background_opportunity_brief_list, background_opportunity_list, background_opportunity_feedback_create, background_opportunity_feedback_create_alias, wish_registry_search, funnel_events"},{"id":"schema-definitions","label":"Named request and response schemas","status":"pass","evidence":"empty_request, moral_trade_aggregate_health_response, api_contract_response, public_offers_collection_request, public_offers_collection_response, public_offer_detail_request, public_offer_detail_response, public_offers_facets_request, public_offers_facets_response, saved_search_create_request, saved_search_create_response, public_offer_follow_request, public_offer_follow_response, public_offer_create_similar_request, public_offer_create_similar_response, data_model_contract_response, policy_bundle_contract_response, provenance_schema_response, schema_registry_response, copilot_contract_response, copilot_review_request, copilot_review_response, match_signal_contract_response, match_signal_evaluate_request, match_signal_evaluate_response, challenge_appeal_contract_response, challenge_appeal_evaluate_request, challenge_appeal_evaluate_response, disclosure_contract_response, disclosure_evaluate_request, disclosure_evaluate_response, review_workflow_contract_response, reasoning_packets_request, reasoning_packets_response, review_workflow_evaluate_request, review_workflow_evaluate_response, operations_health_response, security_health_response, incident_response_health_response, evaluation_health_response, performance_health_response, externality_health_response, ai_governance_health_response, document_coverage_health_response, ai_shadow_contract_response, background_capability_gates_contract_response, private_overlap_contract_response, background_rls_audit_contract_response, transparency_report_response, profile_portability_schema_response, authenticated_export_request, profile_export_response, profile_import_request, profile_import_response, background_source_connection_create_request, background_source_connection_create_response, background_source_connection_revoke_response, background_source_summary_draft_request, background_source_summary_draft_response, background_source_summary_approve_request, background_source_summary_approve_response, background_profile_signal_recompute_response, background_source_summary_create_request, background_source_summary_create_response, background_intro_packet_create_request, background_intro_packet_create_response, background_intro_request_create_request, background_intro_request_create_response, background_intro_request_appeal_request, background_intro_request_appeal_response, background_intro_request_contact_approval_response, background_opportunity_brief_list_response, background_opportunity_feedback_create_request, background_opportunity_feedback_create_response, wish_registry_search_request, wish_registry_search_response, funnel_event_request, empty_204_response"},{"id":"field-level-schema-contracts","label":"Field-level schema contracts","status":"pass","evidence":"79 schema definition(s) with field contracts."},{"id":"privacy-classes","label":"Privacy classes","status":"pass","evidence":"public_contract, public_schema, authenticated_private, authenticated_private_step_up, privacy_thresholded_public_preview, redacted_analytics, ephemeral_private_draft_review"},{"id":"private-cache-controls","label":"Authenticated private routes fail closed","status":"pass","evidence":"saved_search_create, public_offer_follow, public_offer_create_similar, profile_export, profile_import, background_source_connection_create, background_source_connection_revoke, background_source_summary_draft, background_source_summary_approve, background_profile_signal_recompute, background_source_summary_create, background_intro_packet_create, background_intro_request_create, background_intro_request_appeal, background_intro_request_approve_contact, background_opportunity_brief_list, background_opportunity_list, background_opportunity_feedback_create, background_opportunity_feedback_create_alias"},{"id":"profile-portability-routes","label":"Profile export and import fail closed with private cache and rate limits","status":"pass","evidence":"profile_export:profile_portability:private_no_store, profile_import:profile_portability:private_no_store"},{"id":"privacy-thresholded-search","label":"Wish-registry search privacy and rate limits","status":"pass","evidence":"wish_registry_search:wish_registry_search"},{"id":"api-contract-route","label":"API contract route is cataloged and implementation-audited","status":"fail","evidence":"moral_trade_api_contract:public_contract_read:no_store_dynamic:fail"},{"id":"implementation-backed-rate-limits-and-cache","label":"Published rate-limit and cache names have executable tables","status":"fail","evidence":"routes=55, missingRateLimits=none, missingCacheControls=none, orphanedRateLimits=none"},{"id":"provenance-schema-validator","label":"Provenance schema route is validator-backed","status":"pass","evidence":"moral_trade_provenance_schema:no_store_dynamic"},{"id":"schema-registry-route","label":"Schema registry route publishes exact JSON Schema documents","status":"pass","evidence":"moral_trade_schema_registry:no_store_dynamic"},{"id":"public-offers-collection-route","label":"Public offers collection route exposes filtered listings and facets safely","status":"pass","evidence":"public_offers_collection:offer_collection_read:no_store_dynamic"},{"id":"public-offer-detail-route","label":"Public offer detail route exposes one public listing without private state","status":"pass","evidence":"public_offer_detail:offer_detail_read:no_store_dynamic"},{"id":"public-offers-facets-route","label":"Public offer facets route exposes positive-count browse facets safely","status":"pass","evidence":"public_offers_facets:offer_facets_read:no_store_dynamic"},{"id":"saved-search-create-route","label":"Saved-search create route stores viewer-owned browse memory only","status":"pass","evidence":"saved_search_create:saved_search_write:private_no_store"},{"id":"public-offer-follow-route","label":"Offer follow route stores viewer-owned saved-offer state only","status":"pass","evidence":"public_offer_follow:offer_follow_write:private_no_store"},{"id":"public-offer-create-similar-route","label":"Offer create-similar route returns only review-required draft prefills","status":"pass","evidence":"public_offer_create_similar:offer_create_similar:private_no_store"},{"id":"data-model-contract-route","label":"Data model contract route is validator-backed and privacy-preserving","status":"pass","evidence":"moral_trade_data_model_contract:no_store_dynamic"},{"id":"policy-bundle-contract-route","label":"Policy bundle contract route is validator-backed and strict-bundle scoped","status":"pass","evidence":"moral_trade_policy_bundle_contract:no_store_dynamic"},{"id":"copilot-review-nonmutating","label":"Copilot draft review is ephemeral and non-mutating","status":"pass","evidence":"moral_trade_copilot_review:private_no_store, moral_trade_match_signal_evaluate:private_no_store, moral_trade_challenge_appeal_evaluate:private_no_store, moral_trade_disclosure_evaluate:private_no_store, moral_trade_review_workflow_evaluate:private_no_store"},{"id":"review-workflow-evaluate-nonmutating","label":"Review workflow evaluation is ephemeral and non-mutating","status":"pass","evidence":"moral_trade_review_workflow_evaluate:private_no_store:review_workflow_evaluate"},{"id":"match-signal-routes","label":"Match signal contract and evaluate routes are validator-backed and non-mutating","status":"pass","evidence":"moral_trade_match_signal_evaluate:private_no_store:match_signal_evaluate"},{"id":"challenge-appeal-routes","label":"Challenge appeal contract and evaluate routes are validator-backed, scoped, and non-mutating","status":"pass","evidence":"moral_trade_challenge_appeal_evaluate:private_no_store:challenge_appeal_evaluate"},{"id":"disclosure-grant-routes","label":"Disclosure grant contract and evaluate routes are validator-backed, staged, and non-mutating","status":"pass","evidence":"moral_trade_disclosure_evaluate:private_no_store:disclosure_evaluate"},{"id":"incident-response-health-route","label":"Incident response health route is validator-backed and privacy-redacted","status":"pass","evidence":"moral_trade_incident_response_health:no_store_dynamic"},{"id":"transparency-report-route","label":"Transparency report route is aggregate-only, thresholded, and health-audited","status":"pass","evidence":"moral_trade_transparency_report:no_store_dynamic:public_contract_read"},{"id":"reasoning-packets-validator","label":"Reasoning packets route is public and validator-backed","status":"pass","evidence":"moral_trade_reasoning_packets:no_store_dynamic"},{"id":"analytics-redaction","label":"Analytics ingest redaction","status":"pass","evidence":"funnel_events"},{"id":"api-tests","label":"API contract test hooks","status":"pass","evidence":"api_contract_profile_validator, api_contract_route_contract, health_route_contract_smoke, technical_spec_api_contract_smoke, security_route_contract, incident_response_route_contract, performance_route_contract, externality_route_contract, ai_governance_route_contract, data_model_contract_route, policy_bundle_contract_route, public_offers_collection_route, public_offer_detail_route, public_offers_facets_route, saved_search_create_route, public_offer_follow_route, public_offer_create_similar_route, reasoning_packet_route_contract, match_signal_route_contract, challenge_appeal_route_contract, disclosure_grant_route_contract, copilot_review_route_contract, profile_portability_route_contract, wish_registry_rate_limit_contract, analytics_redaction_contract"}],"blockers":["api-contract-route: API contract route is cataloged and implementation-audited","implementation-backed-rate-limits-and-cache: Published rate-limit and cache names have executable tables"]},"apiContractImplementationAudit":{"status":"fail","validatorName":"moral-trade-api-implementation","validatorVersion":"moral-trade-api-implementation-audit-v0.2","profileVersion":"moral-trade-api-contract-v0.24-2026-06","routeCount":55,"implementedRateLimitSurfaces":["analytics_ingest","background_intro_packet_write","background_opportunity_brief_read","background_opportunity_feedback_write","background_source_summary_write","challenge_appeal_evaluate","copilot_draft_review","disclosure_evaluate","match_signal_evaluate","offer_collection_read","offer_create_similar","offer_detail_read","offer_facets_read","offer_follow_write","profile_portability","public_contract_read","review_workflow_evaluate","saved_search_write","wish_registry_search"],"implementedCacheControls":["no_store_dynamic","private_no_store","public_contract_static"],"missingRateLimitSurfaces":[],"missingCacheControls":[],"missingRouteFiles":["background_intro_packet_create:/api/background/intro-packets","background_intro_request_appeal:/api/background/intro-requests/:id/appeal","background_intro_request_approve_contact:/api/background/intro-requests/:id/approve-contact","background_intro_request_create:/api/background/intro-requests","background_opportunity_brief_list:/api/background/opportunity-briefs","background_opportunity_feedback_create:/api/background/opportunity-briefs/:id/feedback","background_opportunity_feedback_create_alias:/api/background/opportunities/:id/feedback","background_opportunity_list:/api/background/opportunities","background_profile_signal_recompute:/api/background/profile-signals/recompute","background_source_connection_create:/api/background/source-connections","background_source_connection_revoke:/api/background/source-connections/:id","background_source_summary_approve:/api/background/source-summaries/:id/approve","background_source_summary_create:/api/background/source-summaries","background_source_summary_draft:/api/background/source-connections/:id/draft-summary","funnel_events:/api/funnel-events","moral_trade_ai_governance_health:/api/moral-trade/ai-governance/health","moral_trade_ai_shadow_contract:/api/moral-trade/ai-shadow/contract","moral_trade_api_contract:/api/moral-trade/api-contract","moral_trade_background_capability_gates_contract:/api/moral-trade/background-capability-gates/contract","moral_trade_background_rls_audit_contract:/api/moral-trade/background-rls-audit/contract","moral_trade_challenge_appeal_contract:/api/moral-trade/challenge-appeal/contract","moral_trade_challenge_appeal_evaluate:/api/moral-trade/challenge-appeal/evaluate","moral_trade_copilot_contract:/api/moral-trade/copilot/contract","moral_trade_copilot_review:/api/moral-trade/copilot/review","moral_trade_data_model_contract:/api/moral-trade/data-model/contract","moral_trade_disclosure_contract:/api/moral-trade/disclosure/contract","moral_trade_disclosure_evaluate:/api/moral-trade/disclosure/evaluate","moral_trade_document_coverage_health:/api/moral-trade/document-coverage/health","moral_trade_evaluation_health:/api/moral-trade/evaluation/health","moral_trade_externality_health:/api/moral-trade/externality/health","moral_trade_health:/api/moral-trade/health","moral_trade_incident_response_health:/api/moral-trade/incident-response/health","moral_trade_match_signal_contract:/api/moral-trade/match-signal/contract","moral_trade_match_signal_evaluate:/api/moral-trade/match-signal/evaluate","moral_trade_operations_health:/api/moral-trade/operations/health","moral_trade_performance_health:/api/moral-trade/performance/health","moral_trade_policy_bundle_contract:/api/moral-trade/policy-bundle/contract","moral_trade_private_overlap_contract:/api/moral-trade/private-overlap/contract","moral_trade_provenance_schema:/api/moral-trade/provenance/schema","moral_trade_reasoning_packets:/api/moral-trade/reasoning/packets","moral_trade_review_workflow_contract:/api/moral-trade/review-workflow/contract","moral_trade_review_workflow_evaluate:/api/moral-trade/review-workflow/evaluate","moral_trade_schema_registry:/api/moral-trade/schemas","moral_trade_security_health:/api/moral-trade/security/health","moral_trade_transparency_report:/api/moral-trade/transparency/report","profile_export:/api/profile/export","profile_import:/api/profile/import","profile_schema:/api/profile/schema","public_offer_create_similar:/api/offers/:id/create-similar","public_offer_detail:/api/offers/:slug","public_offer_follow:/api/offers/:id/follow","public_offers_collection:/api/offers","public_offers_facets:/api/offers/facets","saved_search_create:/api/saved-searches","wish_registry_search:/api/wish-registry/search"],"orphanedRateLimitSurfaces":[],"routeFindings":[{"routeKey":"moral_trade_health","routePath":"/api/moral-trade/health","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/health/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_api_contract","routePath":"/api/moral-trade/api-contract","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/api-contract/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"public_offers_collection","routePath":"/api/offers","routeFilePresent":false,"candidateRouteFiles":["src/app/api/offers/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"offer_collection_read","rateLimitLimit":120,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"public_offer_detail","routePath":"/api/offers/:slug","routeFilePresent":false,"candidateRouteFiles":["src/app/api/offers/[slug]/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"offer_detail_read","rateLimitLimit":120,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"public_offers_facets","routePath":"/api/offers/facets","routeFilePresent":false,"candidateRouteFiles":["src/app/api/offers/facets/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"offer_facets_read","rateLimitLimit":120,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"saved_search_create","routePath":"/api/saved-searches","routeFilePresent":false,"candidateRouteFiles":["src/app/api/saved-searches/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"saved_search_write","rateLimitLimit":30,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"public_offer_follow","routePath":"/api/offers/:id/follow","routeFilePresent":false,"candidateRouteFiles":["src/app/api/offers/[id]/follow/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"offer_follow_write","rateLimitLimit":30,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"public_offer_create_similar","routePath":"/api/offers/:id/create-similar","routeFilePresent":false,"candidateRouteFiles":["src/app/api/offers/[id]/create-similar/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"offer_create_similar","rateLimitLimit":30,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"moral_trade_data_model_contract","routePath":"/api/moral-trade/data-model/contract","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/data-model/contract/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_policy_bundle_contract","routePath":"/api/moral-trade/policy-bundle/contract","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/policy-bundle/contract/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_provenance_schema","routePath":"/api/moral-trade/provenance/schema","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/provenance/schema/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_schema_registry","routePath":"/api/moral-trade/schemas","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/schemas/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_copilot_contract","routePath":"/api/moral-trade/copilot/contract","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/copilot/contract/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_copilot_review","routePath":"/api/moral-trade/copilot/review","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/copilot/review/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"copilot_draft_review","rateLimitLimit":30,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"moral_trade_match_signal_contract","routePath":"/api/moral-trade/match-signal/contract","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/match-signal/contract/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_match_signal_evaluate","routePath":"/api/moral-trade/match-signal/evaluate","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/match-signal/evaluate/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"match_signal_evaluate","rateLimitLimit":60,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"moral_trade_challenge_appeal_contract","routePath":"/api/moral-trade/challenge-appeal/contract","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/challenge-appeal/contract/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_challenge_appeal_evaluate","routePath":"/api/moral-trade/challenge-appeal/evaluate","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/challenge-appeal/evaluate/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"challenge_appeal_evaluate","rateLimitLimit":30,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"moral_trade_disclosure_contract","routePath":"/api/moral-trade/disclosure/contract","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/disclosure/contract/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_disclosure_evaluate","routePath":"/api/moral-trade/disclosure/evaluate","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/disclosure/evaluate/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"disclosure_evaluate","rateLimitLimit":30,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"moral_trade_review_workflow_contract","routePath":"/api/moral-trade/review-workflow/contract","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/review-workflow/contract/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_reasoning_packets","routePath":"/api/moral-trade/reasoning/packets","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/reasoning/packets/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_review_workflow_evaluate","routePath":"/api/moral-trade/review-workflow/evaluate","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/review-workflow/evaluate/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"review_workflow_evaluate","rateLimitLimit":60,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"moral_trade_operations_health","routePath":"/api/moral-trade/operations/health","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/operations/health/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_security_health","routePath":"/api/moral-trade/security/health","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/security/health/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_incident_response_health","routePath":"/api/moral-trade/incident-response/health","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/incident-response/health/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_evaluation_health","routePath":"/api/moral-trade/evaluation/health","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/evaluation/health/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_performance_health","routePath":"/api/moral-trade/performance/health","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/performance/health/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_externality_health","routePath":"/api/moral-trade/externality/health","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/externality/health/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_ai_governance_health","routePath":"/api/moral-trade/ai-governance/health","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/ai-governance/health/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_document_coverage_health","routePath":"/api/moral-trade/document-coverage/health","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/document-coverage/health/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_ai_shadow_contract","routePath":"/api/moral-trade/ai-shadow/contract","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/ai-shadow/contract/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_background_capability_gates_contract","routePath":"/api/moral-trade/background-capability-gates/contract","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/background-capability-gates/contract/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_private_overlap_contract","routePath":"/api/moral-trade/private-overlap/contract","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/private-overlap/contract/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_background_rls_audit_contract","routePath":"/api/moral-trade/background-rls-audit/contract","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/background-rls-audit/contract/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_transparency_report","routePath":"/api/moral-trade/transparency/report","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/transparency/report/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"profile_schema","routePath":"/api/profile/schema","routeFilePresent":false,"candidateRouteFiles":["src/app/api/profile/schema/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"public_contract_static","cacheControlHeader":"public, max-age=300, stale-while-revalidate=3600","status":"fail"},{"routeKey":"profile_export","routePath":"/api/profile/export","routeFilePresent":false,"candidateRouteFiles":["src/app/api/profile/export/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"profile_portability","rateLimitLimit":12,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"profile_import","routePath":"/api/profile/import","routeFilePresent":false,"candidateRouteFiles":["src/app/api/profile/import/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"profile_portability","rateLimitLimit":12,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"background_source_connection_create","routePath":"/api/background/source-connections","routeFilePresent":false,"candidateRouteFiles":["src/app/api/background/source-connections/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"background_source_summary_write","rateLimitLimit":12,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"background_source_connection_revoke","routePath":"/api/background/source-connections/:id","routeFilePresent":false,"candidateRouteFiles":["src/app/api/background/source-connections/[id]/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"background_source_summary_write","rateLimitLimit":12,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"background_source_summary_draft","routePath":"/api/background/source-connections/:id/draft-summary","routeFilePresent":false,"candidateRouteFiles":["src/app/api/background/source-connections/[id]/draft-summary/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"background_source_summary_write","rateLimitLimit":12,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"background_source_summary_approve","routePath":"/api/background/source-summaries/:id/approve","routeFilePresent":false,"candidateRouteFiles":["src/app/api/background/source-summaries/[id]/approve/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"background_source_summary_write","rateLimitLimit":12,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"background_profile_signal_recompute","routePath":"/api/background/profile-signals/recompute","routeFilePresent":false,"candidateRouteFiles":["src/app/api/background/profile-signals/recompute/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"background_source_summary_write","rateLimitLimit":12,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"background_source_summary_create","routePath":"/api/background/source-summaries","routeFilePresent":false,"candidateRouteFiles":["src/app/api/background/source-summaries/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"background_source_summary_write","rateLimitLimit":12,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"background_intro_packet_create","routePath":"/api/background/intro-packets","routeFilePresent":false,"candidateRouteFiles":["src/app/api/background/intro-packets/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"background_intro_packet_write","rateLimitLimit":12,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"background_intro_request_create","routePath":"/api/background/intro-requests","routeFilePresent":false,"candidateRouteFiles":["src/app/api/background/intro-requests/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"background_intro_packet_write","rateLimitLimit":12,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"background_intro_request_appeal","routePath":"/api/background/intro-requests/:id/appeal","routeFilePresent":false,"candidateRouteFiles":["src/app/api/background/intro-requests/[id]/appeal/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"background_intro_packet_write","rateLimitLimit":12,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"background_intro_request_approve_contact","routePath":"/api/background/intro-requests/:id/approve-contact","routeFilePresent":false,"candidateRouteFiles":["src/app/api/background/intro-requests/[id]/approve-contact/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"background_intro_packet_write","rateLimitLimit":12,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"background_opportunity_brief_list","routePath":"/api/background/opportunity-briefs","routeFilePresent":false,"candidateRouteFiles":["src/app/api/background/opportunity-briefs/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"background_opportunity_brief_read","rateLimitLimit":60,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"background_opportunity_list","routePath":"/api/background/opportunities","routeFilePresent":false,"candidateRouteFiles":["src/app/api/background/opportunities/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"background_opportunity_brief_read","rateLimitLimit":60,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"background_opportunity_feedback_create","routePath":"/api/background/opportunity-briefs/:id/feedback","routeFilePresent":false,"candidateRouteFiles":["src/app/api/background/opportunity-briefs/[id]/feedback/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"background_opportunity_feedback_write","rateLimitLimit":30,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"background_opportunity_feedback_create_alias","routePath":"/api/background/opportunities/:id/feedback","routeFilePresent":false,"candidateRouteFiles":["src/app/api/background/opportunities/[id]/feedback/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"background_opportunity_feedback_write","rateLimitLimit":30,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"wish_registry_search","routePath":"/api/wish-registry/search","routeFilePresent":false,"candidateRouteFiles":["src/app/api/wish-registry/search/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"wish_registry_search","rateLimitLimit":60,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"funnel_events","routePath":"/api/funnel-events","routeFilePresent":false,"candidateRouteFiles":["src/app/api/funnel-events/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"analytics_ingest","rateLimitLimit":120,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"}],"blockers":["missing_route_file:background_intro_packet_create:/api/background/intro-packets","missing_route_file:background_intro_request_appeal:/api/background/intro-requests/:id/appeal","missing_route_file:background_intro_request_approve_contact:/api/background/intro-requests/:id/approve-contact","missing_route_file:background_intro_request_create:/api/background/intro-requests","missing_route_file:background_opportunity_brief_list:/api/background/opportunity-briefs","missing_route_file:background_opportunity_feedback_create:/api/background/opportunity-briefs/:id/feedback","missing_route_file:background_opportunity_feedback_create_alias:/api/background/opportunities/:id/feedback","missing_route_file:background_opportunity_list:/api/background/opportunities","missing_route_file:background_profile_signal_recompute:/api/background/profile-signals/recompute","missing_route_file:background_source_connection_create:/api/background/source-connections","missing_route_file:background_source_connection_revoke:/api/background/source-connections/:id","missing_route_file:background_source_summary_approve:/api/background/source-summaries/:id/approve","missing_route_file:background_source_summary_create:/api/background/source-summaries","missing_route_file:background_source_summary_draft:/api/background/source-connections/:id/draft-summary","missing_route_file:funnel_events:/api/funnel-events","missing_route_file:moral_trade_ai_governance_health:/api/moral-trade/ai-governance/health","missing_route_file:moral_trade_ai_shadow_contract:/api/moral-trade/ai-shadow/contract","missing_route_file:moral_trade_api_contract:/api/moral-trade/api-contract","missing_route_file:moral_trade_background_capability_gates_contract:/api/moral-trade/background-capability-gates/contract","missing_route_file:moral_trade_background_rls_audit_contract:/api/moral-trade/background-rls-audit/contract","missing_route_file:moral_trade_challenge_appeal_contract:/api/moral-trade/challenge-appeal/contract","missing_route_file:moral_trade_challenge_appeal_evaluate:/api/moral-trade/challenge-appeal/evaluate","missing_route_file:moral_trade_copilot_contract:/api/moral-trade/copilot/contract","missing_route_file:moral_trade_copilot_review:/api/moral-trade/copilot/review","missing_route_file:moral_trade_data_model_contract:/api/moral-trade/data-model/contract","missing_route_file:moral_trade_disclosure_contract:/api/moral-trade/disclosure/contract","missing_route_file:moral_trade_disclosure_evaluate:/api/moral-trade/disclosure/evaluate","missing_route_file:moral_trade_document_coverage_health:/api/moral-trade/document-coverage/health","missing_route_file:moral_trade_evaluation_health:/api/moral-trade/evaluation/health","missing_route_file:moral_trade_externality_health:/api/moral-trade/externality/health","missing_route_file:moral_trade_health:/api/moral-trade/health","missing_route_file:moral_trade_incident_response_health:/api/moral-trade/incident-response/health","missing_route_file:moral_trade_match_signal_contract:/api/moral-trade/match-signal/contract","missing_route_file:moral_trade_match_signal_evaluate:/api/moral-trade/match-signal/evaluate","missing_route_file:moral_trade_operations_health:/api/moral-trade/operations/health","missing_route_file:moral_trade_performance_health:/api/moral-trade/performance/health","missing_route_file:moral_trade_policy_bundle_contract:/api/moral-trade/policy-bundle/contract","missing_route_file:moral_trade_private_overlap_contract:/api/moral-trade/private-overlap/contract","missing_route_file:moral_trade_provenance_schema:/api/moral-trade/provenance/schema","missing_route_file:moral_trade_reasoning_packets:/api/moral-trade/reasoning/packets","missing_route_file:moral_trade_review_workflow_contract:/api/moral-trade/review-workflow/contract","missing_route_file:moral_trade_review_workflow_evaluate:/api/moral-trade/review-workflow/evaluate","missing_route_file:moral_trade_schema_registry:/api/moral-trade/schemas","missing_route_file:moral_trade_security_health:/api/moral-trade/security/health","missing_route_file:moral_trade_transparency_report:/api/moral-trade/transparency/report","missing_route_file:profile_export:/api/profile/export","missing_route_file:profile_import:/api/profile/import","missing_route_file:profile_schema:/api/profile/schema","missing_route_file:public_offer_create_similar:/api/offers/:id/create-similar","missing_route_file:public_offer_detail:/api/offers/:slug","missing_route_file:public_offer_follow:/api/offers/:id/follow","missing_route_file:public_offers_collection:/api/offers","missing_route_file:public_offers_facets:/api/offers/facets","missing_route_file:saved_search_create:/api/saved-searches","missing_route_file:wish_registry_search:/api/wish-registry/search"]},"aiGovernanceValidation":{"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":[]},"documentCoverageValidation":{"status":"fail","validatorName":"moral-trade-document-coverage","validatorVersion":"moral-trade-document-coverage-validator-v0.8","profileVersion":"moral-trade-document-coverage-v0.7-2026-05","sourceDocumentCount":2,"sourceStackCount":12,"testingPlanLayerCount":7,"requirementCount":7,"sourceDocumentArtifacts":[{"key":"moral_trade_feature_audit_markdown","path":"moral trade4.md","artifactHash":null,"expectedHash":"sha256:8d9c8cc38efcc51011306b93019a400c0236af9aa1c8989444e45744fde6cd11","present":false,"hashMatches":false},{"key":"moral_trade_feature_audit_pdf","path":"Improving the Moral Trade Feature at MoralTrade.org.pdf","artifactHash":null,"expectedHash":"sha256:c006e0c0bfcb915b45585c24d39a4216ac1e61721bf24e12d859240240b0f509","present":false,"hashMatches":false}],"routeEvidenceArtifacts":[{"route":"/api/moral-trade/ai-governance/health","candidateFiles":["src/app/api/moral-trade/ai-governance/health/route.ts"],"present":false,"resolvedFile":null},{"route":"/api/moral-trade/api-contract","candidateFiles":["src/app/api/moral-trade/api-contract/route.ts"],"present":false,"resolvedFile":null},{"route":"/api/moral-trade/background-rls-audit/contract","candidateFiles":["src/app/api/moral-trade/background-rls-audit/contract/route.ts"],"present":false,"resolvedFile":null},{"route":"/api/moral-trade/challenge-appeal/contract","candidateFiles":["src/app/api/moral-trade/challenge-appeal/contract/route.ts"],"present":false,"resolvedFile":null},{"route":"/api/moral-trade/copilot/contract","candidateFiles":["src/app/api/moral-trade/copilot/contract/route.ts"],"present":false,"resolvedFile":null},{"route":"/api/moral-trade/copilot/review","candidateFiles":["src/app/api/moral-trade/copilot/review/route.ts"],"present":false,"resolvedFile":null},{"route":"/api/moral-trade/data-model/contract","candidateFiles":["src/app/api/moral-trade/data-model/contract/route.ts"],"present":false,"resolvedFile":null},{"route":"/api/moral-trade/disclosure/contract","candidateFiles":["src/app/api/moral-trade/disclosure/contract/route.ts"],"present":false,"resolvedFile":null},{"route":"/api/moral-trade/document-coverage/health","candidateFiles":["src/app/api/moral-trade/document-coverage/health/route.ts"],"present":false,"resolvedFile":null},{"route":"/api/moral-trade/evaluation/health","candidateFiles":["src/app/api/moral-trade/evaluation/health/route.ts"],"present":false,"resolvedFile":null},{"route":"/api/moral-trade/externality/health","candidateFiles":["src/app/api/moral-trade/externality/health/route.ts"],"present":false,"resolvedFile":null},{"route":"/api/moral-trade/health","candidateFiles":["src/app/api/moral-trade/health/route.ts"],"present":false,"resolvedFile":null},{"route":"/api/moral-trade/incident-response/health","candidateFiles":["src/app/api/moral-trade/incident-response/health/route.ts"],"present":false,"resolvedFile":null},{"route":"/api/moral-trade/match-signal/contract","candidateFiles":["src/app/api/moral-trade/match-signal/contract/route.ts"],"present":false,"resolvedFile":null},{"route":"/api/moral-trade/operations/health","candidateFiles":["src/app/api/moral-trade/operations/health/route.ts"],"present":false,"resolvedFile":null},{"route":"/api/moral-trade/performance/health","candidateFiles":["src/app/api/moral-trade/performance/health/route.ts"],"present":false,"resolvedFile":null},{"route":"/api/moral-trade/policy-bundle/contract","candidateFiles":["src/app/api/moral-trade/policy-bundle/contract/route.ts"],"present":false,"resolvedFile":null},{"route":"/api/moral-trade/private-overlap/contract","candidateFiles":["src/app/api/moral-trade/private-overlap/contract/route.ts"],"present":false,"resolvedFile":null},{"route":"/api/moral-trade/provenance/schema","candidateFiles":["src/app/api/moral-trade/provenance/schema/route.ts"],"present":false,"resolvedFile":null},{"route":"/api/moral-trade/reasoning/packets","candidateFiles":["src/app/api/moral-trade/reasoning/packets/route.ts"],"present":false,"resolvedFile":null},{"route":"/api/moral-trade/review-workflow/contract","candidateFiles":["src/app/api/moral-trade/review-workflow/contract/route.ts"],"present":false,"resolvedFile":null},{"route":"/api/moral-trade/review-workflow/evaluate","candidateFiles":["src/app/api/moral-trade/review-workflow/evaluate/route.ts"],"present":false,"resolvedFile":null},{"route":"/api/moral-trade/schemas","candidateFiles":["src/app/api/moral-trade/schemas/route.ts"],"present":false,"resolvedFile":null},{"route":"/api/moral-trade/security/health","candidateFiles":["src/app/api/moral-trade/security/health/route.ts"],"present":false,"resolvedFile":null},{"route":"/api/moral-trade/transparency/report","candidateFiles":["src/app/api/moral-trade/transparency/report/route.ts"],"present":false,"resolvedFile":null},{"route":"/moral-trade/technical-spec","candidateFiles":["src/app/moral-trade/technical-spec/page.tsx"],"present":false,"resolvedFile":null},{"route":"/validation","candidateFiles":["src/app/validation/page.tsx"],"present":false,"resolvedFile":null}],"canonicalInstructionHash":null,"checks":[{"id":"source:moral_trade_feature_audit_markdown","label":"Improving the Moral Trade Feature at MoralTrade.org markdown","status":"fail","evidence":"Missing phrase(s): formalize the core moral-trade data model and public validator suite | instrumented workflow cards | provenance-first evidence objects | schema-bound drafting, critique, and verification copilot | Never rank moral value globally | Evaluation metrics"},{"id":"source:moral_trade_feature_audit_pdf","label":"Improving the Moral Trade Feature at MoralTrade.org PDF","status":"fail","evidence":"Improving the Moral Trade Feature at MoralTrade.org.pdf is optional and absent."},{"id":"source-artifact:moral_trade_feature_audit_markdown","label":"moral trade4.md source artifact hash","status":"fail","evidence":"moral trade4.md missing"},{"id":"source-artifact:moral_trade_feature_audit_pdf","label":"Improving the Moral Trade Feature at MoralTrade.org.pdf source artifact hash","status":"fail","evidence":"Improving the Moral Trade Feature at MoralTrade.org.pdf missing"},{"id":"route-evidence:/api/moral-trade/ai-governance/health","label":"/api/moral-trade/ai-governance/health resolves to a Next.js route artifact","status":"fail","evidence":"Missing route artifact; checked src/app/api/moral-trade/ai-governance/health/route.ts"},{"id":"route-evidence:/api/moral-trade/api-contract","label":"/api/moral-trade/api-contract resolves to a Next.js route artifact","status":"fail","evidence":"Missing route artifact; checked src/app/api/moral-trade/api-contract/route.ts"},{"id":"route-evidence:/api/moral-trade/background-rls-audit/contract","label":"/api/moral-trade/background-rls-audit/contract resolves to a Next.js route artifact","status":"fail","evidence":"Missing route artifact; checked src/app/api/moral-trade/background-rls-audit/contract/route.ts"},{"id":"route-evidence:/api/moral-trade/challenge-appeal/contract","label":"/api/moral-trade/challenge-appeal/contract resolves to a Next.js route artifact","status":"fail","evidence":"Missing route artifact; checked src/app/api/moral-trade/challenge-appeal/contract/route.ts"},{"id":"route-evidence:/api/moral-trade/copilot/contract","label":"/api/moral-trade/copilot/contract resolves to a Next.js route artifact","status":"fail","evidence":"Missing route artifact; checked src/app/api/moral-trade/copilot/contract/route.ts"},{"id":"route-evidence:/api/moral-trade/copilot/review","label":"/api/moral-trade/copilot/review resolves to a Next.js route artifact","status":"fail","evidence":"Missing route artifact; checked src/app/api/moral-trade/copilot/review/route.ts"},{"id":"route-evidence:/api/moral-trade/data-model/contract","label":"/api/moral-trade/data-model/contract resolves to a Next.js route artifact","status":"fail","evidence":"Missing route artifact; checked src/app/api/moral-trade/data-model/contract/route.ts"},{"id":"route-evidence:/api/moral-trade/disclosure/contract","label":"/api/moral-trade/disclosure/contract resolves to a Next.js route artifact","status":"fail","evidence":"Missing route artifact; checked src/app/api/moral-trade/disclosure/contract/route.ts"},{"id":"route-evidence:/api/moral-trade/document-coverage/health","label":"/api/moral-trade/document-coverage/health resolves to a Next.js route artifact","status":"fail","evidence":"Missing route artifact; checked src/app/api/moral-trade/document-coverage/health/route.ts"},{"id":"route-evidence:/api/moral-trade/evaluation/health","label":"/api/moral-trade/evaluation/health resolves to a Next.js route artifact","status":"fail","evidence":"Missing route artifact; checked src/app/api/moral-trade/evaluation/health/route.ts"},{"id":"route-evidence:/api/moral-trade/externality/health","label":"/api/moral-trade/externality/health resolves to a Next.js route artifact","status":"fail","evidence":"Missing route artifact; checked src/app/api/moral-trade/externality/health/route.ts"},{"id":"route-evidence:/api/moral-trade/health","label":"/api/moral-trade/health resolves to a Next.js route artifact","status":"fail","evidence":"Missing route artifact; checked src/app/api/moral-trade/health/route.ts"},{"id":"route-evidence:/api/moral-trade/incident-response/health","label":"/api/moral-trade/incident-response/health resolves to a Next.js route artifact","status":"fail","evidence":"Missing route artifact; checked src/app/api/moral-trade/incident-response/health/route.ts"},{"id":"route-evidence:/api/moral-trade/match-signal/contract","label":"/api/moral-trade/match-signal/contract resolves to a Next.js route artifact","status":"fail","evidence":"Missing route artifact; checked src/app/api/moral-trade/match-signal/contract/route.ts"},{"id":"route-evidence:/api/moral-trade/operations/health","label":"/api/moral-trade/operations/health resolves to a Next.js route artifact","status":"fail","evidence":"Missing route artifact; checked src/app/api/moral-trade/operations/health/route.ts"},{"id":"route-evidence:/api/moral-trade/performance/health","label":"/api/moral-trade/performance/health resolves to a Next.js route artifact","status":"fail","evidence":"Missing route artifact; checked src/app/api/moral-trade/performance/health/route.ts"},{"id":"route-evidence:/api/moral-trade/policy-bundle/contract","label":"/api/moral-trade/policy-bundle/contract resolves to a Next.js route artifact","status":"fail","evidence":"Missing route artifact; checked src/app/api/moral-trade/policy-bundle/contract/route.ts"},{"id":"route-evidence:/api/moral-trade/private-overlap/contract","label":"/api/moral-trade/private-overlap/contract resolves to a Next.js route artifact","status":"fail","evidence":"Missing route artifact; checked src/app/api/moral-trade/private-overlap/contract/route.ts"},{"id":"route-evidence:/api/moral-trade/provenance/schema","label":"/api/moral-trade/provenance/schema resolves to a Next.js route artifact","status":"fail","evidence":"Missing route artifact; checked src/app/api/moral-trade/provenance/schema/route.ts"},{"id":"route-evidence:/api/moral-trade/reasoning/packets","label":"/api/moral-trade/reasoning/packets resolves to a Next.js route artifact","status":"fail","evidence":"Missing route artifact; checked src/app/api/moral-trade/reasoning/packets/route.ts"},{"id":"route-evidence:/api/moral-trade/review-workflow/contract","label":"/api/moral-trade/review-workflow/contract resolves to a Next.js route artifact","status":"fail","evidence":"Missing route artifact; checked src/app/api/moral-trade/review-workflow/contract/route.ts"},{"id":"route-evidence:/api/moral-trade/review-workflow/evaluate","label":"/api/moral-trade/review-workflow/evaluate resolves to a Next.js route artifact","status":"fail","evidence":"Missing route artifact; checked src/app/api/moral-trade/review-workflow/evaluate/route.ts"},{"id":"route-evidence:/api/moral-trade/schemas","label":"/api/moral-trade/schemas resolves to a Next.js route artifact","status":"fail","evidence":"Missing route artifact; checked src/app/api/moral-trade/schemas/route.ts"},{"id":"route-evidence:/api/moral-trade/security/health","label":"/api/moral-trade/security/health resolves to a Next.js route artifact","status":"fail","evidence":"Missing route artifact; checked src/app/api/moral-trade/security/health/route.ts"},{"id":"route-evidence:/api/moral-trade/transparency/report","label":"/api/moral-trade/transparency/report resolves to a Next.js route artifact","status":"fail","evidence":"Missing route artifact; checked src/app/api/moral-trade/transparency/report/route.ts"},{"id":"route-evidence:/moral-trade/technical-spec","label":"/moral-trade/technical-spec resolves to a Next.js route artifact","status":"fail","evidence":"Missing route artifact; checked src/app/moral-trade/technical-spec/page.tsx"},{"id":"route-evidence:/validation","label":"/validation resolves to a Next.js route artifact","status":"fail","evidence":"Missing route artifact; checked src/app/validation/page.tsx"},{"id":"instruction:canonical-build","label":"Canonical build instruction is present and validator-bound","status":"fail","evidence":"docs/moral-trade/codex-build-instruction.md missing, missingPhrases=Core Moral Trade Codex Build Instruction|canonical repository instruction|validator-backed, privacy-preserving, reviewable product behavior|No global platform ranking of moral value.|No autonomous outreach or counterparty disclosure.|No raw private-feed mining.|Matching and copilot output remain factor-code, confidence-band, consent-gated, and human-reviewed.|Required Public Contracts|Required Local Gates|Review Checklist|does not prove live production liquidity, missingCommands=node --import tsx --test src/lib/moral-trade/*.test.ts src/lib/background-ai-shadow.test.ts src/lib/background-networking.test.ts src/lib/background-notification-policy.test.ts src/lib/background-notifications.test.ts src/lib/background-privacy-controls.test.ts src/lib/background-explanations.test.ts src/lib/background-opportunity-briefs.test.ts src/lib/background-private-overlap.test.ts src/lib/wish-registry.test.ts src/lib/public-route-smoke.test.ts|npm run lint|git diff --check|npm run build, missingRoutes=/api/moral-trade/health|/api/moral-trade/document-coverage/health|/api/moral-trade/api-contract|/api/moral-trade/data-model/contract|/api/moral-trade/schemas|/api/moral-trade/copilot/contract|/api/moral-trade/review-workflow/contract|/api/moral-trade/reasoning/packets|/api/moral-trade/provenance/schema|/api/moral-trade/match-signal/contract|/api/moral-trade/disclosure/contract|/api/moral-trade/challenge-appeal/contract|/api/moral-trade/evaluation/health|/api/moral-trade/operations/health|/api/moral-trade/security/health|/api/moral-trade/performance/health|/api/moral-trade/incident-response/health|/api/moral-trade/externality/health|/api/moral-trade/ai-governance/health|/api/moral-trade/private-overlap/contract|/api/moral-trade/transparency/report"},{"id":"source-stack:toby_ord_moral_trade","label":"amirrorclear.net / Toby Ord, Moral Trade implementation trace","status":"fail","evidence":"priority=highest, evidence=0/3, routes=2, missingEvidence=src/lib/moral-trade/protocol.ts|src/lib/proposal-review.ts|src/app/anti-threat-baseline/page.tsx"},{"id":"source-stack:moraltrade_public_materials","label":"MoralTrade.org public materials implementation trace","status":"fail","evidence":"priority=highest, evidence=0/3, routes=2, missingEvidence=docs/moral-trade/codex-build-instruction.md|src/app/moral-trade/technical-spec/page.tsx|src/lib/moral-trade/api-contract.ts"},{"id":"source-stack:oecd_due_diligence","label":"OECD Due Diligence Guidance for Responsible Business Conduct implementation trace","status":"fail","evidence":"priority=high, evidence=1/2, routes=1, missingEvidence=src/lib/moral-trade/externality.ts"},{"id":"source-stack:un_guiding_principles","label":"UN Guiding Principles on Business and Human Rights implementation trace","status":"fail","evidence":"priority=high, evidence=1/2, routes=2, missingEvidence=src/lib/moral-trade/challenge-appeal.ts"},{"id":"source-stack:ilo_principles","label":"ILO MNE Declaration and Fundamental Principles and Rights at Work implementation trace","status":"fail","evidence":"priority=high, evidence=1/2, routes=1, missingEvidence=src/lib/moral-trade/externality.ts"},{"id":"source-stack:eti_fairtrade_standards","label":"ETI Base Code and Fairtrade Standards implementation trace","status":"fail","evidence":"priority=high, evidence=1/2, routes=1, missingEvidence=src/lib/moral-trade/externality.ts"},{"id":"source-stack:open_supply_hub","label":"Open Supply Hub implementation trace","status":"fail","evidence":"priority=high, evidence=1/2, routes=2, missingEvidence=src/lib/moral-trade/provenance.ts"},{"id":"source-stack:w3c_prov","label":"W3C PROV implementation trace","status":"fail","evidence":"priority=high, evidence=1/2, routes=1, missingEvidence=src/lib/moral-trade/provenance.ts"},{"id":"source-stack:gs1_epcis","label":"GS1 EPCIS 2.0 implementation trace","status":"fail","evidence":"priority=medium_high, evidence=0/1, routes=1, missingEvidence=src/lib/moral-trade/provenance.ts"},{"id":"source-stack:nist_ai_rmf_xai","label":"NIST AI RMF 1.0 and NIST XAI principles implementation trace","status":"fail","evidence":"priority=high, evidence=1/3, routes=2, missingEvidence=src/lib/moral-trade/ai-governance.ts|src/lib/moral-trade/copilot.ts"},{"id":"source-stack:fairness_and_ml_docs","label":"Hardt/Price/Srebro, Kleinberg/Mullainathan/Raghavan, Model Cards, and Datasheets for Datasets implementation trace","status":"fail","evidence":"priority=high, evidence=2/4, routes=2, missingEvidence=src/lib/moral-trade/evaluation.ts|src/lib/moral-trade/ai-governance.ts"},{"id":"source-stack:human_ai_interaction","label":"Amershi et al. and Kulesza et al. implementation trace","status":"fail","evidence":"priority=high, evidence=1/3, routes=2, missingEvidence=src/lib/moral-trade/copilot.ts|src/lib/moral-trade/evaluation.ts"},{"id":"testing-plan:schema_tests","label":"Schema tests coverage","status":"fail","evidence":"evidence=0/3, tests=0/3, routes=3, missingEvidence=src/lib/moral-trade/protocol.ts|src/lib/moral-trade/data-model.ts|src/lib/moral-trade/schema-registry.ts, missingTests=src/lib/moral-trade/protocol.test.ts|src/lib/moral-trade/data-model.test.ts|src/lib/moral-trade/schema-registry.test.ts"},{"id":"testing-plan:policy_tests","label":"Policy tests coverage","status":"fail","evidence":"evidence=0/3, tests=0/3, routes=3, missingEvidence=src/lib/moral-trade/policy-bundle.ts|src/lib/moral-trade/copilot.ts|src/lib/proposal-review.ts, missingTests=src/lib/moral-trade/policy-bundle.test.ts|src/lib/moral-trade/copilot.test.ts|src/lib/proposal-review.test.ts"},{"id":"testing-plan:evidence_tests","label":"Evidence tests coverage","status":"fail","evidence":"evidence=0/3, tests=0/3, routes=2, missingEvidence=src/lib/moral-trade/provenance.ts|src/lib/moral-trade/evidence-persistence.ts|src/lib/moral-trade/agreement-write-path.ts, missingTests=src/lib/moral-trade/provenance.test.ts|src/lib/moral-trade/evidence-persistence.test.ts|src/lib/moral-trade/agreement-write-path.test.ts"},{"id":"testing-plan:privacy_tests","label":"Privacy tests coverage","status":"fail","evidence":"evidence=0/4, tests=0/4, routes=3, missingEvidence=src/lib/moral-trade/disclosure.ts|src/lib/moral-trade/match-signal.ts|src/lib/background-privacy-controls.ts|src/lib/moral-trade/transparency-report.ts, missingTests=src/lib/moral-trade/disclosure.test.ts|src/lib/moral-trade/match-signal.test.ts|src/lib/background-privacy-controls.test.ts|src/lib/moral-trade/transparency-report.test.ts"},{"id":"testing-plan:fairness_tests","label":"Fairness tests coverage","status":"fail","evidence":"evidence=1/3, tests=0/2, routes=2, missingEvidence=src/lib/moral-trade/evaluation.ts|src/lib/moral-trade/ai-governance.ts, missingTests=src/lib/moral-trade/evaluation.test.ts|src/lib/moral-trade/ai-governance.test.ts"},{"id":"testing-plan:ux_tests","label":"UX tests coverage","status":"fail","evidence":"evidence=1/3, tests=0/2, routes=2, missingEvidence=src/lib/moral-trade/evaluation.ts|src/app/moral-trade/technical-spec/page.tsx, missingTests=src/lib/moral-trade/evaluation.test.ts|src/lib/public-route-smoke.test.ts"},{"id":"testing-plan:resilience_tests","label":"Resilience tests coverage","status":"fail","evidence":"evidence=0/4, tests=0/4, routes=3, missingEvidence=src/lib/moral-trade/operations.ts|src/lib/moral-trade/performance.ts|src/lib/moral-trade/copilot.ts|src/lib/moral-trade/offer-write-path.ts, missingTests=src/lib/moral-trade/operations.test.ts|src/lib/moral-trade/performance.test.ts|src/lib/moral-trade/copilot.test.ts|src/lib/moral-trade/offer-write-path.test.ts"},{"id":"requirement:core_data_model_public_validator_suite","label":"Core data model and public validators","status":"fail","evidence":"evidence=0/5, evidencePhrases=0/3, tests=0/3, routes=3, sources=linked, missingEvidence=src/lib/moral-trade/protocol.ts|src/lib/moral-trade/data-model.ts|src/lib/moral-trade/schema-registry.ts|src/app/api/moral-trade/data-model/contract/route.ts|src/app/api/moral-trade/schemas/route.ts, missingEvidencePhrases=MORAL_TRADE_SCHEMA_REGISTRY_VERSION|validateMoralTradeSchemaRegistry|profile-json-schema-conformance, missingTests=src/lib/moral-trade/protocol.test.ts|src/lib/moral-trade/data-model.test.ts|src/lib/moral-trade/schema-registry.test.ts"},{"id":"requirement:workflow_cards_factor_codes","label":"Workflow cards and factor codes","status":"fail","evidence":"evidence=0/5, evidencePhrases=0/3, tests=0/3, routes=3, sources=linked, missingEvidence=src/lib/proposal-review.ts|src/app/offers/[offerId]/page.tsx|src/app/offers/examples/[exampleId]/page.tsx|src/app/moral-trade/page.tsx|src/app/reasoning-center/page.tsx, missingEvidencePhrases=getOfferReviewWorkflowCards|no_global_moral_ranking|reviewer_summary, missingTests=src/lib/proposal-review.test.ts|src/lib/public-route-smoke.test.ts|src/lib/moral-trade/reasoning-packets.test.ts"},{"id":"requirement:provenance_first_evidence","label":"Provenance-first evidence objects","status":"fail","evidence":"evidence=2/5, evidencePhrases=2/4, tests=0/3, routes=1, sources=linked, missingEvidence=src/lib/moral-trade/provenance.ts|src/lib/moral-trade/evidence-persistence.ts|src/lib/moral-trade/agreement-write-path.ts, missingEvidencePhrases=MoralTradeProvenanceActivity|persistence-append-only-policies, missingTests=src/lib/moral-trade/provenance.test.ts|src/lib/moral-trade/evidence-persistence.test.ts|src/lib/moral-trade/agreement-write-path.test.ts"},{"id":"requirement:schema_bound_copilot","label":"Schema-bound copilot","status":"fail","evidence":"evidence=1/5, evidencePhrases=1/3, tests=0/2, routes=3, sources=linked, missingEvidence=src/lib/moral-trade/copilot.ts|src/app/api/moral-trade/copilot/contract/route.ts|src/app/api/moral-trade/copilot/review/route.ts|src/lib/moral-trade/policy-bundle.ts, missingEvidencePhrases=MoralTradeCopilotOutput|validateMoralTradeCopilotOutput, missingTests=src/lib/moral-trade/copilot.test.ts|src/lib/moral-trade/policy-bundle.test.ts"},{"id":"requirement:privacy_match_disclosure_guardrails","label":"Privacy, matching, and disclosure guardrails","status":"fail","evidence":"evidence=0/5, evidencePhrases=0/3, tests=0/3, routes=3, sources=linked, missingEvidence=src/lib/moral-trade/match-signal.ts|src/lib/moral-trade/disclosure.ts|src/lib/background-privacy-controls.ts|src/app/api/moral-trade/match-signal/evaluate/route.ts|src/app/api/moral-trade/disclosure/evaluate/route.ts, missingEvidencePhrases=redacted_profile_match_preview_only|evaluateMoralTradeDisclosureGrant|raw_source_notes_redacted, missingTests=src/lib/moral-trade/match-signal.test.ts|src/lib/moral-trade/disclosure.test.ts|src/lib/background-privacy-controls.test.ts"},{"id":"requirement:externality_challenge_appeal_review","label":"Externality, challenge, and appeal review","status":"fail","evidence":"evidence=0/4, evidencePhrases=0/4, tests=0/3, routes=3, sources=linked, missingEvidence=src/lib/moral-trade/externality.ts|src/lib/moral-trade/challenge-appeal.ts|src/lib/moral-trade/protocol.ts|src/app/validation/page.tsx, missingEvidencePhrases=evaluateMoralTradeExternalityReview|affected_party_standing|challenge_window_required|deterministic_challenge_appeal_scope_only, missingTests=src/lib/moral-trade/externality.test.ts|src/lib/moral-trade/challenge-appeal.test.ts|src/lib/moral-trade/protocol.test.ts"},{"id":"requirement:evaluation_operations_security_performance","label":"Evaluation, operations, security, and performance gates","status":"fail","evidence":"evidence=0/9, evidencePhrases=0/8, tests=0/9, routes=8, sources=linked, missingEvidence=src/lib/moral-trade/evaluation.ts|src/lib/moral-trade/operations.ts|src/lib/moral-trade/security.ts|src/lib/moral-trade/performance.ts|src/lib/moral-trade/incident-response.ts|src/lib/moral-trade/transparency-report.ts|src/lib/moral-trade/ai-governance.ts|src/lib/moral-trade/api-contract.ts|src/lib/moral-trade/email-copy.ts, missingEvidencePhrases=validateMoralTradeEvaluationProfile|validateMoralTradeOperationsProfile|validateMoralTradeSecurityProfile|validateMoralTradePerformanceProfile|validateMoralTradeIncidentResponseProfile|MORAL_TRADE_TRANSPARENCY_REPORT_VERSION|validateMoralTradeAiGovernanceProfile|sampleDocumentationPacketFailures, missingTests=src/lib/moral-trade/evaluation.test.ts|src/lib/moral-trade/operations.test.ts|src/lib/moral-trade/security.test.ts|src/lib/moral-trade/performance.test.ts|src/lib/moral-trade/incident-response.test.ts|src/lib/moral-trade/transparency-report.test.ts|src/lib/moral-trade/ai-governance.test.ts|src/lib/moral-trade/api-contract.test.ts|src/lib/moral-trade/email-copy.test.ts"},{"id":"structure:requirement-coverage","label":"Coverage includes every document recommendation family","status":"pass","evidence":"core_data_model_public_validator_suite, workflow_cards_factor_codes, provenance_first_evidence, schema_bound_copilot, privacy_match_disclosure_guardrails, externality_challenge_appeal_review, evaluation_operations_security_performance"},{"id":"structure:unique-keys","label":"Coverage keys are unique","status":"pass","evidence":"No duplicate keys."},{"id":"structure:recommended-source-stack","label":"Coverage maps every recommended source-stack family","status":"pass","evidence":"toby_ord_moral_trade, moraltrade_public_materials, oecd_due_diligence, un_guiding_principles, ilo_principles, eti_fairtrade_standards, open_supply_hub, w3c_prov, gs1_epcis, nist_ai_rmf_xai, fairness_and_ml_docs, human_ai_interaction"},{"id":"structure:testing-plan-coverage","label":"Coverage maps every report testing-plan layer","status":"pass","evidence":"schema_tests, policy_tests, evidence_tests, privacy_tests, fairness_tests, ux_tests, resilience_tests"},{"id":"structure:non-claims","label":"Coverage publishes non-claims","status":"pass","evidence":"This coverage profile proves repository artifacts and validator coverage, not live production liquidity or successful real-world trades. | The attached PDF and Markdown source are verified as present and hash-checked; the Markdown source is the phrase-checked requirements artifact used by this validator. | MPGF production evidence files remain separately governed and are not fabricated by this Moral Trade document-coverage profile."}],"blockers":["source:moral_trade_feature_audit_markdown: Improving the Moral Trade Feature at MoralTrade.org markdown","source:moral_trade_feature_audit_pdf: Improving the Moral Trade Feature at MoralTrade.org PDF","source-artifact:moral_trade_feature_audit_markdown: moral trade4.md source artifact hash","source-artifact:moral_trade_feature_audit_pdf: Improving the Moral Trade Feature at MoralTrade.org.pdf source artifact hash","route-evidence:/api/moral-trade/ai-governance/health: /api/moral-trade/ai-governance/health resolves to a Next.js route artifact","route-evidence:/api/moral-trade/api-contract: /api/moral-trade/api-contract resolves to a Next.js route artifact","route-evidence:/api/moral-trade/background-rls-audit/contract: /api/moral-trade/background-rls-audit/contract resolves to a Next.js route artifact","route-evidence:/api/moral-trade/challenge-appeal/contract: /api/moral-trade/challenge-appeal/contract resolves to a Next.js route artifact","route-evidence:/api/moral-trade/copilot/contract: /api/moral-trade/copilot/contract resolves to a Next.js route artifact","route-evidence:/api/moral-trade/copilot/review: /api/moral-trade/copilot/review resolves to a Next.js route artifact","route-evidence:/api/moral-trade/data-model/contract: /api/moral-trade/data-model/contract resolves to a Next.js route artifact","route-evidence:/api/moral-trade/disclosure/contract: /api/moral-trade/disclosure/contract resolves to a Next.js route artifact","route-evidence:/api/moral-trade/document-coverage/health: /api/moral-trade/document-coverage/health resolves to a Next.js route artifact","route-evidence:/api/moral-trade/evaluation/health: /api/moral-trade/evaluation/health resolves to a Next.js route artifact","route-evidence:/api/moral-trade/externality/health: /api/moral-trade/externality/health resolves to a Next.js route artifact","route-evidence:/api/moral-trade/health: /api/moral-trade/health resolves to a Next.js route artifact","route-evidence:/api/moral-trade/incident-response/health: /api/moral-trade/incident-response/health resolves to a Next.js route artifact","route-evidence:/api/moral-trade/match-signal/contract: /api/moral-trade/match-signal/contract resolves to a Next.js route artifact","route-evidence:/api/moral-trade/operations/health: /api/moral-trade/operations/health resolves to a Next.js route artifact","route-evidence:/api/moral-trade/performance/health: /api/moral-trade/performance/health resolves to a Next.js route artifact","route-evidence:/api/moral-trade/policy-bundle/contract: /api/moral-trade/policy-bundle/contract resolves to a Next.js route artifact","route-evidence:/api/moral-trade/private-overlap/contract: /api/moral-trade/private-overlap/contract resolves to a Next.js route artifact","route-evidence:/api/moral-trade/provenance/schema: /api/moral-trade/provenance/schema resolves to a Next.js route artifact","route-evidence:/api/moral-trade/reasoning/packets: /api/moral-trade/reasoning/packets resolves to a Next.js route artifact","route-evidence:/api/moral-trade/review-workflow/contract: /api/moral-trade/review-workflow/contract resolves to a Next.js route artifact","route-evidence:/api/moral-trade/review-workflow/evaluate: /api/moral-trade/review-workflow/evaluate resolves to a Next.js route artifact","route-evidence:/api/moral-trade/schemas: /api/moral-trade/schemas resolves to a Next.js route artifact","route-evidence:/api/moral-trade/security/health: /api/moral-trade/security/health resolves to a Next.js route artifact","route-evidence:/api/moral-trade/transparency/report: /api/moral-trade/transparency/report resolves to a Next.js route artifact","route-evidence:/moral-trade/technical-spec: /moral-trade/technical-spec resolves to a Next.js route artifact","route-evidence:/validation: /validation resolves to a Next.js route artifact","instruction:canonical-build: Canonical build instruction is present and validator-bound","source-stack:toby_ord_moral_trade: amirrorclear.net / Toby Ord, Moral Trade implementation trace","source-stack:moraltrade_public_materials: MoralTrade.org public materials implementation trace","source-stack:oecd_due_diligence: OECD Due Diligence Guidance for Responsible Business Conduct implementation trace","source-stack:un_guiding_principles: UN Guiding Principles on Business and Human Rights implementation trace","source-stack:ilo_principles: ILO MNE Declaration and Fundamental Principles and Rights at Work implementation trace","source-stack:eti_fairtrade_standards: ETI Base Code and Fairtrade Standards implementation trace","source-stack:open_supply_hub: Open Supply Hub implementation trace","source-stack:w3c_prov: W3C PROV implementation trace","source-stack:gs1_epcis: GS1 EPCIS 2.0 implementation trace","source-stack:nist_ai_rmf_xai: NIST AI RMF 1.0 and NIST XAI principles implementation trace","source-stack:fairness_and_ml_docs: Hardt/Price/Srebro, Kleinberg/Mullainathan/Raghavan, Model Cards, and Datasheets for Datasets implementation trace","source-stack:human_ai_interaction: Amershi et al. and Kulesza et al. implementation trace","testing-plan:schema_tests: Schema tests coverage","testing-plan:policy_tests: Policy tests coverage","testing-plan:evidence_tests: Evidence tests coverage","testing-plan:privacy_tests: Privacy tests coverage","testing-plan:fairness_tests: Fairness tests coverage","testing-plan:ux_tests: UX tests coverage","testing-plan:resilience_tests: Resilience tests coverage","requirement:core_data_model_public_validator_suite: Core data model and public validators","requirement:workflow_cards_factor_codes: Workflow cards and factor codes","requirement:provenance_first_evidence: Provenance-first evidence objects","requirement:schema_bound_copilot: Schema-bound copilot","requirement:privacy_match_disclosure_guardrails: Privacy, matching, and disclosure guardrails","requirement:externality_challenge_appeal_review: Externality, challenge, and appeal review","requirement:evaluation_operations_security_performance: Evaluation, operations, security, and performance gates"]},"publicContract":{"requiredProposalFields":[{"key":"format","label":"Trade format"},{"key":"cause_areas","label":"Offered and requested cause areas"},{"key":"offered_action","label":"Offered action"},{"key":"requested_action","label":"Requested action"},{"key":"baseline_statement","label":"No-trade baseline"},{"key":"duration","label":"Duration or review period"},{"key":"exit_conditions","label":"Exit, pause, expiry, or unresolved-evidence rule"},{"key":"verification_method","label":"Verification method"},{"key":"public_description","label":"Public description and boundaries"}],"dataModelProfileVersion":"moral-trade-data-model-v0.1.5-2026-06","dataModelEntities":["participant","public_profile","private_wish_profile","profile_visibility_control","source_connection","source_note","saved_search","trade_format","offer","baseline_statement","evidence_claim","evidence_artifact","external_entity_reference","traceability_event","provenance_activity","provenance_agent","state_transition_event_record","review_decision","challenge","appeal","dispute","privacy_grant","match_suggestion","notification","payment_record","payment_update","agreement_event"],"dataModelPrivacyClasses":["public_contract","public_preview","privacy_thresholded_public_preview","public_or_private_by_status","private_authenticated","authenticated_private","review_scoped","consent_granted","operational_private"],"dataModelOfferRequiredFields":["cause_areas","offered_action","requested_action","expected_impact","verification_method","duration","exit_conditions","baseline_statement"],"dataModelRelationshipBoundaries":["profile_privacy_boundary","source_note_boundary","match_disclosure_boundary","review_state_boundary","payment_non_custody_boundary"],"dataModelContractTests":["data_model_profile_validator","data_model_entity_coverage","data_model_profile_json_schema","offer_required_field_contract","source_note_privacy_boundary","public_data_model_contract_route","api_contract_data_model_route","health_data_model_smoke","technical_spec_data_model_smoke"],"policyBundleContractVersion":"moral-trade-policy-bundle-v0.1-2026-05","policyBundleStrictInputBundle":["structured_draft","policy_registry","prohibited_pattern_registry","factor_code_dictionary","verification_method_taxonomy","redaction_policy","evidence_metadata","redacted_profile_pair","match_constraint_set","stated_exclusions"],"policyBundlePolicyCodes":["no_global_moral_ranking","anti_threat_baseline","no_autonomous_outreach","privacy_redaction_required","separate_trust_axes","approved_json_only","observable_claims_only","no_chain_of_thought","no_private_feed_ingestion","insufficient_evidence_artifact_requests","anti_threat_escalation","no_false_certainty","no_escrow_legal_tax_claims","verification_loop_matchability_gate"],"policyBundleProhibitedPatternCodes":["anti_threat_baseline","prohibited_illegal_or_fraud","prohibited_doxxing_or_harassment","prohibited_political_campaign_offset","newly_escalated_harmful_behavior"],"policyBundleFactorCodeCount":44,"policyBundleVerificationMethods":["receipt_or_provider_record","public_log","attestation","audit_or_external_review","baseline_artifact","payment_event","manual_review"],"policyBundleRedactions":["exact_private_wishes","contact_details","sensitive_constraints","raw_profile_notes","protected_traits","ideology_or_psychology_inferences","exact_private_wishes_before_consent","exact_asks_before_consent","contact_details_before_introduction","raw_source_notes","sensitive_constraints_in_public_preview","private_feed_payloads"],"policyBundleContractTests":["policy_bundle_contract_validator","prohibited_pattern_seed_fixtures","factor_code_dictionary_coverage","verification_method_taxonomy_contract","redaction_policy_contract","public_policy_bundle_route","technical_spec_policy_bundle_smoke"],"statusValues":["draft","submitted","needs_clarification","needs_evidence","needs_human_review","challenge_window","completion_reviewed","disputed_unresolved","blocked","matchable"],"decisionPipeline":[{"key":"schema_completeness","requiredSignals":["requiredProposalFields","getMissingMoralTradeRequiredProposalFields"],"failureStatus":"needs_clarification","blocksMatchable":true},{"key":"anti_threat_policy","requiredSignals":["anti_threat_baseline","policy_conflicts_block_matchable"],"failureStatus":"blocked","blocksMatchable":true},{"key":"factual_evidence_readiness","requiredSignals":["evidence_rule_named","evidence_sufficiency_before_matchable"],"failureStatus":"needs_evidence","blocksMatchable":true},{"key":"counterfactual_baseline","requiredSignals":["baseline_stated","baseline_credibility_before_matchable"],"failureStatus":"needs_human_review","blocksMatchable":true},{"key":"externality_review","requiredSignals":["externality_review_required","externality_trigger_before_matchable"],"failureStatus":"challenge_window","blocksMatchable":true},{"key":"privacy_redaction","requiredSignals":["privacy_safe_preview","privacy_redaction_before_matchable"],"failureStatus":"needs_human_review","blocksMatchable":true},{"key":"match_explanation","requiredSignals":["match_explanation_before_matchable","privacy_safe_preview"],"failureStatus":"needs_human_review","blocksMatchable":true},{"key":"human_review_routing","requiredSignals":["human_review_before_matchable","human_review_before_completion"],"failureStatus":"needs_human_review","blocksMatchable":true}],"stateTransitionRules":[{"key":"draft_intake","from":"draft","allowedTo":["needs_clarification","submitted","blocked"],"requires":["required_fields_before_submitted","policy_screen_before_blocked","transition_event_recorded"],"provenanceActivity":"draft_created"},{"key":"clarification_resubmission","from":"needs_clarification","allowedTo":["draft","submitted","blocked"],"requires":["required_fields_before_submitted","transition_event_recorded"],"provenanceActivity":"draft_updated"},{"key":"submitted_triage","from":"submitted","allowedTo":["needs_evidence","needs_human_review","challenge_window","matchable","blocked"],"requires":["required_fields_before_reliance","policy_screen_before_matchable","baseline_credibility_before_matchable","evidence_sufficiency_before_matchable","externality_trigger_before_matchable","privacy_redaction_before_matchable","match_explanation_before_matchable","human_review_before_matchable","transition_event_recorded"],"provenanceActivity":"risk_screened"},{"key":"evidence_review","from":"needs_evidence","allowedTo":["submitted","needs_human_review","challenge_window","blocked"],"requires":["evidence_metadata_reviewed","transition_event_recorded"],"provenanceActivity":"evidence_submitted"},{"key":"human_review_routing","from":"needs_human_review","allowedTo":["needs_evidence","challenge_window","matchable","blocked"],"requires":["policy_screen_before_matchable","baseline_credibility_before_matchable","evidence_sufficiency_before_matchable","externality_trigger_before_matchable","privacy_redaction_before_matchable","match_explanation_before_matchable","human_review_before_matchable","transition_event_recorded"],"provenanceActivity":"risk_screened"},{"key":"challenge_window_resolution","from":"challenge_window","allowedTo":["needs_evidence","completion_reviewed","disputed_unresolved","blocked"],"requires":["evidence_metadata_reviewed","human_review_before_completion","transition_event_recorded"],"provenanceActivity":"challenge_window_opened"},{"key":"dispute_resolution","from":"disputed_unresolved","allowedTo":["challenge_window","completion_reviewed","blocked"],"requires":["dispute_record_before_unresolved","human_review_before_completion","transition_event_recorded"],"provenanceActivity":"review_completed"},{"key":"match_recheck","from":"matchable","allowedTo":["needs_evidence","challenge_window","blocked"],"requires":["transition_event_recorded"],"provenanceActivity":"risk_screened"},{"key":"completion_challenge","from":"completion_reviewed","allowedTo":["disputed_unresolved","blocked"],"requires":["dispute_record_before_unresolved","transition_event_recorded"],"provenanceActivity":"review_completed"}],"guardrailCodes":["no_global_moral_ranking","anti_threat_baseline","no_autonomous_outreach","privacy_redaction_required","separate_trust_axes"],"factorCodes":["terms_complete","baseline_stated","baseline_credibility","baseline_challenge_recommended","evidence_rule_named","participant_relative_scores","party_relative_benefit","externality_review_required","privacy_safe_preview","human_review_required","cause_area_overlap","cause_area_complementarity","trade_mode_compatible","verification_preference_compatible","location_constraint_satisfied","privacy_stage_compatible","stated_exclusions_clear"],"evidenceSchemas":["pledge_swap_v1","donation_offset_v1","paid_action_v1","public_good_commitment_v1"],"provenanceObjectSchemas":["evidence_artifact","evidence_claim","external_entity_reference","review_decision","match_signal","traceability_event","state_transition_event_record","provenance_activity","provenance_agent"],"stateTransitionEventRecordSchema":{"key":"state_transition_event_record","label":"Immutable state transition event record","required":["id","schemaVersion","subjectId","subjectKind","from","to","provenanceActivity","recordedAt","actorAgentId","actorAgentKind","usedEntityIds","generatedEntityIds","idempotencyKey","previousEventHash","auditQuestionAnswers","eventHash"]},"provenanceSchemaVersion":"moral-trade-provenance-v0.3","provenanceValidationRules":["artifact-hashes","claim-artifact-links","scope-alignment","one-proof-one-claim","freshness-window","agent-links","traceability-events","audit-question-answers","external-entity-references","prov-triplets"],"provenancePersistenceTables":["moral_trade_provenance_agents","moral_trade_evidence_artifacts","moral_trade_evidence_claims","moral_trade_evidence_claim_artifacts","moral_trade_external_entity_references","moral_trade_review_decisions","moral_trade_provenance_activities","moral_trade_traceability_events","moral_trade_state_transition_events"],"provenanceSampleBundleSummary":{"artifactCount":1,"claimCount":1,"reviewDecisionCount":1,"activityCount":2,"agentCount":3,"externalEntityReferenceCount":1,"traceabilityEventCount":1,"validationStatus":"pass"},"provenanceContractTests":["provenance_contract_validator","provenance_sample_bundle_smoke","traceability_event_contract_smoke","provenance_persistence_schema_smoke","technical_spec_provenance_contract_smoke"],"schemaRegistryVersion":"moral-trade-schema-registry-v0.2-2026-05","schemaRegistryDocuments":["ai_governance_profile_schema","api_contract_profile_schema","copilot_contract_schema","data_model_profile_schema","evaluation_profile_schema","externality_profile_schema","incident_response_profile_schema","operations_profile_schema","performance_profile_schema","protocol_profile_schema","public_offer_listing_schema","security_profile_schema"],"schemaRegistryPublicPaths":["/schemas/moral-trade/ai-governance-profile.schema.json","/schemas/moral-trade/api-contract-profile.schema.json","/schemas/moral-trade/copilot-contract.schema.json","/schemas/moral-trade/data-model-profile.schema.json","/schemas/moral-trade/evaluation-profile.schema.json","/schemas/moral-trade/externality-profile.schema.json","/schemas/moral-trade/incident-response-profile.schema.json","/schemas/moral-trade/operations-profile.schema.json","/schemas/moral-trade/performance-profile.schema.json","/schemas/moral-trade/protocol-profile.schema.json","/schemas/moral-trade/public-offer-listing.schema.json","/schemas/moral-trade/security-profile.schema.json"],"schemaRegistrySampleValidationCount":8,"schemaRegistrySampleValidationFailureCount":0,"schemaRegistryDataModelSchema":{"key":"data_model_profile_schema","label":"Data model profile schema","slug":"data-model-profile.schema.json","profileKey":"data_model","publicPath":"/schemas/moral-trade/data-model-profile.schema.json","schemaId":"https://www.moraltrade.org/schemas/moral-trade/data-model-profile.schema.json","title":"Moral Trade Data Model Profile","topLevelRequiredFields":["version","purpose","entities","privacyClasses","offerRequiredFields","relationshipBoundaries","nonClaims","contractTests"],"schemaPropertyKeys":["version","purpose","entities","privacyClasses","offerRequiredFields","relationshipBoundaries","nonClaims","contractTests"],"profileTopLevelFields":["version","purpose","entities","privacyClasses","offerRequiredFields","relationshipBoundaries","nonClaims","contractTests"],"propertyCount":8,"sampleValidationCount":0,"sampleValidationFailureCount":0},"schemaRegistryTests":["schema_registry_validator","data_model_profile_json_schema","schema_document_route_smoke","api_contract_schema_registry_route","technical_spec_schema_registry_smoke","health_schema_registry_smoke"],"copilotContractVersion":"moral-trade-copilot-v0.1.3-2026-06","copilotPromptTemplates":["system_prompt","draft_repair_prompt","matching_prompt","reviewer_summary_prompt"],"copilotInputBundle":["structured_draft","policy_registry","prohibited_pattern_registry","factor_code_dictionary","verification_method_taxonomy","redaction_policy","evidence_metadata","redacted_profile_pair","match_constraint_set","stated_exclusions"],"copilotOutputSections":["status","completeness","trade_structure","trust_assessment","match_explanation","verification_loop","clarification_questions","uncertainty_flags","next_step_checklist","cited_evidence_table","review_instructions","reviewer_summary","citations"],"copilotVerificationSteps":["schema_completeness","anti_threat","baseline_credibility","evidence_sufficiency","externality_trigger","privacy_redaction","match_explanation","human_review_routing"],"copilotRolloutReadinessStatuses":{"shadow_mode":"pass","assist_mode":"blocked","guarded_automation":"blocked"},"matchSignalContractVersion":"moral-trade-match-signal-contract-v0.3-2026-06","matchSignalDecisioningMode":"redacted_profile_match_preview_only","matchSignalStateMutation":false,"matchSignalRequiredInputFields":["profileId","causeAreas","tradeModes","verificationPreferences","locationSensitivity","privacyStage","privacyConstraints","statedExclusions"],"matchSignalFactorCodes":["cause_area_overlap","cause_area_complementarity","trade_mode_compatible","verification_preference_compatible","location_constraint_satisfied","privacy_safe_preview","privacy_stage_compatible","stated_exclusions_clear","human_review_required"],"matchSignalRedactedFields":["exact_private_wishes","contact_details","sensitive_constraints","raw_profile_notes","protected_traits","ideology_or_psychology_inferences"],"matchSignalParticipantExplanation":"Why you are seeing this match","matchSignalContractTests":["match_signal_contract_validator","redacted_profile_match_signal_smoke","participant_explanation_copy_smoke","match_signal_evaluate_route_contract","technical_spec_match_signal_smoke"],"challengeAppealContractVersion":"moral-trade-challenge-appeal-v0.2","challengeAppealDecisioningMode":"deterministic_challenge_appeal_scope_only","challengeAppealStateMutation":false,"challengeAppealSubjects":["claim","evidence_row","baseline_concern","disclosure_decision","externality_trigger","completion_state","policy_flag"],"challengeAppealStandingCategories":["participant","counterparty","affected_party","reviewer","admin_safety","external_verifier"],"challengeAppealTriggers":["duplicate_proof","coercive_baseline","wrong_scope_evidence","material_factual_error","privacy_disclosure_error","externality_remedy_gap","reviewer_conflict","policy_misapplied"],"challengeAppealAllowedOutcomes":["uphold_decision","request_evidence","route_human_review","open_challenge_window","block_reliance","record_remedy","close_unresolved","correct_record"],"challengeAppealFactorCodes":["specific_reviewed_claim","standing_established","affected_party_standing","evidence_scope_named","duplicate_proof_review","coercive_baseline_review","wrong_scope_evidence_review","material_factual_error_review","privacy_disclosure_review","externality_remedy_review","reviewer_conflict_review","policy_flag_review","challenge_window_required","human_review_required","no_unrelated_moral_disagreement","provenance_activity_required","private_details_redacted"],"challengeAppealContractTests":["challenge_appeal_contract_validator","challenge_appeal_evaluate_route_contract","challenge_appeal_scope_smoke","technical_spec_challenge_appeal_smoke"],"disclosureContractVersion":"moral-trade-disclosure-grants-v0.1","disclosureDecisioningMode":"deterministic_disclosure_grant_scope_only","disclosureStateMutation":false,"disclosureAccessLevels":["hidden","broad","specific","contact"],"disclosureAudienceStages":["registry","consent","introduced"],"disclosureGrantStatuses":["draft","granted","revoked"],"disclosureFieldKeys":["cause_areas","exact_wish","exact_ask","capabilities","constraints","verification_preferences","coarse_location","source_summary","contact_email"],"disclosureRedactedFields":["exact_private_wishes_before_consent","exact_asks_before_consent","contact_details_before_introduction","raw_source_notes","sensitive_constraints_in_public_preview","private_feed_payloads"],"disclosureSearchPrivacyControls":["daily_registry_query_budget","sparse_result_privacy_floor","stable_query_fingerprint","redacted_overlap_tokens","risk_signal_logging","detail_request_probe_limit"],"disclosureFactorCodes":["purpose_bound_disclosure","field_level_grant","stage_lattice_enforced","registry_broad_preview_only","mutual_consent_required","introduced_contact_only","raw_source_notes_redacted","owner_approval_required","step_up_auth_required","no_private_feed_mining","non_mutating_evaluation","expiry_window_named"],"disclosureContractTests":["disclosure_grant_contract_validator","disclosure_grant_evaluate_route_contract","disclosure_query_budget_contract_smoke","background_disclosure_lattice_smoke","disclosure_contact_step_up_contract_smoke","privacy_access_request_cadence_smoke","technical_spec_disclosure_grant_smoke"],"reviewWorkflowContractVersion":"moral-trade-review-workflow-v0.2-2026-06","reviewWorkflowCardKeys":["current_status","action_evidence","baseline_confidence","externality_review","participant_relative_scores","appeal_scope"],"reviewWorkflowMarketplaceFactorPriority":["human_review_required","evidence_rule_named","baseline_credibility","externality_review_required","no_global_moral_ranking","appealable_review_scope"],"reviewWorkflowParticipantCopyKeys":["baselineHelperText","needsEvidenceStatusCopy","safetyWarningCopy","importanceScoreNote","appealCopy"],"reviewWorkflowContractTests":["review_workflow_contract_validator","offer_review_workflow_card_smoke","marketplace_factor_card_smoke","technical_spec_review_workflow_smoke"],"reasoningPacketContractVersion":"moral-trade-reasoning-packets-v0.3-2026-05","reasoningPacketCount":5,"reasoningPacketFilters":["all","needs-evidence","human-review","blocked","pass-with-limits"],"reasoningPacketFilterCounts":{"all":5,"needs-evidence":1,"human-review":5,"blocked":0,"pass-with-limits":4},"reasoningPacketRequiredFields":["id","sourceOfferId","rank","status","statusCode","statusTone","scope","title","href","factorCodes","summary","nextStep","decisionSteps","evidenceRows","uncertaintyFlags","reviewScope","reviewerSummary","contractSources"],"reasoningPacketDecisionStepKeys":["schema_completeness","anti_threat","baseline_credibility","evidence_sufficiency","externality_trigger","privacy_redaction","match_explanation","human_review_routing"],"reasoningPacketLinkedContracts":{"reviewWorkflowContractVersion":"moral-trade-review-workflow-v0.2-2026-06","reviewWorkflowCardCount":6,"reviewWorkflowMarketplaceFactorCount":6,"provenanceSchemaVersion":"moral-trade-provenance-v0.3","provenanceValidationRuleCount":10,"provenanceSampleBundleStatus":"pass"},"reasoningPacketContractTests":["reasoning_packet_contract_validator","reasoning_center_public_packet_smoke","reasoning_packets_api_route_smoke","reasoning_packets_recovery_payload_smoke","technical_spec_reasoning_packet_smoke"],"operationsProfileVersion":"moral-trade-operations-v0.3-2026-05","securityHeaderCodes":["strict_transport_security","x_content_type_options","x_frame_options","referrer_policy","permissions_policy","csp_report_only","private_no_store"],"rateLimitSurfaces":["public_contract_read","signup","login","offer_create","privacy_access_request","match_concierge_request","offer_comment","offer_collection_read","offer_detail_read","offer_facets_read","offer_follow_write","offer_create_similar","saved_search_write","copilot_draft_review","match_signal_evaluate","challenge_appeal_evaluate","disclosure_evaluate","review_workflow_evaluate","profile_portability","background_opportunity_brief_read","background_opportunity_feedback_write","background_source_summary_write","background_intro_packet_write","wish_registry_search","analytics_ingest"],"retentionControlKeys":["account_profile_lifecycle","private_wish_source_lifecycle","evidence_provenance_lifecycle","payment_donation_reference_lifecycle","analytics_attribution_lifecycle","notification_delivery_lifecycle","data_right_request_lifecycle"],"retentionControlScopes":{"account_profile_lifecycle":"Authenticated account records, opt-in public profiles, profile export/import records, and profile portability schema metadata.","private_wish_source_lifecycle":"Private wishes, source summaries, approved source-derived profile signals, matching preferences, and consent-gated background-networking inputs.","evidence_provenance_lifecycle":"Evidence metadata, reviewer decisions, state-transition event records, and append-only provenance activities.","payment_donation_reference_lifecycle":"Stripe payment identifiers, donation-route handoff references, payment status, amount, cadence, and review evidence notes.","analytics_attribution_lifecycle":"Approved funnel event type, route path, coarse metadata buckets, partner attribution, and optional authenticated profile id.","notification_delivery_lifecycle":"Email/in-app delivery rows, digest preferences, quiet-hour windows, source cooldown state, opt-out state, suppression status, and failed-delivery diagnostics.","data_right_request_lifecycle":"Access, correction, deletion, restriction, and processor-clarification requests."},"observabilityMetrics":["funnel_event_counts","route_error_rate","api_latency_p95","web_vitals","blocked_proposal_rate","email_outbox_suppression_count","privacy_incident_count","copilot_fallback_rate","evidence_review_sla","appeal_overturn_rate"],"securityProfileVersion":"moral-trade-security-v0.3-2026-06","securityControls":["hsts_csp_headers","private_no_store_cache","supabase_auth_cookies","provider_encryption_at_rest","field_level_encryption_not_claimed","background_field_encryption_keyring","server_only_secret_management","two_factor_admin_gate","participant_session_review_revocation","contact_disclosure_mfa_step_up","device_session_review_gate","key_rotation_gate","platform_abuse_throttling","incident_response_reporting"],"securityScaleGates":["sensitive_admin_scale","paid_action_volume_scale","trust_badge_scale"],"securityPublicNonClaims":["Moral Trade does not claim custom field-level encryption for every private Moral Trade table; background-networking sensitive text has a separate versioned keyring control.","Moral Trade does not claim the app-level MFA/2FA admin gate replaces provider-console MFA, device inventory, session revocation, or key-rotation evidence.","Moral Trade does not claim a completed key-rotation program until provider rotation records are published.","Moral Trade does not claim 24/7 staffed security operations or zero incidents; incident summaries stay aggregate and privacy-redacted.","Moral Trade does not claim zero security risk; public health endpoints expose blockers instead."],"incidentResponseProfileVersion":"moral-trade-incident-response-v0.1-2026-05","incidentResponseIntakeChannels":["safety_page_report","privacy_data_request","admin_console_report","provider_alert","validator_health_blocker"],"incidentResponseCategories":["privacy_leakage","security_control_failure","payment_provider_error","evidence_integrity_issue","unsafe_matching_or_disclosure","availability_route_failure","copilot_output_violation"],"incidentResponseSeverityLevels":["sev0_active_sensitive_exposure","sev1_control_or_payment_failure","sev2_review_integrity_issue","sev3_service_degradation"],"incidentResponsePhases":["triage_and_severity","containment_and_pause","affected_participant_notice","provider_escalation","root_cause_and_correction","public_aggregate_update","validator_and_backlog_update"],"incidentResponseDisclosureRules":["affected_participant_notice_required","public_aggregate_only","no_private_details_in_public_postmortem","validator_blockers_linked","human_review_before_reopening"],"incidentResponseReadinessGates":["trust_badge_incident_lane","paid_action_incident_lane","copilot_assist_incident_lane"],"incidentResponsePublicNonClaims":["Moral Trade does not claim 24/7 staffed security operations.","Moral Trade does not claim zero incidents or zero residual security risk.","Moral Trade does not publish raw private wishes, source notes, contact details, payment secrets, or provider payloads in public incident summaries.","Moral Trade does not treat incident-response publication as proof that MFA, device/session review, key rotation, or field-level encryption are complete."],"evaluationProfileVersion":"moral-trade-evaluation-v0.3-2026-05","evaluationMetrics":["draft_completion_rate","time_to_valid_draft","blocked_proposal_precision","privacy_leakage_incidents","explanation_helpfulness","reviewer_efficiency_minutes","false_match_rate","subgroup_surfacing_parity","human_overrule_rate","appeal_overturn_rate","evidence_review_sla","duplicate_proof_miss_rate","unresolved_dispute_share"],"evaluationCohortSlices":["trade_format","cause_area_pair","geography_bucket","verification_method","privacy_stage","new_vs_returning_participant","consented_demographic_slice","optional_governed_sensitive_attribute"],"evaluationPromotionGates":["shadow_mode","assist_mode","guarded_automation","human_controlled_decisions"],"evaluationSampleAuditStatuses":{"surfacingParity":"pass","uxReadiness":"pass"},"evaluationSurfacingDeviationReviews":{"reviewed":2,"unreviewed":0},"performanceProfileVersion":"moral-trade-performance-v0.4-2026-06","performanceMetricTargets":["route_error_rate","api_latency_p95_ms","web_vitals_lcp_p75_ms","web_vitals_inp_p75_ms","web_vitals_cls_p75","specific_loading_recovery_ratio","build_route_manifest_coverage"],"performanceInstrumentationControls":["web_vitals_capture","api_server_timing","route_error_boundary","loading_state_inventory","production_route_manifest_smoke"],"performanceRouteFamilies":["core_protocol_contract","offer_marketplace","background_networking","reasoning_and_review"],"performancePublicNonClaims":["Moral Trade does not claim verified Core Web Vitals pass status until route-level samples are collected and published in aggregate.","Moral Trade does not claim all loading states are optimized; generic fallbacks are tracked as route-resilience debt.","Moral Trade does not claim production API latency targets are met without current server-timing or provider metrics.","Moral Trade does not claim performance telemetry can include raw private wishes, source notes, contact details, or unredacted query strings."],"externalityProfileVersion":"moral-trade-externality-v0.2-2026-05","externalityDueDiligenceSteps":["embed_policy","identify_impacts","prevent_or_mitigate","track_results","communicate","remediate"],"externalityTriggerCodes":["unrepresented_third_party","vulnerable_party_pressure","political_or_campaign_adjacent","paid_action_pressure","labor_or_supply_chain","recipient_or_destination_risk","environment_or_community_impact","perverse_incentive"],"externalityReviewStandards":["oecd_due_diligence","un_guiding_principles","ilo_fundamental_principles","eti_base_code","fairtrade_standards","open_supply_hub"],"externalityTriggerStandardMatrix":[{"triggerCode":"unrepresented_third_party","requiredStandards":["oecd_due_diligence","un_guiding_principles"]},{"triggerCode":"vulnerable_party_pressure","requiredStandards":["oecd_due_diligence","un_guiding_principles","ilo_fundamental_principles"]},{"triggerCode":"political_or_campaign_adjacent","requiredStandards":["oecd_due_diligence","un_guiding_principles"]},{"triggerCode":"paid_action_pressure","requiredStandards":["oecd_due_diligence","un_guiding_principles","ilo_fundamental_principles"]},{"triggerCode":"labor_or_supply_chain","requiredStandards":["oecd_due_diligence","un_guiding_principles","ilo_fundamental_principles","eti_base_code","open_supply_hub"]},{"triggerCode":"recipient_or_destination_risk","requiredStandards":["oecd_due_diligence","un_guiding_principles","fairtrade_standards"]},{"triggerCode":"environment_or_community_impact","requiredStandards":["oecd_due_diligence","un_guiding_principles","fairtrade_standards"]},{"triggerCode":"perverse_incentive","requiredStandards":["oecd_due_diligence","un_guiding_principles"]}],"externalityRemedyControls":["affected_party_standing","remediation_plan","challenge_window_required","privacy_safe_reporting"],"transparencyReportContractVersion":"moral-trade-transparency-report-v0.1-2026-05","transparencyReportMinimumPublicCount":3,"transparencyReportMetricKeys":["reviewed_match_suggestions","opportunity_briefs_delivered","opportunity_briefs_opened","opportunity_feedback_submitted","opportunity_briefs_dismissed","opportunity_briefs_deferred","opportunity_interest_marked","intro_packets_created","declined_intro_requests","blocked_safety_records","disclosure_grants_created","participant_reports_submitted","concierge_appeals_requested","agreement_evidence_reviewed","unresolved_disputes_current","median_concierge_review_hours","median_agreement_review_hours","concierge_sla_attainment_percent"],"transparencyReportPrivacyRules":["Publish aggregate counts, medians, and percentages only; no ids, emails, names, profile text, report bodies, source notes, or exact wishes.","Suppress nonzero counts and derived metrics when the sample is below the minimum public count.","Keep the report useful for trust and operations, not for ranking users, counterparties, or moral views.","When live aggregate data is unavailable, publish the contract and fallback status rather than inventing numbers."],"transparencyReportContractTests":["transparency_report_contract_smoke","transparency_report_threshold_suppression","transparency_report_no_private_fields","transparency_report_metric_source_schema_audit","transparency_report_public_route_smoke"],"apiContractProfileVersion":"moral-trade-api-contract-v0.24-2026-06","apiContractImplementationAuditStatus":"fail","apiRoutes":["moral_trade_health","moral_trade_api_contract","public_offers_collection","public_offer_detail","public_offers_facets","saved_search_create","public_offer_follow","public_offer_create_similar","moral_trade_data_model_contract","moral_trade_policy_bundle_contract","moral_trade_provenance_schema","moral_trade_schema_registry","moral_trade_copilot_contract","moral_trade_copilot_review","moral_trade_match_signal_contract","moral_trade_match_signal_evaluate","moral_trade_challenge_appeal_contract","moral_trade_challenge_appeal_evaluate","moral_trade_disclosure_contract","moral_trade_disclosure_evaluate","moral_trade_review_workflow_contract","moral_trade_reasoning_packets","moral_trade_review_workflow_evaluate","moral_trade_operations_health","moral_trade_security_health","moral_trade_incident_response_health","moral_trade_evaluation_health","moral_trade_performance_health","moral_trade_externality_health","moral_trade_ai_governance_health","moral_trade_document_coverage_health","moral_trade_ai_shadow_contract","moral_trade_background_capability_gates_contract","moral_trade_private_overlap_contract","moral_trade_background_rls_audit_contract","moral_trade_transparency_report","profile_schema","profile_export","profile_import","background_source_connection_create","background_source_connection_revoke","background_source_summary_draft","background_source_summary_approve","background_profile_signal_recompute","background_source_summary_create","background_intro_packet_create","background_intro_request_create","background_intro_request_appeal","background_intro_request_approve_contact","background_opportunity_brief_list","background_opportunity_list","background_opportunity_feedback_create","background_opportunity_feedback_create_alias","wish_registry_search","funnel_events"],"apiContractRoute":{"key":"moral_trade_api_contract","method":"GET","path":"/api/moral-trade/api-contract","auth":"public","privacyClass":"public_contract","requestSchema":"empty_request","responseSchema":"api_contract_response","rateLimitSurface":"public_contract_read","cacheControl":"no_store_dynamic","fallback":"Return API contract validator blockers, implementation audit, route catalog, schema definitions, privacy classes, and test hooks; never expose private participant records."},"apiImplementationRouteCount":55,"apiImplementationRateLimitSurfaces":["analytics_ingest","background_intro_packet_write","background_opportunity_brief_read","background_opportunity_feedback_write","background_source_summary_write","challenge_appeal_evaluate","copilot_draft_review","disclosure_evaluate","match_signal_evaluate","offer_collection_read","offer_create_similar","offer_detail_read","offer_facets_read","offer_follow_write","profile_portability","public_contract_read","review_workflow_evaluate","saved_search_write","wish_registry_search"],"apiImplementationCacheControls":["no_store_dynamic","private_no_store","public_contract_static"],"apiImplementationBlockers":["missing_route_file:background_intro_packet_create:/api/background/intro-packets","missing_route_file:background_intro_request_appeal:/api/background/intro-requests/:id/appeal","missing_route_file:background_intro_request_approve_contact:/api/background/intro-requests/:id/approve-contact","missing_route_file:background_intro_request_create:/api/background/intro-requests","missing_route_file:background_opportunity_brief_list:/api/background/opportunity-briefs","missing_route_file:background_opportunity_feedback_create:/api/background/opportunity-briefs/:id/feedback","missing_route_file:background_opportunity_feedback_create_alias:/api/background/opportunities/:id/feedback","missing_route_file:background_opportunity_list:/api/background/opportunities","missing_route_file:background_profile_signal_recompute:/api/background/profile-signals/recompute","missing_route_file:background_source_connection_create:/api/background/source-connections","missing_route_file:background_source_connection_revoke:/api/background/source-connections/:id","missing_route_file:background_source_summary_approve:/api/background/source-summaries/:id/approve","missing_route_file:background_source_summary_create:/api/background/source-summaries","missing_route_file:background_source_summary_draft:/api/background/source-connections/:id/draft-summary","missing_route_file:funnel_events:/api/funnel-events","missing_route_file:moral_trade_ai_governance_health:/api/moral-trade/ai-governance/health","missing_route_file:moral_trade_ai_shadow_contract:/api/moral-trade/ai-shadow/contract","missing_route_file:moral_trade_api_contract:/api/moral-trade/api-contract","missing_route_file:moral_trade_background_capability_gates_contract:/api/moral-trade/background-capability-gates/contract","missing_route_file:moral_trade_background_rls_audit_contract:/api/moral-trade/background-rls-audit/contract","missing_route_file:moral_trade_challenge_appeal_contract:/api/moral-trade/challenge-appeal/contract","missing_route_file:moral_trade_challenge_appeal_evaluate:/api/moral-trade/challenge-appeal/evaluate","missing_route_file:moral_trade_copilot_contract:/api/moral-trade/copilot/contract","missing_route_file:moral_trade_copilot_review:/api/moral-trade/copilot/review","missing_route_file:moral_trade_data_model_contract:/api/moral-trade/data-model/contract","missing_route_file:moral_trade_disclosure_contract:/api/moral-trade/disclosure/contract","missing_route_file:moral_trade_disclosure_evaluate:/api/moral-trade/disclosure/evaluate","missing_route_file:moral_trade_document_coverage_health:/api/moral-trade/document-coverage/health","missing_route_file:moral_trade_evaluation_health:/api/moral-trade/evaluation/health","missing_route_file:moral_trade_externality_health:/api/moral-trade/externality/health","missing_route_file:moral_trade_health:/api/moral-trade/health","missing_route_file:moral_trade_incident_response_health:/api/moral-trade/incident-response/health","missing_route_file:moral_trade_match_signal_contract:/api/moral-trade/match-signal/contract","missing_route_file:moral_trade_match_signal_evaluate:/api/moral-trade/match-signal/evaluate","missing_route_file:moral_trade_operations_health:/api/moral-trade/operations/health","missing_route_file:moral_trade_performance_health:/api/moral-trade/performance/health","missing_route_file:moral_trade_policy_bundle_contract:/api/moral-trade/policy-bundle/contract","missing_route_file:moral_trade_private_overlap_contract:/api/moral-trade/private-overlap/contract","missing_route_file:moral_trade_provenance_schema:/api/moral-trade/provenance/schema","missing_route_file:moral_trade_reasoning_packets:/api/moral-trade/reasoning/packets","missing_route_file:moral_trade_review_workflow_contract:/api/moral-trade/review-workflow/contract","missing_route_file:moral_trade_review_workflow_evaluate:/api/moral-trade/review-workflow/evaluate","missing_route_file:moral_trade_schema_registry:/api/moral-trade/schemas","missing_route_file:moral_trade_security_health:/api/moral-trade/security/health","missing_route_file:moral_trade_transparency_report:/api/moral-trade/transparency/report","missing_route_file:profile_export:/api/profile/export","missing_route_file:profile_import:/api/profile/import","missing_route_file:profile_schema:/api/profile/schema","missing_route_file:public_offer_create_similar:/api/offers/:id/create-similar","missing_route_file:public_offer_detail:/api/offers/:slug","missing_route_file:public_offer_follow:/api/offers/:id/follow","missing_route_file:public_offers_collection:/api/offers","missing_route_file:public_offers_facets:/api/offers/facets","missing_route_file:saved_search_create:/api/saved-searches","missing_route_file:wish_registry_search:/api/wish-registry/search"],"apiPrivacyClasses":["public_contract","public_schema","authenticated_private","authenticated_private_step_up","privacy_thresholded_public_preview","redacted_analytics","ephemeral_private_draft_review"],"apiSchemaDefinitions":["empty_request","public_offers_collection_request","public_offers_collection_response","public_offer_detail_request","public_offer_detail_response","public_offers_facets_request","public_offers_facets_response","saved_search_create_request","saved_search_create_response","public_offer_follow_request","public_offer_follow_response","public_offer_create_similar_request","public_offer_create_similar_response","moral_trade_aggregate_health_response","api_contract_response","data_model_contract_response","policy_bundle_contract_response","provenance_schema_response","schema_registry_response","copilot_contract_response","copilot_review_request","copilot_review_response","match_signal_contract_response","ai_shadow_contract_response","background_capability_gates_contract_response","private_overlap_contract_response","background_rls_audit_contract_response","transparency_report_response","match_signal_evaluate_request","match_signal","match_signal_evaluate_response","challenge_appeal_contract_response","challenge_appeal_evaluate_request","challenge_appeal_evaluate_response","disclosure_contract_response","disclosure_evaluate_request","disclosure_evaluate_response","review_workflow_contract_response","reasoning_packets_request","reasoning_packets_response","review_workflow_evaluate_request","review_workflow_evaluate_response","operations_health_response","security_health_response","incident_response_health_response","evaluation_health_response","performance_health_response","externality_health_response","ai_governance_health_response","document_coverage_health_response","profile_portability_schema_response","authenticated_export_request","profile_export_response","profile_import_request","profile_import_response","background_source_connection_create_request","background_source_connection_create_response","background_source_connection_revoke_response","background_source_summary_draft_request","background_source_summary_draft_response","background_source_summary_approve_request","background_source_summary_approve_response","background_profile_signal_recompute_response","background_source_summary_create_request","background_source_summary_create_response","background_intro_packet_create_request","background_intro_packet_create_response","background_intro_request_create_request","background_intro_request_create_response","background_intro_request_appeal_request","background_intro_request_appeal_response","background_intro_request_contact_approval_response","background_opportunity_brief_list_response","background_opportunity_feedback_create_request","background_opportunity_feedback_create_response","wish_registry_search_request","wish_registry_search_response","funnel_event_request","empty_204_response"],"apiSchemaFieldCounts":{"empty_request":0,"public_offers_collection_request":8,"public_offers_collection_response":8,"public_offer_detail_request":1,"public_offer_detail_response":9,"public_offers_facets_request":6,"public_offers_facets_response":8,"saved_search_create_request":6,"saved_search_create_response":8,"public_offer_follow_request":2,"public_offer_follow_response":9,"public_offer_create_similar_request":1,"public_offer_create_similar_response":9,"moral_trade_aggregate_health_response":25,"api_contract_response":8,"data_model_contract_response":7,"policy_bundle_contract_response":7,"provenance_schema_response":13,"schema_registry_response":8,"copilot_contract_response":5,"copilot_review_request":3,"copilot_review_response":12,"match_signal_contract_response":7,"ai_shadow_contract_response":7,"background_capability_gates_contract_response":7,"private_overlap_contract_response":8,"background_rls_audit_contract_response":7,"transparency_report_response":8,"match_signal_evaluate_request":1,"match_signal":15,"match_signal_evaluate_response":12,"challenge_appeal_contract_response":7,"challenge_appeal_evaluate_request":1,"challenge_appeal_evaluate_response":12,"disclosure_contract_response":7,"disclosure_evaluate_request":1,"disclosure_evaluate_response":12,"review_workflow_contract_response":6,"reasoning_packets_request":1,"reasoning_packets_response":13,"review_workflow_evaluate_request":1,"review_workflow_evaluate_response":11,"operations_health_response":5,"security_health_response":4,"incident_response_health_response":7,"evaluation_health_response":5,"performance_health_response":5,"externality_health_response":4,"ai_governance_health_response":7,"document_coverage_health_response":11,"profile_portability_schema_response":3,"authenticated_export_request":1,"profile_export_response":9,"profile_import_request":5,"profile_import_response":4,"background_source_connection_create_request":6,"background_source_connection_create_response":4,"background_source_connection_revoke_response":3,"background_source_summary_draft_request":2,"background_source_summary_draft_response":4,"background_source_summary_approve_request":3,"background_source_summary_approve_response":4,"background_profile_signal_recompute_response":4,"background_source_summary_create_request":8,"background_source_summary_create_response":4,"background_intro_packet_create_request":6,"background_intro_packet_create_response":3,"background_intro_request_create_request":6,"background_intro_request_create_response":5,"background_intro_request_appeal_request":2,"background_intro_request_appeal_response":4,"background_intro_request_contact_approval_response":4,"background_opportunity_brief_list_response":2,"background_opportunity_feedback_create_request":3,"background_opportunity_feedback_create_response":3,"wish_registry_search_request":6,"wish_registry_search_response":2,"funnel_event_request":4,"empty_204_response":0},"aiGovernanceProfileVersion":"moral-trade-ai-governance-v0.2-2026-05","aiGovernanceDecisioningMode":"deterministic_rules_with_schema_bound_copilot","aiGovernanceDocumentationBeforeMl":["model_card","dataset_datasheet","benchmark_slices","intended_use_limits","fairness_audit_report","change_log"],"aiGovernanceSampleDocumentationPacketCount":6,"aiGovernanceProhibitedUses":["end_to_end_llm_matching","global_moral_ranking","unreviewed_learning_to_rank","protected_trait_inference","autonomous_outreach","raw_private_feed_training"],"aiGovernanceExplanationControls":["factor_codes_source_of_truth","meaningful_user_action","system_accuracy_boundary","uncertainty_and_redaction_notice","appealable_review_scope","reversible_interaction"],"aiGovernanceExternalStandards":["nist_ai_rmf","nist_xai","model_cards","datasheets_for_datasets","fairness_tradeoff_literature"],"documentCoverageProfileVersion":"moral-trade-document-coverage-v0.7-2026-05","documentCoverageSourceDocuments":["moral_trade_feature_audit_markdown","moral_trade_feature_audit_pdf"],"documentCoverageSourceDocumentArtifacts":[{"key":"moral_trade_feature_audit_markdown","path":"moral trade4.md","artifactHash":null,"expectedHash":"sha256:8d9c8cc38efcc51011306b93019a400c0236af9aa1c8989444e45744fde6cd11","present":false,"hashMatches":false},{"key":"moral_trade_feature_audit_pdf","path":"Improving the Moral Trade Feature at MoralTrade.org.pdf","artifactHash":null,"expectedHash":"sha256:c006e0c0bfcb915b45585c24d39a4216ac1e61721bf24e12d859240240b0f509","present":false,"hashMatches":false}],"documentCoverageSourceStackReferences":["toby_ord_moral_trade","moraltrade_public_materials","oecd_due_diligence","un_guiding_principles","ilo_principles","eti_fairtrade_standards","open_supply_hub","w3c_prov","gs1_epcis","nist_ai_rmf_xai","fairness_and_ml_docs","human_ai_interaction"],"documentCoverageTestingPlanCoverage":["schema_tests","policy_tests","evidence_tests","privacy_tests","fairness_tests","ux_tests","resilience_tests"],"documentCoverageRequirementKeys":["core_data_model_public_validator_suite","workflow_cards_factor_codes","provenance_first_evidence","schema_bound_copilot","privacy_match_disclosure_guardrails","externality_challenge_appeal_review","evaluation_operations_security_performance"],"documentCoverageRequiredEvidencePhraseCount":28,"documentCoverageCanonicalInstruction":{"path":"docs/moral-trade/codex-build-instruction.md","verificationCommands":["node --import tsx --test src/lib/moral-trade/*.test.ts src/lib/background-ai-shadow.test.ts src/lib/background-networking.test.ts src/lib/background-notification-policy.test.ts src/lib/background-notifications.test.ts src/lib/background-privacy-controls.test.ts src/lib/background-explanations.test.ts src/lib/background-opportunity-briefs.test.ts src/lib/background-private-overlap.test.ts src/lib/wish-registry.test.ts src/lib/public-route-smoke.test.ts","npm run lint","git diff --check","npm run build"],"routeEvidence":["/api/moral-trade/health","/api/moral-trade/document-coverage/health","/api/moral-trade/api-contract","/api/moral-trade/data-model/contract","/api/moral-trade/schemas","/api/moral-trade/copilot/contract","/api/moral-trade/review-workflow/contract","/api/moral-trade/reasoning/packets","/api/moral-trade/provenance/schema","/api/moral-trade/match-signal/contract","/api/moral-trade/disclosure/contract","/api/moral-trade/challenge-appeal/contract","/api/moral-trade/evaluation/health","/api/moral-trade/operations/health","/api/moral-trade/security/health","/api/moral-trade/performance/health","/api/moral-trade/incident-response/health","/api/moral-trade/externality/health","/api/moral-trade/ai-governance/health","/api/moral-trade/private-overlap/contract","/api/moral-trade/transparency/report"],"artifactHash":null},"documentCoverageNonClaims":["This coverage profile proves repository artifacts and validator coverage, not live production liquidity or successful real-world trades.","The attached PDF and Markdown source are verified as present and hash-checked; the Markdown source is the phrase-checked requirements artifact used by this validator.","MPGF production evidence files remain separately governed and are not fabricated by this Moral Trade document-coverage profile."],"qualityMetrics":["draft_completion_rate","blocked_proposal_precision","privacy_leakage_incidents","explanation_helpfulness","false_match_rate","subgroup_surfacing_parity","human_overrule_rate","appeal_overturn_rate"]},"blockers":["route-recovery-manifest: Route recovery manifest covers public Moral Trade route families","api-contract-route: API contract route is cataloged and implementation-audited","implementation-backed-rate-limits-and-cache: Published rate-limit and cache names have executable tables","missing_route_file:background_intro_packet_create:/api/background/intro-packets","missing_route_file:background_intro_request_appeal:/api/background/intro-requests/:id/appeal","missing_route_file:background_intro_request_approve_contact:/api/background/intro-requests/:id/approve-contact","missing_route_file:background_intro_request_create:/api/background/intro-requests","missing_route_file:background_opportunity_brief_list:/api/background/opportunity-briefs","missing_route_file:background_opportunity_feedback_create:/api/background/opportunity-briefs/:id/feedback","missing_route_file:background_opportunity_feedback_create_alias:/api/background/opportunities/:id/feedback","missing_route_file:background_opportunity_list:/api/background/opportunities","missing_route_file:background_profile_signal_recompute:/api/background/profile-signals/recompute","missing_route_file:background_source_connection_create:/api/background/source-connections","missing_route_file:background_source_connection_revoke:/api/background/source-connections/:id","missing_route_file:background_source_summary_approve:/api/background/source-summaries/:id/approve","missing_route_file:background_source_summary_create:/api/background/source-summaries","missing_route_file:background_source_summary_draft:/api/background/source-connections/:id/draft-summary","missing_route_file:funnel_events:/api/funnel-events","missing_route_file:moral_trade_ai_governance_health:/api/moral-trade/ai-governance/health","missing_route_file:moral_trade_ai_shadow_contract:/api/moral-trade/ai-shadow/contract","missing_route_file:moral_trade_api_contract:/api/moral-trade/api-contract","missing_route_file:moral_trade_background_capability_gates_contract:/api/moral-trade/background-capability-gates/contract","missing_route_file:moral_trade_background_rls_audit_contract:/api/moral-trade/background-rls-audit/contract","missing_route_file:moral_trade_challenge_appeal_contract:/api/moral-trade/challenge-appeal/contract","missing_route_file:moral_trade_challenge_appeal_evaluate:/api/moral-trade/challenge-appeal/evaluate","missing_route_file:moral_trade_copilot_contract:/api/moral-trade/copilot/contract","missing_route_file:moral_trade_copilot_review:/api/moral-trade/copilot/review","missing_route_file:moral_trade_data_model_contract:/api/moral-trade/data-model/contract","missing_route_file:moral_trade_disclosure_contract:/api/moral-trade/disclosure/contract","missing_route_file:moral_trade_disclosure_evaluate:/api/moral-trade/disclosure/evaluate","missing_route_file:moral_trade_document_coverage_health:/api/moral-trade/document-coverage/health","missing_route_file:moral_trade_evaluation_health:/api/moral-trade/evaluation/health","missing_route_file:moral_trade_externality_health:/api/moral-trade/externality/health","missing_route_file:moral_trade_health:/api/moral-trade/health","missing_route_file:moral_trade_incident_response_health:/api/moral-trade/incident-response/health","missing_route_file:moral_trade_match_signal_contract:/api/moral-trade/match-signal/contract","missing_route_file:moral_trade_match_signal_evaluate:/api/moral-trade/match-signal/evaluate","missing_route_file:moral_trade_operations_health:/api/moral-trade/operations/health","missing_route_file:moral_trade_performance_health:/api/moral-trade/performance/health","missing_route_file:moral_trade_policy_bundle_contract:/api/moral-trade/policy-bundle/contract","missing_route_file:moral_trade_private_overlap_contract:/api/moral-trade/private-overlap/contract","missing_route_file:moral_trade_provenance_schema:/api/moral-trade/provenance/schema","missing_route_file:moral_trade_reasoning_packets:/api/moral-trade/reasoning/packets","missing_route_file:moral_trade_review_workflow_contract:/api/moral-trade/review-workflow/contract","missing_route_file:moral_trade_review_workflow_evaluate:/api/moral-trade/review-workflow/evaluate","missing_route_file:moral_trade_schema_registry:/api/moral-trade/schemas","missing_route_file:moral_trade_security_health:/api/moral-trade/security/health","missing_route_file:moral_trade_transparency_report:/api/moral-trade/transparency/report","missing_route_file:profile_export:/api/profile/export","missing_route_file:profile_import:/api/profile/import","missing_route_file:profile_schema:/api/profile/schema","missing_route_file:public_offer_create_similar:/api/offers/:id/create-similar","missing_route_file:public_offer_detail:/api/offers/:slug","missing_route_file:public_offer_follow:/api/offers/:id/follow","missing_route_file:public_offers_collection:/api/offers","missing_route_file:public_offers_facets:/api/offers/facets","missing_route_file:saved_search_create:/api/saved-searches","missing_route_file:wish_registry_search:/api/wish-registry/search","source:moral_trade_feature_audit_markdown: Improving the Moral Trade Feature at MoralTrade.org markdown","source:moral_trade_feature_audit_pdf: Improving the Moral Trade Feature at MoralTrade.org PDF","source-artifact:moral_trade_feature_audit_markdown: moral trade4.md source artifact hash","source-artifact:moral_trade_feature_audit_pdf: Improving the Moral Trade Feature at MoralTrade.org.pdf source artifact hash","route-evidence:/api/moral-trade/ai-governance/health: /api/moral-trade/ai-governance/health resolves to a Next.js route artifact","route-evidence:/api/moral-trade/api-contract: /api/moral-trade/api-contract resolves to a Next.js route artifact","route-evidence:/api/moral-trade/background-rls-audit/contract: /api/moral-trade/background-rls-audit/contract resolves to a Next.js route artifact","route-evidence:/api/moral-trade/challenge-appeal/contract: /api/moral-trade/challenge-appeal/contract resolves to a Next.js route artifact","route-evidence:/api/moral-trade/copilot/contract: /api/moral-trade/copilot/contract resolves to a Next.js route artifact","route-evidence:/api/moral-trade/copilot/review: /api/moral-trade/copilot/review resolves to a Next.js route artifact","route-evidence:/api/moral-trade/data-model/contract: /api/moral-trade/data-model/contract resolves to a Next.js route artifact","route-evidence:/api/moral-trade/disclosure/contract: /api/moral-trade/disclosure/contract resolves to a Next.js route artifact","route-evidence:/api/moral-trade/document-coverage/health: /api/moral-trade/document-coverage/health resolves to a Next.js route artifact","route-evidence:/api/moral-trade/evaluation/health: /api/moral-trade/evaluation/health resolves to a Next.js route artifact","route-evidence:/api/moral-trade/externality/health: /api/moral-trade/externality/health resolves to a Next.js route artifact","route-evidence:/api/moral-trade/health: /api/moral-trade/health resolves to a Next.js route artifact","route-evidence:/api/moral-trade/incident-response/health: /api/moral-trade/incident-response/health resolves to a Next.js route artifact","route-evidence:/api/moral-trade/match-signal/contract: /api/moral-trade/match-signal/contract resolves to a Next.js route artifact","route-evidence:/api/moral-trade/operations/health: /api/moral-trade/operations/health resolves to a Next.js route artifact","route-evidence:/api/moral-trade/performance/health: /api/moral-trade/performance/health resolves to a Next.js route artifact","route-evidence:/api/moral-trade/policy-bundle/contract: /api/moral-trade/policy-bundle/contract resolves to a Next.js route artifact","route-evidence:/api/moral-trade/private-overlap/contract: /api/moral-trade/private-overlap/contract resolves to a Next.js route artifact","route-evidence:/api/moral-trade/provenance/schema: /api/moral-trade/provenance/schema resolves to a Next.js route artifact","route-evidence:/api/moral-trade/reasoning/packets: /api/moral-trade/reasoning/packets resolves to a Next.js route artifact","route-evidence:/api/moral-trade/review-workflow/contract: /api/moral-trade/review-workflow/contract resolves to a Next.js route artifact","route-evidence:/api/moral-trade/review-workflow/evaluate: /api/moral-trade/review-workflow/evaluate resolves to a Next.js route artifact","route-evidence:/api/moral-trade/schemas: /api/moral-trade/schemas resolves to a Next.js route artifact","route-evidence:/api/moral-trade/security/health: /api/moral-trade/security/health resolves to a Next.js route artifact","route-evidence:/api/moral-trade/transparency/report: /api/moral-trade/transparency/report resolves to a Next.js route artifact","route-evidence:/moral-trade/technical-spec: /moral-trade/technical-spec resolves to a Next.js route artifact","route-evidence:/validation: /validation resolves to a Next.js route artifact","instruction:canonical-build: Canonical build instruction is present and validator-bound","source-stack:toby_ord_moral_trade: amirrorclear.net / Toby Ord, Moral Trade implementation trace","source-stack:moraltrade_public_materials: MoralTrade.org public materials implementation trace","source-stack:oecd_due_diligence: OECD Due Diligence Guidance for Responsible Business Conduct implementation trace","source-stack:un_guiding_principles: UN Guiding Principles on Business and Human Rights implementation trace","source-stack:ilo_principles: ILO MNE Declaration and Fundamental Principles and Rights at Work implementation trace","source-stack:eti_fairtrade_standards: ETI Base Code and Fairtrade Standards implementation trace","source-stack:open_supply_hub: Open Supply Hub implementation trace","source-stack:w3c_prov: W3C PROV implementation trace","source-stack:gs1_epcis: GS1 EPCIS 2.0 implementation trace","source-stack:nist_ai_rmf_xai: NIST AI RMF 1.0 and NIST XAI principles implementation trace","source-stack:fairness_and_ml_docs: Hardt/Price/Srebro, Kleinberg/Mullainathan/Raghavan, Model Cards, and Datasheets for Datasets implementation trace","source-stack:human_ai_interaction: Amershi et al. and Kulesza et al. implementation trace","testing-plan:schema_tests: Schema tests coverage","testing-plan:policy_tests: Policy tests coverage","testing-plan:evidence_tests: Evidence tests coverage","testing-plan:privacy_tests: Privacy tests coverage","testing-plan:fairness_tests: Fairness tests coverage","testing-plan:ux_tests: UX tests coverage","testing-plan:resilience_tests: Resilience tests coverage","requirement:core_data_model_public_validator_suite: Core data model and public validators","requirement:workflow_cards_factor_codes: Workflow cards and factor codes","requirement:provenance_first_evidence: Provenance-first evidence objects","requirement:schema_bound_copilot: Schema-bound copilot","requirement:privacy_match_disclosure_guardrails: Privacy, matching, and disclosure guardrails","requirement:externality_challenge_appeal_review: Externality, challenge, and appeal review","requirement:evaluation_operations_security_performance: Evaluation, operations, security, and performance gates"]}