Nine tags that were never on the branch
colophon works out the version your commits have earned, opens the release as a merge request, and tags what actually landed. Not what your forge says did.

colophon works out the version your commits have earned, opens the release as a merge request, and tags what actually landed. Not what your forge says did.

I asked nine agent sessions to stop compiling for forty minutes. What came back read like a team of colleagues, and I haven't worked out what to do about that.

A dozen agent sessions running at once is not a capacity problem. Working out which of them is stuck is, and the obvious way to find out is the wrong one.

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.

A desktop-first photo tool reviewed mostly from a phone, and the CSS grid that refused to behave on the one screen it was being judged on.

Running three different coding agents against one repository, and the house rules that stopped them undoing each other's work.

Reviewing a scaffolder turned up a command name that quietly conflated two different things. A flag and a setting are not the same object.

Go funnels errors through a handler. In Rust, diagnostics carry their own code and help and propagate on their own, so the funnel disappears.

Recovery advice belongs in a structured error hint, not buried in the message string. One error handler then decides how to show it.

How a Go scaffolder can re-run safely: hash every generated file, overwrite what is untouched, and prompt before it stands on your edits.
