| name | self-review |
| description | タスク完了前のセルフレビュー。Gemini CLI + Claude subagentで多角的に検証。 |
Self Review Skill
タスク完了マーク(TodoWrite completed)の前に実行するセルフレビュー手順。
トリガー条件
以下の場合にこのスキルを適用:
- TodoWriteでタスクを
completedにマークする直前 - ユーザーから
/self-reviewコマンドで明示的に呼び出された場合
レビュー手順
Phase 1: 変更差分の収集
# 変更されたファイル一覧
git diff --name-only HEAD
# 変更内容の取得
git diff HEAD
Phase 2: Gemini CLI レビュー(外部モデル視点)
変更されたDartファイルに対してGemini CLIでレビューを実行:
git diff HEAD -- "*.dart" | gemini -p "
以下のコード変更をレビューしてください。
## 観点(すべてチェック)
### 1. コード品質
- 可読性(理解しやすいか)
- 命名(適切な変数名・関数名)
- 構造化(適切な分割・責務分離)
### 2. バグ・エラー
- null安全性
- エッジケース
- 例外処理
- メモリリーク
### 3. 設計パターン
- アーキテクチャ整合性
- 依存関係の適切さ
- 重複コード
## 出力形式
- 重大な問題: [ファイル:行] [問題の説明と修正提案]
- 軽微な問題: [ファイル:行] [問題の説明]
- 問題なし: 'LGTM'
日本語で回答してください。
"
Phase 3: Claude subagent レビュー(別コンテキスト視点)
Task toolで別コンテキストのレビューエージェントを起動:
subagent_type: general-purpose
プロンプト例:
---
以下のコード変更をレビューしてください。
## 変更ファイル
[git diff --name-only HEADの結果]
## 変更内容
[git diff HEADの結果]
## レビュー観点(すべてチェック)
### 共通観点
1. コード品質(可読性、命名、構造化)
2. バグ・エラー(null安全性、エッジケース、例外処理、メモリリーク)
3. 設計パターン(アーキテクチャ整合性、依存関係、重複コード)
### プロジェクト固有観点
4. 命名規則(ファイル: snake_case、クラス: PascalCase、変数/関数: camelCase)
5. アーキテクチャパターン(features/*/data/models/, repositories/, providers/, ui/)
6. Flutter固有(Semantics対応、Riverpod AsyncNotifier使用)
## 出力形式
- 重大な問題: [ファイル:行] [問題の説明と修正提案]
- 軽微な問題: [ファイル:行] [問題の説明]
- 問題なし: 'LGTM'
日本語で回答してください。
---
Phase 4: 結果統合・比較
両方のレビュー結果を統合し、判定:
| 判定 | 条件 | アクション |
|---|---|---|
| PASS | 両方LGTM | タスク完了可 |
| MINOR | 軽微な問題のみ | 警告表示後、タスク完了可 |
| FAIL | 重大な問題あり | 修正タスク追加、再レビュー必要 |
Phase 5: フィードバックループ
FAIL判定の場合:
- 問題箇所を修正
- Phase 1-4 を再実行
- PASSになるまで繰り返し
レビュー観点チェックリスト
コード品質
- 関数が単一責任原則に従っているか
- 適切なエラーハンドリングがあるか
- コメントは必要最小限で明確か
- マジックナンバーが定数化されているか
バグ・エラー
- null許容型の安全な扱い
- 非同期処理のエラーハンドリング
- リソースの適切な解放(dispose)
- 境界値・エッジケースの考慮
設計パターン
- プロジェクト構造に従っているか
- 既存のユーティリティ/ヘルパーを活用しているか
- 重複コードがないか
- テストしやすい設計か
プロジェクト固有
- ファイル名: snake_case
- クラス名: PascalCase
- 変数/関数: camelCase
- Semantics対応(E2Eテスト用)
- Riverpod AsyncNotifierの適切な使用
出力テンプレート
## Self Review Result
### Gemini Review (外部モデル)
[Geminiからの出力]
### Claude subagent Review (別コンテキスト)
[subagentからの出力]
### 比較分析
- 共通の指摘: [両方が指摘した問題]
- Geminiのみの指摘: [Geminiだけが発見した問題]
- subagentのみの指摘: [subagentだけが発見した問題]
### 判定: [PASS/MINOR/FAIL]
#### 問題点(該当する場合)
- [ ] [ファイル:行] [問題の説明]
#### 次のアクション
- [タスク完了 / 修正必要]
変更規模による調整
全タスクで完全なデュアルレビューを実行すると時間がかかる場合:
# 変更行数で判定
git diff --stat HEAD | tail -1
| 変更規模 | 行数目安 | レビュー方法 |
|---|---|---|
| 小 | ~30行 | Gemini CLIのみ(軽量) |
| 中 | 31-100行 | デュアルレビュー |
| 大 | 100行以上 | デュアルレビュー + 詳細分析 |