Architectural finding: eval evaluator's Q-value computation routes through
QValueProvider::compute_q_and_b_logits_to (fused_training.rs:4892) which
delegates to trainer.replay_forward_for_q_values — already atom-shift-wired
since commit 195c051e7.
Implication: eval-side Q-eval INHERITS atom-shift for free. Original
runbook's D4 (eval alpha launcher) is SUPERSEDED — no separate eval-side
compute_expected_q launch needed.
Actual eval-side gap: state[121] is the 0.5 sentinel (aux_dir_prob_null
passed to state_gather kernels) → recentered state_121 = 0 → atom_shift =
W[a] × 0 = 0. Atom-shift is a runtime no-op on eval side until D2/D3/D5
land the aux trunk forward + state[121] population.
Phase D revised estimate: ~25-35 hr → ~3-4 hr if pursued, contingent on
trainer-side smoke validating the mechanism first.
Recommendation: defer Phase D until smoke results show W movement and
training-time WR shift on the trainer/rollout side. If trainer-side moves
WR, Phase D's eval-side activation is justified investment. If not,
re-evaluate H6 hypothesis itself.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>