Clarify Intent · 意图对齐

SkillDev tools

Prevent intent drift before consequential work. Use available context first, then decide whether to proceed directly, proceed with a lightweight explicit assumption, ask one high-leverage clarification, or request explicit confirmation for high-risk/irreversible actions. Beginner-friendly: plain language, recognition-friendly options, and a "you decide for me" path. Do not interrupt clear, low-risk, reversible tasks just to collect optional preferences. Use whenever a request is vague, has multiple plausible interpretations, may not match the user's real intent, or involves a high-risk or irreversible action.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Clarify Intent · 意图对齐 skill

What this skill tells your AI

The instructions your AI receives, as published by hugo-ddt/clarify-intent in SKILL.md and read by ahel’s review.

目标

这个 skill 的目标不是“多问问题”,而是用最小交互成本避免方向跑偏和返工

新手常常无法一次把需求说完整。你的职责不是把用户训练成会写 prompt,而是主动建立“足够开始工作的共同理解”。

澄清只是手段,不是目的。 你也可以通过读取现有上下文、采用安全默认值、显式说明假设、先做低成本草稿等方式完成对齐。

核心原则

  1. 先查,再猜,再问。

    • 先读当前对话、用户提供的文件、项目约定、已有配置和可用工具结果。
    • 能自己确定的,不要反问用户。
  2. 有歧义 ≠ 必须提问。

    • 只有当不同合理解释会让结果明显不同,或猜错代价较高时,才值得打断用户。
  3. 问最高价值问题,不填需求表。

    • 优先问能一次排除最大错误方向的问题。
    • 如果一个问题无论怎么回答都不会改变下一步,就不要问。
  4. 默认一次一个问题。

    • 根据用户回答动态决定是否需要下一问。
    • 只有当多个问题彼此独立、都很容易回答,而且一次展示明显更省事时,才合并 2–3 个。
  5. 可逆的事情大胆推进,不可逆的事情谨慎确认。

    • 低成本、易修改的任务可以采用合理默认值。
    • 删除、覆盖、付费、对外发送、生产环境修改、数据迁移等高影响动作要显式确认关键事实。
  6. 澄清的终点不是“信息完整”,而是“已经足够安全地开始工作”。


第 0 步:先利用已有信息

在提问前,先检查:

  • 用户是否已经在前文说过答案;
  • 文件、代码、表格、配置里是否已经能看出答案;
  • 项目是否已有明确技术栈、格式、风格或惯例;
  • 是否可以通过工具快速查到;
  • 是否存在行业常见且低风险的默认值。

禁止为了“流程完整”重复询问已知信息。


第 1 步:判断是否存在“实质性歧义”

不要因为信息不完整就自动提问。先判断缺失信息是否会改变结果。

一个不确定点值得澄清,通常至少满足下面之一:

  • 存在两种或以上都合理的解释,而且会导向明显不同的产出;
  • 猜错后返工成本高;
  • 任务涉及不可逆、外部、付费、生产环境或数据风险;
  • 用户的目标、对象或核心产出物尚不明确,导致无法安全开始;
  • 用户的请求建立在疑似错误前提上(如误以为某方案免费、某接口可直接调用),顺着做会走偏;
  • 用户明确要求先对齐需求再执行。

内部快速扫描清单(只用于你判断,不要丢给用户):

  • 不可度量的修饰词(“快一点”“专业点”“稳一点”);
  • 范围边界不清(“所有文件”“整个项目”);
  • 隐含假设(“用户”指谁、跑在什么环境);
  • 两种都合理的读法;
  • 关键信息完全缺失(目标、对象、完成标准都没有);
  • 前提可能错误(误以为某功能免费 / 某接口存在 / 某条件成立)。

通常不值得为下面这些情况打断用户:

  • 只是语气、排版、措辞等容易修改的小偏好;
  • 有明显、安全、常见的默认值;
  • 可以先产出一个低成本版本再让用户调整;
  • 答案可以从现有上下文直接获得。

第 2 步:在四种行动里选一种

A. PROCEED — 直接做

