Arxo normative change dossier 0.1
Verifiable dossier of a normative change for the Arxo Change Protocol. Assembled from producer artifacts named by a change set; nothing is executed by the builder. dossierCore is deterministic and dossierCoreHash is the sha256 of its canonical bytes; receipt sits outside the hash. Sections in order: composition (1), differences (3), goals (4), population (6), transition (7), dependents (8), states (9), open (10), guarantees (11). Intent classification (2) is carried inside differences. A dossier proves only what is formalized: the formalization measure and the world boundary are printed in every dossier, and a draft is never presented as law.
Versions
Section titled “Versions”Accepted schemaVersion: law.change-dossier/0.1.
Top-level fields
Section titled “Top-level fields”| name | type-or-$ref | required | description |
|---|---|---|---|
schemaVersion | "law.change-dossier/0.1" | yes | — |
changeSetId | string | yes | — |
changeSetHash | #/$defs/Digest | yes | sha256 of the canonical bytes of the change-set document. |
dossierCore | #/$defs/DossierCore | yes | — |
dossierCoreHash | #/$defs/Digest | yes | — |
receipt | #/$defs/Receipt | yes | — |
Enumerations
Section titled “Enumerations”| location | values |
|---|---|
properties/schemaVersion | "law.change-dossier/0.1" |
$defs/LegalStatus | "draft", "adopted", "in-force", "superseded" |
$defs/MeasureSide/properties/status | "taken", "not-taken" |
$defs/SideSummary/properties/kind | "edition", "draft", "case-release" |
$defs/Composition/properties/kind | "draft-amendment", "edition-change", "case-release" |
$defs/Composition/properties/units/items/properties/subject | "package", "case" |
$defs/SemdiffEntry/properties/kind | "added", "changed", "removed" |
$defs/Classification | "expected", "outside-boundary", "observed", "unverified" |
$defs/ResultView/properties/kind | "proposition", "position-count", "money", "number", "date", "boolean", "text", "value", "structured", "collection", "status" |
$defs/Goals/properties/status | "evaluated", "absent" |
$defs/Population/properties/status | "present", "absent" |
$defs/Transition/properties/status | "declared", "absent" |
$defs/InstitutionalDependency/properties/kind | "act", "parameter", "database", "registry", "authority", "form", "methodology", "other" |
$defs/InstitutionalDependency/properties/provenance | "formal", "reviewed", "inferred" |
$defs/Dependents/properties/rerun | "performed", "not-performed", "not-applicable" |
$defs/States/properties/formalization/properties/differential/properties/status | "byte-identical", "diverged", "absent" |
$defs/States/properties/operational/properties/status | "not-tracked", "tracked" |
$defs/ChannelState/properties/status | "current", "stale", "unknown" |
$defs/ComputationEntry/properties/kind | "evaluation", "clir" |
$defs/ComputationEntry/properties/status | "current", "stale" |
$defs/ImplementationTask/properties/kind | "republish", "repin", "recompute", "supply-fact", "review", "other" |
$defs/ImplementationTask/properties/evidence | "none", "attested", "verified" |
$defs/ObjectionResult/properties/class | "expert", "approved-criterion", "binding-decision" |
$defs/ObjectionResult/properties/status | "open", "accepted", "rejected", "superseded" |
$defs/Guarantee/properties/kind | "source-correspondence", "semantics-execution", "proofs", "trials" |
$defs/Guarantee/properties/status | "covered", "partial", "absent" |
$defs/Receipt/properties/reproduction/properties/status | "reproduced", "not-attempted", "failed" |
Raw schema
Section titled “Raw schema”Digest
Section titled “Digest”Type: string.
Type: string.
Type: integer.
LegalStatus
Section titled “LegalStatus”Values: "draft", "adopted", "in-force", "superseded".
Measure
Section titled “Measure”Formalization measure of an act: articles by level.
Type: object.
Required: articles, executable, interpreted, anchored, sourceOnly, excluded.
| name | type-or-$ref | description |
|---|---|---|
articles | #/$defs/Count | — |
executable | #/$defs/Count | — |
interpreted | #/$defs/Count | — |
anchored | #/$defs/Count | — |
sourceOnly | #/$defs/Count | — |
excluded | #/$defs/Count | — |
note | string | — |
MeasureSide
Section titled “MeasureSide”Measure of one side, or an explicit statement why it was not taken.
Type: object.
Required: status.
| name | type-or-$ref | description |
|---|---|---|
status | enum (2) | — |
measure | #/$defs/Measure | — |
note | string | — |
PackageRef
Section titled “PackageRef”Type: object.
Required: name, version.
| name | type-or-$ref | description |
|---|---|---|
name | string | — |
version | string | — |
contentHash | #/$defs/Digest | — |
SideSummary
Section titled “SideSummary”Type: object.
Required: kind, label.
| name | type-or-$ref | description |
|---|---|---|
kind | enum (3) | — |
label | string | — |
edition | string | — |
programHash | #/$defs/Digest | — |
artifactHash | #/$defs/Digest | — |
draftUnits | #/$defs/Count | — |
sources | #/$defs/Count | — |
Composition
Section titled “Composition”Section 1: what is compared, how deep it is formalized, and where the world ends.
Type: object.
Required: kind, legalStatus, units, measure, world.
| name | type-or-$ref | description |
|---|---|---|
kind | enum (3) | — |
legalStatus | #/$defs/LegalStatus | — |
jurisdiction | string | — |
units | array | — |
measure | object | — |
editions | object | Edition axis of an edition-change: the projection date of each side and the lifecycle state of every edition of the root on that date. |
world | object | — |
EditionSide
Section titled “EditionSide”Type: object.
Required: legalTime, states.
| name | type-or-$ref | description |
|---|---|---|
legalTime | #/$defs/Date | — |
states | array | — |
undatedNodes | #/$defs/Count | — |
SemdiffEntry
Section titled “SemdiffEntry”Type: object.
Required: id, kind, classification.
| name | type-or-$ref | description |
|---|---|---|
id | string | — |
kind | enum (3) | — |
hashBefore | #/$defs/Digest | — |
hashAfter | #/$defs/Digest | — |
classification | #/$defs/Classification | — |
Classification
Section titled “Classification”expected: declared in intent and observed; outside-boundary: observed but not declared while an intent exists, or touching the protected scope; observed: observed by at least one scenario, no intent declared; unverified: touched by the diff and executed by no scenario on either side.
Values: "expected", "outside-boundary", "observed", "unverified".
ScenarioRow
Section titled “ScenarioRow”Type: object.
Required: name, before, after, outcomeHashBefore, outcomeHashAfter, classification.
| name | type-or-$ref | description |
|---|---|---|
name | string | — |
legalTime | string | — |
before | string | — |
after | string | — |
outcomeHashBefore | #/$defs/Digest | — |
outcomeHashAfter | #/$defs/Digest | — |
resultHashBefore | #/$defs/Digest | — |
resultHashAfter | #/$defs/Digest | — |
resultDeltas | array | — |
classification | #/$defs/Classification | — |
ResultDelta
Section titled “ResultDelta”Type: object.
Required: id, before, after.
| name | type-or-$ref | description |
|---|---|---|
id | string | — |
before | anyOf (2) | — |
after | anyOf (2) | — |
ResultView
Section titled “ResultView”Type: object.
Required: kind, value.
| name | type-or-$ref | description |
|---|---|---|
kind | enum (11) | — |
value | string | — |
unit | string | — |
sourceType | string | — |
resultKind | string | — |
statusFields | object | — |
Differences
Section titled “Differences”Section 3 with the intent classification of section 2.
Type: object.
Required: verdict, semanticChange, semdiff, scenarios, classification, unobservedTouched, uncovered.
| name | type-or-$ref | description |
|---|---|---|
verdict | string | — |
semanticChange | boolean | — |
semdiff | object | — |
scenarios | object | — |
classification | object | — |
unobservedTouched | array | Norms touched by the diff that no scenario executed on either side: for them ‘outcome unchanged’ is absence of observation, not a finding. |
uncovered | object | — |
GoalRow
Section titled “GoalRow”Type: object.
Required: goal, before, after, basisAfter, newlyFailingWorlds, repairedWorlds, counterexamplesAfter.
| name | type-or-$ref | description |
|---|---|---|
goal | string | — |
before | string | — |
after | string | — |
basisAfter | boolean | — |
newlyFailingWorlds | array | — |
repairedWorlds | array | — |
counterexamplesAfter | #/$defs/Count | — |
Section 4. Goals are formal properties over outcomes with a recorded basis; policy criteria and empirical hypotheses are not goals and never appear here.
Type: object.
Required: status, rows, broken, alreadyFailed.
| name | type-or-$ref | description |
|---|---|---|
status | enum (2) | — |
verdict | string | — |
worlds | #/$defs/Count | — |
rows | array | — |
broken | array | — |
alreadyFailed | array | — |
note | string | — |
Population
Section titled “Population”Section 6. Statistics over a weighted bank is not a legal answer in any case.
Type: object.
Required: status, note.
| name | type-or-$ref | description |
|---|---|---|
status | enum (2) | — |
reportCoreHash | #/$defs/Digest | — |
verdict | string | — |
note | string | — |
Transition
Section titled “Transition”Section 7: the commencement regime as read, with its reading decision and status.
Type: object.
Required: status.
| name | type-or-$ref | description |
|---|---|---|
status | enum (2) | — |
general | #/$defs/Date | — |
exceptions | array | — |
readingDecision | string | — |
boundaryScenarios | array | Scenarios whose legal time lies on either side of a commencement date, by name. |
ConsumerRerun
Section titled “ConsumerRerun”Type: object.
Required: package, from, to, verdict, scenarios, changed, changedRows.
| name | type-or-$ref | description |
|---|---|---|
package | string | — |
label | string | — |
from | #/$defs/Date | — |
to | #/$defs/Date | — |
verdict | string | — |
scenarios | #/$defs/Count | — |
changed | #/$defs/Count | — |
rootEditions | object | — |
changedRows | array | — |
calendarSnapshotInjected | string | — |
concat | array | Packages added beyond the import closure for this rerun (replay as the family runs). |
health | #/$defs/BankHealth | — |
note | string | — |
BankHealth
Section titled “BankHealth”Health of the scenario bank on both sides: healthy — results present and no blocking issue; vacuous — no result; blocked — a blocking issue (AMBIGUOUS_CALENDAR, EDITION_NOT_APPLICABLE, rejected input); error — the run failed. ‘No change’ is evidence only where both sides are healthy.
Type: object.
Required: scenarios, healthyBothSides, vacuousBothSides, before, after, issues.
| name | type-or-$ref | description |
|---|---|---|
scenarios | #/$defs/Count | — |
healthyBothSides | #/$defs/Count | — |
vacuousBothSides | #/$defs/Count | — |
before | #/$defs/HealthTally | — |
after | #/$defs/HealthTally | — |
issues | object | — |
HealthTally
Section titled “HealthTally”Type: object.
Required: healthy, vacuous, blocked, error.
| name | type-or-$ref | description |
|---|---|---|
healthy | #/$defs/Count | — |
vacuous | #/$defs/Count | — |
blocked | #/$defs/Count | — |
error | #/$defs/Count | — |
InstitutionalDependency
Section titled “InstitutionalDependency”Type: object.
Required: id, kind, name, provenance, inWorld.
| name | type-or-$ref | description |
|---|---|---|
id | string | — |
kind | enum (8) | — |
name | string | — |
provenance | enum (3) | formal: an import or bridge in the lock; reviewed: named by the text and confirmed by a reviewer; inferred: found by search, not confirmed. Only formal dependencies enter any verdict. |
basis | string | — |
inWorld | boolean | — |
Dependents
Section titled “Dependents”Section 8: packages of the corpus that import the changed package, whether they were re-run against the AFTER state, and the institutional dependencies wider than import with their provenance class.
Type: object.
Required: consumers, rerun.
| name | type-or-$ref | description |
|---|---|---|
consumers | array | — |
rerun | enum (3) | — |
reruns | array | — |
institutional | array | — |
institutionalByProvenance | object | — |
note | string | — |
CompositionLegResult
Section titled “CompositionLegResult”Type: object.
Required: label, from, to, scenarios, changed, verdict.
| name | type-or-$ref | description |
|---|---|---|
label | string | — |
from | #/$defs/Date | — |
to | #/$defs/Date | — |
scenarios | #/$defs/Count | — |
changed | #/$defs/Count | — |
verdict | string | — |
changedScenarios | array | — |
CompositionResult
Section titled “CompositionResult”Composition of successive changes: transient — changed in some step but not end-to-end (a change that appears and is reverted, visible only stepwise); onlyEndToEnd — changed end-to-end but in no single step (an interaction of steps); inEveryStep — changed in every step.
Type: object.
Required: steps, endToEnd, transient, onlyEndToEnd, inEveryStep, note.
| name | type-or-$ref | description |
|---|---|---|
steps | array | — |
endToEnd | #/$defs/CompositionLegResult | — |
transient | array | — |
onlyEndToEnd | array | — |
inEveryStep | array | — |
note | string | — |
CoverageResult
Section titled “CoverageResult”Coverage of the finite product of declared axes by the scenario bank (profile read from the bank). A statement about the bank, not a legal answer.
Type: object.
Required: axes, cells, covered, coveredCells, note.
| name | type-or-$ref | description |
|---|---|---|
axes | array | — |
cells | #/$defs/Count | — |
covered | #/$defs/Count | — |
coveredCells | array | — |
scenariosWithoutAxis | #/$defs/Count | — |
note | string | — |
States
Section titled “States”Section 9: three independent states and the gap between them. ‘The act is in force, the model is incomplete’ is a regular row, not an error.
Type: object.
Required: legal, formalization, operational, gap.
| name | type-or-$ref | description |
|---|---|---|
legal | object | — |
formalization | object | — |
operational | object | — |
gap | array | — |
ChannelState
Section titled “ChannelState”Type: object.
Required: channel, status.
| name | type-or-$ref | description |
|---|---|---|
channel | string | — |
artifact | string | — |
shippedArtifactHash | #/$defs/Digest | — |
shippedSemanticHash | #/$defs/Digest | — |
shippedSchemaVersion | string | — |
status | enum (3) | — |
formDrift | boolean | The shipped document has another IR form (schemaVersion) than the current one: hashes differ even when norms do not. |
observedOn | #/$defs/Date | — |
note | string | — |
ComputationEntry
Section titled “ComputationEntry”Type: object.
Required: path, kind, status.
| name | type-or-$ref | description |
|---|---|---|
path | string | — |
kind | enum (2) | — |
at | string | — |
programHash | #/$defs/Digest | — |
artifactHash | #/$defs/Digest | — |
status | enum (2) | — |
Computations
Section titled “Computations”Index of stored computations that name the changed package: a list to review when the model changes, never a rewrite of their legal fate.
Type: object.
Required: scanned, entries, stale, current, note.
| name | type-or-$ref | description |
|---|---|---|
roots | array | — |
scanned | #/$defs/Count | — |
entries | array | — |
stale | #/$defs/Count | — |
current | #/$defs/Count | — |
note | string | — |
ImplementationTask
Section titled “ImplementationTask”Type: object.
Required: addressee, kind, what, basis, evidence.
| name | type-or-$ref | description |
|---|---|---|
addressee | string | — |
kind | enum (6) | — |
what | string | — |
basis | string | — |
evidence | enum (3) | Readiness evidence: none until the addressee attests; the dossier never assumes readiness. |
Implementation
Section titled “Implementation”Section 12: tasks derived from the dossier for those who must implement the change, with readiness evidence.
Type: object.
Required: tasks, note.
| name | type-or-$ref | description |
|---|---|---|
tasks | array | — |
note | string | — |
ReadingDivergence
Section titled “ReadingDivergence”Type: object.
Required: scenario, adopted, alternative.
| name | type-or-$ref | description |
|---|---|---|
scenario | string | — |
legalTime | string | — |
adopted | string | — |
alternative | string | — |
ObjectionResult
Section titled “ObjectionResult”Type: object.
Required: id, scenario, class, claim, status, history.
| name | type-or-$ref | description |
|---|---|---|
id | string | — |
scenario | string | — |
class | enum (3) | — |
claim | string | — |
source | string | — |
filedOn | #/$defs/Date | — |
underAdopted | string | Outcome of the objection scenario under the adopted reading. |
underAlternative | string | — |
status | enum (4) | — |
history | array | — |
Adversarial
Section titled “Adversarial”Section 5: competing readings compared by scenario classes and objections with a class and a recorded history. Entering the bank gives a scenario no legal force.
Type: object.
Required: note.
| name | type-or-$ref | description |
|---|---|---|
readings | object | — |
objections | array | — |
note | string | — |
Section 10: what the dossier leaves open.
Type: object.
Required: unresolvedFindings, openQuestions, limitations, externalGaps.
| name | type-or-$ref | description |
|---|---|---|
unresolvedFindings | array | — |
openQuestions | array | — |
limitations | array | — |
externalGaps | array | — |
Guarantee
Section titled “Guarantee”Type: object.
Required: kind, status, evidence, notCovered.
| name | type-or-$ref | description |
|---|---|---|
kind | enum (4) | — |
status | enum (3) | — |
evidence | array | — |
notCovered | string | — |
DossierCore
Section titled “DossierCore”Type: object.
Required: title, composition, differences, goals, population, transition, dependents, states, open, guarantees.
| name | type-or-$ref | description |
|---|---|---|
title | object | — |
composition | #/$defs/Composition | — |
differences | #/$defs/Differences | — |
goals | #/$defs/Goals | — |
population | #/$defs/Population | — |
transition | #/$defs/Transition | — |
dependents | #/$defs/Dependents | — |
chain | #/$defs/CompositionResult | — |
coverage | #/$defs/CoverageResult | — |
computations | #/$defs/Computations | — |
adversarial | #/$defs/Adversarial | — |
implementation | #/$defs/Implementation | — |
states | #/$defs/States | — |
open | #/$defs/Open | — |
guarantees | array | Section 11: four guarantees printed separately, each with what it does not cover. |
Receipt
Section titled “Receipt”Outside the core hash: who assembled the dossier from which bytes, and whether the producers were re-executed.
Type: object.
Required: generator, inputs, reproduction.
| name | type-or-$ref | description |
|---|---|---|
generator | string | — |
generatorVersion | string | — |
inputs | array | — |
repository | object | — |
reproduction | object | — |
Documentation for Arxo. Writings — blog.arxo.io.
Anonymous visit counts on stats.arxo.io, no cookies.