Every flow you’ve ever shipped accepts more than the happy path. Extra steps, out-of-order submissions, retries in odd sequences, combinations nobody put on a whiteboard. That gap between what’s designed and what’s technically allowed has always existed.
Take any multi-step transactional flow: search, select, enter details, confirm, pay. The intended path is one line through that space. The actual state space — every retry, every partial submission, every order the steps could technically arrive in — is enormously larger, and it was there from the day the flow shipped.
It never showed up as a problem, because for years the people using your systems didn’t go looking for it. Not because a rule stopped them. Because they got bored, or confused, or too polite to keep pushing on something that looked wrong, and gave up or called instead.
That’s the part nobody wrote down. Somewhere in every one of those decisions sits an assumption like “nobody’s going to do that, why would they” — and it held, quietly, for years, because it happened to be true of the actual users hitting the system. It was never a requirement. It was a bet on human psychology, embedded in code that has no idea it’s making that bet.
An agent doesn’t carry that psychology. It has no boredom threshold, no social discomfort, no instinct that a sequence looks wrong. It takes a permitted path exactly as readily as the intended one — and when it does, the system doesn’t fail. It succeeds, at something nobody signed off on.
That’s the actual gap this shift exposes: what the system allows and what the company wanted were never the same set. They only looked identical because nobody had walked the distance between them.
Ask whoever owns a transactional flow in your company whether they can name that distance — or whether the honest answer is that nobody’s ever measured it.