The first 120 floor rows carried one sentence shape, because the generator varies a topic and ambiguity is not a topic. Rotating six shapes takes the floor 3/7 to 6/7 and the destination mean 75.8% to 80.8%. Calendar stays 3/6 at every seed. The possessive agenda rules claim those cases at stage 0 and name nothing, so no label reaches the head. Also corrects the floor-case count in three files: five of the seven are homelab, not six.
4.1 KiB
The first destination number
Measured 2026-08-08 on the classifier cascade with the ONNX multilingual
embedder, the configuration homesrv runs. make t PKG=./internal/router/eval/ RUN=TestONNXBaseline V=1. Covers V-659, the follow-up V-655 named.
What was measured
V-655 split a routing decision in two. The cascade sorts an utterance into one
of seven intents, and Decision.Source then says where the answer lives. The
first half had a fixture. The second half arrived with none, so twelve
destinations shipped with no accuracy number.
want_source is now a field on eval.Case. It is a pointer, because the
destination has three states and a bare string has two. Absent is every intent
but query, which never reaches queryWalk. Present and empty is the
SourceUnknown contract: name nothing and let the daemon walk the chain.
Present and named is a destination the route must produce.
Thirty-three of the ninety-six cases carry one. A destination miss does not
fail the case, so Accuracy and IntentAccuracy mean what they meant.
SourceAccuracy is a second number over the labelled cases only.
Result
Intent is 73/96 (76.0%), against 69/91 (75.8%) before. Four of the five new cases pass and no existing case moved.
Destination is 12/33 (36.4%), and the split is the whole finding.
| destination | scored | note |
|---|---|---|
| world | 5/5 | WorldQueryGrammars names it at stage 0 |
the SourceUnknown floor |
5/7 | the two misses lost the intent first |
| calendar | 2/6 | calendar-query names it, the possessive agenda rules do not |
| recall | 0/15 | nothing anywhere names it |
Recall is the number to move. Fifteen cases ask about his own words and his own
facts. The route lands query on eleven of them and the destination comes back
empty every time. Those turns are answered today, because the daemon walks the
chain in order and the three recall passes are early in it. What is missing is a
decider that says so, and that is the fourth head on V-546.
Two cases labelled the floor lost their intent before a destination was
possible. A clarify names nothing, so it would satisfy an empty label for free.
Score requires the route to land the case's intent before it credits a
destination hit, or the floor label would score itself.
Seven cases assert the floor, and five of them cluster
The five are homelab operations. SourceRecall, SourceNetwork and
SourceAttention overlap on every question about the box, because mavpoll
writes its netdata and uptime-kuma observations into the fact store recall
reads. "почему сервер тормозит" is answerable from all three. Naming one takes
the other two off the turn.
That is a finding about the enum rather than a gap in the labelling. The floor is the right answer there and the fixture now says so out loud.
All seven were written by an agent and confirmed by the owner on 08-08-2026.
A drift the labelling found
WorldQueryGrammars went into buildRouter with V-655 and never into
baselineGrammars, the fixture's mirror of it. So the fixture was scoring a
grammar set the daemon does not run. The comment above that function forbids
exactly that. Adding it moved the destination number from 9/33 to 12/33 and
moved nothing else.
The three cases it recovered are что такое TCP?, сколько будет 17 на 23?
and кто такой Линус Торвальдс?. All three already routed query through
NarrativeQueryGrammars. So the drift was invisible to every number this
fixture reported, until the destination had one of its own.
What this does not measure
The model arm. This is the classifier cascade, which names a destination only where a stage 0 rule filled one in. The resident model has no destination in its router prompt yet, so 36.4% is a floor and not a comparison.
Two pairs of cases are the same utterance. ru-query-020 and ru-query-024
are both "что дальше?", and ru-query-021 and ru-query-025 are both
"расскажи про битву при Ватерлоо". They differ in tags and note only, so both
pairs are counted twice here and in every earlier number this fixture reported.