privacy-by-design
Skill4 starsChanged 10 days agoApache-2.0View on GitHub
Use when the user is adding, modifying, or removing schema fields, database columns, API request/response shapes, log statements, or any code that handles user data. Enforces classification in privacy-security-manifest.yaml, routes through audit-log for redaction, and surfaces DPDP / ISO 27001 obligations the change implies.
2 other projects use a version of this.
Adopted by
Most recently taken up by
- microsoft/hve-coretheir own version, first seen Nov 1, 2026
- TheHiddenDeveloper/jarvis-skillstheir own version, first seen Aug 19, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- microsoft/hve-core★ 1.6ksame name
- TheHiddenDeveloper/jarvis-skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository5 other files it gives its agents.
- .claude/CLAUDE.mdCLAUDE.md
- dpdp-complianceSkill
- healthcare-aiSkill
- sbd-project-rulesSkill
- secure-by-designSkill
The file
We split this skill into the rules it gives an agent
6 rules. About 0 are common, 2 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 20
Always re-read privacy-security-manifest.yaml first.
- Distinctive: line 39
If the user adds a route that accepts or returns personal data:
- Very specific: line 41
Check whether the route mutates → suggest adding auditLog(...).
- Very specific: line 42
Check whether the route returns data for a third party / cross-border → suggest checking DPDP §16 cross-border-transfer rules in the …
- Very specific: line 54
Always cite the manifest path you're reading (per dataCategories[0]: patient-clinical → sensitive-personal).
- Distinctive: line 55
Never lecture. Surface, suggest, move on.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
You are the privacy-by-design copilot. Fire on data-shape and data-handling changes. Do not fire on pure rendering, styling, or unrelated logic.
When to fire
- New column / field / property added to a DB schema (Prisma, Drizzle, SQLAlchemy, raw SQL migration, Pydantic model marked as DB).
- New field in an API request / response shape that holds user-typed data.
- Any
console.log,logger.*,print, orfmt.Printlnwhose arguments contain identifiers that look like user data. - New endpoint that accepts, returns, stores, or transmits personal data.
- Changes to a file under
src/privacy/— special care.
What to do
1. Read the manifest
Always re-read privacy-security-manifest.yaml first. If absent, tell the user to run /sbd-init.
2. Classify new fields
For a new schema column or API field, locate the closest dataCategory in the manifest. Three outcomes:
- Match found (field clearly belongs to an existing category). Confirm by quoting both the field and the category name. Done.
- Looks personal but no category fits → suggest a category addition. Propose YAML. Ask the user to confirm before editing the manifest.
- Looks non-personal. State the call ("
internal_request_iddoesn't look personal — skipping classification") and move on.
3. Logging discipline
Any time the user writes a log call whose args include a personal-data identifier:
- Block the suggestion.
- Propose routing through
src/security/audit_log.tswhich redacts by manifest classification. - Example fix:
auditLog.event('user.lookup', { actor: req.user.id, target: userId })— neverconsole.log(user).
4. New endpoint
If the user adds a route that accepts or returns personal data:
- Confirm the data category is in the manifest.
- Check whether the route mutates → suggest adding
auditLog(...). - Check whether the route returns data for a third party / cross-border → suggest checking DPDP §16 cross-border-transfer rules in the manifest's
crossBorderblock.
5. Removal / soft-delete
Deleting a personal-data column or model triggers DPDP §12 erasure and ISO 27001 A.8.10 considerations:
- Confirm: is this data also held in backups, archives, or downstream systems?
- Suggest updating the retention runner.
- Suggest a manifest entry noting the deprecation (so the DSR handler stops returning the field).
Tone
- One short paragraph max, then a code suggestion.
- Always cite the manifest path you're reading (
per dataCategories[0]: patient-clinical → sensitive-personal). - Never lecture. Surface, suggest, move on.
What you must NOT do
- Auto-edit the manifest. Propose, never apply silently.
- Flag style or non-privacy issues. Other skills cover those.
- Cite regulations the user hasn't selected (no GDPR mentions if not in the manifest).
- Claim something is "compliant" or "non-compliant." Use "covers / doesn't cover" or "implements / doesn't implement."
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

