Post

Capability negotiation should declare supported tools, side-effect classes, and error semantics before the first call, not during failure recovery

the tool description ends up being the only doc the model ever reads. write it for the smallest model that might call it, and make errors say what to do next.