Research · Schemas

Engineering Decision Schema

A shared set of JSON Schemas for engineering-decision artifacts, so that an expert decision, the run that produced it and the profiling data behind it can all be exchanged, validated and checked by anyone without asking the authors how the files are shaped.

What this schema set is

The engineering-decision schema set is three JSON Schemas written for JSON Schema draft 2020-12, plus a small validator package. It holds no data of its own: it defines only the shapes. Several downstream repositories depend on it as the one shared artifact, and each schema carries its canonical identifier at this page's address, so a document that names its schema resolves to the copy published here.

The schemas are published in the public engineering-decision-schema repository under the Apache License 2.0, and the copies hosted on this page at research/engineering-decision-schema/schemas/ are byte-for-byte the same files. A tool that needs a schema fetches it server-side or reads it from the public repository; browsers reading this page do not fetch the schemas.

The three document kinds

Episode

One expert decision: the state before, what was observed, what was considered and rejected, what was done, the state after, and the judgment.

schemas/episode.schema.json

Run manifest

One reproducible run: design and PDK commits, tool versions, and the sha256 of the inputs.

schemas/run-manifest.schema.json

zkProf report

One profiling run of a proving workload: primitive-level timing attribution plus the deployment context it was measured under.

schemas/zkprof-report.schema.json

Each file above links to the schema itself, and each schema's $id is the canonical address on this page. The validator package, examples and conformance tests live in the repository.

Where to get it

This page itself is static and makes no network calls: it loads only fonts and stores nothing. Reading a schema from a browser tab here is possible by opening its link directly; programmatic fetching goes through a server-side client or a clone of the public repository.
🔒 All inputs are processed locally in your browser. No data is transmitted. Do not enter real personal data — use synthetic or anonymised inputs only.