Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
173 commits
Select commit Hold shift + click to select a range
52d7687
docs(plans): detach the grammar release from a closed sprint
Simon-McIntosh Sep 15, 2026
e93fe62
docs(plans): record that this release is published and its consumer u…
Simon-McIntosh Sep 15, 2026
4cae6f8
docs(plans): plan a concept and notation registry beside the grammar
Simon-McIntosh Oct 12, 2026
8288524
chore(roster): retire session-2a6f0db8b3e75a382796
Simon-McIntosh Oct 12, 2026
beaa01b
promote(r-20261012T142316337940-plan-review-of-concept-and-notation-r…
Simon-McIntosh Oct 12, 2026
9639593
release(r-20261012T142316337940-plan-review-of-concept-and-notation-r…
Simon-McIntosh Oct 12, 2026
e19a65c
docs(plans): build the conventions registry on the owners it would du…
Simon-McIntosh Oct 12, 2026
56f462d
promote(r-20261012T144041701750-plan-review-of-concept-and-notation-r…
Simon-McIntosh Oct 12, 2026
036d317
release(r-20261012T144041701750-plan-review-of-concept-and-notation-r…
Simon-McIntosh Oct 12, 2026
264aa2e
docs(plans): scope the registry's token check and give the entries a …
Simon-McIntosh Oct 12, 2026
2b29ccf
docs(plans): leave the COCOS sign rule with the entry that knows its …
Simon-McIntosh Oct 12, 2026
11dc8d3
promote(r-20261012T145440871713-plan-review-of-concept-and-notation-r…
Simon-McIntosh Oct 12, 2026
e4135b4
release(r-20261012T145440871713-plan-review-of-concept-and-notation-r…
Simon-McIntosh Oct 12, 2026
377f28d
promote(r-20261012T144206975206-review-code-9d7ec7773abb): not-run
Simon-McIntosh Oct 12, 2026
4efdd44
release(r-20261012T144206975206-review-code-9d7ec7773abb): record wor…
Simon-McIntosh Oct 12, 2026
1e12625
feat(grammar): add the conventions registry, its loader and accessor
Simon-McIntosh Oct 12, 2026
30dace8
promote(r-20261012T145518269054-cnr-registry-loader): passed
Simon-McIntosh Oct 12, 2026
6767501
release(r-20261012T145518269054-cnr-registry-loader): record workspac…
Simon-McIntosh Oct 12, 2026
62a22f0
merge: the conventions registry, its loaders and accessor
Simon-McIntosh Oct 12, 2026
6a9a943
docs(plans): record the conventions registry landing
Simon-McIntosh Oct 12, 2026
0a977ee
refactor(grammar): narrow convention templates to their openings
Simon-McIntosh Oct 12, 2026
7ccedd2
docs(plans): close the registry section
Simon-McIntosh Oct 12, 2026
2032acc
promote(r-20261012T153955809358-cnr-template-scope): passed
Simon-McIntosh Oct 12, 2026
826a890
release(r-20261012T153955809358-cnr-template-scope): record workspace…
Simon-McIntosh Oct 12, 2026
14655e9
merge: narrow the conventions registry to openings and its YAML owner
Simon-McIntosh Oct 12, 2026
8e7c7de
promote(r-20261012T153207355503-review-of-cnr-registry-loader): not-run
Simon-McIntosh Oct 12, 2026
2a24dc7
release(r-20261012T153207355503-review-of-cnr-registry-loader): recor…
Simon-McIntosh Oct 12, 2026
470b1dc
promote(r-20261012T155007681710-review-of-cnr-template-scope): not-run
Simon-McIntosh Oct 12, 2026
22793b2
release(r-20261012T155007681710-review-of-cnr-template-scope): record…
Simon-McIntosh Oct 12, 2026
c2db47e
feat(grammar): author the convention entries the WEST roster resolves to
Simon-McIntosh Oct 13, 2026
18b78cd
feat(grammar): settle the poloidal angle, midplanes, inductance and s…
Simon-McIntosh Oct 13, 2026
c5bbbfe
test: assert registry and accessor invariants
Simon-McIntosh Oct 13, 2026
2359705
docs: add registry test landing anchor
Simon-McIntosh Oct 13, 2026
64b5100
fix(grammar): select conventions by operator key
Simon-McIntosh Oct 13, 2026
5f4b3c1
promote(r-20261013T081300178088-cnr-registry-test-invariants): passed
Simon-McIntosh Oct 13, 2026
349f374
release(r-20261013T081300178088-cnr-registry-test-invariants): record…
Simon-McIntosh Oct 13, 2026
448d2b9
merge: conventions-registry tests that check the registry's own invar…
Simon-McIntosh Oct 13, 2026
aa1ae20
docs(plans): record the registry test rewrite
Simon-McIntosh Oct 13, 2026
4f81b41
promote(r-20261013T102507945522-review-of-cnr-registry-test-invariant…
Simon-McIntosh Oct 13, 2026
c08ffbb
release(r-20261013T102507945522-review-of-cnr-registry-test-invariant…
Simon-McIntosh Oct 13, 2026
7922553
promote(r-20261013T102523432565-review-of-cnr-accessor-operator-keys-…
Simon-McIntosh Oct 13, 2026
609b862
release(r-20261013T102523432565-review-of-cnr-accessor-operator-keys-…
Simon-McIntosh Oct 13, 2026
e3fed1d
promote(r-20261013T081403384041-cnr-accessor-operator-keys): failed
Simon-McIntosh Oct 13, 2026
6255047
release(r-20261013T081403384041-cnr-accessor-operator-keys): record w…
Simon-McIntosh Oct 13, 2026
757e2f5
merge: convention selection keys operators by their registry token
Simon-McIntosh Oct 13, 2026
3aa3b60
docs(plans): record convention selection by operator key
Simon-McIntosh Oct 13, 2026
9813991
feat(grammar): open binary-operator names with their operator phrase
Simon-McIntosh Oct 13, 2026
e9a4786
fix(grammar): route the fused-operator split through its model owner
Simon-McIntosh Oct 13, 2026
8beafe6
promote(r-20261013T122054016568-review-of-cnr-operator-key-reuse-e9a4…
Simon-McIntosh Oct 13, 2026
e93be96
release(r-20261013T122054016568-review-of-cnr-operator-key-reuse-e9a4…
Simon-McIntosh Oct 13, 2026
6a49ae1
promote(r-20261013T120542044271-cnr-operator-key-reuse): passed
Simon-McIntosh Oct 13, 2026
a55d4c0
release(r-20261013T120542044271-cnr-operator-key-reuse): record works…
Simon-McIntosh Oct 13, 2026
440942e
merge: fused operators split through the model's one splitter
Simon-McIntosh Oct 13, 2026
d0b7eaf
docs(plans): record the binary-operator templates and the fused-opera…
Simon-McIntosh Oct 13, 2026
f9965fd
docs(grammar): define the plasma boundary as the last closed flux sur…
Simon-McIntosh Oct 14, 2026
0e43cde
fix(conventions): align the midplane and internal-inductance entries …
Simon-McIntosh Oct 14, 2026
ee4e24e
promote(r-20261014T200250066889-review-of-cnr-plasma-boundary-definit…
Simon-McIntosh Oct 14, 2026
50348fe
release(r-20261014T200250066889-review-of-cnr-plasma-boundary-definit…
Simon-McIntosh Oct 14, 2026
748e74c
promote(r-20261014T194406258201-cnr-plasma-boundary-definition): passed
Simon-McIntosh Oct 14, 2026
488c3f5
release(r-20261014T194406258201-cnr-plasma-boundary-definition): reco…
Simon-McIntosh Oct 14, 2026
5bc8735
merge: define the plasma boundary as the last closed flux surface
Simon-McIntosh Oct 14, 2026
909adcc
promote(r-20261014T201119536432-review-of-cnr-midplane-and-inductance…
Simon-McIntosh Oct 14, 2026
a7bd22c
release(r-20261014T201119536432-review-of-cnr-midplane-and-inductance…
Simon-McIntosh Oct 14, 2026
e3d8445
docs(plans): close the concept entries section after the coordinator'…
Simon-McIntosh Oct 14, 2026
7e255e8
promote(r-20261014T194710866779-cnr-midplane-and-inductance): passed
Simon-McIntosh Oct 14, 2026
ecbf23c
release(r-20261014T194710866779-cnr-midplane-and-inductance): record …
Simon-McIntosh Oct 14, 2026
c1ac5df
merge: align the midplane and internal-inductance concepts with the DD
Simon-McIntosh Oct 14, 2026
cba614f
plan(concept-and-notation-registry): the sentences that keep near-dup…
Simon-McIntosh Oct 15, 2026
bec062e
plan(concept-and-notation-registry): separating sentences render only…
Simon-McIntosh Oct 15, 2026
807aa6d
promote(r-20261015T113019684958-plan-review-of-concept-and-notation-r…
Simon-McIntosh Oct 15, 2026
a477ab7
release(r-20261015T113019684958-plan-review-of-concept-and-notation-r…
Simon-McIntosh Oct 15, 2026
8aface2
fix(review): commit an answer on a committed review record
Simon-McIntosh Oct 15, 2026
dd05f40
fix(review): commit an answer on a committed review record
Simon-McIntosh Oct 15, 2026
3084291
plan(concept-and-notation-registry): token definitions and template c…
Simon-McIntosh Oct 15, 2026
c3cabe3
promote(r-20261015T121354401686-plan-review-of-concept-and-notation-r…
Simon-McIntosh Oct 15, 2026
a9b29d9
release(r-20261015T121354401686-plan-review-of-concept-and-notation-r…
Simon-McIntosh Oct 15, 2026
6fc80f6
fix(review): commit an answer on a committed review record
Simon-McIntosh Oct 15, 2026
13bf62f
fix(review): commit an answer on a committed review record
Simon-McIntosh Oct 15, 2026
a5f2e2b
fix(review): commit an answer on a committed review record
Simon-McIntosh Oct 15, 2026
05c0736
plan(concept-and-notation-registry): render token definitions, keep z…
Simon-McIntosh Oct 15, 2026
bfd2311
promote(r-20261015T193336208265-plan-review-of-concept-and-notation-r…
Simon-McIntosh Oct 15, 2026
09f03f3
release(r-20261015T193336208265-plan-review-of-concept-and-notation-r…
Simon-McIntosh Oct 15, 2026
12851d7
fix(review): commit an answer on a committed review record
Simon-McIntosh Oct 15, 2026
da04262
fix(review): commit an answer on a committed review record
Simon-McIntosh Oct 15, 2026
844ca22
fix(review): commit an answer on a committed review record
Simon-McIntosh Oct 15, 2026
809cbe5
plan(concept-and-notation-registry): definition-only shape, tested pr…
Simon-McIntosh Oct 15, 2026
5017014
promote(r-20261015T195824306494-plan-review-of-concept-and-notation-r…
Simon-McIntosh Oct 15, 2026
8465cc5
release(r-20261015T195824306494-plan-review-of-concept-and-notation-r…
Simon-McIntosh Oct 15, 2026
ed1fa78
fix(review): commit an answer on a committed review record
Simon-McIntosh Oct 15, 2026
bcc1e1f
fix(review): commit an answer on a committed review record
Simon-McIntosh Oct 15, 2026
4139890
fix(review): commit an answer on a committed review record
Simon-McIntosh Oct 15, 2026
e6de4db
plan(concept-and-notation-registry): a template note holds the separa…
Simon-McIntosh Oct 16, 2026
6c98543
promote(r-20261015T201525781975-plan-review-of-concept-and-notation-r…
Simon-McIntosh Oct 16, 2026
32ce999
release(r-20261015T201525781975-plan-review-of-concept-and-notation-r…
Simon-McIntosh Oct 16, 2026
7161a3b
fix(review): commit an answer on a committed review record
Simon-McIntosh Oct 16, 2026
ffd17ca
feat(grammar): give population, zone and aggregation tokens definitio…
Simon-McIntosh Oct 16, 2026
64ed43d
promote(r-20261016T060429895496-review-of-isn-token-definitions-ffd17…
Simon-McIntosh Oct 16, 2026
cff1f62
release(r-20261016T060429895496-review-of-isn-token-definitions-ffd17…
Simon-McIntosh Oct 16, 2026
2a0995d
promote(r-20261016T052029421979-isn-token-definitions): passed
Simon-McIntosh Oct 16, 2026
b51c415
release(r-20261016T052029421979-isn-token-definitions): record worksp…
Simon-McIntosh Oct 16, 2026
903e8e4
merge: population, zone and aggregation tokens carry definitions
Simon-McIntosh Oct 16, 2026
7874421
plan(concept-and-notation-registry): close token definitions, allow o…
Simon-McIntosh Oct 16, 2026
3dc5911
promote(r-20261016T052046352943-plan-review-of-concept-and-notation-r…
Simon-McIntosh Oct 16, 2026
c4e1ce4
release(r-20261016T052046352943-plan-review-of-concept-and-notation-r…
Simon-McIntosh Oct 16, 2026
7703096
fix(review): commit an answer on a committed review record
Simon-McIntosh Oct 16, 2026
bdc3322
fix(review): commit an answer on a committed review record
Simon-McIntosh Oct 16, 2026
218b1be
plan(concept-and-notation-registry): state the sentence placement as …
Simon-McIntosh Oct 16, 2026
a290352
promote(r-20261016T061739376128-plan-review-of-concept-and-notation-r…
Simon-McIntosh Oct 16, 2026
b2d14f9
release(r-20261016T061739376128-plan-review-of-concept-and-notation-r…
Simon-McIntosh Oct 16, 2026
1fdffc3
fix(review): commit an answer on a committed review record
Simon-McIntosh Oct 16, 2026
d2713d4
fix(review): commit an answer on a committed review record
Simon-McIntosh Oct 16, 2026
ea6ea2c
feat(grammar): let a template require or exclude tokens and carry a note
Simon-McIntosh Oct 16, 2026
f01dd7c
docs(evidence): record conditioned template entries and notes
Simon-McIntosh Oct 16, 2026
f86caed
promote(r-20261016T093133736372-review-of-isn-template-conditions-f01…
Simon-McIntosh Oct 16, 2026
b43c085
release(r-20261016T093133736372-review-of-isn-template-conditions-f01…
Simon-McIntosh Oct 16, 2026
cddedc2
plan(concept-and-notation-registry): template conditions landed
Simon-McIntosh Oct 16, 2026
304c03c
promote(r-20261016T083852210600-isn-template-conditions): passed
Simon-McIntosh Oct 16, 2026
abcacd9
release(r-20261016T083852210600-isn-template-conditions): record work…
Simon-McIntosh Oct 16, 2026
0300b1d
merge: template entries carry conditions and a note
Simon-McIntosh Oct 16, 2026
a5ced68
plan(concept-and-notation-registry): section 7 renders notes through …
Simon-McIntosh Oct 16, 2026
29dc668
feat(grammar): render conditioned template sentences
Simon-McIntosh Oct 16, 2026
729c94d
docs(grammar): record sentence placement and controls
Simon-McIntosh Oct 16, 2026
6359a8f
promote(r-20261016T111007573009-review-of-isn-near-duplicate-sentence…
Simon-McIntosh Oct 16, 2026
a116f47
release(r-20261016T111007573009-review-of-isn-near-duplicate-sentence…
Simon-McIntosh Oct 16, 2026
09c1fbb
plan(concept-and-notation-registry): near-duplicate sentences landed
Simon-McIntosh Oct 16, 2026
0b5302d
promote(r-20261016T102003154342-isn-near-duplicate-sentences): passed
Simon-McIntosh Oct 16, 2026
fbd795f
release(r-20261016T102003154342-isn-near-duplicate-sentences): record…
Simon-McIntosh Oct 16, 2026
e1ea7f1
merge: near-duplicate sentences render once through one accessor
Simon-McIntosh Oct 16, 2026
3f92a2b
docs(plans): add the separatrix-distance base and physics-only locus …
Simon-McIntosh Oct 18, 2026
b32b093
promote(r-20261016T100950584754-plan-review-of-concept-and-notation-r…
Simon-McIntosh Oct 18, 2026
0181e96
release(r-20261016T100950584754-plan-review-of-concept-and-notation-r…
Simon-McIntosh Oct 18, 2026
5b78369
promote(r-20261018T095724941377-plan-review-of-concept-and-notation-r…
Simon-McIntosh Oct 18, 2026
8d35b97
release(r-20261018T095724941377-plan-review-of-concept-and-notation-r…
Simon-McIntosh Oct 18, 2026
a424944
fix(review): commit an answer on a committed review record
Simon-McIntosh Oct 18, 2026
e34d590
fix(review): commit an answer on a committed review record
Simon-McIntosh Oct 18, 2026
07eac29
fix(review): commit an answer on a committed review record
Simon-McIntosh Oct 18, 2026
06b57a3
fix(review): commit an answer on a committed review record
Simon-McIntosh Oct 18, 2026
9ae833f
docs(plans): split the separatrix base from the locus definition rewrite
Simon-McIntosh Oct 18, 2026
bb6dc90
promote(r-20261018T101149667120-plan-review-of-concept-and-notation-r…
Simon-McIntosh Oct 18, 2026
c537660
release(r-20261018T101149667120-plan-review-of-concept-and-notation-r…
Simon-McIntosh Oct 18, 2026
fad3743
fix(review): commit an answer on a committed review record
Simon-McIntosh Oct 18, 2026
cb1cf7b
fix(review): commit an answer on a committed review record
Simon-McIntosh Oct 18, 2026
2d52b95
fix(review): commit an answer on a committed review record
Simon-McIntosh Oct 18, 2026
f758cb3
docs(plans): define the separatrix midplane point without the gradien…
Simon-McIntosh Oct 18, 2026
979bca5
promote(r-20261018T102715579743-plan-review-of-concept-and-notation-r…
Simon-McIntosh Oct 18, 2026
617d6f1
release(r-20261018T102715579743-plan-review-of-concept-and-notation-r…
Simon-McIntosh Oct 18, 2026
cda4d8d
fix(review): commit an answer on a committed review record
Simon-McIntosh Oct 18, 2026
19bc1fe
fix(review): commit an answer on a committed review record
Simon-McIntosh Oct 18, 2026
42089c3
docs(plans): keep the gradient-point locus geometric
Simon-McIntosh Oct 18, 2026
332a268
promote(r-20261018T103841624726-plan-review-of-concept-and-notation-r…
Simon-McIntosh Oct 18, 2026
9fe3937
release(r-20261018T103841624726-plan-review-of-concept-and-notation-r…
Simon-McIntosh Oct 18, 2026
28f27fa
fix(review): commit an answer on a committed review record
Simon-McIntosh Oct 18, 2026
1e9d01f
docs(plans): strip every data-dictionary reference from the gradient-…
Simon-McIntosh Oct 18, 2026
7e934de
promote(r-20261018T105517695052-plan-review-of-concept-and-notation-r…
Simon-McIntosh Oct 18, 2026
300aef9
release(r-20261018T105517695052-plan-review-of-concept-and-notation-r…
Simon-McIntosh Oct 18, 2026
ab55103
fix(review): commit an answer on a committed review record
Simon-McIntosh Oct 18, 2026
9968547
feat(grammar): add separatrix_distance physical base
Simon-McIntosh Oct 18, 2026
eabe10b
style(grammar): add trailing newline to the separatrix distance test
Simon-McIntosh Oct 18, 2026
88f9ae8
docs(grammar): define loci by physical meaning
Simon-McIntosh Oct 18, 2026
3bbcf0d
docs(evidence): record the separatrix_distance base landing
Simon-McIntosh Oct 18, 2026
6f5782a
docs: record locus definition evidence
Simon-McIntosh Oct 18, 2026
fffa20c
docs(evidence): state the full-tree grammar gate counts
Simon-McIntosh Oct 18, 2026
e66d120
promote(r-20261018T115416930933-review-of-isn-separatrix-distance): n…
Simon-McIntosh Oct 18, 2026
e025dae
release(r-20261018T115416930933-review-of-isn-separatrix-distance): r…
Simon-McIntosh Oct 18, 2026
bd15459
promote(r-20261018T105459473087-isn-separatrix-distance): passed
Simon-McIntosh Oct 18, 2026
6b1c466
release(r-20261018T105459473087-isn-separatrix-distance): record work…
Simon-McIntosh Oct 18, 2026
089f55e
merge: a base for a distance from the separatrix
Simon-McIntosh Oct 18, 2026
d344caf
promote(r-20261018T111026811632-isn-locus-definitions-physics): passed
Simon-McIntosh Oct 18, 2026
b595de3
release(r-20261018T111026811632-isn-locus-definitions-physics): recor…
Simon-McIntosh Oct 18, 2026
785e858
merge: locus definitions in physics terms
Simon-McIntosh Oct 18, 2026
3dd39ce
promote(r-20261018T115357570264-review-of-isn-locus-definitions-physi…
Simon-McIntosh Oct 18, 2026
60a32cc
release(r-20261018T115357570264-review-of-isn-locus-definitions-physi…
Simon-McIntosh Oct 18, 2026
71b01fc
docs(plans): close the separatrix-distance and locus-definition sections
Simon-McIntosh Oct 18, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 80 additions & 0 deletions docs/evidence/archive/concept-and-notation-registry-landed.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="docs-project" content="imas-standard-names">
<meta name="reckon-type" content="evidence">
<meta name="plan-slug" content="concept-and-notation-registry-landed">
<meta name="plan-title" content="One Definition Per Concept, Published With The Grammar — landed record">
<meta name="plan-summary" content="Closure synthesis for One Definition Per Concept, Published With The Grammar: 0 committed run(s), 0 section-anchored comment(s), and 0 landed commit(s).">
<meta name="plan-evidence-for" content="concept-and-notation-registry">
<meta name="plan-verdict" content="qualified">
<title>One Definition Per Concept, Published With The Grammar — landed record | imas-standard-names</title>
<link rel="stylesheet" href="/_shared/foundation.css">
<link rel="stylesheet" href="/_shared/dashboard.css">
</head>
<body>
<main class="plan-doc">
<h1>One Definition Per Concept, Published With The Grammar — landed record</h1>
<p>Closure synthesis for One Definition Per Concept, Published With The Grammar: 0 committed run(s), 0 section-anchored comment(s), and 0 landed commit(s).</p>


<section id="s2-registry-loader">
<h2>§2 — registry, loaders and accessor landed</h2>
<p>Commit <code>1e12625</code> adds <code>vocabularies/conventions/concepts.yml</code>, <code>notation.yml</code> and <code>templates.yml</code>, their token-validating loaders in <code>grammar/vocab_loaders.py</code>, and <code>select_conventions</code> in <code>grammar/terms.py</code>. For <code>flux_surface_averaged_argon_density_at_plasma_boundary</code> the accessor returns exactly two concepts (flux-surface average, plasma boundary), one notation (density) and one template (density with subject). The loader refuses a malformed entry per file, an unknown token key and a forbidden spelling equal to a registered alias, each by name. Gate: 481 passed against 469 at base; removing the flux-surface-average entry from a scratch copy turns the accessor test red. Independent review 102/120, no added failures. Open in this section: the templates still carry a <code>sign_convention</code> field the plan removed, the conventions YAML reader copies <code>_load_yaml</code>, and one refusal test matches too loosely; a follow-up node narrows all three.</p>
</section>

<section id="s2">
<h2>§2 — registry narrowed to openings and its existing YAML owner</h2>
<p>Commit <code>0a977ee</code> removes the template <code>sign_convention</code> field from the model, <code>templates.yml</code> and the <code>select_conventions</code> output, folds <code>_load_conventions_yaml</code> into <code>_load_yaml</code>, and makes each refusal test assert its own message. <code>rg</code> finds neither name in the registry code. Gate: 44 passed, 5 xfailed against 42 passed, 5 xfailed at base; re-adding <code>sign_convention</code> to the template model turns the refusal test red. Independent review 118/120, no added failures. With the loader landing (<a href="#s2-registry-loader">s2-registry-loader</a>), the section's deliverable is in the tree.</p>
</section>

<section id="s3-registry-test-invariants">
<h2>§3 — the registry tests check the registry&#x27;s own invariants</h2>
<p>Run <code>r-20261013T081300178088-cnr-registry-test-invariants</code>, merged at <code>448d2b9</code>. Authoring the conventions registry had broken three tests in <code>tests/grammar/test_conventions.py</code>, because they pinned entries and spellings the authored registry no longer had. The rewrite tests what the registry promises instead: every declared entry is present, the density spelling follows the notation policy, and notation is selected from the parse. The four-file gate went from 3 failed and 79 passed at base to 82 passed at head. Three targeted mutations of a scratch registry each fail a test (exit 1). The independent review scored every dimension 19 or 20 with no added failures. Its one note: the node's fragment is an empty anchor, so this record carries the account.</p>
</section>

<section id="s3-accessor-operator-keys">
<h2>§3 — convention selection keys operators by their registry token</h2>
<p>Run <code>r-20261013T081403384041-cnr-accessor-operator-keys</code>, merged at <code>757e2f5</code>. <code>select_conventions</code> in <code>imas_standard_names/grammar/terms.py</code> now handles operators by their registry token. An indexed derivative such as <code>derivative_of_X_with_respect_to_Y</code> selects the <code>derivative_with_respect_to</code> concept. A binary ratio name selects the <code>ratio</code> concept and the ratio-keyed templates. The placeholder token is excluded. Four new tests in <code>tests/grammar/test_conventions_operator_keys.py</code> each fail when the selection mechanisms are removed. The five-file gate adds no failures against its base. Its three base failures are the registry-test breakages the test-invariants node fixed.</p><p>The review scored 10 to 20 with no added failures and left two notes for the templates node. First, <code>_operator_token</code> splits a fused indexed operator by prefix stripping, duplicating <code>model._split_fused_indexed_operator</code>, which also validates the bound index. Second, <code>test_ratio_selects_its_operator_concept</code> already passes at base, so it guards nothing this change added.</p>
</section>

<section id="s3-binary-operators">
<h2>§3 — binary-operator templates, and one fused-operator splitter</h2>
<p>The registry's template set gained an <code>{operand}</code> placeholder and three binary-operator templates (commit <code>9813991</code>):</p><ul><li><code>ratio</code>: <em>Ratio of {operand} to {operand}</em>;</li><li><code>difference</code>: <em>Difference of {operand} and {operand}</em>;</li><li><code>product</code>: <em>Product of {operand} and {operand}</em>.</li></ul><p>The conventions selector now splits a fused indexed operator through <code>model._split_fused_indexed_operator</code>. It drops its own prefix loop and the <code>_operator_keys</code> cache, and binary operators are keyed to those templates. Three mutations each turn the operator tests red: a raw operator token, binary operators excluded from the IR tokens, and binary keying dropped from the template bases. The five-file gate went from 66 passed at base to 67 passed at head (merge <code>440942e</code>; review 113/120).</p>
</section>

<section id="s3-concept-corrections">
<h2>§3 — The coordinator&#x27;s read of concepts.yml, and its three corrections</h2>
<p>The lead delegated the read of <code>conventions/concepts.yml</code> to the coordinator on 2026-10-14. All 46 entries were read. They are correct and consistent with the catalog's convention, and none names a COCOS. Three corrections landed.</p><ul><li><strong>Plasma boundary</strong> (node <code>cnr-plasma-boundary-definition</code>, commit <code>f9965fd</code>, merge <code>5bc8735</code>, review 101/120). The locus definition in <code>locus_registry.yml</code> now reads, in the lead's words: <em>The last closed magnetic flux surface: the outermost flux surface on which field lines close on themselves, bounding the confined plasma.</em> The accessor returns it beside the equation ψ = ψ<sub>LCFS</sub>. Gate: 39 passed at base and head.</li><li><strong>Outboard and inboard midplane</strong> (node <code>cnr-midplane-and-inductance</code>, commit <code>0e43cde</code>, review 102/120). Both were defined by dR/dZ = 0 on the separatrix, which is undefined for a limited plasma and disagrees with the poloidal angle's zero. They are now <code>Z = Z_mid</code> with <code>R</code> beyond or inside the magnetic axis, where <code>Z_mid</code> is the height the data's <code>midplane_identifier</code> selects, the magnetic-axis height by default.</li><li><strong>Internal inductance</strong> (same node) now names its l<sub>i</sub>(3) form, matching its equation.</li></ul><p>Both reviews asked for a test pinning the new wording. That is declined: a test pinning approved text is a change detector, and the accessor tests already show the registry is what renders. The midplane fragment says a before-capture of the accessor is on disk. Only the after-capture exists; the before text was checked against the base blob instead.</p>
</section>

<section id="s5-token-definitions">
<h2>§5 — population, zone and aggregation tokens carry definitions</h2>
<p>The population, zone and aggregation vocabularies now carry a definition per token, moved from the files' comments, with nothing invented. <code>select_conventions</code> emits each through a definition-only shape. The loaders return the same token sets, and <code>load_zones</code> the same ordered tuple (merge <code>903e8e4</code>, 5 tests; review 101/120). Follow-ons for §6: the vocabularies use a token-keyed nested shape rather than the locus registry's entry shape, and a second YAML reader sits beside <code>_load_yaml</code>.</p>
</section>

<section id="s6-template-conditions">
<h2>§6 — A template may require or exclude tokens</h2>
<p>A template entry may now require tokens, exclude segment kinds and carry a <code>note</code>. Selection applies the conditions after the subset test, and a conditioned entry supersedes an unconditioned sibling (same base, same segment kinds) when both match. The shipped registry carries no conditions, so selection over it is unchanged. <code>tests/grammar/test_template_conditions.py</code> adds 8 tests, covering the required token, the excluded kind, the note, the precedence rule and the shipped-registry no-op. <code>tests/grammar</code> passes at base <code>d2713d4</code> and at head. Commits <code>ea6ea2c</code> and <code>f01dd7c</code>. The review scored 109 with three follow-ons. Nothing in production renders <code>AppliedTemplate.note</code> yet, so the test proves the note only through its own helper. The test oracle <code>_legacy_selection</code> is named by revision rather than mechanism. And one negative-control log header names the base revision. The first two go to §7.</p><p><a href="/imas-standard-names/evidence/fragments/concept-and-notation-registry/isn-template-conditions.html">fragment</a></p>
</section>

<section id="s7-near-duplicate-sentences">
<h2>§7 — The sentences that keep near-duplicates apart</h2>
<p>The three ruled sentences are notes on conditioned template entries in <code>templates.yml</code>:</p><ul><li>the cold-or-hot neutral temperature sentence, on <code>temperature</code> with subject <code>neutral</code>, in one entry excluding population and one requiring <code>cold</code> or <code>hot</code>;</li><li>the triangularity sentence, in one entry excluding zone and one requiring <code>upper</code> or <code>lower</code>;</li><li>the total-density sentence, on electron <code>density</code>, in one entry requiring aggregation <code>total</code> and one requiring population <code>thermal</code> or <code>fast</code>.</li></ul><p>A new accessor, <code>template_sentences</code> beside <code>select_conventions</code>, returns each selected template's opening and then its note. It emits each distinct note once, so <code>total_thermal_electron_density</code>, which selects both density entries, renders the sentence once. <code>select_conventions</code> is unchanged. <code>tests/grammar/test_near_duplicate_sentences.py</code> checks all three sentences on 62 family names: 10 temperature, 28 triangularity and all 24 electron-density combinations. Five red controls each fail (EXIT=1): a sentence removed, deduplication removed, and each sentence moved to a broad entry. <code>tests/grammar</code> has 1,275 passed against 1,212 at base, with no added failures. <code>_legacy_selection</code> is renamed by what it computes. Review 118/120. Commits <code>29dc668</code> and <code>729c94d</code>.</p><p><a href="/imas-standard-names/evidence/fragments/concept-and-notation-registry/isn-near-duplicate-sentences.html">fragment</a></p>
</section>

<section id="s8-separatrix-distance">
<h2>§8 — a base for a distance from the separatrix</h2>
<p><code>separatrix_distance</code> is a physical base: the distance of a position from the magnetic separatrix, positive outside it (merge <code>089f55e</code>, review 114/120, zero added failures). <code>radial_separatrix_distance_at_outboard_midplane</code> now decomposes as component <code>radial</code>, base <code>separatrix_distance</code>, position <code>outboard_midplane</code> and round-trips. Before, it parsed as a distance in the separatrix zone. Names that use <code>separatrix</code> as a zone or a locus keep their parse, and the decomposition test fails with the base removed. The grammar suite passes at head. Record: <code>docs/evidence/fragments/concept-and-notation-registry/isn-separatrix-distance.html</code>.</p>
</section>

<section id="s9-locus-definitions">
<h2>§9 — locus definitions in physics terms</h2>
<p>Every locus definition that named a DD field, an IDS path or an option value now states what <code>concepts.yml</code> states (merge <code>785e858</code>, review 117/120, zero added failures). <code>outboard_midplane</code> reads: the low-field-side equatorial midplane, points at the midplane height with major radius greater than the magnetic-axis radius; the data's midplane identifier selects that height, or it is the magnetic-axis height when none is given. <code>outboard_midplane_separatrix</code> is the crossing of the separatrix with that height on the low-field side, with no gradient wording. <code>dr_dz_zero_point</code> keeps its geometric definition and loses its DD references. One test fails on the old midplane texts. A second fails when a midplane definition drops either its height or its side of the axis. Record: <code>docs/evidence/fragments/concept-and-notation-registry/isn-locus-definitions-physics.html</code>.</p>
</section>

</main>
</body>
</html>
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<section id="cnr-accessor-operator-keys-landing"></section>
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
<section id="cnr-midplane-and-inductance">
<h2>Midplane and internal-inductance entries made consistent with the DD</h2>
<p>The <code>load_conventions</code> accessor was run before and after the
change; both quotes are recorded on disk under the run directory.</p>

<h3 id="cnr-midplane-and-inductance-midplane">Midplane entries</h3>

<p><strong>Before.</strong> Both entries fixed the midplane as the point on the
separatrix contour where the tangent is vertical:</p>
<pre><code>outboard_midplane equation: \left.\frac{dR}{dZ}\right|_{\mathrm{sep}} = 0,\quad R &gt; R_{\mathrm{axis}}
inboard_midplane equation: \left.\frac{dR}{dZ}\right|_{\mathrm{sep}} = 0,\quad R &lt; R_{\mathrm{axis}}
symbols: R(Z)|_{\mathrm{sep}} = the major radius of the separatrix contour as a function of height
R_{\mathrm{axis}} = major radius of the magnetic axis</code></pre>

<p><strong>Reason.</strong> The point is undefined for a limited plasma, which
has no separatrix, and it disagrees with <code>poloidal_angle</code>, whose
zero lies on the outboard side of the horizontal plane through the magnetic
axis.</p>

<p><strong>After.</strong> The accessor returns:</p>
<pre><code>outboard_midplane equation: Z = Z_{\mathrm{mid}},\quad R &gt; R_{\mathrm{axis}}
inboard_midplane equation: Z = Z_{\mathrm{mid}},\quad R &lt; R_{\mathrm{axis}}
symbols: Z_{\mathrm{mid}} = the midplane height the data's midplane identifier selects,
the magnetic-axis height when none is given
R_{\mathrm{axis}} = major radius of the magnetic axis</code></pre>

<p>The DD makes the midplane a per-dataset choice:
<code>equilibrium/time_slice/profiles_1d/midplane_identifier</code> takes
<code>1 magnetic_axis</code>, <code>2 dr_dz_zero_sep</code>,
<code>3 z_zero</code> or <code>4 ggd_subset</code>. The general height
<code>Z_{\mathrm{mid}}</code> replaces the hard-coded
<code>dr_dz_zero_sep</code> condition.</p>

<h3 id="cnr-midplane-and-inductance-inductance">Internal inductance</h3>

<p><strong>Before.</strong> The definition named no form, while the DD carries
several (<code>l_i(1)</code>, <code>l_i(2)</code>, <code>l_i(3)</code>,
differing in the denominator radius and the leading factor).</p>
<p><strong>After.</strong> The accessor returns the <code>l_i(3)</code> form:
"The l_i(3) form of the plasma's internal inductance: the volume integral of
the squared poloidal magnetic field over the plasma, normalized by the plasma
current and the major radius of the plasma's geometric axis." The equation and
symbols are unchanged.</p>

<h3 id="cnr-midplane-and-inductance-measure">Measure</h3>
<p>Gate <code>tests/grammar/test_conventions.py</code> and
<code>tests/test_vocabulary_consistency_regressions.py</code>: 20 passed,
EXIT=0 at base <code>d0b7eafb</code>, and 20 passed, EXIT=0 at head; zero
added failures.</p>
</section>
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<!-- Landing record: one owner for the fused-operator split, and operator tests that can fail. -->
<section id="cnr-operator-key-reuse-landing">
<p>
<code>_operator_token</code> in <code>grammar/terms.py</code> now resolves a
fused indexed application through
<code>model.py:_split_fused_indexed_operator</code> instead of re-deriving
the boundary against its own copy of the operator registry. The prefix loop
and the cache that only it used (<code>_operator_keys</code>, the
<code>load_operators</code> import) are gone. The model is asked only for
the split it already owns, so the accessor and the model agree on exactly
which fused tokens round-trip.
</p>
<p>
Rewrote the ratio test so it guards the binary-operator route into
<code>_ir_tokens</code>: it asserts the ratio key is collected from the
parse and selects its concept, and it fails when binary operators are
excluded from the token set. Replaced the scratch-copy template test with
one that reads the shipped registry: a ratio, a difference and a product
name each select their own template, and a plain name selects none of the
three.
</p>
<p id="cnr-operator-key-reuse-measure">
Measure: the five gate files run
<code>67 passed, 5 xfailed, EXIT=0</code> against
<code>66 passed, 5 xfailed, EXIT=0</code> at base (no added failures).
Three mutations each fail with <code>EXIT=1</code>: routing
<code>_operator_token</code> back to the raw string fails
<code>test_indexed_derivative_selects_its_operator_concept</code>;
excluding binary operators from <code>_ir_tokens</code> fails
<code>test_binary_operator_key_reaches_the_convention_tokens</code>;
dropping the binary-operator keying from <code>template_bases</code> fails
<code>test_shipped_templates_are_selected_for_their_operator_names</code>.
</p>
</section>
Loading
Loading