Skip to main content
Glama

MVR API - Minimum Viable Relationships

Check evidence completeness

mvr_evidence_completeness
Read-only

Use after entity resolution and before any readiness claim to check verification status, source-family diversity, stakeholder coverage, and missing proof. Do not treat completeness as authorization. Use when: Use after entity resolution and before any verdict when evidence may be incomplete or one-sided. Do not use when: Do not treat completeness as readiness or authorization. Submit only consented, data-minimized, redacted or aggregated evidence; never raw private interviews, secrets, credentials, or personal identifiers. Evidence input location: arguments.payload. evidence_pack: object array. String fields: evidence_type, source_class, stakeholder_class, verification_status, source_date, source_doc_id. geography: string/object; evidence_geography: object; district: nonblank string; districts: nonblank strings array. source_date/freshness_date: YYYY, YYYY-MM, YYYY-MM-DD or ISO timestamp with timezone. source_date_range: {earliest,latest}, same-precision ordered bounds within supplied dates. analysis_date stays exact. Intervals have age_days:null and age_days_min/max; unresolved window/future overlap excludes coverage. Omit unknown dates/references, never null or invented. verification_status: unverified if unchecked. *_role: original_source_record, independent_evaluation or human_attestation; else ARTIFACT_ROLE_NOT_SOURCE_EVIDENCE. collection_context + provenance_ledger: see schema/feedback. Keep adverse facts; never relabel to pass.

Input Schema

NameRequiredDescriptionDefault
payloadYesEvidence pack and decision context to test for missing proof.

Output Schema

