Skip to content

feat(notations): add VOC2 — relation_types vs 17-relations.md §3 drift check - #457

Merged
transitrix merged 6 commits into
mainfrom
methodology/49-vocabulary-relation-types
Aug 7, 2026
Merged

feat(notations): add VOC2 — relation_types vs 17-relations.md §3 drift check#457
transitrix merged 6 commits into
mainfrom
methodology/49-vocabulary-relation-types

Conversation

@transitrix

Copy link
Copy Markdown
Owner

Summary

  • Extends scripts/check-notations.mjs with VOC2, matching the VOC1 pattern: every live relation kind in notations/vocabulary.yaml's relation_types must match its endpoint TYPE set and ACTOR subtype narrowing in elements/17-relations.md §3's table, and vice versa. Fails closed on a missing/unparseable artefact.
  • Fixes the one divergence the first run surfaces: offers was missing from_subtype: [business_unit], which the spec table and prose already document.
  • Unit tests for the new pure parsers (positive + negative), mirroring VOC1's test shape.

Depends on #453 (still open, CI green) — this PR is based on that branch, per the stacked-PR exception (same as #454/#456 on the sibling epic). Please merge #453 first, then this one.

Test plan

  • node scripts/check-notations.mjs — clean
  • node --test scripts/check-notations.test.mjs — all pass (30/30)

…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>
…t check

Extends scripts/check-notations.mjs with the same shape as VOC1: every live
relation kind in vocabulary.yaml's relation_types must match its endpoint
TYPE set and ACTOR subtype narrowing in elements/17-relations.md §3's table,
and vice versa. Also fixes the one divergence the first run surfaces: the
offers relation was missing the from_subtype: [business_unit] narrowing the
spec table and prose already document.

Signed-off-by: transitrix <279946036+transitrix@users.noreply.github.com>
@transitrix transitrix added the needs:human-merge Mergeable but not a simple PR; awaits human merge label Aug 7, 2026
vkgeorgia and others added 3 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
…gy/49-vocabulary-relation-types

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

# Conflicts:
#	scripts/check-notations.mjs
#	scripts/check-notations.test.mjs
…459)

Extends scripts/check-notations.mjs with the same shape as VOC1/VOC2: every
value_vocabularies entry in vocabulary.yaml with a non-null spec has each of
its values appear somewhere in that spec as (part of) a code span; an entry
that also names a rule has that rule's row cross-checked so the row's own
enumerated values match `values` exactly. decomposeSpan() normalises the
several code-span shapes specs actually use (pipe list, brace set, several
single-value spans) to a flat value list. The first run passes clean — no
existing divergence in this block.

Signed-off-by: transitrix <279946036+transitrix@users.noreply.github.com>
Co-authored-by: Valerii Korobeinikov <vkgeorgia@icloud.com>
@transitrix
transitrix merged commit d07073b into main Aug 7, 2026
11 checks passed
@transitrix
transitrix deleted the methodology/49-vocabulary-relation-types branch August 7, 2026 19:46
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