Every team running coding agents hits the same wall: the agent is fast, but deciding what to tell it to build is now the bottleneck — and getting it wrong is expensive in review cycles, not compute.
The failure loop most teams are stuck in
Issue arrives → someone half-writes a spec from memory → agent builds → reviewer notices it's not what the customer meant → repeat. The agent was never the problem. The spec was folklore.
The grounded loop
Step 2 is where the leverage is. A generated plan contains, in order:
- Goal — one sentence describing what exists when it's done.
- Evidence — why now, with each claim citing signal ids you can resolve to the raw quote.
- Constraints — prior decisions this touches; conflicts are ⚠ UNRESOLVED until a human approves.
- Non-goals — the fence. What the agent must NOT build, however tempting.
- Acceptance criteria + real file paths + test plan — enough that the agent never asks “should the default be X or Y?”
Where the human stays in the loop
Exactly one place: between plan and build. You read one page. If scope is wrong, you don't edit the file — you leave a comment (scriptonia comment plan/<slug> "…") and the plan regenerates with your note folded in and versioned. Handing the plan to the agent is the approval.
What changes in the PR
The PR description cites the same signal ids as the plan. Your reviewer isn't evaluating “does this look reasonable” — they're checking “does this match the plan we already approved,” which is a five-minute review instead of a debate.