Works with the AI Agents you already use
Pre-Publish Scrub: Catch Client Names, Paths & Metadata
- **Scans the folder offline** with one Python script and sorts findings into nine classes under a BLOCK, REVIEW or NO KNOWN FINDINGS verdict.
$9.99
Pre-Publish Scrub: Catch Client Names, Paths & Metadata
Example session with this skill installed
I'm making this repo public tomorrow and the secret scanner is clean. Check it for client names, internal hosts, personal paths and file metadata, including the git history. The client was Northwind Traders.
- Read your context and instructions
- Compiled the pre-publish scrub
Verdict: BLOCK. 10 blocking and 7 review findings. 9 files read, plus 2 commits and 2 identities from history (commit metadata only).
| Class | Blocking | Review | Worst example |
|---|---|---|---|
| Organisations | 3 | 0 | Northwind Traders in README.md:4 and src/app.py:2, northwind_traders in tests/test_data.json:1 |
| Document and image metadata | 3 | 0 | Author Jordan Doe in docs/handover.docx, GPS block in docs/screenshot.jpg |
| Paths | 2 | 0 | Home paths with jdoe in two config files |
| Git identities and messages | 2 | 3 | Client name in 2 commit messages, 2 identities at corp.example |
| Tickets and workspace links | 0 | 2 | NWT-482 and a chat workspace link in src/app.py |
| Hosts and addresses | 0 | 1 | build01.corp.example in config/settings.yaml:3 |
| People | 0 | 1 | jdoe standing alone in src/app.py:5 |
The home paths are blocking because jdoe is also in a committer email.
Route: history carries 5 findings, so I recommend a fresh snapshot with no history. Cleaning the working tree leaves both commits intact. If you need the history, replacements.txt and mailmap.draft are drafts for a rewrite you run yourself.
Scrubbed copy: 9 files copied, 5 text files changed, 9 replacements (client-1, user-1, host-1.example, ticket-1). You confirmed jdoe is your username, so it was replaced everywhere. Two files need you: docs/handover.docx and docs/screenshot.jpg.
Verify: exit code 2 with 3 blocking findings while those two files were in the copy. After you removed them: VERIFY: no known findings, exit code 0.
Not covered: names missing from the denylist, credentials (run a secret scanner next) and the content of old commits, which needs --history-content.
Connects securely to your tools. The creator never sees your data.
About this skill
Your secret scanner comes back clean and the repo still names a client in a test fixture, carries an internal hostname in a config and has a home path with your username in it. A bundled document lists its author, a screenshot holds a GPS block, and a colleague's email sits in commit authorship. None of that is a credential, so nothing flags it, and git history keeps it after you tidy the working tree.
What your agent does
- Builds the denylist with you first: client and employer names, codenames, colleagues and internal domains, plus an allowlist of what is meant to be public.
- Scans the folder offline with one Python script and sorts findings into nine classes under a BLOCK, REVIEW or NO KNOWN FINDINGS verdict.
- Reads git history on request: commit identities, messages, branch and tag names and remote URLs, using read-only git commands. Old commit content is an opt-in flag.
- Opens documents and images: author fields in Office files, GPS, artist and camera tags in JPEG EXIF, PNG text chunks, and PDF info fields on a best-effort basis.
- Writes a scrubbed copy in a new folder with consistent pseudonyms (
client-1,user-1,host-1.example) and lists every file it could not fix. - Verifies the copy and tells you what still needs your decision.
Built-in guard rails
- Your source folder is never modified, and report files can't be written inside it.
- A file the script can't read is a review finding, never a pass.
- A username is replaced as a stand-alone word only after you confirm it.
- A clean result reads "no known findings", and the agent is told never to call a folder safe to publish.
What's inside
SKILL.md: eight-step workflow, commands, hard rules, limits.scripts/scrub_scan.py: one standard-library script withscan,applyandverify. A scan writes five report files.- 5 reference files: leak classes, denylist and allowlist, fix paths, file metadata, publication checklist.
- A sample:
tests/make_fixture.pybuilds a small leaky repo, andfixtures/holds its denylist, allowlist and README. - 191 unit tests in 7 test files.
It finds known patterns and the names you give it. It doesn't scan for credentials or rewrite git history.
Find more skills like this on the Claude Skills Marketplace, the Codex Skills Marketplace and the Gemini Skills Marketplace, or browse Claude Skills for Security.
It finds known patterns and the names on your denylist, nothing else. It doesn't scan for credentials, rewrite git history or undo anything already pushed. PDF and binary metadata coverage is partial, and it can't judge what a screenshot or a sample dataset shows.
How to use
- 1
Connect your agent to the Agensi MCP
Copy the prompt and paste it into Claude, ChatGPT, Cursor or any agent that supports MCP. It sets up the connection for you. Manual setup
- 2
Sign in to Agensi
Your agent shows a sign-in link. Sign in and click Allow.
- 3
Ask for what you need
Your agent loads this skill and uses it on your task. It always asks before buying a skill.
Reviews
No reviews yet
Be one of the first to try it. Every listed skill goes through the trust checks below.
Security scanned
Checked by our 8-point scan before listing
Fresh listing
Recently published to Agensi
Money-back guarantee
Doesn't do what its page promises? You get your money back.
Trust & safety
Security scan
Security scan passed today
- Software
Python 3 (3 point 8 or later)
Claude CodeorCodexorCursorThe folder you plan to publishClient, employer and codename listGit
- Optional
- Git on PATH for the history scanAllowlist of public emails and hostsA separate credential scanner