smart-reviewlisted
Install: claude install-skill mjcreativelab/mjcreativelab-agent-prompts
# Smart Review
ローカルブランチの変更をデフォルトブランチと比較し、コードレビューを実施する。
## オプション
- `-p <プロンプト>`: レビュー観点の追加指示(例: `-p セキュリティを重点的に`)
- `-o <path>`: レビュー結果をファイルに出力(例: `-o reviews/review.md`)
## ツール選択
GitHub API 操作には **GitHub MCP ツール**を優先。git 操作は Bash。
## 手順
### 1. 状態確認
以下を並列実行:
**Bash**: 現在のブランチ名、デフォルトブランチの特定(`git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@'`、失敗時は develop → main → master の順で探索)、`git log --oneline <default-branch>..HEAD`、`git diff <default-branch>...HEAD --stat`、`git status --short`
- デフォルトブランチと差分なし → 「レビュー対象の変更がありません」で終了
- 未コミット変更あり → ユーザーに通知(コミット済みの変更のみレビュー対象)
### 2. Issue 読み取り(該当時)
引数に Issue 番号がある場合、またはブランチ名から Issue 番号を抽出できる場合:
- `issue_read` で Issue を取得し、**タイトル・本文・受け入れ基準のみ保持する**(コメント履歴・メタデータ等はコンテキストに残さない)
- レビュー基準に「要件適合」を追加
Issue 番号がない場合は一般的なコードレビュー観点のみでレビュー。
### 3. 変更内容の分析
`git diff <default-branch>...HEAD` で全変更を取得する。
**差分が大きい場合(20ファイル超)の戦略**:
1. `--stat` の出力からファイルを以下の優先度で分類:
- **高**: ビジネスロジック、API エンドポイント、認証・認可、データベース操作、セキュリティ関連
- **中**: ユーティリティ、設定ファイル、型定義
- **低**: テスト、ドキュメント、スタイル、自動生成ファイル
2. 高→中の順に Read で詳細確認。低優先度は stat の変更量が異常でない限りスキップ可
3. 全ファイルを均等に見るより、高リスク箇所を深く見る方が価値がある
**コンテキストの読み取り**: 差分行だけでなく、変更の影響を正しく判断するために必要な周辺情報も確認する:
- 変更された関数の呼び出し元(Grep で検索)
- 変更されたインターフェース・型の利用箇所
- 関連するテストファイルの有無と内容
### 4. レビュー実施
コンテキスト圧縮により Step 3 の diff 内容が失われている場合は、`git diff <default-branch>...HEAD` を再実行して取得する。
以下の観点でレビューする。指摘はすべて「本番で問題を引き起こすか」を基準にフィルタする — コードが正しく動作し、保守性にも実質的な影響がないなら指摘しない。
**必須観点**:
- **バグリスク**: エッジケース、null/undefined、o