Skip to main content
A deviation is a recurring type of misbehavior - for example “retrieval returned no sources”, “overstated a claim the sources don’t support”, or “skipped a required verification step”. Glassray finds concrete examples across many traces (instances) and clusters them into a deviation type, so you review a pattern once rather than triaging the same problem trace by trace. Each deviation is found against your spec - the generated description of what your agents are supposed to do - and is linked to the flow it affects.

Lifecycle

A deviation moves through a Linear-style lifecycle. Every transition is recorded with a short reason, so nothing changes status silently.
If you’ve connected Slack, Glassray posts each deviation to your channel - by default only once a deviation is Confirmed, so you’re not pinged for candidates that are still being investigated. You can lower that threshold to be notified as soon as a deviation is Suspected, so you can confirm or dismiss it right from the card.

Finding more examples

While a deviation is Suspected, Glassray is still building the case - scanning your recent trace history for more instances so you can see how often it really happens. Once it recurs in enough examples, Glassray promotes it to Confirmed automatically; until then it stays Suspected. You can also kick off this search yourself from the deviation.

What happens when you confirm

Confirming a deviation - promoting it to Confirmed, yourself or automatically - generates a fix:

A proposed fix

Glassray generates a code-level fix suggestion - a prompt or logic change - that you review and apply like any pull request. If Slack is connected, the deviation’s thread gets a “generating a fix” update.
The fix is a proposed diff you review - Glassray does not auto-merge it. You stay in control: review the suggestion, attach it to the failing trace as evidence, and ship it through your normal review process.

Where deviations come from

Most deviations come from Glassray’s own scan against your spec. But you can also surface them from outside the loop:

From feedback

A negative signal pinned to a trace is actioned - Glassray sorts that trace into a flow and creates or appends to a deviation.

From Slack

Describe a misbehavior to the Glassray bot and it can log a deviation from the conversation and scan for more instances.
You can review, confirm, and inspect deviations in the dashboard, or programmatically over the MCP server with list_deviations, get_deviation, and update_deviation_status.