sensitive-content-scanner
Skill17 starsChanged 9 months agoMITView on GitHub
Scan files for sensitive content before sharing. Detects personal info, credentials, private URLs, local paths, and security risks. Use before publishing repos, sharing code, or exporting configs.
- Reads credentials
1 other project uses a version of this.
Adopted by
Most recently taken up by
- dazuck/claude-code-skillsword for word, first seen Jan 23, 2026
Other versions1 project uses a version of this.
Word for word · 1
- dazuck/claude-code-skills★ 1100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
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 repository20 other files it gives its agents.
- adversarial-verifierSkill
- candidate-screeningSkill
- coachSkill
- contract-reviewSkill
- create-briefingSkill
- credits-inventorySkill
- handoffSkill
- hiring-helperSkill
- inbox-commanderSkill
- interviewSkill
- investor-auditsSkill
- monthly-financialsSkill
- personalize-skillsSkill
- prompt-improverSkill
- ralph-loop-creatorSkill
- reality-checkSkill
- show-and-tellSkill
- skill-customizerSkill
- technical-orientationSkill
- writeupSkill
The file
We split this skill into the rules it gives an agent
10 rules. About 0 are common, 10 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈10
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 14
Before pushing a repo public
- Distinctive: line 15
Before sharing code/config snippets
- Distinctive: line 16
Before exporting skills, dotfiles, or configs for others
- Distinctive: line 17
When reviewing what might leak from a file set
- Distinctive: line 69
If this file exists, the scanner will use it for personalized detection.
- Distinctive: line 169
If exists: load personal patterns and terms
- Distinctive: line 170
If not: use generic detection only, note limitations
- Distinctive: line 174
If path is a file: scan that file
- Distinctive: line 175
If path is a directory:
- Distinctive: line 268
When called programmatically, return structured findings that the calling skill can act 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
Sensitive Content Scanner
Core Purpose
Examine files for sensitive content that should be sanitized before sharing publicly. This is a safety check to run before publishing repos, sharing code snippets, exporting configurations, or any public sharing of files.
When to Use
- Before pushing a repo public
- Before sharing code/config snippets
- Before exporting skills, dotfiles, or configs for others
- When reviewing what might leak from a file set
- As part of an automated sanitization workflow
Invocation
/sensitive-content-scanner [path] - Scan a file or directory
/sensitive-content-scanner - Prompted for path
Examples:
/sensitive-content-scanner ~/.claude/skills//sensitive-content-scanner ./my-project//sensitive-content-scanner ./config.md
Personal Context File (Optional)
For better detection of YOUR specific sensitive content, create ~/.claude/sensitive-content-context.md:
# Sensitive Content Context
## Personal Identifiers
- Full name: [Your Name]
- Usernames: [github-handle, twitter-handle, etc.]
- Email patterns: [yourname@, your.name@]
- Company/team name: [Company Name]
## Private Paths (patterns to flag)
- ~/Library/Mobile Documents/com~apple~CloudDocs/
- /Users/[username]/
- Any path containing: [folder names that are private]
## Private URLs (domains/patterns to flag)
- notion.site (personal workspaces)
- [internal-tool].company.com
- Private GitHub org: github.com/[private-org]/
## Known Secrets Patterns
- Project-specific API key prefixes
- Internal service names
## Business/Proprietary Terms
- Client names: [list]
- Internal project codenames: [list]
- Confidential terms: [list]If this file exists, the scanner will use it for personalized detection. If not, it uses generic patterns.
Detection Categories
1. Credentials & Secrets (CRITICAL)
Always flag - these should never be shared:
| Pattern | Examples |
| API keys | sk-..., AKIA..., ghp_..., xoxb-... |
| Private keys | -----BEGIN RSA PRIVATE KEY----- |
| Passwords | password=, passwd:, pwd= |
| Tokens | token=, bearer ..., auth_token |
| Connection strings | postgres://user:pass@, mongodb+srv:// |
| AWS credentials | aws_access_key_id, aws_secret_access_key |
| Environment secrets | .env files with real values |
Severity: CRITICAL - Block sharing until resolved
2. Personal Identifiers (HIGH)
Flag for review - may need anonymization:
| Pattern | Examples |
| Email addresses | user@domain.com |
| Phone numbers | +1-555-..., (555) 123-4567 |
| Names (from context file) | Your name, family names |
| Usernames (from context file) | Social handles, login names |
| Physical addresses | Street addresses, ZIP codes |
Severity: HIGH - Review and anonymize or confirm OK to share
3. Private URLs (HIGH)
Flag - often reveal private resources:
| Pattern | Examples |
| Notion URLs | *.notion.site/*, notion.so/*/... |
| Google Docs (private) | docs.google.com/document/d/... |
| Internal tools | *.internal.*, *.corp.*, localhost:* |
| Private repos | github.com/[private-org]/... |
| Figma/design files | Private design URLs |
| Calendar/meeting links | Zoom personal rooms, Calendly |
Severity: HIGH - Replace with placeholder or remove
4. Local Paths (MEDIUM)
Flag - reveal system structure and username:
| Pattern | Examples |
| Home directory | /Users/username/, /home/username/ |
| iCloud paths | ~/Library/Mobile Documents/com~apple~CloudDocs/ |
| Dropbox/OneDrive | ~/Dropbox/, ~/OneDrive/ |
| App-specific paths | ~/Library/Application Support/[App]/ |
| Windows user paths | C:\Users\username\ |
Severity: MEDIUM - Replace with generic placeholder like ~/path/to/... or [YOUR_PATH]
5. Infrastructure & Security (MEDIUM-HIGH)
Flag - could enable attacks or reveal architecture:
| Pattern | Examples |
| Internal IPs | 10.x.x.x, 192.168.x.x, 172.16-31.x.x |
| Internal hostnames | *.internal, *.local, *.corp |
| Database hosts | Specific DB server addresses |
| Cloud resource IDs | AWS account IDs, GCP project IDs |
| CI/CD specifics | Internal Jenkins/GitHub Actions URLs |
Severity: MEDIUM-HIGH depending on context
6. Business & Proprietary (MEDIUM)
Flag if context file specifies - varies by situation:
| Pattern | Examples |
| Client names | (from context file) |
| Internal project names | Codenames, internal product names |
| Pricing/financial | Revenue figures, pricing tiers |
| Strategy content | Competitive analysis, roadmaps |
| Internal comms | Slack channel names, team names |
Severity: MEDIUM - Requires judgment
Scan Protocol
Phase 1: Load Context
- Check for
~/.claude/sensitive-content-context.md - If exists: load personal patterns and terms
- If not: use generic detection only, note limitations
Phase 2: File Discovery
- If path is a file: scan that file
- If path is a directory:
- Find all text-based files (md, txt, json, yaml, yml, toml, js, ts, py, sh, etc.)
- Respect
.gitignoreif present - Skip binary files, node_modules, .git, etc.
- Report file count and types found
Phase 3: Pattern Scanning
For each file, scan for all detection categories. Use:
- Regex patterns for structured data (emails, IPs, API keys)
- Context file terms for personal/business content
- Heuristics for paths and URLs
Phase 4: Findings Report
Generate structured report:
# Sensitive Content Scan Report
**Path scanned:** [path]
**Files scanned:** [count]
**Scan date:** [timestamp]
## Summary
| Severity | Count | Action Required |
| -------- | ----- | ----------------------- |
| CRITICAL | X | Must fix before sharing |
| HIGH | X | Review and sanitize |
| MEDIUM | X | Consider sanitizing |
| LOW | X | Informational |
## CRITICAL Findings
### [Category]: [Brief description]
**File:** `path/to/file.md`
**Line:** [line number]
**Content:** `[snippet with sensitive part highlighted]`
**Risk:** [Why this is sensitive]
**Suggested fix:** [How to sanitize]
---
[Repeat for each finding, grouped by severity]
## Recommendations
1. [Prioritized action items]
2. [...]
## Files Cleared
These files contained no detected sensitive content:
- [list of clean files]Output Modes
Default: Full Report
Complete findings with context and suggestions.
Summary Mode
/sensitive-content-scanner [path] --summary
Just the summary table and critical findings.
JSON Mode (for automation)
/sensitive-content-scanner [path] --json
Machine-readable output for piping to other tools.
Integration with Other Skills
This skill is designed to be called by other skills/workflows:
Example - called by sync-skills-public:
1. sync-skills-public invokes sensitive-content-scanner on ~/.claude/skills/
2. Scanner returns findings
3. sync-skills-public uses findings to guide sanitization
4. Scanner re-runs on output to verify cleanWhen called programmatically, return structured findings that the calling skill can act on.
Limitations
- Cannot detect everything: Novel patterns or context-dependent sensitivity may be missed
- False positives: Some patterns (like example UUIDs) may flag incorrectly
- Requires context for personal content: Without the context file, personal names/terms won't be detected
- No semantic understanding: Can't detect if content is "confidential" without explicit markers
Always do a final human review before sharing sensitive materials.
Quick Reference
| I want to... | Command |
| Scan a directory | /sensitive-content-scanner ./path/ |
| Scan a single file | /sensitive-content-scanner ./file.md |
| Quick summary only | /sensitive-content-scanner ./path/ --summary |
| Check my skills before export | /sensitive-content-scanner ~/.claude/skills/ |
| Set up personal detection | Create ~/.claude/sensitive-content-context.md |
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.

