Help us improve
Share bugs, ideas, or general feedback.
From sentry-skills
Iterates on a pull request by addressing CI failures and high/medium review feedback until actionable checks pass. Use for PR CI failures, review feedback loops, and green-check loops.
npx claudepluginhub getsentry/skills --plugin sentry-skillsHow this skill is triggered — by the user, by Claude, or both
Slash command
/sentry-skills:iterate-prThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Goal: fix actionable CI failures and high/medium review feedback. Stop and report human approval, draft-readiness, and merge-readiness gates.
Iterates on GitHub PRs until CI passes by fetching check failures and LOGAF-categorized review feedback, applying fixes, and pushing commits. Use for CI fixes or review loops.
Iteratively commits fixes, pushes to GitHub PR, waits for CI completion, and resolves review comments until checks pass and no unresolved issues remain. Use to automate PRs to mergeable state.
Automates GitHub PR review-fix loops: requests bot reviews via @mentions, polls comments with GitHub CLI, analyzes issues, fixes code, runs internal review, pushes changes, repeats until no critical issues.
Share bugs, ideas, or general feedback.
Goal: fix actionable CI failures and high/medium review feedback. Stop and report human approval, draft-readiness, and merge-readiness gates.
Requires:
ghuvscripts/fetch_pr_checks.py| 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_PASSEDCHECKS_DONE_WITH_FAILURESNO_CHECKS_REGISTEREDDRAFT_PR_WITH_NO_CHECKSCHECKS_BLOCKED_BY_REVIEW_GATERun:
gh pr view --json number,url,headRefName,isDraft,reviewDecision
Stop when:
DRAFT_PR_WITH_NO_CHECKSDraft rule: inspect existing checks/feedback only. Do not mark ready for review unless asked.
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:
review_bot: true: fix real issues, explain false positivesLow-priority prompt format:
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")
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.
For each failure:
gh run view <run-id> --log-failedBefore commit:
git add <files>
git commit -m "fix: <descriptive message>"
git push
Loop:
uv run scripts/fetch_pr_checks.pyactionable_pending > 0, run uv run scripts/fetch_pr_feedback.pyClaude 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 |
|---|---|
| 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 |
If scripts fail, use gh CLI directly:
gh pr view --json number,url,headRefName,isDraft,reviewDecisiongh pr checks --json name,state,bucket,description,linkgh run view <run-id> --log-failedgh api repos/{owner}/{repo}/pulls/{number}/comments