Works with the AI Agents you already use

    Claude CodeClaude CodeCursorCursorCodex CLICodex CLIDeepSeekDeepSeekMuseMuse+22 more

    Pre-Publish Scrub: Catch Client Names, Paths & Metadata

    1

    - **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

    Secure checkout via Stripe

    Money-back guarantee

    Converts to your local currency at checkout

    Security scanned
    Pre-Publish Scrub: Catch Client Names, Paths & Metadata

    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).

    ClassBlockingReviewWorst example
    Organisations30Northwind Traders in README.md:4 and src/app.py:2, northwind_traders in tests/test_data.json:1
    Document and image metadata30Author Jordan Doe in docs/handover.docx, GPS block in docs/screenshot.jpg
    Paths20Home paths with jdoe in two config files
    Git identities and messages23Client name in 2 commit messages, 2 identities at corp.example
    Tickets and workspace links02NWT-482 and a chat workspace link in src/app.py
    Hosts and addresses01build01.corp.example in config/settings.yaml:3
    People01jdoe 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.

    in README.md

    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 with scan, apply and verify. 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.py builds a small leaky repo, and fixtures/ 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. 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. 2

      Sign in to Agensi

      Your agent shows a sign-in link. Sign in and click Allow.

    3. 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 Code
    orCodex
    orCursor
    The 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

    Permissions

    Terminal / Shell
    Read Files
    Write Files
    Listedtoday

    What's inside

    Frequently Asked Questions

    No. Credentials are out of scope and risky files such as `.env` or key files are flagged by name only. Run a credential scanner as a separate step.

    No. It searches for the terms on the denylist you build with the agent, plus fixed patterns such as emails, private IP addresses and home paths. A name that isn't on the list can't be found.

    No. The source folder is never modified and fixes go into a separate copy. History is read with read-only git commands, and the replacement and mailmap drafts are for a rewrite tool you run yourself. Nothing here removes data that was already pushed, forked or cached.

    No. It means no known pattern and no denylist term was found in the files the script can read. PDF and binary metadata coverage is partial, and it can't judge what a screenshot or a sample dataset shows.

    New in Security