iterate-pr
Iterate on a PR until CI passes. Use when you need to fix CI failures, address review feedback, or continuously push fixes until all checks are green. Automates the feedback-fix-push-wait cycle.
Best use case
iterate-pr is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Iterate on a PR until CI passes. Use when you need to fix CI failures, address review feedback, or continuously push fixes until all checks are green. Automates the feedback-fix-push-wait cycle.
Teams using iterate-pr should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/iterate-pr/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How iterate-pr Compares
| Feature / Agent | iterate-pr | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Iterate on a PR until CI passes. Use when you need to fix CI failures, address review feedback, or continuously push fixes until all checks are green. Automates the feedback-fix-push-wait cycle.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Iterate on PR Until CI Passes
Continuously iterate on the current branch until all CI checks pass and review feedback is addressed.
## When to Use This Skill
Use this skill when:
- Fixing CI failures
- Addressing review feedback
- Continuously pushing fixes until all checks are green
- Automating the feedback-fix-push-wait cycle
- Ensuring PR meets all quality gates
**Requires**: GitHub CLI (`gh`) authenticated and available.
## Process
### Step 1: Identify the PR
```bash
gh pr view --json number,url,headRefName,baseRefName
```
If no PR exists for the current branch, stop and inform the user.
### Step 2: Check CI Status First
Always check CI/GitHub Actions status before looking at review feedback:
```bash
gh pr checks --json name,state,bucket,link,workflow
```
The `bucket` field categorizes state into: `pass`, `fail`, `pending`, `skipping`, or `cancel`.
**Important:** If any of these checks are still `pending`, wait before proceeding:
- `sentry` / `sentry-io`
- `codecov`
- `cursor` / `bugbot` / `seer`
- Any linter or code analysis checks
These bots may post additional feedback comments once their checks complete. Waiting avoids duplicate work.
### Step 3: Gather Review Feedback
Once CI checks have completed (or at least the bot-related checks), gather human and bot feedback:
**Review Comments and Status:**
```bash
gh pr view --json reviews,comments,reviewDecision
```
**Inline Code Review Comments:**
```bash
gh api repos/{owner}/{repo}/pulls/{pr_number}/comments
```
**PR Conversation Comments (includes bot comments):**
```bash
gh api repos/{owner}/{repo}/issues/{pr_number}/comments
```
Look for bot comments from: Sentry, Codecov, Cursor, Bugbot, Seer, and other automated tools.
### Step 4: Investigate Failures
For each CI failure, get the actual logs:
```bash
# List recent runs for this branch
gh run list --branch $(git branch --show-current) --limit 5 --json databaseId,name,status,conclusion
# View failed logs for a specific run
gh run view <run-id> --log-failed
```
Do NOT assume what failed based on the check name alone. Always read the actual logs.
### Step 5: Validate Feedback
For each piece of feedback (CI failure or review comment):
1. **Read the relevant code** - Understand the context before making changes
2. **Verify the issue is real** - Not all feedback is correct; reviewers and bots can be wrong
3. **Check if already addressed** - The issue may have been fixed in a subsequent commit
4. **Skip invalid feedback** - If the concern is not legitimate, move on
### Step 6: Address Valid Issues
Make minimal, targeted code changes. Only fix what is actually broken.
### Step 7: Commit and Push
```bash
git add -A
git commit -m "fix: <descriptive message of what was fixed>"
git push origin $(git branch --show-current)
```
### Step 8: Wait for CI
Use the built-in watch functionality:
```bash
gh pr checks --watch --interval 30
```
This waits until all checks complete. Exit code 0 means all passed, exit code 1 means failures.
Alternatively, poll manually if you need more control:
```bash
gh pr checks --json name,state,bucket | jq '.[] | select(.bucket != "pass")'
```
### Step 9: Repeat
Return to Step 2 if:
- Any CI checks failed
- New review feedback appeared
Continue until all checks pass and no unaddressed feedback remains.
## Exit Conditions
**Success:**
- All CI checks are green (`bucket: pass`)
- No unaddressed human review feedback
**Ask for Help:**
- Same failure persists after 3 attempts (likely a flaky test or deeper issue)
- Review feedback requires clarification or decision from the user
- CI failure is unrelated to branch changes (infrastructure issue)
**Stop Immediately:**
- No PR exists for the current branch
- Branch is out of sync and needs rebase (inform user)
## Tips
- Use `gh pr checks --required` to focus only on required checks
- Use `gh run view <run-id> --verbose` to see all job steps, not just failures
- If a check is from an external service, the `link` field in checks JSON provides the URL to investigateRelated Skills
zustand-store-ts
Create Zustand stores with TypeScript, subscribeWithSelector middleware, and proper state/action separation. Use when building React state management, creating global stores, or implementing reacti...
zoom-automation
Automate Zoom meeting creation, management, recordings, webinars, and participant tracking via Rube MCP (Composio). Always search tools first for current schemas.
zoho-crm-automation
Automate Zoho CRM tasks via Rube MCP (Composio): create/update records, search contacts, manage leads, and convert leads. Always search tools first for current schemas.
zendesk-automation
Automate Zendesk tasks via Rube MCP (Composio): tickets, users, organizations, replies. Always search tools first for current schemas.
zapier-make-patterns
No-code automation democratizes workflow building. Zapier and Make (formerly Integromat) let non-developers automate business processes without writing code. But no-code doesn't mean no-complexity ...
youtube-summarizer
Extract transcripts from YouTube videos and generate comprehensive, detailed summaries using intelligent analysis frameworks
youtube-automation
Automate YouTube tasks via Rube MCP (Composio): upload videos, manage playlists, search content, get analytics, and handle comments. Always search tools first for current schemas.
xss-html-injection
This skill should be used when the user asks to "test for XSS vulnerabilities", "perform cross-site scripting attacks", "identify HTML injection flaws", "exploit client-side injection...
xlsx-official
Comprehensive spreadsheet creation, editing, and analysis with support for formulas, formatting, data analysis, and visualization. When Claude needs to work with spreadsheets (.xlsx, .xlsm, .csv, ....
x-twitter-scraper
X (Twitter) data platform skill — tweet search, user lookup, follower extraction, engagement metrics, giveaway draws, monitoring, webhooks, 19 extraction tools, MCP server.
x-article-publisher-skill
Publish articles to X/Twitter
writing-skills
Use when creating, updating, or improving agent skills.