The single biggest unlock in the last year hasn’t been any one model — it’s been figuring out which parts of my workflow to not hand to an AI. This is my current rhythm.
The shape of the loop
I split work into three phases and assign different tools to each:
- Spec — I write the thing I want, in plain English, by hand
- Build — I let Claude or Cursor do the typing
- Review — I read every diff before it lands
The trap is letting the AI write the spec. The output looks fine, but the quality of the thing you build is bounded by the quality of the spec.
What I actually do
In a fresh session, I open with a paragraph describing the goal, the constraints I care about, and what’s already been ruled out. Then I let the model produce a plan and only after I’ve poked holes in it do I greenlight implementation.
The biggest mistake I see other people make is treating AI like autocomplete-at-scale. It works much better as a fast collaborator who needs a manager.
What I won’t hand over
There are a few categories I keep out of the AI’s hands:
- Naming things — bad names compound across a codebase
- Trade-off decisions — these need taste, not throughput
- The first paragraph of anything I write — it sets the voice
Everything else is fair game.