提升
/si:promote — 将学习成果晋升为规则
将已验证的模式从 Claude 的自动记忆转移到项目的规则系统中,使其从背景笔记变为强制执行的指令。
用法
/si:promote <模式描述> # 自动检测最佳目标
/si:promote <模式> --target claude.md # 晋升至 CLAUDE.md
/si:promote <模式> --target rules/testing.md # 晋升至特定范围规则
/si:promote <模式> --target rules/api.md --paths "src/api/**/*.ts" # 指定路径的范围规则工作流
第一步:理解模式
解析用户的描述。如果描述模糊,请提出一个澄清问题:
- “Claude 应该遵循什么样的具体行为?”
- “这适用于所有文件还是特定路径?”
第二步:在自动记忆中查找模式
# 在 MEMORY.md 中搜索相关条目
MEMORY_DIR="$HOME/.claude/projects/$(pwd | sed 's|/|%2F|g; s|%2F|/|; s|^/||')/memory"
grep -ni "<keywords>" "$MEMORY_DIR/MEMORY.md"展示匹配的条目并确认这正是用户所指的内容。
第三步:确定正确的目标
| 模式范围 | 目标 | 示例 |
|---|---|---|
| 适用于整个项目 | ./CLAUDE.md | “使用 pnpm 而非 npm” |
| 适用于特定文件类型 | .claude/rules/<topic>.md | “API 处理器需要验证” |
| 适用于所有项目 | ~/.claude/CLAUDE.md | “倾向于显式错误处理” |
如果用户未指定目标,请根据范围推荐一个。
第四步:提炼为简洁的规则
将自动记忆中的“描述性”笔记转换为 CLAUDE.md 的“指令性”格式:
转换前 (MEMORY.md — 描述性):
> 该项目使用 pnpm workspaces。当我尝试 npm install 时失败了。锁文件是 pnpm-lock.yaml。必须使用 pnpm install 安装依赖。
转换后 (CLAUDE.md — 指令性):
## 构建与依赖
- 包管理器:pnpm (而非 npm)。使用
pnpm install。
提炼原则:
- 尽可能每条规则一行
- 使用祈使句 (“使用 X”, “始终 Y”, “绝不 Z”)
- 包含具体命令或示例,而非仅是概念
- 不要背景故事 —— 只要指令
第五步:写入目标
针对 CLAUDE.md:
1. 读取现有的 CLAUDE.md
2. 找到合适的章节(或创建新章节)
3. 在正确的标题下追加新规则
4. 如果文件将超过 200 行,建议改用 .claude/rules/
针对 .claude/rules/:
1. 如果文件不存在则创建
2. 如果有范围限制,添加包含 paths 的 YAML frontmatter
3. 写入规则内容
---
paths:
- "src/api/**/*.ts"
- "tests/api/**/*"
---
API 开发规则
- 所有端点必须使用 Zod schema 验证输入
- 错误响应使用
ApiError 类 (而非原始 Error)
- 在处理器函数上包含 OpenAPI JSDoc 注释
第六步:清理自动记忆
晋升后,删除或标记 MEMORY.md 中的原始条目:
# 显示将要删除的内容
grep -n "<pattern>" "$MEMORY_DIR/MEMORY.md"请求用户确认删除。然后编辑 MEMORY.md 以移除已晋升的条目。这将为新的学习内容腾出空间。
第七步:确认
✅ 已晋升至 {{target}}
规则: "{{distilled rule}}"
来源: MEMORY.md 第 {{n}} 行 (已删除)
MEMORY.md: 剩余 {{lines}}/200 行
该模式现在已...
这是一个强制指令。Claude 将在所有后续会话中遵循此指令。
## 晋升决策指南
建议晋升的情况:
- 模式在自动记忆(auto-memory)中出现 3 次以上
- 你曾多次就此纠正 Claude
- 它是任何贡献者都应知晓的项目约定
- 它能防止重复出现同一个错误
不建议晋升的情况:
- 一次性的调试笔记(保留在自动记忆中)
- 特定会话的上下文(由会话记忆处理)
- 短期内可能会变更(例如在迁移期间)
- 已被现有规则覆盖
CLAUDE.md 与 .claude/rules/ 的区别
| CLAUDE.md 适用场景 | .claude/rules/ 适用场景 |
|---|---|
| 全局项目规则 | 特定文件类型的模式 |
| 构建命令 | 测试约定 |
| 架构决策 | API 设计规则 |
| 团队约定 | 框架特定的注意事项 |
技巧
- 将 CLAUDE.md 控制在 200 行以内 —— 超出部分请使用 rules/
- 每行一条规则比段落形式更易于维护
- 包含具体的命令,而不仅仅是概念
- 每季度审查一次晋升的规则 —— 删除不再相关的内容