ADR-106: Deprioritise low-difficulty template proofs in the queue dispatcher

Field Value
Decision ID ADR-106
Initiative throughput / dispatch fairness
Proposed By unsorry maintainers
Date 2026-06-26
Status Proposed

Context

A live audit (2026-06-26) of the queue dashboard found 389 submissions waiting, of which 336 belong to a single solver (@ohdearquant) and are low-difficulty template proofs (template-ring-cofactor, template-zmod-decide, ring, …) — some queued for a week. Meanwhile the genuinely hard work that moves the needle — the four v2.0.0 benchmark suites (putnam/imo/ minif2f/combibench) — is rare (≈0→6→17/day) and competes for the same governed dispatch slots.

ADR-075 already round-robins the queue by solver so one high-volume contributor can’t starve the rest (max-min fairness). But it is difficulty-blind: within the fair share, a solver’s trivial template floods dispatch on equal footing with hard proofs. The project’s own score_policy weights difficulty_points ×100 vs credited_proofs ×25 — raw template volume is deliberately the minor term — so spending scarce dispatch/verify capacity on template floods ahead of hard proofs is misaligned with what the system values.

The queue board (docs/queue.json, ADR-066) already records a model per queued branch, which labels the template generators precisely — so the difficulty signal needed to reorder is already present at dispatch time.

Decision

Add a difficulty tier to the dispatcher’s ordering: dispatch high-difficulty branches before low-difficulty (template) ones, with ADR-075 per-solver round-robin applied WITHIN each tier.

Consequences

Alternatives considered

References

ADR-075 (per-solver round-robin fairness — extended here), ADR-066 (queue board provenance / the model field), ADR-064/071 (dispatch dedup), ADR-058 (governor caps), ADR-005 (autonomous merge). Leaderboard score_policy (difficulty-weighted scoring). Audit tracked on #5678.