Per-step launches (in graph capture order):
1. Forward (existing)
2. Action select (existing) → q_dir_logits available
3. launch_sp14_q_disagreement_update → ISV[383, 384, 389]
4. launch_sp14_alpha_grad_compute → ISV[385..395] (consumes q_disagreement)
5. Backward (existing) — wire-col scale at B.10 reads ISV[393]
Per-epoch launch (end of epoch):
6. launch_sp14_gradient_hack_detect → circuit breaker
α_short=0.3, α_long=0.05, α_var=0.05 per spec; warmup_gate derived from
steps_in_fold / WARMUP_STEPS_FALLBACK.
Var_aux producer gap closed (option C from B.4): alpha_grad_compute_kernel
now also writes ISV[VAR_AUX_INDEX=388] via Welford EMA against
(aux_dir_acc_short - aux_dir_acc_long). Adaptive k_aux is now functional
(was degenerate at K_BASE_AUX=20.0 constant pre-B.11). Closes the
"adaptive_k_aux currently degenerate" concern flagged in B.4 commit.
After this commit, the EGF pearl is FULLY ACTIVE end-to-end:
- Forward: aux signal feeds direction Q-head input (B.8/B.9)
- Backward: wire-col gradient gated by α_grad_smoothed (B.10)
- Producers: α_grad computed every step from real driver signals (B.11)
- Pre-B.11 force-closed gate (sentinel 0.0) → post-B.11 responsive gate
Build clean: 18 warnings pre-existing baseline, 0 new.
Tests: 4/4 P0b aux_w tests pass (no regression).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>