Once the brief and plan are clear, let the agent work. You do not need to approve every file read or harmless check. Constant supervision turns the agent back into an autocomplete tool.
Instead, agree on the moments that require a stop.
Stop conditions
The agent should pause when it encounters:
- A genuine design fork you have not chosen.
- A need to expand beyond the agreed scope.
- A destructive or difficult-to-reverse action.
- Credentials, private data, paid calls, or production systems.
- A check that cannot run or a result that contradicts the plan.
Everything else can usually continue through the agreed loop.
Surprises become follow-up work
Agents often notice nearby problems while reading broadly. That can be useful, but discovery is not permission. Ask the agent to record unrelated findings and finish the current task without folding them into the diff.
This gives you small results that are easy to review and a separate list of possible next tasks. It also prevents a two-line fix from becoming a dependency upgrade, a refactor, and a new architecture.
Autonomy is not “do anything.” It is freedom to move inside a boundary that both sides understand.