本文へ移動
cccskills
無料GitHub で公開日本語紹介

asking-user-questions

質問を段階ごとに整理し、ユーザーが判断すべき点を具体的な選択肢で尋ねるための共通ルールを示します。

原文原文の説明を見る

Use when composing an ask_user_question round inside a workflow, or when a workflow skill names it at a question step. Shared norms for the tool — not a workflow, nothing to execute.

実行スコア 未検証

インストール方法を見る

こんなときに便利

  • 機能の範囲や挙動を確認したいとき
  • 回答に応じて質問を段階的に進めたいとき
  • 推測した内容を選択肢付きで確認したいとき
  • 回答がない場合の進め方を決めたいとき

日本語での紹介

できること

ワークフローの途中でユーザーに判断を求める際、質問をどう組み立てるかを定めた共通ルールです。先に決まっている内容をもとに、今尋ねられる独立した質問を一つのラウンドにまとめ、回答に応じて次の質問を組み直します。質問は作業に固有の具体的な場面に結び付け、選択肢は実装方法ではなく、ユーザーに見える結果やトレードオフで示します。推測の確認方法や、回答のスキップ、対話機能が使えない場合の進め方も扱います。

こんなときに便利

機能の範囲や挙動など、ユーザーの判断で成果が変わる作業に向いています。質問を一度に詰め込みすぎず、前の回答が必要な事項は後のラウンドに回したい場合にも使えます。事実を調べれば分かることと、ユーザー自身が決めることを分ける助けにもなります。

使い方の例

  • 「この変更で確認が必要な点を整理し、質問をラウンドごとに作ってください」
  • 「推測した仕様を、選択肢を添えてユーザーに確認してください」
  • 「回答がスキップされた場合の前提を記録して作業を続けてください」

注意点

特記事項はありません。

この紹介文は、公開されている SKILL.md をもとに AI(OpenAI Codex)が作成しました。正確な仕様は下の原文を確認してください。

含まれるファイル(1)

  • SKILL.md7.4 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Asking User Questions

The workflow family's shared norms for ask_user_question: how to interview in rounds, what makes a question worth asking, how to shape options, and how to degrade when answers don't come. Process skills name this concept at the steps that ask; when to ask — and where the answers get recorded — stays with the referencing skill.

Interview in rounds until nothing is assumed

  • Map the subject as a design tree: every decision branches into the decisions that hang off it. The frontier is every open decision whose prerequisites are already settled — the questions you can ask now without guessing at answers you haven't heard.
  • One call = one round = the whole frontier, with no cap on its size. A question whose answer depends on another question still open belongs to a later round, never the same one. Never split independent questions across back-to-back calls.
  • The call blocks the current run. Answers arrive as this tool's result. Don't keep working on the blocked step or assume an answer until it arrives — seconds or days later. A composer message sent while the card is open supersedes the round: the card closes unanswered and the message arrives as the next user message, so treat it as the user's reply and re-ask only what still matters.
  • After each round, recompute the frontier: answers settle branches, unblock their dependents, and prune branches that no longer apply. Ask the next round; never pre-write later rounds.
  • The interview is done when the frontier is empty — every branch visited, nothing material silently assumed. Then continue the referencing skill's next step; there is no extra "are we aligned?" round (the referencing skill's own gates still apply).
  • Depth follows the work, not a quota: work with no open user decision gets zero rounds; a decision-heavy change may take several.

Facts are yours, decisions are theirs

  • Never ask the user for a fact the workspace, the specs, or the web can answer. Look it up. When a lookup is slow, start it in the background (a sub-agent, when the host offers one) and ask the rest of the frontier meanwhile — only the questions downstream of that lookup wait.
  • Every decision — scope, observable behavior, trade-offs the user will live with — goes to the user. Picking an option yourself and moving on is answering your own question, not inferring.
  • If candidate options differ only internally — identical observable behavior — it is not a user decision: decide yourself and record the reasoning in the workflow's artifact.

What makes a question worth asking

  • It changes the outcome. Each answer leads somewhere different that the user will see or live with. If every option ends in the same place, drop the question.
  • It is specific to this work. Name the actual feature, screen, file, or user ("when a project is renamed while collapsed…"), never a generic template question.
  • It probes what people silently assume. Sweep the tree's usual blind spots: scope edges and non-goals, empty / error / failure states, edge cases and limits, concurrency or multiple instances, existing data and behavior that must migrate or stay, defaults, and who the work is for.
  • It surfaces tension. A conflict with a recorded spec decision, an earlier answer, or the request itself is asked about outright, quoting both sides.
  • It never re-asks. Anything the request, a prior answer, or the specs already settled is settled; build on it.
  • A concrete scenario beats an abstract principle. Ask "a user drags a file onto a busy session — queue it or reject it?", not "how should concurrency be handled?".
  • If the question can't be settled by talking (how something should look or feel), show a concrete artifact in options[].preview — a mockup, snippet, or config — instead of describing it.

