holden323/ldm-skill · Archived

ldm-session-handoff

AI交接班三件套:会话存档标准流程。用户说「记录聊天记录」「准备退出重启」「会话存档」 「给我一个重启提示语」「对话? 三步缺一不可:①对话? ②路由器(? 所有路径?

Installation

$ npx skills add holden323/ldm-skill --skill ldm-session-handoff

Summary

导出会话原文、生成任务路由器和重启提示语,帮助长任务跨会话恢复。用户说“会话存档”“保存聊天记录”“导出对话全记录”“生成路由器”“准备退出重启”或“给我重启提示语”时使用;普通文件归档不使用。 Export raw conversation transcripts, generate task routers…

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from holden323/ldm-skill.

npx skills add holden323/ldm-skill

Browse all from holden323/ldm-skill

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Declared
Cursor Not declared
Codex Declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 31
License LICENSE
Default branch main
Open issues 0
Status Archived

Skill metadata

Parsed from SKILL.md frontmatter.

Version1.0
Declared agents claude-code codex

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 10,006 B
  • docs SUMMARY.md 473 B

History

  1. First recorded snapshot · 4 installs

SKILL.md

AI交接班:会话存档三件套

AI 没有记性,但可以交接班。轮班制工作里,交接失败从来不是下一班笨, 是没有结构化的交接件。这套流程就是给你的 Agent 建的交接班制度。

每次会话结束(或中途要重启)时,产出两个文件 + 一段提示语:

产物 作用 给谁看
① 对话全记录 从数据库逐条导出的原始对话,可追溯、可核查 人(档案原件)
② 路由器 关键决策、产出清单、当前进度、待办,一页看完 人和AI(导航图)
③ 重启提示语 一段文字,贴进新会话即恢复全部上下文 AI(交接单)

铁律总览(违反任何一条 = 交接失败)

  1. 只有两个文档:全记录 + 路由器。没有第三个"摘要"文件——它跟路由器重复。
  2. 对话原文必须真实导出:从数据库逐条复制。❌ 让 AI 凭记忆写"对话摘要"冒充档案

——AI 转述会丢细节、甚至编造。恢复上下文需要原件,不是转述。

  1. 输出顺序固定:先写文件 → 立刻报告绝对路径 → 最后发重启提示语。

写了不报路径、或跳过前两步直接给提示语,都算事故。

  1. 所有路径必须是绝对路径,不能用相对路径——新会话的工作目录可能不同。
  2. 三步缺一不可。只给重启提示语 = 只交了交接单,档案和导航图都丢了。
  3. 路由器实时更新:每个关键节点(新素材、方案确认、完成一批产出、发现新问题)

立刻写入路由器文件,不能等会话结束才补写。

  1. 做不到就明说:导不出完整原文就直接说"只能拿到X条",标"待补存"。不装完成。

存档目录

{你的存档根目录}/{YYYY-MM-DD}/
├── {YYYY-MM-DD}_对话全记录_{主题}.md   ← Step 1,先写这个
└── {YYYY-MM-DD}_路由器_{主题}.md       ← Step 2

建议放在你自己的知识库目录下,按日期归档。示例:~/Documents/session-handoff/2026-08-26/。

Step 1:对话全记录

文件名:{YYYY-MM-DD}对话全记录{主题}.md

导出方案 A:数据库直读(首选)

本仓库自带导出脚本 scripts/export_transcript.py,支持 Hermes Agent 的 ~/.hermes/state.db:

# 列出今天的会话,找到 session_id
python3 scripts/export_transcript.py --list --date 2026-08-26

# 全量导出指定会话
python3 scripts/export_transcript.py --session <session_id> -o 对话全记录.md

其他 Agent 没有现成脚本时,用 sqlite3 手动读你自己的会话库(思路通用): 按时间筛出目标 session → 按 id 升序取全部 user/assistant 消息 → 写入 markdown。 注意过滤已删除/已压缩的消息标记。

导出方案 B:会话检索工具分页滚动(备选)

Agent 自带的会话搜索工具有两个坑:

  • 进行中的 session 可能搜不到(索引延迟)
  • 整卷读取大 session 时通常只返回开头和结尾各一小段

已知 session_id 时用滚动绕过:先读一次确认范围,然后每次取返回窗口里最后一条 消息的 id 作为下一个锚点,反复向后滚,直到没有更多消息。

时间成本参考:100 条 ≈ 5 次滚动约 2 分钟;300 条 ≈ 15 次 ≈ 5 分钟。

筛选与截断规则

  • 只存 user / assistant 两类消息
  • ❌ 工具输出不存:API 返回、JSON、命令输出都不是对话原文,混进来才是"文件过大"的真凶
  • 单条消息超过 3000 字截断到前 3000 字,标注 [已截断]
  • 输出格式:## 用户 / ## 助手 交替,文件头注明 session_id、起止时间、消息数

安心条款:数据不会丢

原始对话永久存在 Agent 的本地数据库里,不会被自动删除或压缩。即使本次导出失败, 标"待补存"即可,数据一直都在。但下一个会话开始时若有"待补存"标记,必须在第一条 回复里补导,不许拖延。

Step 2:路由器

文件名:{YYYY-MM-DD}路由器{主题}.md

# {YYYY-MM-DD} {主题} — 路由器

> session_id: xxx
> 时间:HH:MM - HH:MM

## 关键决策
1. (做了什么选择,不超过10条)

## 产出清单
| 文件 | 绝对路径 | 状态 |

## 外部链接
| 文档 | 链接 |    ← 只写最终版本,不写中间版本

## 当前工作进度 ★
(正在进行但未完成的事:素材绝对路径、做到哪一步、下一步是什么)

## 待办
1. (带具体数字和状态)

## 经验教训
1. (只写本次新发现的,不重复已有)

★ 当前工作进度是路由器的灵魂。 两次真实事故的教训:

  • 用户给了两个素材、正构思选题,路由器没记。重启后完全丢失上下文,

用户质问"你知道我们今天上午一直在做什么吗"。 规则:哪怕只是"看了素材、还没动笔",也必须记素材路径+进度+下一步。

  • 某次只存了路由器、没存全记录,一整套创作过程永久丢失,无法复现方法论。

规则:路由器和全记录必须同时存,只存路由器 = 丢信息。

Step 3:重启提示语(定稿格式)

继续{任务描述}。

上次进度:
  {已完成的产出,带具体数字}

本次待做:
  1. {待办事项,带具体数字和状态}

读以下文件恢复上下文:
  1. {绝对路径}
  2. {绝对路径}

铁律提醒:
  {本 session 发现的关键规则速查}

动笔前必读:
  1. {绝对路径,缺一不可}

要求:

  • 详细到不需要再搜索文件——所有路径绝对路径,待办列出具体数字和状态
  • 必须直接发到对话里给用户,不能只说"在文件里"
  • 顺序执行铁律 #3:文件写完 → 立刻报告所有文件的绝对路径 → 最后发提示语

收尾自检(长会话必做,10秒)

长会话收尾时任何模型都会飘——注意力被前面的内容占满,指令遵循会衰减。这不是能力问题, 是会话末尾的通病,所以收尾后固定做三个机械检查,检查的是产物不是模型:

  1. 查来源标记:全记录文件头必须含「直读逐条导出,非AI摘要」字样。没有这行

= 这份"档案"是凭记忆编的,删掉重跑脚本。

  1. 查消息数量级:聊了一下午的会话导出来只有几条消息?肯定漏了。数量级对不上

就重新 --list 核对 session_id 是否选对。

  1. 查三件齐全:两个文件的绝对路径都报告了吗?重启提示语发了吗?缺任何一样

回去补,不要嘴上说"已完成"。

给用户的话术提醒(可选):显式点名比自动触发可靠——「用 ldm-session-handoff 给我 存档」比一句「存档」更稳,任何模型上都成立。

踩坑史时间线(勿重蹈)

阶段 事故
早期 只存摘要不存原文;谎称"没法中途导出";把"文件太大"当借口(真凶是把工具输出混进了原文)
中期 路由器漏记进行中工作致上下文丢失;跳过前两步直接发提示语被纠正;提示语含糊导致重启后还要二次找目录
后期 只存路由器不存全记录 → 创作过程永久丢失;写了文件不报路径 → 用户问了才报
解法 发现数据库直读方案,绕开会话检索工具的截断和搜不到的一切限制

适配其他 Agent

导出机制与具体 Agent 无关,只换 Step 1 的数据源。先探测本机类型,再选脚本:

Agent 会话存储格式 用哪个脚本
Hermes SQLite ~/.hermes/state.db scripts/export_transcript.py
Claude Code JSONL ~/.claude/projects/<目录编码>/<sessionId>.jsonl scripts/exportjsonltranscript.py --agent claude
Codex JSONL ~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl scripts/exportjsonltranscript.py --agent codex

注意(2026-08-29 实测):

  • Claude Code 和 Codex 都用 JSONL 行存储,不是 SQLite——前者按工作目录分目录存

sessionId.jsonl,后者按日期嵌套 rollout 文件。exportjsonltranscript.py 已覆盖 两家的真实格式(过滤 tool_result / thinking / 工具调用 / 环境注入消息)。

  • 某家 Agent 改了存储格式导致导出报错时,用 --inspect <文件> 看记录类型分布,

自行核对提取逻辑;没有数据库也没有 JSONL 的 Agent 退回方案 B(检索工具分页滚动), 铁律不变。

  • 本机同时存在多家 Agent 数据时,--agent auto 会拒绝猜测,必须显式指定。

适用边界

适合:多会话、多项目并行;长任务跨天推进;会话动辄几万 token 的重度用户。 不适合:单会话就能干完的一次性问答——别为仪式感增加成本。

版本记录

  • V1.0(2026-08-29):首个版本化版本。新增 Claude Code / Codex 的 JSONL 导出

适配器(实测通过);触发词收窄(裸"存档"不再触发,避免文件归档类请求误触发); 按 dbs-skill-maker 标准补结构校验与行为验证。

  • (更早的历史改进见 git log 与「踩坑史时间线」。)