| name | review-branch |
| description | ブランチの変更内容を確認し、概要とコードレビューポイントを提示する。PRがあればメッセージとディスカッションも含めてレビューする |
| argument-hint | [branch-name] |
| disable-model-invocation | true |
| allowed-tools | Bash(git *) Bash(gh pr view *) Bash(gh api repos/*/pulls/*/comments *) Bash(gh api repos/*/issues/*/comments *) |
ブランチレビュースキル
指定されたブランチの変更内容を分析し、概要とコードレビューポイントを提示する。
手順
1. ブランチの切り替え(引数がある場合のみ)
引数 $ARGUMENTS が指定されている場合:
git checkout $ARGUMENTS でそのブランチに切り替える
- 引数が空の場合は現在のブランチのまま作業する
2. PR情報の確認
現在のブランチに紐づくPRが存在するか確認する:
- PR検索:
gh pr view --json number,title,body,state,reviewDecision,reviews,comments,url
- PRが存在する場合: タイトル、説明文、ステータス、レビュー状況を取得
- PRが存在しない場合: このステップをスキップ
- PRレビューコメント:
gh api repos/{owner}/{repo}/pulls/{number}/comments --jq '.[] | {path, body, user: .user.login, line: .line, created_at}'
- PRディスカッション(Issue形式コメント):
gh api repos/{owner}/{repo}/issues/{number}/comments --jq '.[] | {body, user: .user.login, created_at}'
3. ブランチ情報の収集
以下の情報を収集する:
- 現在のブランチ名:
git branch --show-current
- mainブランチとの分岐点:
git merge-base main HEAD
- コミット一覧:
git log --oneline main..HEAD
- 変更ファイル一覧:
git diff --stat main...HEAD
- 変更の差分:
git diff main...HEAD
4. 概要の作成
収集した情報を元に以下を日本語でまとめる:
ブランチ概要
- ブランチ名
- コミット数
- 変更ファイル数
- 変更の目的・意図(PR説明文、コミットメッセージ、コード差分から推測)
PR情報(PRが存在する場合)
- PRタイトルと説明文の要約
- 現在のレビューステータス(承認済み / 変更要求 / レビュー待ち)
- ディスカッションの要点(未解決の議論、指摘事項、合意事項)
変更内容のサマリー
- 各コミットの内容を簡潔に説明
- 変更されたファイルをカテゴリ別にグルーピング(新規追加 / 変更 / 削除)
5. コードレビューポイントの提示
差分を精読し、以下の観点でレビューポイントを挙げる。PRのディスカッションで既に指摘されている内容がある場合は、その対応状況も合わせて確認する:
- バグの可能性: ロジックエラー、エッジケースの見落とし、null/undefined参照の可能性
- パフォーマンス: 不要な計算、N+1問題、メモリリーク、キャッシュ戦略の問題
- 設計・アーキテクチャ: 責務の分離、依存関係の方向、命名の適切さ
- セキュリティ: 入力検証の不足、インジェクションリスク
- テスト: テストの有無、カバレッジの十分さ
- その他の改善提案: リファクタリングの余地、コードの可読性
各ポイントには以下を含める:
- 該当ファイルと行番号
- 問題の説明
- 推奨される修正案(ある場合)
- 重要度(高 / 中 / 低)
6. 出力フォーマット
最終的な出力は以下の構造でまとめる:
## ブランチ概要
(ブランチ名、コミット数、変更ファイル数、目的の説明)
## PR情報
(PRタイトル、URL、説明文の要約、レビューステータス)
## ディスカッション要約
(未解決の議論、主要な指摘事項、合意事項)
## 変更内容サマリー
(コミットごとの説明、ファイルのグルーピング)
## コードレビューポイント
(重要度順に並べたレビュー指摘)
## 総合評価
(マージ可否の判断材料となる総合的な所見)