gdpr-dpa/SKILL.md
Generate a GDPR-compliant Data Processing Agreement (DPA) for a project. Use when asked to create, generate, or write a DPA or data processing agreement. Autonomously scans the project to identify all sub-processors (third-party services that handle personal data), then generates a minimal Article 28-compliant DPA covering actual data flows — no compliance theater, no unnecessary boilerplate. Works with any language or framework.
npx skillsauth add mikkelkrogsholm/dev-skills gdpr-dpaInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate a minimal, accurate DPA by scanning the project rather than interviewing the user.
Scan the project for service fingerprints. Check ALL of the following (not just package.json — this must work for any language):
Dependency files (read whichever exist):
package.json, package-lock.json, yarn.lock, pnpm-lock.yamlrequirements.txt, pyproject.toml, Pipfile, setup.pyGemfilego.modCargo.tomlcomposer.jsonpubspec.yamlInfrastructure and config files:
docker-compose.yml, Dockerfile.env.example, .env.sample, .env.templatecoolify.yaml, render.yaml, railway.toml, fly.toml*.config.*, *.toml, *.yaml, *.iniSource code signals:
api.stripe.com, sentry.io, api.resend.com, etc.)STRIPE_SECRET_KEY, SENTRY_DSN, RESEND_API_KEY, etc.)Cross-reference every discovered service against references/sub-processors.md to get GDPR metadata.
Scan schema files, models, and form handlers to identify what personal data is actually processed:
Before generating, list any issues found:
.env.example found — sub-processor list may be incompleteUse references/dpa-template.md as the template. Fill in:
[YOUR COMPANY NAME] and [CUSTOMER COMPANY NAME] as placeholders[DATE] as a placeholderOutput the DPA as a Markdown document ready to save as DPA.md in the project root.
development
Zod — TypeScript-first schema validation with static type inference. Use when building with Zod or asking about schema definitions, type inference, parsing, transformations, refinements, coercion, error handling, or integration with forms, APIs, or tRPC. Fetch live documentation for up-to-date details.
tools
Vite — next-generation frontend build tool with instant dev server and optimized production builds. Use when building with Vite or asking about its APIs, configuration, plugins, SSR, environment variables, or integration with frameworks. Fetch live documentation for up-to-date details.
tools
Upstash — serverless Redis, QStash, and Vector database with per-request pricing optimized for edge and serverless environments. Use when building with Upstash or asking about its Redis client, QStash message queuing, rate limiting, workflows, or vector search. Fetch live documentation for up-to-date details.
tools
Turso — edge-hosted SQLite database built on libSQL with embedded replicas, multi-tenancy, and low-latency global distribution. Use when building with Turso or asking about its libSQL client, embedded replicas, database-per-tenant patterns, auth tokens, sync, or integration with Drizzle or other ORMs. Fetch live documentation for up-to-date details.