Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotent/no-destructive, so the safety profile is covered. The description goes well beyond that: it discloses the filtering semantics (routine_id, name search, or both omitted), per-routine updated_at, and a concurrency contract (pass base_updated_at to edit_routine, which refuses stale edits) — real behavioral context annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.