Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false, so the description's job is lighter. It still adds real context the annotations lack: an approval draft is written, approval_ref and plan_digest are returned, delivery is unchanged, and a separate confirm tool must be called. It does not describe draft lifecycle details such as expiry or whether re-preparing overwrites a pending draft.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.