data-privacy — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited data-privacy (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Any task touching personal data collection, storage, processing, or transfer. Also activates for consent management, analytics, cookie handling, and any feature where user data flows to third parties. These rules are language-agnostic — apply them regardless of framework or stack.
This skill covers: GDPR (EU/UK), CCPA/CPRA (California), PIPEDA (Canada), PDPA (Thailand/Singapore variants), LGPD (Brazil). Requirements often overlap — implementing GDPR correctly satisfies most other frameworks.
Answer these questions before writing code:
If you cannot answer all 5: stop. Write the answers in ARCHITECTURE.md under "Data Privacy" before implementing anything.
Collection:
Storage:
Transfer:
Retention and deletion:
Retention examples (defaults, adjust to policy/legal requirements):
Always confirm with legal/compliance for your jurisdiction.
Erasure vs anonymisation:
If anonymisation is used, document the method and verify re-identification risk.
// Required: granular consent per category
const consentCategories = {
necessary: true, // Always true — no consent needed
functional: false, // Requires consent
analytics: false, // Requires consent
marketing: false, // Requires consent — highest bar
};
// Required: record consent with timestamp and version
await recordConsent({
userId: user.id,
categories: consentCategories,
timestamp: new Date().toISOString(),
policyVersion: '2026-01',
ipHash: hash(userIp), // Store hash not raw IP for GDPR compliance
});
// Required: honour opt-out immediately
// If analytics: false — stop sending analytics events NOW, not on next page load// ❌ NEVER: Log PII
console.log(`User ${user.email} logged in`) // email in logs = GDPR violation
logger.info({ user }) // entire user object = PII in logs
// ✅ ALWAYS: Log identifiers, never PII
logger.info({ userId: user.id, event: 'login' })
// ❌ NEVER: PII in error messages
throw new Error(`Could not find user ${user.email}`) // exposed in stack traces
// ✅ ALWAYS: identifiers in errors
throw new Error(`Could not find user [id:${user.id}]`)
// ❌ NEVER: PII in URL parameters
GET /api/[email protected] // logged by web servers, CDNs, browsers
// ✅ ALWAYS: POST body or path parameter by ID
GET /api/users/{id}Before marking any data-related task done:
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.