← back to the evergreen plan

§5 — P4: Catalog unit-family repairs ✓ landed 2026-07-11

Executed as supervised sn edit operations against the production graph (lead-authorized window), each repair re-validated and re-reviewed through the full P2 gate stack; accepted-name renames stamped superseded_from_stage=accepted so P1 emits deprecation stubs at the next export. The review §7 table was 4 days stale — every row was reconciled against the live graph first (13 momentum rows had already been superseded by June pipeline work; 3 of the 4 energy-flux wall entries had been re-united to W·m⁻² by the DD interim fix).

Per-family outcome

FamilyDecisionResult
Momentum → momentum_sourced-momentum-rename 18 accepted names, 17 edits (5 subtree roots + 12 projections). 14 successors accepted through the gates (scores 0.875–1.0); the deferred diamagnetic cascade child recovered by explicit self-scope rename. Residual check: 0 accepted bare *_momentum at kg·m⁻¹·s⁻².
Energy-flux dimension flipsd-energy-flux-reserve 2 still-applicable recombination entries (m⁻²·s⁻¹) folded into the particle-flux family as incident_neutral{,_state}_particle_flux_at_wall_due_to_recombination — both accepted. The energy_flux family is now uniformly W·m⁻² across all accepted rows.
Power-density outliers → energy_fluxd-power-density (lead-refined) The locked *_power_flux_* target was grammar-inexpressible (a flux of power is dimensionally nonsensical — W·m⁻² is the flux of energy). Lead decision: fold the 6 W·m⁻² entries into energy_flux; peaks use the canonical transformation maximum_of_energy_flux_at_<locus> (the infix energy_peak_flux spelling was explicitly disallowed). 5 renames accepted/collapsed (energy_flux_at_divertor_target, maximum_of_energy_flux_at_{first_wall,divertor_target}; energy_flux_at_first_wall collapsed into the existing energy_flux_at_wall by the reviewer). power_density (W·m⁻³) family untouched (71 rows).
One-line self-contradictions toroidal_angle_of_active_limiter_point: recomposed from its true DD source (a dimensionless flux-limiter multiplier) rather than blessing the hallucinated rad anchor — the DD has no φ for active_limiter_point. Hz→s⁻¹ (fusion neutron rate) and electron_source_rate deferred (see residuals).
Source/flux validator rule Live at ISN 4d43923: flags families where *_X and *_X_flux/*_X_source share identical units under near-identical names (warning severity) + 6 tests.

Deprecation-stub spot-check

Every renamed accepted old name shows name_stage=superseded, superseded_from_stage=accepted in the graph (the 802 pre-existing superseded nodes carry sfs=None, so the new stamps are a clean signal) — confirming P1 will emit their deprecation stubs at the next export.

Residuals (documented, safe)

Mixed-unit sweep

Regenerated from the live graph: 2312 accepted names, 310 grammar-groups, 36 mixed-unit — the residual is principled splits (eV vs K temperatures, global s⁻¹ vs volumetric m⁻³·s⁻¹ rates) plus a short list of genuine oddities recorded for later review (neutron-detector unit vectors carrying m; the bare-flux group).