fix-pr について
fix-pr は、GitHub のプルリクエストに寄せられた指摘を扱う開発者向けスキルです。レビューや CI の問題を収集・評価し、修正の検証からコミット、プッシュ、返信、結果報告までを段階的に進めます。
主な機能
- 01ローカルブランチを PR の先頭に同期
- 02レビューと CI の問題を収集・重複排除
- 03指摘を評価し修正を検証
- 04設定に応じたコミット、プッシュ、返信
- 05証拠、状態、未返信の対象を報告
活用シーン
- 01現在のブランチの PR レビューに対応
- 02マージを妨げる CI の問題を調査・修正
- 03プッシュせず修正をローカルに保持
- 04レビュー結果と残作業を整理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ prathamdby/ skills --skill fix-prインストール後、Claude Code で/fix-prを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
REFERENCE.mdreferences/hunt.mdreplies.mdunslop-reply-drafts.md詳細
PR の修正
オプションと依存関係
デフォルト:現在のブランチの PR を対象とし、プッシュと返信を有効にします。PR 番号または URL を指定すると、その PR が選択されます。
「プッシュしない」/「ローカルに保持する」を指定するとプッシュが無効になり、
「返信しない」を指定すると返信が無効になります。
名前付きの値が不足している場合は処理を停止します。GitHub にアクセスする前に
../gh/SKILL.md を検証して読み、コミットする前に
../commit/SKILL.md を検証して読みます。
依存関係が不足している場合は、代替手段を即興で用意せず、パスを示して処理を停止します。
1. 同期
リポジトリ、PR の URL/番号/ベース/ヘッド/リモート SHA を特定します。PR がクローズ済みまたは見つからない場合、認証に失敗した場合、作業ツリーに変更がある場合、または安全でないチェックアウトの場合は処理を停止します。フェッチし、ヘッドをチェックアウトして、リモート SHA までファストフォワードします。リセットや強制操作は行いません。
次の内容を記録します。
PR/SHA | push/replies | hunt counts/pages | finding/verdict/evidence | commit/push | native targets | terminal
ローカルの HEAD がリモート PR のヘッドと一致し、対象が確定した時点で完了です。
2. 一度だけ調査
gh を通じて、未解決のスレッド(古いものも含む)、すべてのネストされたページ、REST のレビューコメントチェーン、対応が必要なレビュー本文、会話コメント、ターミナル状態が成功ではない必須またはブロッキングのヘッド SHA チェックとアノテーションを収集します。
pr-threads --json --open --complete と ci-failures に PR/SHA を指定して使用します。
references/hunt.md にある完全性/照合のルールをすべて適用します。
スクリプトの終了だけでは、REST のルートや必須チェックの完了は証明されません。
6 つすべての情報源を確認するまで、トリアージや編集を行わないでください。主張を正規化して重複を除きますが、ネイティブの返信先は保持します。すべてのページの取得が完了し、各指摘が記録された時点で完了です。
この調査は一度だけ実行し、編集/コミット/プッシュ/返信の後には再実行しません。後からフィードバックや CI の結果が必要になった場合は、新たに呼び出します。失敗した返信を再試行しても、調査を再実行したことにはなりません。
3. トリアージと修正
周辺のソースを確認してすべての主張を追跡し、可能な場合は再現します。スキップ理由を含む根拠を添えて、「修正」「却下」「要確認」「修正済み」のいずれかを割り当てます。すべての判定が済むまで編集しません。焦点を絞ったまとまりごとに修正のみを適用し、それぞれに最小限のチェックを実行します。必須チェックの失敗は処理を停止する要因です。すべての指摘に判定があり、すべての修正で差分が検証済みになった時点、または修正が不要だった時点で完了です。
4. コミットとプッシュ
差分がある場合は、以前に作成したメッセージ案を破棄し、ステージされていない範囲を指定して commit を呼び出します。クリーンルームに関するルールはすべて commit が管理します。これには ../commit/REFERENCE.md に記載された会話のみのテストとトレーラーの適切な処理も含まれます。ここでは別のメッセージポリシーを繰り返しません。作業ツリーがクリーンな場合はコミットをスキップします。
有効な場合はプッシュし、リモート SHA を検証します。強制操作は行いません。リモートの移動や拒否があった場合は処理を停止します。プッシュが無効の場合、修正済みの指摘は AWAITING_PUSH のままになります。プッシュ前に %B を再確認し、拒否対象となる文面や要求されていないトレーラーがないか確認します。差分がないか、検証済みのコミットがプッシュされた時点で完了です。ローカルのみの修正は、プッシュ成功とはみなしません。
5. 返信と報告
返信が有効な場合は、references/replies.md を適用してから
references/unslop-reply-drafts.md を適用します。共通の親コメントにまとめ、ボットのプレフィックスを保持し、gh の返信スクリプト経由でのみ投稿します。対応済みの対象はスキップします。
インライン返信に失敗した場合は再試行しません。pr-reply のエラーに従い、その本文をメインの会話に投稿します。メインの会話への投稿に失敗した場合は再取得して一度だけ再試行します。再度失敗した場合は処理を停止します。
修正済みの返信にはプッシュ済みの SHA が必要です。明示的に依頼され、別途承認された操作によって裏付けられていない限り、解決済みにしません。
指摘/判定/対応/根拠、URL、コミット/プッシュ、調査件数、未返信の対象を報告します。許可された返信すべてが各判定と一致した時点で完了です。
最終状態:SUCCESS、NO_CODE_CHANGE、AWAITING_PUSH、BLOCKED。未対応の指摘がある状態で SUCCESS にしてはいけません。インラインスレッド、またはフォールバック先のメインの会話で回答した指摘は対応済みです。再開時は「同期」からやり直します。マージコンフリクトの修正は行いません。