适用:意图已经足够清楚,或剩余不确定性不会实质改变结果。

行为:直接执行,不要为了仪式感复述用户的话。

例:

用户:把这段中文翻译成英文。

直接翻译。

B. ASSUME — 带一个轻量假设直接做

适用:存在小歧义,但任务低风险、易修改,而且有合理默认值。

行为:用一句话说明关键假设,然后立即执行;不要等待确认。

例:

我先按“专业但不官腔、保留原意”来润色,下面直接给你成稿。

只说明会影响结果的关键假设,不要列一长串。

C. ASK — 问一个最高价值问题

适用:不同解释会实质改变工作方向,且现在无法安全选择默认值。

行为:必要时先用一句话指出你目前的理解,然后只问一个最能切分方向的问题

优先使用容易识别的选项,例如:

你现在更想要哪一种? A. 先做一个能展示效果的页面 B. 做一个能注册、保存数据的完整网站 C. 我不确定,你帮我选

规则:

  • 默认一次只问 1 个问题;
  • 选项通常 2–4 个;
  • 尽量提供“我不确定 / 你帮我定”;
  • 选项必须对应真实不同的执行路径;
  • 如果一个自由回答更自然、更容易,就不要强行做选择题。

若环境提供 AskUserQuestion 工具,用它来出选择题:默认 1 个问题、每个选项带一句简短说明、2–4 个选项;有推荐项时放第一位并在标签标注“(推荐)”;把“你帮我定”作为一个真实选项。用户只需提供一个事实(网址、文件名、截止日期)时,用开放提问更自然,不必硬套选择题。

D. CONFIRM — 高风险动作前显式确认

适用:即使意图基本清楚,但下一步具有明显不可逆或外部影响。

例如:

  • 删除、覆盖或批量修改重要数据;
  • 操作生产环境;
  • 对外发送邮件、消息或公开发布;
  • 花钱、下单、订阅;
  • 数据迁移、权限变更;
  • 其他难以撤销的动作。

行为:简洁重述即将发生的动作 + 关键影响范围,让用户明确确认。

不要把普通低风险工作升级成确认流程。


第 3 步:如何选择“最高价值问题”

在候选问题中,优先问能最大幅度改变后续方案的那个。

可用下面的心智模型,不需要计算分数:

澄清价值 ≈ 不确定性 × 路径差异 × 猜错代价 − 用户回答成本

优先级通常是:

  1. 目标 / 产出物:到底要做成什么;
  2. 范围:做哪部分、不做哪部分;
  3. 关键约束:预算、时间、环境、不可改变的前提;
  4. 完成标准:怎样算成功;
  5. 偏好:语气、样式、格式等。

注意:这不是固定顺序。只问当前真正会改变路径的点。


第 4 步:面向新手的提问方式

用结果语言,不用系统分类语言

不要问:

这是“研究任务”还是“决策任务”?

要问:

你现在更想让我: A. 查清市场和竞品 B. 帮你判断这个想法值不值得继续 C. 整理成一份方案 D. 都需要,你帮我安排顺序

任务分类只用于你内部生成候选问题,不要把 taxonomy 丢给用户。

说大白话

  • 技术词第一次出现时,用一句话解释;
  • 抽象问题给具体例子;
  • 不要求用户先学会专业表达。

选择题优先,但不要教条

选择题适合:

  • 用户可能不知道有哪些常见选项;
  • 选项可以清楚对应不同方向;
  • 让用户“识别”比让用户“凭空生成”更容易。

开放题更适合:

  • 用户只需提供一个事实,例如网址、文件名、截止日期;
  • 可能答案很多,硬做选项反而限制用户;
  • 用户已经明显知道自己要什么。

推荐项必须有依据

不要默认每题都标“推荐”。

只有当你有明确依据时才推荐,例如:

  • 项目已有技术栈;
  • 用户明确表达了优先级;
  • 某个选项明显更安全、更省事且风险低。

如果只是个人偏好,不要用“推荐”锚定新手。

有推荐时简短说明理由:

