Spec-Driven: Building Software with Coding Agents in Production

Using AI coding tools with twenty years of engineering judgement.

Most AI-coding content is written by people who have never had to live with software for a decade. This series is the other perspective: what changes — and what absolutely does not — when an engineer with twenty years across payment systems, prison software, and retail infrastructure hands the typing over to a machine.

Specs before prompts. Review gates before merges. Evidence before claims. The tools are new; the judgement is not.

Mar 30, 2026·8 min read

Spec-Driven, Part 1: How I Actually Use Claude

After a year of daily use, my biggest mistake was treating Claude like a search engine. What changed once I gave it context like a new colleague, and where Projects, MCP and Claude Code fit into a real working routine.

aitoolingproductivity
May 24, 2026·8 min read

Spec-Driven, Part 2: Claude Code vs. the Rest

Which AI coding tool do I trust on a regulated .NET codebase? Claude Code and Copilot both hallucinated an EF migration, but only one corrected itself when challenged. Where each wins, from inline autocomplete to terminal-first refactors and CI.

aiproductivitytoolingautomation
May 25, 2026·10 min read

Spec-Driven, Part 3: The PRD Is the Program — Running Agents in a Loop with Ralph TUI

What happens when your PRD stops being a briefing document and becomes an executable artefact — running Claude Code through a task list autonomously with Ralph TUI, and why Karpathy's autoresearch repo suggests this is where the whole industry is heading.

aiproductivitytoolingautomationarchitecture
May 26, 2026·12 min read

Spec-Driven, Part 4: Interview First, Code Second

My coding assistant rarely wrote bad code. It wrote good code for a problem I never had. The fix wasn't a better prompt, it was making the assistant interview me about every acceptance criterion before it touched a file.

aiproductivitytoolingarchitecture
May 28, 2026·10 min read

Spec-Driven, Part 5: Your AI Context Is a Budget

My sessions felt heavy before I'd typed a word, so I measured what every one of them loaded. I moved 742 lines of always-on guidance into rules that only load for the files they govern, and switched off a plugin that was quietly fighting my process.

aiproductivitytoolingautomation
May 30, 2026·10 min read

Spec-Driven, Part 6: If It Happens Twice, It's a Script

A pull request turned up carrying a commit from a different ticket, and the fix wasn't another line in the assistant's instructions. Judgement stays with the model and the reviewer. Mechanical mistakes get a small deterministic script.

aiautomationtoolingproductivity
Jun 1, 2026·10 min read

Spec-Driven, Part 7: Green Isn't Right

I ran a real feature through an AI agent loop: 27 stories, a green test suite at every boundary, and some of the later stories were quietly fixing maths an earlier story had got wrong. What the gates caught, what they didn't, and what I'd put in every story now.

aiautomationtoolingarchitecture
Jun 3, 2026·10 min read

Spec-Driven, Part 8: Your Docs Lie Too, Including the Ones Your Assistant Wrote

I audited our engineering docs against the code and made 13 corrections. Some of the wrong facts were ones an assistant had helped write, and every one of them was a fact an assistant would read next session and treat as true.

aiproductivityarchitecturetooling
Jun 5, 2026·10 min read

Spec-Driven, Part 9: The Loudest Log Line Wasn't the Bug

My AI-assisted log analysis built a confident case around the noisiest pattern in the logs, and a reviewer rejected it in capitals. The name on the write-up was mine, the mistake was mine, and the fix went into the tool's first instruction.

aiproductivitytoolingarchitecture
Jun 7, 2026·9 min read

Spec-Driven, Part 10: Review the Batch, Not the Diff

A loop compresses the writing and leaves the reviewing exactly where it was. I review a batch of agent-written stories without rubber-stamping it: by story, against the spec, with the diff last.

aicode-reviewtoolingworkflow
Sep 5, 2026·9 min read

Spec-Driven, Part 11: The As-Built Spec

When a loop outruns its plan, write the spec back from what was built, before anyone forgets why. Nine stories of a 27-story feature shipped with no written spec as the scope grew. I rebuilt the record from commit messages. The post covers what that record is good for, and what it can't recover.

aidocumentationworkflowspec-driven

This series is becoming a course

Spec-Driven is being turned into a full course. Email me to join the waitlist and hear when it launches.

Join the waitlist