SuperAPI AI 工具集

melech-handoff

编程与开发

查看项目

更新于 10-15 08:27

技能介绍

Melech Handoff 用于在不把交接文件放进代码仓库、也不让用户手动复制记录路径的前提下,查找并续接编码智能体会话。它支持 Cursor、Claude Code、Codex、Gemini 以及其他本地智能体。

用途 该技能解决跨会话、跨智能体续接工作的问题:当需要找到最近的会话记录、恢复某个未完成的任务,或在不同聊天之间传递上下文时使用。

主要能力 只有两种模式:list 和 cont。脚本本身只负责发现、列出和查找会话记录,真正的智能检索由智能体完成。

使用方式 调用形式包括: /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 表格渲染会挤压元数据列,也无法显示多行摘要)。使用脚本字段,不虚构日期、智能体、工作树或计数。卡片格式为:

<short_id> · <topic>

<provider> · <age> <worktree> · <stats.user_messages> user msgs · ~<stats.approx_tokens> tokens

  1. <倒数第三条用户消息>
  2. <倒数第二条用户消息>
  3. <最新用户消息>

age 是记录最后写入以来的紧凑时间,如 8m ago、3h ago、2d ago,这是唯一显示的时戳,因为列表按最近活动排序;精确的 created 和 modified 值仍保留在脚本输出中供查找或调试。worktree 对仓库主工作树显示为 main,否则显示工作树目录名。stats.approx_tokens 是 chars / 4 的粗略估算,不是分词器结果。topic 是从第一条有意义的人类请求中提取的简短提示。glimpse 最多包含最近三条人类用户消息,以真实编号行呈现;渲染卡片时保留换行,消息不足三条时不重复。每条消息最多 160 字符,不应取消该上限,因为单条记录轮次可能长达数千字符。工具结果和仅含元数据的用户记录会被忽略。

list 是只读操作。展示足够信息让用户能调用 /melech-handoff cont <id> 后即停止,不开始工作,也不读取完整记录。

cont 模式 如果参数以会话 ID 或唯一 ID 前缀开头,运行: python3 "$HANDOFF_SCRIPT" lookup --cwd "$PWD" --id "<id-prefix>" 剩余文本作为续接目标。

如果没有 ID,则运行不带查询的 list。脚本不假装理解目标,而是从目标中选取有辨识度的词,仅在返回的 primary_transcript_path 文件中用 rg 搜索。

  • 明确匹配一条记录:对其 id 运行 lookup,然后继续。
  • 有多条可能匹配:用一个合并的 AskQuestion 选择器展示候选,选择后运行 lookup。
  • 无参数:在一个合并的 AskQuestion 选择器中展示最新五行。每个选项以 <age> · <provider> · <topic> · <short_id> 开头,后接 worktree、stats 和三行摘要。如果还有未显示的行,追加一个 Older sessions… 选项,用相同布局打开接下来五行。不要在一个选择器中添加多个问题,因为那需要每个问题各一个答案。

如果用户选择选择器的自动 Other 选项并输入文本,将该文本视为续接目标和相关性查询,在返回的 primary_transcript_path 候选中搜索有辨识度的词,不受时间新近程度限制。若只有一条明确匹配则继续;否则展示一个仅含最强相关候选的刷新选择器。

选定会话后,运行 lookup。

在已列出的候选中无匹配时,如实说明,不要扩大为无限制的家目录扫描。

lookup 返回 primary_transcript_path,即要查阅的文本文件。如果任务或当前状态有任何不清楚之处,在该记录中搜索相关关键词,如任务名、文件名、ID、错误和工具名,然后读取匹配行附近的小窗口以重建意图和状态。避免从头到尾线性读取:JSONL 记录可能很大,单行可能包含大负载。

用续接目标判断哪些上下文相关。做这个判断的是智能体,不是 Python 脚本。

不要写卡片,也不要编造长篇回顾。遵循目标中的检索约束,例如“不要全部读取”。

目标明确后直接继续工作,不要询问用户是否希望继续。

适用场景

  • 查找最近的编码智能体会话记录。
  • 通过会话 ID 前缀或目标描述恢复某个会话。
  • 在 Cursor、Claude Code、Codex、Gemini 等本地智能体之间续接工作。

限制

  • 不写入 ~/.melech/handoffs/ 下的文件,只从记录中列出和续接。
  • 范围默认限于当前工作树根,不包括同级工作树。
  • 提供方位置仅来自 references/providers.json。
  • 数据库、加密、仅 protobuf 和仅压缩的历史会被记录但不支持。
  • 记录和交接内容属于私有本地历史,未经用户明确指示,绝不发布、上传或粘贴到外部。