New scripts under scripts/baselines/:
- run_if_ocsvm_cross.py - 20-d canonical flow features (path A)
- run_if_ocsvm_cross_packets.py - raw 576-d packet sequence (path B)
- run_shafir_nf_cross.py - single-NF on 5-d SHAFIR5 subset or 20-d
- *_all.sh - 3 sources x 3 targets x 3 seeds sweepers
New aggregator scripts/aggregate/baselines_cross_3x3_table.py builds a
Markdown 3x3 matrix per method from per-cell NPZ outputs.
RESULTS.md gains a "Shallow-baseline 3x3 cross matrices" subsection
pointing at the new artifact directories.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Mixed_CFM was loading AdaLNBlock / SinusoidalTimeEmb / _sinkhorn_coupling
and flow-feature helpers from Unified_CFM via importlib spec hacks. Pulled
those symbols into Mixed_CFM/_layers.py (model primitives) and inlined
the flow-feature loader helpers into Mixed_CFM/data.py, then deleted
Unified_CFM/ entirely along with three dead aggregate shell scripts whose
referenced eval entry point (artifacts/verify_2026_04_24/) was already gone.
Verified: historic janus_iscxtor2016_seed42 checkpoint re-evaluated under
the absorbed code reproduces all 10 phase1 AUROC scores to 6 decimals;
same-seed retrain converges to within +/-0.001 on terminal_norm (residual
drift is CUDA non-determinism in MultiheadAttention + Sinkhorn argmax,
not the absorption).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>