Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry readOnlyHint=false, idempotentHint=true, and destructiveHint=true, so the bar is lower. The description adds valuable context beyond the hints: it specifies the write destination ('record the receipt in the open ledger') and elaborates the idempotency ('Replaying the same signature is idempotent'), telling the agent a repeat call is harmless. It does not explain what the destructiveHint=true actually destroys (e.g., overwriting a prior receipt), a minor gap, but there is no contradiction with any annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.