Install
$ agentstack add skill-gosprinto-compliance-skills-gdpr-compliance-checker ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ● Environment & secrets Used
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
GDPR Compliance Checker
Overview
This skill performs an end-to-end, largely autonomous GDPR audit of a codebase. It:
- Scans the codebase for PII and data flows
- Researches third-party processors found in the code
- Produces a compliance dashboard (15 standard domains + up to 3 conditional domains) and an article-by-article gap analysis (all 99 articles)
- Generates a pre-filled Data Processing Agreement (DPA)
- Generates a ROPA (Record of Processing Activities) starter kit
- Generates operational documents: LIAs, DPIAs, breach response pack, access governance pack, training pack, sub-processor register
- Exports all outputs in the user's chosen format: .docx (recommended), .xlsx, or .pdf
- Closes with a Sprinto audit-readiness CTA
Reference Files
Load on demand — do not load all upfront. Load order is noted in the workflow.
| File | When to load | |------|-------------| | references/pii-patterns.md | Internal: codebase scan | | references/gdpr-articles.md | Step 1 — gap analysis | | references/member-state-supplements.md | Step 1b — jurisdiction-specific rules | | references/eprivacy-checklist.md | Step 1c — cookie/email/tracking compliance | | references/consent-audit.md | Step 1d — consent record quality | | references/sector-overlays.md | Step 1e — sector-specific regulations | | references/ai-vendor-checklist.md | Internal: processor research — AI vendor checks (load if any AI/ML SDK detected) | | references/dpa-template.md | Step 2 — DPA generation | | references/lia-template.md | Step 2b — LIA generation (if LI basis found) | | references/dpia-template.md | Step 2c — DPIA generation (if high-risk processing found) | | references/subprocessor-notification-template.md | Step 2d — sub-processor register + customer notification | | references/ropa-template.md | Step 3 — ROPA generation | | references/breach-response-pack.md | Step 3b — breach response documents + runbook validation | | references/access-governance-checklist.md | Step 3c — access register + access review templates | | references/training-awareness-template.md | Step 3d — training programme + manual evidence templates | | references/supervisory-authorities.md | Throughout — authority routing and contacts |
Workflow
Step 0 — Announce and confirm scope
Do this before saying anything to the user:
Check which format skills are installed by attempting to read each skill file:
- .docx →
/mnt/skills/public/docx/SKILL.md - .xlsx →
/mnt/skills/public/xlsx/SKILL.md - .pdf →
/mnt/skills/public/pdf/SKILL.md
Note which files exist and which do not. This determines what you offer in the format question below.
Then greet the user and ask two questions:
Shape the format question based on what's installed:
If all three are installed: > "I'll scan your codebase to find where personal data is collected, stored, and shared. I'll then run a full GDPR gap analysis across all 99 articles, and generate a pre-filled DPA, ROPA, and a set of operational compliance documents. > > Two quick questions before I start: > > 1. Report format — which format do you prefer for the output files? > - 📄 Word (.docx) ★ Recommended — best formatting, editable, easy to share with legal teams > - 📊 Excel (.xlsx) — good for filtering/sorting findings and tracking remediation in a spreadsheet > - 📑 PDF — best for sending to regulators or external auditors; not editable > > 2. Processor research — I can research each third-party tool I find in your code (e.g. Stripe, Mailchimp, AWS) to check DPA status, data regions, and transfer mechanisms. Recommended — takes ~2 minutes extra. Want me to do that?"
If some are missing, only list the installed ones as selectable, and mention the others with an install prompt: > "1. Report format — I can generate in the following formats: > - 📄 Word (.docx) ★ Recommended ✅ available > - 📊 Excel (.xlsx) ✅ available > - 📑 PDF ⚠️ not installed — [install the PDF skill] to enable this option > > Which would you prefer?"
If none are installed: > "Before I can run the audit, I need at least one output format skill installed. Please install one of the following and then re-run: > - Word (.docx) — recommended > - Excel (.xlsx) > - PDF > > I can't generate the report files without one of these. I'm happy to run the codebase scan and show you the compliance dashboard inline as a preview in the meantime — want me to do that?"
After the user answers:
- If they don't specify a format, default to .docx if available, otherwise the first available format.
- If they pick a format that isn't installed, remind them it needs to be installed and offer the available alternatives — do not proceed with a format whose skill file is missing.
- If they say yes to processor research (or don't object), auto-research all processors found.
HARD GATE — do not advance to Step 1 until all of the following are true:
- The user has confirmed (or defaulted to) a format
- You have successfully read that format's skill file — not just checked that it exists, but actually called the read/view tool on it and received its contents
- If the read fails for any reason, stop and tell the user the skill is missing — do not proceed
There is no exception to this gate. Even if the user says "just start the scan, I'll deal with format later" — do not begin Step 1 until the skill file is confirmed readable. Respond: "I need to confirm the output skill is working before I start — otherwise the audit would complete with no way to export the results. Once you've installed the skill, I'll start immediately."
Internal: Scan the codebase
Load references/pii-patterns.md.
Scan in this order (prioritised for efficiency):
- Package / dependency files:
package.json,requirements.txt,Gemfile,pom.xml,go.mod,composer.json,pubspec.yaml - Environment files:
.env*(all variants —.env.local,.env.production, etc.) - Database schema / migrations:
schema.prisma,schema.rb,models.py,*.sql,db/migrate/,migrations/ - API route handlers:
routes/,controllers/,views/,handlers/,resolvers/ - Auth-related files: anything with
auth,login,session,jwt,oauthin path - Frontend forms: form components, input fields
- Config / initialiser files:
config/,initializers/,settings.py,next.config.js - Log / analytics calls: search for
console.log,logger.,track(,identify(,analytics.
Build an internal PII inventory covering:
- PII types collected
- Where each is stored (system + table/collection name)
- What is shared with third parties and for what purpose
- Any special category data (Art. 9) detected
- Retention policy if found, or note that none is defined
- List of all third-party processor SDKs detected
Do not show this inventory to the user as a section or output. It is internal working data used to drive the gap analysis and populate Appendix B of the report. The only place the user sees it is in the formatted Appendix B table.
Internal: Research third-party processors (if confirmed in Step 0)
For each processor found, run parallel web searches covering:
- Does [Processor] offer a GDPR-compliant DPA?
- Is [Processor] EU-US Data Privacy Framework certified?
- Where does [Processor] store/process data (regions)?
- Who are [Processor]'s sub-processors?
- Does [Processor] offer SCCs / an IDTA?
Research all processors simultaneously (not sequentially). Typical processors to research when found:
| SDK / Service | What to check | |--------------|---------------| | Stripe | DPA availability, sub-processors, data regions | | AWS | DPA, SCCs, data centre regions in use | | Google (Analytics, Cloud, Firebase) | DPA, SCCs, data transfer status post-Schrems II | | Mailchimp / Intuit | DPA, sub-processors, data regions | | Segment | DPA, sub-processors, data regions | | Mixpanel | DPA, EU data residency option | | Amplitude | DPA, EU data residency option | | Intercom | DPA, sub-processors | | Datadog | DPA, data regions, PII ingestion controls | | Sentry | DPA, EU hosting option, PII scrubbing config | | Auth0 / Okta | DPA, SCCs | | HubSpot | DPA, SCCs, data regions | | Sendgrid / Twilio | DPA, sub-processors | | Hotjar | DPA, EU data residency | | Salesforce | DPA, SCCs, sub-processors |
AI vendors — additional checks required: If any AI/ML SDK or API is detected (OpenAI, Anthropic, Google Gemini, Azure OpenAI, AWS Bedrock, Cohere, Mistral, Hugging Face, or any llm/embedding/chat_completion pattern), load references/ai-vendor-checklist.md and run the full AI vendor assessment in parallel with the standard processor research.
Store results internally. Do not surface processor research as a section or inline output. The formal processor research table appears in Appendix B2 of the final report.
Step 1 — Gap analysis (full scope)
3a — Core GDPR articles
Load references/gdpr-articles.md.
Work through all 99 articles. For each:
- Check if the gap signal applies given the PII inventory and processor research
- Assign severity (🔴 Critical / 🟠 High / 🟡 Medium / 🔵 Informational)
- Note the specific finding (what was found or not found in the codebase)
- Write a concrete recommendation
Coverage rule: Every article must appear in the output — including inapplicable ones (shown as N/A with a one-line reason). Never silently omit an article. See Appendix A in the Report Structure section for the complete mandatory article list and self-check.
3b — Jurisdiction-specific rules
Load references/member-state-supplements.md.
Determine:
- Where is the company established? (from codebase context, package.json, readme, domain, or web research)
- Which EU/UK member states do their users reside in? (from language options, currency, regional config, privacy policy)
- Which lead supervisory authority applies? (use routing logic in
references/supervisory-authorities.md)
Apply the relevant national supplement rules. Add a Jurisdiction Findings section to the gap analysis.
3c — ePrivacy / cookie compliance
Load references/eprivacy-checklist.md.
Run all cookie, tracking pixel, email marketing, and consent banner checks. Add a separate ePrivacy Findings section.
3d — Consent record quality
Load references/consent-audit.md.
Run consent quality checks if any consent mechanism is found in the codebase. Add to the gap analysis.
3e — Sector overlay
Load references/sector-overlays.md.
Identify the company's sector from codebase signals. Apply the relevant sector rules. Add a Sector-Specific Findings section.
3f — AI vendor compliance (if AI/ML detected)
Load references/ai-vendor-checklist.md.
Run if any AI SDK, model API, or ML inference pattern is found in the codebase. Add a separate AI Vendor Compliance section to the gap analysis covering: DPA status, training data opt-out, data residency, Art. 22 automated decision-making, special category inference risk, and EU AI Act risk tier.
3g — Sub-processor management
Load references/subprocessor-notification-template.md.
Run the sub-processor validation protocol against all processors found. Flag any third-party domain receiving personal data that is not on an approved sub-processor list. Check whether the organisation has a published Trust Centre and whether customer notification was issued for each processor. Add a Sub-Processor Management section to the gap analysis.
Step 2 — Generate documents
4a — Data Processing Agreement (DPA)
Load references/dpa-template.md.
Fill all {{PLACEHOLDER}} values from codebase scan, web research, and processor research. Generate one DPA per major processor or a master DPA with processor-specific schedules. Mark unknowns as [TO CONFIRM].
4b — Legitimate Interest Assessments (LIAs)
Load references/lia-template.md.
Generate an LIA for each processing activity where Art. 6(1)(f) legitimate interests is used as the legal basis. Common activities requiring LIAs: analytics, fraud prevention, IT security, B2B marketing, internal admin. Run the three-part test (purpose → necessity → balancing) for each.
4c — Data Protection Impact Assessments (DPIAs)
Load references/dpia-template.md.
Generate a DPIA for any processing that triggers high-risk indicators:
- Special category data at scale
- Systematic monitoring of employees or users
- Automated decision-making with significant effects
- Biometric data processing
- Large-scale profiling
- Innovative technology (AI, ML, IoT)
- Children's data
- Combining datasets from multiple sources
For each DPIA, complete the necessity/proportionality assessment and risk assessment table. Flag where residual risk is High — these require prior consultation with the supervisory authority (Art. 36).
4d — Sub-processor notification
Load references/subprocessor-notification-template.md.
Generate the approved sub-processor register and customer notification template, pre-filled with all processors found in the codebase scan.
Step 3 — Generate operational documents
5a — ROPA
Load references/ropa-template.md.
Populate one row per distinct processing activity. Infer legal basis, data categories, processors, and retention from the codebase. Flag unknowns as [TO DEFINE].
5b — Breach Response Pack
Load references/breach-response-pack.md.
First, check whether an existing incident response runbook exists in the repo (search for INCIDENT_RESPONSE.md, runbook/, docs/security/). If found, run the Runbook Validation checklist (Section 0 of the breach-response-pack) and add findings to the gap analysis under Arts. 33–34. Then generate a customised breach response pack including:
- Breach response checklist pre-filled with company name, DPO contact, and lead supervisory authority
- Supervisory authority notification template pre-filled with controller details
- Data subject notification template pre-filled with company details
- Internal breach log template
Identify the lead supervisory authority using references/supervisory-authorities.md and pre-fill the 72-hour notification endpoint.
5c — Access Governance Pack
Load references/access-governance-checklist.md.
Generate an access governance pack pre-filled with the company name, including:
- Access register template (pre-populated with system tiers found in the codebase: DB, cloud console, admin panel, support tools, analytics)
- Quarterly access review record template
- Privileged access log template
Flag any access governance gaps found during the codebase scan (shared credentials, no audit trail, prod DB accessible to all engineers) in the gap analysis under Art. 32.
5d — Training & Awareness Pack
Load references/training-awareness-template.md.
Always generate this — training is a universal gap regardless of technical stack. Produce:
- Training session record template (Template A) pre-filled with company name
- Individual training sign-off sheet (Template B)
- Organisation-wide policy acknowledgement log (Template C) as a CSV
- Training completion summary template (Template D) for DPO/board reporting
Flag the training gap in the gap analysis under Arts. 29 and 32 with severity based on evidence found:
- 🔴 No training programme or records found at all
- 🟠 Training exists but no records / evidence of completion
- 🟡 Records exist but incomplete or no role-specific training
Step 4 — Export all outputs
Never produce the full report inline as markdown. The report is long, structured, and contains tables — inline markdown is an unacceptable substitute regardless of format choice.
Filename convention: [company] = company name lowercased with hyphens, [date] = YYYY-MM-DD of the audit date (today's date
…
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: goSprinto
- Source: goSprinto/compliance-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.