compliance-testing
Test for regulatory compliance including GDPR/CMP consent verification, Better Ads Standards, cookie compliance auditing, and privacy policy validation.
Skill by kindlmann
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/jaiminvadadoriya-compliance-testing
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: testing, devops, security, marketing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/compliance-testing
What's inside
- Skill name
compliance-testing- Description
- Test for regulatory compliance including GDPR/CMP consent verification, Better Ads Standards, cookie compliance auditing, and privacy policy validation. Covers automated consent flow testing, third-party script blocking before consent, and cookie inventory validation. Use when: "GDPR test," "compliance," "CMP test," "cookie consent," "Better Ads," "privacy," "consent banner." Related: accessibility-testing, security-testing, ci-cd-integration.
- License
- MIT
- Metadata
- author: kindlmann · version: 1.0 · category: process
- Instructions
- 583 lines in SKILL.md · view on GitHub
Agent Skills spec issues
- body: 583 lines (spec recommends under 500)
Files (1)
- SKILL.md
SKILL.md (first lines)
<objective>
Test applications for regulatory compliance, focusing on privacy regulations (GDPR, CCPA, ePrivacy), consent management, cookie governance, and advertising standards. Compliance is binary -- you either comply or you do not -- and the penalties for non-compliance are significant. Automated testing catches configuration drift and regressions that manual audits miss between review cycles.
**Before starting:** Check for `.agents/qa-project-context.md` in the project root. It contains applicable regulations, CMP details, ad networks, and geographic requirements that determine which compliance tests to implement.
</objective>
---
## Discovery Questions
### Applicable Regulations
1. **Which privacy and platform regulations apply?**
- **EU:** GDPR, ePrivacy Directive (cookies), Digital Services Act (DSA — applied 17 Feb 2024), EU AI Act (prohibitions + literacy from 2 Feb 2025; GPAI obligations + penalties from 2 Aug 2025; full applicability 2 Aug 2026).
- **US:** CCPA/CPRA (California) plus comprehensive state laws now active in ~20 states — including Texas TDPSA, Indiana CDPA (eff. 1 Jan 2026), Delaware DPDPA (eff. 1 Jan 2025), Nebraska NDPA, Minnesota CDPA, Rhode Island DTPPA. Most require honoring the Global Privacy Control (`Sec-GPC: 1`) signal.
- **UK:** UK GDPR/DPA, ePrivacy via PECR, Online Safety Act 2023, Data Use and Access Act (DUAA) replacing parts of UK GDPR/DPA.
- **Other:** LGPD (Brazil), PIPEDA (Canada), POPIA (South Africa).
Multiple regulations apply simultaneously when you serve users in multiple regions. AI features layer EU AI Act obligations on top of existing privacy law.
2. **What is the legal basis for data processing?** Consent (opt-in), legitimate interest, contractual necessity? This determines whether explicit consent is required before processing.
3. **Is there a DPO or legal team to consult?** Compliance testing validates technical implementation against legal requirements. The legal team defines those requirements.
### Consent Management
4. **What CMP is in use?** OneTrust, Cookiebot (now a Usercentrics product), Didomi, Usercentrics, Iubenda, Sourcepoint, Axeptio, or custom? The CMP determines consent storage format, API, and integration patterns. **If you serve ads in the EEA or UK, you must use a Google-certified CMP and implement Google Consent Mode v2** — uncertified CMPs block Google ad serving.
5. **What consent categories exist?** Typically: Strictly Necessary (always allowed), Analytics/Performance, Functional/Preferences, Marketing/Targeting.
6. **How is consent communicated to third-party scripts?** TCF (Transparency and Consent Framework)? Custom data layer? Direct CMP API?
### Advertising and Accessibility
7. **What ad networks and formats are used?** Google Ads, Meta, programmatic? Display, video, interstitial? The Coalition for Better Ads defines acceptable formats.
8. **Are there accessibility compliance requirements?** ADA, EAA, Section 508? See the `accessibility-testing` skill for detailed WCAG testing.
---
## Core Principles
### 1. Compliance Is Binary
There is no "mostly compliant." A cookie that fires before consent is a violation. A consent banner that cannot be dismissed without accepting is a violation. Test for exact compliance.
### 2. Automate What You Can, Audit What You Cannot
Automated tests catch: cookies set before consent, scripts loading without consent, consent banner functionality, cookie attributes, consent persistence. Manual audits catch: privacy policy accuracy, legal language correctness, cross-border data transfer documentation. Automate the technical checks; schedule the legal audits.
### 3. Test From the User Perspective
Compliance regulations are written from the user's perspective. Tests should simulate real user interactions with the consent flow, not just check backend state.
### 4. Regulations Change, Tests Must Be Updatable
New regulations emerge regularly. Structure compliance tests with configuration-driven test data so that changing a threshold or adding a cookie category does not require rewriting the suite.
### 5. Defense in Depth
Do not rely solely on the CMP. Verify at multiple layers: CMP configuration, CSP headers, script loading behavior, cookie state, and network requests.
---
## GDPR/CMP Testing with Playwright
### Consent Banner and Dark Pattern Checks
```typescript
import { test, expect } from '@playwright/test';
test.describe('GDPR Consent Banner', () => {
test.use({ storageState: undefined }); // Fresh context — first visit
test('consent banner appears on first visit', async ({ page }) => {
await page.goto('/');
const banner = page.getByRole('dialog', { name: /cookie|consent|privacy/i });
await expect(banner).toBeVisible({ timeout: 5000 });
});
test('banner provides accept and reject with equal prominence', async ({ page }) => {
await page.goto('/');
const banner = page.getByRole('dialog', { name: /cookie|consent|privacy/i });
const acceptBtn = banner.getByRole('button', { name: /accept|agree|allow/i });
const rejectBtn = banner.getByRole('button', { name: /reject|decline|deny/i });
await expect(acceptBtn).toBeVisible();
await expect(rejectBtn).toBeVisible();
// Dark pattern check: reject button must be reasonably sized, not a tiny link
const rejectBox = await rejectBtn.boundingBox();
expect(rejectBox).not.toBeNull();
expect(rejectBox!.width).toBeGreaterThan(60);
expect(rejectBox!.height).toBeGreaterThan(30);
});
test('banner links to privacy policy', async ({ page }) => {
await page.goto('/');
const banner = page.getByRole('dialog', { name: /cookie|consent|privacy/i });
const policyLink = banner.getByRole('link', { name: /privacy policy|learn more/i });
await expect(policyLink).toBeVisible();
await expect(policyLink).toHaveAttribute('href', /privacy/);
});
});
```
### Cookie State Before and After Consent
The critical test: no non-essential cookies may be set before the user gives consent.
```typescript
// Cookie classification helpers — maintain based on your cookie inventory
function isStrictlyNecessary(name: string): boolean {
const necessary = ['__Host-session', 'csrf_token', '__cf_bm', 'consent_status'];
return necessary.some((n) => name.startsWith(n));
}
function isAnalyticsCookie(name: string): boolean {
return ['_ga', '_gid', '_gat', '_gtag', 'analytics_'].some((p) => name.startsWith(p));
}
test.describe('Cookie Consent Compliance', () => {
test.use({ storageState: undefined });From JaiminVadadoriya/Distributed-Cloud-Storage---Sync-Platform, MIT.
More from JaiminVadadoriya/Distributed-Cloud-Storage---Sync-Platform
- 0.502score
ai-test-generation
kindlmann
Staged pipeline for AI-assisted test generation: requirements extraction → risk analysis → coverage matrix → scenario generation → oracle design → test code →…
SkillCFreshness: C★ 1Claude Code +9 - 0.502score
ci-cd-integration
kindlmann
Design CI/CD pipelines for test execution.
SkillCFreshness: C★ 1Claude Code +9 - 0.502score
ai-bug-triage
kindlmann
Hybrid fingerprint + LLM pipeline for bug classification, deduplication, and ticket generation.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
accessibility-testing
kindlmann
Test for WCAG 2.2 compliance using axe-core with Playwright, keyboard navigation audits, screen reader testing, ARIA pattern validation, and legal compliance…
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
ai-system-testing
kindlmann
Test AI-powered features including LLM prompts, tool calls, nondeterministic outputs, evaluation frameworks, and hallucination risk assessment.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
api-testing
kindlmann
Test REST and GraphQL APIs with Playwright APIRequestContext, Supertest, or standalone HTTP clients.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
ai-qa-review
kindlmann
QA-focused code review for test quality.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
chaos-engineering
kindlmann
Validate system resilience through controlled fault injection.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
cypress-automation
kindlmann
Build Cypress test suites with component testing, E2E testing, custom commands, cy.intercept for network control, Cypress Cloud integration, and TypeScript…
SkillCFreshness: C★ 1Claude Code +9 - 0.488score
coverage-analysis
kindlmann
Measure and improve test coverage meaningfully.
SkillCFreshness: C★ 1Claude Code +9 - 0.488score
contract-testing
kindlmann
Implement consumer-driven contract testing with Pact.js.
SkillCFreshness: C★ 1Claude Code +9 - 0.488score
database-testing
kindlmann
Validate database integrity, test migrations forward and backward, verify schema constraints, manage seed data, and identify query performance issues.
SkillCFreshness: C★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- May 30, 2026 (5 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- Version
- 1.0
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from kindlmann
- 0.570score
coverage-analysis
kindlmann
Measure and improve test coverage meaningfully.
SkillAFreshness: AClaude Code +9 - 0.570score
ai-qa-review
kindlmann
Review EXISTING test code for quality, smells, and testability issues.
SkillAFreshness: AClaude Code +9 - 0.570score
release-readiness
kindlmann
Validate release readiness with evidence-based go/no-go decisions.
SkillAFreshness: AClaude Code +9 - 0.570score
risk-based-testing
kindlmann
Produce a risk matrix or heatmap that quantifies what could break by business impact × probability, runs failure mode analysis on the top items, and maps test…
SkillAFreshness: AClaude Code +9 - 0.570score
qa-project-context
kindlmann
Create and fill .agents/qa-project-context.md with the project's tech stack, test frameworks, CI/CD pipeline, environments, quality goals, risk areas, team…
SkillAFreshness: AClaude Code +9 - 0.502score
ai-test-generation
kindlmann
Staged pipeline for AI-assisted test generation: requirements extraction → risk analysis → coverage matrix → scenario generation → oracle design → test code →…
SkillCFreshness: C★ 1Claude Code +9
Cite this page
compliance-testing skill. Agent Mart. https://agentmart.dev/skills/jaiminvadadoriya-compliance-testing (last updated 2026-10-24)