关于 handover
用于准备 Agent 交接并确保项目持久记录保持最新的技能。它先检查收集记录的新鲜度,可复用受管理设计运行的续接信息,并支持轻量提示词或完整上下文包。
主要功能
- 01交接前检查收集记录是否最新
- 02复用受管理设计运行的续接信息
- 03选择轻量或完整交接输出
- 04编写临时交接上下文包
- 05引用持久记录而不重复其内容
适用场景
- 01跨 Agent 会话继续工作
- 02在阶段边界交接工作
- 03调度结束后准备上下文
- 04恢复受管理的设计运行
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ davidlee/ doctrine --skill handover安装后在 Claude Code 中输入/handover确认已加载。
详细介绍
交接
先捕获,再继续:确保持久化采集结果是最新的,然后输出下一位 Agent 将从中开始的临时续接内容。
指导原则:现有持久化产物应已能为交接提供合适的上下文。这项技能旨在通过补充这些持久化产物未涵盖的临时指导来提高令牌效率,并确认它们状态良好。
始终先采集——两个分支都适用
输出任何内容之前,先确认捕获流程是最新的:
- **主导切片:**其中的
## Harvest必须是最新的——fresh-as-of时间戳与当前生命周期位置(阶段/子阶段 + head commit)一致。如果已过时,先运行/harvest——不要重新调查采集流程已经覆盖的内容。 - **其他主导产物(RFC、规范、评审等):**仍要运行捕获流程——根据
lib:reference/harvest.md§5,将已产出/已了解/待解决的内容分别归入对应位置; 方向梳理则退而使用实体查询。
阶段状态准确,以及工作已提交(或已注明其未提交状态),仍是必须相邻完成的真实性检查。
设计工作提前结束流程
受管理运行中的切片设计已有自己的续接信息。准备使用拨盘前,先确认是否有正在运行的流程:
doctrine design show <SLICE> --format status
**命令有输出——提前结束流程。**不要编写交接包或续接提示词;两者都会重述运行中已有的信息。
-
上述采集流程会使持久化记录保持最新。然后落实本次会话中已确定、但运行中尚未记录的内容——状态报告会列出未完成的义务,以及自声明基线以来的变更;请用当前掌握的信息核对这两项,而不是凭记忆判断。
-
输出恢复命令作为续接内容:
doctrine design resume <SLICE>该命令以切片为依据,而非运行 ID,因此在不同运行之间仍然有效。添加
--run <uid>,可在不匹配时拒绝执行,而不是悄悄恢复到另一个运行。 -
只有在你能明确指出某些上下文、且运行和持久化记录都无法体现时,才补充说明文字。阶段、游标、开放问题、决策和章节评审状态都在运行中;一旦写下它们的副本,就会开始过时。
**没有运行——命令会报错,且错误会说明你遇到的是哪种情况。**从未启动过:没有可提前结束并接续的运行,因此继续使用拨盘。或者,design.md 存在但快照已丢失;错误会指出 doctrine design start <SLICE> --from-design。**不要运行它来人为创建交接内容。**它会根据撰写的内容创建新运行——不会继承任何证明、回执或关卡许可——因此交接其引用会夸大它实际包含的信息。请报告丢失情况,并使用拨盘完成交接。
这适用于受管理的设计运行。其他内容都没有可提前结束并接续的运行。
拨盘
一种技能,两种强度:
- light——打印续接提示词;不写入任何内容。
- full——写入
handover.md上下文交接包,并打印指向该文件的说明。
根据上下文选择默认模式:阶段边界、调度结束,或复杂的进行中状态 → full;简单的“在新上下文中继续” → light。用户的明确要求优先。
Light:续接提示词
打印:
/route
(path to the governing artifact and the next obvious task)
如果下一项任务涉及实现,请列出要阅读的具体产物(design.md、plan.toml、当前运行阶段说明),并指出下一位 Agent 在宣布准备就绪前必须评估的任何未解决假设或设计问题。续接提示词必须引用主导切片 ## Harvest 中的开放 ID——开放的 DEC / QUE / ASM(决策/问题/假设)——以便下一位 Agent 继承当前开放事项,而非过时的描述。
Full:上下文包
编写 .doctrine/*/<nnn>/handover.md,作为一次性、被 git 忽略的“从这里开始”文档,供接手下一阶段或以其他方式继续工作的 Agent 使用。
这是为下一次会话准备的脚手架,不是持久记录:持久事实应保存在已持久化的产物、notes.md 或记忆库(doctrine memory)中;交接文档只指向这些内容,并说明眼下的工作。
对于一个阶段:
- 阅读刚完成的
state/.../phases/phase-NN.md(发现、后续交接)以及切片notes.md的## Harvest部分,了解已产生/学到/尚未解决的 ID。 - 根据
plan.toml确认下一阶段的范围(EX/VT 是权威依据)。 - **在 dispatch 收尾时:**在交接包中嵌入
slice verify-vt <id>的 VT 摘要块,以及一行回归状态(来自 verify 节拍的check regression diff),在交接时而不是审计时,明确指出任何UNCHECKABLE/WAIVED/Fail缺口。 - 将以下各节写入
handover.md - 打印发给下一位 Agent 的指令(包含
handover.md路径)
对于其他产物:
- 酌情调整——仍须先执行上述 harvest 步骤
- 在最相关产物的文件夹中编写或替换
handover.md - 打印发给下一位 Agent 的指令(包含
handover.md路径)
必须提供明确的启动指令(例如 /route),并附上 handover.md 路径。
然后:停止
结构(阶段交接包需包含的各节)
- 当前情况 — 阶段状态阶梯和提交引用;哪些已完成、当前进展如何。
- 阅读清单 — 设计/计划/笔记、相关其他产物/代码、关键源文件
file:line的指引。说明下一位 Agent 应阅读什么,以便高效建立上下文。 - 产物/指引 — 范围/设计/计划/笔记/规格。可选/参考资料。
- 地形 — 可继续推进的现有基础,不要另起炉灶;例如上个阶段构建的内容。指向其他地方的描述,或在没有描述时进行概述。
- 后续操作 — 明确写出
doctrine slice phase <ID> PHASE-NN --status in_progress(status是--status标志,不是末尾的位置参数)/其他显而易见且紧迫的下一步。 - 流程与注意事项 — 风险、未知事项和未决决策。流程护栏(命令、填写表单、TDD、提交、切换状态等)。
- 环境说明 — 构建/门禁/lint 细节;需保留、不做改动的既有脏文件。
规则
- 交接文档会被 git 忽略并删除——切勿在其中放置持久事实的唯一副本。
- 链接到持久化产物,不要重复其内容。
- 明确标注过时笔记已被取代;不要留下互相矛盾的指导。
- 不要总结技能中的命令或流程。 技能可能会被跳过。意外难免。 务必引用技能;描述相关状态。
- 简洁。可使用片段。读者是 Agent,不是人工审阅者。