Imported from narrowstacks/dorkroom (
.claude/skills/graphite-workflow/SKILL.md). Install upstream withnpx skills add narrowstacks/dorkroom --skill graphite-workflow. Copyright stays with the author.
Graphite Workflow Skill
Graphite CLI (gt) for managing stacked PRs. First check that gt is installed
(command -v gt); if it isn't, say so and use plain git/gh. In a stack, use
gt for stack-aware operations, because raw git commits and rebases leave
descendant branches un-restacked.
The repo's git rules still apply: confirm before committing, and don't run
gt submit (which pushes) without an explicit request.
gt vs git
| Instead of... | Use... | Why |
|---|---|---|
git commit |
gt create -a -m "message" |
Creates branch + commit + tracks in stack |
git commit --amend |
gt modify -a |
Amends AND auto-restacks descendants |
git push |
gt submit --no-interactive |
Pushes AND creates/updates PRs |
git checkout <branch> |
gt checkout <branch> |
Stack-aware checkout |
git pull / git rebase |
gt sync |
Syncs trunk AND rebases entire stack |
Core Commands Quick Reference
# Creating PRs in a stack
gt create -a -m "feat: description" # Stage all, create branch, commit
# Modifying existing PR
gt modify -a # Amend commit, auto-restack upstack
# Submitting to GitHub
gt submit --no-interactive # Current branch + downstack
gt submit --stack --no-interactive # Entire stack
# Navigation
gt up / gt down # Move within stack
gt top / gt bottom # Jump to ends of stack
gt checkout # Interactive picker
# Syncing
gt sync # Fetch trunk, rebase stack, cleanup merged
# Viewing
gt log # Visual stack graph
gt ls # Short list
The Stack Building Workflow
- Write code FIRST - Never create empty branches
- Stage changes -
git add . - Create branch -
gt create -a -m "message" - Repeat for each slice
- Submit stack -
gt submit --stack --no-interactive
When to Use Raw Git
These operations are fine with raw git:
git add- Staging filesgit status- Checking statusgit diff- Viewing changesgit log(for viewing history, not stack structure)
Handling Modifications
When changes are needed to an earlier PR in the stack:
gt checkout <branch-needing-changes>
# Make code changes
git add .
gt modify -a # Amend + auto-restack
gt submit --stack --no-interactive # Push updates
Conflict Resolution
# If conflict occurs during sync/restack:
# 1. Fix conflicts in editor
git add .
gt continue
# To abort:
gt abort