Files
breakpilot-compliance/docs-src/development/verification_method.md
T
Benjamin_Boenisch 38a347a82a
CI / detect-changes (push) Successful in 7s
CI / branch-name (push) Has been skipped
CI / guardrail-integrity (push) Has been skipped
CI / secret-scan (push) Has been skipped
CI / dep-audit (push) Has been skipped
CI / sbom-scan (push) Has been skipped
CI / build-sha-integrity (push) Successful in 9s
CI / validate-canonical-controls (push) Successful in 12s
CI / loc-budget (push) Successful in 24s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / nodejs-build (push) Successful in 3m11s
CI / test-go (push) Has been skipped
CI / iace-gt-coverage (push) Has been skipped
CI / test-python-backend (push) Successful in 24s
CI / test-python-document-crawler (push) Has been skipped
CI / test-python-dsms-gateway (push) Has been skipped
feat(platform): live-wire AGB v2 + DSE v3 + Architektur-Tab (#29)
AGB v2 (decision_method routing, 71%FP->~0) + DSE v3 (4-layer, recovered from container) + Architektur-Tab into /sdk/agent live path. Incl CI robustness (detect-changes.sh + PR-head checkout) + security (hardcoded Qdrant key removed, gitleaks allowlist).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-21 12:58:26 +00:00

4.7 KiB

verification_method — die Prüfer-Routing-Achse

Status: Architektur-Achse (2026-06-19), abgeleitet aus der 3-Modul-Kalibrierung (DSE / Cookie / Impressum). Kernsatz: Nicht jede Compliance-Pflicht ist ein Textproblem. verification_method sagt einem Control, welcher Prüfer zuständig ist — damit nicht alles am LLM hängt.

1. Warum diese Achse existiert

Die Kalibrierung von drei strukturell verschiedenen Dokumentklassen zeigte drei verschiedene dominante Fehlerursachen — und alle ließen sich auf die Wahl des falschen Prüfers zurückführen:

  • DSE (Prosa): LLM-Urteil zu streng → Kriterien-Kalibrierung. Prüfer war richtig (LLM), Kriterien falsch.
  • Cookie (Banner ≠ Richtlinie): Controls am falschen Artefakt geprüft → artifact_type-Re-Route.
  • Impressum (Faktendokument): LLM verfehlt Felder, die dastehen (Adresse, HRB) → deterministischer Feld-Matcher schlägt den LLM. Und 5 Controls waren gar nicht im Text beweisbar (Erreichbarkeit/Verfügbarkeit) → gehören an Playwright, nicht an den Text-Check.

Regel: Was im Text nicht beweisbar ist, gehört nicht in den Text-Check. Sobald die Klassen sauber getrennt sind, sinken die False Positives fast automatisch (Beleg Impressum: SCOPE+JUDGE 171 Roh-FP → Text-Check-FP 0).

2. Die fünf Klassen

verification_method Prüfer Leitfrage Beispiel Reifegrad
CONTENT Embedding-Recall + LLM-Kaskade (OVH→Claude) Was steht da? DSE nennt Verarbeitungszwecke; Cookie-Richtlinie DSE/Cookie kalibriert
FIELD Regex / Parser (Feldmatrix) Welche Felder existieren + sind valide? HRB, USt-IdNr, Anschrift, E-Mail+Telefon Impressum-Fakten ✓ (FP 0 %)
PRESENTATION Playwright (Rendering-Sensor) Ist es auffindbar / wahrnehmbar / erreichbar? Impressum „leicht erkennbar", ständig verfügbar, Footer nicht verdeckt Re-Route gemacht, Checker offen
BEHAVIOR Playwright + API (Interaktion) Manipuliert die UI die Entscheidung? Reject = Accept, Cookies VOR Consent, Dark Pattern Cookie-Banner-Matrix vorhanden
PROCESS Audit / Nachweis Gibt es einen internen Nachweis? VVT, interne Richtlinie, Audit-Entscheidung Org-Checkliste

3. PRESENTATION ≠ BEHAVIOR

Beide nutzen Playwright, prüfen aber verschiedene Rechtslogik — getrennt halten:

  • PRESENTATION = Auffindbarkeit / Sichtbarkeit / Zugänglichkeit. Beispiel: Impressum-Link erreichbar, nicht in 4px-Schrift, nicht hinter display:none, nicht dauerhaft vom Cookie-Layer verdeckt.
  • BEHAVIOR = Entscheidungs-Manipulation / Dark-Pattern. Beispiel: „Ablehnen" versteckt, Vorauswahl gesetzt, Consent technisch ignoriert.

4. Playwright als Compliance-Sensor (nicht Crawler)

Playwright prüft, was kein LLM kann: Der LLM sieht <a href="/impressum"> und urteilt „erfüllt"; der Sensor sieht, dass das Element verdeckt / unsichtbar / unerreichbar ist und urteilt „nicht erfüllt". Drei technische Prüfer langfristig:

  • Content-Checker → LLM (CONTENT)
  • Structure-Checker → Regex/Parser (FIELD)
  • Presentation-Checker → Playwright (PRESENTATION + BEHAVIOR)

5. Schema-Status & Verortung

  • canonical_controls.verification_method existiert, aber nur ~4 % befüllt und mit anderer, gröberer Taxonomie (document / code_review / tool / hybrid — generische Enterprise-Verifikation, nicht das Doc-Check-Routing).
  • doc_check_controls hat keine verification_method-Spalte.
  • → Die hier definierte Doc-Check-Routing-Achse ist neu, aber ableitbar aus den schon vorhandenen control_classification-Achsen (artifact_type / obligation_type / check_intent). Kein Schema-Eingriff nötig (DB ist eingefroren) — als abgeleitetes Tag in control_classification führen.

Heuristik für die Ableitung (Startpunkt, nicht final):

Signal → verification_method
artifact_type = COOKIE_BANNER, Interaktionspflicht BEHAVIOR
Pflicht zu Erreichbarkeit / Sichtbarkeit / „ständig verfügbar" PRESENTATION
Faktenfeld (Anschrift, Register, Kennung) FIELD
obligation_type Prozess / Nachweis ohne Außenwirkung PROCESS
sonst (inhaltliche Offenlegung in Prosa) CONTENT

6. Warum das über die 3 Module hinaus zählt

Für die nächsten Module (CRA, Maschinenverordnung, NIS2, TISAX, ISO 27001) ist diese Achse vermutlich fast so wichtig wie artifact_type: viele dieser Pflichten sind PROCESS oder BEHAVIOR, kein Textinhalt. Wer sie an den LLM-Text-Check hängt, erzeugt systematische False Positives. Das ist die eigentliche Erkenntnis der Kalibrierung: nicht dass DSE/Cookie/Impressum funktionieren, sondern dass klar wurde, welcher Prüfer für welche Art von Pflicht zuständig ist.