← Back to list

stacked-prs
by yonatangross
The Complete AI Development Toolkit for Claude Code — 159 skills, 34 agents, 20 commands, 144 hooks. Production-ready patterns for FastAPI, React 19, LangGraph, security, and testing.
⭐ 29🍴 4📅 Jan 23, 2026
SKILL.md
name: stacked-prs description: Multi-PR development for large features. Stack dependent PRs, manage rebases, and get faster reviews on smaller changes. Use when creating stacked PRs. context: fork version: 1.0.0 author: OrchestKit tags: [git, pull-request, stacked, workflow, code-review] user-invocable: false
Stacked PRs
Break large features into small, reviewable PRs that depend on each other. Merge in order for clean history.
Quick Reference
main ──────────────────────────────────────────●
/
PR #3 (final) ─────────────────────────●────┘ ← Merge last
/
PR #2 (middle) ────────────────────●──┘ ← Depends on #1
/
PR #1 (base) ────────────────●── ← Merge first
/
feature/auth ──────●────●────● ← Development
Workflow
1. Plan the Stack
# Identify logical chunks
# Example: Auth feature
# PR 1: Add User model + migrations
# PR 2: Add auth service + tests
# PR 3: Add login UI + integration tests
2. Create Base Branch
git checkout main
git pull origin main
git checkout -b feature/auth-base
# Implement first chunk
git add -p
git commit -m "feat(#100): Add User model"
git commit -m "feat(#100): Add user migrations"
# Push and create first PR
git push -u origin feature/auth-base
gh pr create --base main --title "feat(#100): Add User model [1/3]" \
--body "## Stack
- PR 1/3: User model (this PR)
- PR 2/3: Auth service (depends on this)
- PR 3/3: Login UI (depends on #2)
## Changes
- Add User model with validation
- Add database migrations"
3. Stack Next PR
# Branch from first PR's branch (not main!)
git checkout -b feature/auth-service
# Implement second chunk
git add -p
git commit -m "feat(#100): Add auth service"
git commit -m "test(#100): Add auth service tests"
# Push and create PR targeting FIRST branch
git push -u origin feature/auth-service
gh pr create --base feature/auth-base \
--title "feat(#100): Add auth service [2/3]" \
--body "## Stack
- PR 1/3: User model (#101)
- PR 2/3: Auth service (this PR)
- PR 3/3: Login UI (depends on this)
**Depends on #101** - merge that first"
4. Continue Stacking
git checkout -b feature/auth-ui
# Implement third chunk
git commit -m "feat(#100): Add login form"
git commit -m "test(#100): Add login integration tests"
git push -u origin feature/auth-ui
gh pr create --base feature/auth-service \
--title "feat(#100): Add login UI [3/3]"
Managing the Stack
When Base PR Gets Feedback
# Make changes to base PR
git checkout feature/auth-base
git add -p
git commit -m "fix: Address review feedback"
git push
# Rebase dependent PRs
git checkout feature/auth-service
git rebase feature/auth-base
git push --force-with-lease
git checkout feature/auth-ui
git rebase feature/auth-service
git push --force-with-lease
When Base PR Merges
# After PR #1 merges to main
git checkout main
git pull origin main
# Update PR #2 to target main now
gh pr edit 102 --base main
# Rebase PR #2 on main
git checkout feature/auth-service
git rebase main
git push --force-with-lease
# Repeat for PR #3 after #2 merges
Stack Visualization
Track your stack with comments:
## PR Stack for Auth Feature (#100)
| Order | PR | Status | Branch |
|-------|-----|--------|--------|
| 1 | #101 | Merged | feature/auth-base |
| 2 | #102 | Review | feature/auth-service |
| 3 | #103 | Draft | feature/auth-ui |
**Merge order**: #101 -> #102 -> #103
Automation Script
#!/bin/bash
# stack-rebase.sh - Rebase entire stack after changes
STACK=(
"feature/auth-base"
"feature/auth-service"
"feature/auth-ui"
)
BASE="main"
for branch in "${STACK[@]}"; do
echo "Rebasing $branch onto $BASE..."
git checkout "$branch"
git rebase "$BASE"
git push --force-with-lease
BASE="$branch"
done
echo "Stack rebased successfully!"
Tools for Stacked PRs
GitHub CLI Extensions
# Install stacked PR helper
gh extension install dlvhdr/gh-dash
# View PR dependencies
gh pr view --json baseRefName,headRefName
Third-Party Tools
- Graphite - graphite.dev (full stack management)
- Stacked - stacked.dev
- git-branchless - github.com/arxanas/git-branchless
Best Practices
DO:
✅ Keep each PR < 400 lines
✅ Make each PR independently reviewable
✅ Document the stack in PR descriptions
✅ Number PRs clearly [1/3], [2/3], [3/3]
✅ Use draft PRs for incomplete stack items
✅ Rebase after feedback, don't merge
DON'T:
❌ Create circular dependencies
❌ Stack more than 4-5 PRs deep
❌ Leave stacks open for > 1 week
❌ Force push to already-approved PRs
❌ Merge out of order
When NOT to Stack
- Small features (< 300 lines total)
- Unrelated changes
- Urgent hotfixes
- Single-purpose refactors
PR Template for Stacked PRs
## Summary
Brief description of this PR's changes
## Stack Position
- [ ] PR 1/N: Description (#xxx) - [Status]
- [x] PR 2/N: This PR
- [ ] PR 3/N: Description (#xxx) - [Status]
## Dependencies
**Depends on**: #xxx (merge that first)
**Blocks**: #xxx (must merge this first)
## Changes
- Change 1
- Change 2
## Test Plan
- [ ] Tests added
- [ ] CI passes
Related Skills
- git-workflow: Branching, commits, and recovery patterns
- create-pr: PR creation basics
References
Score
Total Score
75/100
Based on repository quality metrics
✓SKILL.md
SKILL.mdファイルが含まれている
+20
✓LICENSE
ライセンスが設定されている
+10
✓説明文
100文字以上の説明がある
+10
○人気
GitHub Stars 100以上
0/15
✓最近の活動
1ヶ月以内に更新
+10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
✓タグ
1つ以上のタグが設定されている
+5
Reviews
💬
Reviews coming soon
