← Lab Measured run2026-08-20

Can it find failures nobody told it about?

We hid 60 failures of 6 kinds in 100 traces and handed them over with no answer key. It named all 6 kinds itself and caught every planted trace.

5 of 6 pre-set bars met
6/6failure types found unaided
100.0%broken traces caught (60/60)
92.3%of its flags were right
0.89κ vs the answer key

What we set out to measure, and what we measured

discovery (of 6 planted types)>= 56/6at or above the bar
judge precision (pooled)>= 0.850.923at or above the bar
judge recall (pooled)>= 0.81at or above the bar
trace-level TPR>= 0.851at or above the bar
trace-level TNR>= 0.90.875under the bar
Cohen's kappa>= 0.70.894at or above the bar

What we did

100 support-agent traces we wrote. 60 carry one planted failure of 6 kinds; 40 are clean. The pipeline got the traces and nothing else — no labels, no hint anything was planted.

What came back

It arrived at all 6 planted types in its own words, caught 60 of 60 broken traces and missed none, and flagged 5 of 40 clean ones. All 600 judge cells returned a verdict, for $0.66.

What it changed

This corpus is the gate every change runs through. Twice it has failed in a way that turned out to be our labels' fault rather than the judge's.

What it doesn't show

The corpus is synthetic and we wrote the failures, so they are findable by construction. Specificity landed at 87.5% against a 0.90 bar we set beforehand — 5 clean traces drew a flag, and each is worth reading rather than assuming.

MODEL google/gemini-3.7-flash · SAMPLE 100 traces, seed 42 · COST $0.66
REPRODUCE npm run validate:planted

Full metric tables and every caveat

Run it on your own traces.

Free, no account, parsed in your browser.

Upload a trace file