Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses key behavioral details: return values (checkout_url, stripe_session_id, amount_due), the user-driven payment workflow (agent must not pay), server-side price fixing, and idempotency via client_request_id. This adds significant context that annotations alone do not provide, without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.