关于 turn-based-discovery
turn-based-discovery 是用于消除任务歧义的技能,适合在开始行动前或研究后快速确认关键选择。它通过结构化选择题收集答案,并保留自由格式选项。
主要功能
- 01使用 AskUserQuestion 提问
- 02每次最多批量提出 4 个问题
- 03每题提供 2–4 个真实选项
- 04仅询问阻碍进展的问题
适用场景
- 01开始含糊任务前确认需求
- 02研究后快速解决待定问题
- 03遇到关键分支时征求选择
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ alber70g/ skills --skill turn-based-discovery安装后在 Claude Code 中输入/turn-based-discovery确认已加载。
详细介绍
分轮发现
目的
厘清问题,而非深挖。用结构化的选择题取代文字盘问,并提供自由格式的选项。
这不是一次深度访谈,而是一种厘清问题的工具,适用于以下情况:
- 请求含糊,需要先做几个决定才能开始行动;
- 研究后还有一些悬而未决的问题,需要快速得到答案;
- 否则你只能猜测一些细小但关键的细节。
规则
- 使用
AskUserQuestion工具。 能用工具提问时,不要用文字提问。工具会自动添加自由格式的“其他”选项,切勿自行添加。 - 每次调用最多批量提问 4 个问题(工具的硬性上限)。如果确实有 5 个或更多待解问题,就在收到第一批答复后再发送第二批,不要用无关问题凑数。
- 只询问阻碍进展的问题。 如果可以从文件系统中读取、推断得出或安全地假设,就自行处理。
- 为每个问题提供足够的背景。 用户不应该需要猜测你的意思。如果相关文件、目录、近期发现、约束条件或仓库状态会影响决定,就简要提及;如果问题涉及某个文件,请明确写出文件名。
- 每个问题提供 2–4 个切实可选的答案。 每个选项都应是用户可能会选择的不同方案,不要设置稻草人选项来引导用户接受你偏好的答案。
- 措辞要清晰,不要诱导。 目的是了解用户真正想要什么,而不是确认你已有的假设。可以给出推荐方案,但要标注
(Recommended),并将其放在 [...] 中。
问题格式
传给 AskUserQuestion 的每个问题都包含:
question— 清晰明确,并以问号结尾。header— 不超过 12 个字符,概括决策方向(例如“范围”“存储”“格式”)。options— 2–4 个不同选项。每个选项都包含:label— 1–5 个词。description— 用一行说明选择该选项意味着什么。
multiSelect— 默认值为false;只有在选项确实可以组合时才设为true。
工具总会追加用于自由格式输入的“其他”选项。不要重复添加。
何时使用
- 研究或探索后发现仍有待决定的问题时。
- 请求存在实际歧义、需要在开始工作前厘清时。
- 任务进行中遇到一个很容易询问、但猜错代价很高的分岔点时。
- 提问之后仍存在不清楚或含糊之处时,例如用户想要不同的方向,或回答引出了新的方向分支。
何时不要使用
- 根据上下文、文件或之前的对话,答案已经显而易见时。
- 问题容易撤销且代价很低时——直接选择并继续。
- 已经开始实现,却只是为了提问而提问时。
- 用户说了“直接开始”或“由你决定”时。
示例
好的示例——批量提出澄清问题
研究完选项后,一次提出 2–4 个问题:
- 存储:“结果应保存在哪里?” → SQLite / Postgres / JSON 文件 / 仅存于内存
- 触发方式:“任务如何启动?” → 手动运行 CLI / Cron / 文件更改时 / HTTP 端点
- 输出:“你希望返回什么格式?” → JSON / Markdown / 纯文本
用户回答全部问题;遇到不合适的选项时,可选择“其他”,然后继续处理。
好的示例——单个澄清问题
只有一个问题不清楚时,就问一个。不要凑到四个。
不好的示例——虚假的选项
“我应该使用 Postgres 吗?” → 是 / 是,但要加缓存 / 也许 / 否
所有选项都指向 Postgres。应提供真正不同的替代方案,否则就不要提问。
不好的示例——琐事
“你提到的文件叫什么?”
如果文件名已在对话或文件系统中,就自己查找。不要提问。
反模式
- 冗长的问题——使用该工具,分批提问。
- 为了凑数而填充问题——2 个真实问题胜过 4 个凑数的问题。
- 手动添加“其他”——该工具会自动添加;自己添加会浪费一个名额。
- 已经决定后才提问——如果你已经开始行动,就不要假装征求意见。
- 层层深入的提问——这项技能旨在澄清,而不是审问。如果你发现自己打算根据第 1 个问题的答案来规划第 5 个问题,那就用错模式了——请改用
brainstorming技能。 - 过早停止——提问后,回顾一下这些问题,看看是否需要进一步提问。如果需要,就继续。用户可能会告诉你,他们已在之前的轮次中回答过某个问题,或者你之前的假设有误;此时应修改问题,而不是强求回答。
与其他模式的配合
- 计划模式:使用此模式收集可用于计划的信息。不要在这里调用
ExitPlanMode。 - 头脑风暴技能:如果需要深入、逐个问题地探索,请交由
brainstorming——该技能负责这类流程。 - 自动模式:仍然适用。用户明确调用此技能时,仍要提问。
调用工具前的检查清单
- 每个问题是否确实会阻碍进展?
- 各选项是否真的有所区别?
- 是否提供了足够的上下文,让用户无需猜测就能回答?
- 相关文件、路径或仓库状态是否在必要时已提及?
- 每次调用是否不超过 4 个问题?
- 是否将“其他”留给工具处理?
如果任一项的答案是否定的,请先修改。
评论
支持 Markdown