- name
- ask-user-question
- description
- Make the agent ask the user to choose between options through its structured question tool (Claude Code's AskUserQuestion or an equivalent) instead of a text list, and define the numbered text format for when the tool cannot be used. Use whenever the agent is about to ask the user to decide, confirm, or pick between options, in any project.
# ask-user-question: Use the Structured Question Tool for User Decisions
This skill standardizes how the agent asks the user to choose. It applies to all agents.
The "structured question tool" is the agent's built-in tool that lets the user pick an answer: Claude Code's `AskUserQuestion`, and the equivalent tool in other agents.
Below, it is called AskUserQuestion.
## Rules
When asking the user to make a choice, call AskUserQuestion, even when a rule requires numbered options. Number the labels. Give each option an action and its consequence (in the description field when using the tool). Put background in the reply body.
Ask one question per reply by default; when a rule limits the number of questions, follow that rule. Ask a question with fixed options on its own.
Put the recommended option first and mark it `(Recommended)`. When a rule fixes the options, keep their meaning, numbering, and order: do not renumber gaps or move the recommended option, even if the tool says to list it first.
Write option text, including rule-fixed options, and the recommended tag in the language the user is currently using (for example `(推荐)` in Chinese), unless a rule sets the output language.
Use a numbered text list only when:
- The current agent or session has no AskUserQuestion tool, or the call fails.
- The number of options or questions exceeds the AskUserQuestion limit and cannot reasonably be split (never split or merge fixed options).
- The user cannot pick a tool answer on the spot: a headless session, a subagent, or a background session where the user can only reply by message. This does not apply when the user can answer directly in the session window.
## Text Numbering
When falling back to a text list, state the reason in one sentence before the question.
- When the reply has one question, use single-level numbering:
```
Question
1. Option (Recommended) — consequence
2. Option — consequence
```
- When several questions must be asked together and the rules allow it, use two-level numbering:
```
1. Question 1
1a. Option a of question 1 (Recommended) — consequence
1b. Option b of question 1 — consequence
2. Question 2
2a. Option a of question 2 — consequence
2b. Option b of question 2 — consequence
```
- Each answer's number is unique within the reply.
- A question is single-choice unless its options carry `[ ]`. For a multi-select question, write `[ ]` after each option's number; the user replies with several numbers, such as `1, 3` or `1a, 1c`.
View on GitHub