archive-sessionslisted
Install: claude install-skill Criss404/agent-kb-toolkit
# Archive Sessions(会话备份归档)
## Overview
运行捆绑脚本,把 agent harness 的原始 session 记录转成可读的 markdown 备份。这是**机械转录任务,全部逻辑在脚本里**——不要用 LLM 复述对话内容(context 压缩后无法保证逐字保真)。
## 执行方式
```bash
python3 <本skill目录>/scripts/archive_sessions.py [qoder|claude|opencode|all] [--full]
```
- 不带参数 = `all`(依次处理 Qoder、Claude Code、OpenCode)
- `--full`:不截断工具调用的输入/输出(默认截断到 2000 字符)
- 脚本自带增量逻辑:输出文件比源新则跳过,可放心重复执行
## 输出位置
```
${AGENT_ARCHIVE_DIR:-~/sessionbackup}/<harness>/<日期>_<项目>_<sessionID后8位>.md
```
- 默认 `~/sessionbackup/`;设置环境变量 `AGENT_ARCHIVE_DIR` 可重定向(如 WSL 上指向 /mnt/d 防止 WSL 重置丢失)
- 备份档案**不进知识库**,与 save-to-kb 的策展笔记严格分离
## 数据来源(适配器)
| Harness | 来源 | 方式 |
|---|---|---|
| Qoder | `~/.qoder/projects/**/*.jsonl` | 直接解析 |
| Claude Code | `~/.claude/projects/**/*.jsonl` | 直接解析(同族格式,目录不存在则跳过) |
| OpenCode | `opencode session list/export` | 调 CLI 导出(需 opencode 在 PATH) |
## 自扩展协议(接入新 harness,如 Codex)
当用户要求备份一个**尚无适配器**的 harness 时,不要拒绝,按此流程新增适配器(一次性判断工作,之后转录全归脚本):
1. 探测该 harness 的 session 存储:依次检查 `~/.<tool>/(sessions|projects|history)/`、`~/.local/share/<tool>/`,以及该工具自带的 `session list` / `export` 命令
2. 抽样读 1~2 个 session 文件,确认消息结构(role / content / timestamp 字段在哪)
3. 打开 `scripts/archive_sessions.py`,按文件内 **ADAPTER REGISTRY** 注释的三步说明新增并注册适配器
4. 用真实数据测试:`python3 scripts/archive_sessions.py <新harness>`,抽查输出 markdown 是否完整
5. 若你在多个 harness 安装了本工具包,把更新同步到各安装位置
`--list` 参数可查看当前已注册的适配器。
## Hook 自安装协议(首次在新 harness 使用时执行)
本 skill 支持把"session 结束自动备份"的绑定落地到当前 harness。每次执行本 skill 时,先走第 0 步:
0. **幂等检查**:按下表命令检测当前 harnes