ask-user

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Ask User

向用户提问

Thin helper that codifies how to ask the user questions during a workflow. Other skills (planning, research, brainstorming, implementing) reference this skill instead of duplicating AskUserQuestion conventions.
这是一个精简的辅助规范,明确了在工作流中如何向用户提问。其他技能(规划、调研、头脑风暴、实施)会参考此技能,而非重复编写AskUserQuestion的规范。

Core Rule

核心规则

Use the AskUserQuestion tool — never as plain-text bullets in chat.
Asking in chat looks like a request for free-form prose; AskUserQuestion gives the user one click per decision and the answer is structured. Always prefer the tool.
使用AskUserQuestion工具——绝不要在聊天中用纯文本项目符号提问。
在聊天中提问看起来像是要求用户自由撰写回复;而AskUserQuestion工具为用户的每个决策提供一键选择,且答案是结构化的。始终优先使用该工具。

When to Use

使用场景

  • Clarifying ambiguous user input
  • Choosing between viable design options
  • Confirming a non-trivial assumption before acting on it
  • Approving a phase boundary, plan structure, or destructive action
  • Capturing a workflow preference (e.g., commit-per-phase)
  • 澄清模糊的用户输入
  • 在可行的设计方案中做选择
  • 在采取行动前确认非琐碎的假设
  • 批准阶段边界、计划结构或破坏性操作
  • 记录工作流偏好(例如:按阶段提交)

When NOT to Use

禁用场景

  • Rhetorical questions or thinking-out-loud
  • Asking permission for trivial, reversible actions (just do them)
  • "Is the plan ready?" / "Should I proceed?" — those are not decisions, they're checkpoints; just present the artifact and stop
  • 反问句或自言自语
  • 询问琐碎、可回退操作的许可(直接执行即可)
  • “计划准备好了吗?” / “我可以继续吗?”——这些不是决策,只是检查点;只需展示成果并停止

Conventions

规范细则

Question shape

提问格式

  • One sentence, ends with
    ?
  • Include enough context that the user doesn't need to scroll back
  • Don't reference invisible artifacts ("does the plan look good?" — they may not see it yet)
  • 一句话表述,以
    ?
    结尾
  • 包含足够上下文,用户无需回溯历史记录
  • 不要引用不可见的成果(例如“计划看起来不错吗?”——用户可能还没看到)

Options

选项设置

  • 2–4 mutually exclusive choices
  • Each option: 1–5 word label, plus a one-sentence description explaining the trade-off or implication
  • If you have a recommendation, put it first and append
    (Recommended)
    to the label
  • Never include "Other" — the tool adds it automatically
  • 2-4个互斥选项
  • 每个选项:1-5个单词的标签,加上一句说明权衡或影响的描述
  • 如果有推荐选项,将其放在首位并在标签后附加
    (Recommended)
  • 无需添加“其他”选项——工具会自动补充

Header chip

头部标签

  • Max 12 characters, names the axis of the choice (e.g.
    Auth method
    ,
    Approach
    ,
    Scope
    )
  • 最多12个字符,点明选择的核心维度(例如
    Auth method
    Approach
    Scope

Multi-select

多选设置

Use
multiSelect: true
only when choices are non-exclusive (e.g., "which features to enable?"). Default is single-select.
仅当选项互不排斥时使用
multiSelect: true
(例如“要启用哪些功能?”)。默认是单选模式。

Batching

批量提问

If you have multiple independent questions to ask at the same checkpoint, send them in one AskUserQuestion call (up to 4 questions) — don't ping-pong.
如果在同一个检查点有多个独立问题需要询问,通过一次AskUserQuestion调用发送(最多4个问题)——不要来回多次提问。

Good Example

示例:正确用法

question: "Which storage backend should the worker use?"
header: "Storage"
options:
  - label: "Postgres (Recommended)"
    description: "Existing infra, transactional, easy to query. Adds one new schema."
  - label: "Redis"
    description: "Faster but requires new ops. Lossy on eviction — bad fit for audit data."
  - label: "S3 + manifest"
    description: "Cheapest at scale but adds latency and a sync layer."
question: "Which storage backend should the worker use?"
header: "Storage"
options:
  - label: "Postgres (Recommended)"
    description: "Existing infra, transactional, easy to query. Adds one new schema."
  - label: "Redis"
    description: "Faster but requires new ops. Lossy on eviction — bad fit for audit data."
  - label: "S3 + manifest"
    description: "Cheapest at scale but adds latency and a sync layer."

Bad Examples

示例:错误用法

"What do you think?"                      → too vague, no options
"Should I continue? (yes/no)"             → checkpoint, not a decision; just stop
"Pick one: A, B, C, D, E, F, G"           → too many options; collapse or split
"Want me to also fix the typo?"           → trivial reversible action; just do it
"What do you think?"                      → too vague, no options
"Should I continue? (yes/no)"             → checkpoint, not a decision; just stop
"Pick one: A, B, C, D, E, F, G"           → too many options; collapse or split
"Want me to also fix the typo?"           → trivial reversible action; just do it