Arxo Change Protocol
The Arxo Change Protocol turns a change of the rules into an object: the states before and after, the world the change applies to, the mode of entry into force, and the dossier assembled from them. Where the Arxo Fact Protocol and the Arxo Decision Protocol answer what follows from the rules for these facts, the Change Protocol answers what would change if the rules changed.
The change set
Section titled “The change set”A change-set names one normative change. Its load bearing parts are:
- the
units: one or more pairs of states —beforeandafter— each a dated edition of a package, a draft model over it, or a release of a case package; - the
world: the dependency closure the change is read against, plus aboundarystatement saying what the world does not contain — anything outside the closure is outside the dossier by construction; - the
intent: the expected changes stated before measuring, the protected goals and the protected scope; - the
commencement: the mode of entry into force; - the
producers: the artifacts the dossier is assembled from, each with the tool that made it, its path and the hash of its bytes. The dossier builder reads them and never re-executes anything.
A small change set — one package, two dated editions, one producer artifact — looks like this:
{ "schemaVersion": "law.change-set/0.1", "id": "urn:change:demo-parking-fine-2026", "kind": "edition-change", "title": { "en": "City parking fines, 2025 edition against 2026 edition" }, "legalStatus": "draft", "units": [ { "subject": "package", "package": "demo.parking", "before": { "kind": "edition", "label": "2025 edition", "edition": "PARKING_2025", "editionDate": "2025-01-01" }, "after": { "kind": "edition", "label": "2026 edition", "edition": "PARKING_2026", "editionDate": "2026-01-01" } } ], "world": { "root": "demo.parking", "closure": [ { "name": "demo.parking", "version": "1.0.0" } ], "boundary": "Only the city parking package; the national traffic rules it references are pinned and unchanged." }, "producers": [ { "tool": "scenarios", "path": "analysis/scenarios.json", "sha256": "sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef", "role": "end-to-end" } ]}The legalStatus names the status of the after state, not of the model:
a draft is not law.
The dossier
Section titled “The dossier”A change-dossier is the case for or against the change, assembled from the producers’ artifacts: what was measured, which goals held, which objections were raised and answered, which computations were re-run under the old program, and what remains unverified. Its deterministic core carries its own hash, so a reader can tell whether the dossier in front of them is the one the builder built.
Three invariants hold for every dossier. It proves only what is formalized — the measure and the world boundary are printed always. Statistics over a sample are not a legal answer for a case. And accepting a scenario into the bank, objections included, gives it no legal force.
Documentation for Arxo. Writings — blog.arxo.io.
Anonymous visit counts on stats.arxo.io, no cookies.