22edc3cdfb065820dc8a22c061f1630a2905710d
DefaultFactParser matched Russian by hand-written stem substring: "вод", "пил", "душ", "еда" and eleven more, with a helper whose own comment said it would use a morphology lib "until misfires actually bite". That is the fourth mechanism CLAUDE.md says does not exist, and it ran on every fact turn through both wirings in cmd/mavend/voicewire.go. Five closed classes move to internal/lexicon — water nouns and drink verbs, meal words, shower, break, sleep — and internal/morph does the inflection. Three dictionary quirks are carried as data rather than worked around in code, each with its reason in the set's note: "вода" and "водой" lemmatise to two different lemmas, "пил" lemmatises to the saw, and "спал" to "спасть". Shower is matched exactly rather than by lemma, because the dictionary makes "душ" and "душа" one word and only one of them is washing. The accusative of an inanimate noun is its nominative, so exact matching costs nothing he says. NOT behaviour-preserving, deliberately. Rejected now: "пилот", "водитель", "заводить", "душа", "душно", "беда", "победа". "есть" and "ел" are left out of the meal set on purpose — "есть новости по бэкапу" is a question. The vestigial "ate"/"backup" guard goes with the substring era that needed it. Measured on the RU routing fixture, classifier+ONNX arm (91 cases): 64/91 (70.3%) before and after, same failing cases. The LLM arm was not measured — no llama-server reachable from here. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Description
No description provided
Languages
Go
97.1%
HTML
0.9%
Shell
0.6%
CSS
0.5%
Makefile
0.3%
Other
0.6%