- name
- memory-sorting
- version
- 3.1.0
- description
- 像整理衣柜一样整理记忆,检测重复/过时/冲突,生成提案等你批准 / 触发词:整理记忆、记忆整理 / 命令:/memory-sorting
- license
- MIT
- triggers
memory-sorting v3.1.0 — 衣柜式记忆整理
定期整理 MEMORY.md 和 topics/ 目录,系统性检测重复、过时、冲突内容,生成提案等你批准,批准后执行修改。
线性工作流
用户输入:"/memory-sorting"
↓
Step 1 — 系统性扫描【含核查清单 Gate】
扫描 topics/:每个文件读 frontmatter + 全文
扫描 MEMORY.md:统计行数/字节数,解析每行指针
扫描 daily 日记(作为时间线参考)
↓ [必须输出核查清单,才能进入 Step 2]
↓
Step 2 — 六类问题检测
🔁 重复 / ⏰ 过时 / ⚡ 矛盾 / ❓ 孤儿 / 📜 碎片 / 📏 超限
+ 真实性验证(引用路径的文件是否存在)
↓
Step 3 — 生成提案
按 PO / 整理清理 / 真实性验证 分类输出
↓
用户批准
↓
Step 4 — 执行
按顺序执行所有批准项
↓
Step 5 — 输出执行报告Step 1 — 系统性扫描【核查清单 Gate】
必须对以下三部分做完整扫描,不得跳步骤。
1.1 扫描 topics/ 目录
对每个 .md 文件:
- 读取 frontmatter,提取
name、description、type、mtime - 读取文件全文(用于内容对比)
- 记录:
{ filename, type, mtime, content, description }
1.2 扫描 MEMORY.md
- 统计行数和字节数(双限制:≤200行 且 ≤25KB)
- 解析每行指针,提取
topics/xxx.md路径 - 识别孤儿:topics/ 文件存在但 MEMORY.md 无索引
1.3 扫描 daily 日记(作为时间线参考)
扫描 memory/*.md,提取最新结论,用于判断 topics 内容是否过时。
【核查清单 Gate】进入 Step 2 前,必须输出以下全部项,缺少任何一项不得开始检测:
- [ ] topics/ 文件清单:列出所有 topic 文件
- [ ] frontmatter 抽查结果:每个文件的 type 字段是否有效
- [ ] 孤儿文件清单:topics 存在但 MEMORY.md 无索引的文件
- [ ] daily 文件清单:列出所有被扫描的 daily 文件
Step 2 — 六类问题检测
| 类型 | 检测方法 | 标记 |
|---|---|---|
| 🔁 重复 | grep 全文:相同段落 ≥2 处出现 | 重复 |
| ⏰ 过时 | topic 内容被 daily 最新结论推翻;或相对日期超 30 天 | 过时 |
| ⚡ 冲突 | grep 全文:同一关键词两个文件说法矛盾 | 冲突 |
| ❓ 孤儿 | MEMORY.md 无索引;或 topic type 字段无效/缺失 | 孤儿 |
| 📜 碎片化 | 同一主题关键词分散在 ≥3 个文件中 | 碎片 |
| 📏 超限 | MEMORY.md >200 行 或 >25KB | 超限 |
真实性验证(额外检测):
引用了具体文件/路径的记忆,必须验证该文件当前是否仍存在。 若文件不存在 → 提案删除该记忆。 若说法与当前代码/配置矛盾 → 信任现实,更新或删除过时记忆。
Step 3 — 生成提案
按以下分类输出:
## 记忆整理提案 扫描时间:YYYY-MM-DD HH:MM 扫描范围:MEMORY.md + N个 topic 文件 + N个 daily 日记 ### 健康度评分(X/100) - 入口索引完整度:X/25 - 内容时效性:X/25 - 主题聚合程度:X/25 - 矛盾防护:X/25 ### 必须做(PO) | # | 类型 | 现状 | 建议操作 | 涉及文件 | ### 整理清理 | # | 类型 | 现状 | 建议操作 | 涉及文件 | ### 真实性验证 | # | 记忆内容 | 验证结果 | 等待批准后执行。 请回复:同意 / 同意+例外[编号] / 仅[编号] / 取消
Step 4 — 执行(收到批准后)
按顺序执行:
- 执行所有 PO(先更新 topic,再更新 MEMORY.md)
- 执行所有整理清理
- 执行所有真实性验证
- 验证修改后文件可读
- 输出执行报告
Step 5 — 输出执行报告
## 记忆整理执行完毕 执行时间:YYYY-MM-DD HH:MM 实际执行:X条(与提案一致 / 有调整) | 操作 | 数量 | 详情 | | 必须做(PO) | N条 | [列出] | | 整理清理 | N条 | [列出] | | 真实性验证 | N条 | [列出] | MEMORY.md:X行,XKB topics/:X个文件 · 新增 X个 · 删除 X个
何时使用
- 手动触发:
/memory-sorting - 建议频率:每周一次,或任何你觉得记忆库开始乱的时候
检测例外
- AI 资讯来源列表(不同文件出现相同 URL 是正常)
- 同一个人的联系方式出现在不同 context(不视为重复)
- 不同时间点的独立 TODO 记录(不合并)
- 相对日期在 7 天内的(视为近期有效,不标记过时)
What NOT to Save
以下内容不应出现在 topics 中,若发现应提案删除:
- 代码结构、文件路径(可从源码读取)
- Git 历史(
git log是权威来源) - 调试方案(修复在代码里)
- CLAUDE.md/AGENTS.md 已有的内容
- 临时任务状态
权限要求
FileRead:读取所有 memory 文件FileWrite/FileEdit:修改 topics/、MEMORY.md、daily 文件exec:grep 全局搜索(用于重复/冲突检测)
触发词
- 手动:
/memory-sorting
*本 Skill 基于 CC 记忆系统原则设计,适配 OpenClaw v3.1.0*