From pii
Scan the current git diff (or working tree) for personal information — emails, personal paths, API keys, phone numbers — before commit or push. Surfaces findings as file:line with redaction suggestions; loops until clean. Invoke before any git push.
How this skill is triggered — by the user, by Claude, or both
Slash command
/pii:pii-scrubberThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Agent-facing PII guardrail. Companion to `scripts/check-no-pii.sh` (the detector) and `templates/hooks/pre-push` (the mandatory enforcer at push time). This skill is the **interactive layer**: when a finding surfaces, the skill helps the agent remediate rather than just failing.
Agent-facing PII guardrail. Companion to scripts/check-no-pii.sh (the detector) and templates/hooks/pre-push (the mandatory enforcer at push time). This skill is the interactive layer: when a finding surfaces, the skill helps the agent remediate rather than just failing.
git push that touches commits the user might not have seen redact-passes on (mandatory if you intend to push).If you're an agent about to run git push, invoke this skill first. If the pre-push hook is installed and the crickets script is reachable, the hook will catch you anyway — but using the skill first means you fix the PII once, instead of fighting the hook in a loop.
| Situation | Range to scan |
|---|---|
About to git commit | staged: --staged |
About to git push to an existing branch | push range: --diff <remote>..<local> |
About to git push a new branch | everything: --all |
| Diagnostic / general audit | everything: --all |
The script lives at <crickets-root>/scripts/check-no-pii.sh. Locate it via:
$AGENT_TOOLKIT_PATH/scripts/check-no-pii.sh if the env var is set../crickets/scripts/check-no-pii.sh~/Antigravity/crickets/, ~/dev/crickets/bash <path>/scripts/check-no-pii.sh <mode>
If the script isn't found, stop and tell the user — don't silently skip the check. Suggest: set AGENT_TOOLKIT_PATH or re-run crickets/install.sh on the target project.
pii-scrubber: clean (<mode>). Done.Each finding line is file:line: <kind> match: <match>. Present them as a numbered list:
1. README.md:42: email match: [email protected]
2. docs/install.md:17: personal-path-mac match: /Users/alex/
3. scripts/run.sh:8: openai-key match: sk-abc123def456ghi789jkl
For each finding, propose a one-line redaction:
| Kind | Redaction strategy |
|---|---|
email | Replace with [email protected] / [email protected] (RFC 2606 reserved domains) |
personal-path-* | Replace with <your-user>/ placeholder or $HOME in shell examples |
API key shape (openai-key, github-token, gitlab-token, aws-access-key) | Remove entirely. Never replace with a fake — anyone copying it would have a credential-shaped placeholder. Use <API_KEY>, <TOKEN>, etc. if the example needs a stand-in. |
phone-us | Replace with 555-0100 through 555-0199 (NANP reserved for fiction) |
For each finding, ask the user:
"Redact this with the proposed strategy, leave as-is and allowlist the pattern, or override with a documented reason?"
.gitleaks.toml [allowlist].regexes or scripts/check-no-pii.sh's ALLOWLIST_PATTERNS=. Document the reason in the commit.If the user explicitly wants to skip a finding (not redact, not allowlist):
.harness/.pii-overrides.log (create if absent):
<ISO-8601 timestamp> | <file:line> | <kind> | <match redacted to 8 chars> | <reason>
Example:
2026-05-12T15:30:00Z | docs/example.md:14 | email | bob@exam… | Used as a documentation example in a tutorial about email validation
After remediation, re-run:
bash <path>/scripts/check-no-pii.sh <mode>
If still non-zero, loop back to step 4. If clean (exit 0), return to the user with:
pii-scrubber: clean (<N> redactions, <M> allowlists added, <K> overrides logged)
On initial clean:
pii-scrubber: clean (<mode>)
On clean-after-remediation:
pii-scrubber: clean (<mode>; <N> redactions, <M> allowlists, <K> overrides logged to .harness/.pii-overrides.log)
On abort (user declined to address findings):
pii-scrubber: ABORTED — <N> finding(s) unaddressed. Do NOT push.
See .pii-scrubber-pending.txt for the pending list.
The skill writes pending findings to .pii-scrubber-pending.txt (gitignored) so the next session can resume.
.harness/.pii-overrides.log. It's append-only; CI reads it..gitleaks.toml without user direction. If a pattern is wrong, surface it; the user updates the config..pii-scrubber-pending.txt; tell the user not to push.Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub alexherrero/crickets --plugin pii