把当前会话的关键状态整理成临时 Markdown,帮助新会话接手一个明确的后续任务。
安装与准备
在项目目录的终端执行以下命令,安装后在 Claude Code 中输入下方提示。这里选择项目内的可编辑文件安装。
npx skills@latest add mattpocock/skills --skill handoff --agent claude-code
使用 Codex 时,把安装命令最后的 claude-code 换成 codex,对话里把 /handoff 换成 $handoff。如果使用完整的 Claude Code 插件,则选择 /mattpocock-skills:handoff,不要再重复安装文件版本。
在仍保留工作上下文的对话里使用,并说明下一位 Agent 要做什么。交接文件会写入操作系统临时目录;需要长期保存时,应另行移到合适的位置。
第一次使用
把下面的场景和路径替换成你的项目情况,在 Agent 对话里输入:
/handoff
下一个会话只负责检查支付重试逻辑。请记录已确认的原因、已改文件和还没通过的测试,引用现有规格与提交,不重复粘贴全部代码。
怎样推进任务
为下一项工作筛选上下文
交接不是聊天全文压缩。支付重试检查需要知道触发条件、已经排除的原因、相关文件和未通过的检查;早先讨论的配色方案通常无关。把下一轮目标写得具体,能减少接手后重新调查的范围。
引用已有产物
已经存在的规格、计划、ADR、问题和提交用路径或链接引用。只补充这些文件没有表达的当前状态,例如哪个实验尚未完成。这样原文件更新后,不会出现两份互相矛盾的完整规格。
把文件交给新会话
取得临时文件的绝对路径后,在新的 Agent 会话中明确要求先阅读它,再继续指定任务。跨设备或跨目录时,还要确认引用文件能够访问;交接文档本身不会自动搬运代码、安装依赖或提供账号权限。
完成后检查什么
打开文件,确认目标、当前状态、关键引用和建议使用的 Skills 都能理解,敏感信息已经删除。让接手者先概括下一步,能快速发现缺少的重要背景。
常见问题
会直接开启新会话吗? 它生成交接文档,创建新会话属于另一个动作。
文件为什么不在项目里? 默认写到操作系统临时目录,避免给仓库留下临时交接材料。
同一会话继续也要用吗? 工作无需转移时,直接继续通常更简单。
先确认工作是否真的需要搬家
如果你仍在同一工具、同一目录继续同一件事,压缩当前会话通常就够了;handoff 适合换工具、换目录、交给同事,或把一条支线交给另一个 Agent。支线交接时写清主会话仍在做什么,以及支线只负责哪项调查,避免两边同时改同一目标。它产生的是可以带走的文件,不会替你创建新会话,也不会自动复制仓库或账号权限。
打开生成文件做一次“陌生人阅读”检查:下一步目标是否只用一两句就能说清?规格、问题、diff 和实验结果是否以可访问的路径或链接指向原件,而不是整篇复制?未通过的检查、当前分支和不能碰的范围是否写明?删除密钥和临时凭据。新会话先读交接文件,再复述将从哪一步接手;如果它还得重新问你背景,说明交接缺了关键状态。
把一个支线交给新会话
假设主会话正在做账户迁移,你想让新会话只核查无障碍风险。可以输入:“用 handoff 生成交接文档,只交代账户迁移的当前分支、已变更页面、可运行的检查和已知未解决问题;下一会话只做键盘与屏幕阅读器审查,不修改迁移逻辑。引用现有 issue 和 diff,不复制完整讨论。”把得到的临时文件路径明确发给接手者,并确认其能访问同一仓库。
如果接手者读后仍不知道从哪个页面开始、哪些文件不能碰,交接缺少任务边界;如果文档几乎等于整个聊天的压缩版,则删去与无障碍检查无关的背景。敏感账号和临时 token 不应写进去。主会话继续开发时,要避免两边同时修改同一页面;发现范围重叠就重新划分文件或操作。
把摘要安全地交给新会话
如果交接摘要要传给一个新启动的命令行会话,别把含有反引号、$(...) 或引号的长段文字直接拼进 shell 命令。曾有使用 claude-handoff 的用户发现,命令运行了,但新会话收到的路径被悄悄删掉。先把摘要写入文件,再用安全的文件参数或经过检查的读取方式传递;启动后让接手会话复述当前目标、改过的文件、未解决问题及下一步,确认关键信息没有丢。普通 /handoff 生成的文件也值得先打开检查,再结束旧会话。