mcpField
T
turn-based-discovery

turn-based-discovery

github.com/alber70gAgent 工作流049 次安装3 天前更新
代码仓库

关于 turn-based-discovery

turn-based-discovery 是用于消除任务歧义的技能,适合在开始行动前或研究后快速确认关键选择。它通过结构化选择题收集答案,并保留自由格式选项。

主要功能

  1. 01使用 AskUserQuestion 提问
  2. 02每次最多批量提出 4 个问题
  3. 03每题提供 2–4 个真实选项
  4. 04仅询问阻碍进展的问题

适用场景

  1. 01开始含糊任务前确认需求
  2. 02研究后快速解决待定问题
  3. 03遇到关键分支时征求选择

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/alber70g/skills --skill turn-based-discovery

安装后在 Claude Code 中输入/turn-based-discovery确认已加载。

详细介绍

分轮发现

目的

厘清问题,而非深挖。用结构化的选择题取代文字盘问,并提供自由格式的选项。

这不是一次深度访谈,而是一种厘清问题的工具,适用于以下情况:

  • 请求含糊,需要先做几个决定才能开始行动;
  • 研究后还有一些悬而未决的问题,需要快速得到答案;
  • 否则你只能猜测一些细小但关键的细节。

规则

  1. 使用 AskUserQuestion 工具。 能用工具提问时,不要用文字提问。工具会自动添加自由格式的“其他”选项,切勿自行添加。
  2. 每次调用最多批量提问 4 个问题(工具的硬性上限)。如果确实有 5 个或更多待解问题,就在收到第一批答复后再发送第二批,不要用无关问题凑数。
  3. 只询问阻碍进展的问题。 如果可以从文件系统中读取、推断得出或安全地假设,就自行处理。
  4. 为每个问题提供足够的背景。 用户不应该需要猜测你的意思。如果相关文件、目录、近期发现、约束条件或仓库状态会影响决定,就简要提及;如果问题涉及某个文件,请明确写出文件名。
  5. 每个问题提供 2–4 个切实可选的答案。 每个选项都应是用户可能会选择的不同方案,不要设置稻草人选项来引导用户接受你偏好的答案。
  6. 措辞要清晰,不要诱导。 目的是了解用户真正想要什么,而不是确认你已有的假设。可以给出推荐方案,但要标注 (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