ruling-2026-08-26-persistence-boundary-refinementruling-2026-08-25-educational-resetThis refinement was first recorded inside the amendment that moved main to the
1.x line. Those are two unrelated decisions — a branch policy and a data
doctrine — and folding them into one authority record makes it impossible to
cite, supersede, or argue with either separately. Raised in review of PR #24 and
corrected here.
The educational-reset ruling states:
JSON/TOML is canonical for committed governance; SQLite is canonical for operational state; Markdown is generated.
Read literally, that is false of this codebase. Deleting the entire
governance/ directory leaves the organization fully working, because outcomes
and SOWs are read from SQLite and the JSON is never read back.
sovereign.toml, rulings in
docs/rulings/ — are canonical in files and are genuinely read back.
Editing sovereign.toml changes behaviour on the next open.governance/**/*.json is a derived projection, not a source. It is
written for inspection and diffing and never read back.Organization.rule() stores a
ruling in SQLite and projects files from it. That is a runtime organization
ruling — a governed decision made by an actor inside a running
organization — and it is distinct from the repository product rulings in
docs/rulings/, which humans write, review, and commit. Both are called
“ruling”; only the second is canonical in files. The teaching text must keep
these apart.docs/persistence-boundary.md is the explanatory text for this ruling.scripts/verify_projections.py checks by default and repairs only under
--reconcile.