§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
| Metric | Before | After |
|---|---|---|
| Averaged leaves with 2–3 live names | 24 | 0 (84 leaves total, all single-name) |
| Cross-subtree collisions (surface-varying bases) | 15 | 0 |
| Locus-stripped names | 6 | 0 |
| Shared flux-function names (correct, by design) | 3 | 4 (+ magnetic_shear_at_plasma_boundary, now two DD sources) |
| Live grammar-gate violations | 1 | 0 |
| Provenance orphans / edge-scalar desyncs | 0 / 0 | 0 / 0 |
Actions applied (46, all verified against full source sets first)
- 6 rename cascades (target absent): 3 locus-stripped FSA names gained
_at_plasma_boundary;oxygen_density_at_plasma_boundaryand the draftedtoroidal_ion_velocity_at_plasma_boundarystructure name gained the FSA prefix; post-move,toroidal_plasma_momentum_at_plasma_boundary→toroidal_flux_surface_averaged_total_plasma_momentum_at_plasma_boundary. - 27 supersede-merges: short/stripped duplicates onto the canonical FSA name (
name_stage='superseded',superseded_by,HAS_SUCCESSOR+REFINED_FROMedges, sources re-pointed). Includesflux_surface_averaged_magnetic_shearonto the sharedmagnetic_shear_at_plasma_boundary. - 11 targeted source moves (collisions — the short name STAYS as the local leaf's): iron/nitrogen densities, dt/iron velocities, five velocity_tor species, and the momentum pair.
- 2 detach + deterministic create (collided leaves with no donor name):
flux_surface_averaged_effective_charge_at_plasma_boundaryandflux_surface_averaged_ion_density_at_plasma_boundarypersisted through the pipeline write path asname_stage='drafted'— the next routinesn runreview rotation scores them.
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
- No live
maximum_over_flux_surface/minimum_over_flux_surfacenames exist; the §4 gate bans them on flux-function bases at composition. summary/volume_average/*: 26 leaves / 27 names, near 1:1 — explicitly scoped OUT (a volume average of a flux function is not a no-op).- Post-collapse reconcile:
rederive_structural_edges(18 dead edges cleared, 2 migrated),resolve_doc_links(54 links repointed, 11 removed), 0 orphans / 0 desyncs, gate audit clean.
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.