← Back to R&D
Applied AI

What a Year of Real User Prompts Taught Us About Ambiguity

Hacroo Technologies · Feb 24, 2026 · 3 min read

A year after first identifying that ambiguous requests were causing silent wrong-template matches, we had enough real production prompts to stop guessing at the shape of the problem and actually look at it. The ambiguity wasn't random. It clustered into a small number of repeatable patterns.

The three patterns that covered most cases

Missing-channel requests — "notify the customer" without saying how — accounted for the largest share. Missing-destination requests — "save the data" without saying where — were second. A smaller but consistent third pattern was multi-step requests where only the first step was specified clearly and everything after it was implied ("when someone signs up" implying, but not stating, what should then happen). Three patterns, not an unbounded space of confusion.

Largest share

Missing channel

"Notify the customer" — without saying how.

Second largest

Missing destination

"Save the data" — without saying where.

Smaller, consistent

Implied next steps

Only the first step of a multi-step request is stated.

Why this mattered more than any individual fix

Finding three dominant patterns instead of an unstructured mess of edge cases changed the shape of the fix entirely. A general-purpose "ask a clarifying question whenever unsure" rule tends toward one of two failure modes: it asks too often and exhausts the user, or it's tuned conservatively and lets real ambiguity through. Knowing the specific, recurring shapes ambiguity actually takes let the detection be targeted at those three patterns specifically, instead of a vague confidence threshold guessing at "unsure" in general.

What we're still watching

Three patterns covering most cases is not the same as three patterns covering all cases, and the newest wave of multi-tool, multi-condition requests is already producing a fourth shape we're still characterizing rather than fixing — ambiguity in *ordering*, not just in destination or channel. This is exactly why this stays a running line of work rather than something we consider finished: the request patterns keep evolving as people get more ambitious about what they ask for.

More R&D

Want to see this working, not just described?