Dynamic Routing Evaluation
June 9, 2026 ยท View on GitHub
This document defines the offline baseline check for dynamic turn routing.
The goal is not to prove production-grade accuracy. The goal is to keep the current routing heuristics measurable so we can compare conservative baselines, spot regressions, and avoid overstating capability.
Baseline Sets
The routing regression script compares three strategies against the same sample set:
alwaysT2- a conservative baseline that always promotes toT2ruleOnly- the rule layer without classifier helpclassifierPlusRules- the combined route decision used by the current bundle
Sample Schema
Each sample in tests/routing-eval/*.json should include:
id- stable sample identifierprompt- representative user requestexpectedTier- ground-truth tier for the sampleruleOnlyTier- expected outcome from rule-only routingclassifierTier- raw classifier tier for referencecombinedTier- final tier after classifier plus rulesriskFlags- optional tags describing why the sample mattersrationale- short human-readable justificationsource- provenance string for the sample
How To Run
./scripts/test-dynamic-routing-regression.ps1
Optional parameters:
-SamplesPath tests/routing-eval-OutputRoot artifacts/testing/dynamic-routing-Strictto fail the script when the gate conditions are not met
The script writes both report.json and report.md under a timestamped subdirectory in artifacts/testing/dynamic-routing/.
Curated Artifacts
Curated routing-quality snapshots are kept under docs/testing/ for documentation and review workflows:
docs/testing/turn-routing-quality.grid-report.jsondocs/testing/turn-routing-quality.policy-suggestion.jsondocs/testing/turn-routing-quality.report.jsondocs/testing/turn-routing-quality.weight-sensitivity-report.jsondocs/testing/phase-a-offline-validation-report.jsondocs/testing/phase-a-offline-validation-10sample-report.jsondocs/testing/phase-a-offline-validation-10sample-report-t1.jsondocs/testing/phase-a-offline-validation-10sample.jsonldocs/testing/phase-a-offline-validation-10sample-t1.jsonl
Gate
The default gate checks that classifierPlusRules does not regress on the sample set:
- accuracy must not fall below
ruleOnly - under-routing risk must not exceed
alwaysT2
The report also includes per-tier F1 so threshold changes can be compared against the same sample corpus over time.
Practical Use
Use this baseline before tuning routing thresholds or changing feature extraction:
- Update or extend the sample set.
- Run the regression script.
- Compare the new report to the previous artifact.
- Only widen claim language after the offline metrics remain stable.