Decision records
Each record is a choice where we measured or argued an alternative and turned it down, with the numbers, so nobody argues it again without new evidence. A new decision lands in the same pull request as its code.
A record has Context, Options (with their numbers, date and setting, or "argued, not measured"), Decision, Consequences, Confirmation (the test or CI job that keeps it true) and Revisit if, as in MADR 4.
We don't rewrite an accepted record. To change a decision, bring what its "Revisit if" asks for
and add a new record; the old one gets Status: superseded by NNNN (YYYY-MM-DD). Fixing a typo,
a link or a renamed test is fine.
| # | Decision | Date |
|---|---|---|
| 0001 | One hand-written parser for six dialects, under a contract with check-json5 1.4 | 2026-10-13 |
| 0002 | No unsafe code | 2026-10-19 |
| 0003 | SipHash with OS keys for the duplicate-key index | 2026-10-20 |
| 0004 | Measure a speed-up first, and weigh it against what it costs | 2026-10-19 |
| 0005 | The nearest config file applies, and replaces the ones above it | 2026-10-20 |
| 0006 | --schema on the jsonschema crate, offline, in every build |
2026-10-18 |
| 0007 | SARIF written by hand, with one escaping rule for every output | 2026-10-14 |
| 0008 | A Rust binary in PyPI wheels, installed through a setup.py placeholder |
2026-10-13 |
| 0009 | Where the config search stops, and what a bad config may show | 2026-10-20 |
| 0010 | --schema limits are deterministic caps, not a timeout |
2026-10-20 |
| 0011 | cargo-release bumps the version, the tag starts the rest | 2026-10-21 |
| 0012 | Schema paths from a project stay in it, and their errors quote nothing | 2026-10-23 |
| 0013 | Messages in a plain catalog, picked from the locale, with machine output in English | 2026-10-28 |
| 0014 | --schema checks the document's own nodes, through jsonschema's Json trait |
2026-11-01 |
| 0015 | A language server in the CLI, on lsp-server, with messages in serde_json | 2026-11-06 |
| 0016 | An opt-in SchemaStore catalog over HTTPS | 2026-11-10 |
| 0017 | The docs pages are built from the Markdown with marked | 2026-11-11 |