Files
breakpilot-compliance/zeroclaw/docs/ground-truth-ihk-konstanz.md
T
Benjamin Admin fa4fd87102
Build + Deploy / build-admin-compliance (push) Successful in 9s
Build + Deploy / build-backend-compliance (push) Successful in 8s
Build + Deploy / build-ai-sdk (push) Successful in 42s
Build + Deploy / build-developer-portal (push) Successful in 8s
Build + Deploy / build-tts (push) Successful in 7s
Build + Deploy / build-document-crawler (push) Successful in 7s
Build + Deploy / build-dsms-gateway (push) Successful in 8s
Build + Deploy / build-dsms-node (push) Successful in 8s
CI / branch-name (push) Has been skipped
CI / guardrail-integrity (push) Has been skipped
CI / loc-budget (push) Failing after 18s
CI / secret-scan (push) Has been skipped
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 2m57s
CI / dep-audit (push) Has been skipped
CI / sbom-scan (push) Has been skipped
CI / test-go (push) Failing after 49s
CI / test-python-backend (push) Successful in 42s
CI / test-python-document-crawler (push) Successful in 28s
CI / test-python-dsms-gateway (push) Successful in 23s
CI / validate-canonical-controls (push) Successful in 15s
Build + Deploy / trigger-orca (push) Successful in 2m24s
fix: 7 regex bugs from IHK Konstanz ground truth analysis
Fixes based on manual verification of all 30 failed checks:
1. Cookie table: recognize "folgende cookies" + column headers as text
2. Cookie names: add JSESSIONID, cookieinfo, et_id, BT_* patterns
3. Essential justified: match "sitzung zuordnen", "betrieb der website"
4. Social bookmarks: recognize as 2-click alternative
5. DSFA plural: "kanaelen" now matches alongside "kanal"
6. Section splitter: skip-headings no longer lose subsequent text
   (Risikoabwaegung section was cut from DSFA, losing risk scores)
7. Cookie legal basis: accept Art. 6(1)(f) in cookie context

Reduces false positives from 7 to ~1-2 for IHK Konstanz test case.
Ground truth table: zeroclaw/docs/ground-truth-ihk-konstanz.md

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-07 14:51:09 +02:00

15 KiB

Ground Truth: IHK Konstanz DSI-Pruefung

URL: https://www.ihk.de/konstanz/servicemarken/ueber-uns/downloads/datenschutzinformationen-zum-internetangebot-4163288 Datum: 2026-05-07 Text: 6353 Woerter, 50000 Zeichen


1. DSI Hauptdokument (Art. 13 DSGVO)

L1 Checks (9/9 bestanden)

Check Tool-Ergebnis Korrekt? Beleg im Text
Verantwortlicher PASS Ja Z.17-23: "Name und Kontaktdaten des Verantwortlichen — IHK Hochrhein Bodensee, Reichenaustr. 21, D-78467 Konstanz"
DSB PASS Ja Z.36-44: "Kontaktdaten der/des behoerdlichen Datenschutzbeauftragten — SuedWest Datenschutz"
Zwecke PASS Ja Z.49: "Zweck und Rechtsgrundlage der Verarbeitung"
Rechtsgrundlage PASS Ja Z.72: "Art. 6 Abs. 1 f) DSGVO", Z.112: "Art. 6 Abs.1 lit.b)", Z.138: "Art. 6 Abs. 1 lit. a)"
Empfaenger PASS Ja Z.118-123: "personenbezogenen Daten werden uebermittelt an: Buchhaltung, Dritte, Auftragsverarbeiter"
Drittlandtransfer PASS Ja Z.369: "Google verarbeitet Ihre personenbezogenen Daten auch in den USA"
Speicherdauer PASS Ja Z.81: "nach spaetestens 7 Tagen", Z.126: "nach zehn Jahren"
Betroffenenrechte PASS Ja Z.395: "Art. 15, Art. 16, Art. 17, Art. 18, Art. 20, Art. 77"
Beschwerderecht PASS Ja Z.11: "Landesdatenschutzgesetz Baden-Wuerttemberg"