Options

  • Recommended option first, label suffixed "(Recommended)", plus a one-line recommendedReason saying why you recommend it over the alternatives (shown inline under the option as a Why: line).
  • Every option: a concise label (1–5 words, ≤ 60 chars) + a description carrying the trade-off or consequence of choosing it. Tailor options to the work at hand — never generic placeholders.
  • Options must be decidable by the asked user: frame them as observable behavior or outcomes ("collapsing a project stays collapsed after a rename"), never as implementation mechanics ("semantic guard", "activation ref").
  • Never author your own "Other", free-text, or escape options — the tool adds a free-text row to every question and an always-available Skip, and reserved labels are rejected. This holds under multiSelect too: the free-text row stays and is additive — a typed answer arrives alongside the checked options, it does not replace them.
  • multiSelect: true when several answers are valid at once (feature checklists); single-select when confirming something or choosing one path.
  • options[].preview (markdown) when a concrete artifact — code, a config, a mockup — is clearer shown than described. Single-select only.
  • header is a short chip, ≤ 16 characters.

Confirming an inference

When you have inferred something and need a yes/adjust rather than an open answer: the inferred statement is the question text, with "Looks right" as the first option (description: "accurate as written") and a genuine rejection option second (e.g. "Off base — ask me directly"). Edits arrive through the tool's automatic free-text row — do not author an edit option. Read the response as:

  • "Looks right" → the inference holds; continue unchanged.
  • Free-text tweak (one fact changes) → update that field only; don't re-derive anything else.
  • Substantial rewrite → re-derive every inference that came from that statement before continuing.
  • Rejection → discard the inference entirely and ask an open-ended question instead.

Degradation

  • A skipped or declined question is not a blocker: settle it on your recommended answer, recorded as unconfirmed in the workflow's artifact (the referencing skill says where), and keep working its dependents from that assumption — don't re-ask it.
  • A whole round skipped means the user wants to stop being interviewed: ask no further rounds and proceed on recorded assumptions for everything still open.
  • If the host reports no interactive UI (ask_user_question returns "not available"), state your assumptions the same way instead of blocking.
  • "I don't know / help me understand" is a mis-framing signal, not a missing-knowledge one: re-explain from user-visible behavior in plain language, then re-ask with behavior-framed options — don't repeat the same technical options with more detail.

Red flags

  • You stopped after one round while decisions that depended on its answers are still open.
  • You chose an option for the user instead of asking — or asked the user something you could have looked up.
  • One round holds two questions where one answer would change the other.
  • A question restates what the request or an earlier answer already settled.
  • Every question would fit any project — nothing names this work's specifics.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

コメント

ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。

まだコメントはありません。最初のコメントを書いてみませんか。

送信するとすぐに公開されます。メールアドレスや電話番号などの個人情報は書かないでください。URL は 2 つまでです。

0 / 1000 文字

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

同じリポジトリのスキル

brainstorming

無料概要あり

機能追加や挙動変更、バグ修正の前に、目的や要件を整理して設計案を合意し、実装後に仕様書へ反映するスキルです。

  • 実装前に要件を整理したいとき
  • 機能の設計を相談したいとき
  • バグの原因と修正方針をまとめたいとき
JetBrains/thinkrail1,7652026年10月26日 更新

choosing-a-workflow

無料概要あり

新規プロジェクトの準備、PRの作成・確認、機能追加や不具合修正など、作業内容に応じて次に従うワークフローを選びます。

  • 新規プロジェクトの進め方を決めたいとき
  • 機能追加や不具合修正の経路を選びたいとき
  • PRの確認やレビュー対応を進めたいとき
JetBrains/thinkrail1,7652026年10月26日 更新

importing-a-codebase

無料概要あり

仕様書のない既存コードベースを調べ、コードや資料から目的・構成・依存関係を読み解いて、初期仕様グラフを草案として組み立てます。

  • 仕様のない既存コードを文書化したいとき
  • モジュール構成と依存関係を整理したいとき
  • 既存の設計資料を仕様グラフに取り込みたいとき
JetBrains/thinkrail1,7652026年10月26日 更新

managing-mcp-servers

無料概要あり

ThinkRailのMCPサーバー設定を追加・変更・削除し、ツールの接続不具合やサインイン、利用承認に必要な手順を案内するスキルです。

  • MCPサーバーを追加・削除したいとき
  • MCPの設定や公開方法を変更したいとき
  • MCPツールの接続不具合を調べたいとき
JetBrains/thinkrail1,7652026年10月26日 更新

setting-up-a-project

無料概要あり

仕様グラフがないプロジェクトの状態を確認し、新規企画か既存コードかに応じて、仕様作成の適切な手順へ案内します。

  • 新規プロジェクトの仕様作成を始めたいとき
  • 既存コードを仕様グラフに整理したいとき
  • 既存仕様の不足を確認したいとき
JetBrains/thinkrail1,7652026年10月26日 更新

shipping-a-pr

無料概要あり

完成した変更をプルリクエストとして作成し、同期や説明文の更新、CI確認、レビューコメントへの対応まで進めるスキルです。

  • 完成した変更でPRを作成したいとき
  • PRをベースブランチに同期したいとき
  • PRのタイトルや本文を更新したいとき
JetBrains/thinkrail1,7652026年10月26日 更新

JetBrains のスキルをすべて見る

このスキルの問題を報告する