.claude/skills/review/SKILL.md
Multi-agent review of current branch changes (多角的レビュー)
npx skillsauth add AtsushiHashimoto/research-project-template .claude/skills/reviewInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
現在のブランチの変更内容を、6つの専門的な観点から並列にレビューします。
/commit/merge 前のプリレビューまず現在のブランチの変更を収集します:
# Issue番号の取得
BRANCH=$(git branch --show-current)
ISSUE_ID=$(echo "$BRANCH" | grep -oE '[0-9]+' | head -1)
# 変更の範囲を確認
git diff main --stat
git diff main --name-only
git log main..HEAD --oneline
# Issue内容を取得して目的を把握
gh issue view "$ISSUE_ID" --json title,body
# 仕様ファイルの確認
SPEC_FILE=$(ls .spec/issues/${ISSUE_ID}-*.md 2>/dev/null | head -1)
if [ -n "$SPEC_FILE" ]; then
cat "$SPEC_FILE"
fi
6つのサブエージェントを Task tool で並列に起動し、それぞれ異なる観点でレビューを行います。
各サブエージェントには以下を渡します:
git diff main の出力(変更内容)Task tool で subagent_type=general-purpose を使用。
レビュー観点:
ファイルサイズチェック:
# 変更ファイルの行数を取得(大きい順)
git diff main --name-only | xargs wc -l 2>/dev/null | sort -rn | head -20
| 閾値 | 判定 | |------|------| | 300行以下 | ✅ OK | | 300-500行 | ⚠️ 分割検討 | | 500行超過 | ❌ 分割必須 |
超過ファイルについては以下を分析:
Task tool で subagent_type=general-purpose を使用。
レビュー観点:
data/shared/ に保存され、Worktree削除時に失われない設計か.claude/CLAUDE.md および .claude/workflows/ で定義されたルール(コミット規則、ブランチ命名規則、開発ガイドライン等)に従っているかpyproject.toml、システム: Dockerfile に追加されているか)Task tool で subagent_type=general-purpose を使用。
テストの目的原則: 自動テストの目的は、人間による手動検証を最小化することにある。人間がリアルな環境で試したときに初めて発覚する問題を、自動テストの段階で検出できるようにすることがゴールである。
必須の2段階思考(テストレビュー時に必ず thinking で実施すること):
Step 1: 人間が手動検証したとき、この変更で何が壊れうるか? を列挙する。実環境で起きうる問題を想像力を使って洗い出す。例:
Step 2: 現在のテストは Step 1 の各問題を検出できるか? を判定する。テスト手法の限界を意識し、「テストが存在する」ではなく「そのテストが主張する保証を、その実行環境で実際に提供できるか」を問う。検出できない項目があれば、どのレベルのテスト(統合テスト、プロセス間テスト、ブラウザテスト等)を追加すべきか提案する。
レビュー観点:
datetime.now 等)、乱数、OS レベルの副作用Task tool で subagent_type=general-purpose を使用。
事前準備: 仕様ファイルから「承認済みFallbackホワイトリスト」を読み込む。
レビュー観点: コード内の全 if/switch/try-catch を走査し、以下をチェック:
if x: return x else: return defaultcase _: pass or default: breakexcept: pass or except: return Nonex.unwrap_or(default) without loggingx ?? default without explicit design reasonif not data: data = [] then continue processing出力形式:
## Fallback検出結果
### ✅ 承認済み(ホワイトリストにマッチ)
- `ファイル:行` - `パターン`
### 🔴 未承認(要修正)
- `ファイル:行` - `パターン`
- ホワイトリストに該当なし
- 推奨: [修正案]
### 🟡 新規fallback(要判断)
- `ファイル:行` - `パターン`
- 計画時に想定されていなかった分岐
- 許可する場合はホワイトリストに追加
Task tool で subagent_type=general-purpose を使用。
事前準備: 仕様ファイルから「検証チェックリスト」を読み込む。
レビュー観点: 仕様ファイルの各チェック項目について、実装が満たしているか検証。
出力形式:
## 仕様充足チェック結果
### ✅ 充足
- [x] チェック項目
### ❌ 未充足
- [ ] チェック項目
- **現状**: [実装の状態]
- **修正案**: [具体的な修正方法]
### ⚠️ 検証不能
- [ ] チェック項目
- **理由**: [検証できない理由]
- **推奨**: [検証可能にするための提案]
Task tool で subagent_type=general-purpose を使用。
レビュー観点:
< vs <=、range(n) vs range(n+1) の検証出力形式:
## ロジック検証結果
### 🔴 問題あり
- `ファイル:行` - [問題の説明]
- **コード**: `該当コード`
- **問題**: [具体的な問題点]
- **修正案**: [修正方法]
### 🟡 要確認
- `ファイル:行` - [確認が必要な点]
### ✅ 問題なし
- ループ処理: N箇所確認済み
- 条件分岐: M箇所確認済み
Task tool で subagent_type=general-purpose を使用。
目的: 変更された各部品(関数、クラス、モジュール)が、その言語・フレームワークの best practice パターンに沿っているかを個別に検証する。逸脱がある場合、プロジェクト固有の正当な理由があるかを確認する。
レビュー手順:
git diff main から変更・追加された関数、クラス、モジュールを列挙出力形式:
## Best Practice チェック結果
### 部品一覧
変更された関数/クラス/モジュール: N件
### 🔴 要修正(正当な理由なく best practice から逸脱)
- `ファイル:行` - `関数名/クラス名`
- **Best Practice**: [推奨パターンの説明]
- **現状**: [実際の実装]
- **修正案**: [具体的な修正方法]
### 🟡 許容(正当な理由あり)
- `ファイル:行` - `関数名/クラス名`
- **Best Practice**: [推奨パターン]
- **逸脱理由**: [プロジェクト一貫性 / パフォーマンス / API互換性 / 仕様指示]
- **根拠**: [具体的にどのモジュール/仕様と合致するか]
### ✅ Best Practice 準拠
- N件の部品が best practice に準拠
GUI/フロントエンド変更がある場合のみ実行。
Task tool で subagent_type=general-purpose を使用。
発動条件(いずれかに該当):
**/*.html, **/*.css, **/*.js, **/templates/**, **/static/**print(), logger.*(), console.*() の追加・変更レビュー観点:
出力形式:
## UI/UX レビュー結果
### 🔴 問題あり
- `ファイル:行` - [問題の説明]
- **現状**: `現在の表示`
- **問題**: [問題点]
- **修正案**: `改善後の表示`
### 🟡 要確認
- `ファイル:行` - [確認が必要な点]
### ✅ 問題なし
- UI/UX チェック: N箇所確認済み
8つのサブエージェントの結果を統合し(UI/UX レビューは条件付き)、以下の形式で報告:
## 🔍 Multi-Agent Review Results
### 📐 Architecture Review
[結果サマリー]
- ✅ / ⚠️ / ❌ 各項目の判定
### 🛡️ Risk Review
[結果サマリー]
- ✅ / ⚠️ / ❌ 各項目の判定
### 🧪 Test Review
[結果サマリー]
- ✅ / ⚠️ / ❌ 各項目の判定
### 🚫 Fallback Check
[結果サマリー]
- ✅ 承認済み: N件
- ❌ 未承認: M件
- 🟡 新規: K件
### 📋 Spec Compliance
[結果サマリー]
- ✅ 充足: N件
- ❌ 未充足: M件
- ⚠️ 検証不能: K件
### 🔄 Logic Verification
[結果サマリー]
- ✅ / ⚠️ / ❌ 各項目の判定
### 🏗️ Best Practice Check
[結果サマリー]
- ✅ 準拠: N件
- 🟡 許容(理由あり): M件
- 🔴 要修正: K件
### 🎨 UI/UX Review(該当する場合)
[結果サマリー]
- ✅ / ⚠️ / ❌ 各項目の判定
### 📋 Summary
- **Critical Issues**: [即座に修正が必要な問題]
- **Warnings**: [改善を推奨する問題]
- **Approved**: [問題なしの項目]
### 💡 Recommendations
[具体的な改善提案]
レビュー結果を提示し、以下を確認:
/commit/merge への進行を提案git diff main で変更内容を取得gh issue view でIssue目的を取得.spec/issues/{issue_id}-*.md を読み込み重要: サブエージェントは必ず並列(同一メッセージ内で複数のTask tool呼び出し)で起動すること。
/commit/merge のPhase 0(品質チェック)とは独立して実行可能/commit/merge は単体でも品質チェックを行うため、両方を実行する必要はないdata-ai
Set up data directories in a new worktree
testing
Safely remove a worktree after checking for important data
data-ai
Initialize worktree data protection configuration (run once in main repository)
research
Sync updates from research-project-template (テンプレート更新の取り込み)