Skip to content

feat(ingest-cli): derive vocabulary from notations/vocabulary.yaml - #453

Closed
transitrix wants to merge 4 commits into
mainfrom
methodology/49-vocabulary-element-types
Closed

feat(ingest-cli): derive vocabulary from notations/vocabulary.yaml#453
transitrix wants to merge 4 commits into
mainfrom
methodology/49-vocabulary-element-types

Conversation

@transitrix

Copy link
Copy Markdown
Owner

Summary

  • Adds notations/vocabulary.yaml as the closed-vocabulary source of truth: element TYPE registry, relation type enum, closed value vocabularies, and rule codes/severities.
  • packages/ingest-cli/src/vocabulary.mjs loads and validates the artefact (fails closed on missing/corrupt/version-mismatched input); placement.mjs and validate.mjs now derive their sets from it instead of holding their own literal copies.
  • scripts/check-notations.mjs gains a VOC1 check cross-verifying the artefact's element_types against ELEMENT_PRIMITIVES.md §4.
  • Wires the new unit tests into CI (ingest-skill-test.yml).

Test plan

  • node scripts/check-notations.mjs — clean
  • node --test scripts/check-notations.test.mjs — 24 passing, including new VOC1 parser tests
  • node --test packages/ingest-cli/src/vocabulary.test.mjs — 15 passing (clean pass, real divergence, corrupted artefact, and derived-view cases)
  • node --test packages/ingest-cli/src/packages.test.mjs — unaffected, still green

🤖 Generated with Claude Code

…PRIMITIVES §4

The §4 materialisation-mode table still listed EQUIPMENT and
INFORMATION_ENTITY as view-defined, predating the 2026-06-08 ADR that
promoted both to standalone catalogued elements (EQUIPMENT at
04_technology/equipment/, renamed BUSINESS_OBJECT at
02_business/business-objects/). The rest of the document — the layer
table, §7.14/§7.15 field schemas, and the ELEM-004/EQUIP-001/BOBJ-001
validation codes — already reflected the ADR; only this table and two
supporting §4.1/§4.2 bullets had not caught up.

Signed-off-by: Valerii Korobeinikov <vkgeorgia@icloud.com>
Publish notations/vocabulary.yaml as the closed-vocabulary source of
truth (element TYPE registry, relation type enum, closed value
vocabularies, rule codes). placement.mjs and validate.mjs derive their
sets from it instead of holding their own literal copies, which also
closes the pre-existing gap where placement.mjs was missing several
catalogued TYPEs and validate.mjs's relation-kind set was missing
several kinds. scripts/check-notations.mjs gains a VOC1 check
cross-verifying the artefact against ELEMENT_PRIMITIVES.md §4.

Signed-off-by: transitrix <279946036+transitrix@users.noreply.github.com>
vkgeorgia and others added 2 commits August 7, 2026 23:17
…lary-element-types

Signed-off-by: Valerii Korobeinikov <vkgeorgia@icloud.com>

# Conflicts:
#	scripts/check-notations.mjs
#	scripts/check-notations.test.mjs
…lary-element-types

# Conflicts:
#	notations/vocabulary.yaml
#	scripts/check-notations.mjs
#	scripts/check-notations.test.mjs
@transitrix

Copy link
Copy Markdown
Owner Author

Superseded — everything this PR added (vocabulary.mjs, placement.mjs/validate.mjs derivation, VOC1) already reached main via #457 and #459, which absorbed this branch's commits on their way through the stacked chain. The only diff left standing was the vocabulary.yaml version-pin bump, which duplicates #463 (open, CI green). Closing in favor of #463.

@transitrix transitrix closed this Aug 8, 2026
@transitrix
transitrix deleted the methodology/49-vocabulary-element-types branch August 17, 2026 13:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs:human-merge Mergeable but not a simple PR; awaits human merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants