- Search the full commit history by batching git grep across all commits
instead of truncating to the newest 1000.
- Propagate git grep errors from verify_cleanup instead of swallowing them.
- Parse gitleaks.toml with tomllib when available to handle TOML escapes
correctly; keep a minimal fallback parser for older Python.
- Replace tempfile.mktemp with NamedTemporaryFile(delete=False).
- Strip whitespace from literal:/regex: prefixes in replacements.
- Fix docstring path for the identities file.
Co-Authored-By: Claude <noreply@anthropic.com>
- Replace git log --pickaxe-regex -S with git grep --perl-regexp across all
commits so Layer 2/3 patterns with \b word boundaries match correctly.
- Parse private-domain-context and private-ip-context from user's gitleaks.toml
plus optional identities file for Layer 3.
- Add Layer 4 AI semantic review prompt and eval.
- Update verify_cleanup.py to treat literal: and regex: search sides correctly.
Co-authored-by: Claude <noreply@anthropic.com>
Add a skill for scanning and removing sensitive data from GitHub repo
history. Includes:
- scan_repo.py: gitleaks + custom pattern scan
- rewrite_history.py: backup + git-filter-repo wrapper
- verify_cleanup.py: post-rewrite verification from replacements file
- safe_push.py: visibility check + safe force push
- references/incident-lessons.md: hard-won rules from real cleanups
- references/tooling_notes.md: git-filter-repo/BFG guidance
- evals/evals.json: test prompts
Also register the skill in .claude-plugin/marketplace.json.
All examples use safe placeholders; real private domains go in an
untracked .pii-patterns file.
Co-Authored-By: Claude <noreply@anthropic.com>