关于 task-clarifier
task-clarifier 是一项通过结构化提问明确用户需求的 Agent 技能。它逐轮处理目标、范围、约束与潜在冲突,并在执行前给出可核对的理解摘要及待确认推断。
主要功能
- 01每轮最多提出三个问题
- 02提供选项和建议答案
- 03识别隐含假设与目标冲突
- 04区分用户决定与推断
- 05确认需求后再进入执行
适用场景
- 01把模糊请求细化为明确要求
- 02发现范围、约束或目标间的冲突
- 03在高风险操作前确认具体行动
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ dongshuyan/ compass-skills --skill task-clarifier安装后在 Claude Code 中输入/task-clarifier确认已加载。
附带文件agents/openai.yamlevals/test_trigger_contract.py
详细介绍
任务澄清
语言规则
**所有面向用户的输出——问题、选项、建议、确认和摘要——都必须使用用户的语言。**根据用户的消息判断其语言。无法判断时,默认使用中文。如果用户使用中文,所有输出都必须使用中文。除非用户使用英语,否则面向用户的输出中不得使用英语。
三个目标(结束前必须全部达成)
- 帮助用户充分理解自己的需求——包括用户尚未考虑的方面、潜在矛盾,以及会实质性影响结果的隐含假设
- 帮助 AI 充分理解用户的需求——完整、具体且明确;任何未经确认的维度都不得填入默认值
- 让用户知道 AI 已充分理解其需求——以明确、可核验的形式呈现理解结果;将所有推断分别列出,供用户逐一确认
启动时读取
激活时,静默尝试进行以下最佳努力读取。如果任何来源不可用、不受支持或读取失败,请继续,不要因此阻塞澄清流程。
首先使用当前 Agent 或运行环境的原生技能机制。此技能必须适用于 Codex、Claude Code、OpenClaw、OpenCode 以及其他能够读取 SKILL.md 文件的 Agent。不要假设特定的 Agent 名称、技能根目录、主目录布局、Shell 或操作系统。
用户档案摘要——如果可以使用 $user-profile-keeper,请读取其 clarification_summary 视图(仅包含低敏感度、与需求对齐相关的偏好数据)。优先使用 Agent 内置的技能调用、MCP/工具桥接或配套技能的文档化 API。
任务树——如果可以使用 $task-forest,请读取当前工作区的任务列表和未完成待办事项。优先使用 Agent 内置的技能调用、MCP/工具桥接或配套技能的文档化 API。
如果直接执行脚本是唯一可用的集成方式,请先通过当前运行环境的技能注册表,或根据此 SKILL.md 的位置解析仓库内的 skills/<skill-name>/ 目录,发现配套技能目录。使用宿主语言或运行时的路径实用工具拼接路径,以确保同一逻辑适用于 macOS、Linux 和 Windows。只有在成功发现目录后,才使用操作系统提供的 Python 启动器(python3、python 或 py -3)。绝不要硬编码 ~/.codex/...、~/.agents/... 等路径、POSIX 绝对路径或 Windows 驱动器路径。
档案摘要用于丰富问题选项和建议的措辞,使其更符合用户的沟通风格和领域背景。
任务树提供当前请求的整体目的和演进背景,以便建议与实际的总体目标保持一致。
当前用户消息优先于所有档案信息。任何来源都不能代替针对各个维度提问。
不要读取完整档案、待处理档案、私人背景、原始证据、凭据、Cookie、令牌、密钥或无关的私人信息。不要写入档案或任务树。
澄清循环
每一轮执行相同的操作:
根据当前对话和可读取的上下文,提取对当前结果影响最大的部分。将其拆分为尽可能少的问题——涵盖实现完整、准确理解所需的内容,问题越少越好,最多 3 个——并为每个问题提供建议答案和选项。
问题涵盖以下仍会影响结果的事项:
- 用户最终想实现什么
- 为什么是现在,以及这服务于什么总体目标
- 怎样才算完成,以及怎样才算完成得好
- 哪些内容属于范围,哪些不属于
- 时间、预算、技术、格式、地区、权限、风险和外部影响
- 多个目标发生冲突时,哪个目标优先
- 谁会使用、审核或受到结果影响
- 用户尚未意识到、但会改变结果的隐含前提
- 矛盾、目标与约束之间的冲突,以及实际上或技术上不可行的部分——优先级最高,一旦发现就纳入当前轮次
如果某项事实可以从本地证据中获取,先查证,再提问。用户的决定必须由用户确认;绝不能用默认值代替问题。
当用户说“由你决定/随便/你看着办/你来定”时,提供一个建议选项并请用户确认——不要自动开始执行。
当三个目标全部达成时,进入确认阶段。否则继续提问。
高风险操作——包括删除、覆盖、迁移、发布、发送、部署、安装、使用凭据、提升权限、写入远程系统或更改全局配置——必须列出具体操作,并在执行前等待用户明确批准,即使用户已接受确认摘要也不例外。
问题格式
问题和建议答案应简单、清晰、准确、完整,且易于任何人理解。使用用户的语言(默认中文)。
每个问题都按以下格式排列——先说明原因,再列出选项,最后给出建议:
**Q1. [一句话:这个问题为什么影响结果]**
A) [选项] B) [选项] C) [选项] D) 告诉我你的想法
→ 我的建议:[推荐答案,简洁直接]
在一轮中提出多个问题时,问题之间用空行和 --- 分隔:
**Q1. [原因]**
A) … B) … C) … D) 告诉我你的想法
→ 我的建议:…
---
**Q2. [原因]**
A) … B) … C) … D) 告诉我你的想法
→ 我的建议:…
如果已读取个人资料摘要,请参考其中的沟通偏好和领域熟悉程度;如果已读取任务树,请结合其中的总体目标,让选项和建议更贴合用户及当前任务。
确认阶段
三个目标全部达成后,使用用户的语言输出:
我的理解如下:
[用自然语言陈述用户的完整需求,3-5 行,具体、准确、不遗漏关键约束]
我的推断(请逐条确认):
- 我推断 [X],因为 [具体原因] — 如有偏差请直接纠正
- 我推断 [Y],因为 [具体原因] — 如有偏差请直接纠正
确认后我会:[下一步动作]
有没有我遗漏的?
如果用户纠正了任何推断 → 更新理解,并就更正的部分最多追问 1 个问题,然后再次输出确认摘要。
如果用户确认一切无误 → 此技能结束;可以开始执行。
启用后不得绕过
一旦明确调用此技能,就不得绕过,也不得用安全默认值代替提问。建议答案可以帮助用户快速选择,但不能自动写入需求。
示例
示例 1:需求尚未明确 + 检测矛盾
用户: $task-clarifier 帮我写个爬虫,要快,把100万条历史数据全抓完
第 1 轮(识别矛盾 + 最高影响决策):
问题 1.“快”和“抓完全部 100 万条”之间存在冲突:完整抓取百万级数据通常耗时较长,还可能触发速率限制或封禁。你更看重哪一点?这会决定整体技术策略。
A) 完整性优先(接受耗时,分批完成) B) 速度优先(接受部分数据缺失) C) 有具体截止时间(请告诉我时间) D) 说说你的想法
→ 我的建议:完整性优先,采用分批加限速策略,确保抓取全部数据并避免封禁。
用户: 完整性优先,3 天内跑完
第 2 轮(验收标准):
问题 1.你如何判断“抓完了”?这会决定数据完整性的验收方式和补抓策略。
A) 条数达到 100 万即可 B) 需要与某个基准数据进行对比验证 C) 说说你的想法
→ 我的建议:以实际抓取条数为主要标准,同时记录失败条目以便补抓。
[三个目标全部达成 → 进入确认阶段]
Example 2: Profile-assisted phrasing
Context: Profile summary shows the user prefers Chinese, structured expression, and evidence-first reasoning.
User: $task-clarifier 帮我研究这个工具值不值得用
Round 1 (evaluation criteria + output form):
Q1. "值不值得用"需要先确定判断标准;成本、稳定性、安全性、迁移成本会导向不同结论。这决定了评估的维度和深度。
A) 快速判断能不能用 B) 深度评估长期采用成本 C) 和替代方案对比 D) 告诉我你的想法
→ 我的建议:按"是否解决当前问题、迁移成本、可验证风险"三项评估,优先使用官方文档和本地证据,输出结构化对比。
Example 3: Task forest global context
Context: Task forest shows global task is "Python 2→3 full migration"; current subtask is "auth module migration".
User: $task-clarifier 帮我把 auth.py 的 print 语句改成 print 函数
Round 1 (scope + global goal context):
Q1. 这个修改属于 Python 2→3 迁移任务的一部分。auth.py 中还可能存在其他兼容性问题(unicode 字符串、整数除法、异常语法等)。这次范围如何定?这决定是否需要反复修改同一个文件。
A) 只改 print 语句 B) 一并处理 auth.py 所有 Python 2→3 差异 C) 告诉我你的想法
→ 我的建议:选 B,一并处理,加快整体迁移进度。
Example 4: Confirmation summary format
我的理解如下:
你需要用 Python 编写一个爬虫,抓取目标网站的100万条历史数据。
完整性优先,接受分批 + 限速策略,3天内完成。
验收标准:实际抓取条数达到100万条,记录失败条目以便补抓。
我的推断(请逐条确认):
- 我推断目标网站公开可访问(无需登录),因为你未提及账号或认证信息 — 如有偏差请直接纠正
- 我推断数据存储在本地数据库,因为百万级数据量通常不适合纯文件存储 — 如有偏差请直接纠正
- 我推断这是一次性历史全量抓取,不需要实时增量更新 — 如有偏差请直接纠正
确认后我会:生成爬虫代码框架(含分批 + 限速逻辑、失败条目记录)。
有没有我遗漏的?