NameRequiredDescriptionDefault
codeNoCodes: FIELD_PROVENANCE_REQUIRED,FIELD_PROVENANCE_CONFLICT,FIELDWORK_CAPACITY_CONTRADICTION,SOURCE_INDEPENDENCE_CONTRADICTION,SOURCE_VERIFICATION_CONTRADICTION,FIELD_SOURCE_MODALITY_CONFLICT,DECISION_GEOGRAPHY_SCOPE_REQUIRED,DECISION_SCOPE_REQUIRED,DECISION_SCOPE_REVIEW_REQUIRED,DECISION_SCOPE_CROSS_CHECK_LIMIT,SOURCE_EXTRACTION_INVALID,SOURCE_EXTRACTION_REFERENCE_CONFLICT,ADVERSE_SOURCE_REVIEW_REQUIRED,INVALID_CLAIM_INPUT,OUTPUT_RECEIPT_NOT_REQUEST_AUTHORITY,ARTIFACT_ROLE_NOT_SOURCE_EVIDENCE. HTTP 422: details/validation_errors; fix missing_fields. Never invent facts. These codes do not authenticate sources or authorize action. /docs/mcp-integration.md.
statusNo
next_stepsNo
workflow_idNo
claim_reviewNo
evidence_fitNo
total_errorsNo
evidence_gapsNo
mcp_next_callNo
mcp_next_toolNo
response_metaNo
source_reviewNo
evidence_countNo
action_boundaryNo
evidence_intakeNo
review_progressNoCurrent case-bound review progress and residual risks. Internal evidence planning may be explicitly unreviewed; pilot designs and review packets require a separate scoped account review. No scoring, source truth or external-action permission.
workflow_statusNo
decision_domainsNo
safe_next_actionNo
evidence_recoveryNo
receipt_validationNo
verification_basisNo
permission_positionNoAnalysis-level permission position: level, what may proceed internally, every blocking gate (all must clear), decisive reviews for the claim gate (each item holding it and the act that clears it) and the evidence whose review cannot clear it. External effects are evaluated only by /v1/authority-chain check_permission. Never execution permission.
workflow_expires_atNo
domain_routing_basisNoRouting basis, not a verified classification.
evidence_field_guideNoSelf-contained public evidence field types and unknown-metadata policy. Formatting guidance, not verification or authority.
external_use_ceilingNo
mvr_response_receiptNo
recommendation_scopeNo
required_user_inputsNo
stakeholder_coverageNo
evidence_requirementsNo
evidence_input_feedbackNo
continuation_dispositionNo
verified_source_familiesNo
receipt_evidence_findingsNo
unverified_evidence_countNo
reviewer_attestation_optionNoOptional contract discovery, never a required recovery step, executable handoff or purchase instruction.
validation_errors_truncatedNo
authenticated_verified_countNo
reviewer_attestation_contextNoCurrent case-bound account-linked assertions only. Recorded statements are untrusted content, not independent source truth, scoring inputs, evidence-gate clearance or action permission. References and secrets remain host-carried.
attestation_reference_handoffNoTop-level host instructions only, not an executable argument or workflow credential. Privately reattach the original consented references at the published input location without changing the exact bound case.
evidence_authentication_basisNo
caller_declared_verified_countNo
evidence_authentication_statusNo
declared_completeness_gate_passedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / permission_position / description
      Previous value: -"Analysis-level permission position: level, what may proceed internally, every blocking gate (all must clear), decisive reviews for the claim gate and evidence that cannot change it. External effects are evaluated only by /v1/authority-chain check_permission. Never execution permission."New value: +"Analysis-level permission position: level, what may proceed internally, every blocking gate (all must clear), decisive reviews for the claim gate (each item holding it and the act that clears it) and the evidence whose review cannot clear it. External effects are evaluated only by /v1/authority-chain check_permission. Never execution permission."
  2. Changed1 schema field changed
    • addedOutput schema / properties / permission_position
      Added value: +{
      +  "description": "Analysis-level permission position: level, what may proceed internally, every blocking gate (all must clear), decisive reviews for the claim gate and evidence that cannot change it. External effects are evaluated only by /v1/authority-chain check_permission. Never execution permission.",
      +  "properties": {
      +    "all_listed_gates_must_clear": {
      +      "type": "boolean"
      +    },
      +    "analysis_use_status": {
      +      "type": "string"
      +    },
      +    "blocking_gates": {
      +      "type": "array"
      +    },
      +    "cannot_change_the_claim_review": {
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "contract_version": {
      +      "const": "mvr.permission-position/1"
      +    },
      +    "execution_authorized": {
      +      "const": false
      +    },
      +    "external_effects": {
      +      "type": "string"
      +    },
      +    "narrowest_allowed_now": {
      +      "type": "array"
      +    },
      +    "scope": {
      +      "const": "analysis_output"
      +    },
      +    "tier": {
      +      "enum": [
      +        "prohibited",
      +        "not_permitted",
      +        "planning_only",
      +        "not_applicable"
      +      ]
      +    }
      +  },
      +  "type": "object"
      +}
  3. Changed5 schema fields changed
    • changedOutput schema / properties / claim_review / properties / issues / items / properties / code / description
      Previous value: -"Codes: FIELD_PROVENANCE_REQUIRED,FIELD_PROVENANCE_CONFLICT,FIELDWORK_CAPACITY_CONTRADICTION,SOURCE_INDEPENDENCE_CONTRADICTION,SOURCE_VERIFICATION_CONTRADICTION,FIELD_SOURCE_MODALITY_CONFLICT,DECISION_GEOGRAPHY_SCOPE_REQUIRED,DECISION_SCOPE_REQUIRED,DECISION_SCOPE_REVIEW_REQUIRED,DECISION_SCOPE_CROSS_CHECK_LIMIT,SOURCE_EXTRACTION_INVALID,SOURCE_EXTRACTION_REFERENCE_CONFLICT,ADVERSE_SOURCE_REVIEW_REQUIRED,INVALID_CLAIM_INPUT,OUTPUT_RECEIPT_NOT_REQUEST_AUTHORITY,ARTIFACT_ROLE_NOT_SOURCE_EVIDENCE. HTTP 422: details/validation_errors. Fix missing_fields; never invent or erase adverse facts. Checks do not authenticate sources or authorize action. /docs/mcp-integration.md."New value: +"Codes: FIELD_PROVENANCE_REQUIRED,FIELD_PROVENANCE_CONFLICT,FIELDWORK_CAPACITY_CONTRADICTION,SOURCE_INDEPENDENCE_CONTRADICTION,SOURCE_VERIFICATION_CONTRADICTION,FIELD_SOURCE_MODALITY_CONFLICT,DECISION_GEOGRAPHY_SCOPE_REQUIRED,DECISION_SCOPE_REQUIRED,DECISION_SCOPE_REVIEW_REQUIRED,DECISION_SCOPE_CROSS_CHECK_LIMIT,SOURCE_EXTRACTION_INVALID,SOURCE_EXTRACTION_REFERENCE_CONFLICT,ADVERSE_SOURCE_REVIEW_REQUIRED,INVALID_CLAIM_INPUT,OUTPUT_RECEIPT_NOT_REQUEST_AUTHORITY,ARTIFACT_ROLE_NOT_SOURCE_EVIDENCE. HTTP 422: details/validation_errors; fix missing_fields. Never invent facts. These codes do not authenticate sources or authorize action. /docs/mcp-integration.md."
    • changedOutput schema / properties / claim_review / properties / linkage_gaps / items / properties / code / description
      Previous value: -"Codes: FIELD_PROVENANCE_REQUIRED,FIELD_PROVENANCE_CONFLICT,FIELDWORK_CAPACITY_CONTRADICTION,SOURCE_INDEPENDENCE_CONTRADICTION,SOURCE_VERIFICATION_CONTRADICTION,FIELD_SOURCE_MODALITY_CONFLICT,DECISION_GEOGRAPHY_SCOPE_REQUIRED,DECISION_SCOPE_REQUIRED,DECISION_SCOPE_REVIEW_REQUIRED,DECISION_SCOPE_CROSS_CHECK_LIMIT,SOURCE_EXTRACTION_INVALID,SOURCE_EXTRACTION_REFERENCE_CONFLICT,ADVERSE_SOURCE_REVIEW_REQUIRED,INVALID_CLAIM_INPUT,OUTPUT_RECEIPT_NOT_REQUEST_AUTHORITY,ARTIFACT_ROLE_NOT_SOURCE_EVIDENCE. HTTP 422: details/validation_errors. Fix missing_fields; never invent or erase adverse facts. Checks do not authenticate sources or authorize action. /docs/mcp-integration.md."New value: +"Codes: FIELD_PROVENANCE_REQUIRED,FIELD_PROVENANCE_CONFLICT,FIELDWORK_CAPACITY_CONTRADICTION,SOURCE_INDEPENDENCE_CONTRADICTION,SOURCE_VERIFICATION_CONTRADICTION,FIELD_SOURCE_MODALITY_CONFLICT,DECISION_GEOGRAPHY_SCOPE_REQUIRED,DECISION_SCOPE_REQUIRED,DECISION_SCOPE_REVIEW_REQUIRED,DECISION_SCOPE_CROSS_CHECK_LIMIT,SOURCE_EXTRACTION_INVALID,SOURCE_EXTRACTION_REFERENCE_CONFLICT,ADVERSE_SOURCE_REVIEW_REQUIRED,INVALID_CLAIM_INPUT,OUTPUT_RECEIPT_NOT_REQUEST_AUTHORITY,ARTIFACT_ROLE_NOT_SOURCE_EVIDENCE. HTTP 422: details/validation_errors; fix missing_fields. Never invent facts. These codes do not authenticate sources or authorize action. /docs/mcp-integration.md."
    • changedOutput schema / properties / code / description
      Previous value: -"Codes: FIELD_PROVENANCE_REQUIRED,FIELD_PROVENANCE_CONFLICT,FIELDWORK_CAPACITY_CONTRADICTION,SOURCE_INDEPENDENCE_CONTRADICTION,SOURCE_VERIFICATION_CONTRADICTION,FIELD_SOURCE_MODALITY_CONFLICT,DECISION_GEOGRAPHY_SCOPE_REQUIRED,DECISION_SCOPE_REQUIRED,DECISION_SCOPE_REVIEW_REQUIRED,DECISION_SCOPE_CROSS_CHECK_LIMIT,SOURCE_EXTRACTION_INVALID,SOURCE_EXTRACTION_REFERENCE_CONFLICT,ADVERSE_SOURCE_REVIEW_REQUIRED,INVALID_CLAIM_INPUT,OUTPUT_RECEIPT_NOT_REQUEST_AUTHORITY,ARTIFACT_ROLE_NOT_SOURCE_EVIDENCE. HTTP 422: details/validation_errors. Fix missing_fields; never invent or erase adverse facts. Checks do not authenticate sources or authorize action. /docs/mcp-integration.md."New value: +"Codes: FIELD_PROVENANCE_REQUIRED,FIELD_PROVENANCE_CONFLICT,FIELDWORK_CAPACITY_CONTRADICTION,SOURCE_INDEPENDENCE_CONTRADICTION,SOURCE_VERIFICATION_CONTRADICTION,FIELD_SOURCE_MODALITY_CONFLICT,DECISION_GEOGRAPHY_SCOPE_REQUIRED,DECISION_SCOPE_REQUIRED,DECISION_SCOPE_REVIEW_REQUIRED,DECISION_SCOPE_CROSS_CHECK_LIMIT,SOURCE_EXTRACTION_INVALID,SOURCE_EXTRACTION_REFERENCE_CONFLICT,ADVERSE_SOURCE_REVIEW_REQUIRED,INVALID_CLAIM_INPUT,OUTPUT_RECEIPT_NOT_REQUEST_AUTHORITY,ARTIFACT_ROLE_NOT_SOURCE_EVIDENCE. HTTP 422: details/validation_errors; fix missing_fields. Never invent facts. These codes do not authenticate sources or authorize action. /docs/mcp-integration.md."
    • changedOutput schema / properties / evidence_fit / properties / issues / items / properties / code / description
      Previous value: -"Codes: FIELD_PROVENANCE_REQUIRED,FIELD_PROVENANCE_CONFLICT,FIELDWORK_CAPACITY_CONTRADICTION,SOURCE_INDEPENDENCE_CONTRADICTION,SOURCE_VERIFICATION_CONTRADICTION,FIELD_SOURCE_MODALITY_CONFLICT,DECISION_GEOGRAPHY_SCOPE_REQUIRED,DECISION_SCOPE_REQUIRED,DECISION_SCOPE_REVIEW_REQUIRED,DECISION_SCOPE_CROSS_CHECK_LIMIT,SOURCE_EXTRACTION_INVALID,SOURCE_EXTRACTION_REFERENCE_CONFLICT,ADVERSE_SOURCE_REVIEW_REQUIRED,INVALID_CLAIM_INPUT,OUTPUT_RECEIPT_NOT_REQUEST_AUTHORITY,ARTIFACT_ROLE_NOT_SOURCE_EVIDENCE. HTTP 422: details/validation_errors. Fix missing_fields; never invent or erase adverse facts. Checks do not authenticate sources or authorize action. /docs/mcp-integration.md."New value: +"Codes: FIELD_PROVENANCE_REQUIRED,FIELD_PROVENANCE_CONFLICT,FIELDWORK_CAPACITY_CONTRADICTION,SOURCE_INDEPENDENCE_CONTRADICTION,SOURCE_VERIFICATION_CONTRADICTION,FIELD_SOURCE_MODALITY_CONFLICT,DECISION_GEOGRAPHY_SCOPE_REQUIRED,DECISION_SCOPE_REQUIRED,DECISION_SCOPE_REVIEW_REQUIRED,DECISION_SCOPE_CROSS_CHECK_LIMIT,SOURCE_EXTRACTION_INVALID,SOURCE_EXTRACTION_REFERENCE_CONFLICT,ADVERSE_SOURCE_REVIEW_REQUIRED,INVALID_CLAIM_INPUT,OUTPUT_RECEIPT_NOT_REQUEST_AUTHORITY,ARTIFACT_ROLE_NOT_SOURCE_EVIDENCE. HTTP 422: details/validation_errors; fix missing_fields. Never invent facts. These codes do not authenticate sources or authorize action. /docs/mcp-integration.md."
    • changedOutput schema / properties / evidence_input_feedback / properties / issues / items / properties / code / description
      Previous value: -"Codes: FIELD_PROVENANCE_REQUIRED,FIELD_PROVENANCE_CONFLICT,FIELDWORK_CAPACITY_CONTRADICTION,SOURCE_INDEPENDENCE_CONTRADICTION,SOURCE_VERIFICATION_CONTRADICTION,FIELD_SOURCE_MODALITY_CONFLICT,DECISION_GEOGRAPHY_SCOPE_REQUIRED,DECISION_SCOPE_REQUIRED,DECISION_SCOPE_REVIEW_REQUIRED,DECISION_SCOPE_CROSS_CHECK_LIMIT,SOURCE_EXTRACTION_INVALID,SOURCE_EXTRACTION_REFERENCE_CONFLICT,ADVERSE_SOURCE_REVIEW_REQUIRED,INVALID_CLAIM_INPUT,OUTPUT_RECEIPT_NOT_REQUEST_AUTHORITY,ARTIFACT_ROLE_NOT_SOURCE_EVIDENCE. HTTP 422: details/validation_errors. Fix missing_fields; never invent or erase adverse facts. Checks do not authenticate sources or authorize action. /docs/mcp-integration.md."New value: +"Codes: FIELD_PROVENANCE_REQUIRED,FIELD_PROVENANCE_CONFLICT,FIELDWORK_CAPACITY_CONTRADICTION,SOURCE_INDEPENDENCE_CONTRADICTION,SOURCE_VERIFICATION_CONTRADICTION,FIELD_SOURCE_MODALITY_CONFLICT,DECISION_GEOGRAPHY_SCOPE_REQUIRED,DECISION_SCOPE_REQUIRED,DECISION_SCOPE_REVIEW_REQUIRED,DECISION_SCOPE_CROSS_CHECK_LIMIT,SOURCE_EXTRACTION_INVALID,SOURCE_EXTRACTION_REFERENCE_CONFLICT,ADVERSE_SOURCE_REVIEW_REQUIRED,INVALID_CLAIM_INPUT,OUTPUT_RECEIPT_NOT_REQUEST_AUTHORITY,ARTIFACT_ROLE_NOT_SOURCE_EVIDENCE. HTTP 422: details/validation_errors; fix missing_fields. Never invent facts. These codes do not authenticate sources or authorize action. /docs/mcp-integration.md."
  4. Changed4 schema fields changed
    • removedOutput schema / properties / evidence_gate_passed_semantics
      Removed value: -{
      -  "type": "string"
      -}
    • removedOutput schema / properties / verified_evidence_count
      Removed value: -{
      -  "deprecated": true,
      -  "type": "number"
      -}
    • removedOutput schema / properties / verified_evidence_count_semantics
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / x-default-field-contract
      Added value: +"authority-fields/2"
  5. Changed5 schema fields changed
    • removedOutput schema / properties / authenticated_verified_count / const
      Removed value: -0
    • addedOutput schema / properties / authenticated_verified_count / minimum
      Added value: +0
    • addedOutput schema / properties / authenticated_verified_count / type
      Added value: +"integer"
    • changedOutput schema / properties / evidence_authentication_status / enum
      Previous value: -[
      -  "not_authenticated"
      -]New value: +[
      +  "not_authenticated",
      +  "partially_authenticated"
      +]
    • addedOutput schema / properties / verified_evidence_count / deprecated
      Added value: +true
  6. Changed9 schema fields changed
    • addedOutput schema / properties / authenticated_verified_count
      Added value: +{
      +  "const": 0
      +}
    • addedOutput schema / properties / caller_declared_verified_count
      Added value: +{
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / declared_completeness_gate_passed
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / evidence_authentication_basis
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / evidence_authentication_status
      Added value: +{
      +  "enum": [
      +    "not_authenticated"
      +  ]
      +}
    • addedOutput schema / properties / evidence_gate_passed_semantics
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / external_use_ceiling
      Added value: +{
      +  "properties": {
      +    "capability_issued": {
      +      "const": false
      +    },
      +    "external_use_allowed": {
      +      "const": false
      +    },
      +    "max_capital_commitment_usd": {
      +      "const": 0
      +    }
      +  },
      +  "required": [
      +    "external_use_allowed",
      +    "capability_issued"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / recommendation_scope
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / verified_evidence_count_semantics
      Added value: +{
      +  "type": "string"
      +}
  7. Changed16 schema fields changed
    • changedInput schema / properties / payload / properties / evidence_items / items / properties / freshness_date / description
      Previous value: -"Compatibility alias for source_date; conflicting supplied dates require correction."New value: +"Compatibility alias for source_date, at the same declared precision. Exact dates/timestamps may name the same analysis-calendar day; conflicting aliases require correction. No source truth is established."
    • addedInput schema / properties / payload / properties / evidence_items / items / properties / freshness_date / maxLength
      Added value: +32
    • addedInput schema / properties / payload / properties / evidence_items / items / properties / freshness_date / minLength
      Added value: +4
    • changedInput schema / properties / payload / properties / evidence_items / items / properties / source_date / description
      Previous value: -"Declared source date, YYYY-MM-DD or ISO timestamp with timezone. Date validity and age can be checked; the source and current applicability remain unverified."New value: +"Declared source date at its actual precision: YYYY, YYYY-MM, YYYY-MM-DD, or ISO timestamp with seconds and timezone (up to 6 fractional digits). Years 0001-9999; real calendar dates only. Partial dates describe inclusive calendar bounds, never an invented day. Source truth and current applicability remain unverified."
    • addedInput schema / properties / payload / properties / evidence_items / items / properties / source_date / maxLength
      Added value: +32
    • addedInput schema / properties / payload / properties / evidence_items / items / properties / source_date / minLength
      Added value: +4
    • addedInput schema / properties / payload / properties / evidence_items / items / properties / source_date_range
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Optional inclusive declared bounds, usable without source_date. Both endpoints must have the same precision and be ordered. Every supplied source_date/freshness_date must contain the whole range; an exact timestamp cannot be widened. Aliases must agree before narrowing. Unknown dates are not clipped to the analysis date. Bounds are declarations, not source verification.",
      +  "properties": {
      +    "earliest": {
      +      "description": "Declared source date at its actual precision: YYYY, YYYY-MM, YYYY-MM-DD, or ISO timestamp with seconds and timezone (up to 6 fractional digits). Years 0001-9999; real calendar dates only. Partial dates describe inclusive calendar bounds, never an invented day. Source truth and current applicability remain unverified.",
      +      "maxLength": 32,
      +      "minLength": 4,
      +      "type": "string"
      +    },
      +    "latest": {
      +      "description": "Declared source date at its actual precision: YYYY, YYYY-MM, YYYY-MM-DD, or ISO timestamp with seconds and timezone (up to 6 fractional digits). Years 0001-9999; real calendar dates only. Partial dates describe inclusive calendar bounds, never an invented day. Source truth and current applicability remain unverified.",
      +      "maxLength": 32,
      +      "minLength": 4,
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "earliest",
      +    "latest"
      +  ],
      +  "type": "object"
      +}
    • changedInput schema / properties / payload / properties / evidence_pack / items / properties / freshness_date / description
      Previous value: -"Compatibility alias for source_date; conflicting supplied dates require correction."New value: +"Compatibility alias for source_date, at the same declared precision. Exact dates/timestamps may name the same analysis-calendar day; conflicting aliases require correction. No source truth is established."
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / freshness_date / maxLength
      Added value: +32
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / freshness_date / minLength
      Added value: +4
    • changedInput schema / properties / payload / properties / evidence_pack / items / properties / source_date / description
      Previous value: -"Declared source date, YYYY-MM-DD or ISO timestamp with timezone. Date validity and age can be checked; the source and current applicability remain unverified."New value: +"Declared source date at its actual precision: YYYY, YYYY-MM, YYYY-MM-DD, or ISO timestamp with seconds and timezone (up to 6 fractional digits). Years 0001-9999; real calendar dates only. Partial dates describe inclusive calendar bounds, never an invented day. Source truth and current applicability remain unverified."
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / source_date / maxLength
      Added value: +32
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / source_date / minLength
      Added value: +4
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / source_date_range
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Optional inclusive declared bounds, usable without source_date. Both endpoints must have the same precision and be ordered. Every supplied source_date/freshness_date must contain the whole range; an exact timestamp cannot be widened. Aliases must agree before narrowing. Unknown dates are not clipped to the analysis date. Bounds are declarations, not source verification.",
      +  "properties": {
      +    "earliest": {
      +      "description": "Declared source date at its actual precision: YYYY, YYYY-MM, YYYY-MM-DD, or ISO timestamp with seconds and timezone (up to 6 fractional digits). Years 0001-9999; real calendar dates only. Partial dates describe inclusive calendar bounds, never an invented day. Source truth and current applicability remain unverified.",
      +      "maxLength": 32,
      +      "minLength": 4,
      +      "type": "string"
      +    },
      +    "latest": {
      +      "description": "Declared source date at its actual precision: YYYY, YYYY-MM, YYYY-MM-DD, or ISO timestamp with seconds and timezone (up to 6 fractional digits). Years 0001-9999; real calendar dates only. Partial dates describe inclusive calendar bounds, never an invented day. Source truth and current applicability remain unverified.",
      +      "maxLength": 32,
      +      "minLength": 4,
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "earliest",
      +    "latest"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / action_boundary
      Added value: +{
      +  "additionalProperties": false,
      +  "oneOf": [
      +    {
      +      "properties": {
      +        "allowed_effects": {
      +          "const": [
      +            "read_only_assessment"
      +          ]
      +        },
      +        "decision_state": {
      +          "enum": [
      +            "assessment_in_progress"
      +          ]
      +        },
      +        "next_safe_action": {
      +          "properties": {
      +            "availability": {
      +              "const": "exact_server_handoff"
      +            },
      +            "handoff_source": {
      +              "const": "mcp_next_call"
      +            },
      +            "required_host_inputs": {
      +              "const": []
      +            },
      +            "type": {
      +              "enum": [
      +                "continue_evidence_assessment"
      +              ]
      +            }
      +          }
      +        },
      +        "stop": {
      +          "properties": {
      +            "analytical_chain_required": {
      +              "const": false
      +            }
      +          }
      +        }
      +      }
      +    },
      +    {
      +      "properties": {
      +        "allowed_effects": {
      +          "const": [
      +            "versioned_internal_plan"
      +          ]
      +        },
      +        "decision_state": {
      +          "enum": [
      +            "abstain_pending_evidence",
      +            "assessment_completed"
      +          ]
      +        },
      +        "next_safe_action": {
      +          "properties": {
      +            "availability": {
      +              "const": "authenticated_case_handoff"
      +            },
      +            "handoff_source": {
      +              "const": "review_progress.bounded_next_actions"
      +            },
      +            "required_host_inputs": {
      +              "const": [
      +                "current_case",
      +                "expected_revision",
      +                "operation_id"
      +              ]
      +            },
      +            "type": {
      +              "enum": [
      +                "evidence_collection_design",
      +                "internal_pilot_design"
      +              ]
      +            }
      +          }
      +        },
      +        "stop": {
      +          "properties": {
      +            "analytical_chain_required": {
      +              "const": true
      +            }
      +          }
      +        }
      +      }
      +    },
      +    {
      +      "properties": {
      +        "allowed_effects": {
      +          "const": []
      +        },
      +        "decision_state": {
      +          "enum": [
      +            "outside_declared_mvr_scope"
      +          ]
      +        },
      +        "next_safe_action": {
      +          "properties": {
      +            "availability": {
      +              "const": "routing_only_not_permission"
      +            },
      +            "handoff_source": {
      +              "const": null
      +            },
      +            "required_host_inputs": {
      +              "const": []
      +            },
      +            "type": {
      +              "enum": [
      +                "ordinary_task_outside_mvr"
      +              ]
      +            }
      +          }
      +        },
      +        "stop": {
      +          "properties": {
      +            "analytical_chain_required": {
      +              "const": true
      +            }
      +          }
      +        }
      +      }
      +    },
      +    {
      +      "properties": {
      +        "allowed_effects": {
      +          "const": []
      +        },
      +        "decision_state": {
      +          "enum": [
      +            "blocked_invalid_or_unavailable"
      +          ]
      +        },
      +        "next_safe_action": {
      +          "properties": {
      +            "availability": {
      +              "const": "blocked"
      +            },
      +            "handoff_source": {
      +              "const": null
      +            },
      +            "required_host_inputs": {
      +              "const": [
      +                "valid_input_and_current_state"
      +              ]
      +            },
      +            "type": {
      +              "enum": [
      +                "correct_input_or_restore_current_state"
      +              ]
      +            }
      +          }
      +        },
      +        "stop": {
      +          "properties": {
      +            "analytical_chain_required": {
      +              "const": true
      +            }
      +          }
      +        }
      +      }
      +    },
      +    {
      +      "properties": {
      +        "allowed_effects": {
      +          "const": [
      +            "local_internal_draft"
      +          ]
      +        },
      +        "decision_state": {
      +          "enum": [
      +            "abstain_pending_evidence",
      +            "assessment_completed"
      +          ]
      +        },
      +        "next_safe_action": {
      +          "properties": {
      +            "availability": {
      +              "const": "draft_only_no_external_effect"
      +            },
      +            "handoff_source": {
      +              "const": null
      +            },
      +            "required_host_inputs": {
      +              "const": [
      +                "human_review_of_unknowns"
      +              ]
      +            },
      +            "type": {
      +              "enum": [
      +                "internal_evidence_plan"
      +              ]
      +            }
      +          }
      +        },
      +        "stop": {
      +          "properties": {
      +            "analytical_chain_required": {
      +              "const": true
      +            }
      +          }
      +        }
      +      }
      +    }
      +  ],
      +  "properties": {
      +    "allowed_effects": {},
      +    "capability_issued": {
      +      "const": false
      +    },
      +    "contract_version": {
      +      "const": "mvr.preflight-action-boundary/1"
      +    },
      +    "customer_launch_allowed": {
      +      "const": false
      +    },
      +    "decision_state": {},
      +    "execution_authorized": {
      +      "const": false
      +    },
      +    "external_action_authorized": {
      +      "const": false
      +    },
      +    "external_contact_allowed": {
      +      "const": false
      +    },
      +    "forbidden_effects": {
      +      "const": [
      +        "spend",
      +        "external_contact",
      +        "contract",
      +        "customer_launch",
      +        "pilot_execution",
      +        "payment",
      +        "deployment"
      +      ]
      +    },
      +    "historical_output_is_not_current_permission": {
      +      "const": true
      +    },
      +    "max_capital_commitment_usd": {
      +      "const": 0
      +    },
      +    "next_safe_action": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "availability": {},
      +        "handoff_source": {},
      +        "required_host_inputs": {},
      +        "type": {}
      +      },
      +      "required": [
      +        "type",
      +        "availability",
      +        "required_host_inputs",
      +        "handoff_source"
      +      ],
      +      "type": "object"
      +    },
      +    "revalidate_before_effect": {
      +      "const": true
      +    },
      +    "stop": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "analytical_chain_required": {},
      +        "applies_to": {
      +          "const": "all_consequential_external_actions"
      +        },
      +        "reason_codes": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "required": {
      +          "const": true
      +        },
      +        "unknown_risks_remain": {
      +          "const": true
      +        }
      +      },
      +      "required": [
      +        "required",
      +        "applies_to",
      +        "analytical_chain_required",
      +        "reason_codes",
      +        "unknown_risks_remain"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "contract_version",
      +    "decision_state",
      +    "next_safe_action",
      +    "stop",
      +    "allowed_effects",
      +    "forbidden_effects",
      +    "max_capital_commitment_usd",
      +    "external_contact_allowed",
      +    "customer_launch_allowed",
      +    "revalidate_before_effect",
      +    "historical_output_is_not_current_permission",
      +    "execution_authorized",
      +    "external_action_authorized",
      +    "capability_issued"
      +  ],
      +  "type": "object"
      +}
    • changedOutput schema / properties / review_progress / description
      Previous value: -"Current case-bound procedural review progress and residual risks. Only a bounded internal review-packet action can become available; never scoring, source truth or external-action permission."New value: +"Current case-bound review progress and residual risks. Internal evidence planning may be explicitly unreviewed; pilot designs and review packets require a separate scoped account review. No scoring, source truth or external-action permission."
  8. Changed7 schema fields changed
    • addedInput schema / properties / payload / properties / review_case_ref
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Host-private, case-bound read reference. Never put its secret into prompts, URLs, logs or exports. Grants no write or action authority.",
      +  "properties": {
      +    "case_id": {
      +      "pattern": "^RC-[a-f0-9]{64}$",
      +      "type": "string"
      +    },
      +    "reference_secret": {
      +      "pattern": "^[a-f0-9]{64}$",
      +      "type": "string",
      +      "writeOnly": true
      +    },
      +    "tenant_id": {
      +      "maxLength": 200,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "workspace_id": {
      +      "maxLength": 200,
      +      "minLength": 1,
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "case_id",
      +    "tenant_id",
      +    "workspace_id",
      +    "reference_secret"
      +  ],
      +  "type": "object",
      +  "writeOnly": true
      +}
    • changedOutput schema / properties / claim_review / properties / issues / items / properties / code / description
      Previous value: -"Codes: FIELD_PROVENANCE_REQUIRED, FIELD_PROVENANCE_CONFLICT, FIELDWORK_CAPACITY_CONTRADICTION, SOURCE_INDEPENDENCE_CONTRADICTION, SOURCE_VERIFICATION_CONTRADICTION, FIELD_SOURCE_MODALITY_CONFLICT, DECISION_GEOGRAPHY_SCOPE_REQUIRED, DECISION_SCOPE_REQUIRED, DECISION_SCOPE_REVIEW_REQUIRED, DECISION_SCOPE_CROSS_CHECK_LIMIT, SOURCE_EXTRACTION_INVALID, SOURCE_EXTRACTION_REFERENCE_CONFLICT, ADVERSE_SOURCE_REVIEW_REQUIRED, INVALID_CLAIM_INPUT, OUTPUT_RECEIPT_NOT_REQUEST_AUTHORITY, ARTIFACT_ROLE_NOT_SOURCE_EVIDENCE. Correct indexed evidence_input_feedback/evidence_fit paths and missing_fields against originals. INVALID_CLAIM_INPUT is HTTP 422 on claim-consuming REST routes; correct root or decision_result claim/citation paths in details/validation_errors without deleting adverse evidence. Never invent or relabel facts. Explicit adverse states need review, not approved support. These checks do not authenticate sources or authorize action. Recovery: /docs/mcp-integration.md."New value: +"Codes: FIELD_PROVENANCE_REQUIRED,FIELD_PROVENANCE_CONFLICT,FIELDWORK_CAPACITY_CONTRADICTION,SOURCE_INDEPENDENCE_CONTRADICTION,SOURCE_VERIFICATION_CONTRADICTION,FIELD_SOURCE_MODALITY_CONFLICT,DECISION_GEOGRAPHY_SCOPE_REQUIRED,DECISION_SCOPE_REQUIRED,DECISION_SCOPE_REVIEW_REQUIRED,DECISION_SCOPE_CROSS_CHECK_LIMIT,SOURCE_EXTRACTION_INVALID,SOURCE_EXTRACTION_REFERENCE_CONFLICT,ADVERSE_SOURCE_REVIEW_REQUIRED,INVALID_CLAIM_INPUT,OUTPUT_RECEIPT_NOT_REQUEST_AUTHORITY,ARTIFACT_ROLE_NOT_SOURCE_EVIDENCE. HTTP 422: details/validation_errors. Fix missing_fields; never invent or erase adverse facts. Checks do not authenticate sources or authorize action. /docs/mcp-integration.md."
    • changedOutput schema / properties / claim_review / properties / linkage_gaps / items / properties / code / description
      Previous value: -"Codes: FIELD_PROVENANCE_REQUIRED, FIELD_PROVENANCE_CONFLICT, FIELDWORK_CAPACITY_CONTRADICTION, SOURCE_INDEPENDENCE_CONTRADICTION, SOURCE_VERIFICATION_CONTRADICTION, FIELD_SOURCE_MODALITY_CONFLICT, DECISION_GEOGRAPHY_SCOPE_REQUIRED, DECISION_SCOPE_REQUIRED, DECISION_SCOPE_REVIEW_REQUIRED, DECISION_SCOPE_CROSS_CHECK_LIMIT, SOURCE_EXTRACTION_INVALID, SOURCE_EXTRACTION_REFERENCE_CONFLICT, ADVERSE_SOURCE_REVIEW_REQUIRED, INVALID_CLAIM_INPUT, OUTPUT_RECEIPT_NOT_REQUEST_AUTHORITY, ARTIFACT_ROLE_NOT_SOURCE_EVIDENCE. Correct indexed evidence_input_feedback/evidence_fit paths and missing_fields against originals. INVALID_CLAIM_INPUT is HTTP 422 on claim-consuming REST routes; correct root or decision_result claim/citation paths in details/validation_errors without deleting adverse evidence. Never invent or relabel facts. Explicit adverse states need review, not approved support. These checks do not authenticate sources or authorize action. Recovery: /docs/mcp-integration.md."New value: +"Codes: FIELD_PROVENANCE_REQUIRED,FIELD_PROVENANCE_CONFLICT,FIELDWORK_CAPACITY_CONTRADICTION,SOURCE_INDEPENDENCE_CONTRADICTION,SOURCE_VERIFICATION_CONTRADICTION,FIELD_SOURCE_MODALITY_CONFLICT,DECISION_GEOGRAPHY_SCOPE_REQUIRED,DECISION_SCOPE_REQUIRED,DECISION_SCOPE_REVIEW_REQUIRED,DECISION_SCOPE_CROSS_CHECK_LIMIT,SOURCE_EXTRACTION_INVALID,SOURCE_EXTRACTION_REFERENCE_CONFLICT,ADVERSE_SOURCE_REVIEW_REQUIRED,INVALID_CLAIM_INPUT,OUTPUT_RECEIPT_NOT_REQUEST_AUTHORITY,ARTIFACT_ROLE_NOT_SOURCE_EVIDENCE. HTTP 422: details/validation_errors. Fix missing_fields; never invent or erase adverse facts. Checks do not authenticate sources or authorize action. /docs/mcp-integration.md."
    • changedOutput schema / properties / code / description
      Previous value: -"Codes: FIELD_PROVENANCE_REQUIRED, FIELD_PROVENANCE_CONFLICT, FIELDWORK_CAPACITY_CONTRADICTION, SOURCE_INDEPENDENCE_CONTRADICTION, SOURCE_VERIFICATION_CONTRADICTION, FIELD_SOURCE_MODALITY_CONFLICT, DECISION_GEOGRAPHY_SCOPE_REQUIRED, DECISION_SCOPE_REQUIRED, DECISION_SCOPE_REVIEW_REQUIRED, DECISION_SCOPE_CROSS_CHECK_LIMIT, SOURCE_EXTRACTION_INVALID, SOURCE_EXTRACTION_REFERENCE_CONFLICT, ADVERSE_SOURCE_REVIEW_REQUIRED, INVALID_CLAIM_INPUT, OUTPUT_RECEIPT_NOT_REQUEST_AUTHORITY, ARTIFACT_ROLE_NOT_SOURCE_EVIDENCE. Correct indexed evidence_input_feedback/evidence_fit paths and missing_fields against originals. INVALID_CLAIM_INPUT is HTTP 422 on claim-consuming REST routes; correct root or decision_result claim/citation paths in details/validation_errors without deleting adverse evidence. Never invent or relabel facts. Explicit adverse states need review, not approved support. These checks do not authenticate sources or authorize action. Recovery: /docs/mcp-integration.md."New value: +"Codes: FIELD_PROVENANCE_REQUIRED,FIELD_PROVENANCE_CONFLICT,FIELDWORK_CAPACITY_CONTRADICTION,SOURCE_INDEPENDENCE_CONTRADICTION,SOURCE_VERIFICATION_CONTRADICTION,FIELD_SOURCE_MODALITY_CONFLICT,DECISION_GEOGRAPHY_SCOPE_REQUIRED,DECISION_SCOPE_REQUIRED,DECISION_SCOPE_REVIEW_REQUIRED,DECISION_SCOPE_CROSS_CHECK_LIMIT,SOURCE_EXTRACTION_INVALID,SOURCE_EXTRACTION_REFERENCE_CONFLICT,ADVERSE_SOURCE_REVIEW_REQUIRED,INVALID_CLAIM_INPUT,OUTPUT_RECEIPT_NOT_REQUEST_AUTHORITY,ARTIFACT_ROLE_NOT_SOURCE_EVIDENCE. HTTP 422: details/validation_errors. Fix missing_fields; never invent or erase adverse facts. Checks do not authenticate sources or authorize action. /docs/mcp-integration.md."
    • changedOutput schema / properties / evidence_fit / properties / issues / items / properties / code / description
      Previous value: -"Codes: FIELD_PROVENANCE_REQUIRED, FIELD_PROVENANCE_CONFLICT, FIELDWORK_CAPACITY_CONTRADICTION, SOURCE_INDEPENDENCE_CONTRADICTION, SOURCE_VERIFICATION_CONTRADICTION, FIELD_SOURCE_MODALITY_CONFLICT, DECISION_GEOGRAPHY_SCOPE_REQUIRED, DECISION_SCOPE_REQUIRED, DECISION_SCOPE_REVIEW_REQUIRED, DECISION_SCOPE_CROSS_CHECK_LIMIT, SOURCE_EXTRACTION_INVALID, SOURCE_EXTRACTION_REFERENCE_CONFLICT, ADVERSE_SOURCE_REVIEW_REQUIRED, INVALID_CLAIM_INPUT, OUTPUT_RECEIPT_NOT_REQUEST_AUTHORITY, ARTIFACT_ROLE_NOT_SOURCE_EVIDENCE. Correct indexed evidence_input_feedback/evidence_fit paths and missing_fields against originals. INVALID_CLAIM_INPUT is HTTP 422 on claim-consuming REST routes; correct root or decision_result claim/citation paths in details/validation_errors without deleting adverse evidence. Never invent or relabel facts. Explicit adverse states need review, not approved support. These checks do not authenticate sources or authorize action. Recovery: /docs/mcp-integration.md."New value: +"Codes: FIELD_PROVENANCE_REQUIRED,FIELD_PROVENANCE_CONFLICT,FIELDWORK_CAPACITY_CONTRADICTION,SOURCE_INDEPENDENCE_CONTRADICTION,SOURCE_VERIFICATION_CONTRADICTION,FIELD_SOURCE_MODALITY_CONFLICT,DECISION_GEOGRAPHY_SCOPE_REQUIRED,DECISION_SCOPE_REQUIRED,DECISION_SCOPE_REVIEW_REQUIRED,DECISION_SCOPE_CROSS_CHECK_LIMIT,SOURCE_EXTRACTION_INVALID,SOURCE_EXTRACTION_REFERENCE_CONFLICT,ADVERSE_SOURCE_REVIEW_REQUIRED,INVALID_CLAIM_INPUT,OUTPUT_RECEIPT_NOT_REQUEST_AUTHORITY,ARTIFACT_ROLE_NOT_SOURCE_EVIDENCE. HTTP 422: details/validation_errors. Fix missing_fields; never invent or erase adverse facts. Checks do not authenticate sources or authorize action. /docs/mcp-integration.md."
    • changedOutput schema / properties / evidence_input_feedback / properties / issues / items / properties / code / description
      Previous value: -"Codes: FIELD_PROVENANCE_REQUIRED, FIELD_PROVENANCE_CONFLICT, FIELDWORK_CAPACITY_CONTRADICTION, SOURCE_INDEPENDENCE_CONTRADICTION, SOURCE_VERIFICATION_CONTRADICTION, FIELD_SOURCE_MODALITY_CONFLICT, DECISION_GEOGRAPHY_SCOPE_REQUIRED, DECISION_SCOPE_REQUIRED, DECISION_SCOPE_REVIEW_REQUIRED, DECISION_SCOPE_CROSS_CHECK_LIMIT, SOURCE_EXTRACTION_INVALID, SOURCE_EXTRACTION_REFERENCE_CONFLICT, ADVERSE_SOURCE_REVIEW_REQUIRED, INVALID_CLAIM_INPUT, OUTPUT_RECEIPT_NOT_REQUEST_AUTHORITY, ARTIFACT_ROLE_NOT_SOURCE_EVIDENCE. Correct indexed evidence_input_feedback/evidence_fit paths and missing_fields against originals. INVALID_CLAIM_INPUT is HTTP 422 on claim-consuming REST routes; correct root or decision_result claim/citation paths in details/validation_errors without deleting adverse evidence. Never invent or relabel facts. Explicit adverse states need review, not approved support. These checks do not authenticate sources or authorize action. Recovery: /docs/mcp-integration.md."New value: +"Codes: FIELD_PROVENANCE_REQUIRED,FIELD_PROVENANCE_CONFLICT,FIELDWORK_CAPACITY_CONTRADICTION,SOURCE_INDEPENDENCE_CONTRADICTION,SOURCE_VERIFICATION_CONTRADICTION,FIELD_SOURCE_MODALITY_CONFLICT,DECISION_GEOGRAPHY_SCOPE_REQUIRED,DECISION_SCOPE_REQUIRED,DECISION_SCOPE_REVIEW_REQUIRED,DECISION_SCOPE_CROSS_CHECK_LIMIT,SOURCE_EXTRACTION_INVALID,SOURCE_EXTRACTION_REFERENCE_CONFLICT,ADVERSE_SOURCE_REVIEW_REQUIRED,INVALID_CLAIM_INPUT,OUTPUT_RECEIPT_NOT_REQUEST_AUTHORITY,ARTIFACT_ROLE_NOT_SOURCE_EVIDENCE. HTTP 422: details/validation_errors. Fix missing_fields; never invent or erase adverse facts. Checks do not authenticate sources or authorize action. /docs/mcp-integration.md."
    • addedOutput schema / properties / review_progress
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Current case-bound procedural review progress and residual risks. Only a bounded internal review-packet action can become available; never scoring, source truth or external-action permission.",
      +  "properties": {
      +    "contract_version": {
      +      "const": "mvr.review-progress/1"
      +    },
      +    "execution_authorized": {
      +      "const": false
      +    },
      +    "external_action_authorized": {
      +      "const": false
      +    },
      +    "scoring_eligible": {
      +      "const": false
      +    }
      +  },
      +  "type": "object"
      +}
  9. Changed3 schema fields changed
    • changedInput schema / properties / payload / properties / attestation_refs / description
      Previous value: -"Case-bound reviewer assertions, not proof, scoring or permission. Keep bearer references host-private; reattach only for the same case. Keep references outside evidence containers. Hosts must preserve /attestation_refs privately and reattach it to the request payload on each continuation or recheck; echoed handoffs omit these secrets."New value: +"Optional: https://africanmarketos.com/v1/reviewer-attestations/contract. Requires exact subject, market_scope.country and decision_question. Host-private refs outside evidence; reattach each call. No scoring or authority."
    • addedInput schema / properties / payload / properties / decision_question
      Added value: +{
      +  "description": "Exact recorded attestation question; question must agree when supplied.",
      +  "maxLength": 2000,
      +  "type": "string"
      +}
    • addedInput schema / properties / payload / properties / subject / properties / entity_id
      Added value: +{
      +  "type": "string"
      +}
  10. Changed5 schema fields changed
    • addedInput schema / properties / payload / properties / attestation_refs
      Added value: +{
      +  "description": "Case-bound reviewer assertions, not proof, scoring or permission. Keep bearer references host-private; reattach only for the same case. Keep references outside evidence containers. Hosts must preserve /attestation_refs privately and reattach it to the request payload on each continuation or recheck; echoed handoffs omit these secrets.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "attestation_id": {
      +        "pattern": "^ATT-[a-f0-9]{64}$",
      +        "type": "string"
      +      },
      +      "reference_secret": {
      +        "description": "256-bit random bearer secret. Keep host-private, out of URLs/logs/prompts/exports; grants shared context, not authority.",
      +        "pattern": "^[a-f0-9]{64}$",
      +        "type": "string",
      +        "writeOnly": true
      +      },
      +      "tenant_id": {
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "workspace_id": {
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "attestation_id",
      +      "tenant_id",
      +      "workspace_id",
      +      "reference_secret"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 3,
      +  "type": "array",
      +  "writeOnly": true
      +}
    • addedOutput schema / properties / attestation_reference_handoff
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Top-level host instructions only, not an executable argument or workflow credential. Privately reattach the original consented references at the published input location without changing the exact bound case.",
      +  "properties": {
      +    "copy_from_request": {
      +      "const": "/attestation_refs"
      +    },
      +    "exact_scope_required": {
      +      "const": true
      +    },
      +    "host_must_carry_privately": {
      +      "const": true
      +    },
      +    "missing_reference_does_not_restore_context": {
      +      "const": true
      +    }
      +  },
      +  "required": [
      +    "copy_from_request",
      +    "host_must_carry_privately",
      +    "exact_scope_required",
      +    "missing_reference_does_not_restore_context"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / evidence_recovery
      Added value: +{
      +  "properties": {
      +    "reviewer_attestation_option": {
      +      "additionalProperties": false,
      +      "description": "Optional contract discovery, never a required recovery step, executable handoff or purchase instruction.",
      +      "properties": {
      +        "automatic_action_authorized": {
      +          "const": false
      +        },
      +        "boundary": {
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "contract_url": {
      +          "format": "uri",
      +          "type": "string"
      +        },
      +        "optional": {
      +          "const": true
      +        },
      +        "required_for_continuation": {
      +          "const": false
      +        }
      +      },
      +      "required": [
      +        "contract_url",
      +        "optional",
      +        "required_for_continuation",
      +        "automatic_action_authorized",
      +        "boundary"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / reviewer_attestation_context
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Current case-bound account-linked assertions only. Recorded statements are untrusted content, not independent source truth, scoring inputs, evidence-gate clearance or action permission. References and secrets remain host-carried.",
      +  "properties": {
      +    "assessment_state_unchanged": {
      +      "const": true
      +    },
      +    "capability_issued": {
      +      "const": false
      +    },
      +    "checked_at": {
      +      "description": "Time current attestation state was checked; historical outputs are not recalled by revocation.",
      +      "type": "string"
      +    },
      +    "code": {
      +      "description": "Resolution failure code, not an evidence verdict.",
      +      "type": "string"
      +    },
      +    "consistency_scope": {
      +      "type": "string"
      +    },
      +    "contract_version": {
      +      "const": "mvr.reviewer-attestation/1"
      +    },
      +    "evidence_gates_changed": {
      +      "const": false
      +    },
      +    "execution_authorized": {
      +      "const": false
      +    },
      +    "independent_verification_established": {
      +      "const": false
      +    },
      +    "interpretation": {
      +      "description": "Account linkage does not verify the assertion, source, reviewer independence or permission.",
      +      "type": "string"
      +    },
      +    "items": {
      +      "description": "Redacted account-linked statements or unavailable-reference diagnostics. No reviewer names, private notes, source documents or reference secrets.",
      +      "items": {
      +        "type": "object"
      +      },
      +      "maxItems": 3,
      +      "type": "array"
      +    },
      +    "next_step_options": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "external_action_authorized": {
      +            "const": false
      +          },
      +          "kind": {
      +            "enum": [
      +              "internal_draft",
      +              "evidence_collection_plan"
      +            ],
      +            "type": "string"
      +          },
      +          "task": {
      +            "description": "Internal drafting or evidence-plan suggestion only; no external contact, commitment, payment or deployment.",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "kind",
      +          "task",
      +          "external_action_authorized"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "recorded_statements_are_untrusted_content": {
      +      "const": true
      +    },
      +    "reference_secrets_returned": {
      +      "const": false
      +    },
      +    "scoring_inputs_added": {
      +      "const": false
      +    },
      +    "source_authenticity_verified": {
      +      "const": false
      +    },
      +    "status": {
      +      "enum": [
      +        "attested_context_available",
      +        "attested_context_unavailable"
      +      ],
      +      "type": "string"
      +    },
      +    "system_residual_gaps": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "contract_version",
      +    "status",
      +    "assessment_state_unchanged",
      +    "evidence_gates_changed",
      +    "scoring_inputs_added",
      +    "execution_authorized",
      +    "capability_issued",
      +    "source_authenticity_verified",
      +    "independent_verification_established",
      +    "recorded_statements_are_untrusted_content",
      +    "system_residual_gaps",
      +    "reference_secrets_returned",
      +    "items",
      +    "next_step_options"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / reviewer_attestation_option
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Optional contract discovery, never a required recovery step, executable handoff or purchase instruction.",
      +  "properties": {
      +    "automatic_action_authorized": {
      +      "const": false
      +    },
      +    "boundary": {
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "contract_url": {
      +      "format": "uri",
      +      "type": "string"
      +    },
      +    "optional": {
      +      "const": true
      +    },
      +    "required_for_continuation": {
      +      "const": false
      +    }
      +  },
      +  "required": [
      +    "contract_url",
      +    "optional",
      +    "required_for_continuation",
      +    "automatic_action_authorized",
      +    "boundary"
      +  ],
      +  "type": "object"
      +}
  11. Changed32 schema fields changed
    • changedInput schema / properties / payload / properties / evidence_items / items / properties / collection_context / description
      Previous value: -"Source-grounded collection declarations, not source authentication. Unknown facts must remain missing; do not invent values to pass. Field decision use requires source modality, collector relationship, interview mode, source-document identity and an explicit parent-source list. Individual face-to-face/telephone collection also requires staffing, duration, total available minutes per collector and sample size. Independent verification labels require a separate reviewer relationship; persisted review is still checked separately."New value: +"Source-grounded collection declarations, not source authentication. Unknown facts must remain missing; do not invent values to pass. Field decision use requires source modality, collector relationship, interview mode, source-document identity and an explicit parent-source list. Collector-administered modes require staffing, duration, available minutes per collector and sample size. Group modes additionally require session_count, participants_per_session, session_duration_minutes and collectors_per_session, never inferred from an individual interview duration. Online, observation and administrative_record modes require collection_administration; self-administered online and automated observation/record sources do not need invented collector capacity. Explicit public/documentary origins are not caller fieldwork solely because evidence_type is survey; conflicting explicit field origins still block. Independent verification labels require a separate reviewer relationship; persisted review is still checked separately."
    • addedInput schema / properties / payload / properties / evidence_items / items / properties / collection_context / properties / collection_administration
      Added value: +{
      +  "description": "Source-grounded administration, required for online, observation and administrative_record modes. self_administered is supported for online; automated for observation or administrative_record. Face-to-face, telephone and group modes are collector-administered and cannot opt out.",
      +  "enum": [
      +    "collector_administered",
      +    "self_administered",
      +    "automated",
      +    "unknown"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / payload / properties / evidence_items / items / properties / collection_context / properties / collectors_per_session
      Added value: +{
      +  "description": "Collectors required concurrently for each group session, drawn from enumerator_count. No default facilitator count is assumed.",
      +  "maximum": 9007199254740991,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / payload / properties / evidence_items / items / properties / collection_context / properties / interview_duration_minutes / description
      Added value: +"Collector time per individual interview or per observed/processed sample record for collector-administered non-group modes."
    • addedInput schema / properties / payload / properties / evidence_items / items / properties / collection_context / properties / participants_per_session
      Added value: +{
      +  "description": "Source-grounded maximum participants in any session. Sample size cannot exceed session_count times this bound; no default group size is assumed.",
      +  "maximum": 9007199254740991,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / payload / properties / evidence_items / items / properties / collection_context / properties / session_count
      Added value: +{
      +  "description": "Actual number of group sessions in the source records.",
      +  "maximum": 9007199254740991,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / payload / properties / evidence_items / items / properties / collection_context / properties / session_duration_minutes
      Added value: +{
      +  "description": "Source-recorded duration of each group session in this declaration, not an alias for individual interview duration.",
      +  "exclusiveMinimum": 0,
      +  "type": "number"
      +}
    • addedInput schema / properties / payload / properties / evidence_items / items / properties / collection_context / properties / source_extraction
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Optional caller-supplied second reading of source facts for conflict comparison only. Not independently authenticated; cannot supply missing primary declarations or establish source authenticity.",
      +  "properties": {
      +    "fields": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "collection_administration": {
      +          "description": "Source-grounded administration, required for online, observation and administrative_record modes. self_administered is supported for online; automated for observation or administrative_record. Face-to-face, telephone and group modes are collector-administered and cannot opt out.",
      +          "enum": [
      +            "collector_administered",
      +            "self_administered",
      +            "automated",
      +            "unknown"
      +          ],
      +          "type": "string"
      +        },
      +        "collector_relationship": {
      +          "enum": [
      +            "independent",
      +            "employee",
      +            "company_staff",
      +            "internal",
      +            "contractor",
      +            "partner",
      +            "self_collected",
      +            "unknown"
      +          ],
      +          "type": "string"
      +        },
      +        "collectors_per_session": {
      +          "description": "Collectors required concurrently for each group session, drawn from enumerator_count. No default facilitator count is assumed.",
      +          "maximum": 9007199254740991,
      +          "minimum": 1,
      +          "type": "integer"
      +        },
      +        "enumerator_count": {
      +          "maximum": 9007199254740991,
      +          "minimum": 1,
      +          "type": "integer"
      +        },
      +        "fieldwork_window_minutes": {
      +          "description": "Total available collection minutes per collector across the entire period, not daily or team-person-minutes.",
      +          "exclusiveMinimum": 0,
      +          "type": "number"
      +        },
      +        "interview_duration_minutes": {
      +          "description": "Collector time per individual interview or per observed/processed sample record for collector-administered non-group modes.",
      +          "exclusiveMinimum": 0,
      +          "type": "number"
      +        },
      +        "interview_mode": {
      +          "enum": [
      +            "face_to_face",
      +            "telephone",
      +            "online",
      +            "focus_group",
      +            "group_interview",
      +            "observation",
      +            "administrative_record",
      +            "unknown"
      +          ],
      +          "type": "string"
      +        },
      +        "participants_per_session": {
      +          "description": "Source-grounded maximum participants in any session. Sample size cannot exceed session_count times this bound; no default group size is assumed.",
      +          "maximum": 9007199254740991,
      +          "minimum": 1,
      +          "type": "integer"
      +        },
      +        "reviewer_relationship": {
      +          "enum": [
      +            "independent",
      +            "employee",
      +            "company_staff",
      +            "internal",
      +            "contractor",
      +            "partner",
      +            "self_collected",
      +            "unknown"
      +          ],
      +          "type": "string"
      +        },
      +        "sample_size": {
      +          "maximum": 9007199254740991,
      +          "minimum": 1,
      +          "type": "integer"
      +        },
      +        "session_count": {
      +          "description": "Actual number of group sessions in the source records.",
      +          "maximum": 9007199254740991,
      +          "minimum": 1,
      +          "type": "integer"
      +        },
      +        "session_duration_minutes": {
      +          "description": "Source-recorded duration of each group session in this declaration, not an alias for individual interview duration.",
      +          "exclusiveMinimum": 0,
      +          "type": "number"
      +        },
      +        "source_modality": {
      +          "enum": [
      +            "direct_observation",
      +            "documentary",
      +            "secondary_summary",
      +            "unknown"
      +          ],
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "source_ref": {
      +      "maxLength": 512,
      +      "minLength": 1,
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "source_ref",
      +    "fields"
      +  ],
      +  "type": "object"
      +}
    • changedInput schema / properties / payload / properties / evidence_items / items / properties / evidence_origin / description
      Previous value: -"Alias for source_class. Source-class precedence: source_class, evidence_origin, source_family, then evidence_type."New value: +"Declared source origin. Explicit public/documentary sources are not caller fieldwork solely because evidence_type is survey. Conflicting explicit field origins still block; never relabel to pass."
    • changedInput schema / properties / payload / properties / evidence_items / items / properties / sample_size / description
      Previous value: -"Actual sample size; required for individual face-to-face/telephone interviews, not invented for documentary evidence."New value: +"Actual sample size; required for collector-administered modes, including groups. Group sample cannot exceed session_count times participants_per_session. All supplied aliases must agree; never invent a sample for documentary or self-administered evidence."
    • changedInput schema / properties / payload / properties / evidence_items / items / properties / source_family / description
      Previous value: -"Compatibility origin label; source_class takes precedence."New value: +"Compatibility origin label. Explicit field/public conflicts, including provenance_ledger.source_family, require reconciliation; one label cannot erase another."
    • changedInput schema / properties / payload / properties / evidence_pack / items / properties / collection_context / description
      Previous value: -"Source-grounded collection declarations, not source authentication. Unknown facts must remain missing; do not invent values to pass. Field decision use requires source modality, collector relationship, interview mode, source-document identity and an explicit parent-source list. Individual face-to-face/telephone collection also requires staffing, duration, total available minutes per collector and sample size. Independent verification labels require a separate reviewer relationship; persisted review is still checked separately."New value: +"Source-grounded collection declarations, not source authentication. Unknown facts must remain missing; do not invent values to pass. Field decision use requires source modality, collector relationship, interview mode, source-document identity and an explicit parent-source list. Collector-administered modes require staffing, duration, available minutes per collector and sample size. Group modes additionally require session_count, participants_per_session, session_duration_minutes and collectors_per_session, never inferred from an individual interview duration. Online, observation and administrative_record modes require collection_administration; self-administered online and automated observation/record sources do not need invented collector capacity. Explicit public/documentary origins are not caller fieldwork solely because evidence_type is survey; conflicting explicit field origins still block. Independent verification labels require a separate reviewer relationship; persisted review is still checked separately."
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / collection_context / properties / collection_administration
      Added value: +{
      +  "description": "Source-grounded administration, required for online, observation and administrative_record modes. self_administered is supported for online; automated for observation or administrative_record. Face-to-face, telephone and group modes are collector-administered and cannot opt out.",
      +  "enum": [
      +    "collector_administered",
      +    "self_administered",
      +    "automated",
      +    "unknown"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / collection_context / properties / collectors_per_session
      Added value: +{
      +  "description": "Collectors required concurrently for each group session, drawn from enumerator_count. No default facilitator count is assumed.",
      +  "maximum": 9007199254740991,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / collection_context / properties / interview_duration_minutes / description
      Added value: +"Collector time per individual interview or per observed/processed sample record for collector-administered non-group modes."
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / collection_context / properties / participants_per_session
      Added value: +{
      +  "description": "Source-grounded maximum participants in any session. Sample size cannot exceed session_count times this bound; no default group size is assumed.",
      +  "maximum": 9007199254740991,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / collection_context / properties / session_count
      Added value: +{
      +  "description": "Actual number of group sessions in the source records.",
      +  "maximum": 9007199254740991,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / collection_context / properties / session_duration_minutes
      Added value: +{
      +  "description": "Source-recorded duration of each group session in this declaration, not an alias for individual interview duration.",
      +  "exclusiveMinimum": 0,
      +  "type": "number"
      +}
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / collection_context / properties / source_extraction
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Optional caller-supplied second reading of source facts for conflict comparison only. Not independently authenticated; cannot supply missing primary declarations or establish source authenticity.",
      +  "properties": {
      +    "fields": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "collection_administration": {
      +          "description": "Source-grounded administration, required for online, observation and administrative_record modes. self_administered is supported for online; automated for observation or administrative_record. Face-to-face, telephone and group modes are collector-administered and cannot opt out.",
      +          "enum": [
      +            "collector_administered",
      +            "self_administered",
      +            "automated",
      +            "unknown"
      +          ],
      +          "type": "string"
      +        },
      +        "collector_relationship": {
      +          "enum": [
      +            "independent",
      +            "employee",
      +            "company_staff",
      +            "internal",
      +            "contractor",
      +            "partner",
      +            "self_collected",
      +            "unknown"
      +          ],
      +          "type": "string"
      +        },
      +        "collectors_per_session": {
      +          "description": "Collectors required concurrently for each group session, drawn from enumerator_count. No default facilitator count is assumed.",
      +          "maximum": 9007199254740991,
      +          "minimum": 1,
      +          "type": "integer"
      +        },
      +        "enumerator_count": {
      +          "maximum": 9007199254740991,
      +          "minimum": 1,
      +          "type": "integer"
      +        },
      +        "fieldwork_window_minutes": {
      +          "description": "Total available collection minutes per collector across the entire period, not daily or team-person-minutes.",
      +          "exclusiveMinimum": 0,
      +          "type": "number"
      +        },
      +        "interview_duration_minutes": {
      +          "description": "Collector time per individual interview or per observed/processed sample record for collector-administered non-group modes.",
      +          "exclusiveMinimum": 0,
      +          "type": "number"
      +        },
      +        "interview_mode": {
      +          "enum": [
      +            "face_to_face",
      +            "telephone",
      +            "online",
      +            "focus_group",
      +            "group_interview",
      +            "observation",
      +            "administrative_record",
      +            "unknown"
      +          ],
      +          "type": "string"
      +        },
      +        "participants_per_session": {
      +          "description": "Source-grounded maximum participants in any session. Sample size cannot exceed session_count times this bound; no default group size is assumed.",
      +          "maximum": 9007199254740991,
      +          "minimum": 1,
      +          "type": "integer"
      +        },
      +        "reviewer_relationship": {
      +          "enum": [
      +            "independent",
      +            "employee",
      +            "company_staff",
      +            "internal",
      +            "contractor",
      +            "partner",
      +            "self_collected",
      +            "unknown"
      +          ],
      +          "type": "string"
      +        },
      +        "sample_size": {
      +          "maximum": 9007199254740991,
      +          "minimum": 1,
      +          "type": "integer"
      +        },
      +        "session_count": {
      +          "description": "Actual number of group sessions in the source records.",
      +          "maximum": 9007199254740991,
      +          "minimum": 1,
      +          "type": "integer"
      +        },
      +        "session_duration_minutes": {
      +          "description": "Source-recorded duration of each group session in this declaration, not an alias for individual interview duration.",
      +          "exclusiveMinimum": 0,
      +          "type": "number"
      +        },
      +        "source_modality": {
      +          "enum": [
      +            "direct_observation",
      +            "documentary",
      +            "secondary_summary",
      +            "unknown"
      +          ],
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "source_ref": {
      +      "maxLength": 512,
      +      "minLength": 1,
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "source_ref",
      +    "fields"
      +  ],
      +  "type": "object"
      +}
    • changedInput schema / properties / payload / properties / evidence_pack / items / properties / evidence_origin / description
      Previous value: -"Alias for source_class. Source-class precedence: source_class, evidence_origin, source_family, then evidence_type."New value: +"Declared source origin. Explicit public/documentary sources are not caller fieldwork solely because evidence_type is survey. Conflicting explicit field origins still block; never relabel to pass."
    • changedInput schema / properties / payload / properties / evidence_pack / items / properties / sample_size / description
      Previous value: -"Actual sample size; required for individual face-to-face/telephone interviews, not invented for documentary evidence."New value: +"Actual sample size; required for collector-administered modes, including groups. Group sample cannot exceed session_count times participants_per_session. All supplied aliases must agree; never invent a sample for documentary or self-administered evidence."
    • changedInput schema / properties / payload / properties / evidence_pack / items / properties / source_family / description
      Previous value: -"Compatibility origin label; source_class takes precedence."New value: +"Compatibility origin label. Explicit field/public conflicts, including provenance_ledger.source_family, require reconciliation; one label cannot erase another."
    • changedInput schema / properties / payload / properties / market_scope / description
      Previous value: -"Declared decision geography, not source geography. Supply district/districts or decision_scope_level country/subnational; subnational requires locality. No district is inferred from claim prose."New value: +"Declared decision geography, not source geography. Supply district/districts or decision_scope_level country/subnational; subnational requires locality. A bounded Uganda target-name cross-check can require scope review, never insert districts or establish field coverage."
    • addedOutput schema / properties / claim_review / properties / issues / items / properties / allowed_values
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / properties / claim_review / properties / issues / items / properties / code / description
      Previous value: -"Stable correction code."New value: +"Codes: FIELD_PROVENANCE_REQUIRED, FIELD_PROVENANCE_CONFLICT, FIELDWORK_CAPACITY_CONTRADICTION, SOURCE_INDEPENDENCE_CONTRADICTION, SOURCE_VERIFICATION_CONTRADICTION, FIELD_SOURCE_MODALITY_CONFLICT, DECISION_GEOGRAPHY_SCOPE_REQUIRED, DECISION_SCOPE_REQUIRED, DECISION_SCOPE_REVIEW_REQUIRED, DECISION_SCOPE_CROSS_CHECK_LIMIT, SOURCE_EXTRACTION_INVALID, SOURCE_EXTRACTION_REFERENCE_CONFLICT, ADVERSE_SOURCE_REVIEW_REQUIRED, INVALID_CLAIM_INPUT, OUTPUT_RECEIPT_NOT_REQUEST_AUTHORITY, ARTIFACT_ROLE_NOT_SOURCE_EVIDENCE. Correct indexed evidence_input_feedback/evidence_fit paths and missing_fields against originals. INVALID_CLAIM_INPUT is HTTP 422 on claim-consuming REST routes; correct root or decision_result claim/citation paths in details/validation_errors without deleting adverse evidence. Never invent or relabel facts. Explicit adverse states need review, not approved support. These checks do not authenticate sources or authorize action. Recovery: /docs/mcp-integration.md."
    • addedOutput schema / properties / claim_review / properties / linkage_gaps / items / properties / allowed_values
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / properties / claim_review / properties / linkage_gaps / items / properties / code / description
      Previous value: -"Stable correction code."New value: +"Codes: FIELD_PROVENANCE_REQUIRED, FIELD_PROVENANCE_CONFLICT, FIELDWORK_CAPACITY_CONTRADICTION, SOURCE_INDEPENDENCE_CONTRADICTION, SOURCE_VERIFICATION_CONTRADICTION, FIELD_SOURCE_MODALITY_CONFLICT, DECISION_GEOGRAPHY_SCOPE_REQUIRED, DECISION_SCOPE_REQUIRED, DECISION_SCOPE_REVIEW_REQUIRED, DECISION_SCOPE_CROSS_CHECK_LIMIT, SOURCE_EXTRACTION_INVALID, SOURCE_EXTRACTION_REFERENCE_CONFLICT, ADVERSE_SOURCE_REVIEW_REQUIRED, INVALID_CLAIM_INPUT, OUTPUT_RECEIPT_NOT_REQUEST_AUTHORITY, ARTIFACT_ROLE_NOT_SOURCE_EVIDENCE. Correct indexed evidence_input_feedback/evidence_fit paths and missing_fields against originals. INVALID_CLAIM_INPUT is HTTP 422 on claim-consuming REST routes; correct root or decision_result claim/citation paths in details/validation_errors without deleting adverse evidence. Never invent or relabel facts. Explicit adverse states need review, not approved support. These checks do not authenticate sources or authorize action. Recovery: /docs/mcp-integration.md."
    • changedOutput schema / properties / code / description
      Previous value: -"OUTPUT_RECEIPT_NOT_REQUEST_AUTHORITY"New value: +"Codes: FIELD_PROVENANCE_REQUIRED, FIELD_PROVENANCE_CONFLICT, FIELDWORK_CAPACITY_CONTRADICTION, SOURCE_INDEPENDENCE_CONTRADICTION, SOURCE_VERIFICATION_CONTRADICTION, FIELD_SOURCE_MODALITY_CONFLICT, DECISION_GEOGRAPHY_SCOPE_REQUIRED, DECISION_SCOPE_REQUIRED, DECISION_SCOPE_REVIEW_REQUIRED, DECISION_SCOPE_CROSS_CHECK_LIMIT, SOURCE_EXTRACTION_INVALID, SOURCE_EXTRACTION_REFERENCE_CONFLICT, ADVERSE_SOURCE_REVIEW_REQUIRED, INVALID_CLAIM_INPUT, OUTPUT_RECEIPT_NOT_REQUEST_AUTHORITY, ARTIFACT_ROLE_NOT_SOURCE_EVIDENCE. Correct indexed evidence_input_feedback/evidence_fit paths and missing_fields against originals. INVALID_CLAIM_INPUT is HTTP 422 on claim-consuming REST routes; correct root or decision_result claim/citation paths in details/validation_errors without deleting adverse evidence. Never invent or relabel facts. Explicit adverse states need review, not approved support. These checks do not authenticate sources or authorize action. Recovery: /docs/mcp-integration.md."
    • addedOutput schema / properties / evidence_fit / properties / issues / items / properties / allowed_values
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / properties / evidence_fit / properties / issues / items / properties / code / description
      Previous value: -"Stable correction code."New value: +"Codes: FIELD_PROVENANCE_REQUIRED, FIELD_PROVENANCE_CONFLICT, FIELDWORK_CAPACITY_CONTRADICTION, SOURCE_INDEPENDENCE_CONTRADICTION, SOURCE_VERIFICATION_CONTRADICTION, FIELD_SOURCE_MODALITY_CONFLICT, DECISION_GEOGRAPHY_SCOPE_REQUIRED, DECISION_SCOPE_REQUIRED, DECISION_SCOPE_REVIEW_REQUIRED, DECISION_SCOPE_CROSS_CHECK_LIMIT, SOURCE_EXTRACTION_INVALID, SOURCE_EXTRACTION_REFERENCE_CONFLICT, ADVERSE_SOURCE_REVIEW_REQUIRED, INVALID_CLAIM_INPUT, OUTPUT_RECEIPT_NOT_REQUEST_AUTHORITY, ARTIFACT_ROLE_NOT_SOURCE_EVIDENCE. Correct indexed evidence_input_feedback/evidence_fit paths and missing_fields against originals. INVALID_CLAIM_INPUT is HTTP 422 on claim-consuming REST routes; correct root or decision_result claim/citation paths in details/validation_errors without deleting adverse evidence. Never invent or relabel facts. Explicit adverse states need review, not approved support. These checks do not authenticate sources or authorize action. Recovery: /docs/mcp-integration.md."
    • addedOutput schema / properties / evidence_input_feedback / properties / issues / items / properties / allowed_values
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / properties / evidence_input_feedback / properties / issues / items / properties / code / description
      Previous value: -"Stable correction code."New value: +"Codes: FIELD_PROVENANCE_REQUIRED, FIELD_PROVENANCE_CONFLICT, FIELDWORK_CAPACITY_CONTRADICTION, SOURCE_INDEPENDENCE_CONTRADICTION, SOURCE_VERIFICATION_CONTRADICTION, FIELD_SOURCE_MODALITY_CONFLICT, DECISION_GEOGRAPHY_SCOPE_REQUIRED, DECISION_SCOPE_REQUIRED, DECISION_SCOPE_REVIEW_REQUIRED, DECISION_SCOPE_CROSS_CHECK_LIMIT, SOURCE_EXTRACTION_INVALID, SOURCE_EXTRACTION_REFERENCE_CONFLICT, ADVERSE_SOURCE_REVIEW_REQUIRED, INVALID_CLAIM_INPUT, OUTPUT_RECEIPT_NOT_REQUEST_AUTHORITY, ARTIFACT_ROLE_NOT_SOURCE_EVIDENCE. Correct indexed evidence_input_feedback/evidence_fit paths and missing_fields against originals. INVALID_CLAIM_INPUT is HTTP 422 on claim-consuming REST routes; correct root or decision_result claim/citation paths in details/validation_errors without deleting adverse evidence. Never invent or relabel facts. Explicit adverse states need review, not approved support. These checks do not authenticate sources or authorize action. Recovery: /docs/mcp-integration.md."
  12. Changed21 schema fields changed
    • addedInput schema / properties / payload / properties / evidence_items / items / properties / collection_context
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Source-grounded collection declarations, not source authentication. Unknown facts must remain missing; do not invent values to pass. Field decision use requires source modality, collector relationship, interview mode, source-document identity and an explicit parent-source list. Individual face-to-face/telephone collection also requires staffing, duration, total available minutes per collector and sample size. Independent verification labels require a separate reviewer relationship; persisted review is still checked separately.",
      +  "properties": {
      +    "collector_relationship": {
      +      "enum": [
      +        "independent",
      +        "employee",
      +        "company_staff",
      +        "internal",
      +        "contractor",
      +        "partner",
      +        "self_collected",
      +        "unknown"
      +      ],
      +      "type": "string"
      +    },
      +    "enumerator_count": {
      +      "maximum": 9007199254740991,
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    "fieldwork_window_minutes": {
      +      "description": "Total available collection minutes per collector across the entire period, not daily or team-person-minutes.",
      +      "exclusiveMinimum": 0,
      +      "type": "number"
      +    },
      +    "interview_duration_minutes": {
      +      "exclusiveMinimum": 0,
      +      "type": "number"
      +    },
      +    "interview_mode": {
      +      "enum": [
      +        "face_to_face",
      +        "telephone",
      +        "online",
      +        "focus_group",
      +        "group_interview",
      +        "observation",
      +        "administrative_record",
      +        "unknown"
      +      ],
      +      "type": "string"
      +    },
      +    "reviewer_relationship": {
      +      "enum": [
      +        "independent",
      +        "employee",
      +        "company_staff",
      +        "internal",
      +        "contractor",
      +        "partner",
      +        "self_collected",
      +        "unknown"
      +      ],
      +      "type": "string"
      +    },
      +    "sample_size": {
      +      "maximum": 9007199254740991,
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    "source_modality": {
      +      "enum": [
      +        "direct_observation",
      +        "documentary",
      +        "secondary_summary",
      +        "unknown"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / payload / properties / evidence_items / items / properties / provenance_ledger / description
      Added value: +"Field evidence needs source_doc_id and an explicit parent_source_ids array (empty allowed). Unknown lineage stays incomplete, not invented."
    • addedInput schema / properties / payload / properties / evidence_items / items / properties / provenance_ledger / properties / source_family
      Added value: +{
      +  "description": "Declared source family; distinct labels do not prove independence.",
      +  "type": "string"
      +}
    • addedInput schema / properties / payload / properties / evidence_items / items / properties / sample_size
      Added value: +{
      +  "description": "Actual sample size; required for individual face-to-face/telephone interviews, not invented for documentary evidence.",
      +  "maximum": 9007199254740991,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / payload / properties / evidence_items / items / properties / survey_payload
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Existing sample_size alias; all supplied sample-size aliases must agree.",
      +  "properties": {
      +    "sample_size": {
      +      "maximum": 9007199254740991,
      +      "minimum": 1,
      +      "type": "integer"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / collection_context
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Source-grounded collection declarations, not source authentication. Unknown facts must remain missing; do not invent values to pass. Field decision use requires source modality, collector relationship, interview mode, source-document identity and an explicit parent-source list. Individual face-to-face/telephone collection also requires staffing, duration, total available minutes per collector and sample size. Independent verification labels require a separate reviewer relationship; persisted review is still checked separately.",
      +  "properties": {
      +    "collector_relationship": {
      +      "enum": [
      +        "independent",
      +        "employee",
      +        "company_staff",
      +        "internal",
      +        "contractor",
      +        "partner",
      +        "self_collected",
      +        "unknown"
      +      ],
      +      "type": "string"
      +    },
      +    "enumerator_count": {
      +      "maximum": 9007199254740991,
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    "fieldwork_window_minutes": {
      +      "description": "Total available collection minutes per collector across the entire period, not daily or team-person-minutes.",
      +      "exclusiveMinimum": 0,
      +      "type": "number"
      +    },
      +    "interview_duration_minutes": {
      +      "exclusiveMinimum": 0,
      +      "type": "number"
      +    },
      +    "interview_mode": {
      +      "enum": [
      +        "face_to_face",
      +        "telephone",
      +        "online",
      +        "focus_group",
      +        "group_interview",
      +        "observation",
      +        "administrative_record",
      +        "unknown"
      +      ],
      +      "type": "string"
      +    },
      +    "reviewer_relationship": {
      +      "enum": [
      +        "independent",
      +        "employee",
      +        "company_staff",
      +        "internal",
      +        "contractor",
      +        "partner",
      +        "self_collected",
      +        "unknown"
      +      ],
      +      "type": "string"
      +    },
      +    "sample_size": {
      +      "maximum": 9007199254740991,
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    "source_modality": {
      +      "enum": [
      +        "direct_observation",
      +        "documentary",
      +        "secondary_summary",
      +        "unknown"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / provenance_ledger / description
      Added value: +"Field evidence needs source_doc_id and an explicit parent_source_ids array (empty allowed). Unknown lineage stays incomplete, not invented."
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / provenance_ledger / properties / source_family
      Added value: +{
      +  "description": "Declared source family; distinct labels do not prove independence.",
      +  "type": "string"
      +}
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / sample_size
      Added value: +{
      +  "description": "Actual sample size; required for individual face-to-face/telephone interviews, not invented for documentary evidence.",
      +  "maximum": 9007199254740991,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / survey_payload
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Existing sample_size alias; all supplied sample-size aliases must agree.",
      +  "properties": {
      +    "sample_size": {
      +      "maximum": 9007199254740991,
      +      "minimum": 1,
      +      "type": "integer"
      +    }
      +  },
      +  "type": "object"
      +}
    • changedInput schema / properties / payload / properties / market_scope / description
      Previous value: -"Geography in which the evidence must be valid."New value: +"Declared decision geography, not source geography. Supply district/districts or decision_scope_level country/subnational; subnational requires locality. No district is inferred from claim prose."
    • addedInput schema / properties / payload / properties / market_scope / properties / city / description
      Added value: +"Declared target city."
    • addedInput schema / properties / payload / properties / market_scope / properties / corridor / description
      Added value: +"Declared target corridor."
    • addedInput schema / properties / payload / properties / market_scope / properties / country / description
      Added value: +"Declared target country, not the source country."
    • addedInput schema / properties / payload / properties / market_scope / properties / decision_scope_level
      Added value: +{
      +  "description": "Explicit decision scope. Subnational needs declared locality. A country-only decision must be declared, not inferred from absent districts.",
      +  "enum": [
      +    "country",
      +    "subnational"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / payload / properties / market_scope / properties / district
      Added value: +{
      +  "description": "Nonblank target district; not verified source coverage.",
      +  "pattern": "\\S",
      +  "type": "string"
      +}
    • addedInput schema / properties / payload / properties / market_scope / properties / districts
      Added value: +{
      +  "description": "Target districts as nonblank strings; empty is allowed but does not declare subnational scope.",
      +  "items": {
      +    "pattern": "\\S",
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / payload / properties / market_scope / properties / micro_context
      Added value: +{
      +  "description": "Explicit local decision context.",
      +  "type": "string"
      +}
    • addedInput schema / properties / payload / properties / market_scope / properties / region / description
      Added value: +"Declared target region."
    • addedInput schema / properties / payload / properties / market_scope / properties / town_or_zone
      Added value: +{
      +  "description": "Declared target town or zone.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / evidence_fit / properties / decision_scope
      Added value: +{
      +  "properties": {
      +    "level": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "missing_fields": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "status": {
      +      "enum": [
      +        "declared",
      +        "unresolved",
      +        "not_requested"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  13. Changed18 schema fields changed
    • changedInput schema / properties / payload / properties / evidence_items / items / description
      Previous value: -"A caller-declared, consented and redacted evidence item. No required fields at intake: incomplete items receive correction feedback. Passing coverage never verifies truth, permission or readiness."New value: +"A caller-declared, consented and redacted evidence item. No required fields at intake: incomplete items receive correction feedback. Explicit artifact_role, evidence_role, source_role, record_role and content_role declarations admit only original_source_record, independent_evaluation or human_attestation; other declared roles are rejected with ARTIFACT_ROLE_NOT_SOURCE_EVIDENCE. Omission remains supported for legacy items. Passing coverage never verifies truth, permission or readiness."
    • addedInput schema / properties / payload / properties / evidence_items / items / properties / evidence_geography / properties / district
      Added value: +{
      +  "description": "Nonblank declared source district, not verified local coverage.",
      +  "pattern": "\\S",
      +  "type": "string"
      +}
    • addedInput schema / properties / payload / properties / evidence_items / items / properties / evidence_geography / properties / districts
      Added value: +{
      +  "description": "Declared source districts, each a nonblank string. An empty array is allowed. Not verified fieldwork or representative coverage.",
      +  "items": {
      +    "pattern": "\\S",
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / payload / properties / evidence_items / items / properties / evidence_geography / properties / town_or_zone
      Added value: +{
      +  "description": "Declared source town or zone.",
      +  "type": "string"
      +}
    • addedInput schema / properties / payload / properties / evidence_items / items / properties / geography / additionalProperties
      Added value: +true
    • changedInput schema / properties / payload / properties / evidence_items / items / properties / geography / description
      Previous value: -"Source country name/code or broader geographic description. Known country conflicts are flagged; local applicability is not authenticated."New value: +"Source country name/code or broader description, or an object with country, city, region and town_or_zone strings, a nonblank district string and a districts array of nonblank strings (empty allowed). Known country conflicts, including conflicting evidence_geography.country, are flagged; local applicability is not authenticated."
    • addedInput schema / properties / payload / properties / evidence_items / items / properties / geography / properties
      Added value: +{
      +  "city": {
      +    "description": "Declared source city.",
      +    "type": "string"
      +  },
      +  "country": {
      +    "description": "Declared source country, not the target country.",
      +    "type": "string"
      +  },
      +  "district": {
      +    "description": "Nonblank declared source district, not verified local coverage.",
      +    "pattern": "\\S",
      +    "type": "string"
      +  },
      +  "districts": {
      +    "description": "Declared source districts, each a nonblank string. An empty array is allowed. Not verified fieldwork or representative coverage.",
      +    "items": {
      +      "pattern": "\\S",
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  "region": {
      +    "description": "Declared source region.",
      +    "type": "string"
      +  },
      +  "town_or_zone": {
      +    "description": "Declared source town or zone.",
      +    "type": "string"
      +  }
      +}
    • changedInput schema / properties / payload / properties / evidence_items / items / properties / geography / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "object"
      +]
    • changedInput schema / properties / payload / properties / evidence_items / items / properties / source_class / description
      Previous value: -"Origin label, for example entity_reported, regulator_published, structured_field_research, operational_data or counterparty_reference. Not a claim of independence."New value: +"Origin label, for example entity_reported, regulator_published, structured_field_research, operational_data or counterparty_reference. model_inferred is not source evidence and is rejected with ARTIFACT_ROLE_NOT_SOURCE_EVIDENCE. Never relabel it to pass. Origin is not a claim of independence."
    • changedInput schema / properties / payload / properties / evidence_pack / items / description
      Previous value: -"A caller-declared, consented and redacted evidence item. No required fields at intake: incomplete items receive correction feedback. Passing coverage never verifies truth, permission or readiness."New value: +"A caller-declared, consented and redacted evidence item. No required fields at intake: incomplete items receive correction feedback. Explicit artifact_role, evidence_role, source_role, record_role and content_role declarations admit only original_source_record, independent_evaluation or human_attestation; other declared roles are rejected with ARTIFACT_ROLE_NOT_SOURCE_EVIDENCE. Omission remains supported for legacy items. Passing coverage never verifies truth, permission or readiness."
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / evidence_geography / properties / district
      Added value: +{
      +  "description": "Nonblank declared source district, not verified local coverage.",
      +  "pattern": "\\S",
      +  "type": "string"
      +}
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / evidence_geography / properties / districts
      Added value: +{
      +  "description": "Declared source districts, each a nonblank string. An empty array is allowed. Not verified fieldwork or representative coverage.",
      +  "items": {
      +    "pattern": "\\S",
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / evidence_geography / properties / town_or_zone
      Added value: +{
      +  "description": "Declared source town or zone.",
      +  "type": "string"
      +}
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / geography / additionalProperties
      Added value: +true
    • changedInput schema / properties / payload / properties / evidence_pack / items / properties / geography / description
      Previous value: -"Source country name/code or broader geographic description. Known country conflicts are flagged; local applicability is not authenticated."New value: +"Source country name/code or broader description, or an object with country, city, region and town_or_zone strings, a nonblank district string and a districts array of nonblank strings (empty allowed). Known country conflicts, including conflicting evidence_geography.country, are flagged; local applicability is not authenticated."
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / geography / properties
      Added value: +{
      +  "city": {
      +    "description": "Declared source city.",
      +    "type": "string"
      +  },
      +  "country": {
      +    "description": "Declared source country, not the target country.",
      +    "type": "string"
      +  },
      +  "district": {
      +    "description": "Nonblank declared source district, not verified local coverage.",
      +    "pattern": "\\S",
      +    "type": "string"
      +  },
      +  "districts": {
      +    "description": "Declared source districts, each a nonblank string. An empty array is allowed. Not verified fieldwork or representative coverage.",
      +    "items": {
      +      "pattern": "\\S",
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  "region": {
      +    "description": "Declared source region.",
      +    "type": "string"
      +  },
      +  "town_or_zone": {
      +    "description": "Declared source town or zone.",
      +    "type": "string"
      +  }
      +}
    • changedInput schema / properties / payload / properties / evidence_pack / items / properties / geography / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "object"
      +]
    • changedInput schema / properties / payload / properties / evidence_pack / items / properties / source_class / description
      Previous value: -"Origin label, for example entity_reported, regulator_published, structured_field_research, operational_data or counterparty_reference. Not a claim of independence."New value: +"Origin label, for example entity_reported, regulator_published, structured_field_research, operational_data or counterparty_reference. model_inferred is not source evidence and is rejected with ARTIFACT_ROLE_NOT_SOURCE_EVIDENCE. Never relabel it to pass. Origin is not a claim of independence."
  14. Changed6 schema fields changed
    • addedOutput schema / description
      Added value: +"Public preflight serves no calibration. Licensed calibration_disposition (calibration_retired or calibration_quarantined) prohibits serving or replacement; it does not verify source truth."
    • addedOutput schema / properties / code
      Added value: +{
      +  "description": "OUTPUT_RECEIPT_NOT_REQUEST_AUTHORITY",
      +  "type": "string"
      +}
    • addedOutput schema / properties / receipt_evidence_findings
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "evidence_id": {
      +        "maxLength": 160,
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "evidence_id_truncated": {
      +        "type": "boolean"
      +      },
      +      "marker": {
      +        "type": "string"
      +      },
      +      "path": {
      +        "description": "RFC 6901 JSON Pointer into the submitted body. Truncated pointers are not directly resolvable.",
      +        "maxLength": 1024,
      +        "type": "string"
      +      },
      +      "path_truncated": {
      +        "type": "boolean"
      +      }
      +    },
      +    "required": [
      +      "path",
      +      "evidence_id",
      +      "marker",
      +      "path_truncated",
      +      "evidence_id_truncated"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 15,
      +  "type": "array"
      +}
    • addedOutput schema / properties / receipt_validation
      Added value: +{
      +  "properties": {
      +    "expiry": {
      +      "enum": [
      +        "unknown"
      +      ],
      +      "type": "string"
      +    },
      +    "performed": {
      +      "enum": [
      +        false
      +      ],
      +      "type": "boolean"
      +    },
      +    "revocation": {
      +      "enum": [
      +        "unknown"
      +      ],
      +      "type": "string"
      +    },
      +    "status": {
      +      "enum": [
      +        "not_checked"
      +      ],
      +      "type": "string"
      +    },
      +    "validity": {
      +      "enum": [
      +        "unknown"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / total_errors
      Added value: +{
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / validation_errors_truncated
      Added value: +{
      +  "type": "boolean"
      +}
  15. Changed1 schema field changed
    • addedOutput schema / properties / evidence_field_guide
      Added value: +{
      +  "description": "Self-contained public evidence field types and unknown-metadata policy. Formatting guidance, not verification or authority.",
      +  "type": "string"
      +}
  16. Changed1 schema field changed
    • addedOutput schema / properties / evidence_intake
      Added value: +{
      +  "properties": {
      +    "boundary": {
      +      "description": "Intake format is not evidence assessment.",
      +      "type": "string"
      +    },
      +    "content_assessment_performed": {
      +      "type": "boolean"
      +    },
      +    "contract_version": {
      +      "description": "Intake disclosure version.",
      +      "type": "string"
      +    },
      +    "evidence_count_semantics": {
      +      "description": "Counts submitted entries, not underlying records or verified sources.",
      +      "type": "string"
      +    },
      +    "source_authenticity_verified": {
      +      "type": "boolean"
      +    },
      +    "status": {
      +      "enum": [
      +        "invalid_submission",
      +        "described_not_structured",
      +        "no_evidence_supplied",
      +        "structured_items_supplied",
      +        "mixed_descriptions_and_structured_items"
      +      ],
      +      "type": "string"
      +    },
      +    "structured_item_count": {
      +      "type": "integer"
      +    },
      +    "underlying_records_checked": {
      +      "type": "boolean"
      +    },
      +    "unstructured_description_count": {
      +      "type": "integer"
      +    }
      +  },
      +  "type": "object"
      +}
  17. Changed4 schema fields changed
    • addedOutput schema / properties / claim_review / properties / content_item_count
      Added value: +{
      +  "type": "integer"
      +}
    • addedOutput schema / properties / claim_review / properties / linkage_gaps
      Added value: +{
      +  "items": {
      +    "properties": {
      +      "blocking": {
      +        "type": "boolean"
      +      },
      +      "code": {
      +        "description": "Stable correction code.",
      +        "type": "string"
      +      },
      +      "message": {
      +        "description": "Correction without echoing source content.",
      +        "type": "string"
      +      },
      +      "path": {
      +        "description": "Indexed submitted payload path.",
      +        "type": "string"
      +      },
      +      "severity": {
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / claim_review / properties / linkage_gaps_truncated
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / claim_review / properties / unlinked_evidence_count
      Added value: +{
      +  "type": "integer"
      +}
  18. Changed8 schema fields changed
    • addedInput schema / properties / payload / properties / claims
      Added value: +{
      +  "description": "Optional explicit target claims and source-specific support links. Reuses the governed claim-audit vocabulary. Public links are caller declarations, never authenticated reviewer attestations.",
      +  "items": {
      +    "properties": {
      +      "claim": {
      +        "description": "Minimal public-safe target proposition.",
      +        "type": "string"
      +      },
      +      "claim_id": {
      +        "description": "Opaque claim identifier.",
      +        "type": "string"
      +      },
      +      "support_links": {
      +        "items": {
      +          "properties": {
      +            "claim_id": {
      +              "description": "Must match the containing claim.",
      +              "type": "string"
      +            },
      +            "evidence_id": {
      +              "description": "Must identify an item in this complete evidence pack.",
      +              "type": "string"
      +            },
      +            "locator": {
      +              "description": "Specific page, cell or section. A locator is not proof.",
      +              "type": "string"
      +            },
      +            "relationship": {
      +              "enum": [
      +                "direct_support",
      +                "qualifies",
      +                "contradicts",
      +                "context_only"
      +              ],
      +              "type": "string"
      +            },
      +            "review_event_id": {
      +              "description": "Only the licensed review service can check this event; ignored as authority by public preflight.",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "claim_id",
      +            "evidence_id",
      +            "relationship",
      +            "locator"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      }
      +    },
      +    "required": [
      +      "claim_id",
      +      "claim"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / claim_review
      Added value: +{
      +  "properties": {
      +    "blocking": {
      +      "type": "boolean"
      +    },
      +    "boundary": {
      +      "type": "string"
      +    },
      +    "claim_count": {
      +      "type": "integer"
      +    },
      +    "content_assessment_performed": {
      +      "type": "boolean"
      +    },
      +    "declared_contradiction_count": {
      +      "type": "integer"
      +    },
      +    "declared_qualification_count": {
      +      "type": "integer"
      +    },
      +    "issues": {
      +      "items": {
      +        "properties": {
      +          "blocking": {
      +            "type": "boolean"
      +          },
      +          "code": {
      +            "description": "Stable correction code.",
      +            "type": "string"
      +          },
      +          "message": {
      +            "description": "Correction without echoing source content.",
      +            "type": "string"
      +          },
      +          "path": {
      +            "description": "Indexed submitted payload path.",
      +            "type": "string"
      +          },
      +          "severity": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "links": {
      +      "items": {
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "source_authenticity_verified": {
      +      "type": "boolean"
      +    },
      +    "status": {
      +      "type": "string"
      +    },
      +    "unlinked_claim_count": {
      +      "type": "integer"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / decision_domains
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / domain_routing_basis
      Added value: +{
      +  "description": "Routing basis, not a verified classification.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / evidence_fit
      Added value: +{
      +  "properties": {
      +    "analysis_date": {
      +      "type": "string"
      +    },
      +    "analysis_timezone": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "blocking": {
      +      "type": "boolean"
      +    },
      +    "coverage_exclusion_count": {
      +      "type": "integer"
      +    },
      +    "issues": {
      +      "items": {
      +        "properties": {
      +          "blocking": {
      +            "type": "boolean"
      +          },
      +          "code": {
      +            "description": "Stable correction code.",
      +            "type": "string"
      +          },
      +          "message": {
      +            "description": "Correction without echoing source content.",
      +            "type": "string"
      +          },
      +          "path": {
      +            "description": "Indexed submitted payload path.",
      +            "type": "string"
      +          },
      +          "severity": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "source_authenticity_verified": {
      +      "type": "boolean"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / evidence_input_feedback
      Added value: +{
      +  "properties": {
      +    "contract_version": {
      +      "description": "Feedback version.",
      +      "type": "string"
      +    },
      +    "error_count": {
      +      "type": "integer"
      +    },
      +    "issues": {
      +      "items": {
      +        "properties": {
      +          "blocking": {
      +            "type": "boolean"
      +          },
      +          "code": {
      +            "description": "Stable correction code.",
      +            "type": "string"
      +          },
      +          "message": {
      +            "description": "Correction without echoing source content.",
      +            "type": "string"
      +          },
      +          "path": {
      +            "description": "Indexed submitted payload path.",
      +            "type": "string"
      +          },
      +          "severity": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "issues_truncated": {
      +      "type": "boolean"
      +    },
      +    "warning_count": {
      +      "type": "integer"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / evidence_requirements
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / source_review
      Added value: +{
      +  "properties": {
      +    "evidence_strength": {
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "required_before_consequential_reliance": {
      +      "type": "boolean"
      +    },
      +    "status": {
      +      "type": "string"
      +    },
      +    "tasks": {
      +      "items": {
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "type": "object"
      +}
  19. Changed6 schema fields changed
    • changedInput schema / properties / payload / properties / analysis_date / description
      Previous value: -"Optional YYYY-MM-DD or ISO timestamp with timezone, no later than today; defaults to the server UTC date. Carried through the public handoff."New value: +"Optional YYYY-MM-DD or ISO timestamp with timezone, no later than today in analysis_timezone (UTC by default). Defaults to the current date in that calendar. Carried through the public handoff."
    • addedInput schema / properties / payload / properties / analysis_timezone
      Added value: +{
      +  "description": "Optional IANA timezone, for example Africa/Nairobi, for the analysis calendar. Defaults to UTC; never inferred from country or IP. Date-only values keep their declared calendar day.",
      +  "type": "string"
      +}
    • changedInput schema / properties / payload / properties / evidence_items / items / properties / provenance_ledger / properties / source_locator / description
      Previous value: -"Redacted, reviewable document locator. Shared references count together."New value: +"Redacted document-specific locator, not the shared folder holding unrelated documents. Never invent a locator. Genuine shared upstream references count together."
    • changedInput schema / properties / payload / properties / evidence_items / items / properties / source_locator / description
      Previous value: -"Redacted, reviewable document locator. Shared references count together."New value: +"Redacted document-specific locator, not the shared folder holding unrelated documents. Never invent a locator. Genuine shared upstream references count together."
    • changedInput schema / properties / payload / properties / evidence_pack / items / properties / provenance_ledger / properties / source_locator / description
      Previous value: -"Redacted, reviewable document locator. Shared references count together."New value: +"Redacted document-specific locator, not the shared folder holding unrelated documents. Never invent a locator. Genuine shared upstream references count together."
    • changedInput schema / properties / payload / properties / evidence_pack / items / properties / source_locator / description
      Previous value: -"Redacted, reviewable document locator. Shared references count together."New value: +"Redacted document-specific locator, not the shared folder holding unrelated documents. Never invent a locator. Genuine shared upstream references count together."
  20. Changed11 schema fields changed
    • addedInput schema / properties / payload / properties / analysis_date
      Added value: +{
      +  "description": "Optional YYYY-MM-DD or ISO timestamp with timezone, no later than today; defaults to the server UTC date. Carried through the public handoff.",
      +  "type": "string"
      +}
    • addedInput schema / properties / payload / properties / context_freshness_window_days
      Added value: +{
      +  "description": "Optional caller-declared maximum evidence age in days. No universal freshness cutoff is invented when absent; age alone does not prove validity.",
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • changedInput schema / properties / payload / properties / evidence_available / description
      Previous value: -"Optional context labels, not structured evidence and never counted as proof. Use evidence_pack for items."New value: +"Short optional context labels, not proof. For supplied document summaries use incomplete evidence_pack items instead; do not mark claims verified merely because a document exists."
    • addedInput schema / properties / payload / properties / evidence_items / items / properties / evidence_geography
      Added value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "city": {
      +      "description": "Declared source city.",
      +      "type": "string"
      +    },
      +    "country": {
      +      "description": "Declared source country, not the target country.",
      +      "type": "string"
      +    },
      +    "region": {
      +      "description": "Declared source region.",
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / payload / properties / evidence_items / items / properties / freshness_date
      Added value: +{
      +  "description": "Compatibility alias for source_date; conflicting supplied dates require correction.",
      +  "type": "string"
      +}
    • changedInput schema / properties / payload / properties / evidence_items / items / properties / geography / description
      Previous value: -"Geography represented by this source. Public preflight does not verify geographic relevance."New value: +"Source country name/code or broader geographic description. Known country conflicts are flagged; local applicability is not authenticated."
    • changedInput schema / properties / payload / properties / evidence_items / items / properties / source_date / description
      Previous value: -"Source date, preferably YYYY-MM-DD. Public preflight does not assess freshness or date validity."New value: +"Declared source date, YYYY-MM-DD or ISO timestamp with timezone. Date validity and age can be checked; the source and current applicability remain unverified."
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / evidence_geography
      Added value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "city": {
      +      "description": "Declared source city.",
      +      "type": "string"
      +    },
      +    "country": {
      +      "description": "Declared source country, not the target country.",
      +      "type": "string"
      +    },
      +    "region": {
      +      "description": "Declared source region.",
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / freshness_date
      Added value: +{
      +  "description": "Compatibility alias for source_date; conflicting supplied dates require correction.",
      +  "type": "string"
      +}
    • changedInput schema / properties / payload / properties / evidence_pack / items / properties / geography / description
      Previous value: -"Geography represented by this source. Public preflight does not verify geographic relevance."New value: +"Source country name/code or broader geographic description. Known country conflicts are flagged; local applicability is not authenticated."
    • changedInput schema / properties / payload / properties / evidence_pack / items / properties / source_date / description
      Previous value: -"Source date, preferably YYYY-MM-DD. Public preflight does not assess freshness or date validity."New value: +"Declared source date, YYYY-MM-DD or ISO timestamp with timezone. Date validity and age can be checked; the source and current applicability remain unverified."
  21. Changed34 schema fields changed
    • addedInput schema / properties / payload / properties / evidence_available
      Added value: +{
      +  "description": "Optional context labels, not structured evidence and never counted as proof. Use evidence_pack for items.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedInput schema / properties / payload / properties / evidence_items / description
      Previous value: -"Alias for evidence_pack when the host already uses this field name."New value: +"Alias for evidence_pack. Supply one field, not conflicting copies."
    • addedInput schema / properties / payload / properties / evidence_items / items / description
      Added value: +"A caller-declared, consented and redacted evidence item. No required fields at intake: incomplete items receive correction feedback. Passing coverage never verifies truth, permission or readiness."
    • addedInput schema / properties / payload / properties / evidence_items / items / properties
      Added value: +{
      +  "claim": {
      +    "description": "Minimal, non-confidential claim supported by the item; do not send raw private interviews.",
      +    "type": "string"
      +  },
      +  "evidence_origin": {
      +    "description": "Alias for source_class. Source-class precedence: source_class, evidence_origin, source_family, then evidence_type.",
      +    "type": "string"
      +  },
      +  "evidence_type": {
      +    "description": "What was collected, for example interview, field observation or licence record. Not merely the conclusion.",
      +    "type": "string"
      +  },
      +  "geography": {
      +    "description": "Geography represented by this source. Public preflight does not verify geographic relevance.",
      +    "type": "string"
      +  },
      +  "id": {
      +    "description": "Optional item identifier. Does not establish a distinct source.",
      +    "type": "string"
      +  },
      +  "is_load_bearing": {
      +    "description": "Compatibility alias for load_bearing.",
      +    "type": "boolean"
      +  },
      +  "load_bearing": {
      +    "description": "True if the target recommendation materially depends on this item.",
      +    "type": "boolean"
      +  },
      +  "parent_source_ids": {
      +    "items": {
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  "provenance_ledger": {
      +    "additionalProperties": true,
      +    "properties": {
      +      "parent_source_ids": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "source_doc_id": {
      +        "description": "Opaque source-document reference, not an evidence-item ID or personal identifier.",
      +        "type": "string"
      +      },
      +      "source_locator": {
      +        "description": "Redacted, reviewable document locator. Shared references count together.",
      +        "type": "string"
      +      },
      +      "source_url": {
      +        "description": "Source reference only; the sandbox does not fetch or authenticate it.",
      +        "type": "string"
      +      },
      +      "synthetic_fields": {
      +        "description": "Source-reference fields that were generated rather than observed; these do not establish lineage.",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "upstream_source_ids": {
      +        "description": "Disclose shared upstream sources; distinct identifiers do not prove independence.",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "source_class": {
      +    "description": "Origin label, for example entity_reported, regulator_published, structured_field_research, operational_data or counterparty_reference. Not a claim of independence.",
      +    "type": "string"
      +  },
      +  "source_date": {
      +    "description": "Source date, preferably YYYY-MM-DD. Public preflight does not assess freshness or date validity.",
      +    "type": "string"
      +  },
      +  "source_doc_id": {
      +    "description": "Opaque source-document reference, not an evidence-item ID or personal identifier.",
      +    "type": "string"
      +  },
      +  "source_family": {
      +    "description": "Compatibility origin label; source_class takes precedence.",
      +    "type": "string"
      +  },
      +  "source_grade": {
      +    "description": "Caller-supplied grade. Not a substitute for verification or source lineage.",
      +    "type": "string"
      +  },
      +  "source_hash": {
      +    "description": "Optional SHA-256 source hash, 64 hexadecimal characters; a hash does not authenticate its origin.",
      +    "type": "string"
      +  },
      +  "source_locator": {
      +    "description": "Redacted, reviewable document locator. Shared references count together.",
      +    "type": "string"
      +  },
      +  "source_url": {
      +    "description": "Source reference only; the sandbox does not fetch or authenticate it.",
      +    "type": "string"
      +  },
      +  "stakeholder_class": {
      +    "description": "Role represented, for example guardian, customer, supplier or partner. Do not submit a person identifier.",
      +    "type": "string"
      +  },
      +  "status": {
      +    "description": "Legacy alias for verification_status.",
      +    "type": "string"
      +  },
      +  "upstream_source_ids": {
      +    "description": "Disclose shared upstream sources; distinct identifiers do not prove independence.",
      +    "items": {
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  "verification_status": {
      +    "description": "Caller label. verified, independently_verified, corroborated, attested, confirmed and validated count for the structural prefilter only. self_attested, unverified, missing and other labels do not. Do not change labels without actually checking the source.",
      +    "type": "string"
      +  }
      +}
    • changedInput schema / properties / payload / properties / evidence_pack / description
      Previous value: -"Evidence items available for the decision."New value: +"Full current evidence pack. Rechecks replace the pack; the server does not append or retrieve evidence."
    • addedInput schema / properties / payload / properties / evidence_pack / items / description
      Added value: +"A caller-declared, consented and redacted evidence item. No required fields at intake: incomplete items receive correction feedback. Passing coverage never verifies truth, permission or readiness."
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / claim / description
      Added value: +"Minimal, non-confidential claim supported by the item; do not send raw private interviews."
    • changedInput schema / properties / payload / properties / evidence_pack / items / properties / evidence_origin / description
      Previous value: -"Alias for source_class when the host uses evidence-origin terminology."New value: +"Alias for source_class. Source-class precedence: source_class, evidence_origin, source_family, then evidence_type."
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / evidence_type / description
      Added value: +"What was collected, for example interview, field observation or licence record. Not merely the conclusion."
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / geography
      Added value: +{
      +  "description": "Geography represented by this source. Public preflight does not verify geographic relevance.",
      +  "type": "string"
      +}
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / id / description
      Added value: +"Optional item identifier. Does not establish a distinct source."
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / is_load_bearing
      Added value: +{
      +  "description": "Compatibility alias for load_bearing.",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / payload / properties / evidence_pack / items / properties / load_bearing / description
      Previous value: -"True when this item materially supports the target recommendation."New value: +"True if the target recommendation materially depends on this item."
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / parent_source_ids
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / provenance_ledger / properties / parent_source_ids
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / provenance_ledger / properties / source_doc_id / description
      Added value: +"Opaque source-document reference, not an evidence-item ID or personal identifier."
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / provenance_ledger / properties / source_locator / description
      Added value: +"Redacted, reviewable document locator. Shared references count together."
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / provenance_ledger / properties / source_url / description
      Added value: +"Source reference only; the sandbox does not fetch or authenticate it."
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / provenance_ledger / properties / synthetic_fields
      Added value: +{
      +  "description": "Source-reference fields that were generated rather than observed; these do not establish lineage.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / provenance_ledger / properties / upstream_source_ids / description
      Added value: +"Disclose shared upstream sources; distinct identifiers do not prove independence."
    • changedInput schema / properties / payload / properties / evidence_pack / items / properties / source_class / description
      Previous value: -"Origin family, for example entity_reported, structured_field_research, regulator_published, or counterparty_reference."New value: +"Origin label, for example entity_reported, regulator_published, structured_field_research, operational_data or counterparty_reference. Not a claim of independence."
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / source_date / description
      Added value: +"Source date, preferably YYYY-MM-DD. Public preflight does not assess freshness or date validity."
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / source_doc_id / description
      Added value: +"Opaque source-document reference, not an evidence-item ID or personal identifier."
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / source_family
      Added value: +{
      +  "description": "Compatibility origin label; source_class takes precedence.",
      +  "type": "string"
      +}
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / source_grade / description
      Added value: +"Caller-supplied grade. Not a substitute for verification or source lineage."
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / source_hash
      Added value: +{
      +  "description": "Optional SHA-256 source hash, 64 hexadecimal characters; a hash does not authenticate its origin.",
      +  "type": "string"
      +}
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / source_locator
      Added value: +{
      +  "description": "Redacted, reviewable document locator. Shared references count together.",
      +  "type": "string"
      +}
    • changedInput schema / properties / payload / properties / evidence_pack / items / properties / source_url / description
      Previous value: -"Source document reference. Shared references count together; a distinct URL does not prove source truth or independence."New value: +"Source reference only; the sandbox does not fetch or authenticate it."
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / stakeholder_class / description
      Added value: +"Role represented, for example guardian, customer, supplier or partner. Do not submit a person identifier."
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / status
      Added value: +{
      +  "description": "Legacy alias for verification_status.",
      +  "type": "string"
      +}
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / upstream_source_ids
      Added value: +{
      +  "description": "Disclose shared upstream sources; distinct identifiers do not prove independence.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / verification_status / description
      Added value: +"Caller label. verified, independently_verified, corroborated, attested, confirmed and validated count for the structural prefilter only. self_attested, unverified, missing and other labels do not. Do not change labels without actually checking the source."
    • removedInput schema / properties / payload / properties / evidence_pack / items / properties / verification_status / enum
      Removed value: -[
      -  "unverified",
      -  "verified",
      -  "independently_verified",
      -  "corroborated",
      -  "attested",
      -  "confirmed",
      -  "validated"
      -]
    • addedInput schema / properties / payload / properties / stage
      Added value: +{
      +  "description": "Free-text venture stage, for example pre-MVP, pilot, grant-funded programme or scaling. No closed enum.",
      +  "type": "string"
      +}
  22. Changed3 schema fields changed
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / provenance_ledger
      Added value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "source_doc_id": {
      +      "type": "string"
      +    },
      +    "source_locator": {
      +      "type": "string"
      +    },
      +    "source_url": {
      +      "type": "string"
      +    },
      +    "upstream_source_ids": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / source_doc_id
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / source_url / description
      Added value: +"Source document reference. Shared references count together; a distinct URL does not prove source truth or independence."
  23. Changed1 schema field changed
    • addedOutput schema / properties / next_steps
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "automatic_action_authorized": {
      +      "const": false,
      +      "type": "boolean"
      +    },
      +    "boundary": {
      +      "type": "string"
      +    },
      +    "offer_registry": {
      +      "format": "uri",
      +      "type": "string"
      +    },
      +    "options": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "id": {
      +            "type": "string"
      +          },
      +          "label": {
      +            "type": "string"
      +          },
      +          "url": {
      +            "format": "uri",
      +            "type": "string"
      +          },
      +          "when_to_use": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "label",
      +          "url",
      +          "when_to_use"
      +        ],
      +        "type": "object"
      +      },
      +      "maxItems": 3,
      +      "type": "array"
      +    },
      +    "purpose": {
      +      "const": "optional_routing_not_recommendation",
      +      "type": "string"
      +    },
      +    "schema_version": {
      +      "const": "mvr-optional-routing@1.0",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "schema_version",
      +    "purpose",
      +    "automatic_action_authorized",
      +    "boundary",
      +    "offer_registry",
      +    "options"
      +  ],
      +  "type": "object"
      +}
  24. Changed7 schema fields changed
    • addedOutput schema / properties / continuation_disposition
      Added value: +{
      +  "enum": [
      +    "call_now",
      +    "await_input",
      +    "terminal"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / mcp_next_call
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "null"
      +    },
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "arguments": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "payload": {
      +              "additionalProperties": true,
      +              "type": "object"
      +            }
      +          },
      +          "required": [
      +            "payload"
      +          ],
      +          "type": "object"
      +        },
      +        "name": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "name",
      +        "arguments"
      +      ],
      +      "type": "object"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / mcp_next_tool
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "null"
      +    },
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "arguments": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "payload": {
      +              "additionalProperties": true,
      +              "type": "object"
      +            }
      +          },
      +          "required": [
      +            "payload"
      +          ],
      +          "type": "object"
      +        },
      +        "tool_name": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "tool_name",
      +        "arguments"
      +      ],
      +      "type": "object"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / required_user_inputs
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / workflow_expires_at
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / workflow_id
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / workflow_status
      Added value: +{
      +  "type": "string"
      +}
  25. Changed2 schema fields changed
    • addedOutput schema / properties / mvr_response_receipt / properties / mcp_protocol_versions
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / properties / mvr_response_receipt / required
      Previous value: -[
      -  "receipt_schema_version",
      -  "mcp_tool",
      -  "core_api_version",
      -  "mcp_contract_version",
      -  "tool_profile_version",
      -  "sdk_version",
      -  "policy_version",
      -  "calibration_version",
      -  "deployment_revision",
      -  "host_recipe_version",
      -  "authority_boundary"
      -]New value: +[
      +  "receipt_schema_version",
      +  "mcp_tool",
      +  "core_api_version",
      +  "mcp_protocol_versions",
      +  "mcp_contract_version",
      +  "tool_profile_version",
      +  "sdk_version",
      +  "policy_version",
      +  "calibration_version",
      +  "deployment_revision",
      +  "host_recipe_version",
      +  "authority_boundary"
      +]
  26. Changed1 schema field changed
    • addedOutput schema / properties / mvr_response_receipt
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "authority_boundary": {
      +      "type": "string"
      +    },
      +    "calibration_version": {
      +      "type": "string"
      +    },
      +    "core_api_version": {
      +      "type": "string"
      +    },
      +    "deployment_revision": {
      +      "type": "string"
      +    },
      +    "host_recipe_version": {
      +      "type": "string"
      +    },
      +    "mcp_contract_version": {
      +      "type": "string"
      +    },
      +    "mcp_tool": {
      +      "type": "string"
      +    },
      +    "policy_version": {
      +      "type": "string"
      +    },
      +    "receipt_schema_version": {
      +      "type": "string"
      +    },
      +    "sdk_version": {
      +      "type": "string"
      +    },
      +    "tool_profile_version": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "receipt_schema_version",
      +    "mcp_tool",
      +    "core_api_version",
      +    "mcp_contract_version",
      +    "tool_profile_version",
      +    "sdk_version",
      +    "policy_version",
      +    "calibration_version",
      +    "deployment_revision",
      +    "host_recipe_version",
      +    "authority_boundary"
      +  ],
      +  "type": "object"
      +}
  27. Changed1 schema field changed
    • addedOutput schema / properties / verification_basis
      Added value: +{
      +  "type": "string"
      +}
  28. Changed7 schema fields changed
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / evidence_origin
      Added value: +{
      +  "description": "Alias for source_class when the host uses evidence-origin terminology.",
      +  "type": "string"
      +}
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / load_bearing
      Added value: +{
      +  "description": "True when this item materially supports the target recommendation.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / source_class
      Added value: +{
      +  "description": "Origin family, for example entity_reported, structured_field_research, regulator_published, or counterparty_reference.",
      +  "type": "string"
      +}
    • addedInput schema / properties / payload / properties / evidence_pack / items / properties / verification_status / enum
      Added value: +[
      +  "unverified",
      +  "verified",
      +  "independently_verified",
      +  "corroborated",
      +  "attested",
      +  "confirmed",
      +  "validated"
      +]
    • addedOutput schema / properties / unverified_evidence_count
      Added value: +{
      +  "type": "number"
      +}
    • addedOutput schema / properties / verified_evidence_count
      Added value: +{
      +  "type": "number"
      +}
    • addedOutput schema / properties / verified_source_families
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
  29. Changed2 schema fields changed
    • changedInput schema / properties / payload / description
      Previous value: -"Evidence-completeness request body."New value: +"Evidence pack and decision context to test for missing proof."
    • addedInput schema / properties / payload / properties
      Added value: +{
      +  "decision_stage": {
      +    "description": "Idea, pre-entry, pilot, launch, expansion, or scale stage.",
      +    "type": "string"
      +  },
      +  "evidence_items": {
      +    "description": "Alias for evidence_pack when the host already uses this field name.",
      +    "items": {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  "evidence_pack": {
      +    "description": "Evidence items available for the decision.",
      +    "items": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "claim": {
      +          "type": "string"
      +        },
      +        "evidence_type": {
      +          "type": "string"
      +        },
      +        "id": {
      +          "type": "string"
      +        },
      +        "source_date": {
      +          "type": "string"
      +        },
      +        "source_grade": {
      +          "type": "string"
      +        },
      +        "source_url": {
      +          "type": "string"
      +        },
      +        "stakeholder_class": {
      +          "type": "string"
      +        },
      +        "verification_status": {
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  "market_scope": {
      +    "additionalProperties": true,
      +    "description": "Geography in which the evidence must be valid.",
      +    "properties": {
      +      "city": {
      +        "type": "string"
      +      },
      +      "corridor": {
      +        "type": "string"
      +      },
      +      "country": {
      +        "type": "string"
      +      },
      +      "region": {
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "subject": {
      +    "additionalProperties": true,
      +    "description": "Resolved or supplied entity under assessment.",
      +    "properties": {
      +      "entity_archetype": {
      +        "type": "string"
      +      },
      +      "entity_name": {
      +        "type": "string"
      +      },
      +      "sector": {
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "target_claim": {
      +    "description": "Claim or readiness question the evidence is meant to support.",
      +    "type": "string"
      +  }
      +}
  30. Changed1 schema field changed
    • removedInput schema / properties / api_key
      Removed value: -{
      -  "type": "string"
      -}
  31. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "evidence_count": {
      +      "type": "number"
      +    },
      +    "evidence_gaps": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "response_meta": {
      +      "type": "object"
      +    },
      +    "safe_next_action": {
      +      "type": "string"
      +    },
      +    "stakeholder_coverage": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "status": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  32. First observed

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly and non-destructive annotations, the description adds critical behavioral context: do not treat completeness as authorization, submit only consented and redacted evidence, never send raw interviews or secrets, and omit unknown dates rather than inventing them. It also discloses rejection behavior such as ARTIFACT_ROLE_NOT_SOURCE_EVIDENCE, which materially helps an agent avoid misuse.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose and usage, which is good, but it is dense and repetitive: the phrase about using after entity resolution appears twice, and the readiness-authorization warning is repeated. Much of the parameter detail also duplicates the already-rich input schema, so several sentences do not fully earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity, the rich input schema, the output schema, and the annotations, the description is complete enough for correct invocation. It covers workflow placement, privacy constraints, key parameter rules, and the crucial limitation that completeness is not authorization; the output schema handles return-value explanation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents parameters thoroughly, but the description adds useful aggregated semantics such as the arguments.payload location, date precision and range constraints, verification-status labeling rules, admissible role values, and guidance to consult the schema for collection_context and provenance_ledger. Some content duplicates the schema, but it still adds enough meaning to exceed the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence gives a specific verb and resource: check verification status, source-family diversity, stakeholder coverage, and missing proof. It also positions the tool relative to the workflow, after entity resolution and before any readiness claim, which distinguishes it from entity-resolution and decision-checking siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use it: after entity resolution and before any readiness claim or verdict when evidence may be incomplete or one-sided. It also states a clear when-not constraint, do not treat completeness as readiness or authorization, but it does not explicitly name an alternative sibling tool to use for the authorization or decision-check step.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.