Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, so the bar is lower, yet the description adds substantive behavior: append-only semantics, exactly which operations trigger a snapshot (import_portfolio only when holdings actually change, plus restore_portfolio_snapshot), deduplication of identical resubmissions, and exclusion of computed market values. These are non-obvious traits an agent could not infer from annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.