feat(vocabulary): Domain Vocabulary — identity vs representation; regulation aliases fix the KPI normalization

Before the next Journey: the LANGUAGE. With 5 knowledge objects but no vocabulary, the same reise gets
named four different ways (ISO9001->MaschinenVO vs Quality Management->Product Safety vs ...). The spec
answers ONE question: which terms are IDENTITIES and which are REPRESENTATIONS of the same meaning?

- spec docs-src/architecture/domain-vocabulary-spec-v1.md (PROPOSAL): identity hierarchy
  (Requirement RQ / Capability MCAP [Registry 2C] / regulation-source-target / Journey Class MJRN
  [PROVISIONAL] / Journey instance / Playbook MPLB); canonical name + aliases; capability vocabulary =
  the Capability Registry (not rebuilt); reorder Vocabulary -> Transition #2 -> #3 -> Rule of Three.
- knowledge/vocabulary/regulations.yaml: regulation/standard IDENTITIES (id + canonical + aliases).
  SOLVES the regulation-ID normalization the KPIs flagged: CRA == "Cyber Resilience Act" == "Regulation
  (EU) 2024/2847" all resolve to `cra`; ISO9001/QMS -> iso9001; etc. Shared artifact (@Legal-KG/@Execution
  please adopt).
- knowledge/vocabulary/journey_classes.yaml (PROVISIONAL): clusters our transitions into classes
  (Information Security -> Product Cybersecurity; Quality Management -> Product Compliance/Safety).
  Finding: ISO9001->MaschinenVO is an INSTANCE of an existing class (like ISO9001->CRA, ISO13485->MDR),
  not a new kind -> avoids duplication. Journey Class is a new abstraction -> its own Rule of Three (no
  MJRN minting yet).
- reference suite: both KPIs now read aliases from regulations.yaml instead of hard-coded maps; the
  "Regelwerk-ID-Normalisierung" line flips TODO -> PASS. KPI numbers unchanged (vocab is a superset).
- Side effect = Requirements Intelligence: a Tender "Security Patch Procedure" resolves to MCAP-0017.

7 vocabulary tests (17 with domain programs), check-loc 0. Knowledge data + spec + reference harness =
non-runtime -> no deploy (ADR-001). No new module, no runtime change, no minting (Freeze).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-06-28 08:11:30 +02:00
parent 23a6f02ec2
commit ecae5bc7f1
6 changed files with 239 additions and 10 deletions
@@ -0,0 +1,30 @@
# Domain Vocabulary — Journey CLASSES (PROVISIONAL). A class clusters journey instances that are
# "the same reise". So we do NOT write a new journey for every certification when many share a class.
# PROVISIONAL: Journey Class is a NEW abstraction -> its OWN Rule of Three (>= 3 instances per class
# before minting MJRN ids). Endpoints reference regulation vocabulary ids (see regulations.yaml).
id: VOCAB-journey-classes-v1
status: provisional
classes:
- id: infosec-to-product-cyber # provisional id, NOT a minted MJRN
name: "Information Security → Product Cybersecurity"
from_kind: information_security
to_kind: product_cybersecurity
instances:
- {from: iso27001, to: cra} # ✅ modelled (TP-ISO27001-CRA-v1)
- {from: tisax, to: cra} # ⏳ Rule-of-Three transition #3
- {from: iec62443, to: cra} # ⏳
- id: qm-to-product-compliance
name: "Quality Management → Product Compliance/Safety"
from_kind: quality_management
to_kind: product_compliance_safety
instances:
- {from: iso9001, to: cra} # ✅ modelled (TP-ISO9001-CRA-v1)
- {from: iso9001, to: maschinenvo} # ⏳ Rule-of-Three transition #2 — INSTANCE of this class, not a new kind
- {from: iso13485, to: mdr} # same CLASS, different domain (medical) — proves the class generalises
note: >
Befund: ISO9001→MaschinenVO ist KEINE neue Journey-Art, sondern eine INSTANZ der Klasse
„Quality Management → Product Compliance/Safety" (wie ISO9001→CRA, ISO13485→MDR). Das ist genau die
Duplikation, die das Vokabular verhindert.
@@ -0,0 +1,21 @@
# Domain Vocabulary — regulation/standard IDENTITIES (Requirement Sources + Targets).
# Each has a stable id + a canonical name + every alias/spelling. SOLVES the regulation-ID
# normalization that the Transition Coverage KPI + Knowledge Intake flagged (CRA vs "Cyber Resilience
# Act"). Reasoning seeds this; @Legal-KG / @Execution please adopt as the SHARED vocabulary.
# Not runtime, no minting — a shared knowledge artifact.
id: VOCAB-regulations-v1
regulations:
- {id: cra, canonical: "Cyber Resilience Act", aliases: [CRA, "Cyber Resilience Act", "Regulation (EU) 2024/2847"]}
- {id: maschinenvo, canonical: "Maschinenverordnung", aliases: [MaschinenVO, Maschinenverordnung, "Machinery Regulation", "Regulation (EU) 2023/1230"]}
- {id: iso9001, canonical: "ISO 9001", aliases: [ISO9001, "ISO 9001", "ISO/IEC 9001", QMS, "Quality Management System"]}
- {id: iso27001, canonical: "ISO/IEC 27001", aliases: [ISO27001, "ISO 27001", "ISO/IEC 27001", ISMS, "Information Security Management System"]}
- {id: tisax, canonical: "TISAX", aliases: [TISAX, "Trusted Information Security Assessment Exchange"]}
- {id: iec62443, canonical: "IEC 62443", aliases: [IEC62443, "IEC 62443", "ISO/IEC 62443"]}
- {id: nis2, canonical: "NIS2", aliases: [NIS2, "NIS 2", "Directive (EU) 2022/2555"]}
- {id: dataact, canonical: "Data Act", aliases: [DataAct, "Data Act", "Regulation (EU) 2023/2854"]}
- {id: iso13485, canonical: "ISO 13485", aliases: [ISO13485, "ISO 13485"]}
- {id: mdr, canonical: "MDR", aliases: [MDR, "Medical Device Regulation", "Regulation (EU) 2017/745"]}
- {id: iec62304, canonical: "IEC 62304", aliases: [IEC62304, "IEC 62304"]}
- {id: iso14001, canonical: "ISO 14001", aliases: [ISO14001, "ISO 14001"]}
- {id: iatf16949, canonical: "IATF 16949", aliases: [IATF16949, "IATF 16949", IATF]}