Official agent skill

Iterate PR

by getsentry in getsentry/skills

Iterate on a PR until actionable CI passes and high/medium review feedback is addressed.

OfficialApache-2.0Auto-check: warningsDevelopment

Install Iterate PR

The automated check flagged lines worth reading first. See the safety section below.

skills CLI
$ npx skills add getsentry/skills --skill iterate-pr -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install getsentry/skills iterate-pr --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/getsentry/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/iterate-pr .claude/skills/iterate-pr && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
iterate-pr
GitHub stars
1k
Token cost
~1.3k tokens
SKILL.md length
503 words
Files
7 (incl. scripts)
Skills in repo
27
Repo updated
First seen
Licence
Apache-2.0

At a glance

Iterate on a PR until actionable CI passes and high/medium review feedback is addressed.

  • Works in 6 steps: Identify PR → Handle Feedback → Check CI Status → …
  • Review feedback
  • SKILL.md covers Bundled Scripts, Workflow, Exit Conditions and Fallback
  • Runs Python scripts from its folder; calls uv, gh and git

What it does

Iterate PR is an agent skill from getsentry/skills, published by the product's own GitHub organization. Iterate on a PR until actionable CI passes and high/medium review feedback is addressed. Use for PR CI failures, review feedback, or green-check loops; do not wait for human approval, draft status, or merge gates.

Its SKILL.md is about 1.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including scripts (for example `SPEC.md`, `agents/openai.yaml` and `scripts/fetch_pr_checks.py`).

It sits in Development, covering Failing and flaky tests and Pull requests. The repository describes itself as: Agent Skills used by the Sentry team for development. The licence is Apache-2.0.

When your agent uses it

  • Review feedback
  • Green-check loops
  • Do not wait for human approval

Example prompts

  • “/iterate-pr”

Requirements

  • Python 3

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Identify PR
  2. Handle Feedback
  3. Check CI Status
  4. Fix CI Failures
  5. Verify Locally, Then Commit and Push
  6. Monitor CI and Address Feedback

What it can do on your machine

Read from SKILL.md and the folder at commit d18b7aa. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 4 files in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • uv
    • gh
    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use uv, gh and git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Iterate PR loads about 1.3k tokens when it runs. Until then it costs about 56 tokens; SKILL.md has 503 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~56
When it runs · the whole SKILL.md, loaded when a task matches
~1.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: warnings

The automated check found patterns that need a careful read before installing.

  • WarningTells the agent its actions are pre-authorized / not to stop for confirmationSKILL.md:3
    review feedback, or green-check loops; do not wait for human approval, draft status, or merge gates.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from getsentry/skills at commit d18b7aa, republished under its Apache-2.0 licence (© getsentry). 503 words, ~1,259 tokens.

Download SKILL.mdSave it as .claude/skills/iterate-pr/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.
name
iterate-pr
description
Iterate on a PR until actionable CI passes and high/medium review feedback is addressed. Use for PR CI failures, review feedback, or green-check loops; do not wait for human approval, draft status, or merge gates.
disable-model-invocation
false

Iterate on PR Until CI Passes

Goal: fix actionable CI failures and high/medium review feedback. Stop and report human approval, draft-readiness, and merge-readiness gates.

Requires:

  • authenticated gh
  • uv
  • target repository root as cwd
  • skill-root-relative script paths, for example scripts/fetch_pr_checks.py

Bundled Scripts

ScriptRunOutput
scripts/fetch_pr_checks.pyuv run scripts/fetch_pr_checks.py [--pr NUMBER]JSON: pr, summary, checks, failure snippets
scripts/fetch_pr_feedback.pyuv run scripts/fetch_pr_feedback.py [--pr NUMBER]JSON buckets: high, medium, low, bot, resolved
scripts/monitor_pr_checks.pyuv run scripts/monitor_pr_checks.py [--pr NUMBER]terminal marker plus tab-separated checks
scripts/reply_to_thread.pyuv run scripts/reply_to_thread.py THREAD_ID BODY [...]JSON reply results

Check summary fields include failed, pending, actionable_pending, and human_gate_pending.

Monitor markers:

  • ALL_CHECKS_PASSED
  • CHECKS_DONE_WITH_FAILURES
  • NO_CHECKS_REGISTERED
  • DRAFT_PR_WITH_NO_CHECKS
  • CHECKS_BLOCKED_BY_REVIEW_GATE

Workflow

1. Identify PR

Run:

bash
gh pr view --json number,url,headRefName,isDraft,reviewDecision

Stop when:

  • no PR exists
  • draft PR has no checks after monitor grace period: report DRAFT_PR_WITH_NO_CHECKS

Draft rule: inspect existing checks/feedback only. Do not mark ready for review unless asked.

2. Handle Feedback

Run uv run scripts/fetch_pr_feedback.py [--pr NUMBER].

