§6 — P5: Vocabulary curation and grammar closes ✓ landed 2026-07-10
Quick status
| Item | Verdict | Commit |
|---|---|---|
| processes.yml dedup (5 synonym families) + curation gate | ✓ shipped | fb98228 |
| Catch-all bases gated as generic (16 tokens) | ✓ shipped — 0 published casualties | ac196d5 |
| Qualifier intra-order by category rank | ✓ shipped — the 1 affected name already canonical, no rename | b566f9b |
| parse-contract documentation (oracle vs IR diagnostics) | ✓ shipped | 919a988 |
| Measurement-location advisory suppression | ✓ shipped — 310 → 0 on live catalog | d912daa |
| tools/grammar.py derives from get_grammar_context() | ✓ shipped — payload keys identical, no regression | 8f0e3d5 |
| halo triple-role + halo_boundary typing + regions parity gate | ✓ shipped | 49eee70, fb98228 |
| RC/plan provenance banner sweep from vocab comments | ✓ shipped | b2221b3 |
| binary_operators.yml retirement | ✗ deferred with reason — load-bearing (enum seed + 21 catalog names); drift hazard closed instead via source-parity gate | fe1968a |
| Transformation/Decomposition enum dedup | ✗ deferred with reason — slots are load-bearing (291/51 catalog uses), byte-equality is a codegen artifact; either dedup form changes validation semantics | — |
Key results
- Synonym merges: thermalization triple →
thermalization;coulomb_collisions→collisions(species-resolvedcoulomb_collisions_with_electronsretained as a distinct mechanism); radiation family →radiation(+ physically distinct line/synchrotron/impurity/surface_emission retained);disruption_event→disruption;viscous→viscosity. Curation gatetests/test_process_synonym_gate.pyblocks re-entry of every merged synonym (token + enum axes). - Migration backlog: EMPTY. Parsed-token sweep (not substring) over the live catalog found zero names carrying a retired synonym and zero bare catch-all names — no supervised graph-edit migration pass needed for P5.
- Full-catalog sweep: 2148 names, 2147 parse+round-trip identical; the single exception
(
flux_surface_averaged_magnetic_shear) is the intentional FSA-reduction-gate rejection fromb8a2024(pre-P5, tracked by the FSA-gate work, listed as a must-reject in its test). - Structural gates added: regions.yml ≡ region-typed loci (test parity gate); binary-operator sources (binary_operators.yml / operators.yml / specification.yml) bound against drift.
- Suite: 1726 passed, 28 skipped, 83 xfailed, 0 failed.
Deferred follow-ups (codegen refactors, deliberately not rushed)
- Full binary_operators.yml retirement: requires reworking VOCAB_TO_ENUM + connector derivation with 21-name round-trip verification. The silent-drift hazard is already closed by the parity gate.
- Transformation/Decomposition enum dedup: needs a codegen contract change (slot-keyed membership), not an alias.