In this section: Examples

Before and After a Legibility Audit

Before a capability has been through the audit, changing it is mostly guesswork dressed up as confidence. An engineer opens the code, reads the function that seems relevant, and forms a theory about why it works the way it does. Sometimes that theory is right. Often it's right about the mechanism and wrong about the reason, because the reason lived in a Slack thread, a postmortem, or a conversation that happened before anyone currently on the team joined. An agent asked to make the same change has even less to go on. It can read the code, but it can't read the room the code was written in.

That gap is where the risky changes come from. Not from careless engineers, but from a system that never wrote down its own boundaries. A change that looks safe by every signal the code offers can still break an exception path that only existed because of a customer complaint two years ago, and nothing in the repository says so.

After the audit, and after the resulting contract exists, the same capability looks different from the outside even if not one line of its implementation has changed. The behavior is declared, not inferred. The boundaries are explicit: what the capability owns, what it depends on, and what it deliberately refuses to do. The history that used to live in someone's memory is captured as the constraint it created, not just as an anecdote about an incident.

The practical difference shows up at the moment of change. Before, extending the capability means reading everything nearby and hoping you've found all the exception paths. After, extending it means checking the contract first, seeing what's already promised, and knowing exactly which parts are safe to touch and which parts are load-bearing for a reason the contract already states. That's the shift the whole methodology is built around: not making the code smarter, but making what the code already knows visible to whoever has to work with it next.