Axıs
技能目录

takeover

Takeover

跨 agent 交接的入站协议:把交接文档当历史证据,不当事实;先核对,再继续。

边界

  • 是:新会话或新 agent 接手已有工作,消费 handover,核对真实状态,选一个下一步。
  • 不是:同会话压缩(用 harness 的 compact / resume);项目治理(butler);Blueprint 执行器(forge);经验提炼(experience-to-spec)。
  • 有 Blueprint:读 §4 / §5 / §8,接 forge 的 next S-T,不另起一套任务系统。
  • 有项目状态文件:接 butler 的 project-state,不重复造项目概览。
  • 输出:遵守 communication 的 decision-first,接手简报 ≤15 行。

触发检查

进入完整仪式前,先做一次廉价探测:

  1. 用户明确说「接手 / 初次对话 / 读交接 / 从上次继续」→ 进入。
  2. 当前会话已经在讨论具体任务,用户只是说「继续」→ 不进入,直接继续。
  3. 找不到任何 handover、项目状态或计划,且任务不需要历史 → 不进入。
  4. 用户说「深入理解 / 通读全仓 / 彻底搞懂」→ 进入 L2,但仍按停止规则收口。

本 skill 刚安装但不在当前会话的 skill 索引时,直接读本文件执行,或提示重启;不要假装已加载。

三档接手

档 何时 读什么 停止条件
L0 快接(默认) handover 新鲜、下一步明确 handover、git 状态与最近提交、下一步涉及的文件 能说清「下一步是什么、为什么、怎么验证」
L1 标准 handover 缺失或过期、项目不熟 加 roadmap / status / blueprint / ADR / wiki index、两层目录、定向代码 完成 claim 核对表
L2 深接 多工作流、高风险改动、文档互相矛盾、用户明确要求深入 加架构入口、决策史、butler 轻量审计 先给简报,确认后再动手

默认从 L0 开始。L1 / L2 是升级,不是默认工作量。

接手流程

0. 定位交接

按顺序查找,找到即停:

.handoff/latest.md
HANDOVER.md
docs/HANDOVER.md
PROJECT_STATUS.md
docs/roadmap.md
docs/status.md
BLUEPRINT.md
.wiki/wiki/index.md

多份并存时,以 .handoff 下的 latest.md 为准;它的 branch / head 与当前不符,进入 L1 核对,不直接采信。全都没有时,用 git log、最近修改的文件和项目入口文档重建一份,并写回 .handoff 下的 latest.md。

1. 定向

  • 运行 pwd,确认工作目录。
  • 运行 git status --short --branch 与 git log --oneline -10。
  • 读项目自己的规则:AGENTS.md、CLAUDE.md、README.md、CONTRIBUTING.md,以及项目声明的验证入口。
  • 确认当前分支、工作区是否干净、最近一次提交是否与 handover 的 head 一致。

非 git 项目用文件 mtime、目录树和项目自己的发布记录替代,不假装存在 git 状态。

2. 加载权威

只读与下一步有关的部分:

  • 当前 milestone、路线图、Blueprint 的 next S-T。
  • 最近的 ADR、设计决策、Wiki 摘要。
  • 明确的待决问题、阻塞项、用户最近一次否决。

不要为了「了解全貌」把全部文档和源码读一遍。需要全貌时,用目录树和入口文件建地图,再按下一步定向阅读。

3. 核对 claim

把 handover 里的关键断言逐条对照现实:

Claim 核对动作 结论
「X 已完成」 文件、commit、测试或产物是否存在 verified / stale / unknown
「下一步做 Y」 Y 的文件、分支、依赖、权限是否还在 valid / stale
「当前优先级是 Z」 roadmap / blueprint 的当前 milestone 是否仍指向 Z current / outdated
「验证已通过」 跑最便宜的相关验证,或找到最近一次结果 pass / fail / not-run

核对结果写进简报。未知就标 unknown,不猜。计数只算影响下一步的 claim;同一事实的重复表述算一条;branch / head / dirty 合并为一条环境 claim。

4. 决策

  • handover 的 next action 仍然有效且未被阻塞 → 直接采用。
  • 已失效 → 回到计划文档选下一个未完成项;计划也过期 → 只问一个问题。
  • 代码与 handover 冲突 → 按权威顺序判断;先确认冲突是 bug 还是有意中间态。
  • 上一次是在某个 gate 前停下的 → 先完成 gate 的验收,再开新工作。

权威顺序:运行中的代码与测试 > git 历史 > 交接文档 > 计划文档 > 会话记忆。
交接里明确写出的「有意中间态」按 decisions / do_not_redo 处理,不当作缺陷。

5. 简报

接手:<project> @ <branch> <head>
状态:<一句话>
核对:verified <n> / stale <n> / unknown <n>;<关键冲突一句话>
下一步:<一个具体动作,带文件或命令>
风险:<一句话,或 none>

简报是决策产物,不是读书报告。细节留在 handover 或项目文档里。

6. 执行门

  • 下一步清晰、低风险、可回退 → 直接做。
  • 高风险(删除、迁移、权限、密钥、公共接口、不可逆操作)→ 先简报,等确认。
  • 基线验证失败 → 先修或报告,不在坏基线上叠新改动。
  • 发现 handover 与计划冲突且用户意图不明 → 只问一个合并后的问题。

默认不问「你希望我继续吗」;用户说「继续推进」时,清晰低风险就是授权。

7. 收尾

  • 把新的状态写回 .handoff 下的 latest.md,用 handover_chain 指向上一份。
  • 只更新真正变化的源真相;不把 roadmap / blueprint 复制进 handover。
  • 检查是否泄露密钥、token、个人路径。
  • 如果本次切换暴露了重复出现的坑,转给 experience-to-spec,不在本 skill 里堆规则。

出站契约

用户要求「交接给下一个 agent」时,按 交接模板 写;字段定义与质量门见 交接契约。

三条硬约束:

  • 只写 delta:durable docs 用路径引用,不复制。
  • 一个 next action:多个候选写进 open_questions,不并列成菜单。
  • 证据优先:done 必须有文件、commit、测试或产物;没有证据的「已完成」降级为 unknown。

默认写到项目根 .handoff 下的 latest.md;确认 .handoff/ 已在 .gitignore 中。需要跨机器时,由用户显式决定是否提交或同步,不自动改版本控制边界。

与现有 skill 的路由

情况 接谁
需要项目状态、结构、版本治理 butler
有 Blueprint,要执行 next S-T forge
到交付或合并前验收 visible/review
输出太长、需要决策优先 communication
要把这次的教训固化成规则 experience-to-spec

红线

  • 不把 handover 当事实;它只是上一个 agent 的判断。
  • 不为「了解全貌」默认全仓通读。
  • 不在简报前编辑文件。
  • 不问超过一个的澄清问题。
  • 不把 durable docs 复制进 handover。
  • 不写密钥、token、密码、个人路径。
  • 不在高风险、不可逆的操作上自动开工。
  • 不发明项目状态、版本号、完成度。

参考