SE

sensitive-data-review

Automated security review to prevent accidental exposure of credentials and PII.

Install

mkdir -p .claude/skills/sensitive-data-review && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/17958" && unzip -o skill.zip -d .claude/skills/sensitive-data-review && rm skill.zip

Installs to .claude/skills/sensitive-data-review

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Use when reviewing code, tests, fixtures, docs, or commits for sensitive data exposure: names, phone numbers, emails, usernames, passwords, tokens, API keys, private IDs, birth dates, postal codes (PLZ/ZIP), hometown/Heimatort, or school-specific class/course identifiers.
272 chars✓ has a “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)
Intermediate

Key capabilities

  • Scan for likely credentials and tokens
  • Search for direct identifiers and contact data
  • Scan for school-domain specific identifiers
  • Triage findings into true positives, domain-specific, or false positives
  • Apply safe replacements with generic placeholders

How it works

This skill prevents accidental publication of sensitive data by running pattern-based scans for secrets, personal data, and domain-specific identifiers across various repository scopes, followed by triaging findings and applying safe replacements.

Inputs & outputs

You give it
Code, tests, fixtures, docs, or commits for sensitive data exposure
You get back
A report of sensitive data findings and verified safe replacements

When to use sensitive-data-review

  • Scanning repo before push
  • Checking for leaked API keys
  • Identifying PII in documentation
  • Reviewing logs for sensitive user data

About this skill

Sensitive Data Review

Outcome

Prevent accidental publication of secrets and personal information in a public repository by running a repeatable scan, triaging findings, and verifying safe replacements.

When To Use

  • Before commit, push, release, or PR review.
  • After adding fixtures, logs, traces, screenshots, or copied upstream payloads.
  • When modifying auth, env vars, request logging, or docs.

Inputs

  • Target scope: repo, staged, or a folder path.
  • Mode: quick or thorough.

Procedure

  1. Set scan scope.
  • repo: whole repository.
  • staged: only staged changes via git diff --cached.
  • path: specific directory.
  1. Run secret-pattern scan.
  • Search for likely credentials and tokens:
rg -n -i "(api[_-]?key|secret|token|password|passwd|authorization: bearer|x-api-key|private[_-]?key|BEGIN (RSA|EC|OPENSSH) PRIVATE KEY|AKIA[0-9A-Z]{16}|ghp_[A-Za-z0-9]{20,}|sk_[A-Za-z0-9]{16,}|eyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9._-]{10,})" <scope>
  1. Run personal-data scan.
  • Search for direct identifiers and contact data:
rg -n -i "([A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}|\+?[0-9][0-9\-() ]{7,}[0-9]|(first|last)?name\s*[:=]|address\s*[:=]|student[_ -]?id|teacher|guardian|birth(date)?|geburtsdatum|username\s*[:=]|zip(city)?\s*[:=]|postal|plz|heimatort|hometown)" <scope>
  1. Run school-domain specificity scan.
  • Search for non-generic class/course tokens and institution-specific labels:
rg -n -i "(class\s+[0-9A-Za-z-]+|course\s+[0-9A-Za-z-]+|mandator|school|portal|resource_list|real user|real student|real teacher)" <scope>

4b. Run teacher-coded/class-token scan (required for fixtures/tests/docs).

  • Search for school-coded identifiers that can expose class and teacher mappings (examples: SUBJECT-CODE_A1-TEACHER, CLASS-TRACK_TERM-GROUP, MODULE-CODE_PROGRAM-OWNER):
rg -n "\b[A-Z]{1,6}-[A-Z0-9]+(?:_[A-Z0-9]+)+(?:-[A-Z0-9]+)?\b|\b[A-Z]{1,6}-[A-Z0-9]+-[A-Z0-9]+\b" <scope>
  • Treat hits in fixtures, tests, docs, logs, and examples as sensitive unless clearly synthetic placeholders.
  1. Triage each finding.
  • True positive secret: remove and rotate where required.
  • True positive personal data: replace with generic placeholders.
  • Domain-specific but non-sensitive: keep only if required; otherwise genericize.
  • False positive: keep and record why.

Personal data includes direct identifiers and quasi-identifiers that can identify a person in context, including date of birth, postal code, city, and hometown.

Treat the following as sensitive by default, including in test fixtures: PLZ/ZIP, Geburtsdatum/birth date, and Heimatort/hometown. Only keep them when values are fully synthetic placeholders.

  1. Apply safe replacements.
  • Use placeholders like STUDENT_NAME, TEACHER_NAME, COURSE_TOKEN, [email protected], 000-000-0000.
  • Replace school-coded class/course identifiers with generic placeholders (for example COURSE-ALPHA, COURSE-BRAVO, CLASS-GROUP-1) and update assertions accordingly.
  • For location/date fields, use placeholders like 0000 Placeholder City, 01.01.2000, Placeholder Hometown.
  • Keep format shape intact for parser tests.
  • Do not weaken test coverage while sanitizing fixtures.
  1. Verify and re-scan.
  • Re-run all scans to ensure no sensitive matches remain.
  • Check git diff to confirm replacements are complete and readable.

Decision Points

  • If a value can grant access, treat it as secret even if short-lived.
  • If data can identify a real person in context, sanitize it.
  • If uncertain whether data is sensitive, escalate and do not publish unchanged.

Completion Checks

  • No high-confidence secret matches in current scope.
  • No real personal identifiers remain in changed files.
  • No teacher-coded or school-specific class tokens remain in fixtures/tests/docs unless they are explicitly synthetic placeholders.
  • Fixtures and docs use generic placeholders.
  • Any accepted false positives are explicitly justified in review notes.

Quick Mode

  1. Run secret-pattern scan on staged files.
  2. Sanitize true positives.
  3. Re-scan staged files.

Thorough Mode

  1. Run all three scans on the full repository.
  2. Review test fixtures, docs, and scripts manually for context leaks.
  3. Re-scan and confirm completion checks.

When not to use it

  • When publishing unchanged sensitive data
  • When weakening test coverage while sanitizing fixtures
  • When ignoring explicit user consent for restricted sensitivity

Limitations

  • Requires manual triaging of findings
  • Relies on regular expressions for pattern matching
  • Requires explicit justification for accepted false positives

How it compares

This skill provides a systematic, multi-layered scanning and remediation process for sensitive data exposure, including specific patterns for school-domain identifiers, which is more thorough than a basic keyword search.

Compared to similar skills

sensitive-data-review side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
sensitive-data-review (this skill)04moReviewIntermediate
security-scanning-security-dependencies13moNo flagsIntermediate
dependency-management-deps-audit13moNo flagsIntermediate
ship-safe01moReviewBeginner

Try saying

Example prompts that trigger this skill in your AI assistant.

Search skills

Search the agent skills registry