关于 ask-user
用于统一工作流中提问方式的技能,供其他技能调用。它区分需要用户决策的问题与常规检查点,并规范问题和选项的格式。
主要功能
- 01提问时机指南
- 02单句问题格式
- 03互斥选项规范
- 04批量提问规则
适用场景
- 01澄清含糊的请求
- 02选择不同设计方案
- 03确认重要假设
- 04获得破坏性操作的批准
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ desplega-ai/ ai-toolbox --skill ask-user安装后在 Claude Code 中输入/ask-user确认已加载。
详细介绍
询问用户
用于规范工作流中如何向用户提问的轻量辅助工具。其他技能(规划、研究、头脑风暴、实现)会引用此技能,而不是重复 AskUserQuestion 约定。
核心规则
使用 AskUserQuestion 工具——绝不要在聊天中用纯文本项目符号提问。
在聊天中提问看起来像是在请求用户自由发挥;AskUserQuestion 则为每个决定提供一个点击选项,并以结构化方式记录答案。始终优先使用该工具。
何时使用
- 澄清含糊的用户输入
- 在可行的设计方案之间进行选择
- 在依据某个重要假设采取行动前进行确认
- 批准阶段边界、计划结构或破坏性操作
- 记录工作流偏好(例如,每个阶段提交一次)
何时不要使用
- 反问或边想边说
- 为琐碎且可逆的操作请求许可(直接执行即可)
- “计划准备好了吗?”/“我应该继续吗?”——这类问题不是决策,而是检查点;直接展示成果并停下即可
约定
问题格式
- 一句话,以
?结尾 - 提供足够的上下文,让用户无需向上滚动查看
- 不要提及用户看不到的内容(例如:“计划看起来不错吗?”——用户可能还看不到计划)
选项
- 2–4 个互斥选项
- 每个选项:1–5 个词的标签,加上一句解释权衡或影响的描述
- 如果有推荐选项,将其放在首位,并在标签后附上
(Recommended) - 绝不包含“其他”——工具会自动添加
标题标签
- 最多 12 个字符,用于命名选择的维度(例如
Auth method、Approach、Scope)
多选
仅当选项彼此不互斥时(例如“要启用哪些功能?”),才使用 multiSelect: true。默认情况下为单选。
批量提问
如果在同一个检查点有多个独立问题要问,请在一次 AskUserQuestion 调用中一并发送(最多 4 个问题)——不要来回反复提问。
好例子
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."
不好的例子
"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
评论
支持 Markdown