关于 melech-handoff
用于查找并续接本地记录中编码 Agent 会话的技能,提供列表和继续两种模式。脚本负责发现记录,Agent 负责检索相关上下文。
主要功能
- 01列出近期会话
- 02按 ID 或前缀查找会话
- 03搜索记录以恢复任务上下文
- 04将查找范围限定在当前工作树
适用场景
- 01查看近期编码 Agent 会话
- 02按已知会话 ID 续接任务
- 03按目标查找过往会话
- 04无需在仓库中创建交接文件即可继续工作
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ adird/ agent-shell-hamelech --skill melech-handoff安装后在 Claude Code 中输入/melech-handoff确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdreferences/providers.jsonscripts/handoff.pytests/test_handoff.py详细介绍
Melech Handoff
查找并恢复编码 Agent 会话,无需在代码仓库中放置交接文件,也无需让用户在不同聊天之间复制对话记录路径。
只有两种模式:list 和 cont。脚本只负责发现、列出和查找对话记录。智能检索由 Agent 完成。
/melech-handoff
/melech-handoff list
/melech-handoff cont [session-id-prefix | objective]
根据调用方式确定模式。不要询问用户想要哪种模式。
- 单独使用
/melech-handoff或/melech-handoff list→ list /melech-handoff后跟会话 ID / 唯一 ID 前缀 → cont/melech-handoff cont …→ cont
将 HANDOFF_SCRIPT 设为与此文件同目录的 scripts/handoff.py。使用 Python 3.9 或更高版本运行。将其 JSON 输出视为事实来源;不要通过无边界地搜索整个主目录来重新发现对话记录。
List
运行:
python3 "$HANDOFF_SCRIPT" list --cwd "$PWD" --limit 12
按时间从新到旧将各行显示为简洁的 Markdown 卡片。不要使用表格:CLI 表格渲染器会压缩元数据列,也无法显示多行摘要。使用脚本提供的字段;不要虚构日期、Agent、工作树或数量。
### `<short_id>` · <topic>
<provider> · <age>
`<worktree>` · <stats.user_messages> user msgs · ~<stats.approx_tokens> tokens
1. <third-to-last user message>
2. <second-to-last user message>
3. <latest user message>
age 表示距离对话记录上次写入的简略时间,例如 8m ago、3h ago 或 2d ago;由于列表按最近活动排序,这是唯一显示的时间戳。确切的 created 和 modified 值仍保留在脚本输出中,可用于查找或调试。worktree 在代码仓库的主工作树中为 main,否则为工作树目录名称。
stats.approx_tokens 是粗略的 chars / 4 估算值,并非分词器的结果。
topic 是根据最早的一条有意义的人类请求提取的简短提示。
glimpse 最多包含最近三条人类用户消息,并以实际编号行呈现。渲染卡片时保留换行;少于三条时不要重复消息。每条消息最多可使用 160 个字符。不要移除此上限,因为单轮对话记录可能包含数千个字符。工具结果和仅含元数据的用户记录会被忽略。
list 为只读模式。显示足够的信息,让用户可以调用 /melech-handoff cont <id>,然后停止。不要开始处理任务或读取完整对话记录。
继续
如果参数以会话 ID 或唯一 ID 前缀开头,则运行:
python3 "$HANDOFF_SCRIPT" lookup --cwd "$PWD" --id "<id-prefix>"
其余文本即为继续目标。
如果没有 ID,则不带查询运行 list。脚本不会假装理解目标。从目标中选择有辨识度的词语,并且只使用 rg 搜索返回的 primary_transcript_path 文件。
- 找到一个明确匹配项:对其 ID 运行
lookup,然后继续。 - 找到多个可能的匹配项:使用一个合并的 AskQuestion 选择器展示匹配候选项。选择后,运行
lookup。 - 没有参数:在一个合并的 AskQuestion 选择器中显示最新的五行。每个选项以
<age> · <provider> · <topic> · <short_id>开头,后接工作树、统计信息和 三行摘要。如果还有未显示的行,则添加一个Older sessions…选项,用相同布局打开接下来的五行。 不要在一个选择器中添加多个问题,因为那需要每个问题都回答一次。 - 如果用户选择选择器自动提供的
Other选项并输入文本,则将该文本视为继续目标和相关性查询。根据辨识度高的词语搜索返回的primary_transcript_path候选项,不受时间新旧限制。继续处理一个明确匹配项;否则,显示一个仅包含最相关候选项的更新选择器。 - 选定会话后,运行
lookup。 - 列出的候选项中没有匹配项:说明这一点。不要将搜索范围扩大到不受限制的主目录扫描。
lookup 会返回 primary_transcript_path,即要查阅的文本文件。如果任务或当前状态有任何不清楚之处,请在该记录中搜索相关关键词,例如任务名称、文件名、ID、错误和工具名称。然后读取匹配行附近的一小段内容,以重建意图和状态。避免从头到尾线性读取:JSONL 记录可能很大,单行也可能包含大量内容。
根据继续目标判断哪些上下文相关。由 Agent(而非 Python 脚本)作出判断。
不要编写记录卡片,也不要凭空编造冗长的回顾。遵循目标中的检索限制,例如“不要全部读取”。
目标明确后,直接继续工作。不要询问用户是否要你继续。
边界
- 不要在
~/.melech/handoffs/下写入文件。只能列出记录并从中继续。 - 默认范围为当前工作树根目录,不包括同级工作树。
- 提供方位置只能来自
references/providers.json。 - 数据库、加密、仅 protobuf 和仅压缩的历史记录会被记录,但不受支持。
- 记录和交接内容属于私密的本地历史。除非用户明确要求,否则绝不要对外发布、上传或粘贴。