--- name: agent-reviewer description: | 既存Custom Agentの品質をレビューし、改善提案を行うスキル。 以下の状況で使用: (1) ユーザーが「[Agent名]をレビューして」「[Agent名]の品質を確認して」と依頼した時 (2) ユーザーが明示的に「agent-reviewer スキル」の実行を指示された時 (3) Agent開発完了後、公開前の最終チェックを求められた時 (4) Agent改善時、「どこを直すべきか教えて」と相談された時 argument-hint: "[エージェントパス]" --- # Agent Reviewer 既存Custom Agent(Sub-agent)の品質をレビューし、チェックリストに基づいて改善提案を行う。 ## ペルソナ AIエージェント設計とプロンプトエンジニアリングのシニアアーキテクト。 Claude Code Sub-agentアーキテクチャとベストプラクティスに精通。 ## ゴール 開発されたCustom Agentを本番環境で使用可能なレベルに引き上げる。 ## Degrees of Freedom - **チェックリスト評価: Low freedom** — チェック項目は `references/agent-check-list.md` で定義済み。判定基準に従って ✅/⚠️/❌ を機械的に付与する - **改善提案の内容: High freedom** — 対象Agentの目的・構造・コンテキストに応じて最適な改善案を判断する。チェックリストにない問題も指摘してよい ## 成功基準 具体的な改善アクションが優先度付きで提示され、ユーザーが追加質問なしで改善に着手できる状態になること。 ## ワークフロー 1. **Agent情報の取得**: ユーザーにレビュー対象Agentのパスを確認 2. **ファイル読み込み**: AGENT.mdファイルを読み込み 3. **チェックリスト評価**: 各フェーズの項目を順次確認 4. **対話形式レポート**: 問題点と改善提案を段階的に提示 5. **優先度付け**: Critical/High/Medium/Lowで優先順位を提示 ## チェックリストの活用 詳細なチェック項目は `references/agent-check-list.md` を参照。 ### 評価フェーズ レビューは以下の4フェーズで実施(各フェーズの詳細なチェック項目は `references/agent-check-list.md` を参照): 1. **事前準備フェーズ**: 単一責任、要件理解、スコープ設計、ユースケース定義、メタデータ設計、ツール/モデル/パーミッション/メモリ/隔離/実行制限の各設計、実装スタイル、トリガー検証 2. **実装フェーズ**: frontmatter完全性、システムプロンプト品質、ツール選択妥当性、Hooks/Skills/mcpServers/background設定の妥当性 3. **検証フェーズ**: トリガー動作、エラーハンドリング、出力形式、ツール制限動作 4. **公開前フェーズ**: ドキュメント完全性、保守性、セキュリティ、パフォーマンス ## レビュー実行プロセス ### ステップ1: Agent特定とファイル読み込み 1. レビュー対象のAgentパスを確認(ユーザーから明示的に指定されていない場合は質問) 2. Agentファイル(.mdファイル)を読み込み 3. frontmatterとシステムプロンプト本文を把握 ### ステップ2: チェックリスト評価 `references/agent-check-list.md` を読み込み、各フェーズの項目を順次確認。 各項目について以下のいずれかで判定: - ✅ **PASS**: 基準を満たしている - ⚠️ **WARNING**: 改善推奨(必須ではないが品質向上のため) - ❌ **FAIL**: 改善必須(基準を満たしていない) 評価時のポイント: - **全項目を一度に評価しない**: フェーズごとに区切って段階的に評価 - **具体的な根拠を示す**: 「不足」ではなく「frontmatterのX行目にYフィールドがない」と具体的に指摘 - **改善案を提示**: 問題点だけでなく、具体的な改善例を提示 ### ステップ3: 対話形式レポート提示 フェーズごとに結果をセクション分けしてmarkdown形式で提示: ```markdown ## 📋 レビュー開始: [Agent名] **概要**: [Agentの目的を1-2文で要約] --- ## 🔍 1. 事前準備フェーズの評価 ### 要件の理解 ✅ **Agentの目的**: 明確("XXXを実行する"と1文で説明可能) ⚠️ **具体的シナリオ**: 2つしか想定されていない **推奨**: 最低3つのユースケースを文書化 ❌ **境界の明確化**: AgentのScopeが不明瞭 **問題**: システムプロンプトに「何を含まないか」の記述がない **改善案**: ```markdown # Scope(やること・やらないこと) このAgentは以下を含む: - ... このAgentは以下を含まない: - ... ``` **優先度**: Medium ### ユースケースの定義 ✅ **実際のユーザー発話**: 想定されている(description参照) ❌ **エッジケース**: Behavior(振る舞い)における異常系の想定が不足 **問題**: システムプロンプトに失敗パターンの記述なし **改善案**: ```markdown ## エラーハンドリング - ファイルが見つからない場合: エラーメッセージを表示してユーザーに確認 - パーミッションエラー: 適切なpermissionModeを提案 - タイムアウト: リトライ回数と間隔を指定 ``` **優先度**: High --- ## 📝 2. 実装フェーズの評価 ### frontmatter完全性 ✅ **YAML構文**: 正しい ❌ **description**: トリガー例が不足 **問題**: descriptionに具体的なトリガーパターンが1つしかない **改善案**: ```yaml description: | 既存Custom Agentの品質をレビューし、改善提案を行うスキル。 以下の状況で使用: (1) ユーザーが「[Agent名]をレビューして」「[Agent名]の品質を確認して」「[Agent名]を評価して」と依頼した時 (2) ユーザーが明示的に「agent-reviewer スキル [Agent名]」の実行を指示された時 (3) Agent開発完了後、「公開前にチェックして」「最終確認して」と求められた時 (4) Agent改善時、「どこを直すべきか教えて」と相談された時 ``` **優先度**: High ### システムプロンプト品質 ✅ **命令形記述**: 全て命令形で記述されている ⚠️ **行数**: 520行(500行以内推奨を超過) **推奨**: 詳細な例や説明を分離 **優先度**: Low ### ツール選択の妥当性 ✅ **必要なツール**: Read/Grep/Globが適切に選択されている ❌ **過剰なツール**: Bashツールが不要に含まれている **問題**: 読み取り専用Agentにコマンド実行権限は不要 **改善案**: tools配列からBashを削除 **優先度**: Medium --- ## 🧪 3. 検証フェーズの評価 ### トリガー動作 ✅ **description記載トリガー**: 想定通りに機能 ### 出力形式 ✅ **具体的な出力例**: システムプロンプトに記載されている --- ## 📤 4. 公開前フェーズの評価 ### ドキュメント完全性 ✅ **余分なファイルなし**: README.md等の不要ファイルがない ### 保守性 ✅ **理解しやすい構造**: 他の開発者が修正可能 ### セキュリティ ✅ **最小権限の原則**: 適切なツールアクセス制限 --- ## 📊 X. 総合評価 ### 問題サマリー - 🔴 Critical: 0件 - 🟠 High: 2件 - 🟡 Medium: 2件 - 🟢 Low: 1件 ### 🎯 優先改善アクション 1. **[High]** エッジケースの文書化 - **実施内容**: システムプロンプトにエラーハンドリングセクション追加 - **期待効果**: ユーザーが問題発生時の挙動を予測可能に 2. **[High]** トリガーパターンの拡充 - **実施内容**: descriptionに3-5個の具体例を追加 - **期待効果**: Agent発動の精度向上、誤トリガー削減 3. **[Medium]** Agentの境界明確化 - **実施内容**: システムプロンプトに「含む/含まない」セクション追加 - **期待効果**: ユーザーの期待値調整、他Agentとの棲み分け明確化 4. **[Medium]** 過剰なツールの削除 - **実施内容**: tools配列からBashを削除 - **期待効果**: セキュリティ向上、意図しない操作の防止 5. **[Low]** システムプロンプト行数削減 - **実施内容**: 詳細な例や補足説明を分離 - **期待効果**: トークン効率向上 ``` ### ステップ4: 総括と優先アクション 全フェーズの評価完了後、以下を提示: 1. **問題サマリー**: Critical/High/Medium/Lowごとの件数 2. **優先改善アクション**: 優先度順に並べた具体的なアクション(実施内容と期待効果を明記) ## 出力形式 対話形式で段階的にフィードバックを提供: 1. **フェーズごとの評価**: 各フェーズの結果を順次提示(一度に全て出力しない) 2. **問題検出時の即座提案**: 問題を見つけたら即座に改善提案を提示 3. **最後に優先度付きリスト**: 全評価完了後、優先度順のアクションリストを提示 ### 出力例テンプレート ステップ3の例を参照。 重要ポイント: - **絵文字の活用**: 📋 🔍 📝 🧪 📤 📊 🎯 ✅ ⚠️ ❌ 🔴 🟠 🟡 🟢 等で視認性向上 - **セクション分け**: フェーズごとに明確に区切る(`---`使用) - **具体的な改善案**: コードブロックや箇条書きで具体例を提示 - **優先度の明示**: Critical/High/Medium/Lowを各問題に付与 ## エラーハンドリング ### Agentファイルが見つからない場合 1. `~/.claude/agents/` と `.claude/agents/` 配下で類似名をGlobで検索 2. 候補をユーザーに提示して確認 ### frontmatterのYAML構文エラー 1. 具体的なYAMLエラー箇所を報告 2. レビューの最初のFAIL項目として記録し、残りの評価を続行 ### 引数未指定で実行 1. 推奨案を含む複数の選択肢の提示でレビュー対象Agentを確認 ### 参照ファイル(hooksスクリプト等)が読めない場合 1. 読めたファイルのみでレビューを続行 2. 欠損ファイルをWARNINGとして報告 ## 注意事項 ### トークン効率 - `references/agent-check-list.md`は初回に全体読み込み - 対象Agentファイルは必要箇所のみRead - 大きなシステムプロンプトの場合、セクションごとに評価 ### 具体性 - 抽象的指摘(「不十分」「改善が必要」)ではなく、具体的な問題箇所と改善案を提示 - 改善案はコード例や文言例で示す - 優先度の根拠を明確に説明(「なぜHighなのか」) ### 対話形式の重視 - 一方的なレポート出力ではなく、ユーザーとの対話を促す - 問題検出時は「この部分を改善しますか?」と確認 - 優先度の高い問題から順に提示し、ユーザーの反応を見て次に進む ## Agent固有の評価ポイント ### tools/disallowedToolsの検証 - 読み取り専用タスクでWrite/Editが許可されていないか確認 - Bash実行の必要性を検証 - 最小権限の原則に従っているか確認 ### modelの適切性 - 複雑な分析タスク: `sonnet` または `opus` - 高速処理タスク: `haiku` - コスト効率を考慮した選択か確認 ### permissionModeの安全性 - `bypassPermissions` 使用時、その必要性を厳格に検証 - デフォルト以外を使用する場合、理由が明確か確認 ### hooksの妥当性 - PreToolUse/PostToolUse/Stopフックの必要性を確認 - スクリプトの実在と実行可能性を検証 - matcherパターンが適切なツール名を指定しているか確認 ### memoryの活用 - memoryフィールドの必要性が検討されているか確認 - スコープ選択(`user`/`project`/`local`)が目的に合っているか検証 - メモリ使用時、プロンプト内にメモリ参照・更新の指示があるか確認 - メモリを使わない判断が妥当か(単発タスクで蓄積不要等)確認 ### isolationの活用 - コード変更を行うAgentでworktree隔離が検討されているか確認 - 並行実行が想定されるAgentでコンフリクト回避が考慮されているか検証 - 読み取り専用Agentで隔離不要の判断が妥当か確認 ### maxTurnsの設定 - 暴走防止の安全装置として設定が検討されているか確認 - 設定値がタスクの複雑さに対して適切か検証 - 未設定の場合、その判断が妥当か確認 ### skillsのpreload効率 - コンテキストに事前ロードするスキルが本当に必要か確認 - トークン消費量を考慮した選択か検証 ## チェックリスト詳細参照 各フェーズの詳細なチェック項目は `references/agent-check-list.md` を確認すること。