Agent Skills: Stacked PRs Workflow

Manage stacked PRs with proper visualization, merge-based updates, and iterative CodeRabbit feedback cycles

workflowID: bitsoex/bitso-java/stacked-prs

Install this agent skill to your local

pnpm dlx add-skill https://github.com/bitsoex/bitso-java/tree/HEAD/.claude/skills/stacked-prs

Skill Files

Browse the full folder contents for stacked-prs.

Download Skill

Loading file tree…

.claude/skills/stacked-prs/SKILL.md

Skill Metadata

Name
stacked-prs
Description
Manage stacked PRs with proper visualization, merge-based updates, and iterative CodeRabbit feedback cycles

Stacked PRs Workflow

Workflows for managing stacked (dependent) pull requests with proper visualization, merge-based updates, and iterative CodeRabbit review cycles.

Core Principles

  1. No Force Pushes - Always use merge commits, never rebase/force-push
  2. Draft First - PRs start as drafts until CI passes and CodeRabbit approves
  3. Bottom-Up Processing - Address feedback from lowest PR in stack first
  4. Comprehensive Reviews - Address all CodeRabbit comments including nitpicks
  5. Visual Stack - Use PR titles and descriptions to show stack relationships

Skill Contents

Sections

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:

  1. All CI checks pass
  2. All CodeRabbit comments addressed (including nitpicks)
  3. CodeRabbit has approved (happens automatically after addressing feedback)
  4. 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

<!-- AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY --> <!-- Source: bitsoex/ai-code-instructions β†’ global/skills/stacked-prs/SKILL.md --> <!-- To modify, edit the source file and run the distribution workflow -->