lawve-ai/gdpr-breach-sentinel-oliver-schmidt-prietz
|
npx skills add https://github.com/lawve-ai/awesome-legal-skills --skill gdpr-breach-sentinel-oliver-schmidt-prietz
Guide users through post-breach compliance with GDPR Articles 33 & 34, EDPB Guidelines 9/2022 & 01/2021, and ENISA Severity Methodology. Build an EDPB-template-aligned breach evidence file, generate audit-ready documentation, and provide actionable mitigation guidance.
> Important: This skill provides structured GDPR breach-notification guidance based on Art. 33–34 GDPR, EDPB Guidelines, and ENISA methodology. It is not legal advice. Final notification decisions should involve your organisation's DPO and qualified legal counsel.
> Handle with care: This may be a live incident.
> - Do not paste real personal data unless necessary — anonymised or pseudonymised samples ("Employee A", "Patient 1") are sufficient for the assessment.
> - Do not upload forensic artefacts, logs, or personal data to public tools unless cleared by your security and legal teams; for an actual breach, work in an environment your organisation has approved for confidential incident data.
> - Preserve legal privilege: keep communications prepared with or for legal counsel separate from operational facts, and mark them as privileged.
> - Keep facts, assumptions, and legal conclusions clearly separated in everything you record (see Evidence Posture below).
> "Are you in a time-critical situation with less than 12 hours remaining on your notification clock?"
Not every security incident is a personal data breach. Establish two things first:
Classify into exactly one verdict:
| Triage Verdict | Meaning | Next Step |
|----------------|---------|-----------|
| SECURITY INCIDENT ONLY | No personal data affected (e.g., DDoS against a static site, malware on a system holding no personal data) | Art. 33/34 not triggered. Document why no personal data was involved (offer a short internal security-incident record, .docx), advise preserving that documentation, screen parallel regimes (NIS2 etc.), and stop the GDPR workflow — no dashboard, no ENISA run |
| BREACH CONFIRMED | Personal data demonstrably affected | Proceed to intake — the 72h clock analysis applies |
| BREACH LIKELY — UNDER INVESTIGATION | Personal data probably affected but not yet confirmed | Proceed to intake; treat T0 conservatively and use the "Still Under Investigation" pathway |
| INSUFFICIENT FACTS | Cannot yet say whether personal data is affected | Preserve evidence (logs, system images, access records), define fact-finding actions with owners and deadlines, re-triage as soon as facts emerge |
Only the last three verdicts proceed to intake (and appear in the Assessment Dashboard's Triage row); a SECURITY INCIDENT ONLY verdict ends with a short triage record instead of the full dashboard. If facts later change (e.g., the incident turns out to have touched personal data), re-run the gate.
Offer the user a choice:
> How would you like to proceed?
> - Guided Mode — I'll walk you through questions one at a time (recommended if unsure)
> - Fast Path — Provide a structured summary of the incident and I'll assess immediately
If user selects Fast Path, accept a free-form or structured description and extract all 11 data points matching the guided mode questions: (1) Role, (2) Timeline/T0, (3) Breach Type, (4) Data Categories, (5) Subject Count, (6) Identifiers, (7) Encryption, (8) Malicious Intent, (9) Cross-Border, (10) DPA Deadlines, (11) AI System Involvement. If any data points are missing from the user's description, prompt for the missing items before proceeding. Confirm all extracted values before proceeding. Skip to Risk Assessment once confirmed.
If the user selects Guided Mode but has already supplied some or all data points, do not re-ask them one by one — confirm the supplied values in a single table (as in Fast Path) and ask only for what is missing.
For rapid preliminary orientation on common scenarios (lost encrypted device, misdirected email, ransomware, phishing), use the decision trees in references/enisa-methodology.md §0. Trees are orientation only — always complete the full assessment for the definitive classification.
Ask questions ONE AT A TIME in this order:
| Order | Category | Key Question |
|-------|----------|--------------|
| 1 | Role | "Does the affected data belong to your organization, your clients, or BOTH?" |
| 2 | Timeline | "When did you achieve reasonable certainty a breach occurred?" (This is T0) |
| 3 | Breach Type | "Which types of breach apply? Select ALL that apply: Confidentiality (data disclosed), Integrity (data altered), Availability (data lost/inaccessible), or Still Under Investigation. Many incidents involve multiple types — e.g., ransomware typically involves both Availability and potentially Confidentiality." |
| 4 | Data Categories | "What categories of personal data were involved?" |
| 5 | Subject Count | "Approximately how many individuals are affected?" |
| 6 | Identifiers | "What identifiers are present? (names, emails, IDs, etc.)" |
| 7 | Encryption | "Was the data encrypted? Is the key secure? Stored separately?" |
| 8 | Malicious Intent | "Was this accidental or intentional (theft, hacking)?" |
| 9 | Cross-Border | "Are affected individuals in multiple EU Member States? Where is your main establishment?" |
| 10 | DPA Deadlines | "Does your Data Processing Agreement specify a notification window? (Common: 24h or 48h)" |
| 11 | AI System | "Does this breach involve an AI system? (e.g., model leak, adversarial attack, AI-generated output exposure)" |
| Scenario | Track | Action |
|----------|-------|--------|
| Controller Only | A | Full risk assessment, SA notification decision |
| Processor Only | B | Notify controller without undue delay; prepare provisional factual/risk support package; final Art. 33/34 decision remains with the controller |
| Hybrid (Both) | A+B | Run parallel tracks, never conflate |
If the user selects "Still Under Investigation" for breach type:
Challenge T0 claims when:
Two-Stage T0 Analysis (Processor Scenarios):
For processors, T0 operates in two stages with distinct legal consequences:
| Stage | T0 Event | Obligation Triggered | Deadline |
|-------|----------|---------------------|----------|
| Stage 1: Processor T0 (T0-P) | Processor becomes aware of the breach | Notify the controller "without undue delay" (Art. 33(2)) | Statutory: without undue delay; contractual: per DPA (often 24-48h) |
| Stage 2: Controller T0 | Controller is informed by the processor (per EDPB Guidelines 9/2022, the controller should be considered "aware" once the processor has informed it) | Controller's 72h clock starts for SA notification | 72h from controller's T0 |
Always determine both T0 timestamps for processor scenarios and display both in the assessment. The processor's own awareness does *not* start the controller's 72h clock — the controller's clock starts when the controller is informed (or otherwise becomes aware itself).
The processor's statutory duty is to notify the controller without undue delay after becoming aware (Art. 33(2)). There is no statutory 72-hour deadline for the processor, and the processor does not notify the SA — unless it is simultaneously a controller for some of the affected processing, in which case run Track A in parallel for that data.
On top of the statutory duty, most DPAs add a contractual notification window:
If the user is a processor:
Track B output must show: processor awareness time (T0-P) · contractual deadline and time remaining · "without undue delay" status · controller handoff package completeness (see references/templates.md) · the controller's 72h clock as a downstream controller duty, never as the processor's own statutory clock.
When a breach originates at a sub-processor, notification follows the contractual chain: Sub-Processor → Processor → Controller → SA. Each link owes the next link notice "without undue delay" (plus any DPA window). The controller's 72h clock starts only when the controller is informed or otherwise becomes aware. Don't wait for complete upstream details — each link notifies with available information and supplements later. Document when each link was notified and what was provided; SAs scrutinise chain delays. If an entity in the chain is also controller for some affected data, run Tracks A and B in parallel.
Formula: SE = (DPC × EI) + CB
For detailed scoring tables, read references/enisa-methodology.md.
DPC (Data Processing Context): 1-4 (hard bounds after adjustments)
| Category | Score |
|----------|-------|
| Simple (name, contact) | 1 |
| Behavioral (location, browsing) | 2 |
| Financial (bank, salary) | 3 |
| Sensitive Art. 9 (health, biometric) | 4 |
DPC Cap Rule: After applying contextual adjustments (see enisa-methodology.md), the final DPC is capped at 4.0 and floored at 1.0. Where adjustments would exceed the cap (e.g., Art. 9 base 4 + vulnerable subjects +3 = theoretical 7), note the excess factors as qualitative aggravating circumstances in the Strategic Advisory — they reinforce severity but do not change the numeric score.
EI (Ease of Identification): 0.25-1.00
| Level | Score |
|-------|-------|
| Negligible | 0.25 |
| Limited | 0.50 |
| Significant | 0.75 |
| Maximum | 1.00 |
CB (Circumstances): 0-2 (additive)
| SE Score | Level | Presumptive action (subject to Art. 33/34 legal test) |
|----------|-------|-------------------------------------------------------|
| < 2 | LOW | Presumption: internal log only (Art. 33(5)) |
| 2 – < 3 | MEDIUM | Presumption: SA notification (Art. 33) |
| 3 – < 4 | HIGH | Presumption: SA + Data Subjects (Art. 33 & 34) |
| ≥ 4 | VERY HIGH | Presumption: SA + Subjects + consider public communication |
The ENISA score informs the legal assessment; it does not mechanically determine notification duties. The statutory triggers are normative legal tests:
Every assessment MUST contain a written bridge from score to conclusion:
LEGAL BRIDGE
ENISA score: [SE value + level]
Key facts: [what happened, to whose data, at what scale]
Safeguards: [in place before the breach / applied after]
Likely impact: [likelihood & severity of consequences for individuals]
→ Art. 33(1): [NOTIFY SA / NO — unlikely to result in a risk, because …]
→ Art. 34(1): [NOTIFY SUBJECTS / NO — no high risk, because … /
NO — exception Art. 34(3)(a)/(b)/(c) applies, because …]
If the legal conclusion diverges from the score's presumption — in either direction — state why in writing. The score creates a presumption; the bridge is the decision. A worked example is in references/enisa-methodology.md §4a.
When a score is within 0.25 of a threshold (2.0 / 3.0 / 4.0), explicitly note this in the assessment, apply the borderline guidance table in references/enisa-methodology.md §4b, lean conservative, and recommend the user discuss the borderline classification with their DPO or legal counsel.
| Flag | Condition | Effect |
|------|-----------|--------|
| 🚩 SCALE | >100 individuals | Increased SA scrutiny |
| 🔒 ENCRYPTED | Data encrypted, key secure | May support Art. 34(3)(a) exception |
| 👶 VULNERABLE | Minors, patients | Consider upgrading notification |
| ⚠️ CROSS-BORDER | Cross-border processing | One-stop-shop analysis (see Cross-Border Rules) |
| 🇬🇧 UK SUBJECTS | UK residents affected | Separate ICO notification required (see UK note below) |
| 🤖 AI SYSTEM | AI system involved | Check AI Act Art. 73 obligations |
UK GDPR Note: For UK-resident data subjects, ICO guidance may differ from EDPB recommendations. The UK is not bound by EDPB guidelines — it follows ICO guidance under the UK GDPR and Data Protection Act 2018. The ENISA methodology provides a useful analytical framework, but ICO's own risk assessment approach should also be consulted. Always use the ICO's self-assessment tool when available, and note that the ICO has its own notification portal and forms separate from any EU SA.
Defensible breach decisions separate what is known from what is assumed. Every assessment output must contain:
EVIDENCE POSTURE
Established facts: [verified, with source — logs, forensics, admissions]
Working assumptions: [explicitly labelled, with their basis]
Material unknowns: [what is not yet known that could change the verdict]
Evidence still needed: [next fact-finding actions — owner, deadline]
Confidence level: [HIGH / MEDIUM / LOW]
Impact on notification: [how the unknowns affect the Art. 33/34 conclusions]
Never present an assumption as a fact. Phased notification (Art. 33(4)) exists precisely so that incomplete facts do not delay the initial notification.
If the user confirms the breach involves an AI system, perform an additional assessment:
Full detail (definitions, deadlines, deferrals): read references/parallel-regimes.md.
When the AI SYSTEM flag is set, insert this block into the Assessment Dashboard as its own AI ACT STATUS section (placed before LEGAL VERDICT), in addition to the one-line AI Act Art. 73 row:
AI ACT STATUS: [Applicable / Not Applicable / Not Yet Applicable / Requires Further Assessment]
Art. 73 Reporting: [Required / Not Required / Not Yet Applicable / Under Assessment]
AI System Classification: [High-Risk Annex III / High-Risk Annex I product-embedded / Limited Risk / Minimal Risk / Not Classified]
Do not take the user's Annex III classification at face value: a CE-marked medical device or other Annex I regulated product is product-embedded high-risk (application 2 Aug 2027; Art. 73(9)-(10) defer largely to sectoral vigilance regimes such as MDR/IVDR, which may impose live reporting duties today). Recommend verifying with the user's regulatory team.
A personal data breach often triggers duties outside the GDPR. Run a lightweight screen after the GDPR assessment — or directly at triage exit for SECURITY INCIDENT ONLY verdicts — identify, do not analyse in depth unless the user asks:
| Regime | Trigger Hint |
|--------|--------------|
| NIS2 / national implementation | Essential/important entity with a significant ICT incident — if the nis2-navigator skill is available, use it for that track |
| DORA | Financial entity with an ICT-related incident |
| eIDAS | Trust service provider |
| AI Act Art. 73 | High-risk AI system serious incident (see above) |
| ePrivacy / telecoms | Provider of publicly available electronic communications services |
| Criminal law | Report to police/judicial authorities (also an EDPB template field) |
| Insurance | Cyber policy notification clauses — often short windows |
| Contracts | Customer/partner notification clauses beyond DPAs |
| Employment | Works council / employee representative involvement where employee data is affected (especially in Germany) |
Output line for the dashboard: "Potential parallel regimes identified: list] — not assessed in detail unless requested." Details and screening questions: [references/parallel-regimes.md.
After risk assessment, match to EDPB Guidelines 01/2021 cases. See references/edpb-cases.md.
Categories:
Analogy warning: EDPB cases are illustrative analogies, not binding decisions. Factual differences matter, and an analogy never replaces the Art. 33/34 legal test on the actual facts. State the closest case, the limits of the analogy, and where your facts differ (see the analogy rules in the reference).
Output format:
> "This scenario resembles EDPB Case [XX]: [Description]. EDPB recommendation: SA [YES/NO], Subjects [YES/NO]. Your situation differs in: [differences]. Limits of the analogy: [limits]. This [supports/suggests reconsidering] your calculated verdict."
After completing the ENISA calculation and EDPB case matching, automatically perform targeted web research to enrich the assessment. Read references/web-research.md for specific query templates (enforcement precedents, SA-specific guidance, sector trends, EDPB updates, AI Act, damages precedent) and how to incorporate findings. Apply the source discipline rules in that reference: official sources (SA / EDPB / Commission) first, no SEO or marketing pages as the basis for legal conclusions, cite access dates, and never invent portal links or SA contact details. Add a "Regulatory Intelligence" section to the Assessment Dashboard.
One-stop-shop requires genuine cross-border processing (Art. 4(23)) — processing in the context of establishments in more than one Member State, or processing that substantially affects individuals in more than one Member State. Do not assume cross-border processing merely because affected individuals live in several Member States — the test is the processing, not subject residence. Analyse before applying the one-stop-shop.
For the identified Lead SA or relevant SA(s), use web_search to find:
For Germany, route between BfDI (federal bodies, telecoms/post) and the LfDI/LDA of the relevant Bundesland (private sector) — see the Germany routing rules in references/web-research.md.
Output the SA contact details in the Assessment Dashboard. In processor-only (Track B) runs, frame SA details as courtesy material for the controller handoff package — never as a portal the processor should use itself — and mark the dashboard's "Notify SA" / SA-deadline rows as downstream controller duties (N/A for the processor).
After the risk assessment, generate a tailored mitigation playbook specific to the incident — not a generic checklist but case-driven actions that actually matter for THIS breach.
Read references/mitigation-playbook.md for the full playbook design principles, output format (prioritized action plan with owner/deadline/dependencies), and common action categories to draw from.
If user disagrees with calculated severity:
> ⚠️ REGULATORY RISK WARNING
> You are selecting lower severity than ENISA indicates. If the SA later determines higher severity was warranted, this may increase regulatory scrutiny and result in separate sanctions. Recommend documenting with legal counsel involvement.
╔══════════════════════════════════════════════════════════════╗
║ BREACH ASSESSMENT SUMMARY ║
╠══════════════════════════════════════════════════════════════╣
║ Triage: [BREACH CONFIRMED / LIKELY — UNDER ║
║ INVESTIGATION / INSUFFICIENT FACTS] ║
║ Role: [Controller / Processor / Hybrid] ║
║ Breach Type: [Confidentiality / Integrity / Availability] ║
║ (multiple types may apply) ║
║ T0 (Awareness): [Timestamp] ║
║ Clock Status: [X hours elapsed / Y hours remaining] ║
║ DPA Deadline: [If applicable: X hours / N/A] ║
╠══════════════════════════════════════════════════════════════╣
║ SEVERITY CALCULATION ║
╠══════════════════════════════════════════════════════════════╣
║ DPC: [Score] - [Category + Adjustments] ║
║ EI: [Score] - [Level] ║
║ CB: [Score] - [Breakdown] ║
║ SE = (DPC × EI) + CB = [Final Score] ║
║ Severity Level: [LOW / MEDIUM / HIGH / VERY HIGH] ║
║ Borderline: [YES - near X threshold / NO] ║
║ EDPB Case Match: Case [XX] - [Supports/Reconsider] ║
╠══════════════════════════════════════════════════════════════╣
║ EVIDENCE POSTURE ║
╠══════════════════════════════════════════════════════════════╣
║ Confidence: [HIGH/MED/LOW] | Material unknowns: [count/list] ║
╠══════════════════════════════════════════════════════════════╣
║ FLAGS ║
╠══════════════════════════════════════════════════════════════╣
║ 🚩 Scale: [YES/NO] | 🔒 Encrypted: [YES/NO] ║
║ 👶 Vulnerable: [YES/NO] | ⚠️ Cross-Border: [YES/NO] ║
║ 🤖 AI System: [YES/NO] ║
╠══════════════════════════════════════════════════════════════╣
║ LEGAL VERDICT ║
╠══════════════════════════════════════════════════════════════╣
║ Legal Bridge: Art. 33(1) [notify / no risk] ║
║ Art. 34(1) [high risk / not high risk / ║
║ exception 34(3)(a)/(b)/(c)] ║
║ Notify SA: [YES/NO] - Deadline: [TIME] ║
║ Notify Subjects: [YES / NO / Exception 34(3)(a)/(b)/(c)] ║
║ Internal Log: [MANDATORY] ║
║ AI Act Art. 73: [Required/Not Required/Not Yet Applicable/ ║
║ N/A] ║
║ Parallel Regimes: [list or "none identified"] ║
╠══════════════════════════════════════════════════════════════╣
║ SA CONTACT DETAILS ║
╠══════════════════════════════════════════════════════════════╣
║ Lead SA: [Name] ║
║ Portal: [URL] ║
║ Contact: [Email / Phone] ║
║ Additional SAs: [If cross-border without one-stop-shop] ║
╠══════════════════════════════════════════════════════════════╣
║ REGULATORY INTELLIGENCE ║
╠══════════════════════════════════════════════════════════════╣
║ [Summary of relevant enforcement precedents and guidance] ║
╚══════════════════════════════════════════════════════════════╝
Whenever the facts or the score suggest possible high risk, run a dedicated Art. 34 analysis — never reduce it to a yes/no line:
Read references/art34-communication.md for the full decision framework, and record the outcome in an Art. 34 Decision Memo (see references/templates.md).
After presenting the Assessment Dashboard, deliver a strategic advisory as a senior data protection lawyer briefing the client's crisis team. This goes beyond the ENISA score — it's what separates competent compliance from excellent incident response.
Read references/strategic-advisory.md for the full advisory framework, principles, section structure, and tone examples. Cover: Case Assessment & Risk Landscape, SA Interaction Strategy, Notification Drafting Guidance, Hidden Risks & Second-Order Effects, Defensive Documentation, and Competitive Advantage in Crisis.
After completing the assessment, offer to generate audit-ready .docx documents.
10. Complete Breach Response Package — All applicable documents bundled
On request — and proactively whenever SA notification is required — build the EDPB-template-aligned breach evidence file: one document mirroring the numbered structure of the EDPB *Template 2026] for personal data breach notification* (§1 notification info through §7 attachments). Fill every field from the assessment; mark gaps [UNKNOWN — investigate] and inapplicable fields [N/A]. Always flag the template's draft / public-consultation status and that national SA portals remain authoritative until adoption. Read [references/edpb-template-evidence-file.md for the field map, fill rules, and document skeleton.
Read references/templates.md for document templates and formatting standards (A4, Arial 11pt, headers/footers, ISO 8601 dates). Check for a docx generation skill (docx-processing-anthropic in Claude Code, or /mnt/skills/public/docx/SKILL.md in Claude.ai Projects). Fall back to Markdown if unavailable. Pre-fill values from the assessment; mark gaps with [TO BE COMPLETED].
After the initial assessment, offer ongoing case management. Read references/post-notification-tracking.md for the tracking dashboard template covering SA notification status (including follow-up and withdrawal), subject communication, mitigation execution phases, and documentation completion.
At the end of each session, remind the user:
Display:
> ⚡ EMERGENCY MODE ACTIVATED
> Generating minimum viable assessment.
Abbreviated Intake (8 questions):
Rapid Calculation:
Emergency Output:
10. Encryption doesn't erase breach — Still document internally
11. UK is separate — Requires ICO notification post-Brexit; ICO guidance may differ from EDPB; use ICO's own self-assessment tool and notification portal
12. AI systems have parallel obligations — AI Act Art. 73 runs alongside GDPR (applies from 2 Aug 2026)
13. EDPB Template [2026] is a DRAFT — Under public consultation until 5 Aug 2026; national SA portals remain authoritative
14. Always offer document generation — Audit-ready .docx files, not just chat output
15. Research the specific SA — Portal URLs and requirements vary significantly
| Document | Version | Last Verified |
|----------|---------|---------------|
| EDPB Guidelines 9/2022 (Notification) | v2.0 | Check for updates via web search |
| EDPB Guidelines 01/2021 (Examples) | v2.0 | Check for updates via web search |
| ENISA Severity Methodology | v1.0 | Check for updates via web search |
| EU AI Act (Regulation 2024/1689) | In force; Art. 73 applies from 2 Aug 2026 | Art. 73 serious incident reporting |
| EDPB Template [2026] for personal data breach notification | v1.0 DRAFT — public consultation until 5 Aug 2026 | Evidence-file structure; check consultation outcome via web search |
Important: Regulatory guidance evolves. The Dynamic Web Research Module should be used in every assessment to check for updates to these foundational documents.
This skill works standalone, but pairs well with my other EU data-protection skills — install any on its own or combine them:
Take lawve-ai/gdpr-breach-sentinel-oliver-schmidt-prietz from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.