# run_299304ba85 — stopped before training **Status:** failed / incomplete_execution. **Hypothesis:** not tested; no verdict. ## Mandatory gate result The instruction file matched SHA256 `ce6b64e8bbf72916acd8309c1888a1e3dbf86b3c9ed8e0522e26ee5b5b95b935` and was read before setup. Spindle advertises both required models. The pinned tau-bench tree has 500 train tasks and exactly 115 test tasks. No training or evaluation was performed. The requested stock-IS token-advantage path and the closest authors-supported sampled reverse-KL branch were checked using a retained deterministic CPU float32 linear-softmax fixture: 4 sequences, 14 masked loss tokens, and the complete 55-parameter gradient. Packed and unpacked layouts agree. This is a necessary-condition diagnostic, **not** a Qwen/Spindle backend correctness certification. | Check | Measurement | Interpretation | |---|---:|---| | GRPO loss/full-gradient maximum error, all four cases | 0 | Local source-level path agrees | | SDPO on-policy configured IS scalar loss | 0.0419868044555 | Stock-IS surrogate | | SDPO on-policy authors sampled reverse-KL scalar loss | -0.0934171825647 | Authors surrogate | | SDPO on-policy loss absolute error | 0.13540398702 | Fails required bound 0.00193417182565 | | SDPO on-policy full-gradient maximum error | 0 | Gradients match exactly on this fixture | | SDPO stale-input full-gradient relative L2 error | 0.806965213924 | Diagnostic only; not measured runtime lag | | SDPO stale-input full-gradient cosine | 0.595156091767 | Below declared 0.995 floor | The reference branch uses `full_logit_distillation=False`, `alpha=1`, `is_clip=None`, token-mean normalization. The authors default recipe is different (full/top-k logits and alpha=0.5); it was not silently adopted. A separate is_clip=2 diagnostic still has on-policy scalar mismatch and stale-gradient divergence. ## Diagnosis, gaps, and next step This is a **surrogate/reference contract mismatch**, not evidence SDPO underperforms. The IS surrogate and authors sampled reverse-KL surrogate have equal gradients at identical current/sampled logprobs, despite different scalar values. A stale-input perturbation separates gradients too. Exact zero/zero disabled-control gradients also have undefined cosine, so the required cosine check remains unverified; no numeric cosine was invented. The Research Exchange correctness CLI exited 1 with the pinned effective spec. Original-spec placeholder-revision validation is preserved separately. Cheapest next step: obtain a revised correctness contract that explicitly chooses the sampled-token SDPO variant, permitted lag, scalar-surrogate comparison convention, and zero-vector acceptance rule; rerun the retained fixture without relaxing numeric tolerances. If equivalence is required under stale inputs, explicitly revise/justify the objective first. After correctness passes, test actual Spindle logprob alignment, Adam configuration, and matched adapter initialization before activation/timing pilots. Unmeasured: real critique-conditioned advantages, empty/injected-critique behavior, initialization identity, active optimizer family/config, server gradients/precision, activation, representative training/eval timing, checkpoint performance, primary effect and confidence interval. The local Spindle source raises optimizer/introspection questions, but that is not proof about the deployed endpoint. No alternative objective or optimizer was trained. Feasibility remains null rather than fabricated. ## Resource and evidence accounting Training clients: 0. Sampling clients: 0. Optimizer updates: 0. Completed arms: 0. Checkpoints/predictions: none. No run-owned Modal app, fork, or sandbox was created, and no shared deployment was changed or stopped. The capability-query process exited. No measured GPU usage is asserted. The evidence bundle contains exact executed scripts, input/mask fixture, complete toy gradients, extracted pinned reference functions, raw parity/validator output, original and pinned effective specifications, instruction text, source revisions/hashes, dataset counts, reference notes and resource ledger. No outcome predictions or per-item decision rows were manufactured. Lint and Python compilation passed for the diagnostic; mypy reported no issues in both executed scripts (untyped portions are not exhaustively checked).