Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, non-destructive, closed-world), and the description adds genuinely new behavioral context: an unscoped call additionally returns maturity_ladder, cashflow_coverage, and hedge_maturity_coverage, while a scoped call does not. That conditional-output disclosure is the kind of trait annotations cannot express. It does not cover rate limits, auth needs, or timing/latency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.