Documentation menu

JSON Schemas

Status: Working Draft. These artifacts describe protocol snapshot draft; they are not a stable compatibility promise.

The mutable schema snapshot lives beneath schema/draft/; frozen releases use matching exact YYYY-MM-DD directories. Public $id values mirror the selected snapshot under https://agenthooksprotocol.org/schemas/<snapshot>/: draft while mutable and the publication date after freezing. All $ref values are relative file references or same-document fragments so validation can run offline. Unknown object fields remain allowed unless the selected protocol revision explicitly forbids a known field in a particular context.

These schemas encode the current draft shape so prototypes can interoperate. Where the canonical specification lists an open question, the corresponding schema choice is provisional evidence for review, not a resolution of that question.

Run the dependency-free checks from the repository root:

python3 tools/check_conformance.py

The checker implements the JSON Schema subset documented in ../tools/README.md. A full Draft 2020-12 validator may also be used.

Upload configuration is defined by content-upload.schema.json; the HTTP 201 upload response uses content-upload-receipt.schema.json (ref, size, and sha256). Event bodies use content-reference.schema.json (ref only). References are receiver-allocated, immutable, and authorized by credential-derived scope. Subscriptions remain harness-local. Registration, capability, and control configuration ignore unknown fields while validating recognized fields. Unknown effect types and operation values still reject a response atomically.

event.schema.json defines the shared Event union for interception and observation. The intercept request separately restricts event types to its supported subset; observation-only events do not become interceptable.