Decision and routing service with cited evidence and abstention; held-out routing 30/32.
Oracle7-Trafficcop 2.0 (internal)
Status: public release. Prometheus7 Research Institute, 2026-09-25.
Source SHA-256 (the trafficcop/*.py files in C-locale sorted order, concatenated; frozen copy at box four
/opt/oracle7-trafficcop-2.0): 4a17af931863c351619efce513f94b4e099067a7d192a37c2ef371e60ce1ce4d. The results
beside this card were re-run under exactly this SHA on 2026-09-25.
What it is
A decision service: given a state and a set of options, it returns one choice with a receipt. It contains no neural network. It works in this order:
- Admissibility preconditions strike options that cannot apply.
- Obligations bind what must be done.
- An evidence table of attested outcomes ranks what remains.
- A short microfold lookahead breaks ties.
- When nothing is warranted, it abstains to
collect_evidence.
It replaces Laya, an LLM decision service, behind the same DecisionRequest contract. Standard library only; about 0.1 ms per decision.
Results
Routing (Chameleon repair and MetaFold decisions)
| Dev (16 = 8 cases Γ 2 option orders) | Held-out (32) | Order-consistent | |
|---|---|---|---|
| trafficcop | 16/16 | 30/32 | dev 8/8, held-out 16/16 |
| always first | 4/16 | 8/32 | 0/16 |
| always last | 4/16 | 8/32 | 0/16 |
| random | 3/16 | 7/32 | 3/16 |
| always abstain | 4/16 | 8/32 | 16/16 |
| label-blind | 4/16 | 8/32 | 16/16 |
| Laya (recorded) | 3/16 | β | β |
- The 30/32 is from the first run on the held-out cases, which were never tuned.
- Both held-out misses are abstentions to evidence (case h-behavior-2, in both orders), not wrong commitments.
- Structured MetaFold states: 2/2. That includes the case with no eligible operator, where Laya chose an operator whose precondition failed.
- Latency: 0.085 ms per decision; Laya took 7.7β16 s.
- Every mutant scores below the real model on held-out, so the instrument is valid.
Arcade (frozen RetroV1 decision panel, plus live episodes)
| Frozen panel | 20 episodes: mean score (best) | ms per decision | |
|---|---|---|---|
| trafficcop | 24/24 | 41.75 (48) | 0.445 |
| greedy, no lookahead | β | 22.15 (37) | 0.280 |
| random | β | 0.15 (1) | 0.178 |
| Laya (recorded) | best 16/24 | development episodes 0 / 0 / 1 | β |
Clone-capture triage (Chameleon)
The development card is tuned on 64 human-scored captures:
- Approval-candidate precision is 72%.
- The failure mechanism agrees with the human label on 8/28.
- All 156 failed captures are bucketed.
Because 64 of the 66 human labels that existed were used to tune it, this is a development number, not a claim.
Independent panel: PENDING. 60 catalogue sites were sampled at random (seed 20260925) from the 1,429 captures in
needs_review that had never been human-scored. trafficcop's predictions were written and sealed before any label
existed:
- Sealed file SHA-256:
d9367a4dee474a4ded1b633746852cec0ce5e4a4b502f1b8dbaf36d109dc487e. - The file is root-owned with mode 0400. The labelling service runs as a separate user and cannot read it.
- Predicted split: 28 candidate_for_approval, 10 review_visual_mismatch, 13 repair_missing_assets, 4 repair_readiness, 5 collect_full_evidence.
Ben labels the 60 sites blind (0β4). score_panel.py refuses to run if the sealed hash has changed. It reports:
- approval precision and recall (approve = human score 4),
- mean human score per predicted class,
- the approve-everything baseline.
This section is filled in from that run and is not estimated in advance.
Failures, stated plainly
- The routing held-out cases (32) were written by the builder before the first run. They are held out, but they are not independent. The sealed 60-site panel exists to close that gap.
- The capture-triage precision (72%) is on its own tuning data.
- Coverage is the decision families that were built: Chameleon repair routing, MetaFold operator choice, RetroV1 arcade, topic routing for the Expert Ring. Nothing is claimed outside them.
Reproduce (box four)
cd /opt/oracle7-trafficcop-2.0
python3 eval_routing.py
python3 eval_arcade.py
# after labels: /opt/trafficcop-panel/venv/bin/python /opt/trafficcop-panel/app/score_panel.py sealed/predictions.json labels/labels.json <out>