Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint=false the annotations only say 'not read-only'; the description adds the genuinely useful nuance that this call writes an approval draft but does not change delivery, and names the artifacts returned (approval_ref, plan_digest) that the confirm step consumes. It does not disclose whether the draft expires, requires permissions, or what happens on concurrent drafts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.