# Meta-Model Validation v1 — Ist das Modell regulierungsunabhängig?

Status: **Phase 6 — Meta-Validierung (2026-06-26). KEIN neues Coding, KEINE Regulierung ingestiert.**
Dieses Dokument ist der Stresstest VOR der nächsten Regulierung. Baut auf
[capability_model_v1.md](capability_model_v1.md) (Modell C, #5b materialisiert) +
[legal_obligation_layer_v1.md](legal_obligation_layer_v1.md).

## Die eigentliche Frage

Nicht „welche Regulierung kommt als nächstes?", sondern:

> **Kann eine völlig neue Regulierung in dieses Modell eingeordnet werden, OHNE eine neue
> Objektklasse einzuführen?**

Wenn ja für MaschVO + Data Act + AI Act + NIS2 → das ist kein CRA-Graph mehr, sondern ein
**Compliance Meta Model**. Ab dann bringt jede Regulierung primär *Daten*, nicht *Architektur*.

## Das zu testende Modell (6 Klassen + Attribute, KEINE weitere Klasse erlaubt)

```
Regulation
   ↓ definiert
Legal Obligation   (CORE ⊇ DOMAIN; tier=LEGAL_MINIMUM/BEST_PRACTICE; objective_tags[]; applicability)
   ↓ realized_by   (OPTIONAL)
Capability         (regulierungs-agnostische technische Faehigkeit; guidance_basis hier)
   ↓ deployed_via
Procedure
   ↓ verified_by
Control
   ↓ produces
Evidence
```
Quer: **Guidance** (NIST/OWASP/ISO/BSI) hängt an der Capability. **Attribute** (keine Klassen):
`tier`, `objective_tags`, `applicability`, später `deadline`/`risk_level`/`severity`.
Kanten: realized_by · specializes · contributes_to · deployed_via · verified_by · produces · described_by · same_as.

---

## Test 1 — Maschinenverordnung (EU) 2023/1230

| Modell-Klasse | MaschVO-Inhalt |
|---|---|
| Legal Obligation (CORE) | `hazard_minimization` (Sicherheits-Analogon zu attack_surface_minimization), `safe_control_systems`, `machine_risk_assessment`, `ce_conformity`, `instructions_for_use` — exakt die `machine_*`-Obligations, die die Reasoning-Session bereits unabhängig geprägt hat. |
| Capability | **physische Sicherheitsfunktionen**: `emergency_stop`, `safety_interlock`, `two_hand_control`, `guarding`, `safe_torque_off`. → die **Capability-Klasse generalisiert von Cyber auf physische Safety** (gleiche Klasse, andere Domäne). |
| Procedure | Risikobeurteilung (ISO 12100), CE-Konformitätsbewertung. |
| Evidence | Technische Unterlagen, Risikobeurteilungsbericht, Konformitätserklärung. |

**Stress-Punkt:** „**Hazard**" (mechanisch/elektrisch/thermisch) = Schadensquelle — weder Obligation
noch Capability. Kandidat für eine neue Klasse? → **Nein, für die Repräsentation:** ein Hazard ist
ein *Risiko-Treiber* (Attribut/Applicability der Risikobeurteilungs-Procedure); eine Capability
*mitigiert* einen Hazard, genau wie eine Cyber-Capability eine (implizite) Bedrohung kontert. `PL/SIL`
= Attribut (wie `tier`). **Hazard wird erst dann eine Klasse, wenn ihr quantitatives FMEA-Risiko als
First-Class-Graph-Knoten wollt** (vgl. [[project-fmea-safety-direction]]) — nicht für Compliance-Abbildung.

**Verdikt: KEINE neue Klasse.** (Stärkstes Ergebnis: die Capability-Klasse trägt von Cyber zu Safety.)

---

## Test 2 — Data Act (EU) 2023/2854

| Modell-Klasse | Data-Act-Inhalt |
|---|---|
| Legal Obligation | `data_act_data_access_by_design`, `data_act_user_data_access`, `data_portability_switching`, `fair_contract_terms` (FRAND), `interoperability` — deckt sich mit den `data_act_*`-Obligations der Reasoning-Session. |
| Capability | `data_export_api`, `interoperability_interface`, `access_control` (**Reuse**). ABER: `fair_contract_terms` hat **KEINE technische Capability**. |
| Procedure | FRAND-Klauseln entwerfen; Switching-Prozess. |
| Evidence | Vertrag/Klauselwerk, API-Doku. |

**Stress-Punkt:** **vertraglich-rechtliche Pflichten** (FRAND, Verbot unfairer Klauseln) haben kein
technisches Mittel. → Beleg, dass **`realized_by Capability` OPTIONAL ist**: manche Obligations werden
rein über **Procedure (Entwurf) + Evidence (Vertrag)** erfüllt. Das ist KEINE neue Klasse — wir haben
es schon gesehen (SBOM-Familie war Evidence-/Procedure-lastig, kaum Capability).

**Verdikt: KEINE neue Klasse.** Verfeinerung: Capability ist optional (Obligation → Procedure → Evidence
ohne Capability ist gültig).

---

## Test 3 — AI Act (EU) 2024/1689

| Modell-Klasse | AI-Act-Inhalt |
|---|---|
| Legal Obligation | `ai_risk_management_system`, `ai_data_governance`, `ai_technical_documentation`, `ai_transparency_disclosure`, `human_oversight`, `accuracy_robustness`, `fundamental_rights_assessment`. |
| Capability | `event_logging` (**Reuse**!), `bias_detection`, `accuracy_testing`, `human_oversight_mechanism`, `ai_transparency_notice`. |
| Procedure | Risikomanagement-Prozess; FRIA-Durchführung; Human-Oversight-Prozess. |
| Evidence | Technische Dokumentation, FRIA-Bericht, Logs. |

**Stress-Punkt:** **Risiko-Klassifikation** (unacceptable/high/limited/minimal) bestimmt, WELCHE
Obligations gelten. → das ist **Applicability** (existiert bereits; analog zu CRA-Produktklasse).
`human_oversight` = Procedure + Capability (Oversight-UI). `transparency` = Disclosure (Capability/Evidence,
wie Cookie/DSE-Offenlegung). `FRIA` = Procedure + Evidence.

**Verdikt: KEINE neue Klasse.** Verfeinerung: Risiko-Tier = Applicability-Attribut (vorhanden).

---

## Test 4 — NIS2 (EU) 2022/2555

| Modell-Klasse | NIS2-Inhalt |
|---|---|
| Legal Obligation | `nis2_risk_management_measures`, `nis2_incident_reporting`, `supply_chain_security`, `governance_accountability`, `business_continuity`. |
| Capability | **MFA, transport_encryption, security_monitoring_alerting, patch/update, backup** — **dieselben Capabilities wie CRA**. Das ist die Auszahlung: NIS2-Obligations `realized_by` die bereits gebaute Capability-Schicht. |
| Procedure | Incident-Response-Prozess; Lieferketten-Audit; Governance-Prozess. |
| Evidence | Incident-Reports, Audit-Logs, Vorstandsprotokolle. |

**Stress-Punkt:** **Meldefristen** (24h/72h/1 Monat) = zeitgebundene Procedure → `deadline` = Attribut.
`governance_accountability` (Management-Haftung) = organisatorische Obligation → Procedure + Evidence.

**Verdikt: KEINE neue Klasse.** Stärkster Reuse-Fall (teilt die CRA-Capability-Schicht vollständig).

---

## Ergebnis: 4 × NEIN → das Metamodell steht

Alle vier Regulierungen passen in die 6 Klassen **ohne neue Objektklasse** — unter zwei
Verfeinerungen, die der Test selbst aufdeckt (beide sind KEINE neuen Klassen):

1. **`realized_by Capability` ist OPTIONAL.** Vertraglich/dokumentarisch/prozessuale Obligations
   (Data-Act-FRAND, NIS2-Governance, AI-Act-FRIA) werden rein über Procedure + Evidence erfüllt.
2. **Risiko-Niveau / Frist / Hazard-Schwere / Risiko-Tier sind ATTRIBUTE**, keine Klassen
   (`tier`-Muster: `deadline`, `risk_level`, `severity`, `risk_tier`).

**Der einzige Watch-Point:** **Hazard / Threat.** Heute implizit (Obligations existieren, um sie zu
kontern). Eine eigene Klasse wird *erst* nötig, wenn ihr **quantitatives Risiko first-class** modelliert
(FMEA: Hazard→Risiko→Maßnahme als Graph-Knoten). Für die reine Compliance-Abbildung: nicht nötig.
→ Das ist die präzise Antwort auf „wo wäre erstmals eine neue Klasse nötig?".

## Empirische Stütze (nicht nur Theorie)

Die 3. Session (Reasoning Engine) hat **unabhängig** `proposed=True`-Obligations für MaschVO
(`machine_*`) und Data Act (`data_act_*`) geprägt — und brauchte dafür **keine neue Objektklasse**,
nur Obligation-IDs. Zwei Sessions kommen unabhängig zum selben Schluss.

## Konsequenz für die Reasoning-Schicht (Produktvision)

Heute: `Product → Applicable Regulations → Applicable Obligations`.
Mit der Capability-Schicht wird daraus:
```
Applicable Capabilities → Required Procedures → Expected Evidence
```
Antwort auf die Kundenaussage „Ich habe X umgesetzt" ist dann nicht „CRA Artikel …", sondern:
```
✓ Capability A   ✓ Capability B   ✗ Capability C
   ↓
erfüllt CRA, MaschVO, NIS2  (teilweise)
```
Eine Capability erfüllt Obligations über *mehrere Regulierungen* (n:m) → eine Umsetzung wird gegen
das gesamte Regelwerk bewertet. Das ist qualitativ ein anderes Produkt als RAG.

## Entscheidung / nächster Schritt

Wenn dieses Dokument akzeptiert ist („keine weitere Klasse nötig"), verschiebt sich die Arbeit von
**Architektur** zu **Wissensaufbau**: jede neue Regulierung läuft durch
`Parser → Discovery-Pipeline → Review → Registry` (vorhandene Tooling), statt das Modell zu ändern.
Offen für den User: (a) Metamodell als stabil einfrieren? (b) den Hazard/Threat-Watch-Point als
bewusste Nicht-Klasse dokumentieren (bis FMEA-Quantifizierung)? (c) dann erste Regulierung als DATEN.

## Bewusst NICHT in diesem Schritt

Kein Code, keine Regulierung ingestiert, keine neue Klasse angelegt. Reiner Modell-Stresstest.