BucketAction
highfix
mediumfix
lowask user which to address
botskip informational comments
resolvedskip

Feedback fix checklist:

  • verify root cause
  • search related code
  • fix all instances
  • for review_bot: true: fix real issues, explain false positives

Low-priority prompt format:

text
Found 3 low-priority suggestions:
1. [l] "Consider renaming this variable" - @reviewer in api.py:42
2. [nit] "Could use a list comprehension" - @reviewer in utils.py:18
3. [style] "Add a docstring" - @reviewer in models.py:55

Which should I address? ("1,3", "all", or "none")
3. Check CI Status

Run uv run scripts/fetch_pr_checks.py [--pr NUMBER].

StateAction
failed > 0 and actionable_pending == 0fix failures
actionable_pending > 0wait; poll feedback while waiting
pending > 0 and actionable_pending == 0report CHECKS_BLOCKED_BY_REVIEW_GATE
no checks after grace periodreport NO_CHECKS_REGISTERED or DRAFT_PR_WITH_NO_CHECKS
all actionable checks passedrun post-CI feedback check

Wait for actionable review bots: sentry, warden, cursor, bugbot, seer, codeql. Do not wait for approval, isDraft, REVIEW_REQUIRED, Codecov, or informational bots.

4. Fix CI Failures

For each failure:

  1. read full log: gh run view <run-id> --log-failed
  2. trace from assertion/exception/lint rule to source
  3. state the cause before editing: "fails because X, affected by Y"
  4. search related call sites/patterns
  5. fix root cause, not symptom
  6. add focused test coverage when needed
Show full SKILL.md (187 more words)Show less
5. Verify Locally, Then Commit and Push

Before commit:

  • test fix: rerun specific test
  • lint/type fix: rerun affected checker
  • code fix: rerun covering tests
  • local failure: fix before pushing
bash
git add <files>
git commit -m "fix: <descriptive message>"
git push
6. Monitor CI and Address Feedback

Loop:

  1. run uv run scripts/fetch_pr_checks.py
  2. handle table in step 3
  3. while actionable_pending > 0, run uv run scripts/fetch_pr_feedback.py
  4. fix new high/medium feedback immediately
  5. if changed, verify, commit, push, restart loop
  6. otherwise sleep 30 seconds and repeat
  7. after checks pass, wait 10 seconds, fetch feedback once more
  8. if new high/medium feedback exists, return to step 4

Claude Code optional: run uv run scripts/monitor_pr_checks.py through MonitorTool with persistent: false; set timeout to normal repo CI duration. Restart the monitor after every push.

Exit Conditions

ExitConditions
Successactionable CI passed; post-CI feedback clean; low-priority choice handled
Ask usersame failure after 2 attempts; feedback unclear; infrastructure issue
Stopno PR; branch needs rebase; no checks; draft no-checks; only human gates remain

Fallback

If scripts fail, use gh CLI directly:

  • gh pr view --json number,url,headRefName,isDraft,reviewDecision
  • gh pr checks --json name,state,bucket,description,link
  • gh run view <run-id> --log-failed
  • gh api repos/{owner}/{repo}/pulls/{number}/comments

© getsentry, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 6 other files (scripts) in skills/iterate-pr of getsentry/skills.

  • SKILL.md
  • SPEC.md
  • agents/openai.yaml
  • scripts/fetch_pr_checks.py
  • scripts/fetch_pr_feedback.py
  • scripts/monitor_pr_checks.py
  • scripts/reply_to_thread.py

Open the folder on GitHubat commit d18b7aa

Compare with similar skills

Iterate PR next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Iterate PR compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Iterate PR this skillgetsentry/skills1k—~1.3kAutomated safety check: WarnApache-2.0
PR Babysitteropeninterpreter/openinterpreter69k3 repos~4.2kAutomated safety check: PassApache-2.0
Iterate PRmeshery/meshery-operator1517 repos~2.2kAutomated safety check: PassApache-2.0
PlotJuggler Ship CheckPlotJuggler/PlotJuggler6.2k—~1.3kAutomated safety check: PassMPL-2.0
PR Reviewwysaid/android-gpuimage-plus1.9k—~1.4kAutomated safety check: PassMIT
GitHub PR Imagesbikeindex/bike_index308—~1.6kAutomated safety check: PassAGPL-3.0

