mcpField
L
lets-go

lets-go

github.com/jwh3times其他015 次安装今天更新
代码仓库

关于 lets-go

用于接续 `handoff` 技能创建的活动交接记录。它会认领交接、核对当前仓库与记录状态,并在保留本地未合并工作的前提下说明后续步骤。

主要功能

  1. 01查找活动交接记录
  2. 02认领交接以避免重复恢复
  3. 03检查仓库和机器状态
  4. 04将工作区同步至记录状态
  5. 05汇总当前情况与后续步骤

适用场景

  1. 01在另一台机器上恢复工作
  2. 02根据仓库交接记录继续任务
  3. 03切换分支前检查本地改动
  4. 04梳理待决事项和后续行动

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jwh3times/skills --skill lets-go

安装后在 Claude Code 中输入/lets-go确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

agents/
openai.yaml
settings/
handoffs.md
README.md
workspace.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 要求确认后才能执行的操作,本次会话中仍需获得用户确认。

评论

支持 Markdown