Ledger
Every change versioned, recorded, and verified.
A living system changes constantly: a skill gains a workflow, a hook tightens a rule, a doc gets rewritten, a site ships. Ledger is the part that keeps track. Every change is classified and versioned, recorded in one append-only place, and gated on a fresh integrity check before it ships, so there’s always a single honest answer to “what changed, when, and at what version.”
Why it exists
When a system is one program, its version is easy. When it’s an operating system made of skills, hooks, docs, an execution engine, and a dozen deployed sites, “what version am I on” stops having an obvious answer. Changes pile up quietly. A doc drifts from the code it describes. A site ships and nobody can say what was in it. The record rots, and you stop trusting it.
Ledger exists so the record never rots. Instead of hoping everyone remembers to bump a number and write it down, the accounting is part of the system, classified, recorded, and checked the same way every time.
How it works
Every change gets classified into one of three sizes: a patch for a fix or a doc tweak, a feature for something additive, a major for a breaking change. That classification sets the version bump, and it applies at two levels at once: the OS as a whole, and each component that moved (the Algorithm, a skill, a hook, the docs). One umbrella version, many component versions, all bumped by the same rule.
Under that sits an append-only update registry. Nothing is edited in place or quietly overwritten; each change is appended as a new entry, and the human-readable changelog is generated from those entries rather than hand-maintained. The registry is the source of truth; the changelog is a view of it.
Two guards keep the record honest. Shipping is gated on a fresh integrity check, a full pass over the system’s own references, version anchors, and links, so nothing goes out on top of a broken tree. And drift detection watches for changes that landed without a bump; when unbumped edits accumulate, it nags, so the version can’t silently fall behind reality.
Where it fits
Ledger is a supporting component: the bookkeeping the rest of the system leans on. The Algorithm and the skills do the work; Ledger makes sure the work is accounted for. It pairs naturally with the hooks, which enforce the checks, and with the docs, which stay pinned to the version they describe.
It reaches the outside world too. Every deploy of a site, an app, or a worker records an event: what shipped, where, at what version, and whether it succeeded. So the same question that has one answer inside the system has one answer outside it, across everything you’ve published.
What it feels like
Mostly it feels like never having to wonder. You ask what version you’re on and there’s a real answer, for the whole system and for the one piece you just touched. You look back at a change from last month and the entry is right there, in order, never rewritten. And when you’ve been moving fast and forgetting to keep score, the system reminds you before the record drifts, so the history stays something you can actually trust.
