gdpr-audit
GDPR compliance audit of code, plans, schemas, or IaC. Produces a findings report with article citations, severity, confidence, and fixes; flags evidence gaps. Not a substitute for a DPO/lawyer.
What this skill does
# GDPR Audit A detection-guide-driven audit skill. Reads code / plan / schema / IaC artifacts and returns a structured findings report with GDPR article citations, severity, confidence, evidence, and recommended fixes. **Output is "technical GDPR audit of provided materials" — never "GDPR compliant" or "non-compliant".** Compliance is a legal determination; this skill provides technical evidence and gap analysis. Always include the disclaimer at the end of the report. ## When to use - Auditing an existing codebase, repo, or directory tree - Reviewing an implementation plan, design doc, or RFC for GDPR implications - Reviewing a database schema or data model for personal data handling - Reviewing IaC (Terraform / Pulumi / CDK / k8s manifests) for transfers, encryption, region constraints - Pre-DPIA technical scoping - Vendor onboarding (auditing the integration code of a new processor / SDK) ## When NOT to use - Drafting privacy notices, DPAs, or DPIAs from scratch — that's a writing task, not an audit - Compliance certification, regulatory filings, or DPA correspondence — needs a qualified DPO / lawyer - Org-maturity assessment (training, governance, DPO independence) — not visible from code / plan input - Auditing non-GDPR jurisdictions (CCPA, LGPD, PIPL) — citations and triggers will be wrong --- ## Audit workflow Run these phases in order. Do not skip phases. ### Phase 1 — Scope statement State explicitly what was reviewed and what wasn't, before any findings. ``` ## Scope - Materials reviewed: <repo, commit/SHA, branch, paths or "full tree"> - Date of audit: <YYYY-MM-DD> - Excluded: <e.g., binary assets, vendored deps, test fixtures, .git history> - Assumptions: <e.g., "controller role assumed unless evidence indicates processor role"> - Missing context: <list of org/policy artifacts not provided to the audit> ``` This protects the audit from being misread as exhaustive. ### Phase 2 — Processing map (build first, find against second) Before scanning for issues, build a processing map. Every later finding ties back to a row here. ``` | Activity | Data categories | Subjects | Purpose | Lawful basis (claimed / inferred / unclear) | Recipients / processors | Country / region | Retention (claimed / inferred / unclear) | ``` Sources for the map: API routes, DB schemas, env vars, IaC region constraints, third-party SDK invocations (Stripe, Auth0, Segment, GA, Sentry, Datadog, Supabase, AWS clients), background jobs, cron, queue consumers, ML / AI training pipelines. If no processing map can be built (truly opaque artifact), say so and stop. A findings report without a processing map is unfounded. See `references/01-data-discovery.md` for detection signals. ### Phase 3 — Detection sweep using the reference guides For each row in the processing map, walk the relevant guides in `references/`. Each guide is a detection guide with: what to look for, signals, severity rules, false-positive controls, stack-specific examples, evidence needed. Guides to walk for every audit: 01, 02, 06, 07, 09, 10, 14, 15. Conditional guides (see Trigger overlays below): 03, 04, 05, 08, 11, 12, 13. ### Phase 4 — Findings emission Emit findings using the schema below. One finding per discrete gap. ### Phase 5 — Report assembly Order: Scope → Processing map → Findings table (sorted Critical → Low within each finding type) → Finding details → Summary of finding-type distribution → Recommended next actions → Disclaimer. ### Phase 6 — Drill-down offer After the report, offer: > "I can draft concrete patches for any of these findings on request. Tell me the finding number(s) and I'll generate the actual code / SQL / IaC / markdown changes." Do not produce patches in the initial report — they bury the audit signal. --- ## Finding schema Every finding has these fields. Missing fields = finding is incomplete. ```yaml id: F-NN # sequential within report title: <short noun phrase> severity: Critical | High | Medium | Low finding_type: confirmed_issue | likely_issue | evidence_gap | advisory confidence: High | Medium | Low risk_to_rights: <what could happen to a data subject — not "fines"> location: <file:line | section heading | "(absence)"> articles: [Art. 5(1)(c), Art. 25(2), Recital 39] guidance: [EDPB Guidelines 4/2019 on Article 25, ICO Right of Access guidance] # optional affected_data: [email, IP, payment, health, children, employees, ...] affected_subjects: [end users, employees, vendor staff, ...] processing_activity: <signup | billing | analytics | recommendation | support_export | ...> evidence: | <verbatim snippet from code / plan, with file:line> recommended_fix: | <1–3 sentences. Not a patch.> verification_needed: | <what specific evidence would close this finding> ``` ### Severity rubric | Severity | Meaning | |---|---| | **Critical** | Direct violation with high risk to rights AND high confidence. Examples: clear-text PII in public logs; consumer EU data sent to third country with no transfer mechanism; high-risk profiling without DPIA. | | **High** | Direct violation OR high-risk gap with material confidence. A supervisory authority would likely act if discovered. | | **Medium** | Material gap with rectifiable design choice. Would be remediation in a real audit. | | **Low** | Best-practice deviation. No immediate risk. | Severity is **not** likelihood × impact — that pseudo-precision misleads. Severity captures the audit-judgment call; **confidence** is the separate axis. ### finding_type | Type | Meaning | Example | |---|---|---| | `confirmed_issue` | Positive evidence shows a violation | `analytics.track(user.email)` fires before consent is recorded | | `likely_issue` | Strong signal but missing context to be certain | High-risk profiling code present; lawful basis claim unclear | | `evidence_gap` | A control SHOULD be visible but isn't | Stripe SDK detected; DPA evidence not found in provided materials | | `advisory` | Technically defensible, design-level improvement | Pseudonymization could replace direct identifiers in `analytics_events` | **Discipline rule for `evidence_gap`:** only flag absence when there is positive evidence of processing AND a reasonably expected control. *"No `docs/ropa.md`"* is **not** a finding. *"Stripe SDK + cross-border data flow + no DPA artifact in provided materials"* **is** an `evidence_gap`. The skill does not invent organizational policy gaps from thin air. ### confidence | Level | Meaning | |---|---| | High | Direct code evidence, no plausible alternative interpretation | | Medium | Strong inference from signals; alternative interpretations exist but are less likely | | Low | Pattern-based suspicion; needs human verification | --- ## Trigger overlays Apply these when their triggers fire. They escalate severity, force chapter walks, and add national context. ### Children's data overlay **Trigger:** schema/forms accept date of birth, age, school, parent contact; product is consumer/social/educational; signup form lacks age gate. **Effect:** every finding involving children's data goes up one severity tier. Cite Art. 8 + Recital 38. Member State age threshold (13–16) flagged for verification. Data minimization scrutinized harder. ### Special category overlay (Art. 9, 10) **Trigger:** schema fields suggest health, biometric, genetic, racial/ethnic, political, religious, trade-union, sex life, sexual orientation, criminal convictions; medical/HR/insurance domain. **Effect:** severity floor of **High** for any unprotected processing. Art. 9(2) basis must be explicitly cited. Security expectations rise (Art. 32 + Art. 9 combined). DPIA almost certainly required (force ch14). ### Profiling / automated decision overlay (Art. 22) **Trigger:** code performs scoring, ranking, fraud detection, recommendation, embeddings on personal data, automated KYC, automated employment decisions. **Effect:** force walk of ch13 and ch14. Flag Art. 22 even if the system is not "solel
Related in Security
mac-ops
IncludedComprehensive macOS workstation operations — diagnose kernel panics, identify failing drives, audit launchd startup items, decode wake reasons, triage TCC permission denials, manage APFS snapshots, recover from no-boot. Use for: Mac is slow, slow bootup, won't boot, kernel panic, kernel_task hot, mds_stores CPU, photoanalysisd, cloudd, login loop, gray screen, sleep wake failure, drive failing, IO errors, APFS snapshots eating space, Time Machine local snapshots, Spotlight indexing, launchd, LaunchAgent, LaunchDaemon, login items, TCC permissions, Full Disk Access, Screen Recording denied, Gatekeeper, quarantine, com.apple.quarantine, app is damaged, helper tool, /Library/PrivilegedHelperTools, pmset, wake reasons, dark wake, sysdiagnose, panic.ips, DiagnosticReports, configuration profile, MDM profile, remote diagnostics over SSH.
a11y-audit
IncludedRun accessibility audits on web projects combining automated scanning (axe-core, Lighthouse) with WCAG 2.1 AA compliance mapping, manual check guidance, and structured reporting. Output is configurable: markdown report only, markdown plus machine-readable JSON, or markdown plus issue tracker integration. Use this skill whenever the user mentions "accessibility audit", "a11y audit", "WCAG audit", "accessibility check", "compliance scan", or asks to check a web project for accessibility issues. Also trigger when the user wants to verify WCAG conformance or map findings to a specific standard (CAN-ASC-6.2, EN 301 549, ADA/AODA).
erpclaw
IncludedAI-native ERP system with self-extending OS. Full accounting, invoicing, inventory, purchasing, tax, billing, HR, payroll, advanced accounting (ASC 606/842, intercompany, consolidation), and financial reporting. 413 actions across 14 domains, 43 expansion modules. Constitutional guardrails, adversarial audit, schema migration. Double-entry GL, immutable audit trail, US GAAP.
assess
IncludedAssesses and rates quality 0-10 across multiple dimensions (correctness, maintainability, security, performance, testability, simplicity) with pros/cons analysis. Compares against project conventions and prior decisions from memory. Produces structured evaluation reports with actionable improvement suggestions. Use when evaluating code, designs, architectures, or comparing alternative approaches.
spring-boot-security-jwt
IncludedProvides JWT authentication and authorization patterns for Spring Boot 3.5.x covering token generation with JJWT, Bearer/cookie authentication, database/OAuth2 integration, and RBAC/permission-based access control using Spring Security 6.x. Use when implementing authentication or authorization in Spring Boot applications.
code-hardcode-audit
IncludedDetect hardcoded values, magic numbers, and leaked secrets. TRIGGERS - hardcode audit, magic numbers, PLR2004, secret scanning.