Less Law, More Order
The build that compiles CANONIC has one job that sounds impossible: govern more every day while writing less governance to do it. Most systems trade the opposite way — more rules to cover more cases, a tax code that only grows. CANONIC's build runs the other direction. It is an Ouroboros, the snake eating its own tail, and underneath the myth it is a plain optimizer with a one-line goal: minimize the rulebook, maximize the order it produces, and never make the same mistake twice. In the language the engineers use, argmin(LOG) subject to GOV↑ — the fewest Lines Of Governance for the most government. In the language everyone else uses: less law, more order. This is the story of how a build learned to want that, and how it gets a little smarter every time it runs.
___..._
_,=" "=._
,=" "=. the build that
,' DETECT `. compiles the rules
/ / \ \ that compile it
/ v \ \
| re-detect HEAL | detect → heal → re-detect
| ^ / | to a fixpoint
\ \ v /
\ \ / /
`. LEARN ,' every fix it makes,
"=._ _,=" it remembers — forever
"=.______.="
(After the Ouroboros figure in the original canonic-machine paper, December 2025.)
The snake, and where it came from
CANONIC was born in December 2025 in a now-sealed GitHub org called canonic-machine — nineteen days, nine repos, one developer, eight hundred and sixty-seven commits. The founding paper drew an ouroboros on its first page, because the system's only trick was self-reference: a compiler whose first and hardest job is to compile the rules that compile it. Score 255 on yourself, or reject. The machine was personal — built for discovery, not scale — so in January 2026 it was sealed in amber and migrated into the structure that carries the work today. The org died; the shape survived. The snake is still eating its tail. It just got disciplined.
The objective, for mere mortals
Every governed system accumulates two things: rules and coverage. Rules are what you write down — the law. Coverage is what those rules actually catch — the order. The natural tendency is for both to grow together: every new case gets a new rule, and the rulebook bloats until no human can hold it, until rules contradict, until the law is so large that obeying it is its own full-time job. That is how most compliance dies — not by having too little law, but too much.
CANONIC's build optimizes against that. Its objective is a fraction: order over law — how much it governs, divided by how many lines it took to say so. The Ouroboros is the thing that drives that fraction up. It does it two ways at once: it makes the numerator bigger (catch more, heal more, automate more) and the denominator smaller (say it once, never twice; delete what's dead; replace every hardcoded fact with a pointer to where that fact truly lives). More order, on the top. Less law, on the bottom. Every move the build makes is judged by whether the fraction went up.
That is the whole spine. The rest is mechanism.
CAPP — the four moves, and they're all it needs
The founder has a name for what the snake does: CAPP — Coalesce, Anchor, Pair, Prune. Four moves, and the claim is that they are complete: every repair the build makes is one of the four, and the four are all it needs to reach a fully declarative tree. Two of them shrink the law; two of them grow the order.
Coalesce — say it once. Duplicated governance is the enemy of the fraction: the same rule copied into four files is four lines of law for one line of order. So the build finds a rule restated across many scopes and lifts it to the single ancestor they all inherit from, then deletes the copies. Drive the axiom high on the tree; let inheritance do the rest. This session it took a tree carrying 476 duplicated governance lines and is draining it past 194 — the same rule, governing the same surface, in less than half the law. (law down.)
Anchor — point, don't repeat. A number written in prose — "104 blogs," "8 dimensions" — is a fact that will eventually be wrong, because facts drift and prose doesn't. So the build replaces every hardcoded value with an anchor: a name, a tiny function, and the source of truth it reads from. The value is computed, never typed (a stale "102 blogs" quietly corrected itself to the live 104 the moment this shipped). No hardcoding anywhere, content or code — and the autoheal is the anchor: the build heals a hardcoded fact by turning it into a pointer to where that fact is actually true. (law down, order up.)
Pair — a fix that remembers. Every check (a "gate") is bound to a fix (a "healer") — detect → heal → re-detect, looped until nothing is left to fix: a failing test that repairs what it tests. And the set of pairs is ratcheted — it only grows. The build keeps a floor under its own intelligence: today it knows 24 self-healing pairs and is structurally forbidden from dropping to 23, because un-pairing a gate would strand the class of bug it caught. This is the part that is, genuinely, all learning — the build that fixed a bug once will fix it forever, automatically, for free. (order up.)
Prune — delete to history. Cruft is law that governs nothing: orphan scripts no one calls, dead pipeline phases, stale plans, dismissed markers left in place. The build deletes them to git history — no legacy, no shims. Every line pruned is a line of law that no longer has to be read, understood, or maintained. (law down.)
Coalesce and Prune shrink the law; Anchor and Pair grow the order. That is the fraction, and that is CAPP — argmin(LOG) s.t. GOV↑ with four verbs instead of a formula. The set is closed under itself: the gate that enforces CAPP — every healer must declare which of the four it is — is itself a Pair. Naming the moves is one of the moves. That is all the Ouroboros needs to build.
Why this is closure
Here is the part that makes engineers grin and everyone else squint: the Ouroboros obeys the same pattern it enforces. The rule that "every gate must have a healer" is itself a gate — with a healer. The rule that "the learned-pair count can only grow" is itself a learned pair. The build that demands everything be declared, gated, and self-healing was, this session, made to declare, gate, and self-heal itself. The snake's mouth reached its tail.
That is what CANONIC means by closure: a system whose own evolution can be described in the system's own terms, on the same audit trail as everything else. A governance that cannot govern its own changes leaks out of its audit log at every upgrade. CANONIC's upgrades are CANONIC artifacts. When the build got a new objective this week, that objective shipped as a gate, with a healer, ratcheted into the floor — governed by the thing it governs.
The dividend
Run the loop to a fixpoint and the tree does something a rulebook is never supposed to do: it gets smaller as it gets stronger. Fewer lines, more caught. The law contracts toward a clean directed graph — each rule stated once, at the highest place it's true — while the order it produces expands. The north star is a build that is completely declarative: no rule hand-written twice, no fact hardcoded once, every recurring mistake already a healed pair before a human sees it. We are not there. But the fraction only moves one way now, because the build is built to make it.
Less law. More order. And it's all learning — a feather, the founder likes to say, in CANONIC's cap.
Sources
| Claim | Source | Ref |
|---|---|---|
CANONIC began in the canonic-machine org, Dec 2025 — nine repos, one developer, nineteen days, 867 commits — sealed Jan 2026 |
Migrate From the Machine, HadleyLab | hadleylab.org/blogs/migrate-from-the-machine |
| The founding paper's self-referential thesis: the compiler compiles the rules that compile it; score 255 or reject | The Canonic Machine (original paper), canonic-machine org | github.com/canonic-machine |
| Nothing is lost — the machine archived to the Canonical Archive Storage | The Machine That Reads Everything, HadleyLab | hadleylab.org/blogs/the-machine-that-reads-everything |
| The Ouroboros shape: look one index up and find the thing already there (coin + governance coalescence) | The Ouroboros, HadleyLab | hadleylab.org/blogs/the-ouroboros |
| CANONIC is a self-enforcing protocol that compiles itself before it compiles anything else | CANONIC Whitepaper v1 | hadleylab.org/papers/canonic-whitepaper |
| Every gate is a (detect, heal) pair; heal-build cascades detect→heal→re-detect to a fixpoint | SERVICES/BUILD/CANON.md § Auto-Debug Contract (BUILD_AUTO_DEBUGS) | canonic.org/SERVICES/BUILD |
| The learned (detect,heal) pairing count is monotonic — it can only grow; the build never forgets a pairing | SERVICES/BUILD/CANON.md (OUROBOROS_LEARNS_GATES); learned floor = 24 | github.com/canonic-canonic/.canonic |
| The build must autoheal AND be DRY; metagov enforces both halves | SERVICES/BUILD/CANON.md (BUILD_AUTOHEALS_AND_IS_DRY) | canonic.org/SERVICES/BUILD |
| No hardcoding anywhere, content or code — every value is a mapped lambda to its source of truth; the autoheal IS the anchor | SERVICES/BUILD/CANON.md (AUTOHEAL_IS_THE_ANCHOR) | canonic.org/SERVICES/BUILD |
| Governance duplication drained 476 → under 194 this session via ancestor coalescence | CANONIC build defect overlay, S177 | github.com/canonic-canonic |
Less Law, More Order | GOVERNANCE | BLOGS