{
    "schema": "https://saferpage.de/schemas/report-quality-smoke.v1",
    "generated_at": "2026-06-10T06:46:21+00:00",
    "ok": true,
    "summary": "Semantischer Smoke fuer oeffentliche SaferPage-Reports gegen bekannte False-Positive-Regressionen und widerspruechliche Nutzerwarnungen.",
    "base_url": "https://saferpage.de",
    "metrics": {
        "case_count": 2,
        "check_count": 30,
        "passed_check_count": 30,
        "failed_check_count": 0,
        "forbidden_phrase_check_count": 18,
        "heise_top_fix_count": 3,
        "kochcode_top_fix_count": 3
    },
    "cases": [
        {
            "id": "heise_publisher_gate",
            "report_url": "https://saferpage.de/heise.de",
            "top_fixes_url": "https://saferpage.de/heise.de/top-fixes-json",
            "expectation": "Publisher-/PUR-/Consent-Wall wird als Scan-Grenze, nicht als Seriositaetsurteil bewertet.",
            "top_fix_titles": [
                "Barrierefreiheit & Usability",
                "Sicherheitsprofil und Header härten",
                "Canonical zeigt auf fremde Domain"
            ]
        },
        {
            "id": "kochcode_form_google_false_positive",
            "report_url": "https://saferpage.de/kochcode.de",
            "top_fixes_url": "https://saferpage.de/kochcode.de/top-fixes-json",
            "expectation": "Formulare aus Crawl-Coverage werden beruecksichtigt; Google Consent Mode wird nur bei echter Google-Tag-Evidenz gefordert.",
            "top_fix_titles": [
                "Datenschutzerklärung deckt zentrale Bausteine nicht vollständig ab",
                "Buttons ohne erkennbaren Namen",
                "Datenschutzkontakt oder DPO-Hinweis nicht klar erkannt"
            ]
        }
    ],
    "checks": [
        {
            "id": "heise_gate_headline",
            "label": "heise.de erkennt Publisher-/Consent-Gate als Scan-Grenze",
            "status": "passed",
            "passed": true,
            "evidence": "headline=present"
        },
        {
            "id": "heise_confidence_notice",
            "label": "heise.de zeigt dauerhafte Report-Einordnung mit Grenzen",
            "status": "passed",
            "passed": true,
            "evidence": "confidence_notice=present"
        },
        {
            "id": "heise_scan_limit_box",
            "label": "heise.de zeigt die Scan-Grenze als eigene sichtbare Hinweisbox",
            "status": "passed",
            "passed": true,
            "evidence": "scan_limit_notice=present"
        },
        {
            "id": "heise_privacy_manual",
            "label": "heise.de bewertet Datenschutz/Cookies manuell statt hart",
            "status": "passed",
            "passed": true,
            "evidence": "cookie_gate_summary=present"
        },
        {
            "id": "heise_scorecard_manual",
            "label": "heise.de Scorecard hebt gate-bedingte Scorecards auf manuell pruefen",
            "status": "passed",
            "passed": true,
            "evidence": "scorecards=dsgvo/tdddg/ddg expected 68 manual"
        },
        {
            "id": "heise_top_fixes_no_gate_false_positive",
            "label": "heise.de Top-Fixes enthalten keine Gate-False-Positive-Titel",
            "status": "passed",
            "passed": true,
            "evidence": "titles=Barrierefreiheit & Usability | Sicherheitsprofil und Header härten | Canonical zeigt auf fremde Domain"
        },
        {
            "id": "heise_absent_43803ca5e8",
            "label": "heise enthaelt nicht: Score 0/100",
            "status": "passed",
            "passed": true,
            "evidence": "forbidden_absent"
        },
        {
            "id": "heise_absent_ed2045f51a",
            "label": "heise enthaelt nicht: Score 2/100",
            "status": "passed",
            "passed": true,
            "evidence": "forbidden_absent"
        },
        {
            "id": "heise_absent_e2660054b6",
            "label": "heise enthaelt nicht: Score 44/100",
            "status": "passed",
            "passed": true,
            "evidence": "forbidden_absent"
        },
        {
            "id": "heise_absent_4ac03ce281",
            "label": "heise enthaelt nicht: Nur mit Vorsicht nutzen",
            "status": "passed",
            "passed": true,
            "evidence": "forbidden_absent"
        },
        {
            "id": "heise_absent_0316ef7aa2",
            "label": "heise enthaelt nicht: Keine sensiblen Daten eingeben",
            "status": "passed",
            "passed": true,
            "evidence": "forbidden_absent"
        },
        {
            "id": "heise_absent_5d2107c9d0",
            "label": "heise enthaelt nicht: Kein Impressum-Link erkannt",
            "status": "passed",
            "passed": true,
            "evidence": "forbidden_absent"
        },
        {
            "id": "heise_absent_5129a08fad",
            "label": "heise enthaelt nicht: Versteckter Text erkannt",
            "status": "passed",
            "passed": true,
            "evidence": "forbidden_absent"
        },
        {
            "id": "heise_absent_485f9be8ec",
            "label": "heise enthaelt nicht: Möglicherweise nicht notwendige Cookies vor Einwilligung",
            "status": "passed",
            "passed": true,
            "evidence": "forbidden_absent"
        },
        {
            "id": "heise_absent_b38e51c954",
            "label": "heise enthaelt nicht: Dateneingabe ohne klaren Datenschutzkontext",
            "status": "passed",
            "passed": true,
            "evidence": "forbidden_absent"
        },
        {
            "id": "heise_absent_b995f372f7",
            "label": "heise enthaelt nicht: Formular-Unterseite ohne klaren Datenschutzkontext",
            "status": "passed",
            "passed": true,
            "evidence": "forbidden_absent"
        },
        {
            "id": "heise_absent_4cae0685b9",
            "label": "heise enthaelt nicht: Privacy Risk Register: 18 Risikozeile",
            "status": "passed",
            "passed": true,
            "evidence": "forbidden_absent"
        },
        {
            "id": "kochcode_headline",
            "label": "kochcode.de vermeidet harte Nutzerwarnung nach False-Positive-Filter",
            "status": "passed",
            "passed": true,
            "evidence": "headline=present"
        },
        {
            "id": "kochcode_confidence_notice",
            "label": "kochcode.de zeigt dauerhafte Report-Einordnung mit Grenzen",
            "status": "passed",
            "passed": true,
            "evidence": "confidence_notice=present"
        },
        {
            "id": "kochcode_forms_aggregated",
            "label": "kochcode.de aggregiert Formularseiten aus Crawl-Coverage",
            "status": "passed",
            "passed": true,
            "evidence": "form_coverage_summary=present"
        },
        {
            "id": "kochcode_form_evidence_note",
            "label": "kochcode.de erklärt Formular-Evidenz statt widerspruechlicher Startseiten-Aussage",
            "status": "passed",
            "passed": true,
            "evidence": "form_evidence_note=present"
        },
        {
            "id": "kochcode_top_fixes_no_duplicate_google",
            "label": "kochcode.de Top-Fixes enthalten keinen doppelten Google-Consent-Fehlalarm",
            "status": "passed",
            "passed": true,
            "evidence": "titles=Datenschutzerklärung deckt zentrale Bausteine nicht vollständig ab | Buttons ohne erkennbaren Namen | Datenschutzkontakt oder DPO-Hinweis nicht klar erkannt"
        },
        {
            "id": "kochcode_consent_mode_not_required_visible",
            "label": "kochcode.de erklaert Google Consent Mode ohne Google-Evidenz als nicht erforderlich",
            "status": "passed",
            "passed": true,
            "evidence": "consent_mode_not_required=present"
        },
        {
            "id": "kochcode_absent_b138671644",
            "label": "kochcode enthaelt nicht: Google Consent Mode Default nicht erkannt",
            "status": "passed",
            "passed": true,
            "evidence": "forbidden_absent"
        },
        {
            "id": "kochcode_absent_4f5dafc14f",
            "label": "kochcode enthaelt nicht: Google Consent Defaults",
            "status": "passed",
            "passed": true,
            "evidence": "forbidden_absent"
        },
        {
            "id": "kochcode_absent_4198f0f264",
            "label": "kochcode enthaelt nicht: ad_storage, analytics_storage, ad_user_data und ad_personalization vorab auf denied setzen.",
            "status": "passed",
            "passed": true,
            "evidence": "forbidden_absent"
        },
        {
            "id": "kochcode_absent_8866dc3c82",
            "label": "kochcode enthaelt nicht: Keine Formular- oder Zahlungsabfrage",
            "status": "passed",
            "passed": true,
            "evidence": "forbidden_absent"
        },
        {
            "id": "kochcode_absent_d36ddc3dc4",
            "label": "kochcode enthaelt nicht: Keine sensible Eingabe erkannt",
            "status": "passed",
            "passed": true,
            "evidence": "forbidden_absent"
        },
        {
            "id": "kochcode_absent_4ac03ce281",
            "label": "kochcode enthaelt nicht: Nur mit Vorsicht nutzen",
            "status": "passed",
            "passed": true,
            "evidence": "forbidden_absent"
        },
        {
            "id": "kochcode_absent_0316ef7aa2",
            "label": "kochcode enthaelt nicht: Keine sensiblen Daten eingeben",
            "status": "passed",
            "passed": true,
            "evidence": "forbidden_absent"
        }
    ],
    "failed_checks": [],
    "no_secret_policy": {
        "contains_secrets": false,
        "contains_private_target_urls": false,
        "contains_recipients": false,
        "contains_private_documents": false,
        "contains_visitor_logs": false
    },
    "safe_command": "scripts/run-report-quality-smoke.sh",
    "claim_boundary": "Der Smoke prueft nur oeffentliche Reportausgaben und bekannte Regressionen. Er ersetzt keine Rechtsberatung und keinen vollstaendigen manuellen Audit."
}
