Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. 'Mark a task complete' implies a mutation (changing task state), but doesn't disclose what side effects occur — e.g., whether completing a task affects subtasks, dependencies, timers (there's a weeek_task_timer sibling), or whether the operation is idempotent. An agent has no way to know what happens if the task is already complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.