Problem
The costliest voice shape: agent asks "confirming fifty?", caller says "yes" to the wrong number, money moves. A no_confirmation-clean call that is still wrong.
Pattern
Add a check in voiceeval/checks.py (sibling: check_misheard, cross-checks text vs truth numerals). Extract numerals from agent confirmation turns; fire confirmed_wrong_value (high) when they match STT text but not truth (or not the action amount).
Acceptance
New check confirmed_wrong_value. Fixture: truth "fifteen", agent confirms "fifty", user "yes", refund 50 flagged; confirming "fifteen" clean.
Problem
The costliest voice shape: agent asks "confirming fifty?", caller says "yes" to the wrong number, money moves. A
no_confirmation-clean call that is still wrong.Pattern
Add a check in
voiceeval/checks.py(sibling:check_misheard, cross-checkstextvstruthnumerals). Extract numerals from agent confirmation turns; fireconfirmed_wrong_value(high) when they match STTtextbut nottruth(or not the actionamount).Acceptance
New check
confirmed_wrong_value. Fixture: truth "fifteen", agent confirms "fifty", user "yes", refund 50 flagged; confirming "fifteen" clean.