fix: 5 regex bugs + text extraction scroll + GT update
Build + Deploy / build-admin-compliance (push) Successful in 13s
Build + Deploy / build-backend-compliance (push) Successful in 23s
Build + Deploy / build-ai-sdk (push) Successful in 13s
Build + Deploy / build-developer-portal (push) Successful in 14s
Build + Deploy / build-tts (push) Successful in 15s
Build + Deploy / build-document-crawler (push) Successful in 13s
Build + Deploy / build-dsms-gateway (push) Successful in 15s
Build + Deploy / build-dsms-node (push) Successful in 14s
CI / branch-name (push) Has been skipped
CI / guardrail-integrity (push) Has been skipped
CI / loc-budget (push) Failing after 15s
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 2m26s
CI / dep-audit (push) Has been skipped
CI / sbom-scan (push) Has been skipped
CI / test-go (push) Successful in 39s
CI / test-python-backend (push) Successful in 39s
CI / test-python-document-crawler (push) Successful in 25s
CI / test-python-dsms-gateway (push) Successful in 22s
CI / validate-canonical-controls (push) Successful in 15s
Build + Deploy / trigger-orca (push) Successful in 2m28s

Root cause: Spiegel DSI text was truncated (lazy-loading) — the
rights/DSB/complaints sections at the bottom were never extracted.

Fixes:
1. Text extraction: scroll to bottom before innerText (dsi_discovery.py)
2. V.i.S.d.P.: add "verantwortlicher i.s.v." + "§18 Abs. N MStV" pattern
3. USt-IdNr: add "umsatzsteuer-id" + "DE 212 442 423" (with spaces)
4. Profiler: remove generic "anwalt"/"praxis" (false positive on Spiegel
   "Redaktionsanwalt"), keep only "rechtsanwalt", "kanzlei" etc.
5. Section splitter: auto_fill_from_dsi() fills empty Cookie/Social-Media
   rows from sections found in the DSI text

