Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true; the description goes well beyond by disclosing the default filter (only patterns holding a Fabrement block), the scope behavior, and the returned fields (usedBy, foreign, templates). It also imposes a prerequisite rule (read the synced-pattern-contract skill doc first), which is meaningful behavioral context the annotations do not carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.