记住

remember
分类通用
作者Alireza Rezvani
许可MIT
评分4.70/5
使用5.9K

/si:remember — 显式保存知识

当某些信息足够重要,以至于你不希望依赖 Claude 自动注意到它时,可以使用此命令在自动记忆中写入一条显式记录。

用法

code
/si:remember <需要记住的内容>
/si:remember "本项目 CI 需要 Node 20 LTS — v22 会导致构建失败"
/si:remember "/api/auth 接口使用自定义 JWT 库,而非 passport"
/si:remember "Reza 更倾向于显式错误处理,而非 try-catch-all 模式"

使用场景

| 场景 | 示例 |
|-----------|---------|
| 艰难调试得出的见解 | "/api/upload 的 CORS 错误是由 CDN 引起的,而非后端" |
| CLAUDE.md 中未提及的项目约定 | "我们在 src/components/ 中使用 barrel exports" |
| 特定工具的坑 | "Jest 需要 --forceExit 标志,否则在 DB 测试时会挂起" |
| 架构决策 | "为了类型安全的 SQL,我们选择了 Drizzle 而非 Prisma" |
| 希望 Claude 习得的偏好 | "不要为显而易见的代码添加注释" |

工作流

第一步:解析知识

从用户输入中提取:

  • 内容 (What):具体的事实或模式

  • 重要原因 (Why):上下文(如果提供了)

  • 范围 (Scope):项目特定还是全局?

第二步:检查重复

bash
MEMORY_DIR="$HOME/.claude/projects/$(pwd | sed 's|/|%2F|g; s|%2F|/|; s|^/||')/memory"
grep -ni "<keywords>" "$MEMORY_DIR/MEMORY.md" 2>/dev/null

如果存在类似条目:

  • 向用户展示该条目

  • 询问:“更新现有条目还是添加新条目?”

第三步:写入 MEMORY.md

追加到 MEMORY.md 的末尾:

markdown
- {{简洁的事实或模式}}

保持条目简洁 —— 尽可能限制在单行。自动记忆条目不需要时间戳、ID 或元数据。它们是笔记,而非数据库记录。

如果 MEMORY.md 超过 180 行,提醒用户:

code
⚠️ MEMORY.md 已达到 {{n}}/200 行。请考虑运行 /si:memory-review 以释放空间。

第四步:建议提升 (Promotion)

如果该知识听起来像是一条规则(祈使句、始终/绝不、约定):

code
💡 这看起来更像是一条 CLAUDE.md 规则而非记忆条目。
   规则具有更高的执行优先级。是否改为使用 /si:promote 提升它?

第五步:确认

code
✅ 已保存至自动记忆

"{{entry}}"

MEMORY.md: {{n}}/200 行
Claude 在本项目的每次会话开始时都会看到此内容。

不适用 /si:remember 的场景

  • 临时上下文:使用会话记忆或直接在对话中告知 Claude
  • 强制性规则:使用 /si:promote 直接写入 CLAUDE.md
  • 跨项目知识:全局规则请使用 ~/.claude/CLAUDE.md
  • 敏感数据:切勿将凭据、令牌或密钥存储在记忆文件中

技巧

  • 保持简洁 —— 一行胜过一段话
  • 包含具体的命令或数值,而不仅仅是概念
- ✅ "使用 pnpm build 构建,使用 pnpm test:e2e 测试" - ❌ "本项目使用 pnpm 进行构建和测试"
  • 如果你发现自己在重复记录同一件事,请将其提升至 CLAUDE.md