| name | create-pr-with-review |
| description | Review the local diff with flat-perspective sub-agents, fix findings in a loop, then create a PR via the create-pr skill once the review is clean |
| disable-model-invocation | true |
Create PR with Review
PR 作成前にローカル差分をレビューし、指摘がなくなるまで修正を繰り返してから @.claude/skills/create-pr/SKILL.md の手順で PR を作成する。
前提収集 → [レビュー → 指摘あり? → 修正 & commit] ループ → 指摘ゼロ → create-pr 実行
フラットレビューの原則
レビューはメインセッションの記憶を引き継がないサブエージェント (Agent ツール) で行う。実装時に何を考えたかは恣意的な情報なので渡さない。
- 渡してよいもの: PR 本文に書くレベルの前提情報のみ
- PR の目的・背景 (何を実現しようとしているか、1〜3 文)
- 差分 (
git diff 生出力、ハンクヘッダ込み)
- ベース/ヘッドブランチ名、コミット一覧 (
git log --oneline)
- 出力フォーマット (@.claude/skills/review-pr/output-format.md の本文)
- 渡してはいけないもの:
- 実装中の試行錯誤・検討した代替案・却下した設計
- 「ここは意図的にこうした」「この指摘は既に検討済み」等の先回りの弁明
- セッション内の会話履歴・ユーザーとのやりとりの要約
- 修正ループの 2 周目以降も同じ。前回のレビュー結果や修正の経緯を渡さず、毎回まっさらな prompt で最新差分だけをレビューさせる
手順
Phase 1: 前提収集
git branch --show-current
git status --short
git log <base>..HEAD --oneline
git diff <base>...HEAD
<base> は gh repo view --json defaultBranchRef --jq .defaultBranchRef.name で確認
- 未コミットの変更があれば先にコミットさせる (レビュー対象 = コミット済み差分に固定するため)
- 差分が空なら「レビュー対象の差分がありません」と報告して終了
- PR の目的を 1〜3 文にまとめる (後で PR 本文の Summary にもなる)。セッションに文脈がなければユーザーに確認する
Phase 2: レビューループ
@.claude/skills/review-pr/SKILL.md の「エージェント一覧」の表とトリガー評価をそのまま使う (エージェント名・トリガーはあちらが唯一の所在)。ただし入力は gh pr diff ではなく git diff <base>...HEAD の生出力に置き換える。
1 ラウンドの流れ:
-
トリガー評価 — 差分ファイルパスに対して各エージェントの trigger を評価
-
並列レビュー — 起動対象を同一メッセージ内の独立した Agent ツール呼び出しで並列起動。各 prompt は次の節構成 (「フラットレビューの原則」の範囲内の情報のみ):
## PR 前提
<PR の目的 1〜3 文 / ベース・ヘッドブランチ名 / コミット一覧>
## 差分
<git diff <base>...HEAD の生出力をハンクヘッダ込みで貼る>
## 出力フォーマット
<@.claude/skills/review-pr/output-format.md の本文を丸ごと貼る>
-
集約 — @.claude/skills/review-pr/SKILL.md の Phase 3 (正規化・重複検出・マージ・最終フィルタ 4 テスト) をそのまま適用。ただし「本 PR 差分内テスト」は「本ブランチ差分内」と読み替える
-
判定:
- 指摘ゼロ → ループ終了、Phase 3 へ
- 指摘あり → Findings テーブル (review-pr と同形式) をユーザーに表示したうえで修正へ
修正:
- フィルタを通過した指摘はすべて修正対象 (critical / warning / suggestion の区別で選別しない — フィルタが既にノイズを落としている)
- 修正内容が PR の目的と矛盾する・意図的な設計と衝突すると判断した指摘は、勝手に棄却せずユーザーに提示して判断を仰ぐ。ユーザーが棄却した指摘は「棄却済みリスト」に記録し、以降のラウンドで同一指摘 (同ファイル・同根本原因) が再出しても修正対象から除外する (レビューエージェントには伝えない — フラット性維持のため。除外は集約側で行う)
- 修正したらコミットしてから次ラウンドへ (差分を常にコミット済みに保つ)
ループ上限: 3 ラウンド。3 ラウンド終えても指摘が残る場合は、残指摘一覧を提示して「修正を続けるか / このまま PR を作るか」をユーザーに確認する。
Phase 3: PR 作成
@.claude/skills/create-pr/SKILL.md の手順をそのまま実行する (テンプレート確認 → 言語判定 → push → 本文作成 → gh pr create --draft)。
- Phase 1 でまとめた「PR の目的」を Summary の種にする
- レビューループで直した内容は PR 本文に書かない (作成時点のコードがすべて。修正経緯は恣意的情報と同じ扱い)
エラーハンドリング
| シナリオ | 対応 |
|---|
| いずれかのレビューエージェントが失敗 | 残りの結果で続行し、失敗したエージェントを明記する |
| 修正がテストを壊した等で完了できない | ループを中断し、状況と残指摘をユーザーに報告する |
| 3 ラウンドで収束しない | 残指摘を提示し、続行 or PR 作成をユーザーに確認する |