The thing that improved my agent output most wasn't a better prompt. It was refusing to let the agent skip steps.
The process, not the model
Left alone, a capable agent will happily jump straight to implementation, declare success, and move on. The failures that cost me the most all came from that jump. So I run a fixed sequence and don't let it be skipped:
- Brainstorm before design. Explore the intent and the options before writing any code. This is where wrong assumptions get caught cheaply.
- Write the plan down. A spec/plan document, committed, so "what we're building" is explicit and reviewable — not held in the agent's head for one turn.
- Verify before claiming done. No "it's fixed" without evidence. Run the check, read the output, then claim.
Parallel work, scoped by exploration
For anything touching an unfamiliar codebase, I send read-only explorer agents in parallel first — map the result API, the storage, the deploy path — and feed that map into the implementation spec. The implementers aren't discovering and building at the same time; discovery is its own phase, done in parallel, and its output constrains the build.
The honest part
"Verification before completion" sounds obvious and is the step everyone skips, including me when I'm tired. But an agent that says "done" without evidence is just a confident guess, and confident guesses at volume are how you ship broken work fast. The discipline isn't glamorous — brainstorm, write it down, verify — and it's the whole difference between an agent that accelerates you and one that generates plausible wreckage. The model got better; the value still comes from the gates around it.