Bewertung L1: 9/9 — alle korrekt

L2 Checks (18/22 bestanden)

Check Tool Korrekt? Begruendung
Anschrift (PLZ+Ort) PASS Ja Z.21: "D-78467 Konstanz"
E-Mail Verantwortlicher PASS Ja Z.22: "info@konstanz.ihk.de"
Telefon Verantwortlicher PASS Ja Z.23: "+49(0)7531-2860-100"
DSB Kontakt PASS Ja Z.44: "datenschutz@konstanz.ihk.de"
Konkrete Zwecke PASS Ja Z.101-108: Kontaktaufnahme, Newsletter, Veranstaltungen, Beratung, Ausbildung
Art. 6(1)(a) Einwilligung PASS Ja Z.138: "Art. 6 Abs. 1 lit. a) DSGVO"
Art. 6(1)(b) Vertrag PASS Ja Z.112: "Art. 6 Abs.1 lit.b)"
Art. 6(1)(f) Berecht. Interesse PASS Ja Z.72: "Art. 6 Abs. 1 f) DSGVO"
Interessenabwaegung FAIL Teilweise korrekt Z.72: "In den uebrigen genannten Zwecken liegt auch unser berechtigtes Interesse" — es wird das Interesse BENANNT, aber keine explizite ABWAEGUNG dokumentiert. Die IHK nennt ihr Interesse, dokumentiert aber nicht warum es ueberwiegt. Finding ist inhaltlich korrekt, aber Hint sollte praeziser sein.
Empfaenger-Kategorien PASS Ja Z.123: "Scandienstleister, Hoster und sonstige IT-Dienstleister sowie externe Administratoren"
Auftragsverarbeiter PASS Ja Z.123: "Auftragsverarbeiter, die mit der Organisation beauftragt wurden"
Transfermechanismus FAIL Korrekt Z.369 erwaehnt "EU-US Privacy Shield" — aber Privacy Shield ist seit 2020 ungueltig (Schrems II). Es wird KEIN gueltiger Mechanismus (SCC oder DPF) genannt. True Positive. Hint korrekt.
Konkrete Zeitangaben PASS Ja Z.81: "7 Tagen", Z.126: "zehn Jahren", Z.345: "90 Tagen"
Loeschkonzept FAIL Teilweise korrekt Z.78: "Daten werden geloescht, sobald sie fuer die Erreichung des Zweckes nicht mehr erforderlich sind" — das ist ein Loeschgrundsatz, aber kein formales Loeschkonzept. Z.126 nennt Fristen. Kein Verweis auf internes Loeschkonzept. Grenzfall — Finding akzeptabel, Hint passt.
Art. 15 Auskunft PASS Ja Z.395: "Auskunftsrecht gem. Art. 15 DSGVO"
Art. 16 Berichtigung PASS Ja Z.395: "Recht auf Berichtigung gem. Art. 16 DSGVO"
Art. 17 Loeschung PASS Ja Z.395: "Recht auf Loeschung gem. Art. 17 DSGVO"
Art. 18 Einschraenkung PASS Ja Z.395: "Recht auf Einschraenkung der Verarbeitung gem. Art. 18 DSGVO"
Art. 20 Portabilitaet PASS Ja Z.395: "Recht auf Datenuebertragbarkeit gem. Art. 20 DSGVO"
Art. 21 Widerspruch PASS Ja Z.366: "Ihnen steht ein Widerspruchsrecht zu"
Art. 22 Profiling FAIL Korrekt Kein Hinweis auf Art. 22 im gesamten DSI-Text. Es wird weder Profiling erwaehnt noch explizit ausgeschlossen. True Positive. Hint korrekt — empfiehlt "Es findet keine automatisierte Entscheidungsfindung statt."
Aufsichtsbehoerde benannt PASS Ja Z.11: "Landesdatenschutzgesetz Baden-Wuerttemberg" — implizit LfDI BW.

