Agent skill
stacked-prs
Manage stacked PRs with proper visualization, merge-based updates, and iterative CodeRabbit feedback cycles
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/stacked-prs
Metadata
Additional technical details for this skill
- tags
-
pull-requests git code-review coderabbit
- uses
-
[ "coderabbit-workflow", "pr-workflow" ] - version
- 1.1.0
- category
- workflow
- triggers
-
[ "on-demand" ]
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 (L25-L32)
- Workflow Overview (L61-L69)
- Quick Reference (L70-L100)
- Scripts (L101-L106)
- References (L107-L116)
- Key Requirement: CodeRabbit Approval (L117-L127)
- Programmatic Automation (L128-L152)
- Skill Dependencies (L153-L159)
- Related (L160-L163)
Available Resources
📚 references/ - Detailed documentation
- automation patterns
- merge workflow
- pr formatting
- readiness checklist
- review cycles
🔧 scripts/ - Automation scripts
- check stack status
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
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?