| name | interactive-rebase |
| description | Assist with interactive git rebase [git, rebase, history, cleanup, squash, reorder] |
| license | MIT |
| compatibility | opencode |
| metadata | {"source":"desk/interactive-rebase.md","related":["skill:workflow-protocol","skill:semantic-commit"]} |
What I do
I assist with interactive git rebase following the process in desk/interactive-rebase.md.
Quick Reference
Full process: Read desk/interactive-rebase.md for complete workflow, patterns, and checklists.
Core principle: Two-pass method
- Reorder first - Organize commits without modifying content
- Squash second - Combine related commits, rewrite messages
How I Help
Before Rebase
During Rebase
After Rebase
Critical Rules
DO:
- ✅ Propose two-pass method (reorder → squash)
- ✅ Generate and maintain
rebase-guide.md during process
- ✅ Update guide after user splits/reorders commits
- ✅ Suggest commit splits for conflicts
- ✅ Listen to user preferences on grouping
- ✅ Remove guide after rebase complete
DO NOT:
- ❌ Run
git rebase commands yourself (user controls git)
- ❌ Commit changes without explicit approval
- ❌ Keep
rebase-guide.md after rebase done
- ❌ Assume grouping strategy without validation
Rebase Guide Template
File: rebase-guide.md (temporary, delete after rebase)
# Rebase Interactive Guide
# Branch: <branch-name>
# From: <N> commits → <M> commits
## Commande de départ
git rebase -i main
## Ordre des commits (du plus ancien au plus récent)
### Commit 1 : KEEP/SQUASH
pick <hash> <message>
squash <hash> <message>
Message de commit suggéré :
<final message>
[... repeat for each group ...]
## Résumé visuel
<final commit list>
## Si conflits
git add <resolved-files>
git rebase --continue
Common Grouping Strategies
| Strategy | Use When | Example |
|---|
| By file | Multiple commits same file | rewrite ai-cabin.md (4→1) |
| By feature | Commits implement one feature | add auth (3→1) |
| By type | Separate code, docs, config | feat: + docs: + chore: |
| Keep separate | Independent changes | fix: typo + feat: new |
Conflict Assistance
When user reports conflict:
- Ask which commit/file caused conflict
- Propose splitting the commit:
git reset --soft HEAD~1
git add <file1>
git commit -m "part 1"
git add <file2>
git commit -m "part 2"
- Suggest alternative placements (like
c82eac2 example)
- Update
rebase-guide.md with new commit hashes