Bewertung L2: 18/22 korrekt. 4 Fails, davon 3 True Positives, 1 Grenzfall (Loeschkonzept).


L1 Checks (5/6)

Check Tool Korrekt? Begruendung
Arten der Cookies PASS Ja Z.161: "transiente Cookies, persistente Cookies, Third-Party Cookies"
Zwecke der Cookies PASS Ja Z.158: "Cookies ein, um unsere Website nutzerfreundlicher zu gestalten"
Speicherdauer PASS Ja Z.164-165: "Session-Cookies werden geloescht", Tabelle mit Speicherdauern
Drittanbieter PASS Ja Z.161: "Third-Party Cookies (von Drittanbietern)"
Widerspruch PASS Ja Z.166: "Browser-Einstellung entsprechend Ihren Wuenschen konfigurieren"
Cookie-Tabelle FAIL FALSE POSITIVE Z.170-289: Es gibt eine vollstaendige Cookie-Tabelle mit Spalten "Typen, Name, Funktion, Speicherdauer"! Die Regex erkennt sie nicht weil das Format (Zeilenumbrueche statt Pipe-Trennzeichen) nicht matched. Bug im Regex — False Positive.

L2 Checks (2/9)

Check Tool Korrekt? Begruendung
Cookie-Namen FAIL FALSE POSITIVE Z.198-282: Tabelle listet konkret: Cookieinfo_click, JSESSIONID, SHOPHK_Sessio, IHK24_PROD-xxxxx, Cntcookie, et_id, BT_ctst, BT_pdc, BT_sdc, noWS, isSdEnabl. Regex sucht _ga/_gid/PHPSESSID — keine IHK-spezifischen Namen. Bug: Regex zu spezifisch.
Essential begruendet FAIL FALSE POSITIVE Z.164: "Session-Cookies... gemeinsamen Sitzung zuordnen", Z.198-200: "Das Cookie steuert die Anzeige des Hinweises zur Cookie-Nutzung". Essentiell-Cookies sind begruendet. Regex matcht nicht weil "technisch erforderlich" nicht woertlich vorkommt.
Anbieter benannt FAIL Korrekt eTracker wird erwaehnt (Z.311ff), aber nicht direkt in der Cookie-Sektion selbst als Anbieter pro Cookie. True Positive — Anbieter fehlen in der Tabelle.
Analytics benannt FAIL Teilweise FP eTracker wird in Z.311-348 ausfuehrlich beschrieben! Aber Regex sucht "google analytics
Marketing benannt FAIL Korrekt Keine Marketing-Tools (Meta Pixel, Google Ads etc.) erwaehnt. True Positive.
Speicherdauern PASS Ja Z.199: "1 Jahr", Z.205: "nach Schliessen Ihres Browsers", Z.219: "< 12 Stunden"
Rechtsgrundlage FAIL FALSE POSITIVE Z.294: "Rechtsgrundlage des Art. 6 Abs. 1 lit. f DSGVO" — steht direkt nach der Cookie-Tabelle! Aber §25 TDDDG fehlt (veraltet, TDDDG gab es bei Erstellung noch nicht). Grenzfall — Art. 6 ist da, TDDDG fehlt.
Consent-Tool FAIL Korrekt Kein Cookie-Banner oder Consent-Management-Tool erwaehnt. True Positive.
Browser-Einstellungen PASS Ja Z.166: "Browser-Einstellung entsprechend Ihren Wuenschen konfigurieren"

Bewertung Cookies: 3 False Positives (Cookie-Tabelle, Cookie-Namen, Essential begruendet), 2 Grenzfaelle, 2 True Positives.


3. Social Media Sektion

L1 Checks (8/10)

