All notes
Tooling

Coding agents leave a paper trail — read it

Git tells you what shipped. The session transcripts your coding agent already writes tell you what was decided, attempted, and dropped — and that's where the engineering narrative actually lives.

Every coding-agent session writes a structured transcript somewhere on disk. Most teams never open the file. It’s the single best source of engineering narrative I’ve found — better than git history, better than commit messages, better than the channel where someone complained about the bug.

What git deliberately throws away

Commits are the after-photo. You squash. You rebase. You rewrite the message until the diff looks intentional. By the time the commit lands it says “feat: handle empty result set” — and the actual story (three earlier attempts, the one that broke types, the revert because someone else’s PR conflicted) is gone.

The transcript still has all of it. The dead ends are arguably more useful than the live ones: they tell you which roads not to take next time, at zero extra cost.

Don’t feed the whole blob to a model

A typical session is 50–200KB of JSONL once you count tool calls and observations. Sending that raw is expensive and noisy — the model gets lost in the chatter. Light extraction over three signals — what the user asked for, what got decided, what got blocked — collapses a session to a few hundred tokens that still reads correctly.

The trick is that “decided” and “blocked” aren’t pure regex matches. Regex finds candidates cheaply; the surrounding prompt teaches the model to distinguish a real decision from someone thinking out loud. Skip either half and the quality falls off.

Treat it like telemetry

Coding agents are the new IDE. The session log is its instrumentation. Build the extraction pipeline once and every project you work on backfills useful data, retroactively, for free.