{
  "tool_id": "art-151-agent-obo-mandate-validator",
  "kernel_id": "art-151-agent-obo-mandate-validator",
  "display_name": "Agent On-Behalf-Of (OBO) Mandate Validator",
  "tool_version": "1.0.0",
  "mandate_type": "compliance_mandate",
  "purpose": "Validate an agent on-behalf-of (OBO) mandate: subject (the user being represented), bounded scope array, intent string, and a non-expired validity window (caller-supplied now_unix, no clock reads). Mismatch or expiry returns REFUSE. Aligns with the AP2 mandate-chain pattern (art-01). Consumes scope-revocation audit (art-150), feeds task lifecycle validator (art-152). Zero network, zero PII.",
  "control_description": "Validate an agent on-behalf-of (OBO) mandate: subject (the user being represented), bounded scope array, intent string, and a non-expired validity window (caller-supplied now_unix, no clock reads). Mismatch or expiry returns REFUSE. Aligns with the AP2 mandate-chain pattern (art-01). Consumes scope-revocation audit (art-150), feeds task lifecycle validator (art-152). Zero network, zero PII.",
  "declared_inputs": [
    "art-150-mcp-tool-scope-revocation-auditor"
  ],
  "declared_outputs": [
    "art-152-mcp-task-lifecycle-validator"
  ],
  "kernel_digest": "sha256:132e5aaab12c312f864cf53a616693c8bd1b4ba66a3813c9e3db812d4b04bc40",
  "trust_label": "deferred -- deterministic source published, zkVM proof not yet generated",
  "data_vintage": "2026-07-10",
  "last_validated": "2026-07-10",
  "conformance_fixtures_vendored": true,
  "compute_proof_ready": "ready",
  "wave": 27,
  "source_url": "https://ainumbers.co/chaingraph/art-151-agent-obo-mandate-validator.html",
  "generated_at": "2026-07-25T20:02:55.601Z"
}
