memory

Installation
SKILL.md

记忆管理(Memory)

记忆是跨会话的备忘录。全局记忆跨项目,项目记忆跟项目走。

Slash 命令

命令 作用
/memory list 查看全局 + 项目级所有记忆
/memory save <内容> 保存一条记忆(自动判断层级和类型)
/memory clean 批量检查过期/重复记忆,给出清理建议
/memory forget <关键词> 删除指定记忆
/memory move <关键词> --to global 项目记忆迁移到全局
/memory move <关键词> --to project 全局记忆迁移到项目

也可以用自然语言触发:"记住 xxx"、"看看记忆"、"忘掉 xxx"、"清理记忆"。


记忆体系

~/.claude/
├── memory/                              ← 全局记忆(所有项目可见)
│   ├── MEMORY.md                            索引文件
│   └── *.md                                 记忆文件
└── projects/<path>/memory/              ← 项目记忆(仅当前项目可见)
    ├── MEMORY.md                            索引文件
    └── *.md                                 记忆文件
层级 存什么 示例
全局 跨项目通用的个人偏好、工作习惯、通用经验 "我喜欢简洁的提交信息"、"大表加索引用 CONCURRENTLY"
项目 项目特定的决策、约束、坑 "这个项目用 SQLite 不支持 ALTER COLUMN"

操作 1:写入记忆(save)

用户说"记住xxx"、"保存到记忆"、"这个经验记下来"时触发。

执行流程

用户要求保存
  ├─ 判断层级
  │   ├─ 跨项目通用?→ 全局(~/.claude/memory/)
  │   └─ 项目特定?→ 项目级
  │   └─ 不确定?→ 问用户
  ├─ 判断类型
  │   ├─ 用户偏好/角色信息 → user 类型
  │   ├─ 做法纠正/做法确认 → feedback 类型
  │   ├─ 项目阶段性目标/约束 → project 类型
  │   └─ 外部资源位置 → reference 类型
  ├─ 检查去重
  │   └─ 读 MEMORY.md 索引,确认没有重复或矛盾的条目
  ├─ 写入
  │   ├─ 创建记忆文件(带 frontmatter)
  │   └─ 更新 MEMORY.md 索引
  └─ 确认:"已保存到 [全局/项目] 记忆:[一句话描述]"

写入判断三连问

写之前过一遍:

  1. 下次对话还需要吗? → 不需要就不写
  2. 能从代码/git/docs 推导出来吗? → 能推导就不写
  3. 是否跨项目通用? → 通用放全局,特定放项目

不写的

  • 代码结构、文件路径、函数签名(从代码看)
  • Bug 修复方案(从 git 看)
  • 已经写在 CLAUDE.md 或 docs/ 里的(已有持久化)

操作 2:查看记忆(list)

用户说"看看记忆"、"当前有哪些记忆"、"memory list"时触发。

执行流程

1. 读取全局 MEMORY.md(如存在)
2. 读取项目级 MEMORY.md(如存在)
3. 汇总输出,按类型分组

输出格式:
## 全局记忆(X 条)
### Feedback
- [标题](文件) — 描述

### User
- [标题](文件) — 描述

## 项目记忆(X 条)
### Feedback
- [标题](文件) — 描述

合计:全局 X 条 + 项目 X 条

操作 3:清理记忆(clean)

用户说"清理记忆"、"忘掉xxx"、"记忆过期了"时触发。

单条删除

用户指定要忘掉的内容:

  1. 在 MEMORY.md 中找到对应条目
  2. 删除记忆文件
  3. 从 MEMORY.md 移除索引行
  4. 确认:"已删除 [全局/项目] 记忆:[标题]"

批量清理

用户说"清理一下记忆"、"检查过期记忆"时:

1. 读取所有记忆文件
2. 逐条检查:
   ├─ project 类型超过 1 个月?→ 标记待确认
   ├─ feedback 引用的代码/模块还存在吗?→ 不存在则标记
   ├─ 内容已写入 CLAUDE.md 或 docs/?→ 标记可删除
   ├─ 两条内容重复或矛盾?→ 标记合并
   └─ reference 引用的资源还有效吗?→ 无法验证则标记

3. 输出清理建议(不自动删,让用户确认):

## 记忆清理建议

### 建议删除(X 条)
- [标题] — 原因:内容已沉淀到 CLAUDE.md
- [标题] — 原因:引用的模块 src/old/ 已删除

### 建议合并(X 组)
- [标题A] + [标题B] — 内容重叠

### 建议保留(X 条)
- [标题] — 仍然有效

4. 用户确认后批量执行

操作 4:迁移记忆(move)

在项目记忆和全局记忆之间迁移。

用户说"这条移到全局"、"这个经验其他项目也能用"时触发。

1. 复制记忆文件到目标层级的 memory 目录
2. 更新目标层级的 MEMORY.md
3. 删除源层级的记忆文件和索引条目
4. 确认:"已将 [标题] 从 [项目/全局] 迁移到 [全局/项目]"

与其他 skill 的关系

task-manager 标 done → 自动写入项目记忆(Step 5,按写入规则判断)
docs-management Lint → 顺带检查记忆健康
memory-manage(本 skill)→ 用户手动触发写入/查看/清理/迁移
  • 自动写入由 task-manager 负责(复盘时提取经验)
  • 手动管理由本 skill 负责(用户主动触发)
  • 两者互补:自动写入保证不遗漏,手动管理保证不腐烂
Related skills
Installs
2
GitHub Stars
102
First Seen
Apr 9, 2026