checks.py holds both vocabularies as module constants with no way to override them:
_CONFUSABLE = [(r"\bfifteen\b", r"\bfifty\b"), ...] # seven -teen/-ty pairs
_CONFIRM = re.compile(r"\b(?:just to confirm|confirm|did you say|...)\b", re.I)
Run this against a Spanish, Hindi or German call and check_misheard and check_acted_without_confirming both return an empty list. Not "no data", not "unsupported": clean. The two most expensive checks in the tool, the ones the README leads with, quietly report success on every call they cannot read.
That is the same failure shape this project exists to catch. A transcript that looks fine because nothing examined it.
Proposal
Move both vocabularies into a locale pack, load the English one by default, and let a suite point at its own. A YAML or JSON file with confusable_pairs and confirmation_phrases is enough, and it makes the English list editable too, which is worth having on its own: every deployment has domain terms its STT mangles.
If a call is in a language with no pack loaded, say so in the output rather than returning no findings.
Acceptance
- English behaviour is byte-identical with the default pack
- A suite can supply its own pairs and phrases
- Running with no pack for the call's language reports that the check did not run, and is not counted as a pass
- One non-English pack shipped as an example, with a fixture
checks.pyholds both vocabularies as module constants with no way to override them:Run this against a Spanish, Hindi or German call and
check_misheardandcheck_acted_without_confirmingboth return an empty list. Not "no data", not "unsupported": clean. The two most expensive checks in the tool, the ones the README leads with, quietly report success on every call they cannot read.That is the same failure shape this project exists to catch. A transcript that looks fine because nothing examined it.
Proposal
Move both vocabularies into a locale pack, load the English one by default, and let a suite point at its own. A YAML or JSON file with
confusable_pairsandconfirmation_phrasesis enough, and it makes the English list editable too, which is worth having on its own: every deployment has domain terms its STT mangles.If a call is in a language with no pack loaded, say so in the output rather than returning no findings.
Acceptance