Ready for human
I run a coding session per repository and they can't talk to each other. For a while the thing carrying messages between them was me, and I kept getting it wrong.

I run a coding session per repository and they can't talk to each other. For a while the thing carrying messages between them was me, and I kept getting it wrong.

I put my working practice on a public shelf, and then took some of it back off again. Working out which half was the interesting part.

rust-tool-base needed go-tool-base's control over which commands an AI agent may call. Closing the gap meant doing the opposite of what Go did.

An agent is a model in a loop with tools it can really call and results it can really see. Taking the ReAct pattern apart in go-tool-base.

Recording a voice clone in a wardrobe, what it sounds like when the accent slips, and the line I drew about where my synthetic voice may go.

A soft launch for Scout, an AI co-dungeon-master for long tabletop campaigns, and why it will never speak to the players.

Opening a public marketplace for agent workflows meant publishing an attack surface, and then having to defend it from my own convenience.

The one real user of my photo tool was already faking a feature with a workaround. That workaround was the specification.

Burned out more than once across twenty years, and the point is that none of them looked the same as the one before it.

A Rust scaffolder with an AI codegen path that drafts a real command, then refuses to hand it over until it compiles and passes lint.
