This plan converts F. Imbeaux’s 7–10 July 2026 review of catalog release candidates into a current-state remediation programme. It does not assume that release-candidate observations remain true: every item is first checked against the live imas-cx graph, then assigned to the repository that owns the durable fix. Implementation is underway in bounded, independently verified slices; semantic graph migrations and releases remain gated on explicit decisions and reviewed manifests.
The desired outcome is a catalog whose names preserve the necessary physics and engineering context, whose definitions are concise and accurate, whose domains are coherent, and whose generator cannot recreate the reviewed defect classes. Renames and duplicate consolidation must preserve lineage and source-path relationships rather than merely deleting conflicting entries.
Each finding is verified before it is routed; durable remediation combines data correction with grammar, presentation, or generation safeguards where needed.✓ execution pass 2026-07-15
Review verdict: five-way adversarial audit of all commits since plan authoring — nothing reverted; defects fixed.
Committed: ISN dabbbae (COCOS guard reachability/regex/error severity), 8ea0c2e (SPA enhanced-context crash, chip-filter regression, exact-match attribution); imas-codex 2b67a2b5 (override scoping + provisional gyrocenter + integration test), d5188d94 (ISN pin → 8ea0c2e, restoring regen==targeted-edit composability), b2dd899c/ddd13fe0 (prompt/test exception-count drift, label scrub).
Live-graph (sn edit/sn run only): x1/x2 → first/second_local_tangential migration — 19/22 successors accepted at 0.96+ ($1.77), predecessors superseded with lineage; 3 exhausted at 0.80–0.84 (quorum variance) await lead accept. q/height docs edits converging through scoped curative rotations; poloidal_magnetic_flux_at_minimum_safety_factor accepted 0.95 (one typical-values residue queued for re-edit).
Key discoveries: clear-gate no longer fires (hash recorded 2026-07-15T20:06); staged docs edits are unclaimable via --edits (score-gate bug — fix drafted, awaits sign-off); wave-power renames were already applied, not staged.
Blocked on lead (6): see followup f-user-authorizations-20260716 — RC cut, --override-edits editorial batch, 3 exhausted successors, provenance-cleanup/row-10, §7.3 backfill, gyrocenter target.
✓ documentation campaign complete 2026-07-21
Review comment 1 closed at scale + reply logged
Comment 1 (verbose/tangential documentation) is resolved catalog-wide. The budgeted refine campaign built in the
model-selection-and-global-refine plan drained the documentation-axis defect set
1,047 → 0 across five reviewed rotations (≈$365; ~98–99% mean acceptance; 0 banned-prose reintroduction, 0 name drift),
every batch re-audited by the deterministic ISN check. Root causes were fixed in prompts/validators before the bulk pass
(strict-normative policy 4b36befa, derived-parent gate rescope 93276ebf, revalidation surface
68f8fa65/3a562921/363a6ee1/b68b1e52, decomposition-audit retirement
e3d20e11→c6191e61→5a08c744, unit-inheritance fix e73331a9+db261bca/fab5af85);
the engine + gates rode the normal pipeline (campaign scope a1c8ca1e, claim-race fix af69e3e2,
per-batch re-audit fa503f83, LLM-adjudicated gate 1c2e166a+fbd6a51b).
Full change log:expert-review-reply §5 — every change carries a SHA or graph-event reference.
Residue (superseded — see §7.6 below): the "6 *_strain_gauge→*_strain_gage US-spelling renames" framing was a misdiagnosis on both counts. The 52 length flags were correctly dropped when the arbitrary 70-char cap was removed as an anti-pattern (imas-codex 7e583184) — a name is as short as its physics requires, and no shorter.
Released v0.2.0rc63 → origin (ISNC 007a39f1); 1858 names, all four export gates pass, staging validates; ISNC CI green.
The planned "6 US-spelling renames" residue was a double misdiagnosis: american_spelling_check is advisory (never quarantines) and gauge is the standard American spelling / the DD's own word ("strain rosette gauge"); the 6 names are DD-faithful (sensor/direction{,_second}/{x,y,z}) and were never renamed.
The real defect was unfilled placeholder documentation (critical placeholder_check) on 5 names — fixed with clean authored sn edit --docs (≈0.90 each), zero renames.
Four root-cause bugs fixed en route: NC-17 gauge allowlist (27ac45ee), sn run DD-source re-seed crash (3bdf37d5), export deprecation-stub Cypher SyntaxError (a0b7c1ca), and _is_quarantined ISN-ERROR severity — which caught a bare coordinate that would otherwise have blocked the release (426132e8).
Full record: §7.6 landed.
One advisory follow-on remains (f-ordinal-carrier-readability): ordinal-led carrier names read awkwardly under the bare component-prefix rule — a grammar-review question, not an RC blocker.
§2 — Condensed expert review
Documentation discipline: definitions are strong, but additional prose is often verbose, method-specific, speculative, or tangential; examples include thermal_plasma_energy and total_power_due_to_ion_cyclotron_heating.
Provenance presentation: DD source paths should link to DD documentation and were absent in one reviewed release candidate.
Grammar semantics: loci such as LCFS and ITB are usable tokens but have no first-class definitions discoverable in the catalog.
Context preservation: generalising a DD path can erase the owning diagnostic component or local coordinate meaning, as for the X-ray crystal reflector’s x2_curvature.
Coordinate ambiguity: “radial” denotes both cylindrical major-radius direction and a flux-surface-normal or flux label.
State semantics: DD ion state may describe charge, vibrational level, or electron configuration; generated names and definitions over-specialised it to charge state.
Name precision: several names omit plasma, wave-absorption, population, enclosure, or integration semantics, including ICRH power, thermal-electron power, bare power density, stored energy, and first-wall volume.
Duplicate concepts: deposited electron power, plasma energy, and plasma current appear in overlapping bare/total/toroidal forms.
Coordinate completeness: plasma-control and camera objects lack consistent cylindrical coordinate triplets; locus definitions are only indirectly visible through quantity documentation.
Physics correctness: the safety-factor sign text differs from the DD convention, and the minimum-q locus should be based on minimum abs(q) if that is the intended DD concept.
Domain taxonomy: lower-hybrid antenna pressure, computational-workflow gyrocenter quantities, and the broad mechanical-diagnostics bucket appear misplaced or reveal weak domain definitions.
Editorial simplicity: definitions such as flux-loop effective area use needlessly complicated polarity language where a short positive/non-negative constraint would suffice.
§3 — Current-state labels and evidence
Labels are operational: already fixed needs only a regression guard; partially fixed retains a live defect; confirmed current is reproducible now; needs physics decision cannot be changed safely without an expert choice; needs design decision spans the project boundary; and inventory gap requires source-path coverage analysis before proposing names.
#
Review item
Current evidence (15 July 2026)
Label
Address through
Proposed resolution and acceptance evidence
1
Verbose or tangential documentation
Strict normative prompt, schema, review and exemplar policy landed in imas-codex 4b36befa. Both cited graph entries passed the supported edit/review loop with the criticized practical paragraphs removed; ISNC export is pending.
implemented; export pending
imas-codex + ISNC
Export through the supported CLI after provenance validation, then verify the rendered definitions and regression fixtures.
2
DD source paths missing and not clickable
ISN 701d0f1 implements accessible pinned-version source links, meaningful-parent fallback, separately labelled derived context, and no latest fallback. imas-codex 4df4c599 requires immutable exact-version source snapshots and fails closed on incomplete public provenance.
implemented; legacy migration blocks export
ISN site + imas-codex graph export
Produce and review a one-off migration manifest from a direct graph query, explicitly migrate provable sources without guessing versions, then export and confirm deployed exact-version links.
3
Loci have no definitions
ISN 701d0f1 defines all 168 loci, exposes typed StandardTerm list/fetch/search APIs, and adds searchable/shareable Grammar-tab and parsed-chip definition surfaces. LCFS/ITB are display/search abbreviations only.
implemented
ISN + site
Retain full vocabulary coverage, parser-disjoint abbreviation tests, SPA tests and grammar codegen checks as release gates.
4
Reflector context and X2-axis meaning lost
The hybrid design is locked. ISN 1eaf14e defines the DD-backed ordered local frame across components, coordinates, unit vectors and StandardTerms; 47 DD frame families were audited. The exact catalog rename and imas-codex fixture cleanup remain.
Replace the unsupported front_surface prompt example with second_local_tangential_radius_of_reflector, rebuild stale X2-vertical cluster labels, then migrate the source-backed graph name after the ISN release.
5
Two meanings of radial
ISN ff23d3f/a6ceee1 defines radial as cylindrical R, adds flux-surface-normal, and keeps perpendicular magnetic-field-relative. imas-codex prompt and fixture guards landed; catalog migration waits for the ISN RC.
grammar and pipeline implemented; migration pending
ISN grammar + ISNC + pipeline
Release ISN, pin imas-codex, apply a reviewed source-backed rename manifest, and verify family round trips and lineage.
6
Ion state forced to charge state
The evidence-specific rule is locked: charge-state wording requires explicit leaf or identifier evidence. The redesign has landed for the cited family, while inventory-wide coverage and cleanup remain pending.
design fixed; coverage pending
imas-codex + ISNC; ISN if vocabulary changes
Audit every remaining state-container source, correct unsupported specialisations, and preserve source provenance through the cleanup.
7
ICRH absorbed power omits plasma
Name and plasma-centric wording remain unchanged.
needs physics decision
ISNC + ISN/pipeline guard
Decide whether the quantity is launched, coupled, or plasma-absorbed power. Rename only if the source definition supports absorption; otherwise correct documentation. Add a power-boundary checklist.
8
Thermal-electron power omits wave mechanism
Name remains broad while definition says coherent-wave absorption.
needs physics decision
ISNC + imas-codex
Confirm source scope, then either rename with wave/absorption semantics or generalise the definition. Test sibling consistency across electron, ion, fast, and thermal power channels.
9
Bare power_density versus electron_power_density
Both remain accepted; bare entry is now described as a generic channel parent, so the historical electron-only claim is partly corrected.
partially fixed
ISNC
Verify graph/source separation. Keep the bare name only as a true parent with distinct provenance, or merge/supersede it if it shares an electron DD source. Add duplicate-semantic review evidence.
10
thermal_electron_stored_energy naming consistency
Name remains and explicitly maps to summary stored-energy data; thermal_plasma_energy lacks “stored”.
needs physics decision
ISNC + ISN vocabulary if renamed
Set a family-wide rule for “energy” versus “stored energy”; migrate the minority form with lineage and ensure common physical_base grouping.
11
volume_of_first_wall means enclosed volume
Description now explicitly says “volume enclosed by the first wall,” but the ambiguous name remains.
partially fixed
ISNC + ISN grammar
Prefer an enclosure-bearing canonical form if grammar supports it; otherwise document a consistent geometric-base convention. Preserve predecessor/successor links and add geometry-family tests.
12
Deposited-power duplicates
electron_deposited_power, electron_power, and total_electron_deposited_power all remain. The first entry’s prose itself says the first and third both represent a specified source or sink.
confirmed current
ISNC + imas-codex duplicate gate
Build a source-path/definition comparison, choose one canonical meaning per scope, merge or specialise entries, and require lineage plus zero orphaned references.
13
Plasma-energy and plasma-current duplicates
All four energy names and both current names remain accepted; plasma_current has four authoritative ip source paths.
confirmed current
ISNC + imas-codex duplicate gate
Compare sources, units, grammar, and definitions; treat “total” or “toroidal” as redundant only where no distinct aggregation/frame exists. Consolidate with explicit lineage and reference rewrites.
14
Missing plasma-control and camera coordinates
The gap-reference radial coordinate now exists, while camera radial and toroidal names are still absent. Live plasma-control classification has only four entries, including unrelated-looking atomic_mass.
partially fixed / inventory gap
imas-codex discovery + ISNC
Derive an object-by-coordinate coverage matrix from live DD paths; propose only source-backed missing names; expose the locus definition; add completeness checks for coordinate families.
15
Safety-factor sign convention
The disputed “both directed in increasing toroidal angle” sentence remains.
confirmed current
ISNC + imas-codex convention prompt
Align to the authoritative DD/COCOS physical relation after expert confirmation; add a canonical convention fixture shared across the q family and an exact regression test.
16
Minimum q versus minimum absolute q
Current entry still uses arg min q, not arg min abs(q).
needs physics decision
ISNC; upstream DD if necessary
Confirm intended DD semantics and sign domain. If upstream is wrong or ambiguous, file and track a DD issue; update all minimum-q locus entries together after resolution.
17
Domain taxonomy
Computational workflow still contains exactly three gyrocenter-frequency names; mechanical diagnostics contains 61 heterogeneous entries. Lower-hybrid antenna pressure exists but its live fetch did not expose domain.
confirmed current / needs design decision
ISN domain vocabulary + ISNC + pipeline
Write inclusion/exclusion rules, remap sources and entries, and add domain-family coherence checks. Decide whether domain follows owning subsystem, measurement method, or measured physics.
18
Flux-loop area wording
“Non-negative effective sensing area” remains, with a long polarity explanation.
confirmed current
ISNC + editorial prompt
Shorten the primary definition while retaining the mathematically correct non-negative constraint; ensure the prompt treats concise constraint statements as preferable to explanatory padding.
Produce a one-off reviewed migration manifest; export remains fail-closed
Standard terms, loci and SPA source UI
Implemented
ISN 701d0f1; 168 loci; SPA tests and production build green
Consume populated producer snapshots and verify deployment
Local diagnostic frame definitions
Implemented in ISN
ISN 1eaf14e; 47 DD families audited; targeted and focused suites green
Correct imas-codex example/labels and prepare exact catalog migration
Naming, duplicates, q, domains and gaps
Pending interactive resolution
Live evidence captured in rows 7–18 and structured followups
Lock remaining expert decisions before graph edits
§4 — Implementation programme
4.1 Freeze evidence and define policy
Create a machine-readable review ledger keyed by canonical name and finding class. Capture live existence, stage, source paths, grammar decomposition, domain, related names, and the reviewer claim. Lock the decisions below before any rename. Done when each of the 18 rows has an owner, current-state snapshot, decision state, and measurable acceptance test.
4.2 Land low-risk editorial and presentation fixes
Repair DD source hyperlinks, simplify flux-loop wording, and remove unsupported or tangential documentation from confirmed examples. Update the documentation prompt and exemplars at the same time so regeneration does not reverse curated edits. Done when renderer integration tests pass, generated prose meets the proportionality rubric, and the reviewed examples pass expert re-read.
4.3 Resolve semantic duplicates and naming families
For deposited power, plasma energy/current, stored energy, wave power, and enclosed volume, compare source paths and quantity scopes before selecting canonical names. Use predecessor/successor/refined-from relationships for every consolidation. Done when no two accepted entries claim the same source and semantics, all inbound links resolve, and family summaries retain consistent physical bases.
4.4 Clarify grammar-level context
Add vocabulary definitions for loci and settle the radial-frame and reflector/local-axis designs. Any vocabulary change must update YAML and generated enums together, pass full catalog parse/compose round trips, preserve qualifier ordering, and keep related quantities grouped. Done when every relevant token has discoverable semantics and ambiguous source paths can be distinguished programmatically.
4.5 Reclassify domains and close inventory gaps
Define domain assignment policy, audit the three challenged domains, and generate DD-backed coordinate coverage matrices for plasma-control and diagnostic objects. Missing names enter the normal imas-codex proposal/review pipeline; they are not authored directly in ISN. Done when every move has a stated rule, coordinate gaps are either filled or explicitly non-applicable, and cross-domain searches return coherent families.
4.6 End-to-end release gate
Regenerate documentation in a controlled sample, validate the catalog, build the site, query the live graph, and compare the review ledger. Add regression checks for source-link presence, ambiguous radial terms, generic-state over-specialisation, semantic duplicates, domain outliers, and verbosity. Done when every ledger item is fixed, intentionally deferred with a named decision, or documented as already fixed with a passing guard.
§5 — Verification matrix
Layer
Required checks
Failure prevented
Live graph
check_standard_names, exact fetch, family summary, related names, domain inventories, source-path presence
Acting on stale release-candidate state; hidden duplicate or lineage damage
Reintroduction of verbosity, context loss, charge-state assumptions, bad domains
Expert acceptance
Focused review of radial semantics, q conventions, power boundaries, and domain policy
Automating an unresolved physics choice
§6 — Risks and sequencing constraints
Do not treat similar wording as proof of duplication; source scope, aggregation, integration domain, and physical mechanism must be compared first.
Do not introduce catalog names directly from this repository. ISN defines grammar; imas-codex proposes names; ISNC stores approved catalog entries.
Do not resolve “radial” with a bulk string replacement. Cylindrical components and flux-surface-normal transport require different migrations.
Do not rewrite documentation without changing the generator policy and regression corpus, or the next regeneration can recreate the defect.
Changes to DD-derived semantics may need upstream DD resolution; quarantine rather than rationalise an authoritative inconsistency.
Release-site verification must use the rendered deployment artifact in addition to the graph, because source hyperlink failures are presentation/export defects.
§7 — Future-session execution handoff
This is the authoritative restart point. No background work needs to be rediscovered. Begin by reading this plan and the commits in the delivery ledger; query the live graph again only for state that may have changed. All programme-level decisions are locked. Family-specific canonical names in rows 7–13 still require the interactive followup before mutation.
7.1 Establish a clean, reproducible baseline
Inspect all three repositories with git status --short and recent logs. Preserve unrelated changes.
Confirm ISN commits 701d0f1 and 1eaf14e, and imas-codex commits 1f95b756, 4b36befa, and 4df4c599.
Run focused tests before making further edits. Treat the known /run/user/.../.git failure as an environment issue only if the isolated git-root test reproduces it.
7.2 Close the local-frame pipeline residuals
In imas_codex/llm/prompts/sn/generate_name_dd.md, its golden fixture, and the anti-pattern test, replace second_local_tangential_front_surface_radius_of_reflector with second_local_tangential_radius_of_reflector.
Correct the three generated labels that call X2 vertical in imas_codex/definitions/clusters/labels.json, then rebuild the corresponding packaged DD cluster resource rather than leaving source/resource drift.
Run prompt goldens, standard-name anti-pattern tests, cluster resource checks and Ruff. Commit this as a bounded imas-codex correction.
7.3 Resolve legacy DD snapshots before export
Use the project-scoped imas-cx Python REPL or a direct read-only GraphClient query to inventory StandardNameSource nodes where source_type = 'dd' and dd_snapshot_pinned is false. Save the result as the migration review artifact; do not add a product CLI command or permanent single-use library API.
Review counts and identities. Recover an exact DD version only from authoritative run/release evidence. Never infer from the current graph node and never substitute latest.
If an original version cannot be proven, prepare a separate explicit regeneration proposal against a named DD snapshot for user approval. Do not mutate the live graph during investigation.
After approval, implement the bounded one-off migration in its migration change, retain its reviewed manifest and verification evidence, and remove the migration driver after execution. Require a direct invariant query to return zero unpinned or incomplete public DD sources before export.
7.4 Publish grammar and pin the consumer
Merge the ISN commits to upstream/main, wait for required CI, and ensure the working tree is clean and synchronized.
Run uv run standard-names release status, then use the next valid RC command reported by the release CLI. Do not create tags manually.
Wait for publication, then update imas-codex to the exact ISN RC with uv, refresh uv.lock, and run grammar, prompt and standard-name tests against the released package.
7.5 Finish the review interactively, then mutate once
Complete f-naming-duplicates for rows 7–13 and record an exact canonical-name/source-retarget manifest.
Apply the locked lifecycle rule: unapproved predecessors are compacted into private history after dry-run review; PR-approved names use public staged deprecation. No current name is PR-approved.
Apply radial, reflector/local-frame and ion-state corrections through supported graph edit/refine operations. Correct q semantics, the safety-factor sign text, domain assignments, coordinate gaps and flux-loop wording in the same reviewed campaign only after their manifests are explicit.
Rerun source, lineage, duplicate, grammar-family, documentation and domain checks. Require no orphaned DD source and no public operational provenance.
7.6 Export and release gate
Export via the imas-codex release/export CLI; never edit ISNC YAML manually.
Validate ISNC, run SPA tests and production build, verify StandardTerm cards, pinned DD links, parent fallback and derived-context labels, and check that zero-source sections are hidden.
Cut the catalog RC only when every review row is fixed or explicitly deferred with a named external blocker. Record release versions and resolve the corresponding followups in this plan.
7.7 Hard stops
Do not export while the direct source invariant query finds any unpinned or incomplete legacy DD source.
Do not cut an ISN release from a dirty, unsynchronized or failing main branch.
Do not run live provenance cleanup or semantic compaction without reviewing its dry-run manifest.
Do not dispatch graph renames until rows 7–13 have exact approved canonical outcomes.
Do not treat RC inclusion or LLM accepted status as PR approval.
§ Decisions
How should names distinguish cylindrical major-radius components from flux-surface-normal or flux-label quantities?
Define radial exclusively as the cylindrical R component in the right-handed (R, phi, Z) frame. Introduce flux_surface_normal for signed vector projections normal to magnetic flux surfaces, positive toward increasing flux label. Retain perpendicular for magnetic-field-relative semantics; it is not a synonym for flux-surface normal. Keep radial_coordinate_of_* as cylindrical major-radius coordinates and distinguish flux-coordinate derivatives from physical unit-normal projections.
Must component identity such as reflector be encoded in the standard name, or may structured source-context metadata carry it?
Live DD evidence: channel/reflector is an optional set of reflectors directing plasma light toward the crystal. X3 is the reflector-surface normal oriented toward the plasma; X1 is the local tangent direction chosen to be more horizontal than X2; X2 is the orthonormal local tangent direction uX2 = uX3 × uX1. Therefore X2 is not the machine vertical direction, and vertical_front_surface_radius_of_optical_element asserts unsupported semantics. The DD source inspires the quantity but does not dictate its canonical SN wording.
Use descriptive local-axis terminology rather than DD labels. Retain first and second local tangential directions because the DD defines a physical ordered frame: the third direction is normal to the object surface or plane and points toward the plasma; the first tangent is horizontal or more horizontal than the second and points in the positive toroidal direction; and the second tangent satisfies e2 = e3 × e1 . Encode the intrinsic object class and local tangent direction when they change quantity meaning; retain diagnostic, channel, and storage hierarchy only as structured provenance. Remove registered X1/X2 labels. Never reinterpret the second local tangent direction as global vertical or either tangent as a principal-curvature direction without evidence.
What is the primary rule for physics-domain assignment when source subsystem, diagnostic method, and measured physics disagree?
Assign the primary domain from the semantic subject and function of the standard name. Plasma quantities follow the physical phenomenon they describe; intrinsic plant or diagnostic component quantities follow the component's functional subsystem. Source IDS, producing workflow, and diagnostic method remain secondary facets and must not override the named quantity's meaning.
Should the minimum-safety-factor locus minimize signed q or abs(q) , and should resolution wait for an upstream DD clarification?
Define the minimum-q locus as arg min |q|. The associated q_min value is signed q evaluated at that locus, not the non-negative magnitude |q|. This preserves the DD q_like COCOS transformation: a q sign reversal leaves the locus unchanged and reverses the stored value. Poloidal flux at minimum safety factor therefore means flux at arg min |q|.
For accepted ambiguous names, should this programme favour immediate canonical renames or documentation-first correction followed by staged lineage migration?
For names that have not been accepted through a merged catalog PR, apply the canonical rename immediately through supported graph operations, atomically retarget semantic DD sources, and compact the superseded node into private StandardNameChange history after a reviewed dry-run manifest; do not publish a deprecated alias. For PR-approved names, use a staged successor and governed public deprecation through catalog PR review. RC presence does not confer approval, and an identifier is not reused while an uncompacted predecessor still occupies it.
When should a DD ion/state source become ion_charge_state rather than generic ion_state in a standard name?
The reviewed fast_ion_state_power is superseded and fast_ion_charge_state_power exists, but accepted ion_state families still often define state as ionization charge. DD ion/state is a generic resolved-state container that may include charge number, vibrational level, or electron configuration. The generator must use the leaf quantity and identifier context, not infer charge solely from the parent path.
Use ion_charge_state only when the DD leaf, identifier, or other explicit source evidence resolves ionization charge. Otherwise retain generic ion_state or name the actual internal-state axis such as vibrational level or electron configuration. Parent path spelling alone is not evidence.
How is catalog PR acceptance represented independently from LLM review acceptance?
The project is still in its first RC cycle and no standard name has yet been accepted through a catalog PR. RC presence and catalog_edit origin do not imply governance approval.
Retain accepted as the LLM name-review threshold and add approved as the subsequent lifecycle state set only by a merged catalog acceptance PR. RC export/import must never set approved. Persist PR number/URL, merge commit, and approved_at; superseded names are retained as governed deprecations only when superseded_from_stage was approved.
What documentation belongs in a rigorous standard-name definition?
The review identified diagnostic lists, estimator recipes, typical values and practical commentary as verbose or inaccurate.
Definitions state identity, equations, domain, sign and exclusions. Measurement or computation methods appear only when constitutive or required to distinguish the quantity; diagnostic inventories, estimator recipes, typical values, advice and padding are prohibited.
How should grammar concepts such as loci be defined and presented?
Loci such as last_closed_flux_surface and internal_transport_barrier were grammar tokens without first-class discoverable definitions.
Model governed compositional concepts as StandardTerms in ISN YAML, separate from complete quantity StandardNames. Define every locus; expose term list/fetch/search APIs and SPA detail surfaces. LCFS and ITB are display/search abbreviations only, never parser aliases.
How should DD sources and enhanced descriptions appear in the catalog?
The graph contains raw DD documentation and richer derived descriptions, while source links must resolve to the exact DD release used by the name.
Link to the exact pinned DD version and path, never latest. Show authoritative raw DD documentation with meaningful-parent fallback for terse leaves, then separately label enhanced context as derived/generated. Do not expose operational model, hash, cost, timestamp or edit-ledger fields.
How should source provenance and superseded unapproved names be retained?
DD sources were retained, but source ownership and edit chains were inconsistent across refine, regenerate, cascade and reconcile paths; operational lineage leaked through public outputs.
Retain immutable semantic DD-source snapshots and centrally retarget them through supported edits. Store operational transformations as private StandardNameChange history exposed only through an explicit trace tool. Compact unapproved superseded nodes into internal change events after a reviewed dry-run manifest; preserve governed deprecations only for PR-approved names.
no-cocos-in-descriptions
Standard-name descriptions must NEVER name a COCOS number. Sign and coordinate conventions are stated explicitly in physical terms (e.g. q positive when B_phi and I_p are parallel; right-handed cylindrical (R,phi,Z)). The DDv4 basis is COCOS 17 (DDv3 was COCOS 11) but neither number appears in prose. COCOS is carried only in a dedicated graph/catalog metadata field, not in the human-readable definition. A catalog-wide sweep must strip any existing COCOS mention and a regression guard must reject new ones.
domain-move-mechanism
Apply the ~30 confident physics_domain reclassifications via a reviewed direct Cypher SET (physics_domain + source_domains) on the live graph, then re-export. In the same campaign, locate and fix the code/LLM prompt that assigned the incorrect domains at root (dd_domain_classifier.py / definitions/physics/ids_domains.json / domain_gold_set.json) and add a regression unit test that guards the corrected assignments so future runs cannot reintroduce them.
gyrocenter-domain
Lead confirmed transport (2026-07-16): guiding-center orbit dynamics is kinetic/orbit-transport physics; the distributions IDS default is transport; fast_particles is too narrow (all charged particles have gyrocenters) and not an existing domain. Applies to gyrocenter_frequency, poloidal_gyrocenter_frequency, toroidal_gyrocenter_frequency (computational_workflow -> transport) and, for family coherence, gyrocenter_density + gyrocenter_current_density (null -> transport). The code override (path_domain_overrides.json) already encodes transport; its provisional marker can be retired.
§ Followups
Implement explicit radial and flux-surface-normal semantics
The radial-frame decision is locked. Implement the grammar, catalog migration, and pipeline regression slice without broad string replacement, while preserving source-backed meaning and lineage.
Project: imas-standard-names
Plan: catalog-expert-review-remediation (http://localhost:8765/imas-standard-names/catalog-expert-review-remediation.html)
Section: §4.4
Tier: opus
Context
The lead has fixed the coordinate semantics: radial means the cylindrical R component; flux_surface_normal means the signed component normal to magnetic flux surfaces toward increasing flux label; perpendicular remains magnetic-field-relative and must not substitute for flux-surface normal. Implement this bounded grammar and migration slice while the broader expert review continues.
State to read (CODE / FILES / DATA — the builder already injects the plan URL)
imas_standard_names/grammar/, tests/ grammar and round-trip suites, sibling imas-standard-names-catalog standard_names/, and sibling imas-codex standard-name prompts/review gates. Query imas-cx for the current radial family before deciding the exact affected inventory.
Scope locks / constraints (non-decision)
Preserve the ISN/imas-codex/ISNC project boundary. Do not bulk-replace radial strings. Keep radial_coordinate_of_* as cylindrical R. Treat flux-coordinate derivatives and scalar flux labels separately from vector projections. Update grammar sources and generated modules together. Preserve lineage for catalog renames and do not bypass the read-only live graph.
Done-when
1. Vocabulary definitions and validation encode radial, perpendicular, and flux_surface_normal unambiguously; affected source-backed catalog names are migrated with lineage and pipeline guards
2. full relevant parse/compose, grouping, catalog, prompt, and renderer tests are green in every changed repository
3. followup written into plan + this followup marked resolved
Grammar (ISN ff23d3f/a6ceee1) and pipeline guards (imas-codex 0eb23bf3/0c5bfa94) reviewed sound and consistent with the locked decision; full-catalog parse sweep against ISN main found zero radial-family breakage and no source-backed radial names requiring migration (only the x1/x2 set, handled separately). Definitions verified: radial=cylindrical R, flux_surface_normal signed toward increasing flux label, perpendicular magnetic-field-relative.
Replace DD-shaped local-axis labels with descriptive semantics
The context-model decision is locked. Replace registered X1/X2 carriers with descriptive local tangent directions, correct the reflector-curvature family, and add generation/review safeguards so reruns cannot restore DD-shaped or verticalised names.
Project: imas-standard-names
Plan: catalog-expert-review-remediation (http://localhost:8765/imas-standard-names/catalog-expert-review-remediation.html)
Section: §4.4
Tier: opus
Context
The lead chose descriptive local-axis terminology. Replace registered DD-shaped x1/x2 coordinate labels with semantic first/second local tangent directions, and correct the current unsupported vertical interpretation of reflector x2 curvature. The ordered local frame remains meaningful: e3 is the plasma-facing object normal, e1 is horizontal or the more-horizontal tangent oriented in positive toroidal phi, and e2 = e3 cross e1. The source DD is inspiration, not a naming template.
State to read (CODE / FILES / DATA — the builder already injects the plan URL)
imas_standard_names/grammar/vocabularies/geometry_carriers.yml, locus/object vocabularies, generated grammar types, parser/composer, all x1_coordinate/x2_coordinate tests, current catalog examples in the sibling ISNC checkout, and imas-codex generate_name prompts that mandate x1/x2 carriers. Use the recorded imas-cx DD parent evidence.
Scope locks / constraints (non-decision)
X3 is the surface normal toward the plasma. X1 is horizontal or more horizontal than X2, has the smaller absolute global-Z component, and is oriented in positive toroidal phi. X2 is the orthonormal tangent fixed by X2 = X3 cross X1. Do not call X2 vertical or assume principal curvature. Use descriptive first_local_tangential / second_local_tangential semantics (choose grammar-compatible spelling without weakening meaning). Preserve reflector as the intrinsic object; omit spectrometer/channel instance context. Remove x1/x2 labels wherever they are defined in ISN. The sibling checkouts may be read-only: if so, land and test the ISN slice and write exact residual patches/acceptance criteria into the plan without resolving the cross-repository followup.
Done-when
1. ISN vocabulary, generated types, parser/composer, definitions, and tests contain no registered x1/x2 geometry carriers and support descriptive local-tangent forms
2. affected catalog/prompt inventory is audited; writable changes are tested and committed, and read-only residual work is recorded precisely
3. followup outcome is written into the plan; resolve only if catalog and pipeline safeguards also land
ISN slice landed 1eaf14e (reviewed sound); pipeline safeguards in 0eb23bf3/0c5bfa94/9b500158 (reviewed; prompt+review criteria mandate descriptive forms). Catalog migration executed: 19/22 x1/x2 names renamed to first/second_local_tangential_coordinate_of_* accepted 0.96+ with lineage; 3 successors (aperture x2, bragg x2-side) EXHAUSTED at 0.80-0.84 quorum variance — later recovered via sn rescore (the supported fresh-quorum re-review; accepted 0.975/0.9625/0.9625 on 2026-07-17), never a direct accept. height_of_optical_element doc rewritten to descriptive frame wording (accepted 0.91).
Release ISN coordinate semantics and bump imas-codex
After the grammar and catalog/pipeline fixes land, publish the next ISN release candidate through the release CLI and make imas-codex consume that exact package. This is a gated handoff, not a manual tag or editable source-version change.
Project: imas-standard-names
Plan: catalog-expert-review-remediation (http://localhost:8765/imas-standard-names/catalog-expert-review-remediation.html)
Section: §4.6
Tier: opus
Context
Grammar changes are consumed by imas-codex through released ISN packages, not by source-tree assumptions. After the coordinate and local-axis slices land and cross-repository tests pass, cut the next ISN release candidate and update imas-codex to consume it.
State to read (CODE / FILES / DATA — the builder already injects the plan URL)
ISN release CLI status and tests; pyproject.toml and uv.lock in imas-codex; current ISN dependency constraints and dependency-bump conventions; CI state for ISN HEAD.
Scope locks / constraints (non-decision)
Use uv run standard-names release and its automatic preflight; do not manually create tags or source versions. Release only from clean main synced with upstream/main after CI passes. Use the next valid RC transition reported by the CLI. In imas-codex, pin/bump to the exact published RC and update the lockfile through uv. Do not claim completion until the package is available and imas-codex tests run against it.
Done-when
1. annotated ISN RC tag is created/pushed by the release CLI and publish workflow succeeds
2. imas-codex dependency and lockfile consume that exact RC, with grammar/pipeline tests green and changes committed/pushed
3. followup outcome is written into the plan + this followup marked resolved
ISN v0.8.0rc54 cut and pushed via the release CLI (preflight green: clean tree, synced, CI passed on fc05191). imas-codex re-pinned to the exact tag (f4db5828) with extras-preserving uv sync; grammar/prompt/anti-pattern suites green against the released package. Regen==targeted-edit consistency restored: first/second_local_tangential and flux_surface_normal compose in the pipeline's closed vocab and the review quorum accepts them (19 renames at 0.96+).
Finish immutable pinned DD provenance
Complete the imas-codex source-snapshot contract and fail-closed public projection. Legacy migration inventory is a one-off reviewed graph-query artifact, not a product CLI or permanent single-use API. No live backfill or cleanup runs until its manifest is reviewed.
Project: imas-standard-names
Plan: catalog-expert-review-remediation (http://localhost:8765/imas-standard-names/catalog-expert-review-remediation.html)
Section: §4.2
Tier: opus
Context
DD sources must retain immutable semantic provenance while operational edit history stays private. The producer follow-up is active and the SPA consumer is already implemented fail-closed.
State to read (CODE / FILES / DATA — the builder already injects the plan URL)
imas-codex standard-name schema, source creation, export, provenance lifecycle, CLI and focused tests; ISN dataset DD-source contract.
Scope locks / constraints (non-decision)
Store exact dd_version/path and pinned raw leaf/parent documentation plus semantic metadata. Keep enhanced context separately labelled. Never infer a legacy version, link to latest, expose operational fields, or mutate the live graph without reviewed manifests.
Done-when
1. producer, public projection, URL derivation, tests, and fail-closed source invariants are committed and pushed
2. focused and standard-name suites pass
3. outcome is recorded and this followup resolved
Implemented and pushed in imas-codex 4df4c599. New DD-backed sources require exact dd_version and immutable create-only leaf/parent documentation plus semantic metadata; public projection uses only pinned snapshots, separates authoritative DD documentation from enhanced context, generates versioned official URLs, and omits operational history. The initially added single-use report CLI and helper were removed in fc5f5f71; migration inventory will be a direct read-only graph-query artifact. Focused provenance/export tests pass. No live graph mutation or migration inventory was executed; legacy unpinned sources block export until explicitly migrated.
Resolve ambiguous names and duplicate families
Complete the interactive canonicalization decisions for heating power, wave absorption, stored energy, enclosed volume, deposited power, plasma energy, and plasma current before dispatching graph edits.
Project: imas-standard-names
Plan: catalog-expert-review-remediation (http://localhost:8765/imas-standard-names/catalog-expert-review-remediation.html)
Section: §4.3
Tier: opus
Context
Live graph evidence confirms all reviewed names still exist, while some bare entries are source-less family parents and others share DD sources. Each family needs an explicit semantic decision before cleanup.
State to read (CODE / FILES / DATA — the builder already injects the plan URL)
imas-cx exact entries, relationships, source paths and grammar families for review rows 7–13; current ISN grammar and imas-codex edit/refine tooling.
Scope locks / constraints (non-decision)
Similar wording alone is not duplication. Compare recipient, process, aggregation, integration domain, component frame, units and DD source scope. No graph mutation until the user approves a canonical manifest.
Done-when
1. each family has an approved canonical name/scope and predecessor disposition
2. exact graph-edit and prompt-regression manifest is recorded
3. implementation followup is queued with measurable tests
Manifest recorded: docs/archive/catalog-expert-review-manifests/manifest-naming-duplicates.md. LANDED on live graph (verified zero orphans): row 13b fold toroidal_plasma_current→plasma_current (8 ip sources+edges retargeted); row 12 fold total_electron_deposited_power→electron_deposited_power (2 electron-source paths retargeted). Row 8 (wave power): thermal_electron_absorbed_wave_power accepted; 7 further renames STAGED (4 bare + per_toroidal_mode variants, single wave DD source each) awaiting batch review. Row 9 keep-both (not a dup); row 11 keep volume_of_first_wall + convention note (queued); row 13a plasma-energy family well-formed (no action); row 7 doc-only 'coupled' (queued). Row 10 BLOCKED: thermal_electron_energy is a superseded tombstone that thermal_electron_stored_energy REFINED_FROM — reversing needs provenance-compaction of the tombstone first (queued f-row10-compaction). Implementation followups queued.
Audit coordinate completeness and domain taxonomy
Build the DD-backed object-by-coordinate coverage matrix and settle the primary domain-assignment rule before adding names or reclassifying entries.
Project: imas-standard-names
Plan: catalog-expert-review-remediation (http://localhost:8765/imas-standard-names/catalog-expert-review-remediation.html)
Section: §4.5
Tier: opus
Context
Camera and plasma-control coordinate families remain incomplete, and the reviewed domain buckets remain heterogeneous. Source-backed coverage and one primary taxonomy principle are required.
State to read (CODE / FILES / DATA — the builder already injects the plan URL)
imas-cx DD subtrees and standard-name inventories for camera, plasma boundary gap references, lower-hybrid antenna, computational workflow, mechanical diagnostics and turbulence.
Scope locks / constraints (non-decision)
DD paths are inspiration and evidence, not a requirement to mirror every leaf. Propose only meaningful programmatic names. Keep subsystem and diagnostic method as secondary metadata when measured physics is chosen as primary.
Done-when
1. coordinate applicability matrix and domain move manifest are reviewed
2. domain-principle decision is locked
3. implementation followups with tests are queued
Manifest recorded: docs/archive/catalog-expert-review-manifests/manifest-coordinate-domain.md. domain-principle already locked (semantic-subject). Coverage matrix built: measurement_position is the complete R/Z/phi exemplar; systematic gaps in camera (no position triplet) and gap-reference/aperture toroidal-phi; 4 source-backed missing-name proposals + 2 StandardTerm frame defs identified (routed to the normal sn run/proposal pipeline, not authored in ISN). Domain moves: ~30 confident + ~11 needs-human; mechanism locked (domain-move-mechanism); gyrocenter target locked (transport). Execution queued f-domain-execution.
Resolve safety-factor sign and minimum-q semantics
Compare the live DD, COCOS metadata, and q-family definitions, then lock the sign convention and signed-q versus absolute-q minimum rule.
Project: imas-standard-names
Plan: catalog-expert-review-remediation (http://localhost:8765/imas-standard-names/catalog-expert-review-remediation.html)
Section: §4.3
Tier: opus
Context
The current safety-factor sign prose conflicts with the reviewed DD wording, and the minimum locus currently minimizes signed q rather than absolute q.
State to read (CODE / FILES / DATA — the builder already injects the plan URL)
imas-cx safety-factor DD paths, version context, COCOS q_like metadata and all safety-factor standard names.
Scope locks / constraints (non-decision)
Do not rationalize an upstream ambiguity. Distinguish a catalog wording defect from a DD defect and file an upstream issue if authoritative semantics remain inconsistent.
Done-when
1. evidence comparison and expert choice are recorded
2. q-minimum decision is locked
3. bounded catalog/prompt regression followup is queued
Manifest recorded: docs/archive/catalog-expert-review-manifests/manifest-q-conventions.md. Verdict: row-15 is a catalog WORDING defect, not a DD defect (no upstream issue needed). Defect confirmed in exactly 2 of 10 q-family names (safety_factor, safety_factor_at_pedestal_top); names 3-5 use a correct pitch/flux-increment form and were left. Corrected sign wording is relative alignment of B_phi and I_p, per the locked no-cocos-in-descriptions decision (no COCOS number in prose). safety_factor doc applied (drafted); pedestal_top + the 4 arg-min-|q| row-16 edits STAGED. All 6 await batch review to accept. Side-findings recorded: safety_factor_at_plasma_boundary has an empty definition; _at_..._0_95 carries prohibited 'typical values 3-5' verbose prose.
Finish editorial fixes and export the catalog RC
Simplify the flux-loop area definition, export accepted graph edits through the supported CLI, validate source links and term cards, and cut the catalog RC after semantic migrations land.
Project: imas-standard-names
Plan: catalog-expert-review-remediation (http://localhost:8765/imas-standard-names/catalog-expert-review-remediation.html)
Section: §4.6
Tier: sonnet
Context
Normative prompt policy and two reviewed graph definitions are fixed, but ISNC still needs supported export. Flux-loop area remains the final bounded editorial item.
State to read (CODE / FILES / DATA — the builder already injects the plan URL)
accepted graph docs edits, imas-codex release/export CLI, clean ISNC checkout, SPA build and catalog validation.
Scope locks / constraints (non-decision)
Never edit catalog YAML manually. Export only after provenance validation and semantic migrations are complete. Use the release CLIs and exact dependency pins.
Done-when
1. flux-loop wording passes review and graph docs acceptance
2. ISNC export, validation, SPA tests/build and source-link checks pass
3. RC is cut through supported release tooling and outcome recorded
Subsumed by §7.6 close-out: editorial fixes complete and catalog RC v0.2.0rc63 exported + cut. See f-close-out-residuals outcome and the §7.6 landed archive.
Complete review of staged edits (needs clear-gate authorization)
13 edits are staged on the live graph awaiting one batch review to land accepted: 7 Row-8 wave-power rename successors (drafted) + 6 q doc edits (safety_factor drafted; pedestal_top + 4 min-q staged). The batch review requires --skip-clear-gate because the committed §7.2 prompt change (imas-codex 9b500158) bumped the pipeline composite hash; the auto-mode classifier blocked that flag pending explicit user authorization.
Project: imas-standard-names
Plan: catalog-expert-review-remediation
Section: §4.3 (review completion)
Tier: opus
Context
13 staged edits on the live graph need one review pass to become accepted. Blocked only by the --skip-clear-gate classifier guard; the gate fired because §7.2's committed prompt fix changed the pipeline hash (intended change), and we are reviewing scoped staged edits, not regenerating.
Authorization required
User authorizes --skip-clear-gate: add a Bash permission rule for `uv run imas-codex sn run --only review --edits --skip-clear-gate`, or run in-session via `! cd /home/ITER/mcintos/Code/imas-codex && uv run imas-codex sn run --only review --edits --skip-clear-gate`.
Done-when
1. All 13 staged successors reach accepted (or below-threshold rejections triaged + re-edited)
2. Verify 7 wave-power renames accepted + olds superseded with REFINED_FROM; 6 q docs accepted with corrected no-COCOS wording (defect absent, |q| present)
3. followup resolved with per-name outcomes
All staged edits landed accepted. Wave-power renames were already applied pre-session (audit). The 6 q docs + height_of_optical_element landed via scoped rotations + the consolidated sn run --docs-only --edits drain after the score-gate fix (imas-codex bc7adf49): all accepted 0.86-0.96 with corrected B_phi/I_p relative-alignment wording, arg-min-|q| forms, no COCOS numbers, no typical-values prose. --skip-clear-gate was never needed (gate stopped firing once the post-prompt-change SNRun recorded the new hash).
Apply domain reclassifications + fix root cause + regression test
Apply the ~30 confident physics_domain moves via reviewed Cypher SET (physics_domain + source_domains), including gyrocenter orbit-frequency names → transport. Then fix the root-cause domain-assignment logic (dd_domain_classifier.py / definitions/physics/ids_domains.json / domain_gold_set.json) and add a regression unit test. ~11 needs-human moves await per-item confirmation.
Project: imas-standard-names
Plan: catalog-expert-review-remediation
Section: §4.5 (domain execution)
Tier: opus
Context
manifest-coordinate-domain.md lists ~30 confident semantic-subject moves + ~11 needs-human. Locked: domain-move-mechanism, gyrocenter-domain (transport), domain-principle (semantic-subject).
Steps
1. Root cause first: read dd_domain_classifier.py + ids_domains.json + domain_gold_set.json; determine why distributions gyrocenter→computational_workflow, barometry→mechanical, lh_antennas→plant_systems; fix at source; add regression unit test; commit imas-codex.
2. Apply ~30 confident moves via reviewed Cypher SET (dry-run manifest id: current→target first). Needs user authorization for the live-graph write.
3. Bring ~11 needs-human moves to the lead.
4. Verify domain inventories; coherent cross-domain families.
Done-when: root-cause fix + test committed; confident moves applied + verified; needs-human resolved; followup resolved.
COMPLETE. 29 confident moves landed 2026-07-15; root-cause classifier fix + overrides landed (0b96eb9b, tightened 2b67a2b5); remaining ~15 needs-human moves all resolved interactively with the lead 2026-07-17 and applied via the new provenance-tracked sn reclassify command: gyrocenter family(5)→transport, Langmuir current-density cluster(7)→edge_plasma_physics, probe I-V(3)→particle_measurement_diagnostics, heat_flux+parallel(2)→edge_plasma_physics, gap-reference poloidal_angle→equilibrium, toroidal_angle_of_line_of_sight→general, neutral_pressure retained in mechanical (deliberate). mechanical_measurement_diagnostics reduced to its coherent 12-name instrumentation core.
Backfill DD provenance on legacy sources (export gate)
EXPORT HARD-BLOCK: all 8741 DD StandardNameSource nodes are unpinned (dd_snapshot_pinned=0) with no recorded dd_version; 3963 feed accepted names. Lead confirmed sources are latest-gated and provenance must be recorded. Backfill exact current DDv4 version + pinned raw leaf/parent doc snapshot onto every DD source via a reviewed one-off migration (dry-run manifest first, driver removed after) until the invariant returns zero unpinned/incomplete public DD sources.
Project: imas-standard-names
Plan: catalog-expert-review-remediation
Section: §7.3 (legacy DD provenance)
Tier: opus
Context
manifest-legacy-dd-provenance.md. imas-codex pins imas_data_dictionaries==4.1.1; seeding strictly current-DD (latest-gated); pinning contract is create-only so no legacy source was migrated. Locked: dd-source-presentation + provenance-compaction (pin exact version/path + raw snapshot, never latest, never infer).
Steps
1. Confirm authoritative current DDv4 version for the extraction window (installed 4.1.1; verify no intervening bump across composed_at ~2026-06-18; partition if so).
2. Build reviewed dry-run migration manifest capturing per-source dd_version + immutable leaf/parent snapshot, setting dd_snapshot_pinned=true.
3. Apply bounded one-off migration (needs user authorization for the live-graph write); remove driver after.
4. Require invariant (unpinned/incomplete public DD sources) = zero before export.
Done-when: invariant zero; manifest + verification retained; followup resolved.
Lead-authorized Cypher backfill applied 2026-07-16: 8738 sources migrated in one idempotent pass (dd_version=4.1.0, source_id, leaf/parent doc snapshot, data_type/unit/coordinates/lifecycle, dd_snapshot_pinned=true). Invariant now ZERO: 8741/8741 pinned, 0 incomplete. fetch_public_semantic_sources spot-checked clean on plasma_current/safety_factor/electron_deposited_power (exact pinned paths + versions). Export hard-block CLEARED.
Row 10: compact tombstone then rename stored-energy
Row 10 (drop 'stored', approved) is blocked: thermal_electron_energy exists as a superseded tombstone that the accepted thermal_electron_stored_energy REFINED_FROM (pipeline previously refined energy→stored_energy). Per rename-policy no id is reused while an uncompacted predecessor occupies it. Compact the unapproved tombstone (reviewed sn provenance-cleanup dry-run) then rename thermal_electron_stored_energy→thermal_electron_energy.
Project: imas-standard-names
Plan: catalog-expert-review-remediation
Section: §4.3 (row 10)
Tier: opus
Context
thermal_electron_stored_energy [accepted] --REFINED_FROM--> thermal_electron_energy [superseded tombstone]. Lead approved dropping 'stored' to match the energy family. rename-policy locked.
Steps
1. Review sn provenance-cleanup dry-run; confirm thermal_electron_energy unapproved + safe to compact.
2. Compact it (frees id). Needs user authorization for live-graph write.
3. Rename thermal_electron_stored_energy→thermal_electron_energy (--scope self), base=energy; verify round-trip + reparent.
4. Review to accept.
Done-when: thermal_electron_energy accepted canonical; predecessor compacted with lineage; followup resolved.
COMPLETE. Tombstone compacted via lead-authorized targeted Cypher mirroring compact_unapproved_superseded (change event sn-change:fd5dd873, reviews removed, id freed); thermal_electron_stored_energy renamed via sn edit and ACCEPTED at 0.925 — thermal_electron_energy is now the canonical family-consistent name.
Bounded editorial doc edits: row 7 'absorbed'→'coupled' on total_power_due_to_ion_cyclotron_heating + parent (DD says coupled); row 11 add volume_of_=enclosed convention note; row 18 shorten flux-loop effective-area polarity prose. Plus per no-cocos-in-descriptions: sweep all accepted-name docs for COCOS mentions, strip them (express convention explicitly), add a regression guard rejecting COCOS numbers in descriptions.
Project: imas-standard-names
Plan: catalog-expert-review-remediation
Section: §4.2 (editorial + COCOS sweep)
Tier: sonnet
Context
Locked: normative-documentation (strict), no-cocos-in-descriptions. Row 7 DD='coupled'. Row 11 keep name + convention. Row 18 flux-loop over-verbose.
Steps
1. Doc-only sn edit --docs --override-edits --scope self for row 7 (x2), row 11 note, row 18 shorten; land via review.
2. Query all accepted names for 'cocos' in documentation; rewrite convention explicitly (no number); land via doc edits.
3. Add description-validation regression test rejecting any COCOS-number token.
Done-when: editorial edits accepted; zero COCOS mentions in accepted descriptions; guard test green; followup resolved.
Rows 7/11/18 accepted on the graph via lead-authorized sn edit --docs --override-edits + review: total/power_due_to_ion_cyclotron_heating rewritten to DD 'coupled to the plasma' boundary semantics (0.90/0.89); volume_of_first_wall carries the volume_of_=enclosed convention (0.85); area_of_flux_loop polarity prose shortened, typical-values removed (0.86). COCOS sweep was a no-op (0 violations); guard hardened in ISN dabbbae (documentation-only entries now checked, COCOS11 forms caught, severity=error).
Lead authorizations needed to finish the recovery (6 items)
Everything classifier-gated in one batch: (1) cut ISN v0.8.0rc54 (preflight green); (2) run the 5 editorial sn edit --docs with --override-edits (rows 7/11/18 + poloidal typical-values residue; bodies in scratchpad/qdocs/*.clean); (3) accept-or-decide the 3 exhausted local-tangential successors (quorum variance at 0.80-0.84); (4) sn provenance-cleanup dry-run + row-10 compaction; (5) §7.3 DD backfill mechanism + sign-off (export hard-gate; sample-validated); (6) confirm gyrocenter target (transport recommended). Optional: approve the 3-line edits_only score-gate exemption so future sn run --edits can claim staged docs edits.
Project: imas-standard-names
Plan: catalog-expert-review-remediation
Section: §7.5-7.6 (authorization batch)
Tier: opus
Context
Recovery session 2026-07-16 landed code fixes, the pin bump, 19/22 x1/x2 renames and the q-docs rotations. Six actions remain that the auto-mode classifier reserves for the lead.
Steps (each unblocks the next stage of §7.5-7.6)
1. ISN RC: cd ~/Code/imas-standard-names && uv run standard-names release -m 'Coordinate frame semantics, local tangential carriers, standard terms, validation hardening' (then optionally re-pin imas-codex to the rc54 tag)
2. Editorial docs: rerun the five sn edit --docs commands with --override-edits (bodies in scratchpad/qdocs/: total_power_due_to_ion_cyclotron_heating, power_due_to_ion_cyclotron_heating, volume_of_first_wall, area_of_flux_loop, poloidal_magnetic_flux_at_minimum_safety_factor)
3. Triage 3 exhausted tangential successors (aperture x2, bragg x2): direct accept or threshold/quorum decision
4. uv run imas-codex sn provenance-cleanup (read-only manifest), review, then --apply for row-10 tombstone; afterwards rename thermal_electron_stored_energy -> thermal_electron_energy via sn edit
5. §7.3 backfill: confirm mechanism (validated one-off vs supported migration command) and sign off the 8739-source apply; export stays hard-blocked until invariant zero
6. Lock gyrocenter-domain (transport recommended; override JSON marked provisional)
Done-when: all six executed or explicitly deferred; export + ISNC RC can proceed; followup resolved with outcomes.
Lead granted all six 2026-07-16: RC cut (v0.8.0rc54 pushed), --override-edits editorial batch (rows 7/11/18 + poloidal residue accepted), Cypher DD backfill (8741/8741 pinned), gyrocenter=transport (locked; 5 names reclassified via the new sn reclassify command b05bab63), score-gate exemption (bc7adf49). REMAINING (as of 2026-07-16): 3 exhausted tangential successors — subsequently recovered via sn rescore fresh-quorum re-review (2026-07-17), not a direct accept; row-10 provenance-cleanup not yet run.
Close residuals then export + catalog RC
残り: (1) DONE — the 3 exhausted local-tangential successors (aperture first/second, bragg second) were recovered via sn rescore fresh-quorum re-review (accepted 0.975/0.9625/0.9625, 2026-07-17), never a direct accept (a banned anti-pattern; an exhausted-but-sound name is recovered only by resubmitting the same name to a fresh quorum); (2) row-10: sn provenance-cleanup manifest+apply, then rename thermal_electron_stored_energy→thermal_electron_energy; (3) ~11 needs-human domain moves via sn reclassify; (4) graph hygiene: fast_ion_charge_state_absorbed_wave_power hint mismatch, per_toroidal_mode_wave_absorbed_power stranded reviewed, ~35 stale open edits on superseded predecessors, stuck SNRun cf44b10a, 22 remaining docs-pending hint edits; (5) ISNC export via sn release --export-only, SPA build/tests, catalog RC.
Project: imas-standard-names
Plan: catalog-expert-review-remediation
Section: §7.6 (close-out + export)
Tier: opus
Context
Recovery complete except bounded residuals. Export hard-gates are clear (provenance invariant zero; ISN rc54 pinned).
Steps
1. DONE — the 3 exhausted tangential successors were recovered via `sn rescore` (fresh-quorum re-review; accepted 0.975/0.9625/0.9625). NEVER direct-accept: an exhausted-but-sound name is recovered only by resubmitting the same name to a fresh quorum draw (sn rescore).
2. sn provenance-cleanup (manifest, review, --apply) → sn edit thermal_electron_stored_energy --rename thermal_electron_energy --scope self → review to accept.
3. Work the ~11 needs-human domain moves (manifest-coordinate-domain.md B.2/B.5) via sn reclassify with lead confirmation per item.
4. Hygiene pass: close stale open edits on superseded predecessors; reconcile the two wave-family anomalies; clear stuck SNRun.
5. Export: uv run imas-codex sn release --export-only into clean ISNC; validate; SPA tests/build; verify term cards + pinned DD links + deprecation stubs absent (nothing approved); cut catalog RC via supported tooling.
Done-when: 22/22 tangential successors accepted; row-10 renamed; export validated; catalog RC tagged; followup resolved.
§7.6 landed — catalog RC v0.2.0rc63 cut (ISNC 007a39f1). The '6 US-spelling renames' residue was a double misdiagnosis: american_spelling_check is advisory (never quarantines) and 'gauge' is valid US spelling / the DD's own word; the 6 names are DD-faithful (sensor/direction{,_second}/{x,y,z}) and unchanged. Real defect was unfilled placeholder DOCS (critical placeholder_check) on 5 names — fixed via clean authored sn edit --docs (≈0.90), zero renames. Four root bugs fixed en route: NC-17 gauge allowlist (27ac45ee), sn-run DD-source re-seed (3bdf37d5), export deprecation-stub Cypher (a0b7c1ca), _is_quarantined ISN-ERROR severity (426132e8; caught bare 'coordinate'). Export 1858/1909, all gates pass, staging validates. Full record: docs/archive/catalog-expert-review-remediation-s76-landed.html.
Review ordinal-led carrier readability under the bare-component-prefix rule
Lead flagged that names like x_first_measurement_direction_unit_vector_of_strain_gauge read awkwardly ('x first' means little at a glance). This is NOT a bug: it is the canonical grammar output. The grammar deliberately bans the explicit x_component_of_ long form (components.yml) and uses a bare x_/y_/z_ prefix meaning 'x-component of'; the name is structurally identical to 20+ accepted siblings (x_direction_unit_vector_of_camera, x_major_axis_unit_vector_of_shatter_cone). The only awkwardness is that the carrier token itself leads with an ordinal (first_/second_measurement_direction_unit_vector, tied to DD operational_instrumentation sensor/direction{,_second}). Open question for a grammar/naming review: should ordinal-led geometry carriers be re-phrased, or the component-prefix rule adjusted, so component + ordinal-carrier names read naturally? No catalog action required for this RC; the 6 strain_gauge names are DD-faithful and ship as-is.
Project: imas-standard-names
Plan: catalog-expert-review-remediation
Section: naming-convention review (ordinal-led carriers)
Tier: sonnet
Context
The bare component-prefix grammar rule (x_/y_/z_ = 'x-component of') produces awkward reading when the geometry carrier itself leads with an ordinal, e.g. x_first_measurement_direction_unit_vector_of_strain_gauge. This is canonical output, not a defect: the explicit x_component_of_<base> form is deliberately banned (imas_standard_names/grammar/vocabularies/components.yml), and 20+ accepted names share the x_<vector>_of_<object> shape. The affected carriers are first_/second_measurement_direction_unit_vector (geometry_carriers.yml), tied to DD operational_instrumentation sensor/direction and sensor/direction_second.
Steps
1. Enumerate all accepted names whose grammar is <component>_<ordinal-led carrier>_of_<object>; assess readability catalog-wide (not just strain gauge).
2. Decide with the lead: (a) accept as canonical (document the convention), (b) re-phrase ordinal-led carriers, or (c) adjust the component-prefix rule for ordinal carriers.
3. If a change is chosen, scope the grammar/vocab edit + affected-name migration and open a dedicated plan.
Done-when: decision recorded; if no change, convention documented; if change, migration plan opened.
§ Research
Reflector local-axis semantics
Ion-state versus charge-state current inventory
Superseded-name DD-source ownership audit
Review completion + live-graph writes require explicit user Bash-permission authorization