iterate-pr について
iterate-prは、現在のGitHubプルリクエストでCIの失敗と妥当なレビュー指摘に順次対応するスキルです。GitHub CLIでチェック、コメント、ログを調べ、解決または停止条件に達するまで対象を絞って修正します。
主な機能
- 01最初にプルリクエストのCI状態を確認
- 02人とボットのレビュー指摘を収集
- 03失敗したワークフローログを確認
- 04修正前に指摘の妥当性を検証
- 05解決までコミット、プッシュ、再確認
活用シーン
- 01進行中のPRでCI失敗に対処
- 02レビュアーやボットのコメントに対応
- 03チェック待ち中の重複修正を回避
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ davila7/ claude-code-templates --skill iterate-prインストール後、Claude Code で/iterate-prを入力して読み込まれたか確認します。
詳細
CI が通るまで PR を反復修正する
すべての CI チェックが通過し、レビューのフィードバックに対応するまで、現在のブランチを継続的に修正します。
必要条件: GitHub CLI (gh) が認証済みで利用可能であること。
手順
ステップ 1: PR を特定する
gh pr view --json number,url,headRefName,baseRefName
現在のブランチに対する PR が存在しない場合は、処理を停止してユーザーに知らせてください。
ステップ 2: まず CI の状態を確認する
レビューのフィードバックを確認する前に、必ず CI/GitHub Actions の状態を確認してください:
gh pr checks --json name,state,bucket,link,workflow
bucket フィールドは状態を pass、fail、pending、skipping、cancel のいずれかに分類します。
重要: 以下のチェックのいずれかがまだ pending の場合は、先に進む前に待機してください:
sentry/sentry-iocodecovcursor/bugbot/seer- リンターやコード分析のチェック
これらのボットは、チェックが完了した後に追加のフィードバックコメントを投稿することがあります。待機することで重複作業を避けられます。
ステップ 3: レビューのフィードバックを収集する
CI チェックが完了したら(少なくともボット関連のチェック)、人間とボットのフィードバックを収集します:
レビューコメントとステータス:
gh pr view --json reviews,comments,reviewDecision
インラインのコードレビューコメント:
gh api repos/{owner}/{repo}/pulls/{pr_number}/comments
PR の会話コメント(ボットのコメントを含む):
gh api repos/{owner}/{repo}/issues/{pr_number}/comments
Sentry、Codecov、Cursor、Bugbot、Seer、その他の自動化ツールからのボットコメントを探してください。
ステップ 4: 失敗の原因を調査する
CI の失敗ごとに、実際のログを取得します:
# 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
チェック名だけから失敗の原因を推測しないでください。必ず実際のログを読んでください。
ステップ 5: フィードバックを検証する
各フィードバック(CI の失敗またはレビューコメント)について:
- 関連するコードを読む - 変更を加える前に文脈を理解する
- 問題が実在するか確認する - すべてのフィードバックが正しいとは限らず、レビュアーやボットが誤っている場合もあります
- すでに対処済みか確認する - 後続のコミットで問題が修正されている可能性があります
- 無効なフィードバックはスキップする - 指摘が妥当でなければ、次に進みます
ステップ 6: 有効な問題に対処する
最小限かつ的を絞ったコード変更を行います。実際に壊れている箇所だけを修正してください。
ステップ 7: コミットしてプッシュする
git add -A
git commit -m "fix: <descriptive message of what was fixed>"
git push
ステップ 8: CI の完了を待つ
組み込みの監視機能を使用します:
gh pr checks --watch --interval 30
すべてのチェックが完了するまで待機します。終了コード 0 はすべて成功、終了コード 1 は失敗があったことを意味します。
より細かく制御する必要がある場合は、手動でポーリングすることもできます:
gh pr checks --json name,state,bucket | jq '.[] | select(.bucket != "pass")'
ステップ 9: 繰り返す
以下のいずれかに該当する場合は、ステップ 2 に戻ります:
- CI チェックが1つでも失敗した
- 新しいレビューのフィードバックが届いた
すべてのチェックが通過し、未対応のフィードバックが残っていない状態になるまで続けます。
終了条件
成功:
- すべての CI チェックが緑色(
bucket: pass)である - 未対応の人間によるレビューのフィードバックがない
支援を求める:
- 同じ失敗が 3 回の試行後も解消しない(不安定なテストや、より深刻な問題の可能性が高い)
- レビューのフィードバックに、ユーザーからの説明や判断が必要である
- CI の失敗がブランチの変更と無関係である(インフラの問題)
直ちに停止する:
- 現在のブランチに対する PR が存在しない
- ブランチが同期されておらず、リベースが必要である(ユーザーに知らせること)
ヒント
gh pr checks --requiredを使うと、必須のチェックだけに絞り込めますgh run view <run-id> --verboseを使うと、失敗したものだけでなく、すべてのジョブのステップを確認できます- チェックが外部サービスによるものである場合、checks の JSON にある
linkフィールドに、調査すべき URL が含まれています