Ground Truth 06-spiegel.md fully rewritten with verified data from
live website — 3 L1 False Negatives identified (DSB, Beschwerderecht,
Betroffenenrechte all present on website but not in extracted text).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-05-13 01:20:55 +02:00
parent 8bb90d73e5
commit c702260ec1
6 changed files with 194 additions and 78 deletions
+115 -65
View File
@@ -2,94 +2,128 @@
**URL:** https://www.spiegel.de
**Typ:** Medien / Nachrichtenportal
**Datum:** 2026-05-12
**Batch-Test:** 6/9 L1, 10/13 L2 (Mangelhaft, 77%)
**Datum:** 2026-05-13 (verifiziert gegen Live-Texte)
**Vorheriger Batch-Test:** 6/9 L1, 10/13 L2 — VERALTET, mehrere False Negatives
---
## Business Profile (erwartet)
| Feld | Erwarteter Wert |
|------|----------------|
| business_type | b2c |
| industry | media |
| has_online_shop | true (Abo-Shop, Spiegel+) |
| has_editorial_content | true (Kerngeschaeft) |
| is_regulated_profession | false |
| needs_odr | true (B2C Online-Abo) |
| Feld | Erwarteter Wert | Begruendung |
|------|----------------|-------------|
| business_type | b2c | Abo-Modell (Spiegel+) |
| industry | media | Nachrichtenportal |
| has_online_shop | true | Spiegel+ Abo-Shop |
| has_editorial_content | true | Kerngeschaeft |
| is_regulated_profession | **false** | Kein regulierter Beruf. "Anwalt" im Text ist Redaktionsanwalt, kein Kanzlei-Beruf |
| needs_odr | true | B2C mit Online-Abo |
**Bug:** Profiler erkennt "anwalt" im Impressum-Text und setzt is_regulated_profession=true. FALSE POSITIVE.
---
## Dokumente
| Dokumenttyp | Vorhanden | URL |
|-------------|-----------|-----|
| DSI | Ja | https://www.spiegel.de/datenschutz |
| Impressum | Ja | https://www.spiegel.de/impressum |
| Cookie-Richtlinie | Ja (ggf. in DSI) | — |
| AGB | Ja | https://www.spiegel.de/agb |
| Widerruf | Ja (in AGB) | — |
| Social Media DSE | Nein | — |
| Nutzungsbedingungen | In AGB | — |
| DSB-Kontakt | In DSI | — |
**Besonderheit:** Consent-Wall blockiert Zugang ohne Cookie-Zustimmung. Text-Extraktion kann scheitern.
| Dokumenttyp | Vorhanden | URL | Anmerkung |
|-------------|-----------|-----|-----------|
| DSI | Ja | https://www.spiegel.de/datenschutz-spiegel | 6461 Woerter, 11 Abschnitte, sehr ausfuehrlich |
| Impressum | Ja | https://www.spiegel.de/impressum | 2 Gesellschaften (DER SPIEGEL GmbH + SPIEGEL-Verlag) |
| Cookie-Richtlinie | In DSI Abschnitt 4 | #funktionsfaehigkeitdesangebots | Sourcepoint CMP |
| AGB | Ja | https://www.spiegel.de/agb | Abo-Bedingungen |
| Nutzungsbedingungen | Ja | https://www.spiegel.de/nutzungsbedingungen | Separates Dokument |
| Widerruf | In AGB Abschnitt 10 | https://www.spiegel.de/agb | "Widerrufsrecht fuer Abonnements" |
| Social Media DSE | In DSI Abschnitt 8 | #einbinden-von-drittinhalten | Facebook, YouTube, X, Instagram, TikTok, etc. |
| DSB-Kontakt | In DSI | — | dsb@spiegelgruppe.de |
---
## Erwartete Ergebnisse: DSI (Art. 13 DSGVO)
### L1 Checks (6/9)
### L1 Checks (ERWARTET: 9/9 PASS)
| Check | Erwartet | Begruendung |
|-------|----------|-------------|
| Verantwortlicher | PASS | SPIEGEL-Verlag |
| DSB | **FAIL** | **TP** — Kein DSB in der DSI erwaehnt |
| Zwecke | PASS | Aufgezaehlt |
| Rechtsgrundlage | PASS | Art. 6 |
| Empfaenger | PASS | Werbenetzwerke, Analytics |
| Drittlandtransfer | PASS | USA-Transfer |
| Speicherdauer | PASS | Angaben vorhanden |
| Betroffenenrechte | **FAIL** | **TP** — Rechte nicht explizit aufgezaehlt |
| Beschwerderecht | **FAIL** | **TP** — Art. 77 fehlt |
| Check | Erwartet | Beleg | Unser Ergebnis | Bug? |
|-------|----------|-------|----------------|------|
| Verantwortlicher | PASS | "DER SPIEGEL GmbH & Co. KG, Ericusspitze 1, 20459 Hamburg" | PASS (3/3) | — |
| DSB | **PASS** | "z. Hd. der Datenschutzbeauftragten... dsb@spiegelgruppe.de" | **FAIL** | **FN — Regex matcht "Datenschutzbeauftragte" nicht ohne "r" am Ende oder erkennt Kontext nicht** |
| Zwecke | PASS | Adobe-Tracking, Vertragsbeziehungen, Drittinhalte etc. | PASS | — |
| Rechtsgrundlage | PASS | Art. 6(1)(a), (b), (f) explizit | PASS (3/4) | — |
| Empfaenger | PASS | Server-/Applikationsbetreiber, Auftragsverarbeiter | PASS (2/2) | — |
| Drittlandtransfer | PASS | SCC erwaehnt | PASS (1/1) | — |
| Speicherdauer | PASS | "30 Tage" Protokolldatei | PASS (1/2) | — |
| Betroffenenrechte | **PASS** | Art. 15, 16, 17, 18, 21 explizit. Art. 20 fehlt. | **FAIL** | **FN — Regex verlangt alle 6 Artikel, 5/6 genuegen nicht** |
| Beschwerderecht | **PASS** | "Art. 77 DSGVO... HmbBfDI... Ludwig-Ehrhard-Str. 22" | **FAIL** | **FN — Regex findet Art. 77 + HmbBfDI nicht** |
**3 False Negatives in L1!** DSB, Betroffenenrechte, Beschwerderecht sind alle vorhanden.
### L2 Checks (Stichproben)
| Check | Erwartet | TP/FP |
|-------|----------|-------|
| E-Mail | PASS | — |
| Interessenabwaegung | **FAIL** | **TP** |
| Art. 22 Profiling | **FAIL** | **TP** — Personalisierte Werbung ohne Profiling-Hinweis |
| Aufsichtsbehoerde | **FAIL** | **TP** |
**Verifiziert: Spiegel DSI ist fuer ein grosses Medienunternehmen erstaunlich unvollstaendig.**
| Check | Erwartet | Beleg | Unser Ergebnis | Bug? |
|-------|----------|-------|----------------|------|
| E-Mail | PASS | datenschutz@spiegelgruppe.de | PASS | — |
| Interessenabwaegung | FAIL (TP) | Interesse benannt, keine Abwaegung | FAIL | Korrekt |
| Art. 20 Portabilitaet | FAIL (TP) | Art. 20 fehlt im Rechte-Abschnitt | — | Korrekter Finding |
| Loeschkonzept | FAIL (TP) | Kein formales Loeschkonzept | FAIL | Korrekt |
---
## Erwartete Ergebnisse: Impressum
## Erwartete Ergebnisse: Impressum (§5 TMG)
| Check | Erwartet | Begruendung |
|-------|----------|-------------|
| Firmenname | PASS | SPIEGEL-Verlag Rudolf Augstein GmbH & Co. KG |
| Anschrift | PASS | Ericusspitze 1, 20457 Hamburg |
| Vertretung | PASS | Geschaeftsfuehrer |
| V.i.S.d.P. | PASS | Pflicht bei Medienunternehmen, sollte vorhanden sein |
| Registergericht | PASS | AG Hamburg |
| USt-IdNr | PASS | Vorhanden |
| Streitbeilegung | AKTIV | B2C mit Online-Abo |
| Check | Erwartet | Beleg | Unser Ergebnis | Bug? |
|-------|----------|-------|----------------|------|
| Firmenname | PASS | DER SPIEGEL GmbH & Co. KG + SPIEGEL-Verlag | PASS | — |
| Anschrift | PASS | Ericusspitze 1, 20457 Hamburg | PASS | — |
| Kontakt | PASS | Tel. 040 3007-0, spiegel@spiegel.de | PASS | — |
| Register | PASS | HRA 123 261 + HRA 61 755 | PASS | — |
| USt-IdNr | **PASS** | DE 212 442 423 + DE 118 922 410 | **FAIL** | **FN — Regex findet "Umsatzsteuer-ID:" Format nicht** |
| Vertretung | PASS | Thomas Hass (Geschaeftsfuehrung) | PASS (1/1) | — |
| V.i.S.d.P. | **PASS** | "Verantwortlicher i. S. v. § 18 Abs. 2 MStV: Dirk Kurbjuweit" | **FAIL** | **FN — Regex sucht "v.i.s.d.p." nicht "verantwortlicher i.s.v."** |
| Streitbeilegung | PASS | ODR-Link vorhanden (in AGB) | PASS | — |
| Berufsrecht | **SKIP** | Spiegel ist kein regulierter Beruf | **AKTIV (1/3)** | **FP — Profiler "anwalt" Bug** |
---
## Erwartete Ergebnisse: AGB
| Check | Erwartet |
|-------|----------|
| Geltungsbereich | PASS |
| Vertragsschluss | PASS |
| Preise | PASS (Abo-Preise) |
| Kuendigungsrecht | PASS |
| Widerrufsrecht | PASS (14 Tage) |
| Haftungsbeschraenkung | PASS |
| Check | Erwartet | Beleg |
|-------|----------|-------|
| Geltungsbereich | PASS | Abschnitt 1 |
| Vertragsschluss | PASS | Abschnitt 2 |
| Preise/Zahlung | PASS | Abschnitte 4-7 |
| Kuendigung | PASS | Abschnitt 8 (1 Monat Frist) |
| Widerrufsrecht | PASS | Abschnitt 10 (14 Tage, Muster-Formular) |
| §312k Button | Zu pruefen | Kuendigungsbutton Pflicht seit 01.07.2022 |
| ODR-Link | PASS | http://ec.europa.eu/consumers/odr/ |
---
## Erwartete Ergebnisse: Widerrufsbelehrung (AGB §10)
| Check | Erwartet | Beleg |
|-------|----------|-------|
| Belehrung | PASS | "Sie haben das Recht, Abonnementvertraege binnen 14 Tagen ohne Angabe von Gruenden zu widerrufen" |
| 14-Tage-Frist | PASS | Explizit genannt |
| Form | PASS | Brief, E-Mail, Fax |
| Muster-Formular | PASS | "beigefuegte Muster-Widerrufsformular" erwaehnt |
| Folgen | PASS | Rueckerstattungsregeln beschrieben |
| Empfaenger | PASS | DER SPIEGEL Abonnentenservice, 20637 Hamburg; aboservice@spiegel.de |
| Ausnahme digitale Inhalte | PASS | "Fuer sofort nutzbare Zeitzugaenge... kein Widerrufsrecht" |
**Problem:** Unser Check prueft den DSI-Volltext gegen Widerruf-Checklist statt die AGB. Der Widerruf steht in den AGB (§10), nicht in der DSI.
---
## Erwartete Ergebnisse: Social Media (DSI Abschnitt 8)
| Check | Erwartet | Beleg |
|-------|----------|-------|
| Gemeinsam Verantwortliche | PASS | Erwaehnt |
| Meta konkret benannt | FAIL (TP) | Nur "Facebook" ohne "Meta Platforms Ireland Ltd." |
| Vereinbarung Art. 26 | FAIL (TP) | Kein Page Controller Addendum |
| Plattformen | PASS | Facebook, YouTube, X, Instagram, TikTok, Vimeo, Reddit, Bluesky, etc. |
| SCC | PASS | Erwaehnt |
| DPF | FAIL (TP) | Data Privacy Framework nicht erwaehnt |
| Rechtsgrundlage | PASS | Art. 6(1)(f) |
| Alle standardmaessig deaktiviert | PASS | "standardmaessig deaktiviert" |
---
@@ -98,17 +132,19 @@
| Feld | Erwartet |
|------|----------|
| banner_detected | true |
| provider | Sourcepoint oder TCF-basiert |
| violations | Mehrere (viel Third-Party-Tracking) |
| provider | Sourcepoint |
| tcf_enabled | true |
| Vendor-Anzahl | 40+ (grosses Medienunternehmen) |
| violations | Consent-Wall blockiert Zugang → moeglicherweise unzulaessig |
---
## Cross-Check Banner vs Cookie
## Cross-Check Banner vs DSI
| Finding | Erwartet |
|---------|----------|
| Dienste fehlen in Cookie-RL | Wahrscheinlich (viele Werbenetzwerke) |
| Tracking vor Consent | Moeglich |
| Vendors fehlen in DSI | Wahrscheinlich viele TCF-Vendors nicht in DSI dokumentiert |
| Tracking vor Consent | Unwahrscheinlich (Sourcepoint blockiert gut) |
---
@@ -119,3 +155,17 @@
| ODR | AKTIV | B2C Online-Abo |
| Widerruf | AKTIV | B2C |
| V.i.S.d.P. | AKTIV | Medienunternehmen (Kernpflicht) |
| Berufsrecht | **SKIP** | Kein regulierter Beruf |
---
## Identifizierte Regex-Bugs (aus diesem GT-Abgleich)
| # | Check | Bug | Beleg auf Website | Regex-Problem |
|---|-------|-----|-------------------|---------------|
| 1 | DSB | FN | "z. Hd. der Datenschutzbeauftragten... dsb@spiegelgruppe.de" | Regex matcht "Datenschutzbeauftragten" (Genitiv/Dativ) nicht |
| 2 | Beschwerderecht | FN | "Art. 77 DSGVO... HmbBfDI" | Regex findet "Art. 77" oder "Aufsichtsbehoerde" nicht im Spiegel-Text |
| 3 | Betroffenenrechte | FN | Art. 15, 16, 17, 18, 21 — nur Art. 20 fehlt | Regex verlangt ALLE 6, 5/6 ist nicht genug |
| 4 | V.i.S.d.P. | FN | "Verantwortlicher i. S. v. § 18 Abs. 2 MStV" | Regex sucht nur "v.i.s.d.p.", nicht die MStV-Formulierung |
| 5 | USt-IdNr | FN | "Umsatzsteuer-ID: DE 212 442 423" | Regex sucht "ust-idnr" oder "ust-id", matcht "umsatzsteuer-id:" nicht |
| 6 | Profiler "anwalt" | FP | Redaktionsanwalt im Impressum | "anwalt" zu generisch, matcht Personennamen/Rollen |