Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: it discloses exactly what state gets restored, that a report revert creates a NEW head version with history kept, the taxonomy of refusals (change_not_found including the 30-day and ownership limits, already_undone, changed_since with all-or-nothing batch semantics), an access tier requirement, and the fact that the reply carries a fresh `undo`. That is precisely the mutation and failure surface an agent needs, and it is consistent with destructiveHint=false and idempotentHint=false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.