{
  "contract_version": "agentreceipts.parse-decision.v1",
  "canonical_url": "https://agentreceipts.app/.well-known/agentreceipts-decision.json",
  "content_type": "application/json",
  "schema_url": "https://agentreceipts.app/.well-known/parse-decision-schema.json",
  "scenario_catalog_url": "https://agentreceipts.app/alpha/controlled-scenarios.json",
  "purpose": "Deterministically decide whether a public scenario should call AgentReceipts, verify an existing receipt, emit metadata-only signal evidence, or do nothing.",
  "decision_vocabulary": [
    "call_agentreceipts",
    "verify_existing_receipt",
    "emit_metadata_signal_only",
    "do_not_call",
    "fail_closed"
  ],
  "decision_rules": [
    {
      "scenario_id": "agentic_402_action",
      "decision": "call_agentreceipts",
      "decision_reason": "A delegated gated action needs a bounded mandate, sandbox entitlement flow, receipt, and verification.",
      "call_agentreceipts": true,
      "selected_object_types": ["agent_mandate", "settlement_intent_preview", "action_receipt", "receipt_verification"],
      "selected_tool_or_operation": "inspect_agentic_402_sandbox",
      "selected_template": "agentic-402-sandbox",
      "verification_method": "bounded_public_receipt_check",
      "signal_option": "optional_metadata_only"
    },
    {
      "scenario_id": "delegated_consequential_action",
      "decision": "call_agentreceipts",
      "decision_reason": "A consequential delegated action needs explicit authority and durable proof before reuse.",
      "call_agentreceipts": true,
      "selected_object_types": ["agent_mandate", "action_receipt", "receipt_verification"],
      "selected_tool_or_operation": "create_mandate_then_receipt",
      "selected_template": "agent-mandate",
      "verification_method": "bounded_public_receipt_check",
      "signal_option": "optional_metadata_only"
    },
    {
      "scenario_id": "existing_receipt_verification",
      "decision": "verify_existing_receipt",
      "decision_reason": "An existing receipt should be checked without creating a duplicate proof object.",
      "call_agentreceipts": false,
      "selected_object_types": ["receipt_verification"],
      "selected_tool_or_operation": "verify_public_receipt_fixture",
      "selected_template": null,
      "verification_method": "bounded_public_receipt_check",
      "signal_option": "optional_metadata_only"
    },
    {
      "scenario_id": "metadata_signal_only",
      "decision": "emit_metadata_signal_only",
      "decision_reason": "A completed public-safe flow may emit an explicit metadata-only observation without creating another receipt.",
      "call_agentreceipts": false,
      "selected_object_types": ["metadata_signal"],
      "selected_tool_or_operation": "submit_metadata_only_signal",
      "selected_template": null,
      "verification_method": null,
      "signal_option": "metadata_only_only"
    },
    {
      "scenario_id": "informational_non_consequential",
      "decision": "do_not_call",
      "decision_reason": "Reading public information needs no mandate, receipt, verification, or telemetry.",
      "call_agentreceipts": false,
      "selected_object_types": [],
      "selected_tool_or_operation": null,
      "selected_template": null,
      "verification_method": null,
      "signal_option": "none"
    },
    {
      "scenario_id": "unsupported_or_malformed",
      "decision": "fail_closed",
      "decision_reason": "Insufficient or unsupported input must not fabricate a tool, template, receipt, or verification result.",
      "call_agentreceipts": false,
      "selected_object_types": [],
      "selected_tool_or_operation": null,
      "selected_template": null,
      "verification_method": null,
      "signal_option": "none"
    }
  ],
  "unsupported_behavior": {
    "decision": "fail_closed",
    "reason_code": "INSUFFICIENT_OR_UNSUPPORTED_INPUT",
    "retry_allowed": false,
    "safe_next_action": "inspect_public_contract"
  },
  "boundary": "This contract expresses public selection semantics only. It does not grant private authorization, execute tools, prove external outcomes, or expose private policy.",
  "public_safe": true,
  "metadata_only": true,
  "stability": "alpha"
}
