One production turn
served by Shift-1
request 1
end of turn
Developer's next message
"That broke the build again."
1. Developer feedback
LLM judge on the next message
CORRECTION → this turn landed badly. Every request shares one outcome.
One outcome for the whole turn
Judged on ~118K production turns, cheap. Picks the turns to phase-judge.
2. Hindsight phase judge
LLM reads the whole turn, every step, plus the next message
normal work
trouble building
in trouble
Marks step ranges, never numbers. Each trouble phase gets a cause:
capability counts
environment ignored
scope ignored
Where the turn went wrong
Also marks recovering and routine stretches, which become hand-back labels.
3. Per-request targets
fixed rules turn phases into labels for Shift-1's two heads
"Astra needed?"
early warning
ramp 0.3 → 1
1.0
"Safe to use Sol?"
0 everywhere: no recovering or routine phase in this turn
A label at every request
Rises before trouble starts, so the router learns to see it coming.
Astra request
Sol request