Memory Sorting

像整理衣柜一样整理记忆,检测重复/过时/冲突,生成提案等你批准 / 触发词:整理记忆、记忆整理 / 命令:/memory-sorting

Audits

Pass

Install

openclaw skills install memory-sorting

memory-sorting v3.1.0 — 衣柜式记忆整理

定期整理 MEMORY.mdtopics/ 目录,系统性检测重复、过时、冲突内容,生成提案等你批准,批准后执行修改。


线性工作流

用户输入:"/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 文件:

  1. 读取 frontmatter,提取 namedescriptiontypemtime
  2. 读取文件全文(用于内容对比)
  3. 记录:{ filename, type, mtime, content, description }

1.2 扫描 MEMORY.md

  1. 统计行数和字节数(双限制:≤200行 且 ≤25KB)
  2. 解析每行指针,提取 topics/xxx.md 路径
  3. 识别孤儿: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 — 执行(收到批准后)

按顺序执行:

  1. 执行所有 PO(先更新 topic,再更新 MEMORY.md)
  2. 执行所有整理清理
  3. 执行所有真实性验证
  4. 验证修改后文件可读
  5. 输出执行报告

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