correctness
the methods that make agent-written software hold up: proofs, properties, replay, and receipts.
software an agent wrote in an afternoon is cheap to produce and expensive to trust. the answer is not to write less of it; it is to make wrongness cheap to find. every lesson in this category names a specific mechanism that catches a specific class of error, drawn from the projects Hraness actually runs.
the series starts from a working definition of unreasonably robust programming, then walks the toolbox: formal proofs, stateful testing, property tests, mutation, claims ledgers, replay, and the release machinery that proves where bytes came from. each lesson links the projects that use the technique, and each says what the technique cannot show.
lessons
- unreasonably robust programming: a working definitionstart here · make invalid states unrepresentable and wrongness cheap to find
- lean: proving the books balance before the tests runsubscriber · a proof checker as a build step
- tla+: checking every interleaving a test can't reachsubscriber · bugs caused by the order of events
- hegel: stateful tests that find the three-step bugsubscriber · crash between commit and fsync, then come back
- property tests everywhere: parsers, projections, and round tripssubscriber · state a law, then let generated inputs try to break it
- kani: checking every possible number a function can seesubscriber · bounded model checking for the arithmetic tests only sample
- claims ledgers: writing down what you did not provesubscriber · list each promise beside its evidence and its date
- planted bugs: how to test the testssubscriber · plant a bug and see whether the tests fail
- invalid states: types, result, and parsing from unknownsubscriber · types that cannot hold a wrong value, and parsers at every edge
- two implementations, one spec: parity as a test oraclesubscriber · when typescript and rust disagree, the contract has a gap or a bug
- replay without clocks: deterministic reruns as evidencesubscriber · if you can replay it, you can debug it
- direct: every screen by url, deterministicallysubscriber · fixed data at a stable url gives the same screen every time
- stylex: one typed design system across every sitesubscriber · compile-time css with the portfolio palette
- releases that prove their originsubscriber · signed evidence of the commit and run that built each release
- rust where it earns its place: memory-critical coressubscriber · rust where a memory bug corrupts state, typescript where the risk is logic
projects
- algal · organisms whose runs produce receipts you can replay offline, byte for byte.
- gobstopper · a local vault for agent sessions with proofs over its transcripts.
- vhalla · peer-to-peer rooms with specs, mutants, and quorum-checked delivery.
by hraness · drafted with ai assistance