{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://apexclawai.com/apexclaw-receipts/schema/v1",
  "title": "ApexClaw Receipts v1",
  "description": "The receipt format for the evidence objects ApexClaw's governance audit produces for an autonomous AI agent. It is a schema used inside our own governance audit, not a standalone protocol and not an industry standard. Published so it can be implemented, criticised and cited by anyone, including competitors.",
  "version": "1.0.0-draft",
  "status": "DRAFT — not a standard, not a protocol, and not ratified by any standards body. Do not cite as one.",
  "published": "2026-08-07",
  "last_modified": "2026-08-26",
  "license": "CC-BY-4.0",
  "objects": {
    "agent_passport": {
      "required": [
        "passport_id",
        "agent_id",
        "human_accountable_owner",
        "mission",
        "permissions",
        "lifecycle_state"
      ],
      "purpose": "Identity. Makes an action attributable to a named person."
    },
    "policy_decision": {
      "required": [
        "policy_version",
        "decision",
        "gates_evaluated",
        "gates_passed",
        "decided_at"
      ],
      "enum_decision": [
        "ALLOW",
        "DENY",
        "REQUIRES_HUMAN_APPROVAL"
      ],
      "purpose": "Authorization. Deterministic: same inputs, same verdict, every time."
    },
    "approval": {
      "required": [
        "approval_id",
        "approved_by",
        "payload_hash_bound",
        "single_use",
        "expires_at"
      ],
      "purpose": "Human consent bound to one exact payload, usable once, with an expiry."
    },
    "action_intent": {
      "required": [
        "intent_id",
        "effect_class",
        "payload_hash",
        "requested_at"
      ],
      "purpose": "What the agent proposes to do, hashed, before it does it."
    },
    "execution_receipt": {
      "required": [
        "receipt_id",
        "receipt_chain",
        "actor_identity",
        "action_intent",
        "policy_decision",
        "execution",
        "outcome",
        "signature"
      ],
      "purpose": "Tamper-evident proof of one action and the authorization that permitted it."
    },
    "refusal_receipt": {
      "required": [
        "receipt_id",
        "actor_identity",
        "action_intent",
        "policy_decision",
        "refused_reason",
        "signature"
      ],
      "purpose": "A refusal is evidence too. A record containing only successes is not a record."
    },
    "revocation": {
      "required": [
        "revocation_id",
        "subject",
        "revoked_by",
        "revoked_at",
        "time_to_effect_seconds"
      ],
      "purpose": "Withdrawal of authority. time_to_effect must be MEASURED, never asserted."
    },
    "replay_job": {
      "required": [
        "replay_id",
        "receipt_range",
        "reconstructed_at"
      ],
      "purpose": "Reconstruction of a sequence for incident review."
    }
  },
  "invariants": [
    "Deny by default. Anything not explicitly permitted is refused.",
    "Fail closed. A control that cannot evaluate must refuse, never allow.",
    "Approvals are payload-bound, single-use and expiring.",
    "Refusals emit receipts.",
    "Receipts are hash-chained; altering one must break verification.",
    "time_to_effect on revocation is measured on a live path, never asserted.",
    "A past success receipt is NOT proof of present runtime health."
  ],
  "conformance": {
    "note": "No certification exists for this schema and ApexClaw does not issue one. Conformance means the objects validate and the invariants hold under test — nothing more."
  },
  "crosswalk": "https://apexclawai.com/standards/",
  "formerly": "Published 2026-08-07 through 2026-08-25 under a different file name and a name that collided with an unrelated industry naming proposal. Renamed 2026-08-25 to a vendor-prefixed name, and reframed as a receipt format used inside ApexClaw's own governance audit rather than a freestanding specification."
}
