What Hotato validates.
Hotato reports three separate jobs, each evaluated on its own: timing reproducibility, candidate-discovery usefulness, and fixture pass-fail agreement.
Verbatim output below, generated from Hotato 1.0.0, captured 2026-07-09, run on Hotato's own bundled corpus and demo fixtures, not customer calls.
Five levels of evidence. Never call the weakest one a verdict.
Every status that judges whether a flagged behavior is real names one of these levels and claims only what it shows. Job 1's reproducibility check names none of them on purpose, since it proves the measurement is stable, not that a flagged behavior is real. A higher level just means a narrower claim.
Timing reproducibility, candidate discovery, fixture agreement.
Timing reproducibilityOutside the levels
Does the same recording produce the same timing measurements every run, on a fixed hotato version? Yes: no learned weights, no sampling, no RNG. With version, audio, and scoring config pinned, results are byte-stable in the verified environments (CI on Linux x86_64), and a changed result means a pinned input changed, not scorer drift.
did_yield, seconds_to_yield, and talk_over_sec per event, plus the exact thresholds and frame grid behind them: proof the measurement is stable and re-derivable by hand, not that 0.51s is the true latency.
Candidate-discovery usefulnessLevel 1
Does scan surface the moments a human reviewer would want to look at, ranked by salience? Each candidate is a timing fact, an overlap or a gap, never a verdict or intent label. The bar is recall of notable moments at a workable count, not precision against ground truth, since none exists at scan time by design.
$ hotato scan --stereo 02-backchannel-mhm.example.wav --top 5 hotato scan: 02-backchannel-mhm.example.wav (6.0s, 3 candidate moments) Candidates are timing events. You decide the expected behavior. [ 1] t=2.09s overlap_while_agent_talking overlap=1.58s agent did not go silent [ 2] t=3.19s overlap_while_agent_talking overlap=1.07s agent did not go silent [ 3] t=4.29s overlap_while_agent_talking overlap=0.56s agent did not go silent
A ranked list of candidate moments as timing facts: a quiet region is not proven clean, and intent gets labeled separately with hotato fixture create.
Fixture pass-fail agreementLevel 3
Once you label a moment's expected behavior, does the PASS/FAIL verdict agree with that label on the audio? Both failures below are caught. This is a stored-evidence check: it re-scores frozen, labeled recordings under a pinned policy, so a pass means evidence and scorer still agree, not that a live agent behaves the same way today. No single sensitivity threshold fixes both: a missed interruption and a false stop need opposite repairs.
$ hotato demo --no-open --format text 0/2 events pass (failed=2) [FAIL] fd-01-missed-interruption: did_yield=False talk_over=0.25s fix[config]: the agent kept talking over the caller [FAIL] fd-02-backchannel-yielded: did_yield=True t=1.28s trailing_silence=0.46s agent_stop_no_caller fix[engagement-control]: a backchannel was treated as a bid for the floor note: no single sensitivity threshold satisfies this battery exit_code=1
Per fixture: the verdict, the measured signals behind it, and a named fix class when the failure maps cleanly to a config family, not a claim the label was correct or that a passing fixture holds on calls it has not heard.
A hard boundary, drawn on purpose.
One line is measured today: timing and turn-taking. The five below it are boundaries Hotato refuses to cross, from semantic intent up to vendor ranking, each one the scorer does not have the input to decide.
unknown_root_cause when one recording cannot separate them.The rest of the evidence, one link each.
Twelve probe calls
One stock configuration, scored offline, with full timelines and audio.
Demo reportA generated artifact
Two events scored offline, zero pass: what a Hotato report looks like.
Trust and limitsThe input contract
Ten input conditions, each mapped to score, caveat, or refuse.
CorpusEvery clip, licensed
The consent and licensing ledger, MIT and CC BY 4.0 only.