mcpField
A
ask-questions-if-underspecified

ask-questions-if-underspecified

github.com/sickn33エージェントワークフロー49.0k119 回インストール今日更新
リポジトリ

ask-questions-if-underspecified について

要件が不明確な依頼に対応するエージェントスキルです。目標、範囲、制約、完了条件の不明点を整理し、必要最小限の質問を提示します。重要な回答を得るか、仮定に基づく続行の許可を得るまで実装を保留します。

主な機能

  1. 01依頼に影響する曖昧さの特定
  2. 02必須の確認質問を優先
  3. 03選択肢、既定値、簡潔な回答方法の提示
  4. 04確認後の要件の言い換え
  5. 05低リスクな調査と実装の切り分け

活用シーン

  1. 01解釈が複数ある依頼の目標と範囲の確認
  2. 02コード変更前の完了条件の設定
  3. 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)

アンチパターン

  • 短時間でリスクなく確認できること(設定、既存のパターン、ドキュメントなど)を質問しないでください。
  • 曖昧な自由回答形式の質問ではなく、簡潔な選択式や「はい/いいえ」で、より速く曖昧さを解消してください。

制限事項

  • このスキルは、タスクが上記のスコープに明確に一致する場合にのみ使用してください。
  • 出力を、環境固有の検証、テスト、専門家によるレビューの代替として扱わないでください。
  • 必要な入力、権限、安全境界、成功基準が欠けている場合は、作業を中断して確認を求めてください。

コメント