Eighteen Months of Claude Code
I started using Claude Code in February 2025. This is what the work looks like now — with the repositories public, so you can check every claim against the commit history instead of taking my word for it.
The Credential Is Part of the Interface
ACI got the shape of the call right and left the authority behind it alone. A tool reached three ways has three different credential stories, and the oldest one — ambient secrets in your home directory — is the one agents break.
Caveman Speak Optimizes the Wrong Variable
Dropping the articles does save tokens — by deleting the cheapest ones in the language. Meanwhile the plain summary costs less than the dense one, and the files written for agents were carrying the least.
It Only Sounds Like Philosophy
Strip the idioms off everything on this site and what's left isn't an opinion. It's a pile of unglamorous decisions made earlier than you'd like, and it costs more up front than the thing it replaces.
An Unreadable Document Is Not a Missing Field
A release checker collapsed three different failures into one answer and turned confusion into an accusation. The argument about AI and code makes the same mistake, at scale.
Everything Else Is a Cache
Five real production incidents — lost state, phantom stores, stranded beads — turned out to be one bug wearing different costumes: a bead's address was a filesystem path, not its own identity.
Kernel, Not Convention
cloister doesn't stop at keeping secrets out of a tool's hands. It confines the whole process — filesystem, network, everything — and the kernel enforces the line, not a policy the process agreed to follow.
State Is a Value
Identity is a signed pointer. Coordination is choosing which value is now.
The Harness Is the License
A Max subscription token authenticates fine against Anthropic's API and still gets rejected — because the subscription licenses the harness's use of a model on your behalf, not your own direct use of the token.
The Math That Didn't Pay Rent
ley-line-open tested whether cellular sheaves could make cache invalidation smarter than a hash check. A four-rung falsification ladder said no — and showed what does earn its keep instead.
The Part of Elixir I Kept
I built the textbook answer to agent orchestration — OTP supervision trees — and it worked. Then I deleted it, and kept what mattered.
The Schema Doesn't Know It's Code
mache projects CVE feeds, Notion exports, and agent audit logs into the same queryable filesystem it builds for source code — because the schema mechanism was never about code, it was about shape.
Your Linter Is a Query
mache parses your codebase into SQLite. A lint rule stops being a plugin you compile and becomes a SQL query you can read, diff, and ratchet.
Held, Not Issued
A bearer token makes the thief indistinguishable from you. Agent identity has to be something possessed, proven, and gone in five minutes.
Give Tools Calls, Not Keys
A compromised tool should have nothing to leak — because it was never handed the secret in the first place, only the call.
Verify by Hash, Not by Trust
Content addressing is a trust primitive: when a thing's name is the hash of its bytes, checking it stops meaning trusting anyone.
You Can't Know What an Agent Will Do
A map of open-source pieces that stand alone — and only make sense together.
Constraint-Driven Development: Why the 60% of Agent Projects That Survive All Look the Same
Constraints compose. Opinions don't. That's the whole difference between the systems that ship and the ones that don't.
The IDE Solved This Twenty Years Ago
Your IDE already knows code isn't text. Nobody gave agents the same courtesy.