Check Tool Korrekt? Begruendung
Gemeinsam Verantwortliche PASS Ja Z.395: "gemeinsam mit dem Betreiber... im Sinne des Art. 26 DSGVO verantwortlich"
Vereinbarung Art. 26 FAIL Korrekt Keine konkrete Vereinbarung (Page Controller Addendum etc.) erwaehnt. True Positive.
Anlaufstelle PASS Ja Z.395: "koennen Sie grundsaetzlich sowohl gegenueber uns als auch gegenueber dem Betreiber... geltend machen"
Verarbeitungsaufteilung PASS Ja Z.389-395: beschreibt wer was verarbeitet
Datenkategorien PASS Ja Z.392: "Verarbeitung Ihrer personenbezogenen Daten"
Plattformen PASS Ja Z.423: "Facebook, LinkedIn, Instagram, Youtube"
Drittlandtransfer PASS Ja Z.401: "Risiken durch die Verarbeitung in sog. Drittstaaten"
Rechtsgrundlage FAIL Korrekt Kein Art. 6 in der Social-Media-Sektion. True Positive.
Betroffenenrechte PASS Ja Z.395: "Art. 15, Art. 16, Art. 17, Art. 18, Art. 20"
Social Bookmarks PASS Ja Z.404: "Es werden keine Social Media Plugins gesetzt, sondern sogenannte Social Bookmarks"

L2 Checks (1/7)

Check Tool Korrekt? Begruendung
Facebook/Meta benannt FAIL Teilweise FP Z.389: "Facebook" wird erwaehnt, aber nicht als "Meta Platforms Ireland Limited". Regex sucht "meta platforms" oder "facebook ireland". Grenzfall — Facebook wird genannt, aber nicht mit offizieller Firmenbezeichnung.
Kontakt beide PASS Ja Z.395: "sowohl gegenueber uns als auch gegenueber dem Betreiber"
Plattform-DSE-Links FAIL Korrekt Keine Links zu den Datenschutzerklaerungen der Social-Media-Plattformen in dieser Sektion. True Positive.
SCC fuer US-Transfer FAIL Korrekt Keine SCC erwaehnt. True Positive.
DPF fuer US-Transfer FAIL Korrekt Kein Data Privacy Framework erwaehnt. True Positive.
Opt-Out Social FAIL Korrekt Keine konkrete Opt-Out-Moeglichkeit fuer Social-Media-Tracking. True Positive.
2-Klick-Loesung FAIL Teilweise FP Z.404: "Es werden keine Social Media Plugins gesetzt, sondern sogenannte Social Bookmarks" — das IST die datenschutzfreundliche Technik. Regex sucht "zwei klick

Bewertung Social Media: 1 False Positive (2-Klick), 1 Grenzfall (Meta-Name), 5 True Positives.


4. DSFA Sektion

L1 Checks (5/8)

Check Tool Korrekt? Begruendung
Schwellwertanalyse PASS Ja Z.757: "Art. 35 Abs. 1 der Europaeischen Datenschutzgrundverordnung"
Beschreibung PASS Ja Z.760: "Social Media-Angebot... besteht aus den Kanaelen Facebook, Twitter, Xing, LinkedIn, Instagram, YouTube"
Notwendigkeit PASS Ja Z.760: "nur sehr geringen Umfangs der eigenen Datenverarbeitung"
Risikobewertung PASS Ja Z.818-821: "Risikobewertung... Kriterien der Schadensschwere und der Eintrittswahrscheinlichkeit... gering bis mittel"
Abhilfemassnahmen FAIL Teilweise FP Z.775-778: "Aufklaerung ueber die jeweilige Datenschutzerklaerung", Z.827-830: "verschiedene Einstellungen... Browserverlauf loeschen, Cookies deaktivieren, Standortfreigabe", Z.830: "redaktionelle Betreuung ein Eingreifen". Es GIBT Massnahmen, aber keine klassischen TOMs (Verschluesselung etc.). Grenzfall — Massnahmen sind da, aber nicht als TOM formuliert.
LfDI-Richtlinie PASS Ja Z.757: "Richtlinie des Landes-Datenschutzbeauftragten (LfDI)"
Einbeziehung DSB FAIL Korrekt Kein Hinweis auf Beteiligung/Konsultation des DSB bei der DSFA. True Positive.
Dokumentation FAIL Teilweise FP Z.832-834: "4.) Ergebnis:" — das IST die Dokumentation des Ergebnisses! Regex sucht "dokument

