Examples
Split a dirty tree
text
$ git status --short
M src/auth.py
M src/api.py
M tests/test_auth.py
M README.md
?? src/rate_limit.py
$ imp split
→ feat(auth): add rate limiting to login
→ test(auth): cover rate-limit edge cases
→ docs: document new auth flags
split groups related files, stages one group at a time, and produces several
reviewable Conventional Commits from one working tree.
imp splitCommit and push
shell
imp commit --all
imp commit --all --yes --push
imp commit --all --exclude 'fixtures/**' --whisper 'use IMP-42 as ticket'
imp commitOpen a pull request
text
$ imp pr --into main
→ Title: feat: rate limit auth endpoints
→ Body: Adds per-IP rate limiting to login and registration…
imp prResolve a merge
shell
imp merge feat/per-user-limits
# or, when Git is already stopped in a merge or rebase:
imp resolve
Each conflicted file is proposed separately. Accept, edit, choose ours or theirs, or stop without hiding the repository's merge state.
imp mergeimp resolveCut a release
text
$ imp release --minor
→ Bump: 0.0.53 → 0.1.0
→ Synced manifests and wrote changelog
→ Tagged v0.1.0 and pushed
release updates supported manifests, creates the changelog and tag, and rolls
the operation back if a later step fails. --rc creates a prerelease;
--stable promotes the stable line.
imp releaseShip a fleet
shell
cd ~/.katforge
imp fleet --patch --rc
Fleet discovers nested repositories and ships each dirty member independently.
imp fleet