Sheet 01 · Datum
Datum
Writing code is instant now. Every guard I’ve shipped taught me the same lesson. A check that can’t fail is worse than no check, because it looks exactly like success.
So I break the code on purpose. Only the tests that notice count.
Datum is where that’s heading. A person writes down what each part of a system must do. Machines measure the code against it. Every proof expires the moment the code under it changes. Models can propose. They can’t approve, and they can’t grade their own work.
Datum · local-first · CLI + desktop app + CI · in active development · one user · 661 commits, Aug–Sep 2026
Try to fool it
Simulated · one part, one obligation
Obligation · Keys are serialised in canonical order
export function canonical(keys) { return keys.slice().sort(cmp) }expect(canonical(['b','a'])).toEqual(['a','b'])- Unregistered
- Unadmitted
- Expired
- Admitted
- Live
Registered. Not admitted yet. No check has been seen failing.
Sheet 02 · The loop
Hand in a ticket
Every change takes the same path: planned, built in 3 lanes, checked by something with no brain, then written in the logbook.
Idle · waiting for a ticket
- Entry 17,314 · stamped by the Guard