
gdpr-valid-consent
Guide for implementing GDPR-valid consent under Article 7 conditions and Article 4(11) definition. Covers five core requirements: freely given, specific, informed, unambiguous, and clear affirmative action. Includes pre-ticked boxes prohibition per Planet49 CJEU C-673/17, consent form audit checklist, and practical implementation patterns.
- Installs
- 43
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/mukul975/privacy-data-protection-skills --skill gdpr-valid-consent- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads gdpr-valid-consent automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Implementing GDPR-Valid Consent
Overview
Valid consent under the GDPR is defined in Article 4(11) as "any freely given, specific, informed and unambiguous indication of the data subject's wishes by which he or she, by a statement or by a clear affirmative action, signifies agreement to the processing of personal data relating to him or her." Article 7 sets out the conditions for consent, and Recital 32 clarifies that silence, pre-ticked boxes, or inactivity do not constitute consent.
The Court of Justice of the European Union (CJEU) reinforced this in Case C-673/17 (Planet49 GmbH, October 1, 2019), ruling that pre-ticked checkboxes do not constitute valid consent for placing cookies, and that consent must be specific to each processing purpose.
The Five Requirements of Valid Consent
1. Freely Given (Article 7(4), Recitals 42-43)
Consent is not freely given if:
- There is a clear imbalance between the data subject and the controller (e.g., employer-employee relationships, public authority-citizen relationships)
- Consent is bundled as a non-negotiable condition of a service (the "conditionality test" under Article 7(4))
- The data subject suffers detriment for refusing or withdrawing consent
- There is no genuine choice or the individual feels compelled to consent
CloudVault SaaS Inc. Implementation: CloudVault SaaS Inc. separates consent for core cloud storage services from consent for analytics and marketing. Users who decline marketing consent retain full access to storage functionality. The sign-up flow explicitly states: "Declining optional data processing will not affect your access to CloudVault storage services."
2. Specific (Article 6(1)(a), Recital 32)
Consent must be:
- Granular: separate consent for each distinct purpose
- Named: the controller and any third-party controllers must be specifically identified
- Purpose-limited: clearly linked to a defined processing purpose
CloudVault SaaS Inc. Implementation: CloudVault SaaS Inc. presents three separate consent requests during onboarding:
- "Allow CloudVault SaaS Inc. to analyze your file usage patterns to recommend storage optimization" (Purpose: Service improvement)
- "Allow CloudVault SaaS Inc. to send you product update emails" (Purpose: Direct marketing)
- "Allow CloudVault SaaS Inc. to share anonymized usage statistics with Datalytics Partners Ltd. for industry benchmarking" (Purpose: Third-party analytics)
3. Informed (Article 13, Recitals 42, 60)
Before consenting, the data subject must be told at minimum:
- The identity of the controller (CloudVault SaaS Inc., registered at 42 Innovation Drive, Dublin, D02 YX88, Ireland)
- The purpose of each processing operation for which consent is sought
- The type of data collected
- The right to withdraw consent at any time
- Information about automated decision-making, including profiling (Article 22(2)(c))
- Risks of data transfers to third countries without an adequacy decision or appropriate safeguards (relevant if Article 49(1)(a) explicit consent applies)
CloudVault SaaS Inc. Implementation: Each consent request includes a layered notice: a short-form summary visible immediately and a "Learn More" expandable section with full Article 13 information. The language is plain English at a Flesch-Kincaid grade level of 8 or below.
4. Unambiguous Indication
The data subject's intention must be clear. According to Recital 32:
- Consent requires a clear affirmative act
- Silence, pre-ticked boxes, or inactivity do not constitute consent (confirmed in CJEU C-673/17 Planet49)
- Scrolling or continued browsing of a website does not meet this standard (EDPB Guidelines 05/2020, paragraph 86)
CloudVault SaaS Inc. Implementation: CloudVault SaaS Inc. uses unticked checkboxes for each consent purpose. The "Create Account" button is active regardless of consent choices. No default-on toggles are used. The UI state is logged to demonstrate that the user actively engaged each toggle.
5. Clear Affirmative Action (Article 4(11), Recital 32)
Acceptable forms of affirmative action include:
- Ticking an unticked checkbox
- Choosing technical settings on an information society service
- Typing a consent statement
- Signing a written declaration (including electronic signatures under eIDAS Regulation (EU) No 910/2014)
CloudVault SaaS Inc. Implementation: CloudVault SaaS Inc. records the specific UI interaction (checkbox tick, toggle switch activation) along with a timestamp, the user's session ID, the IP address, the version of the consent text displayed, and the user agent string.
Consent Form Audit Checklist
| # | Audit Item | GDPR Reference | Pass/Fail Criteria |
|---|---|---|---|
| 1 | Consent is separated from terms of service | Art. 7(2) | Consent request is clearly distinguishable from other matters |
| 2 | No pre-ticked boxes or default-on toggles | Art. 4(11), Recital 32, CJEU C-673/17 | All consent mechanisms start in the "off" state |
| 3 | Granular consent per purpose | Recital 32, EDPB Guidelines 05/2020 | Separate opt-in for each distinct processing purpose |
| 4 | Controller identity stated | Art. 7(2), Art. 13(1)(a) | Full legal name and contact details of data controller visible |
| 5 | Purpose clearly described | Art. 13(1)(c) | Each purpose described in plain language without legal jargon |
| 6 | Data types specified | Art. 13(1)(d) | Categories of personal data listed for each purpose |
| 7 | Third-party recipients named | Art. 13(1)(e) | Specific third parties (not categories) identified by name |
| 8 | Withdrawal mechanism explained | Art. 7(3) | Clear statement that consent can be withdrawn at any time with instructions |
| 9 | No detriment for refusal | Art. 7(4), Recital 42 | Service access not conditional on optional consent |
| 10 | Withdrawal as easy as giving | Art. 7(3) | Withdrawal requires equal or fewer steps than initial consent |
| 11 | Age verification present | Art. 8 | Age gate or verification for services directed at children |
| 12 | Language is plain and clear | Art. 7(2), Recital 42 | Flesch-Kincaid grade level 8 or below, no legal jargon |
| 13 | Consent records stored | Art. 7(1) | Timestamp, version, purpose, mechanism, identity recorded |
| 14 | Re-consent mechanism for purpose changes | Art. 13(3) | Process exists to obtain fresh consent when purposes change |
| 15 | No cookie walls blocking access | EDPB Guidelines 05/2020 para 39 | Content accessible regardless of cookie consent choices |
Implementation Workflow
-
Map Processing Activities — Identify every processing activity that relies on consent as its lawful basis under Article 6(1)(a). Document the purpose, data categories, recipients, and retention period for each.
-
Design Consent Mechanism — Create granular, unticked consent controls. Ensure the UI clearly separates each purpose. Follow EDPB Guidelines 05/2020 on consent.
-
Draft Consent Language — Write concise, plain-language descriptions for each purpose. Include all Article 13 information in a layered format. Test readability at Flesch-Kincaid grade level 8 or below.
-
Implement Record-Keeping — Build a consent receipt system that captures: timestamp (ISO 8601), consent version hash, purpose identifier, mechanism type (checkbox/toggle/signature), data subject identifier, and the exact text presented.
-
Build Withdrawal Mechanism — Implement one-click withdrawal accessible from the user's account dashboard. Ensure withdrawal triggers downstream processing cessation within 24 hours.
-
Run Audit — Use the checklist above to audit the consent implementation. Document findings and remediation actions.
-
Schedule Re-Audit — Set a recurring audit cadence (quarterly recommended) and after any UI changes that affect consent flows.
Key Regulatory References
- GDPR Article 4(11) — Definition of consent
- GDPR Article 6(1)(a) — Consent as lawful basis
- GDPR Article 7 — Conditions for consent
- GDPR Article 8 — Conditions applicable to child's consent
- GDPR Recitals 32, 33, 42, 43 — Guidance on consent requirements
- CJEU Case C-673/17 (Planet49 GmbH) — Pre-ticked boxes ruling
- EDPB Guidelines 05/2020 on consent under Regulation 2016/679
- eIDAS Regulation (EU) No 910/2014 — Electronic signatures for consent
FAQ
What does the gdpr-valid-consent skill do?
Guide for implementing GDPR-valid consent under Article 7 conditions and Article 4(11) definition. Covers five core requirements: freely given, specific, informed, unambiguous, and clear affirmative action. Includes pre-ticked boxes prohibition per Planet49 CJEU C-673/17, consent form audit checklist, and practical implementation patterns.
How do I install gdpr-valid-consent?
Run npx skills add https://github.com/mukul975/privacy-data-protection-skills --skill gdpr-valid-consent in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/gdpr-valid-consent/ (personal) or .claude/skills/gdpr-valid-consent/ (project).
Which AI agents can use gdpr-valid-consent?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is gdpr-valid-consent safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains gdpr-valid-consent?
It is published by mukul975 in mukul975/privacy-data-protection-skills. It has 43 recorded installs.
More from mukul975/privacy-data-protection-skills
brazil-lgpd
mukul975/privacy-data-protection-skills
Open the skill to read its SKILL.md instructions.
analytics-cookie-consent
mukul975/privacy-data-protection-skills
Managing consent for analytics cookies and implementing privacy-preserving measurement. Covers GA4 privacy configuration, consent mode fallback behavior, aggregate reporting alternatives, and cookieless measurement approaches.
audit-report-writing
mukul975/privacy-data-protection-skills
Open the skill to read its SKILL.md instructions.
gdpr-compliance-audit
mukul975/privacy-data-protection-skills
Open the skill to read its SKILL.md instructions.
conducting-gdpr-dpia
mukul975/privacy-data-protection-skills
Open the skill to read its SKILL.md instructions.
backup-retention-erasure
mukul975/privacy-data-protection-skills
Open the skill to read its SKILL.md instructions.
Popular docs & writing skills
grill-with-docs
mattpocock/skills
A relentless interview to sharpen a plan or design, which also creates docs (ADR's and glossary) as we go.
lark-markdown
open.feishu.cn
飞书 Markdown:查看、创建、上传、编辑和比较飞书中的原生 Markdown 文件。当用户要操作飞书 Markdown 文件,或比较其远端版本及本地草稿时使用。纯本地 Markdown 文件操作不触发本 skill。不负责将 Markdown 导入为飞书在线文档,也不负责文件搜索、权限、评论、移动、删除等云空间管理操作。
writing-beats
mattpocock/skills
Writing, exploit; assemble raw material into a journey of beats, grounding each term before a beat leans on it.
writing-shape
mattpocock/skills
Writing, exploit: shape raw material into an article, paragraph by paragraph.
writing-fragments
mattpocock/skills
Writing, explore: mine raw fragments, no structure yet.
writing-for-agents
mattpocock/skills
Writing documents for agents. Use when creating or editing skills, or modifying AGENTS.md or CLAUDE.md.