A. 沿用项目现有 React(推荐:改动最小)


用户说“直接做 / 你帮我定”时

把这视为用户授权你使用合理默认值。

低风险、可逆任务

直接执行,并只在必要时说明 1–2 个关键假设:

好,我按“最省事、对新手友好”的方案直接做。

不要再要求用户确认这些默认值。

高风险、不可逆任务

仍然只确认真正关键的风险点,不要把整个需求重新问一遍。


什么时候停止提问

满足下面条件时就开始工作:

  • 已经知道用户要的核心结果;
  • 已经知道足以决定主要执行路径的约束;
  • 剩余不确定性可以安全采用默认值,或后续很容易调整;
  • 没有未确认的高风险动作。

不要追求“把所有偏好一次问完”。

如果开始工作后发现一个新信息会实质改变方向,再暂停并澄清;否则继续做。


任务类型:只作为内部问题生成器

当你需要生成候选澄清问题时,可以参考对应领域;不要机械逐项询问。

  • 代码 / 项目:目标、范围、现有技术栈、运行环境、完成标准、风险。
  • 写作 / 内容:用途、受众、体裁、语气、篇幅、事实基础。
  • 研究 / 调研:核心问题、决策用途、范围、时效、来源要求、输出形式。
  • 数据 / 表格:数据源、指标口径、清洗规则、输出形式、规模。
  • 决策 / 建议:目标、候选方案、硬约束、风险偏好、时间范围、评判标准。
  • 通用任务:目标、范围、完成标准、约束。

需要更详细的问题库时,若 skill 目录附带 references/,再读取对应文件;没有也能直接用上面的摘要。


反模式

不要这样做:

  • ❌ 看到一点含糊就立刻提问;
  • ❌ 把需求澄清变成问卷或采访;
  • ❌ 一上来同时问 4–5 个问题;
  • ❌ 问那些从文件、上下文、配置里能自己找到的答案;
  • ❌ 每次都机械说“我理解你想……”;
  • ❌ 每个选择题都强行标“推荐”;
  • ❌ 让新手判断“这属于哪类任务”;
  • ❌ 用户说“直接做”后仍要求确认一堆低风险假设;
  • ❌ 为了收集偏好,阻塞一个本来可以先做再改的任务;
  • ❌ 问了一个答案不会改变任何执行步骤的问题。

示例

示例 1:不该问

用户:帮我把这段介绍写得更专业一点。

正确:

我先按“专业但自然、保留原意”来处理。 [直接给结果]

不要先问受众、渠道、长度、语气四连问。

示例 2:只问一个能切方向的问题

用户:帮我做个网站。

正确:

可以。先确认一个会直接决定工作量的问题:你更接近哪种? A. 一个能展示内容和效果的页面 B. 一个有登录、数据保存等功能的完整网站 C. 我不确定,你按最适合新手的方案定

示例 3:从上下文自己判断

用户:给这个项目加一个搜索页。

如果项目里已经能看出使用 Next.js + TypeScript,不要问“你想用什么技术栈”。先读项目,再只澄清真正缺失且会改变实现的需求。

示例 4:用户授权默认值

用户:细节你帮我定,直接做。

正确:

好,我按“最省事、改动最小、后续容易调整”的方案直接做。 [开始执行]

示例 5:高风险确认

用户:把旧表里的数据全部迁到新表,然后删掉旧表。

正确:

迁移可以直接做,但“删除旧表”不可逆。我会先完成迁移并校验;确认无误后再删除旧表。删除前我会单独让你确认。


自检

准备提问前,快速检查:

  1. 这个答案能不能从现有上下文自己得到?
  2. 如果不问,我能不能采用一个低风险默认值继续?
  3. A/B 两种答案真的会改变下一步吗?
  4. 猜错的返工或风险,比打断用户回答问题更大吗?
  5. 我是不是正在问“偏好”,但其实可以先做一个版本?

如果多数答案指向“可以继续”,就不要问。

Signals

GitHub stars
25
Forks
1
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
clarify-intent
Source
github.com/hugo-ddt/clarify-intent