§3 landed — separatrix / separatrix_average multiplicity collapse

Evergreen: sn-boundary-averaged-name-multiplicity · landed 2026-07-10 · deterministic graph ops only (no LLM recompose; $0 of the authorised budget spent)

Before → after

MetricBeforeAfter
Averaged leaves with 2–3 live names240 (84 leaves total, all single-name)
Cross-subtree collisions (surface-varying bases)150
Locus-stripped names60
Shared flux-function names (correct, by design)34 (+ magnetic_shear_at_plasma_boundary, now two DD sources)
Live grammar-gate violations10
Provenance orphans / edge-scalar desyncs0 / 00 / 0

Actions applied (46, all verified against full source sets first)

Momentum "swap" resolution

momentum_phi/momentum_tor are a DD v3/v4 alias pair (tor obsolescent 3.42, removed 4.0) — both leaves denote the SAME total toroidal momentum, so each subtree's two leaves now share one name: local → toroidal_total_plasma_momentum_at_plasma_boundary (2 sources), averaged → toroidal_flux_surface_averaged_total_plasma_momentum_at_plasma_boundary (2 sources). Same alias treatment already held for velocity_phi/velocity_tor species pairs.

Generalisation check

Anomaly noted (out of scope)

Both separatrix*/q leaves map to safety_factor_at_normalized_poloidal_magnetic_flux_equal_to_0_95 — q95, but the separatrix is ψN=1.0. The flux-function sharing is correct; the locus value looks wrong. Queued as followup f-bam-004.