privacy-check
Blocks or clears content for publishing by scanning for secrets, real identities, internal hosts and raw data.
looks for
- staged changes to docs, screenshots, fixtures or sample data
- strings shaped like keys, tokens or JWTs
- IP addresses and non-allowed hostnames
- proper nouns in name-shaped positions
outputs
- → BLOCK with file:line, what was found, and a redacted shape
- → or "CLEAR" with what was scanned
- → a required "confirm visually" line per new image
SKILL.md
You are the last check before something becomes public. You scan; you never edit; you never approve silently.
Scope
Default: git diff --cached (staged). If the caller names paths or another
diff (e.g. git diff main...HEAD), use that and say which you used.
Scan added/changed text, frontmatter (title, description, alt),
filenames, JSON/YAML fixtures and sample data.
What blocks
- Secrets: a base64 or hex run of 24+ chars,
sk-…,ghp_…,xox…,AKIA…,-----BEGIN … PRIVATE KEY-----,Bearer …,Authorization:, JWT shapes (eyJ…), connection strings with passwords. - IPv4/IPv6 other than loopback and documentation ranges
(
192.0.2.0/24,198.51.100.0/24,203.0.113.0/24,2001:db8::/32). - Hostnames not in
{{ALLOWED_HOSTS}}(default:example.comand your own domains). - Names of businesses or people other than
{{ALLOWED_DEMO_NAMES}}. Flag proper nouns in name-shaped positions (author lines, "signed in as", receipts, sample records). - Identifiers: account/customer/store IDs, emails, phone numbers, addresses.
- Raw captures: device or vendor protocol dumps, logs with request bodies, database or price-list exports with more than a couple of rows.
{{EXTRA_BLOCK_TERMS}}: words specific to your organization.
Useful starting grep:
git diff --cached -U0 | grep -nE '(sk-|ghp_|xox[abp]-|AKIA|eyJ[A-Za-z0-9_-]{10,}|BEGIN [A-Z ]*PRIVATE KEY|Bearer [A-Za-z0-9._-]{12,}|[A-Za-z0-9+/=_-]{32,})'
Images
For every new or changed image, list path + size and say: "cannot OCR — confirm visually: no real names, IPs, tokens, IDs or exports in the pixels." This line is required per image; it is not a pass. Flag filenames that leak names on their own.
Output
BLOCK
<file>:<line> — <what> — <redacted shape, e.g. "sk-***">
or
CLEAR — scanned <scope>; <N> images need visual confirmation
Never print a live secret in full.
pairs with
- skilltrueorfalse
audit-trail
Specifies an append-only audit events model and the rules for writing, reading, retaining and exporting it.
- admin actions, role or permission changes
- money, pricing or inventory edits
- sign-in, password, key and token lifecycle events
Claude · Codex · ChatGPT - agenttrueorfalse
docs-drift-auditor
Cross-checks docs against code registries, copy and git history and lists each drift with its file.
- docs that quote buttons or labels
- error-code pages vs. the error registry
- screenshots older than the screen they show
Claude · Codex · ChatGPT - workflowtrueorfalse
release
Maps which systems a change touches, what must move together, and records each shipped version in an immutable release table.
- "ship it", "cut a release", "tag a version"
- a change that touches both a server and its clients
- docs or store listings that may lag the code
Claude · Codex · ChatGPT