feat: All 138 hints rewritten as expert-level legal guidance
CI / loc-budget (push) Failing after 18s
CI / secret-scan (push) Has been skipped
CI / go-lint (push) Has been skipped
Build + Deploy / build-admin-compliance (push) Successful in 9s
Build + Deploy / build-backend-compliance (push) Successful in 10s
Build + Deploy / build-ai-sdk (push) Successful in 9s
Build + Deploy / build-developer-portal (push) Successful in 8s
Build + Deploy / build-tts (push) Successful in 8s
Build + Deploy / build-document-crawler (push) Successful in 8s
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 / nodejs-build (push) Successful in 3m22s
CI / dep-audit (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (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 43s
CI / test-python-document-crawler (push) Successful in 32s
CI / test-python-dsms-gateway (push) Successful in 26s
CI / validate-canonical-controls (push) Successful in 18s
Build + Deploy / trigger-orca (push) Successful in 2m10s
CI / loc-budget (push) Failing after 18s
CI / secret-scan (push) Has been skipped
CI / go-lint (push) Has been skipped
Build + Deploy / build-admin-compliance (push) Successful in 9s
Build + Deploy / build-backend-compliance (push) Successful in 10s
Build + Deploy / build-ai-sdk (push) Successful in 9s
Build + Deploy / build-developer-portal (push) Successful in 8s
Build + Deploy / build-tts (push) Successful in 8s
Build + Deploy / build-document-crawler (push) Successful in 8s
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 / nodejs-build (push) Successful in 3m22s
CI / dep-audit (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (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 43s
CI / test-python-document-crawler (push) Successful in 32s
CI / test-python-dsms-gateway (push) Successful in 26s
CI / validate-canonical-controls (push) Successful in 18s
Build + Deploy / trigger-orca (push) Successful in 2m10s
Every hint now reads like a mini-consultation from a data protection lawyer — with specific legal references, court rulings, and common mistakes. Examples: - EuGH C-210/16 (Fanpage), C-298/17 (Kontaktpflicht), C-311/18 (Schrems II) - BGH I ZR 228/03 (ladungsfaehige Anschrift), XI ZR 388/10 (AGB) - EDSA Guidelines 2/2019 (lit. b misuse), WP 248 Rev.01 (DSFA) - DSK-Orientierungshilfe, CNIL-Leitlinien, SDM, BSI-IT-Grundschutz - §25 TDDDG, §38 BDSG, §309 BGB, §312k BGB, Art. 246a EGBGB This is the core value proposition: no lawyer can deliver this level of specific, actionable compliance feedback in 60 seconds. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -19,7 +19,7 @@ JOINT_CONTROLLER_CHECKLIST = [
|
||||
r"(?:betreiber|netzwerk).*verantwortlich",
|
||||
],
|
||||
"severity": "HIGH",
|
||||
"hint": "Es fehlt der Hinweis auf die gemeinsame Verantwortlichkeit nach Art. 26 DSGVO. Benennen Sie ausdruecklich, dass Sie und die jeweilige Plattform gemeinsam Verantwortliche fuer die Datenverarbeitung sind.",
|
||||
"hint": "Seit dem EuGH-Urteil 'Fanpage' (C-210/16, Juni 2018) sind Fanpage-Betreiber gemeinsam Verantwortliche nach Art. 26 DSGVO. Ohne ausdrueckliche Benennung der gemeinsamen Verantwortlichkeit fehlt die Rechtsgrundlage fuer Ihre gesamte Social-Media-Datenverarbeitung.",
|
||||
},
|
||||
{
|
||||
"id": "facebook_meta_named",
|
||||
@@ -30,7 +30,7 @@ JOINT_CONTROLLER_CHECKLIST = [
|
||||
r"meta\s+platforms.*(?:verantwortlich|controller|betreiber)",
|
||||
],
|
||||
"severity": "MEDIUM",
|
||||
"hint": "Facebook/Meta ist nicht namentlich als gemeinsam Verantwortlicher aufgefuehrt. Nennen Sie die vollstaendige Firmenbezeichnung (z.B. Meta Platforms Ireland Limited) als Mitverantwortlichen.",
|
||||
"hint": "Korrekte Bezeichnung: 'Meta Platforms Ireland Limited, 4 Grand Canal Square, Dublin 2, Irland'. Achtung: Seit 2022 ist Meta Platforms Ireland Ltd. (nicht Facebook Ireland Ltd.) der europaeische Verantwortliche — veraltete Firmennamen aktualisieren.",
|
||||
},
|
||||
|
||||
# ── L1: Vereinbarung Art. 26 ──────────────────────────────────────
|
||||
@@ -45,7 +45,7 @@ JOINT_CONTROLLER_CHECKLIST = [
|
||||
r"addendum|nachtrag|seiten.*insights",
|
||||
],
|
||||
"severity": "HIGH",
|
||||
"hint": "Es fehlt ein Verweis auf die Vereinbarung nach Art. 26 DSGVO zwischen Ihnen und der Plattform. Erwaehnen Sie die bestehende Vereinbarung (z.B. Page Controller Addendum bei Facebook) und deren wesentlichen Inhalt.",
|
||||
"hint": "Art. 26 DSGVO verlangt eine transparente Vereinbarung ueber die Aufgabenverteilung. Bei Facebook ist das 'Page Controller Addendum' abzuschliessen und in der DSE zu verlinken. Ohne diese Vereinbarung besteht ein Bussgeldrisiko nach Art. 83(4)(a) DSGVO.",
|
||||
},
|
||||
{
|
||||
"id": "insights_referenced",
|
||||
@@ -57,7 +57,7 @@ JOINT_CONTROLLER_CHECKLIST = [
|
||||
r"(?:statistik|nutzungsstatistik).*(?:facebook|meta|fanpage|seite)",
|
||||
],
|
||||
"severity": "MEDIUM",
|
||||
"hint": "Die Verarbeitung von Seiten-Insights bzw. Page Insights wird nicht erwaehnt. Erlaeutern Sie, dass bei Nutzung Ihrer Social-Media-Seite Insights-Daten erhoben und verarbeitet werden.",
|
||||
"hint": "Page Insights umfassen demografische Daten, Reichweite und Interaktionen. Der EuGH (C-210/16) hat klargestellt, dass der Fanpage-Betreiber fuer die Insights-Verarbeitung mitverantwortlich ist — auch wenn er keinen Zugriff auf Rohdaten hat.",
|
||||
},
|
||||
{
|
||||
"id": "page_controller_addendum",
|
||||
@@ -69,7 +69,7 @@ JOINT_CONTROLLER_CHECKLIST = [
|
||||
r"(?:addendum|nachtrag|erg(?:ae|ä)nzung).*(?:controller|verantwortlich)",
|
||||
],
|
||||
"severity": "LOW",
|
||||
"hint": "Das Page Controller Addendum (bzw. die Seiten-Insights-Ergaenzung) wird nicht namentlich erwaehnt. Verweisen Sie konkret auf das Addendum und verlinken Sie es, damit Betroffene die Vereinbarung nachvollziehen koennen.",
|
||||
"hint": "Verlinken Sie das Page Controller Addendum direkt: https://www.facebook.com/legal/controller_addendum. Art. 26(2) S. 2 DSGVO verlangt, dass das Wesentliche der Vereinbarung dem Betroffenen zur Verfuegung gestellt wird.",
|
||||
},
|
||||
|
||||
# ── L1: Anlaufstelle ──────────────────────────────────────────────
|
||||
@@ -85,7 +85,7 @@ JOINT_CONTROLLER_CHECKLIST = [
|
||||
r"wenden\s+sie\s+sich",
|
||||
],
|
||||
"severity": "MEDIUM",
|
||||
"hint": "Es fehlt eine Anlaufstelle fuer Betroffene gemaess Art. 26(1) S.3 DSGVO. Geben Sie an, an wen sich Betroffene zur Wahrnehmung ihrer Rechte wenden koennen.",
|
||||
"hint": "Art. 26(1) S. 3 DSGVO: Betroffene koennen ihre Rechte bei jedem der Verantwortlichen geltend machen. Benennen Sie sich als primaere Anlaufstelle mit konkreten Kontaktdaten (E-Mail, Anschrift) — die Plattform ist oft schwer erreichbar.",
|
||||
},
|
||||
{
|
||||
"id": "contact_both_parties",
|
||||
@@ -97,7 +97,7 @@ JOINT_CONTROLLER_CHECKLIST = [
|
||||
r"(?:facebook|meta|google|plattform).*(?:als\s+auch|oder|und).*(?:uns|bei\s+uns)",
|
||||
],
|
||||
"severity": "LOW",
|
||||
"hint": "Die Kontaktdaten beider Verantwortlicher sind nicht vollstaendig angegeben. Stellen Sie klar, dass Betroffene ihre Rechte sowohl bei Ihnen als auch bei der Plattform geltend machen koennen, und nennen Sie die jeweiligen Kontaktwege.",
|
||||
"hint": "EuGH C-210/16 Rn. 43: Beide Verantwortliche muessen erreichbar sein. Nennen Sie Ihre eigenen Kontaktdaten UND verlinken Sie den Datenschutzkontakt der Plattform (z.B. Meta: https://www.facebook.com/help/contact/540977946302970).",
|
||||
},
|
||||
|
||||
# ── L1: Verarbeitungsaufteilung ───────────────────────────────────
|
||||
@@ -112,7 +112,7 @@ JOINT_CONTROLLER_CHECKLIST = [
|
||||
r"(?:nutzungsstatistik|statistik|insight).*(?:betreiber|netzwerk)",
|
||||
],
|
||||
"severity": "HIGH",
|
||||
"hint": "Es fehlt eine Beschreibung, welche Datenverarbeitungen Sie und welche die Plattform vornimmt. Erlaeutern Sie die Aufgabenverteilung (z.B. wer Insights-Daten erhebt und wer sie auswertet).",
|
||||
"hint": "Art. 26(1) DSGVO verlangt eine transparente Aufgabenteilung. Typisch: Die Plattform erhebt und aggregiert Nutzerdaten; Sie als Betreiber nutzen die Insights-Statistiken. Stellen Sie klar, dass Sie keinen Zugriff auf Einzelnutzer-Rohdaten haben (falls zutreffend).",
|
||||
},
|
||||
|
||||
# ── L1: Datenkategorien ───────────────────────────────────────────
|
||||
@@ -127,7 +127,7 @@ JOINT_CONTROLLER_CHECKLIST = [
|
||||
r"(?:nutzername|beitr(?:ae|ä)g|profil|like|kommentar)",
|
||||
],
|
||||
"severity": "HIGH",
|
||||
"hint": "Die Kategorien der verarbeiteten Daten sind nicht aufgefuehrt. Listen Sie auf, welche Daten verarbeitet werden (z.B. IP-Adresse, Standort, Geraetedaten, Interaktionen, demografische Daten).",
|
||||
"hint": "Art. 13(1)(d) DSGVO: Datenkategorien muessen benannt werden. Bei Social Media typisch: Profildaten, IP-Adresse, Geraete-/Browserdaten, Interaktionsdaten (Likes, Kommentare), demografische Daten (Alter, Geschlecht, Standort) aus Insights.",
|
||||
},
|
||||
|
||||
# ── L1: Plattformen ───────────────────────────────────────────────
|
||||
@@ -141,7 +141,7 @@ JOINT_CONTROLLER_CHECKLIST = [
|
||||
r"social\s*media.*(?:angebot|pr(?:ae|ä)senz|auftritte)",
|
||||
],
|
||||
"severity": "MEDIUM",
|
||||
"hint": "Die genutzten Social-Media-Plattformen werden nicht aufgelistet. Fuehren Sie alle Plattformen namentlich auf, auf denen Sie Praesenzen betreiben (z.B. Facebook, Instagram, LinkedIn, YouTube).",
|
||||
"hint": "Jede Plattform hat eigene Datenschutz-Konditionen und Joint-Controller-Vereinbarungen. Listen Sie alle Plattformen einzeln auf — eine gemeinsame Pauschalerklaerung fuer 'Social Media' genuegt nicht den Transparenzanforderungen nach Art. 13 DSGVO.",
|
||||
},
|
||||
{
|
||||
"id": "platform_dse_links",
|
||||
@@ -153,7 +153,7 @@ JOINT_CONTROLLER_CHECKLIST = [
|
||||
r"(?:privacy\s+policy|datenschutzerkl(?:ae|ä)rung).*(?:finden\s+sie|abrufbar|unter)",
|
||||
],
|
||||
"severity": "LOW",
|
||||
"hint": "Es fehlen Links zu den Datenschutzerklaerungen der einzelnen Plattformen. Verlinken Sie die jeweilige Privacy Policy (z.B. von Meta, Google, LinkedIn), damit Nutzer sich dort informieren koennen.",
|
||||
"hint": "Verlinken Sie pro Plattform direkt die Privacy Policy: Meta (https://www.facebook.com/privacy/policy), Google/YouTube (https://policies.google.com/privacy), LinkedIn (https://www.linkedin.com/legal/privacy-policy). Pruefen Sie Links regelmaessig auf Aktualitaet.",
|
||||
},
|
||||
|
||||
# ── L1: Drittlandtransfer ─────────────────────────────────────────
|
||||
@@ -168,7 +168,7 @@ JOINT_CONTROLLER_CHECKLIST = [
|
||||
r"(?:(?:ue|ü)bermittlung|(?:ueber|über)mittlung).*(?:usa|drittland|au(?:ss|ß)erhalb)",
|
||||
],
|
||||
"severity": "MEDIUM",
|
||||
"hint": "Es fehlt ein Hinweis auf den Drittlandtransfer in die USA. Informieren Sie darueber, dass Daten in die USA uebermittelt werden, und nennen Sie die Rechtsgrundlage dafuer (z.B. Angemessenheitsbeschluss, Standardvertragsklauseln).",
|
||||
"hint": "Bei Social Media werden Daten regelhaft in die USA uebermittelt. Hinweis: Das Privacy Shield ist seit 'Schrems II' (EuGH C-311/18, Juli 2020) ungueltig. Aktuell: EU-US Data Privacy Framework/DPF (Angemessenheitsbeschluss seit Juli 2023) oder SCC (Art. 46(2)(c) DSGVO).",
|
||||
},
|
||||
{
|
||||
"id": "usa_transfer_scc",
|
||||
@@ -179,7 +179,7 @@ JOINT_CONTROLLER_CHECKLIST = [
|
||||
r"standard\s+contractual\s+clause",
|
||||
],
|
||||
"severity": "MEDIUM",
|
||||
"hint": "Standardvertragsklauseln (SCC) als Garantie fuer den US-Datentransfer werden nicht erwaehnt. Falls SCC als Rechtsgrundlage genutzt werden, fuehren Sie diese ausdruecklich auf.",
|
||||
"hint": "SCC allein genuegen nach 'Schrems II' (C-311/18) nicht — es muss zusaetzlich ein Transfer Impact Assessment (TIA) durchgefuehrt werden. Pruefen Sie, ob die Plattform ergaenzende Schutzmassnahmen (z.B. Verschluesselung, Pseudonymisierung) dokumentiert.",
|
||||
},
|
||||
{
|
||||
"id": "usa_transfer_dpf",
|
||||
@@ -191,7 +191,7 @@ JOINT_CONTROLLER_CHECKLIST = [
|
||||
r"adequacy\s+decision",
|
||||
],
|
||||
"severity": "LOW",
|
||||
"hint": "Das EU-US Data Privacy Framework (DPF) wird nicht als Transfergrundlage erwaehnt. Falls sich die Plattform auf den Angemessenheitsbeschluss stuetzt, erwaehnen Sie dies und verweisen Sie auf die DPF-Zertifizierung.",
|
||||
"hint": "Meta, Google und LinkedIn sind unter dem DPF zertifiziert (pruefbar unter https://www.dataprivacyframework.gov). Erwaehnen Sie den Angemessenheitsbeschluss der EU-Kommission vom 10.07.2023 und pruefen Sie die Zertifizierung der jeweiligen Plattform.",
|
||||
},
|
||||
|
||||
# ── L1: Rechtsgrundlage ───────────────────────────────────────────
|
||||
@@ -205,7 +205,7 @@ JOINT_CONTROLLER_CHECKLIST = [
|
||||
r"einwilligung.*art\.\s*6", r"lit\.\s*[a-f]",
|
||||
],
|
||||
"severity": "MEDIUM",
|
||||
"hint": "Die Rechtsgrundlage fuer die Datenverarbeitung nach Art. 6 DSGVO fehlt. Nennen Sie die einschlaegige Rechtsgrundlage (z.B. berechtigtes Interesse nach Art. 6(1) lit. f oder Einwilligung nach Art. 6(1) lit. a).",
|
||||
"hint": "Fuer Fanpage-Insights stuetzen sich die meisten Betreiber auf Art. 6(1) lit. f DSGVO (berechtigtes Interesse an Reichweitenanalyse). Achtung: Die DSK hat 2018 die Rechtsgrundlage fuer Fanpages in Frage gestellt — dokumentieren Sie Ihre Interessenabwaegung sorgfaeltig.",
|
||||
},
|
||||
{
|
||||
"id": "legal_basis_specific_lit",
|
||||
@@ -215,7 +215,7 @@ JOINT_CONTROLLER_CHECKLIST = [
|
||||
r"art\.\s*6\s*(?:abs\.\s*)?1\s*(?:s\.\s*1\s*)?(?:lit\.\s*)?[a-f]",
|
||||
],
|
||||
"severity": "LOW",
|
||||
"hint": "Der konkrete Buchstabe in Art. 6(1) DSGVO ist nicht angegeben. Nennen Sie den spezifischen Erlaubnistatbestand (z.B. lit. a fuer Einwilligung oder lit. f fuer berechtigtes Interesse).",
|
||||
"hint": "Praxistipp: Nennen Sie pro Verarbeitungszweck den passenden Buchstaben. Typisch bei Social Media: Art. 6(1) lit. a (Einwilligung bei Direktnachrichten), lit. b (Vertrag bei Gewinnspielen), lit. f (berechtigtes Interesse bei Insights/PR).",
|
||||
},
|
||||
|
||||
# ── L1: Betroffenenrechte ─────────────────────────────────────────
|
||||
@@ -230,7 +230,7 @@ JOINT_CONTROLLER_CHECKLIST = [
|
||||
r"widerspruchsrecht",
|
||||
],
|
||||
"severity": "MEDIUM",
|
||||
"hint": "Die Betroffenenrechte nach Art. 15-21 DSGVO sind nicht aufgefuehrt. Listen Sie die Rechte auf (Auskunft, Berichtigung, Loeschung, Einschraenkung, Datenuebertragbarkeit, Widerspruch) und erklaeren Sie, wie Betroffene diese ausueben koennen.",
|
||||
"hint": "Besonders relevant bei Social Media: Widerspruchsrecht (Art. 21 DSGVO) gegen Insights-Tracking und Recht auf Loeschung (Art. 17 DSGVO). Weisen Sie darauf hin, dass Rechte gegenueber beiden Verantwortlichen geltend gemacht werden koennen (Art. 26(3) DSGVO).",
|
||||
},
|
||||
{
|
||||
"id": "opt_out_social",
|
||||
@@ -242,7 +242,7 @@ JOINT_CONTROLLER_CHECKLIST = [
|
||||
r"(?:abmelden|abschalten).*(?:tracking|statistik|insight)",
|
||||
],
|
||||
"severity": "LOW",
|
||||
"hint": "Eine konkrete Opt-Out-Moeglichkeit fuer das Social-Media-Tracking fehlt. Beschreiben Sie, wie Nutzer dem Tracking widersprechen oder es deaktivieren koennen (z.B. ueber Plattform-Einstellungen oder Cookie-Opt-Out).",
|
||||
"hint": "Verlinken Sie konkrete Opt-Out-Seiten: Facebook Ad-Settings (https://www.facebook.com/ads/preferences), Google Ads-Einstellungen (https://adssettings.google.com). Weisen Sie auch auf die allgemeine Widerspruchsmoeglichkeit via YourOnlineChoices.eu hin.",
|
||||
},
|
||||
|
||||
# ── L1: Social Bookmarks vs Plugins ───────────────────────────────
|
||||
@@ -256,7 +256,7 @@ JOINT_CONTROLLER_CHECKLIST = [
|
||||
r"(?:link|verweis|weiterleitung).*(?:dienst|anbieter|netzwerk)",
|
||||
],
|
||||
"severity": "MEDIUM",
|
||||
"hint": "Es fehlt ein Hinweis, ob Social-Media-Plugins oder nur einfache Links (Bookmarks) eingebunden sind. Stellen Sie klar, ob beim Seitenaufruf bereits Daten an die Plattformen uebertragen werden oder erst nach Klick.",
|
||||
"hint": "Social-Media-Plugins (Like-Button, Share-Widget) uebertragen beim Seitenaufruf Nutzerdaten an die Plattform — ohne Einwilligung ein DSGVO-Verstoss (EuGH C-40/17, 'Fashion ID'). Empfehlung: Shariff-Buttons oder reine Bild-Links (Social Bookmarks) verwenden.",
|
||||
},
|
||||
{
|
||||
"id": "two_click_solution",
|
||||
@@ -271,6 +271,6 @@ JOINT_CONTROLLER_CHECKLIST = [
|
||||
r"(?:link|verweis|grafik).*(?:weitergeleitet|weiterleitung)",
|
||||
],
|
||||
"severity": "LOW",
|
||||
"hint": "Erlaeutern Sie die eingesetzte datenschutzfreundliche Technik: z.B. Social Bookmarks (reine Links ohne automatische Datenuebertragung), 2-Klick-Loesung oder Shariff-Buttons.",
|
||||
"hint": "Datenschutzfreundliche Alternativen: Shariff (Heise, Open Source), 2-Klick-Loesung oder reine Bild-Links/Social Bookmarks. Dokumentieren Sie die eingesetzte Technik — nach EuGH 'Fashion ID' (C-40/17) muss der Website-Betreiber eine Einwilligung einholen, wenn Plugins direkt laden.",
|
||||
},
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user