prompt-improver について
prompt-improverは、調査と的を絞った確認質問を通じて、曖昧な依頼を実行可能な内容に整えるエージェントスキルです。回答を踏まえた実行までの流れも定めています。
主な機能
- 01質問前の調査
- 02会話とプロジェクト状況の確認
- 03焦点を絞った選択式質問
- 04回答に基づく依頼の実行
活用シーン
- 01曖昧なコーディング依頼の明確化
- 02エージェント向け依頼への文脈追加
- 03プロンプト評価ワークフローのテスト
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ severity1/ claude-code-prompt-improver --skill prompt-improverインストール後、Claude Code で/prompt-improverを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/examples.mdquestion-patterns.mdresearch-strategies.md詳細
プロンプト改善スキル
目的
体系的な調査と的を絞った確認を通じて、曖昧なプロンプトを実行可能で明確に定義されたリクエストに変換します。このスキルは、フックによってプロンプトに情報の補足が必要だとすでに判断された場合に呼び出されます。
このスキルが呼び出されるタイミング
自動呼び出し:
- UserPromptSubmit フックがプロンプトを評価します
- フックがプロンプトは曖昧だと判断します(具体性、コンテキスト、または明確な目標が不足)
- フックが調査と質問をガイドするために、このスキルを呼び出します
手動呼び出し:
- 調査に基づく質問を使って、曖昧なプロンプトに情報を補足する場合
- プロンプト評価システムを構築またはテストする場合
- 会話履歴を含めても、プロンプトのコンテキストが十分でない場合
前提:
- プロンプトがすでに曖昧だと特定されています
- 評価フェーズは完了しています(フックが実施済み)
- そのまま調査と確認に進みます
基本ワークフロー
このスキルでは、プロンプトの情報を補足するために、4つのフェーズで進めます。
フェーズ 1:調査
質問をする前に TodoWrite を使って、状況に応じた調査計画を作成します。
調査計画のテンプレート:
- まず会話履歴を確認する - すでにコンテキストがある場合は、同じ調査を繰り返さないようにします
- 必要に応じてコードベースを確認する:
- アーキテクチャとプロジェクト構造には Task/Explore を使用します
- 特定のパターンや関連ファイルには Grep/Glob を使用します
- 最近の変更については git log を確認します
- エラー、失敗するテスト、TODO/FIXME コメントを検索します
- 必要に応じて追加のコンテキストを収集する:
- ローカルのドキュメントファイルを読みます
- オンラインドキュメントには WebFetch を使用します
- ベストプラクティス、一般的なアプローチ、最新情報には WebSearch を使用します
- 実際のプロジェクトのコンテキストに基づいて質問できるよう、調査結果を記録する
重要なルール:
- 調査を絶対に省略しないでください
- コードベースを調べる前に、会話履歴を確認してください
- 質問は、推測や一般知識ではなく、実際に得られた調査結果に基づいていなければなりません
- Glob、Grep、WebSearch、WebFetch、および複数ファイルの Read は
Task/Explore経由で実行してください。メインコンテキストから直接呼び出してはいけません - Explore は過去のターンを参照できないため、すべての Explore プロンプトに会話に関連するコンテキスト(ファイルパス、エラー、以前の決定事項)を含めてください
詳しい調査方法、パターン、例については、references/research-strategies.md を参照してください。
フェーズ 2:的を絞った質問を作成する
調査結果に基づいて、曖昧さを解消するための質問を 1~6 個作成します。
質問のガイドライン:
- 調査結果に基づく:各選択肢は調査結果(コードベースでの確認事項、ドキュメント、一般的なパターン)に基づいています
- 具体的:「別のアプローチ」のような曖昧な選択肢は避けます
- 複数選択式:質問ごとに具体的な選択肢を 2~4 個提示します
- 焦点を絞る:各質問で扱う判断事項は 1 つだけにします
- 文脈を含める:トレードオフを簡潔に説明します
質問の数:
- 1~2 個の質問:単純な曖昧さ(どのファイルか?どのアプローチか?)
- 3~4 個の質問:中程度の複雑さ(範囲 + アプローチ + 検証)
- 5~6 個の質問:複雑なシナリオ(複数の判断事項を伴う主要な機能)
質問のテンプレート、効果的なパターン、例については、references/question-patterns.md を参照してください。
フェーズ 3:確認を得る
AskUserQuestion ツールを使って、調査に基づく質問を提示します。
AskUserQuestion の形式:
- question: Clear, specific question ending with ?
- header: Short label (max 12 chars) for UI display
- multiSelect: false (unless choices aren't mutually exclusive)
- options: Array of 2-4 specific choices from research
- label: Concise choice text (1-5 words)
- description: Context about this option (trade-offs, implications)
重要: 常に multiSelect フィールド(true/false)を含めてください。ユーザーは自由入力のために、いつでも「その他」を選択できます。
フェーズ 4:コンテキストを踏まえて実行する
次の情報を使って、元のユーザーリクエストに対応します。
- 元のプロンプトの意図
- ユーザーからの確認回答
- 調査結果とコンテキスト
- 会話履歴
最初から明確な依頼だったかのように、リクエストを実行します。
例
例 1:スキルの呼び出し → 調査 → 質問 → 実行
フックによる評価: プロンプトが曖昧だと判断 元のプロンプト: 「バグを修正して」 スキルの呼び出し: あり(プロンプトに対象とコンテキストが不足)
調査計画:
- 最近のエラーについて会話履歴を確認する
- コードベースを調べて失敗しているテストを探す
- TODO/FIXME コメントを検索する
- 最近問題が起きている箇所を git log で確認する
調査結果:
- 最近の会話でログイン失敗について言及されています
- auth.py:145 で try/catch がエラーを握りつぶしています
- test_auth.py のテストが失敗しています
生成された質問:
- どのバグを指していますか?
- ログイン認証の失敗(auth.py:145)
- セッションタイムアウトの問題(session.py:89)
- その他
ユーザーの回答: ログイン認証の失敗
実行: ログイン失敗の原因となっている auth.py:145 のエラー処理を修正する
例 2:明確なプロンプト(スキルは呼び出されない)
元のプロンプト: 「src/api/users.ts の getUserById 関数を、promise ではなく async/await を使うようにリファクタリングしてください」
フックによる評価: すべてのチェックに合格
- 対象が具体的:src/api/users.ts の getUserById
- アクションが明確:async/await を使うようにリファクタリング
- 成功基準:promise ではなく async/await を使う
スキルの呼び出し: なし(プロンプトが明確なため、スキルを呼び出さずにただちに処理を進めます)
さまざまな種類のプロンプトとその変換例については、references/examples.md を参照してください。
主な原則
- 曖昧さを前提とする:曖昧なプロンプトの場合にのみスキルを呼び出します(フックによって評価されます)
- まず調査する:質問を作成する前に、必ずコンテキストを収集します
- 質問の根拠を示す:推測や基礎知識ではなく、調査結果を使用します
- 具体的にする:実際のコードベースやコンテキストに基づく具体的な選択肢を提示します
- 焦点を絞る:質問は最大 1~6 個とし、それぞれ 1 つの判断事項を扱います
- 体系的に進める:4 フェーズのワークフロー(調査 → 質問 → 明確化 → 実行)に従います
段階的な情報開示
この SKILL.md には、ワークフローの中核と基本事項が記載されています。詳しいガイダンスについては、以下を参照してください。
- 調査戦略:references/research-strategies.md
- 質問のパターン:references/question-patterns.md
- 包括的な例:references/examples.md
プロンプト改善の特定の側面について詳しいガイダンスが必要な場合にのみ、これらのリファレンスを読み込んでください。