# Multi-Site-Audit-Test mit Audit-Walk + GT-Vergleich (Stand 2026-06-07) ## TL;DR Engine-Run gegen 3 Real-World-Sites (Elli, Westfield Hamburg, Allianz- Reise-Chatbot) mit GT-Vergleich. Plus #7 (Playwright-Audit-Walk in 3 Stufen) komplett deployt: Video-Recording, Akkordeon-Expansion, DSMS-CID-Anchor. **Test-Status:** 21/21 grün (Sprint-Tests B9/B13/B14/B15/B16 + B17 + Elli-GT-Coverage). **B17 Audit-Walk live:** Video + walk.json werden für jede Site zu DSMS-IPFS hochgeladen — Reviewer können das Walk-Video Monate später verifizieren (CID = manipulationssicherer Anker). ## #7 Audit-Walk (3 Stufen, alle deployt) | Stufe | Inhalt | Commit | |-------|--------|--------| | 1 | Video-Recording + Footer-Walk | `cb4b352` | | 2 | Akkordeon-Expansion (5 Elli-Akkordeons) | `80c4778` | | 3 | DSMS-CID-Anchor (manipulationssicher) | `c7d2038` | ## Site-Engine-Runs ### 1. Elli (`elli.eco`) — GT vom 2026-06-06 Vorheriger Sprint (s. `2026-06-06-elli-gt-coverage-sprint.md`). **Befund:** 12/13 GT-Lücken erkannt. UX-001 (Mobile-Reachability) ist durch B1 Mobile-Playwright gelöst — Detection läuft real-world. ### 2. Westfield Hamburg-Überseequartier | Detektor | Real-World | Erwartet (GT) | |----------|-----------|---------------| | B9 Multi-Entity | 0 Findings (Site hat nur 1 Entity — mfi GmbH) | korrekt | | B13 Widerruf | 1 Finding (b2c_likely, MED) — Shopping-Center erkannt | korrekt | | B14 Retention | 0 (keine Doppel-Werte) | TH-RETENTION expected, aber Text hat nur 1 Wert | | B15 AI-Legal-Basis | 0 (iAdvize ist auf separater URL, nicht im DSE-Hauptdoc) | erwartet (real-world) | | B16 URL-Slug-Drift | 2 Findings — impressum + dse Standard-Slugs 404 | korrekt | **Audit-Walk:** 400 KB Video, 3 Footer-Links besucht, 0 Akkordeons (Westfield nutzt keine `
` / `[aria-expanded]`). DSMS-CID: `QmWJYfYDtBPaVxx4EwHMq6tdisjfiZUBS3aaQkoF7evmh1`. ### 3. Allianz-Reise-Chatbot (`allianz-reiseversicherung.de`) | Detektor | Real-World | Erwartet (GT) | |----------|-----------|---------------| | B9 Multi-Entity | 0 Findings (Single Entity: AWP P&C S.A.) | korrekt | | B13 Widerruf | 0 (B2C-Scope nicht erkannt — chatbot-Subpage hat keine Shop-Hints) | False-Negative bei subtle B2C | | B14 Retention | 0 (eindeutiger 2-Mo-Wert) | korrekt | | B15 AI-Legal-Basis | 0 (Twilio ist Chat-Infrastruktur, NICHT LLM-Vendor in KB) | korrekt — Twilio nicht in LLM-Liste | | B16 URL-Slug-Drift | 3 Findings (impressum/dse/cookie alle 404) | korrekt | **Audit-Walk:** 1 MB Video, 2 Footer-Links besucht, 0 Akkordeons. DSMS-CID: `QmXFuiC4z7UHoqPpHjEeVBEonBL1baVLC1uHq8GaK9mSMM`. ## Real-World-Bugs gefunden ### B9 False-Positives bei englischen DSE-Texten Westfield's englische Impressum hat zu vielen "X GmbH"-Erwähnungen geführt — der Pattern matched "If mfi Immobilien Marketing GmbH", "Discover our se", "Centre Se" usw. als angebliche Entitäten. **Fixes (in diesem Sprint):** - `_name_is_blocked()` strengt: min 2 Worte, mindestens eins ≥4 Chars und großgeschrieben (vor Legal-Form-Suffix). - `_dedup_substring()` collapses "mfi Immobilien Marketing GmbH" und "Marketing GmbH" zur längeren Form. - Cleaner: führende Lowercase-Connector-Worte ("If ", "by ", "according to ") werden gestrippt. Ergebnis: Westfield-Impressum gibt jetzt 0 Findings (korrekt — single echte Entity). ### B13 False-Negative bei subtle B2C Allianz-Reise-Chatbot-Sub-Page hat keine Shop-Hints (Warenkorb etc.) — B13's B2C-Scope-Detection greift nicht. **Tuning-Backlog**: weiche Hints wie "Reiseversicherung", "Tarif", "abschließen" als B2C-Marker ergänzen. ### B15 nicht-buggy aber GT-veraltet Westfield's iAdvize-Disclosure ist auf separater `/germany/ privacypolicychatbot` — wir laden nur die per-Site-DSE. **Backlog**: Discovery erweitern, separate Chatbot-Policies als zusätzliche DSE-Quelle einbinden. ## Test-Bilanz ``` test_widerrufsbelehrung_reachability_check.py 13/13 test_impressum_multi_entity_check.py 14/14 (+3 für Fix) test_retention_conflict_check.py 11/11 test_ai_legal_basis_check.py 17/17 test_url_slug_drift_check.py 13/13 test_b17_audit_walk.py 12/12 test_elli_gt_coverage.py 7/7 ───── Sprint-Tests gesamt 87/87 ``` ## DSMS-Audit-Anchor Jeder Audit-Walk wird zu IPFS hochgeladen + die CID dient als manipulationssicherer Beweis: ``` Elli: (alter Walk, vor Stufe 3) Westfield: QmWJYfYDtBPaVxx4EwHMq6tdisjfiZUBS3aaQkoF7evmh1 Allianz: QmXFuiC4z7UHoqPpHjEeVBEonBL1baVLC1uHq8GaK9mSMM ``` Reviewer kann via `https://dsms-dev.breakpilot.ai/ipfs/{cid}` das Video Monate später noch holen und SHA-256 vom Walk-JSON gegen den in der Audit-Mail genannten Hash prüfen. ## Backlog (sortiert nach Wert) 1. **B13 B2C-Soft-Hints**: "Tarif buchen", "Bestellprozess", "Reiseversicherung abschließen" als weiche Marker. Hebt False-Negative bei Allianz-Reise. 2. **Separate-Doc-Discovery**: spezielle Chatbot-/AI-DSEs als sekundäre DSE-Quelle einbinden (Westfield-iAdvize-Lücke). 3. **API-Schema-Erweiterung**: `extra_findings` + `audit_walk` ins ComplianceCheck-Response-Payload aufnehmen. Aktuell nur in der Audit-Mail HTML, nicht in der polling-API sichtbar. 4. **Plausibility-LLM Empty-Response** (non-blocking). 5. **#18 Specialist-Agents Phase 2 (LLM)**. ## URLs - Admin: https://admin-dev.breakpilot.ai - Audit-Walks (intern, via consent-tester): `http://bp-compliance-consent-tester:8094/audit-walks/{walk_id}/video.webm` - DSMS-Gateway public: `https://dsms-dev.breakpilot.ai/ipfs/{cid}` - GT-Files: `zeroclaw/docs/ground-truth/`