ask-questions-if-underspecified について
要件が不明確な依頼に対応するエージェントスキルです。目標、範囲、制約、完了条件の不明点を整理し、必要最小限の質問を提示します。重要な回答を得るか、仮定に基づく続行の許可を得るまで実装を保留します。
主な機能
- 01依頼に影響する曖昧さの特定
- 02必須の確認質問を優先
- 03選択肢、既定値、簡潔な回答方法の提示
- 04確認後の要件の言い換え
- 05低リスクな調査と実装の切り分け
活用シーン
- 01解釈が複数ある依頼の目標と範囲の確認
- 02コード変更前の完了条件の設定
- 03移行やリリースに伴うリスクとロールバック条件の確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill ask-questions-if-underspecifiedインストール後、Claude Code で/ask-questions-if-underspecifiedを入力して読み込まれたか確認します。
詳細
詳細が不明な場合は質問する
使用する場面
依頼に複数の妥当な解釈がある場合や、重要な詳細(目的、範囲、制約、環境、安全性)が不明確な場合に、このスキルを使用します。
使用しない場面
依頼がすでに明確な場合や、簡単でリスクの低い調査で不足している詳細を確認できる場合は、このスキルを使用しないでください。
目標
誤った作業を避けるために必要な確認質問だけをします。必須の質問への回答を得るまで(または、明示された前提で進めることをユーザーが承認するまで)、実装を開始しないでください。
ワークフロー
1) 依頼に不明確な点があるか判断する
作業の進め方を調べた後でも、次の項目の一部またはすべてが明確でない場合、その依頼には不明確な点があると判断します。
- 目的を定義する(何を変更し、何を変更しないか)
- 「完了」の条件を定義する(受け入れ基準、例、エッジケース)
- 範囲を定義する(対象に含める/含めないファイル、コンポーネント、ユーザー)
- 制約を定義する(互換性、パフォーマンス、スタイル、依存関係、時間)
- 環境を特定する(言語/ランタイムのバージョン、OS、ビルド/テストランナー)
- 安全性と可逆性を明確にする(データ移行、ロールアウト/ロールバック、リスク)
複数の解釈によって結果やリスクが実質的に変わる場合に限り、質問します。既存のコンテキストから判断できる、一般的で取り消し可能な詳細はそのまま解決します。
2) まず必須の質問をする(少数に絞る)
最初の確認では、質問を1~5個にします。作業の方向性を大きく分ける選択肢をなくす質問を優先します。
回答しやすい質問にします。
- ひと目で確認できる形にする(短く番号を付け、段落は避ける)
- 可能であれば選択肢を提示する
- 適切な場合は妥当な既定値を提案する(既定値/推奨値であることを明記し、リストでは推奨値を太字にする。コードブロックで選択肢を示す場合は、その直前に「推奨」を太字で記載し、コードブロック内でも既定値を明示する)
- すばやく回答できる方法を用意する(例:
defaultsと返信すれば、推奨/既定の選択肢をすべて受け入れる) - 役立つ場合は、負担の少ない「わからない」という選択肢を設ける(例:「わからない — 既定値を使用」)
- 確認の負担が減る場合は、「必須」と「任意」に分ける
- 簡潔に選択を返信できる形式にする(例:
1b 2a 3c)。選択後は、選んだ内容を平易な言葉で言い直して確認する
3) 作業を始める前に待つ
必須の回答が届くまでは、次のことを行わないでください。
- コマンドの実行、ファイルの編集、不明点に依存する詳細な計画の作成
- 方向性を決めつけない範囲で、明確に低リスクな調査のみを行う(例:リポジトリの構成を確認する、関連する設定ファイルを読む)
ユーザーが妥当な前提を置いて進めることを明示的に許可した場合:
- 前提を簡潔に述べ、許可された範囲で作業を続けます。同じ確認を再度求めないでください。
- 本当に未解決で重大な承認事項や不可欠な入力だけを保留し、独立して安全に進められる作業は完了させます。
4) 解釈を確認してから進める
回答を得たら、要件(主要な制約と完了の条件を含む)を1~3文で言い直し、その後に作業を開始します。
質問のテンプレート
- 「開始する前に、次の点を確認させてください:(1)…、(2)…、(3)…。 (2)を気にしない場合は、…を前提とします。」
- 「どれにしますか? A)… B)… C)…(1つ選択)」
- 「何をもって『完了』としますか? 例:…」
- 「従うべき制約(バージョン、パフォーマンス、スタイル、依存関係)はありますか? なければ、既存プロジェクトの既定値に合わせます。」
- 選択肢を文字で示した番号付き質問と、明確な返信形式を使う
1) Scope?
a) Minimal change (default)
b) Refactor while touching the area
c) Not sure - use default
2) Compatibility target?
a) Current project defaults (default)
b) Also support older versions: <specify>
c) Not sure - use default
Reply with: defaults (or 1a 2a)
アンチパターン
- 短時間でリスクなく確認できること(設定、既存のパターン、ドキュメントなど)を質問しないでください。
- 曖昧な自由回答形式の質問ではなく、簡潔な選択式や「はい/いいえ」で、より速く曖昧さを解消してください。
制限事項
- このスキルは、タスクが上記のスコープに明確に一致する場合にのみ使用してください。
- 出力を、環境固有の検証、テスト、専門家によるレビューの代替として扱わないでください。
- 必要な入力、権限、安全境界、成功基準が欠けている場合は、作業を中断して確認を求めてください。
コメント
Markdown 対応