Herman was retired on September 10, 2026. This site is preserved as a frozen archive and is no longer maintained or updated. Read the retrospective →
programme: ENDED · final record 2026-08-04 · production routing artifact: deterministic rule · V5 is a shadow benchmark, not a promotion
owlforge society · router school

Five stages.
Four falsifications.
The rule still wins.

A closed research programme that tried to learn the dispatch policy routing work to the right provider — and graded every attempt hard enough that most of them died. Each stage below is a real measurement or an explicit absence. Nothing here is estimated to fill a row. Final research date 2026-08-04.

Router School — a closed research programme in learned dispatch policy, run on a local RTX 3090 Ti. Stages V1 through V5 are recorded with their measurements, gate results and reasons for advancing or failing. Final research date 2026-08-04.

Herman, a spectacled midnight-blue Clockwork Owl with living amber eyes and an open precision-gear chest, perched on an antique brass key in his observatory
// current verdict

The rule stays in production

V5, a 1,573-parameter numeric MLP, clears every quality and latency gate this programme has ever registered. It is still not the production artifact, because the deterministic teacher rule it was distilled from scores higher on the same frozen test set.

V5 accuracy
99.05%
104 / 105 test rows
V5 macro-F1
0.9831
weighted-F1 0.9905
Strict validity
100%
no JSON generation step
Stdlib CPU p95
0.0773 ms
budget 250 ms

Current verdict, as of 2026-08-04. The recovered deterministic teacher rule scores 100% on the V5 test set. It stays in production. The V5 tiny MLP is retained as a shadow benchmark, not a promoted model.

No learned model has been promoted to the live routing path at any point in this program.

  • The recovered teacher rule scores 100% on the same 105-example test set — strictly above the model's 99.05%.
  • The rule is ~20 lines of stdlib, impossible to misconfigure, and needs no checkpoint.
  • Out of distribution the model drops to 93.40% accuracy / 0.9260 macro-F1 on a 500-cell window of never-seen counter values.
  • A learned classifier that matches a deterministic teacher is evidence the architectural ladder was mis-chosen, not a shipping candidate.
// mission

What this programme is for

A dispatcher decides which provider should receive a unit of work. The current dispatcher is a deterministic function: it reads a task description, a set of recent per-provider dispatch counts, and a handful of size estimates, and it returns a provider. Router School asks a narrow question about that function — can it be learned? — and refuses to answer yes without evidence that survives an adversarial recomputation.

The programme is not a one-night result. It is a sequence of stages, each one a bounded experiment with a preregistered gate set, a frozen evaluation window and its own published outcome. A stage that fails is not deleted and not softened; it is published as a falsification, and the next stage exists because of what the failure ruled out. Four of the five recorded stages ended that way.

The reason to keep going after a falsification is that the falsification is information. V1 proved the evaluation harness could lie. V2 proved a clean dataset was not enough. V3 proved the label depended on state the dataset never carried. V4 proved the fairness surface was learnable but too slow to serve. V4-1B proved shrinking the decoder was the wrong response to a latency violation. V5 exists because those five conclusions narrow the architecture down to one rung of one ladder.

// curriculum

The classification ladder

The single most expensive mistake in this programme was starting at the wrong rung. Four stages of generative decoders were spent on a task whose output is one integer.

  • Rule + lookup rung 1 · the task-class rule baseline
  • Sparse linear rung 2 · TF-IDF + logistic regression
  • Tiny MLP rung 3 · 1–2 hidden layers, ~50–1,000 parameters
  • Boosted trees rung 4 · often the best accuracy/latency tradeoff for tabular
  • Generative decoder rung 5 · last resort — only when the task is genuinely generative

Classification tasks start at rung 3 and climb left only if the MLP fails. Generative tasks start at rung 5 (rank-16 QLoRA) and climb down.

// stages

V1 through V5 at a glance

Every stage, its verdict, and the number that decided it. The full record for each — measurements, gate tables, artifacts — is in the experiment ledger.

V1 FALSIFIED

Round-1 shadow eval

rank-16 QLoRA adapter, generative decoder

Claimed delta_lane_accuracy +5.10 pp adapter 53.06% vs baseline 47.96% · n=98 chronological holdout

Historical falsification. Not the current status of the program.

Read the V1 record →

V2 FALSIFIED

Foundation rebuild and bounded GPU matrix

rank-16 and rank-32 QLoRA on unsloth/Llama-3.2-3B-Instruct

Best cell macro-F1 0.1905 vs task-class rule 0.2351 — the rule still wins

The foundation survived and is still in use. The three trained cells did not.

Read the V2 record →

V3 EVAL INVALIDATED

Current-policy distillation

rank-16 QLoRA on unsloth/Llama-3.2-3B-Instruct — 700 steps, lr 1.5e-4, 1,048 examples

First eval result accuracy 0.0 / JSON validity 0.0 traced to a duplicated response marker in the evaluator, not to the adapter

The first V3 evaluation measured the harness, not the adapter. The curriculum insight survived and became V4.

Read the V3 record →

V4 GATES PASSED · LATENCY FAILED

Fairness specialist (3B)

rank-16 QLoRA on unsloth/Llama-3.2-3B-Instruct

Macro-F1 0.6912 CI95 0.5886–0.7734 · +0.5890 over majority, +0.6441 over TF-IDF

Quality gates cleared; the latency budget did not. Superseded by V5, not promoted.

Read the V4 record →

V4-1B FALSIFIED

1B distillation

rank-16 QLoRA on unsloth/Llama-3.2-1B-Instruct

Accuracy 13.33% −55.24 pp against the 3B cell, for a 1.6× latency win

Failed every promotion gate. Retained as the empirical proof that the generative route was the wrong architecture.

Read the V4-1B record →

V5 SHADOW BENCHMARK

Tiny numeric MLP

10×32×32×5 ReLU MLP trained with PyTorch — 1,573 parameters, no tokenizer, no autoregressive loop

Accuracy 99.05% 104 / 105 · macro-F1 0.9831 · stdlib CPU p95 0.0773 ms

Current cell. Every quality and latency gate cleared — and the recovered teacher rule still beats it, so the rule stays in production.

Read the V5 record →

// open questions

What V6 would have to answer

The ledger is append-only and the site is built from it. No V6 cell ran before the programme closed on 2026-08-04; these questions are recorded as left open, not as work in progress.

ladder rung 3, re-run against a policy worth learning

Tiny MLP on an intentionally noisy policy

The current teacher is deterministic, which is exactly why the rule wins. Add a slight bias toward a preferred provider and the rule stops being exactly recoverable — that creates a real target for a learned model rather than a mimicry exercise.

ladder rung 4

Boosted trees on the same features

Rung 4 of the classification ladder. Worth running if the MLP plateaus on a harder regime, since boosted trees are frequently the best accuracy/latency tradeoff on tabular inputs.

regression check on rung 1

Shadow the rejected cells against the rule

Re-score the V4 generative and V4-1B cells with the recovered rule as the baseline, to confirm the rule wins on every count distribution rather than only on the frozen test window.

curriculum scope

Beyond the background task class

V5 is a fairness specialist on a single task class. Nothing in this program yet shows that a numeric policy learner generalizes across the ten-class task surface that V3 sampled too thinly.