A deterministic git shipping skill.
/ship # scan, group, commit — then stop and ask before pushing
/sweep # health report; scope depends on where you run it
/sweep <repo> # just that repo
/sweep --all # the whole fleet, from anywhere
Tools also run standalone:
python tools/preflight.py <repo> --json # secrets, junk, identity, branch
python tools/untrack.py <repo> --rule junk # preview; --apply to execute- Nothing is pushed without a yes.
- A suspected secret stops everything, before staging.
- No
git add -A. Staging is an explicit file list from a commit spec. - No history rewrites of any kind.
untrack.pynever deletes. It runsgit rm --cached; files stay on disk.
Python 3.11+, no runtime dependencies; pytest and ruff for development.
Before first use, set your own name and email under [identity] in config/patterns.toml
— preflight warns when a repo's git identity doesn't match.
python -m pytest tools/test_tools.py -q # 78 tests, no network, no real repos touched