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行以上 | デュアルレビュー + 詳細分析 |
Scan to join WeChat group