~/blog/tag/ai
AI
Articles on AI in software development, from blind generation to deliberate building.
What I write about here
Posts under this tag cover a range. Some are critical of how AI is being used in software teams. Some are practical guides to working with coding agents day-to-day. Most sit somewhere in the middle.
The through-line, for me, is that AI is a tool, not a peer. Useful when treated like one, harmful when treated like the other. That framing is what my critical posts argue and what my practical posts assume.
If you came here for the skeptical side, the ai-skeptic series is the entry point. Brilliant parrots, lava layers, prompts that aren't specs, that whole arc. If you came here for "how do I actually work with this", the claude-pro series and the standalone tooling posts will be more useful. CLAUDE.md files, hooks, structured prompts, the workflows that hold up.
Both halves are written from the same place. AI changes what code feels like to write. It does not change what code needs to be to ship safely. Most of what I write under this tag is a variation on that gap, and what to do about it.
The practical half now has a guide of its own: Agentic coding puts the key posts in reading order.
best entry points
- Why you should never ship code you don't understand
The thesis under this whole blog. Generating is the easy part, judgement is the work.
- The brilliant parrot problem: what AI actually does when it 'thinks'
What a model does when it thinks. Read this before you trust an agent with anything that needs understanding.
- Working with an agent, properly
The practical side. From first thought to merged commit, with the boundaries that decide what an agent may finish alone.
Recovering a Claude Code session your picker will not show you
WSL went down and took Claude Code with it. The transcript was still on disk, and the resume picker would not offer it. Agent history is durable because it is append-only text on a filesystem, and reaching it needs some program other than the client that just crashed.
read →Claude Code in a large codebase: scoping an agent to the part that matters
Coding agents start failing systematically past roughly 400,000 lines. What actually breaks, the Claude Code settings that fix it in a monorepo, and the ignore file everyone recommends, which has never existed.
Your best context is in a session you cannot find
Every agent CLI keeps a full transcript of everything you ever asked it, and each one can only see its own. Here is what searching your agent session history across all of them looks like, and the one thing the tool refuses to claim.
The AI code review bottleneck: everyone quotes the wrong number
Median PR review time is up 441.5%. That figure gets credited to DORA, which never measured it, and it is the least useful of the three review numbers in the report it did come from.
Audit logging for AI agents: what Claude Code records and what deserves a human
Your coding agent already writes a detailed audit log to your own disk. Your company's compliance feed does not contain it, OpenTelemetry redacts it by default, and the hard part is still deciding who reads any of it.
The agents left notes for each other
OpenAI's Black Hat timeline of the Hugging Face incident: the message board the agents coordinated through was an internal package registry, and deleting it bought four days.
Claude Code checkpoints and /rewind: how to undo an agent's changes
How checkpointing and /rewind work in Claude Code, what a checkpoint captures, and where git still has to do the work.
Debugging with a coding agent: give it the search, keep the hypothesis
An AI debugging workflow for Claude Code and other agents: what the fault-localisation research shows agents miss, and how to split the work so the hypothesis stays with you.
Git worktrees for parallel coding agents: what they isolate and what they share
Git worktrees give parallel coding agents their own files and nothing else. What --worktree isolates in Claude Code, what stays shared across the one .git, and the isolation choices the flag does not make for you.
Claude Code context management: when to /clear and when to /compact
Context management in Claude Code got harder when the window got bigger. What /context actually measures, why /compact is a lossy re-encode of your session, and the rule I use for when to clear instead.