用途:在上下文被动压缩之前主动产出 handoff.md,作为下一会话 AI 接力的入口文档,让新会话不依赖回忆、只读这一份文件就能继续工作。它不是会话日记,目标读者是另一个 LLM 会话。
何时写:上下文使用率超过 60% 且任务要继续、即将触发压缩、长跑任务到自然断点、主动切换主题、跨工作日续接、任务复杂且试错多。何时跳过:单文件改动一次提交收尾、纯 Q&A、一次性脚本、纯探索性 chat、任务小到从头开始成本更低。空的 handoff 比没有更糟。
文件位置:默认 handoff.md 放仓库根目录;并行多个未完成任务时放 .handoff/<slug>.md,每任务一份。默认 gitignored,跨多人需 review 时手工豁免。
四个分节:Completed(确实跑通、有验证证据的事)、Blocked(卡在哪、试过什么、为什么不行)、Next steps(新会话第一动作,具体到文件加动作)、Context(代码和 git 看不出的环境状态、决策 why、被否决方案、外部依赖怪癖)。每条一到三句话,引用路径、行号、commit SHA。
写作规则:边干边写,决策当下追加;引用而不要复制代码;删掉 git log 能告诉你的内容;显式记录失败尝试;不写小说。反模式包括时间线流水账、复制 git log、把背景写成长文、决策不分节、多份 handoff 互相 cross-ref。
节奏:决策刚做完、失败刚否决、卡点刚明确时新增条目;超过 200 行整体重写;任务完成后合到 PR 描述或 commit body 并删除文件。session 中增加 0 条是正常的。
新会话接手:先检查仓库根目录 handoff.md 和 .handoff/ 目录,完整读一遍,用一句话向用户确认从 Next steps 第 1 项开始,确认后执行并保持同步更新;若 handoff 过时,先 git log -10 对一下,把不一致处问用户而不是猜。
与其他技能集成:implementation-notes 记录单 spec 的判断细节,handoff 处理跨会话状态;plan 文档负责架构方案,handoff 只提当前在执行哪一步;git-commit 的 commit body 写 why,handoff 只留指针。
最小模板含 Last updated、Branch、Spec/Plan 及四个分节,四节标题即使为空也保留。质量检查:每节不空或显式声明 none;Completed 有验证证据;Blocked 含试过什么与为什么不行;Next steps 具体到文件加动作;Context 不重复 README/package.json;整份文档新会话 60 秒内读完。