关于 handover
用于将工作交给另一个 Agent 会话的技能,通常会准备工作树、交接文档和单行起始提示词。它引导当前会话记录决策、提交并推送工作,然后确认新会话已启动。
主要功能
- 01准备专用工作树和分支
- 02收集仅维护者掌握的决策与输入
- 03编写交接文档和后续步骤
- 04提交并推送工作树中的更改
- 05用单行提示词启动新会话
适用场景
- 01将已完成工作交给编排 Agent
- 02在新的 Agent 会话中继续工作
- 03为非大型工作明确后续步骤并交接
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ yahyabedirhan/ skills --skill handover安装后在 Claude Code 中输入/handover确认已加载。
附带文件agents/openai.yaml
详细介绍
交接
交接会启动另一个会话(通常不在当前会话中),以继续这项工作:可以是负责推进工作的编排器,也可以是接着思考的新会话。你可以在任何时候、从任何会话进行交接。新会话只能了解仓库中已有的内容,并会将其启动提示视为维护者的许可,因此应在交接时敲定当前会话能够做出的所有决定。新会话启动后,不要再去查看进展:它的交付成果(例如编排器的拉取请求)就是维护者收到的反馈。
掌握上下文的会话应在交接前加以利用。思考会话应先用 /to-spec 和 /to-tickets 编写规格说明和工单,再进行交接,否则只交接未经整理的思考内容,会让下一个会话不得不从头整理。只有维护者提出要求时,才将活动会话的工作交给一个新会话。
参数
<worktree-tool>:用于创建和释放工作树的工具,例如treehouse,或普通的 git 工作树。<session-host>:Agent 会话运行的位置,例如herdr、Claude Code Desktop、Codex Desktop。<agent>:启动新 Agent 会话的命令,例如claude或codex,以及其标志。
步骤
-
**为这项工作创建专属的工作树和分支,**并将默认分支上属于这项工作的未提交更改移入其中,其余更改留在原处。在新会话启动之前,让本会话继续使用自己的检出和分支,以免维护者的检出在其不知情时被切换。使用绝对路径写入工作树,并在工作树中通过
git -C <worktree>运行 git。- **如果尚未创建:**使用
<worktree-tool>创建。基于远程默认分支创建分支;如果这项工作依赖尚未推送的本地默认分支提交,则基于本地默认分支创建。
- **如果尚未创建:**使用
-
**趁维护者还在时,收集交接所需的所有只有维护者掌握的信息:**答案、账号、选择。不要在聊天或文件中泄露密钥,并在交接说明中注明密钥的存放位置。
-
**使用
/handoff编写交接说明,**并在其中写明工作树和分支、规格说明和工单,以及新会话能否联系本会话。- **如果这项工作不属于一项工作计划,因此没有规格说明或工单:**让交接说明写明下一步该做什么。
- **如果新会话无法联系本会话:**当本会话在桌面应用中运行,或在
<session-host>无法向其发送提示的任何其他环境中运行时,本会话都无法接收消息。让交接说明告知新会话自行决定未解决的问题,并在拉取请求中列出这些问题。
-
**确保问题跟踪系统中包含交接说明提到的规格说明和工单:**托管问题跟踪系统中的问题,或本地问题跟踪系统中工作计划文件夹里的文件。如果这项工作不属于工作计划,则跳过此步骤。
-
**提交并推送工作树中的所有内容,**直到工作树干净且分支与远程分支一致。每次提交和每次推送都要分别调用,因为如果命令链中的其他内容触发拒绝规则,整条命令链都会被阻止。
- **如果调用中断或被拒绝:**重试前先检查日志,因为提交或推送可能已经成功。
-
**将启动提示写成一行,**让新会话从交接说明开始。多行提示会作为粘贴文本而非命令传入,因此不会启动其技能;其余所有内容都写入交接说明。
新会话 启动提示 工作计划的编排者 /orchestrate-with-handoff <交接说明路径>继续处理工作计划 从 <交接说明路径> 处的交接说明继续。不属于工作计划的工作 从 <交接说明路径> 处的交接说明继续:<一句话说明要做什么>。这句话要为新会话提供一个起始任务。- **当
<agent>是 Codex 时:**写成$orchestrate-with-handoff,因为 Codex 使用$启动技能。
- **当
-
**在
<session-host>中启动<agent>,**并传入工作树、主题、新会话的角色和启动提示。 -
确认它正在处理提示中的任务:
<session-host>报告它正在工作、维护者确认它已启动,或本会话在此处运行该任务。告知维护者它的运行位置,然后停止。