SuperAPI AI 工具集

memory-curate

办公与效率

查看项目

更新于 10-16 07:09

技能介绍

Memory Curate 用于审计与整理 Claude Code 在每个项目下维护的文件式记忆系统。该记忆系统位于 ~/.claude/projects/<encoded-cwd>/memory/ 目录。

用途

记忆会静默增长。几个月后,一个项目的 memory/ 目录会积累重复的 feedback 条目、指向已重命名文件的过期引用、超过 200 行(运行时会被截断)的超大 MEMORY.md 索引,以及分类错误的条目(例如一个实际上是 feedback_* 的 project_* 记忆)。由于 harness 会加载每一个条目,噪声会稀释有效信号。该技能的目标是把目录恢复为承载有效信息的状态。

记忆分类体系

来自 harness 的四类记忆,不可混用:

  • user:文件名前缀 user_*.md,内容为“用户是谁、角色、专业领域、偏好”。
  • feedback:文件名前缀 feedback_*.md,内容为“纠正与已验证的做法”,必须包含 Why: 与 How to apply: 两行。
  • project:文件名前缀 project_*.md,内容为“决策、截止日期、干系人背景”,必须包含 Why: 与 How to apply: 两行。
  • reference:文件名前缀 reference_*.md,内容为“指向外部系统(Linear、Slack、Grafana)的指针”。

MEMORY.md 仅是索引,不含 frontmatter,每条目一行,总行数不超过 200 行。

处理流程

  1. 解析目标项目:若提供了 --project=<path>,则编码该路径,否则使用 pwd。路径编码示例:/Users/subin/Projects/foo → -Users-subin-Projects-foo。定位 ~/.claude/projects/<encoded>/memory/,若不存在则给出明确信息并跳过。

  2. 收集清单:列出 memory 目录下所有 *.md 文件,解析每个文件的 frontmatter(name、description、type),读取 MEMORY.md 并提取其中链接的每个文件。

  3. 并行运行以下审计,每项将结果写入结构化报告:

A. 孤儿检查——memory/ 中未被 MEMORY.md 引用的文件,以及 MEMORY.md 中指向不存在文件的链接。 B. 重复/近似重复检查——描述或规则重叠的条目。对 description 与正文前 200 字符做余弦相似度,阈值 0.75。 C. 分类违规——缺少 Why: 或 How to apply: 行的 feedback_* 文件;缺少这些行的 project_* 文件;type: frontmatter 与文件名前缀矛盾的 文件。 D. 过期检查——记忆内部引用的文件(如 lib/foo.ts)在当前仓库中已不存在;project_* 记忆中的日期引用已过期。 E. 索引健康——MEMORY.md 行数(150 行警告,200 行硬限制)、超过 150 字符的条目、与清单相比缺失或多余的条目。 F. 类型失衡——若 feedback_* 数量超过 user_* + project_* + reference_* 合计的 3:1,则标记(提示只有纠正类记忆、缺少验证类记忆)。

  1. 生成报告,格式包含:标题(Memory audit — <project>)、清单统计(N 个文件,M 个索引条目)、MEMORY.md 行数(限制 200)、Findings 分级(🔴 Critical 运行时中断、🟡 Warnings 随时间退化、🔵 Suggestions 建议)、以及 Recommended actions 编号列表。

  2. 关于 --prune 标志:对用户明确批准的每个 Critical 发现执行操作。孤儿文件:删除该文件。失效索引链接:删除 MEMORY.md 中该行。重复项:合并正文,保留更具体的文件名,删除另一个,并更新 MEMORY.md。每次 prune 都记录:文件、原因、删除内容。绝不自动 prune Warnings 或 Suggestions。

  3. 关于 --dry-run(默认):生成报告,不修改任何文件。结尾给出编号操作列表,用户可手动执行或重新以 --prune 运行。

输出原则

优先呈现影响最大的发现。多数项目有一个 Critical 问题和十个 Suggestions,按此顺序报告。对重复项,展示两个文件路径,并给出两行说明保留哪一个的理由。对过期项,引用确切的过期引用(如 lib/old-name.ts),方便用户查找替换。绝不捏造发现。若目录干净,用一句话说明。

反面模式

编辑记忆内容以“优化措辞”——内容由用户撰写,除非去重否则不要改动。未带 --prune 时自动清理。把 MEMORY.md 当作记忆文件处理——它是索引。未阅读正文就建议拆分或合并。