L2 Checks (0/4)

Check Tool Korrekt? Begruendung
Verarbeitungsvorgang benannt FAIL Teilweise FP Z.760: "Social Media-Angebot der IHK Hochrhein-Bodensee besteht aus den Kanaelen Facebook, Twitter, Xing, LinkedIn, Instagram, YouTube" — DAS ist der Verarbeitungsvorgang. Regex sucht "betrieb
Rechtsgrundlage DSFA FAIL Korrekt Keine Rechtsgrundlage (Art. 6) in der DSFA-Sektion. True Positive.
Eintrittswahrscheinlichkeit FAIL FALSE POSITIVE Z.820: "Eintrittswahrscheinlichkeit" steht woertlich im Text! Aber die DSFA-Sektion wird als separates Sub-Dokument geprueft. Der Text ist vermutlich beim Section-Split abgeschnitten. Bug: Section-Split schneidet zu frueh ab, oder Regex-Match scheitert an Kontext.
Schwere bewertet FAIL FALSE POSITIVE Z.820: "Schadensschwere und der Eintrittswahrscheinlichkeit" + Z.821: "gering bis mittel". Gleicher Bug wie oben — Text ist da, wird nicht gefunden.

Bewertung DSFA: 2 False Positives (Wahrscheinlichkeit + Schwere), 2 Grenzfaelle, 1 True Positive, 1 Regex-Bug (Plural).


Zusammenfassung

Gesamtstatistik

Kategorie Anzahl Anteil
Korrekte True Positives (echt fehlend) 15 50%
Korrekte True Negatives (echt bestanden) ~95
False Positives (faelschlich als fehlend) 7 23%
Grenzfaelle (argumentierbar) 8 27%
False Negatives (faelschlich bestanden) 0 0%

Regex-Bugs die gefixt werden muessen

Bug Datei Problem Fix
Cookie-Tabelle nicht erkannt cookie_checks.py Format mit Zeilenumbruechen statt Pipe/Tab Regex auf "typen.*name.*funktion" oder aehnliches erweitern
Cookie-Namen zu spezifisch cookie_checks.py Nur _ga/_gid/PHPSESSID, nicht JSESSIONID/Cookieinfo Weitere gaengige Namen oder generisches Pattern
Essential-Begruendung cookie_checks.py "technisch erforderlich" zu streng Auch "fuer den Betrieb", "sitzung zuordnen" matchen
Social Bookmarks als 2-Klick social_media_checks.py "Social Bookmarks" nicht erkannt Pattern erweitern um "social bookmark"
DSFA Plural "Kanaelen" dsfa_checks.py "kanal" matcht nicht "kanaelen" `kanal
DSFA Section-Split agent_doc_check_routes.py Risikobewertung wird abgeschnitten Section-Split-Grenze pruefen
Cookie Rechtsgrundlage cookie_checks.py Art. 6(1)(f) ist da, aber Regex will §25 TDDDG Auch Art. 6 ohne TDDDG akzeptieren

Hints die angepasst werden sollten

Check Aktueller Hint Verbesserung
Interessenabwaegung "...muss dokumentiert werden warum Ihr Interesse ueberwiegt" Praeziser: "Bei Berufung auf Art. 6(1)(f) muss eine nachvollziehbare Abwaegung zwischen Ihrem Interesse und den Rechten der Betroffenen dokumentiert werden — nicht nur das Interesse selbst nennen."
Loeschkonzept "...Verweis auf internes Loeschkonzept" "Neben Speicherfristen sollte beschrieben werden, WIE Daten geloescht werden (Prozess, Automatisierung, Verantwortlichkeit) — nicht nur WANN."