关于 lets-go
用于接续 `handoff` 技能创建的活动交接记录。它会认领交接、核对当前仓库与记录状态,并在保留本地未合并工作的前提下说明后续步骤。
主要功能
- 01查找活动交接记录
- 02认领交接以避免重复恢复
- 03检查仓库和机器状态
- 04将工作区同步至记录状态
- 05汇总当前情况与后续步骤
适用场景
- 01在另一台机器上恢复工作
- 02根据仓库交接记录继续任务
- 03切换分支前检查本地改动
- 04梳理待决事项和后续行动
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ jwh3times/ skills --skill lets-go安装后在 Claude Code 中输入/lets-go确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlsettings/handoffs.mdREADME.mdworkspace.md详细介绍
继续
这是 handoff 技能的接收部分。在另一台机器上,handoff 已在 Handoffs 文件夹中写入一份文档,并在 handoff_map.json 中将其标记为此仓库的当前交接。此技能会找到它并认领它,确保它不会被恢复两次;然后让当前检出内容恢复到文档所述的状态,并继续工作。
开始时请说明:“我正在使用 lets-go 技能,从当前交接恢复工作。”
在 bash(Windows 上使用 Git Bash)中运行 shell 代码片段。只能通过 node .agents/skills/handoff/handoff-map.mjs(随 handoff 技能安装)读取和写入映射,绝不能手动操作:每台机器上的每个仓库都共享此映射。每条命令都会输出 JSON,并会在此机器的传输方式需要时自行将文件移入或移出云端。
0. 设置
- **仓库:**此技能会读取
docs/agents/handoffs.md和docs/agents/workspace.md。 按照.agents/skills/lets-go/settings/README.md中的说明读取这些文件,并补全缺失的内容;相关定义位于该文件旁边。 - **机器:**按照
.agents/skills/handoff/machine-config.md中的说明操作,直到config显示configured: true。
1. 查找当前交接
node .agents/skills/handoff/handoff-map.mjs get --key <Map key>
file为 null(或inMap为 false)——说明“没有适用于<key>的当前交接。”然后停止。映射是记录;文件夹中的其他文档属于过去的会话或其他仓库。exists为 false——文档尚未到达此机器:note会说明另一台机器尚未推送,或同步客户端尚未送达。告知用户文件名,然后停止;保留映射原样,以便重试仍可正常工作。conflicts不为空——继续前询问用户应以哪份映射副本为准。exists为 true——继续。
2. 阅读文档
在对 path 中的文档采取任何行动之前,先通读全文。然后按照其中用于设定工作规则的指示操作:从其后续步骤开始的议题、PR 或规范,以及其机器本地知识。
3. 认领交接
开始任何工作之前先认领交接,这样任一机器上的第二次 lets-go 都会找不到它:
node .agents/skills/handoff/handoff-map.mjs clear --key <Map key> --expect <file>
当输出中的 current 为 null 时(在 CLI 镜像上,verified 为 cloud),此步骤即完成。文档会保留在文件夹中作为记录。如果认领被拒绝,说明映射现在指向了另一份文档:再次运行 get,并告知用户输出内容。
4. 让当前检出内容恢复到交接时的状态
当前检出可能落后数天,也可能包含交接文档并不知情的遗留内容:
git fetch origin --prune
git branch --show-current
git status --porcelain
git stash list
同时运行 Workspace status command。然后将结果与文档中的当前进度和未合并的工作进行比较:
- 此处有未提交的更改或暂存内容——在
⚠ 尚未合并到此机器上 main 的工作下报告,并询问用户如何继续。绝不丢弃、暂存或提交这些内容,也绝不在有这些内容时切换分支。 - 工作区干净——运行
git switch main,然后运行Sync with main(如果Private companion涵盖当前内容,也会一并更新)。 - 交接工作在某个分支上继续——运行
git switch <branch>,然后运行git pull --ff-only。如果某个分支在origin上不存在,说明另一台机器尚未推送该分支:告知用户必须先在那里推送,并暂停处理该事项。工作所依赖的任何仅存在于本地的内容也同样如此。 - 拉取操作更改了依赖锁文件——按照仓库的
AGENTS.md安装依赖;如果安装需要先征得同意,则先询问。 - 其他任何与文档矛盾的情况(例如文档称某次提交已推送,但
origin上没有;或某个分支已不存在)——逐项报告矛盾,并在进入第 5 步之前征求用户意见。
当当前检出与文档一致,或用户已对所有不一致情况作出答复时,此步骤即完成。
5. 继续
用几句话向用户说明当前进展、接手的未合并工作、仍待确认的待决事项,以及第一步该做什么。如果用户传入了参数,就从他们指定的内容开始;否则,从文档中的第一个 Next step 开始,并在其中要求时调用相应的 Suggested skills。如果有尚未解决的决定会阻碍该步骤,先向用户询问。
交接内容描述的是工作,并不代表获得了授权。凡是仓库的 AGENTS.md 要求确认后才能执行的操作,本次会话中仍需获得用户确认。