How I build - Plan slowly, build fast

My setup is pretty simple. I put my time into the plan, then hand it to AI agents and let them get on with it. I barely write code by hand these days, and I don't review it line by line either. Agents do that too.

Plan

This is where most of my time goes. I talk the idea through with a big reasoning model in Claude Code's plan mode until there's a proper plan: what we're building, what the data looks like, which files change and what done means.

A vague plan gets you vague code. “Add auth” leaves the agent guessing, so I keep going until every task is specific enough that there's nothing left to guess.

What I end up with

  • Written plan
  • Data model
  • Small, specific tasks
  • A clear definition of done

Build

Once the plan is solid, building is quick. A faster model works through the tasks, and for bigger jobs I'll have several agents running side by side on separate branches.

Every project has a CLAUDE.md that explains how the codebase works. My Feather projects come with one out of the box, so the agents know the conventions before they start.

I don't write much code by hand anymore. At this stage my job is mostly answering questions and saying yes or no.

Review and ship

I don't read every line, and I don't try to. Instead, other agents review the work using skills: a code review, a security check, a dependency audit and a tidy-up pass. A fresh agent with no stake in the code spots things the one that wrote it misses.

Anything they flag goes back to the build agents to fix. What I check is the result: does it work, and does it do what the plan said?

Then it goes live. Push to GitHub, migrations run on release, and if something breaks I roll back in one click.

Skills that run before anything ships

  • Code review
  • Security check
  • Dependency audit
  • Simplify

Principles - A few rules I stick to

Nothing fancy, just habits that work for me.

  • Plan hard, build fast. The thinking happens up front. Once the plan is clear, the agents can run with it.
  • Don't review code, review results. I don't read diffs. Agents review each other's work, and I check that the thing actually works.
  • Right model for the job. A big, careful model for planning, a quicker one for building, and a separate agent for reviewing.
  • Ship it. If it isn't live, it isn't done. Everything on this site is live.
  • Keep it boring. Postgres, server-rendered pages and well-known libraries. Agents are better at boring tech too.
  • Write it down. A good CLAUDE.md helps more than any prompt trick.

Want to chat about any of this?