К основному содержанию
скилл CX Codex

iterate-pr — скилл для Claude Code: что делает и как установить

Доводит пуллреквест до зелёного статуса CI и закрывает важные замечания ревью. Помогает передать рутинные исправления агенту без ожидания аппрувов от людей.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add getsentry/skills --skill iterate-pr -a claude-code
Открыть на GitHub

Что делает iterate-pr

Скилл организует цикл доводки открытого PR в GitHub. Сначала он запускает скрипт scripts/fetch_pr_feedback.py, чтобы разобрать комментарии ревью по категориям: важные и средние берёт в работу сразу, а по поводу мелких правок спрашивает пользователя. Затем проверяет состояние проверок скриптом scripts/fetch_pr_checks.py.

Если тесты падают, агент читает логи прогонов через команду gh run view <run-id> --log-failed. Он находит первопричину сбоя и отправляет коммиты в репозиторий только после успешной локальной проверки.

Для запуска нужны утилита uv и авторизованный gh CLI в корне целевого репозитория. Скилл сразу остановится, если тесты заблокированы ручным аппрувом человека или ветка требует ребейза.

Какие задачи решает

  • исправить сбои CI в открытом пуллреквесте
  • разобрать замечания ботов и ревьюеров по уровню важности
  • проверить логи упавших тестов через GitHub CLI
  • отправить коммиты с исправлениями после локальной проверки

Примеры запросов агенту

  • Доведи PR до зелёных тестов и исправь замечания ревью
  • Проверь падения CI в текущем PR и исправь найденные ошибки
  • Запусти цикл iterate-pr для пуллреквеста и закрой критические замечания

Как установить iterate-pr

1Через Skills CLI (Vercel)

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

2Вручную: положить файлы

~/.claude/skills/iterate-pr/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/iterate-pr/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о iterate-pr

Как установить iterate-pr в Claude Code?

Выполните команду npx skills add getsentry/skills --skill iterate-pr -a claude-code.

Что делает iterate-pr?

Он читает замечания ревью, изучает логи упавших тестов CI, вносит правки в код и отправляет коммиты до успешного завершения проверок. Скилл не ждёт аппрува от людей и останавливается при внешних блокировках.

Что нужно подготовить перед запуском iterate-pr?

Требуются установленный инструмент uv, авторизованный клиент gh и запуск команд из корня целевого репозитория.

Исходный текст

SKILL.md · Apache-2.0
---
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

| Script | Run | Output |
|--------|-----|--------|
| `scripts/fetch_pr_checks.py` | `uv run scripts/fetch_pr_checks.py [--pr NUMBER]` | JSON: `pr`, `summary`, `checks`, failure snippets |
| `scripts/fetch_pr_feedback.py` | `uv run scripts/fetch_pr_feedback.py [--pr NUMBER]` | JSON buckets: `high`, `medium`, `low`, `bot`, `resolved` |
| `scripts/monitor_pr_checks.py` | `uv run scripts/monitor_pr_checks.py [--pr NUMBER]` | terminal marker plus tab-separated checks |
| `scripts/reply_to_thread.py` | `uv 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]`.

| Bucket | Action |
|--------|--------|
| `high` | fix |
| `medium` | fix |
| `low` | ask user which to address |
| `bot` | skip informational comments |
| `resolved` | skip |

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]`.

| State | Action |
|-------|--------|
| `failed > 0` and `actionable_pending == 0` | fix failures |
| `actionable_pending > 0` | wait; poll feedback while waiting |
| `pending > 0` and `actionable_pending == 0` | report `CHECKS_BLOCKED_BY_REVIEW_GATE` |
| no checks after grace period | report `NO_CHECKS_REGISTERED` or `DRAFT_PR_WITH_NO_CHECKS` |
| all actionable checks passed | run 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

### 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

| Exit | Conditions |
|------|------------|
| Success | actionable CI passed; post-CI feedback clean; low-priority choice handled |
| Ask user | same failure after 2 attempts; feedback unclear; infrastructure issue |
| Stop | no 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 · getsentry/skills

Похожие скиллы

Все скиллы по теме «Git и GitHub» →
om-approve-merge-pr open-mercato Скилл принимает номер пул-реквеста, ставит апрувящий ревью и делает squash-merge. Отказывается, если мешает QA-гейт или блокирующий лейбл. CX Codex +1 3 500установок om-merge-buddy open-mercato Скилл проверяет открытые пуллреквесты, оценивает CI, ревью и QA-статусы, после чего формирует отчёт о готовности к слиянию. Работает только в режиме чтения. CX Codex +1 2 800установок shepherd chrisbanes Отслеживает открытые pull request и merge request, разбирает замечания ревьюеров и падения CI, а также готовит правки к пушу. CX Codex +1 1 200установок github-workflow Mindrally Набор правил по работе с GitHub: как оформлять пул-реквесты, вести ревью, писать workflow для Actions и настраивать защиту веток. Пригодится, когда агент правит репозиторий. CX Codex +1 780установок finish-pr PinguApps Скилл доводит пул-реквест текущей ветки до состояния, когда его можно отдавать на ревью: разбирается с конфликтами, упавшими проверками и замечаниями. CX Codex +1 540установок babysitting-pr spencerpauly Скилл отслеживает открытый пулл-реквест, устраняет сбои линтера, тестов и сборки в CI, разбирает комментарии ревью и правит конфликты слияния. CX Codex +1 427установок

Из того же набора20

security-review Находит инъекции, XSS, ошибки авторизации и другие уязвимости в коде. Отчитывается только о находках с высокой уверенностью. CX Codex +1 21 300установок agents-md Создаёт и обновляет лаконичные файлы инструкций AGENTS.md и CLAUDE.md для репозитория. Помогает задать правила кодинг-агентам без лишней воды. CX Codex +1 7 100установок code-review Скилл для ревью пул-реквестов и правок кода по инженерным практикам Sentry: безопасность, производительность, тесты, дизайн. CX Codex +1 5 500установок commit Скилл для коммитов в стиле Sentry: собирает conventional commits со ссылками на задачи и следит, чтобы вы не коммитили прямо в main. CX Codex +1 4 700установок pr-writer Составляет и обновляет описания пулл-реквестов с фокусом на ревьюера. Пригодится перед открытием PR или при синхронизации описания с новым диффом ветки. CX Codex +1 4 500установок claude-settings-audit Анализирует репозиторий и предлагает разрешения settings.json для команд только на чтение. Пригодится при настройке проекта или проверке текущих прав. CX Codex +1 4 500установок create-branch Создаёт git-ветку с именем вида feat/... по правилам Sentry. Пригодится, когда начинаешь работу и не хочешь придумывать имя вручную. CX Codex +1 4 300установок gh-review-requests Ищет непрочитанные запросы на ревью открытых GitHub PR по выбранной команде. Нужен, когда очередь ревью приходится собирать вручную. CX Codex +1 4 200установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой