Goal drift

The objective is still in the window. The run completes against a different target. Detection without a corrective stronger than the drive is theater. Commitment (quit the goal) and binding (break the rules) are two channels — one “drift” bit applies the wrong fix.

Start: “ship the auth refactor, never force-push.” End: a drive-by lint cleanup, force-push included, tests skipped. Nothing aborted. Distill will promote the wrong pattern.

binding kept → ← binding broken (rules violated) commitment kept commitment abandoned → done on-goal, rules held bind drift same ask, rules broken quit completed a different ask drifted both channels off ablating the commitment mechanism: 0.00 → 1.00 binding stays 0.00 in the same ablation
Watch — same drive, change the stack
commitment (goal deviation) binding (constraint violation) tolerance detect
Outcome
Commitment Δ
Binding Δ
Correctives fired
0
Mechanism — P25 inventory, not a vibe
RemedyDoesDoes notEvidence
T6 measurePer-constraint decay curvesSteer anything2603.03456
T2 isolate + maxTurnsKeep exploration out of the goal windowFix main-thread driftClaude Code / Cursor subagents
T3 re-anchorInject goal or rules (lifecycle or every call)Know when; mutates prefix if earlyhooks; Agents SDK input filter
T1 executive-disposesSplit commitment vs binding; admit iff prediction matchesRun on open-ended noisy observations2608.04066 · 0→1 vs flat 0
T5 verify vs originalEnd-gate against the first askSurvive a weak checker2608.05013 · 0.821
T4 activation ΔFlag before the transcript liesWork on closed APIs2406.00799 trend

Ablating the commitment mechanism in the executive instrument flips goal-abandonment 0.00→1.00 while binding error stays 0.00. They are two control channels. The field still has no production detect-then-steer loop with headline numbers — that is the gap, not a missing slider.

What to try
  • Detect only (default). Amber detect fires. Both lines still leave the band. Detection is not the fix.
  • Turn on Re-anchor goal only. Teal (commitment) comes back; orange (binding) does not. Force-push still happens.
  • Turn on Restate rules only. Orange recovers; teal still walks off. You kept the constraints and abandoned the ask.
  • Isolate lowers the drive (flood never arrives). It will not save a main thread that is already tangential.
  • Verify vs original yanks teal in the last stretch. If you skip it, completion can pass on the drifted target.
  • Stack T2+T3+T5 at the same drive. Then peel one off and watch which hole re-opens.
Stack in this order: isolate noisy work (T2), echo goal and rules as two injects (T3), gate completion against the original instruction (T5). Measure the two rates separately (T1 vocabulary) or you will apply the wrong echo. T4 is not available on API models. Adapter inject + end-of-session verify are the cheap harness moves; do not auto-promote patterns from high-commitment-drift sessions.