Friert das Kriterien-Meta-Modell ein: atomare getypte Kriterien mit drei Achsen (verification_method, decision_method, compliance_tier), 3-Status-Gating nur auf LEGAL_MINIMUM (ERFÜLLT/TEILWEISE/FEHLT), 3-Ebenen-Reporting und Grün/Blau/Rot-Semantik. Control-UUID bleibt stabil (kein physischer Split), Speicherung in generation_metadata jsonb (keine Schema-Änderung). Validiert am Pilot (6/6 Disagreements korrigiert, TEILWEISE empirisch bestätigt). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
7.5 KiB
Kriterien-Meta-Modell & Compliance-Tier-Architektur
Status: EINGEFROREN 2026-06-22. Änderungen an diesem Modell sind Architekturentscheidungen und erfordern eine bewusste Freigabe (DB-Owner / Produktverantwortung). Verwandt:
platform_checker_matrix.md,verification_method.md,platform_validation_v1.md.
1. Motivation
Die Kalibrierung der vier Website-Compliance-Module deckte vier verschiedene dominante Fehlerursachen auf:
| Modul | Dominanter Hebel |
|---|---|
| Cookie-Policy | Sufficiency (Judge) |
| Impressum | Scope / Routing |
| AGB | Decision-Method / Routing |
| DSE | Überladene Controls + Vermischung „gesetzliches Minimum vs. Best Practice" |
Die DSE-Untersuchung (Adjudikation von 13 Judge↔GT-Disagreements) ergab: 85 % der Restfehler sind Katalog-Defekte, 15 % Prüfer. Der größte Einzeldefekt: ein Control bündelt mehrere Anforderungen unterschiedlicher Verbindlichkeit und wird nur dann als ERFÜLLT gewertet, wenn alle erfüllt sind. Folge: gesetzlich konforme Dokumente werden als „FEHLT" gemeldet, weil eine Best-Practice-Empfehlung fehlt.
Dieses Modell behebt das im Katalog — ohne den Prüfer zu ändern und ohne Controls physisch aufzuspalten.
2. Datenmodell
Ein Control bleibt stabil (UUID, Citations, GT-Historie, Kalibrierung,
Statistiken). Seine pass_criteria werden von einer Stringliste zu atomaren,
getypten Kriterien-Objekten:
Control (stabile control_uuid — NICHT splitten)
└─ criteria: Criterion[]
Criterion
├─ criterion (Text der Einzelanforderung)
├─ legal_basis (z. B. "Art. 13(1)(c) DSGVO")
├─ verification_method (Achse 1 — WAS wird geprüft)
├─ decision_method (Achse 2 — WIE wird entschieden)
├─ compliance_tier (Achse 3 — WIE VERBINDLICH)
└─ weight (reserviert für Reifegrad, s. §6 — heute NICHT gating)
Speicherort: canonical_controls.generation_metadata->'tiered_criteria' (jsonb).
Keine Schema-Änderung. Kein physischer Control-Split (Variante A wurde verworfen:
neue UUIDs → Verlust von Benchmarks/Kalibrierung/Citation/GT = Migrationsprojekt).
3. Die drei Achsen
Jedes Kriterium trägt drei unabhängige Klassifikationen:
verification_method— artefakt-abhängig: CONTENT · FIELD · REFERENCE · BEHAVIOR · PRESENTATION · PROCESS · TECHNICAL · CONTRACTUAL. Sieheverification_method.md.decision_method— welcher Prüfer: REGEX · EMBEDDING · LLM · LINK_RESOLVER · PLAYWRIGHT · AUDIT · SCANNER. Sieheplatform_checker_matrix.md.compliance_tier(neu, dieses Dokument) — Verbindlichkeit:LEGAL_MINIMUM— gesetzlich erforderlich. Beeinflusst den Compliance-Status.BEST_PRACTICE— empfehlenswert, gesetzlich nicht erforderlich. Erscheint als Empfehlung. Beeinflusst den Status nie.OPTIONAL— Komfort/Detailtiefe. Empfehlung. Beeinflusst den Status nie.
Achse 1 + 2 sind primär per Kriterium (atomar); ein Control kann Kriterien verschiedener Methoden mischen.
4. Status-Berechnung (3 Zustände) — Gating NUR auf LEGAL_MINIMUM
Sei LM die Menge der LEGAL_MINIMUM-Kriterien eines Controls und met(LM) die
erfüllten darunter:
ERFÜLLT := |LM| > 0 und met(LM) == |LM| (alle Pflicht-Kriterien erfüllt)
TEILWEISE := 0 < met(LM) < |LM| (mind. eines erfüllt, mind. eines fehlt)
FEHLT := |LM| > 0 und met(LM) == 0 (kein Pflicht-Kriterium erfüllt)
BEST_PRACTICE/OPTIONAL-Kriterien gehen nicht in diese Berechnung ein. Sie
werden separat als Empfehlungen ausgewiesen (§5, Ebene 2).
Invariante: Ein erfülltes gesetzliches Minimum darf NIE durch fehlende Best-Practice-/Optional-Kriterien auf FEHLT/Rot gezogen werden.
5. Reporting — drei Ebenen
| Ebene | Inhalt | Quelle |
|---|---|---|
| 1 — Compliance-Status (rechtlich) | ERFÜLLT / TEILWEISE / FEHLT | NUR LEGAL_MINIMUM |
| 2 — Optimierungspotenzial | „Empfehlungen: N · Best-Practice-Abdeckung X %" | BEST_PRACTICE + OPTIONAL |
| 3 — Risiko-Reifegrad (optional, später) | „Reifegrad Y %" für CRA/NIS2/ISO 27001/TOM | gewichtet, s. §6 |
Anti-Pattern (verboten): kein „Compliance-Score = 72 %", wenn alle gesetzlichen Anforderungen erfüllt sind. Das erzeugt „welche 28 % fehlen?" → „eigentlich keine Pflicht" → der Score wird wertlos.
Farb-Semantik (Bedeutung, nicht Wertung)
- Grün = gesetzliche Anforderungen erfüllt (Pflicht erfüllt)
- Blau = empfohlene Verbesserungen vorhanden (Optimierung möglich)
- Rot = gesetzliche Anforderungen fehlen (Pflichtverletzung)
TEILWEISE ist visuell ein eigener Zustand (z. B. Gelb/Amber): Pflicht teilweise
erfüllt. Verbindet sich mit der BreakPilot-Tonalität (kein Panik-Rot) und dem
3-Tier-Obligation-Modell (Pflicht/Empfehlung/Kann).
6. weight
Wird heute gespeichert, aber nicht für das Gating verwendet (bewusste Entscheidung: Gewichte erzeugen sofort „warum 0.3 und nicht 0.4?"-Diskussionen). Es ist die Reserve für Ebene 3 (Reifegrad): später lässt sich daraus ein gewichteter Best-Practice-/Reifegrad-Prozentwert berechnen. Richtwerte: LEGAL_MINIMUM 1.0 · BEST_PRACTICE ~0.3 · OPTIONAL ~0.1.
7. compliance_tier ist eine PLATTFORM-Achse
Nicht nur ein DSE-Fix. Dasselbe Muster tritt überall auf — DSE (Minimum vs. BP),
Cookie (Offenlegung vs. Transparenz), Impressum (Pflicht- vs. Komfortfelder), AGB
(erforderlich vs. empfehlenswert) und perspektivisch CRA/NIS2/Maschinenverordnung.
Ein einzelnes Kriterium trägt überall compliance_tier; die Plattform wertet
Compliance / Empfehlungen / Reifegrad regulierungsunabhängig aus.
8. Validierungsnachweis (Pilot, 2026-06-22)
Geschrieben auf macmini (generation_metadata.tiered_criteria, prod-guarded), gemessen
gegen Opus-GT (ikea/ob/teamviewer):
- 5 Pilot-Controls (SEC-7285-A03, SEC-3257-A01, Portabilitäts-Cluster DATA-1613/DATA-2552/COMP-2087): alle 6 Disagreement-Fälle (vormals falsch-FEHLT) wandern zu ERFÜLLT + Empfehlungen; echte Lücken bleiben korrekt FEHLT — ohne Prüfer-Änderung.
- TEILWEISE-Validierung (DATA-1445-A02, SEC-4752-A02): der 3. Status tritt real auf (1 ERFÜLLT / 5 TEILWEISE), Splitter durchgängig „Speicherdauer pro Zweck" (Art. 13(2)(a)).
- Lehre: selbst Pilot-Kriterien können Minimum + Best-Practice vermischen („Speicherdauer pro Zweck"). Die LM/BP-Linie ist eine Produktpolitik-Entscheidung (Mensch), kein NLP-Problem. Das Modell ist korrekt; die Kriterien-Schärfe ist Kurationsarbeit.
9. Invarianten (nicht verletzen)
- Control-UUID bleibt stabil — kein physischer Split.
- Status (Grün/Gelb/Rot) hängt ausschließlich an
LEGAL_MINIMUM. BEST_PRACTICE/OPTIONALerzeugen Empfehlungen, nie einen FEHLT-Status.- Kein Prozent-Compliance-Score, wenn alle gesetzlichen Anforderungen erfüllt sind.
- Speicherung in
generation_metadata(jsonb) — keine Schema-Migration.
10. Rollout (nach diesem Freeze)
- 10–15 der schlimmsten überladenen DSE-Controls tiern (nicht alle 49 auf einmal).
- 3-Status-Logik in die Live-DSE-Engine verdrahten (heute nur Mess-Harness).
- Benchmark erneut: FP / FN / Precision / Recall + Status-Verteilung.
- Erst bei stabilem Effekt: Rollout auf alle 49 überladenen Controls.