Agents don't make decisions. You still do.

I've watched myself get this wrong enough times that it's worth writing down.

The first few builds I treated agents like junior developers: give them a task, review the output, ship it. That works fine for scaffolding. It breaks down the moment there's a real decision to make.

By "real decision" I mean: which fee structure do we charge? What happens if a Stripe payout fails at step 3 of 4? Is this compliance corner actually non-negotiable? These aren't code questions. The agent can implement any answer you give it. What it can't do is figure out which answer is the right one for your situation.

The actual split

Agents are fast and reliable at:

  • Boilerplate that would take me an hour to write, zero judgment required. Schema migrations, email templates, CRUD endpoints, auth plumbing. Stuff that's deterministic once you know what you want.
  • Holding context across a large codebase while I'm focused on one piece. They're better than me at noticing that I already handled a similar edge case somewhere else in the repo.
  • First drafts of anything. Docs, error messages, onboarding copy. I'll edit it, but starting from something is faster than starting from nothing.

What they still can't do:

  • Scope decisions. What's in v1, what gets cut, what the user actually needs vs. what they asked for.
  • Production judgment. The unglamorous hardening — environment guards, cron secrets, what happens when the background job dies at 2am.
  • Knowing when to stop. This one catches me constantly. A build that's good enough for its actual purpose and a build that's been gold-plated by an agent that had more context than it needed are both real risks.

The ratio has shifted over two years. I delegate more than I used to. But the ceiling on what I can delegate is still the same place it was: the moment the problem requires knowing what matters.