SN Pedestal Source Recovery — landed record
The 22 manual pedestal names are resolved. The original
"sources pending in the GENERATE_NAME queue, drain to recover" premise was
disproven on inspection; the real fault was a
compose-grounding gap plus stale grammar segments. All code landed on
imas-codex main (2026-07-09); the graph mutation ran on the live
facility graph. The plan lives in ISN; the code is in imas-codex.
Root cause (confirmed)
- The ISN grammar is correct:
pedestal_topis a first-class atomic locus that round-tripscompose(parse(name)) == namebyte-for-byte. - Compose grounding gap: a per-species DD value leaf
(
…/velocity_phi/<species>/value) carries only a terse template stub ("Deuterium (D)."); the rich LLM-enriched description that names the evaluation locus — "Ion toroidal rotation velocity … at the pedestal top" — lives on the parent quantity node, which compose never saw. So compose took the bare DD path segmentpedestalas the locus → minted…_at_pedestalnear-duplicates. - Stale structured segments: 49 catalog names had id
…_at_pedestal_topbut a storedposition='pedestal'written by the since-removed bulk import and never re-derived through the grammar.
Result on the live graph (production)
- 16 pedestal names recovered — 15
toroidal_<species>_velocity_at_pedestal_top+toroidal_plasma_momentum_at_pedestal_topnow own realStandardNameSource(dd)(velocity_phi + velocity_tor per species where the leaf exists; momentum_phi + momentum_tor), matching the carbon fresh-parity exemplar (source_id=null,FROM_DD_PATHlinked). The 16 redundantmanualsources were dropped. - Content untouched — all 16 remain
accepted/accepted; name/description/documentation byte-identical to the pre-run snapshot (0/16 changed). - Ledger invariant preserved — orphans 0, edge/scalar desyncs 0 throughout.
- Grammar segments realigned:
reconcile_grammar_segmentscorrected 176 names catalog-wide (position/component/… now match the canonical id); idempotent thereafter. - 6 names remain
manual(genuinely anchorless — no clean pedestal-top DD leaf): surfaced as open naming questions (see below), never fabricated.
Workstreams (all on imas-codex main)
| WS | What landed | Commit |
|---|---|---|
| WS-1 compose grounding | Walk HAS_PARENT and surface the nearest description-bearing ancestors into
both generate_name and generate_docs context. Durability proven:
sn run --focus …/velocity_phi/deuterium/value now composes
toroidal_deuterium_velocity_at_pedestal_top with position=pedestal_top.
+graph-marked test. |
a34b7fc |
| WS-2 segment self-heal | reconcile_grammar_segments: idempotent per-rotation sweep re-deriving every
live name's segment columns from its canonical id via the ISN parser; wired into the loop
reconcile. Rejected names untouched. +test. |
(WS-2) |
| WS-3 recovery | Deterministic targeted-attach of the real dd sources to the 16 existing accepted names (graph mutation); redundant manual sources dropped. No LLM, no recompose, content preserved. | graph |
| WS-4 exclude-pending | Rebuild cascade skips an orphan with a claimable pending (extracted/drafted) dd source rather than synthesizing a derived/manual fallback; desync reattach refined to genuine (composed/attached) sources only. +regression test. | (WS-4) |
The 6 anchorless manual names — RESOLVED (2026-07-09)
Reviewed per-name with the lead; live manual-bound names 22 → 1. Never a fabricated DD path.
- Anchored
poloidal_magnetic_flux_at_pedestal_top[Wb] →summary/local/pedestal/position/psi[Wb]. - Anchored
toroidal_diamagnetic_magnetic_flux_at_inside_flux_surface[Wb] →equilibrium/time_slice/constraints/diamagnetic_flux[Wb]. - Anchored
length_of_iron_core_segment[m] →iron_core/segment/geometry/oblique/length_beta[m] — found via imas-dd search (in theiron_coreIDS, not the equilibrium constraint subtree). - Superseded
flux_due_to_thermal_fusion[Hz] → existing propertotal_neutron_source_rate_due_to_thermal_fusion(redundant duplicate; "flux" mis-named a Hz rate). - Superseded
lower_energy[eV] → existing properlower_bound_energy_of_neutron_detector(redundant generic duplicate). - Kept manual
normalized_poloidal_magnetic_flux_at_pedestal_top[1] — genuinely anchorless (nopsi_normleaf; onlyrho_tor_norm, the wrong coordinate).
Also: electron_flux_surface_average_beta_at_pedestal_top and
poloidal_flux_surface_average_magnetic_field_at_pedestal_top fail the ISN parser
(a flux_surface_average grammar edge case) and were left untouched by WS-2 — a
separate grammar item.
Follow-ons
- Blast-radius assessment — the compose-grounding gap affected more than the
pedestal names (176 segment realignments hint at breadth). Assess which already-composed names
were built on template-stub grounding and decide whether to
--reset-torecompose under the WS-1 fix. Assessment first; remediation separately. - DD value-leaf enrichment — per-species value leaves get template descriptions, not LLM enrichment; a broader DD-enrichment quality item (out of scope here).
- Naming-consistency families — the separatrix_average multiplicity (f-psr-005) and the fusion neutron flux→rate family (f-psr-006) share the same class: a canonical-form decision + dedup/rename cascade. Deferred (broader than this plan).