Skip to content

Stabilize the Standard Names grammar - #19

Open
Simon-McIntosh wants to merge 452 commits into
iterorganization:mainfrom
Simon-McIntosh:main
Open

Stabilize the Standard Names grammar#19
Simon-McIntosh wants to merge 452 commits into
iterorganization:mainfrom
Simon-McIntosh:main

Conversation

@Simon-McIntosh

Copy link
Copy Markdown
Collaborator

This change delivers the production grammar for IMAS Standard Names with canonical parsing and composition across the governed vocabulary. It makes operators and loci explicit while preserving round-trip identity for accepted names. The public package and review site now expose the same grammar contract for downstream users. The work is ready for a stable release because the grammar and vocabulary are exercised by the repository’s complete validation suite and have supported the live Standard Names pipeline through successive release candidates.

The catalog's locus-less unit-vector generics are gone; the rule that a
direction/orientation unit vector must name its owning device is now
blocking, and covers the image-up and ellipse-axis carriers.
…ify C funnel-vs-dual-path; add alias-cleanup followup
The parser only ever loaded axis keys (frozenset(axes_reg.axes)), never
the alias lists, so the poloidal/radial/toroidal alias entries silently
implied a second, unsupported spelling. Axis naming is one canonical
form, one way: physical directions keep canonical words, arbitrary
local axes use x/y/z. Empty the three alias lists so no alternate
vocabulary is implied, and update the loader test to assert this.
… LaTeX-description fix + 9 descriptions cleaned
…m parked sources (extractor filtering); one-family-at-a-time
…ci + cross-attaches; needs compose-hardening (corruption cleaned)
…enerate-level composer fix (18 names); residual→f-cnf-007
…rgument, record convention/consistency reasoning
…score; add-new base; neutron reaction-channel qualifier; ban inline units; pedestal_top+mid; fsa velocity+density)
…miter

Add optional description field to LocusEntry and populate DD-anchored glosses
for pedestal/pedestal_top/pedestal_maximum, limiter/active_limiter_point,
outboard_midplane[_separatrix], separatrix, dr_dz_zero_point so the description
pipeline anchors locus meaning instead of re-inventing it. Add 'along' to the
limiter locus so surface-distributed quantities compose as along_limiter.
…se, loci descriptions, along_limiter), C12 needs no grammar change; pipeline mechanics mapped
…-link)

Add optional LocusEntry.defining_quantity so the locus->position-defining
standard name (pedestal -> normalized_poloidal_flux_coordinate_of_pedestal) is
vocab DATA in ISN, injected into the description pipeline, rather than hardcoded
in a prompt. Populated for the pedestal loci.
Reactant pairs (deuterium_tritium, deuterium_deuterium, tritium_tritium) become
a dual-role token: subject as the effective fuel species (deuterium_tritium_density)
and a reaction-channel qualifier when a product subject follows, so the neutron
flux of a fusion reaction composes as deuterium_tritium_neutron_flux (qualifier +
subject neutron + base flux). The model classifier routes the pair to the qualifier
segment only when another subject follows. Guard tests updated to document the
intentional subjects-qualifiers dual-role overlap. Full grammar suite green.
…s-gate built; per-species fsa + family regen + RC remain
…aratrix->plasma_boundary locus fix); density regen at full-quorum quality
Remove agent provisioning commands and point development and graph tooling at the existing project environment.
Add polarizer and pellet_fragment as entity loci alongside their existing
optical-element and pellet neighbours, wave_diagnostic_channel so a wave-based
diagnostic receiver channel carries its own tuned-frequency identity instead of
borrowing the antenna, and active_spatial_resolution_zone as the geometry a
channel collects its signal over.

Refused field_map_grid: a field-map grid node is a discretization artifact, and
the registry curation policy admits physics-meaningful loci only. Sources on
that path keep their existing target.
The environment guidance told agents to run with `uv run --no-sync` in the
main checkout and to report a stale, absent, or extra-missing environment as a
blocker. Both are wrong under the user-global "Development Environment" policy:
plain `uv run` is the main-checkout default, and syncing the repo's single root
`.venv` — extras included — is normal work rather than something to hand back.

Point at `uv sync` (with the concrete extras this repo defines, including
`graph-local` for the NetworkX traversal helpers) as the fix, name `uv add` as
the way to make a dependency durable, and keep the `UV_PROJECT_ENVIRONMENT`
recipe while labelling it explicitly as the worktree case, which is the one
place `--no-sync` belongs because that environment is shared with peers.
Name the safety-factor magnitude explicitly as the measure selecting the flux-surface locus.
Convert the project index into independently versioned typed resources, with the completion marker published last so an interrupted run stays recoverable. The frozen pre-migration index is retained beside the marker as the byte-identical source of record.

No document was moved and no plan was touched; the conversion is confined to state, sprint and marker paths. Verified field by field against that frozen source before committing: every compared value matched, with no mismatch, no drift, and no error-level dependency findings before or after.
Compare catalog snapshots at two Git refs and build the SPA dataset from head-side additions and semantic edits. Preserve campaign batch provenance and publish exact scope counts for CI.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant