stacked-prs
SKILL.md
Stacked PRs Workflow
Workflows for managing stacked (dependent) pull requests with proper visualization, merge-based updates, and iterative CodeRabbit review cycles.
Core Principles
- No Force Pushes - Always use merge commits, never rebase/force-push
- Draft First - PRs start as drafts until CI passes and CodeRabbit approves
- Bottom-Up Processing - Address feedback from lowest PR in stack first
- Comprehensive Reviews - Address all CodeRabbit comments including nitpicks
- Visual Stack - Use PR titles and descriptions to show stack relationships
Skill Contents
Sections
- Core Principles
- Workflow Overview
- Quick Reference
- Scripts
- References
- Key Requirement: CodeRabbit Approval
- Programmatic Automation
- Skill Dependencies
- Related
Available Resources
📚 references/ - Detailed documentation
🔧 scripts/ - Automation scripts
Workflow Overview
| Phase | Description | Reference |
|---|---|---|
| Creation | Create stacked PRs with proper titles and descriptions | references/pr-formatting.md |
| Updates | Merge changes through the stack (no rebasing) | references/merge-workflow.md |
| Reviews | Process CodeRabbit feedback in cycles | references/review-cycles.md |
| Readiness | Mark ready only after CI + CodeRabbit approval | references/readiness-checklist.md |
Quick Reference
PR Title Format
[JIRA-KEY] type(scope): description (PR N/M)
Stack Visualization (in PR Description)
## PR Stack
| # | PR | Title | Status |
|---|-----|-------|--------|
| 1 | #78 | PNPM migration | Merged |
| 2 | **#79** | Shell to JS | This PR |
| 3 | #80 | Skills content | Depends on #79 |
| 4 | #81 | Validation & CI | Depends on #80 |
Merge Flow (Not Rebase)
# After fixing issues in PR #79
git checkout feat/pr-80-branch
git merge feat/pr-79-branch --no-edit
git push origin feat/pr-80-branch
# Repeat for subsequent PRs in stack
Scripts
| Script | Purpose |
|---|---|
scripts/check-stack-status.ts |
Check CI and CodeRabbit status for all PRs in stack |
References
| Reference | Content |
|---|---|
references/pr-formatting.md |
PR title and description templates |
references/merge-workflow.md |
How to propagate changes through the stack |
references/review-cycles.md |
Processing CodeRabbit feedback iteratively |
references/readiness-checklist.md |
When to mark PRs ready for review |
references/automation-patterns.md |
Polling loops, callbacks, and autonomous operation |
Key Requirement: CodeRabbit Approval
PRs should only be marked "Ready for Review" when:
- All CI checks pass
- All CodeRabbit comments addressed (including nitpicks)
- CodeRabbit has approved (happens automatically after addressing feedback)
- All previous PRs in the stack are merged
Important: Do NOT explicitly request CodeRabbit approval. It approves automatically after you've addressed all its comments and pushed fixes.
Programmatic Automation
For autonomous AI agents, use polling loops to monitor status:
async function waitForPRReady(prNumber: number, repo: string, maxAttempts = 30, intervalMs = 60000) {
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
const status = await checkPRStatus(prNumber, repo);
if (status.ciPassed && status.coderabbitApproved && status.openComments === 0) {
return { ready: true, status };
}
console.log(`Attempt ${attempt}/${maxAttempts}: CI=${status.ciPassed}, CR=${status.coderabbitApproved}, Comments=${status.openComments}`);
if (attempt < maxAttempts) {
await sleep(intervalMs);
}
}
return { ready: false, reason: 'timeout' };
}
See references/automation-patterns.md for complete polling implementations.
Skill Dependencies
| Skill | Purpose |
|---|---|
coderabbit-workflow |
Thread replies, comment export, local CLI reviews |
pr-workflow |
Base PR management patterns |
Related
- coderabbit-workflow - Detailed CodeRabbit workflow patterns
- pr-workflow - GitHub CLI commands for PR management
Weekly Installs
9
Repository
bitsoex/bitso-javaGitHub Stars
36
First Seen
Jan 24, 2026
Security Audits
Installed on
claude-code7
antigravity6
codex6
gemini-cli6
opencode6
github-copilot5