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.