Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly, idempotent, non-destructive annotations, the description discloses state-dependent behavior: running returns completed stages and polling guidance, complete returns brief/memo/link, needs_input requires following how_to_continue, and declined has a specific meaning. This is exactly the behavioral context an agent needs for a polling tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.