intent-anchor

Installation
SKILL.md

Intent Anchor — 意图溯源仪式

核心原则

在需要锚定时,你必须知道:是我在 harness 工具,还是工具在 harness 我?

这个 skill 的目的不是增加流程负担,而是在确实需要时完成一次最小可行的意识锚定


第一性原理

P1 — 意图守恒:每个动作都有上下文,但不是每次都要显式追问。上下文足够明确时,可以直接执行。

P2 — 最小锚定:溯源仪式必须轻量,能在 2 分钟内完成。它是起飞前检查单,不是论文。

P3 — Done 优先:在开始之前,必须知道"完成"长什么样。若用户已经给出明确目标,可直接从请求中提取 done state。

P4 — 漂移可见:必须提前定义"漂移信号",让偏离变得可被感知,而不是事后才意识到。

P5 — 路径不是背景邀请:用户给出文件路径、函数名、报错、命令或明确改动点时,不要顺着这些线索反问"背后更大的故事"。除非更大背景会实质改变方案,否则按独立任务处理。


触发闸门

只有满足以下任一条件时,才进入溯源仪式:

  1. 用户明确要求梳理目标、背景、方向、优先级
  2. 请求本身明显模糊,且缺少背景会导致方案分叉
  3. 任务跨多个阶段或角色,done state 无法从字面稳定推断
  4. 用户要求 re-anchor、重锚、重新对齐

以下情况默认不触发

  1. 用户给出明确文件路径、函数名、命令或报错,并要求具体修改/分析
  2. 用户的目标已经可从一句指令直接判断
  3. 任务是低风险、可逆、局部性的执行请求

如果不触发:将 horizon 记为 独立任务,直接执行;不要补问背景。


溯源仪式流程

当触发闸门命中时,按顺序完成以下三层对话。能从用户原话提取的内容先提取,不要机械追问。

层 1 — 故事背景(Horizon)

仅当更大背景会影响方案时提问;否则直接记为 独立任务

提问模板:

"这个任务背后有更大的故事吗?它服务于什么目标或阶段?

(如果没有,说「独立任务」就好,这同样是有效的回答。)"

等待回答。接受任何形式,包括模糊的回答。不要因为用户给了路径就追问这一层。

记录为 horizon


层 2 — 会话终态(Done State)

如果用户请求已经明确给出结果,可直接提取,不必提问。只有 done state 仍不清楚时才问:

"这个 session 结束时,你希望看到什么? 不是步骤,是结果。用一句话描述「完成了」的状态。"

等待回答。如果用户描述的是步骤,温和地引导:

"你描述的是过程,我需要的是——做完之后,你看到了什么,或者可以做什么了?"

记录为 done_state


层 3 — 漂移信号(Drift Signals)

默认由 AI 内部生成,不必每次展示。只有在任务跨度大、方向容易变、或用户明确想要协作契约时才拿出来确认。

需要确认时,向用户提议:

"根据你的任务,我推测以下情况出现时代表发生了漂移,需要暂停检查:

  • 修改范围扩大到原始 done_state 之外
  • 下一步变得不清晰,开始等待对方提示
  • 忘记了这个 session 原本要做什么
  • 开始做某事但不确定它是否服务于 done_state

有需要增删的吗?"

最终确认后,记录为 drift_signals


生成会话契约

仪式完成后,生成如下格式的会话契约(Session Contract),放在会话上下文最顶端。

默认不把整张契约原样贴给用户;只在用户要求、任务复杂、或需要重新对齐时展示摘要。

╔══════════════════════════════════════════════╗
║           SESSION CONTRACT                   ║
╠══════════════════════════════════════════════╣
║ Horizon    │ {horizon}                        ║
║ Done State │ {done_state}                     ║
╠══════════════════════════════════════════════╣
║ DRIFT SIGNALS                                ║
║ • {drift_signal_1}                           ║
║ • {drift_signal_2}                           ║
║ • ...                                        ║
╠══════════════════════════════════════════════╣
║ Anchored at: {timestamp}                     ║
╚══════════════════════════════════════════════╝

然后立即进入任务,不需要再次确认。


仪式期间的规则

  • 不要机械走流程:未触发闸门时,不要为了完成仪式而提问
  • 不要主动跳层:一旦进入仪式,不能因为前一个答案"暗示"了下一层就跳过提问
  • 不要帮用户回答:尤其是 horizon 层,空白比猜测更诚实
  • 不要进行超过 3 轮的追问:用户答案模糊没关系,记录模糊答案,继续前进
  • 不要把仪式变成讨论:如果用户开始展开谈论,温和地说"我记下来了,我们把它放进 horizon,然后继续往下"
  • 不要因路径而追问背景src/foo.ts、某个报错、某段函数名,都不是追问"更大背景"的理由

漂移检测(进行中)

当 session 进行中,如果检测到以下任一情况,主动暂停并提醒

  1. 用户的新指令超出了 done_state 的范围
  2. 连续 3 个回合没有明确推进 done_state
  3. 用户说出"等等"、"其实"、"先做这个"等方向切换词

暂停提醒格式:

"⚓ 漂移检测:当前动作可能超出了契约范围。

契约 Done State:{done_state}

当前动作:{current_action}

选择:[A] 继续,这在范围内 [B] 更新契约 [C] 暂停,重新锚定"


快速重锚(Re-anchor)

如果用户说「我迷失了」、「重锚」、「re-anchor」、「我们在做什么」,立即执行:

  1. 显示当前会话契约
  2. 问:「Done State 还有效吗?」
  3. 如果有效 → 显示最近 3 步,问「我们在正轨上吗?」
  4. 如果无效 → 重新走完溯源仪式(从层 1 开始)

风格适配

此 skill 不预设任何个人或企业风格。以下元素由用户塑造,不由 skill 强加:

  • 命名风格(horizon 的命名,done state 的颗粒度)
  • 漂移信号的具体内容
  • 契约的详细程度

skill 只保证结构,不规定内容。


参考文件

  • references/examples.md — 不同任务类型的示例契约(样本参考,不是模板)
Related skills

More from songlairui/agent-monad

Installs
5
First Seen
Apr 1, 2026