Similar skills

  • PR Babysitter

    openinterpreter/openinterpreter

    Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.

    69k GitHub starsUsed in 3 repos~4.2k tokens
    DevelopmentAuto-check passed
  • Iterate PR

    meshery/meshery-operator

    Iterate on a PR until CI passes. An agent skill from meshery/meshery-operator.

    151 GitHub starsUsed in 7 repos~2.2k tokens
    DevelopmentAuto-check passed
  • PlotJuggler Ship Check

    PlotJuggler/PlotJuggler

    Runs a gated finish-line checklist before committing a PlotJuggler PJ4 change: build proof, red-test triage, hooks, docs freshness and a diff self-review.

    6.2k GitHub stars~1.3k tokensUpdated 6 days ago
    DevelopmentAuto-check passed
  • PR Review

    wysaid/android-gpuimage-plus

    Address review comments and CI failures for the current branch's PR

    1.9k GitHub stars~1.4k tokensUpdated 2 mo ago
    DevelopmentAuto-check passed
  • GitHub PR Images

    bikeindex/bike_index

    Embed a local image file into an existing GitHub PR — either in the PR body or as a comment.

    308 GitHub stars~1.6k tokensUpdated today
    DevelopmentAuto-check passed
  • PR Draft Summary

    kernitus/BukkitOldCombatMechanics

    A skill your agent uses when drafting pull-request titles, descriptions, change summaries, risk notes, validation sections, or reviewer handoff text; do not use for implementation design, release…

    223 GitHub stars~526 tokensUpdated 3 days ago
    DevelopmentAuto-check passed

More from getsentry/skills

All 27 skills in this repo
  • Skill Scanner

    getsentry/skills

    Official

    Scan agent skills for security issues. An agent skill from getsentry/skills.

    1k GitHub starsUsed in 4 repos~2.5k tokens
    Auto-check: warnings
  • Gh Review Requests

    getsentry/skills

    Official

    Fetch unread GitHub notifications for open PRs where review is requested from a specified team or opened by a team member.

    1k GitHub starsUsed in 3 repos~621 tokens
    Auto-check: notes
  • Security Review

    getsentry/skills

    Official

    Security code review for vulnerabilities. An agent skill from getsentry/skills.

    1k GitHub starsUsed in 4 repos~2.9k tokens
    Auto-check: notes
  • Skill Writer

    getsentry/skills

    Official

    Create, synthesize, and iteratively improve agent skills following the Agent Skills specification.

    1k GitHub stars~2.5k tokensUpdated 5 days ago
    Auto-check passed
  • Django Access Review

    getsentry/skills

    Official

    Django access control and IDOR security review. An agent skill from getsentry/skills.

    1k GitHub starsUsed in 3 repos~2.6k tokens
    Auto-check: notes
  • Gha Security Review

    getsentry/skills

    Official

    GitHub Actions security review for workflow exploitation vulnerabilities.

    1k GitHub starsUsed in 3 repos~2.2k tokens
    Auto-check: notes

Questions about Iterate PR

What does Iterate PR do?

Iterate on a PR until actionable CI passes and high/medium review feedback is addressed. Iterate PR is an agent skill from getsentry/skills, published by the product's own GitHub organization. Iterate on a PR until actionable CI passes and high/medium review feedback is addressed.

When should I use Iterate PR?

Iterate PR fits situations like: review feedback; green-check loops; do not wait for human approval.

How do I install Iterate PR in Claude Code?

Run `npx skills add getsentry/skills --skill iterate-pr -a claude-code`. Or copy the skill folder (skills/iterate-pr in getsentry/skills) into .claude/skills/iterate-pr in your project. Claude Code loads it when a task matches its description.

How do I install Iterate PR in Codex?

Run `npx skills add getsentry/skills --skill iterate-pr -a codex`. Or copy the skill folder (skills/iterate-pr in getsentry/skills) into .agents/skills/iterate-pr in your project. Codex loads it when a task matches its description.

Can I use Iterate PR in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add getsentry/skills --skill iterate-pr -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/iterate-pr, .gemini/skills/iterate-pr, .github/skills/iterate-pr and .opencode/skills/iterate-pr in your project.

What does Iterate PR need to run?

Going by SKILL.md and its folder, Iterate PR needs Python for the scripts in its folder and the command-line tools its instructions call (uv, gh and git). Our summary lists: Python 3.

Does Iterate PR access the network?

SKILL.md contains no URLs. Its commands use uv, gh and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Iterate PR safe to install?

Our automated static check of SKILL.md flagged 1 warning(s): tells the agent its actions are pre-authorized / not to stop for confirmation. Read the flagged lines before installing; the check is not a guarantee either way. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Iterate PR use?

Iterate PR is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Iterate PR use?

About 1.3k tokens (SKILL.md is roughly 5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Iterate PR?

Skills that share tags, products or a category with Iterate PR: PR Babysitter (openinterpreter/openinterpreter, 69k stars), Iterate PR (meshery/meshery-operator, 151 stars), PlotJuggler Ship Check (PlotJuggler/PlotJuggler, 6.2k stars) and PR Review (wysaid/android-gpuimage-plus, 1.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Iterate PR?

getsentry (a GitHub organization, an official publisher) maintains it in getsentry/skills, which has 1,037 GitHub stars. The repository holds 27 skills in this directory. The repository was last updated on October 2, 2026.

Source: getsentry/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.