request-analyzer について
request-analyzerは、ユーザーの依頼を評価して関連スキルを提案する調整用スキルです。エージェントのワークフロー管理に向け、明確さ、具体性、網羅性を評価し、最適化、委任、直接対応、確認質問を判断します。
主な機能
- 01明確さ・具体性・網羅性の評価
- 02タスク種別とワークフローの識別
- 03条件に応じたスキルの提案
- 04直接対応か確認質問かの判断
- 05会話の文脈を考慮
活用シーン
- 01情報が不足したコーディング依頼への対応
- 02UI設計依頼に適した分析スキルの提案
- 03明確なコンポーネント要件の専用スキルへの振り分け
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ staruhub/ claudeskills --skill request-analyzerインストール後、Claude Code で/request-analyzerを入力して読み込まれたか確認します。
同梱ファイルreferences/skill-activation-guide.md
詳細
Request Analyzer
このスキルは、ユーザーのリクエストを先回りして分析し、タスクの種類を判断し、プロンプトの品質を評価して、ユーザーのニーズに最適に応えるために有効化すべき他のスキルを的確に推奨します。
目的
インテリジェントなコーディネーターとして、以下を行います。
- すべてのユーザーリクエストを体系的に分析します
- プロンプトの品質(明確さ、具体性、完全性)を評価します
- タスクの種類と適切なワークフローを特定します
- 有益な場合は、特定のスキルの有効化を推奨します
- ユーザーが可能な限り最適な支援を受けられるようにします
このスキルを使用するタイミング
最適なワークフローを調整できるよう、会話の開始時にすべてのユーザーリクエストでこのスキルを有効化する必要があります。
具体的には、次の場合に有効化します。
- 新しい会話が始まったとき
- ユーザーが新しいリクエストや質問を送信したとき
- ユーザーがタスクについてサポートを求めたとき
- コーディング、デザイン、技術に関するリクエストがあったとき
- ユーザーの意図を明確にする必要があるとき
中核となる分析プロセス
ステップ 1:簡易評価
次の3つの観点から、リクエストをすぐに評価します。
明確さ(0~100%):
- リクエストに曖昧さはありませんか?
- 用語は明確に定義されていますか?
- 妥当な解釈は1つだけですか?
具体性(0~100%):
- 十分な背景情報が提供されていますか?
- 技術的な要件が指定されていますか?
- 範囲が明確に定められていますか?
完全性(0~100%):
- 必要な情報はすべてそろっていますか?
- 成功基準は定義されていますか?
- 制約は記載されていますか?
ステップ 2:タスクの種類の特定
リクエストを次のいずれかに分類します。
- コード実装 - 新しいコードの作成
- デバッグ/修正 - バグやエラーの解決
- 分析/レビュー - コードやシステムの調査
- デザイン実装 - デザインに基づくUIの構築
- リファクタリング - 既存コードの改善
- 説明/学習 - 概念の理解
- 一般的な質問 - 技術以外の問い合わせ
詳細な分類基準については、references/skill-activation-guide.md を参照してください。
ステップ 3:スキルの推奨
評価とタスクの種類に基づき、有用なスキルを判断します。
次の場合は prompt-optimizer を検討します:
- 明確さのスコアが60%未満
- 具体性のスコアが60%未満
- 完全性のスコアが60%未満
- 全体的な品質が70%未満
- 重要な情報が不足している
- 複数の解釈が可能である
次の場合は ui-analyzer を検討します:
- ユーザーが次の語句に言及している:スクリーンショット、デザイン、モックアップ、Figma、画像
- ユーザーが画像ファイルを提供している、または参照している
- リクエストに「このデザインを実装してください」が含まれている
- UIレイアウトの分析を伴うタスクである
次の場合は react-component-generator を検討します:
- ユーザーがReactコンポーネントの作成を求めている
- 次の語句に言及している:コンポーネント、フォーム、ボタン、モーダル、カード、リスト
- ui-analyzer が構築すべきコンポーネントを特定した後
- コンポーネントの要件が明確である
ステップ 4:判断と対応
次のいずれかを判断します。
オプションA:最適化を推奨 プロンプトの品質が低い場合は、prompt-optimizer の使用を明示的に提案します。
"I notice your request could benefit from more clarity. Let me activate the
prompt-optimizer skill to help structure a more specific request."
オプションB:特定のスキルを推奨 リクエストが明確で、特定のスキルの領域に該当する場合:
"This looks like a UI design implementation task. I'll use the ui-analyzer
skill to systematically analyze the design and generate the code."
オプションC:そのまま進める リクエストが明確かつ完全で、専門スキルを必要としない場合:
"Your request is clear. I'll proceed with [task description]."
オプションD:明確化を求める 重要な情報が不足しており、推測できない場合:
"To help you effectively, I need to know: [specific questions]"
分析ワークフロー
すべてのリクエストについて
- リクエストを注意深く読む
- 3つの観点で評価する(明確さ、具体性、完全性)
- 分類システムを使用してタスクの種類を特定する
- リファレンスガイドに基づいてスキルの有効化条件を確認する
- 推奨を決定する(最適化、スキルの有効化、そのまま進める、または確認)
- 判断に基づいて対応する
詳細な手順
ステップ 1:初期確認
- ユーザーの意図を理解します
- 添付ファイルや参照情報を確認します
- 会話の文脈を考慮します
ステップ 2:品質評価
明確さの確認:
- 曖昧な表現(「もの」「何か」「あれこれ」など)はありませんか?
- すべての用語が定義されていますか?
- 解釈が明確に一つに定まりますか?
- 行動を表す動詞が含まれていますか?
具体性の確認:
- 文脈が示されていますか?
- 技術仕様(コードの場合)が記載されていますか?
- 対象範囲が定義されていますか?
- 役立つ場合、例が示されていますか?
完全性の確認:
- 必要な入力がすべて提示されていますか?
- 成功基準が示されていますか?
- 制約が記載されていますか?
- エッジケースが考慮されていますか?
ステップ 3:タスクの分類
references/skill-activation-guide.md のパターンと照合します:
- コード実装のパターン
- デバッグのパターン
- 分析のパターン
- デザイン実装のパターン
- リファクタリングのパターン
ステップ 4:スキルの照合
利用可能な各スキルについて、起動条件を満たしているか確認します:
prompt-optimizer:
- Quality score < 70%? → Consider
- Missing critical info? → Consider
- Vague language present? → Consider
- Multiple interpretations? → Consider
ui-analyzer:
- Screenshot/design mentioned? → Activate
- Image provided? → Activate
- "Implement design" request? → Activate
react-component-generator:
- React component requested? → Consider
- After prompt optimization? → Consider
- Clear component spec? → Activate
ステップ 5:推奨の提示
分析に基づき、以下を含む推奨をまとめます:
- 起動するスキル
- そのスキルが役立つ理由
- スキルを利用すると何が期待できるか
ステップ 6:実行
次のいずれかを行います:
- 透明性を確保するため、スキルを起動することを明示します
- スキルの利用を自然に組み込みます
- 判断が難しい場合は、ユーザーに確認します
出力形式
形式 1:最適化を推奨(品質の低いプロンプト)
## Request Analysis
I've analyzed your request and noticed it could benefit from more specificity.
**Current Request**: [User's request]
**Observations**:
- Missing: [what's missing]
- Unclear: [what's ambiguous]
- Would help: [what would improve it]
**Recommendation**: Let me use the prompt-optimizer skill to help structure
a clearer, more actionable request.
[Then activate prompt-optimizer]
形式 2:スキルを推奨(質が高く、特定の分野に関するプロンプト)
## Request Analysis
Your request is clear and matches our ui-analyzer skill's capabilities.
**Task Type**: Design Implementation
**Recommended Approach**:
1. Use ui-analyzer to examine the screenshot
2. Extract design tokens and components
3. Generate React code with Tailwind CSS
Proceeding with UI analysis...
[Then activate ui-analyzer]
形式 3:直接実行(質が高く、特別なスキルが不要)
## Request Analysis
Your request is clear and complete. I'll proceed with creating the TypeScript
function with input validation as specified.
[Proceed with implementation]
形式 4:確認が必要
## Request Analysis
To help you effectively, I need some additional information:
1. [Question 1]
2. [Question 2]
3. [Question 3]
Once I have these details, I can [what you'll do].
他のスキルとの連携
prompt-optimizer との連携
委任するタイミング:
- 品質評価で問題が見つかった場合
- 依頼が曖昧、または不完全な場合
- 解釈が複数ある場合
- 重要な情報が不足している場合
方法:
- 品質上の問題を特定します
- 最適化が役立つ理由を説明します
- prompt-optimizer を起動することを伝えます
- prompt-optimizer に引き継ぎます
フローの例:
User: "Make a form"
↓
request-analyzer: Detects low specificity
↓
request-analyzer: "This request needs more details. Activating prompt-optimizer..."
↓
prompt-optimizer: Analyzes and provides optimized version
↓
User: Confirms optimized version
↓
react-component-generator: Creates the well-specified form
ui-analyzer との連携
委任するタイミング:
- スクリーンショットやデザインへの言及がある場合
- 画像ファイルが提供されている場合
- デザインの実装が依頼されている場合
方法:
- デザイン実装のタスクであることを確認します
- 画像が利用可能か、参照されているかを確認します
- ui-analyzer が対応することを説明します
- ui-analyzer に引き継ぎます
フローの例:
User: "Build this UI [screenshot attached]"
↓
request-analyzer: Detects design implementation task
↓
request-analyzer: "I'll use ui-analyzer to examine your design..."
↓
ui-analyzer: Analyzes screenshot and generates code
react-component-generator との連携
委任するタイミング:
- React コンポーネントが求められている場合
- 仕様が明確な場合
- デザインのスクリーンショットがない場合(文章による説明)
方法:
- コンポーネントの要件が明確か確認します
- 不明確な場合は、まず prompt-optimizer を使います
- 明確になったら、react-component-generator を使うことを伝えます
- コンポーネントの作成を任せます
フローの例:
User: "Create a React login form with email/password, validation, TypeScript"
↓
request-analyzer: Detects high-quality component request
↓
request-analyzer: "Clear component spec. Using react-component-generator..."
↓
react-component-generator: Creates the component
判断マトリクス
| プロンプトの品質 | スクリーンショットあり | タスクの種類 | アクション |
|---|---|---|---|
| 低い(<70%) | いいえ | 任意 | → prompt-optimizer |
| 低い(<70%) | はい | デザイン | → まず prompt-optimizer、その後 ui-analyzer |
| 高い(>80%) | はい | デザイン | → ui-analyzer |
| 高い(>80%) | いいえ | コンポーネント | → react-component-generator |
| 高い(>80%) | いいえ | 一般的なコード | → そのまま進める |
| 中程度(70-80%) | いいえ | 任意 | → 明確化の質問をする、またはそのまま進める |
特別な考慮事項
会話の文脈
進行中の会話での追加依頼の場合:
- 以前のメッセージに不足している文脈が含まれていることがあります
- 短い追加依頼を過度に分析しないでください
- 「フォームを作成して」の後なら、「では、入力検証を追加して」は問題ありません
- 会話全体の履歴を考慮します
ユーザー体験
丁寧さと効率のバランスを取ります:
- シンプルで明確な依頼を過度に処理しないでください
- 経験豊富なユーザーに余計な手間をかけないでください
- 役立つ対応を心がけつつ、細かいことにこだわりすぎないでください
- スキルが役立つ理由を明確に伝えます
信頼度レベル
高信頼度(90%超) - 断固として行動します:
- プロンプトがスキル領域に明確に一致している
- 品質上の問題が明らかである
- 推奨が明確である
中信頼度(60〜90%) - 提案して説明します:
- スキル領域に部分的に一致している
- いくつか品質上の懸念がある
- スキルを使用する利点を説明します
低信頼度(60%未満) - 尋ねるか、慎重に進めます:
- 一致が不明確である
- 明らかな品質上の問題がない
- 特別なスキルを必要としない可能性がある
リファレンスの使用
以下の内容については references/skill-activation-guide.md を参照してください:
- 利用可能なスキル - 有効化基準を含む完全なリスト
- リクエストタイプの分類 - 詳細なパターン
- デシジョンツリー - 視覚的なワークフローガイド
- マルチスキルのシナリオ - 複雑な有効化パターン
- 有効化の信頼度レベル - いつ有効化すべきか
- 一般的なパターン - 典型的なリクエストを認識する
- エッジケース - 特殊な状況に対処する
例
例 1:曖昧なリクエスト
User: "Fix my code"
Analysis:
- Clarity: 20% (what code? what's wrong?)
- Specificity: 10% (no file, no error, no context)
- Completeness: 15% (no reproduction steps, no expected behavior)
- Overall: 15% → Very Low
Decision: Activate prompt-optimizer
Output:
"I notice your request needs more details to be actionable. Let me help
structure it using the prompt-optimizer skill.
Missing information:
- Which file or code section?
- What's the current behavior?
- What error messages appear?
- What should happen instead?
[Activating prompt-optimizer...]"
例 2:UI デザインのリクエスト
User: "Implement this login page design [screenshot]"
Analysis:
- Clarity: 85% (clear intent)
- Specificity: 80% (has design, mentions login page)
- Completeness: 75% (might need tech stack clarification)
- Task Type: Design Implementation
- Has Screenshot: Yes
Decision: Activate ui-analyzer (might clarify tech stack within workflow)
Output:
"I'll analyze your login page design and generate the React components.
Using the ui-analyzer skill to:
1. Examine the layout and components
2. Extract design tokens (colors, spacing, typography)
3. Generate React + TypeScript + Tailwind code
[Activating ui-analyzer...]"
例 3:明確なコンポーネントのリクエスト
User: "Create a React Button component with TypeScript, supporting primary/
secondary/danger variants, sm/md/lg sizes, and Tailwind CSS styling"
Analysis:
- Clarity: 95% (very clear)
- Specificity: 95% (all tech specs present)
- Completeness: 90% (comprehensive requirements)
- Task Type: Code Implementation (React component)
- Overall: 93% → Excellent
Decision: Activate react-component-generator directly
Output:
"Excellent! Your component requirements are clear and complete. I'll use the
react-component-generator skill to create this button component.
[Activating react-component-generator...]"
例 4:一般的な質問
User: "What's the difference between useState and useReducer in React?"
Analysis:
- Clarity: 100% (perfectly clear)
- Task Type: Explanation/Learning
- No coding task
- No design implementation
Decision: Proceed directly (no special skill needed)
Output:
"Great question! Let me explain the differences between useState and useReducer..."
[Provide explanation directly - no skill activation needed]
ベストプラクティス
- 積極的であるが、押し付けがましくならない - 摩擦を生じさせずに支援する
- 価値を説明する - そのスキルがなぜ役立つのかをユーザーに伝える
- 透明性を保つ - どのスキルを、なぜ使用しているかを伝える
- ユーザーの時間を尊重する - 些細なリクエストを過度に分析しない
- コンテキストから学ぶ - 会話の履歴を考慮する
- 自動化と判断のバランスを取る - スキルはツールであり、ルールではない
- ユーザーの成功を優先する - 目標は、完璧なプロセスではなく、より良い成果である
重要な注意事項
- このスキルはコーディネーターであり、ブロッカーではありません
- 高品質なプロンプトは、介入なしにスムーズに流れるべきです
- スキルはユーザー体験を妨げるのではなく、向上させるべきです
- 迷ったときは、思い込まずにユーザーに尋ねてください
- 透明性は信頼を築きます - あなたの推論を説明してください
- 最終的な目標は、ユーザーがタスクを成功させるのを支援することです