Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does well: it discloses that returns include status plus stdout/stderr, and that dangerous patterns (hou.exit, os.remove, subprocess) are blocked unless allow_dangerous=True. This is meaningful safety-mechanism disclosure. It omits permission/auth requirements, but overall it covers more than most code-execution tools.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.