Auto-Memory-Rules 核心执行准则
最高优先级
用户的实时要求 > 历史记忆 — 冲突时无条件执行用户要求,对话结束时询问是否覆盖旧记忆。
触发与处理
| 意图类型 | 触发信号 | 优先级 | 处理策略 |
|---|---|---|---|
| 明确纠错 | "不对"、"错了"、"应该是..." | 🔴 高 | 立即反思 + 记录 |
| 要求修改 | "改成..."、"换成..."、"不要..." | 🔴 高 | 立即反思 + 记录 |
| 偏好表达 | "我更喜欢..."、"最好..."、"建议..." | 🟡 中 | 反思后记录 |
| 方法指导 | "用...命令"、"去...查询" | 🟡 中 | 反思后记录 |
| 交互优化 | 对回答方式、格式、风格的调整 | 🟡 中 | 反思后记录 |
| 全局规范 | 统一、所有、所有的、都+动词、任何、每个、每次、全部、一律 | 🟡 中 | 反思后记录 |
| 一次性修改 | "这里特殊处理"、"临时..." | ⚪ 低 | 不记录 |
即使用户没有明确说"记住",当同一问题被纠正 2 次以上时,主动询问是否记录为规则:
💡 检测到可记录的记忆:[简短描述]
是否要记录到记忆系统?这样下次我会自动应用。[Y/n]
自我反思流程
创建记忆前必须进行三层反思:
- 表层:用户说了什么?
- 深层:为什么会这么说?我的回答哪里不够好?
- 原则:背后的通用规则是什么?能泛化到类似场景吗?
记忆质量标准
核心问题:这个规则下次能让用户少提修改要求吗?
应该记录:用户明确的偏好、重复出现的修改模式(2次+)、可跨项目复用的通用原则、代码风格/架构/交互偏好
不应记录:一次性特殊处理、项目特定业务逻辑、临时解决方案、纯概念解释
质量检查:
- 去具体化 — 移除文件路径、行号、具体变量名
- 高可执行性 — AI 读完后能立刻执行
- 跨任务通用 — 在其他类似场景依然有效
- 抗衰减 — 规则逻辑清晰,不会随时间推移而失效
- 记录了"为什么",不只是"做什么"
冲突处理:
- 规则演进 — 若用户明确推翻旧习惯,询问后覆盖旧规则
- 场景分支 — 若两个规则在不同场景下均有效,则合并为一条规则并分别描述各自的触发场景
任务生命周期
1. 对话开始
- 检查
memory/目录,不存在则初始化 - 根据用户请求搜索相关记忆并加载到上下文
2. 对话执行
- 反思 → 提取原则 → 创建记忆文件到
memory/ - 在当前任务中立即应用
- 告知用户:"我已记录这条记忆,下次会自动应用"
3. 对话结束(结算)
触发条件:明确转折词(另外、再来、顺便)、用户要求新增规则、对话自然结束
执行步骤:
# 步骤 1:更新索引和清单
# 如果已安装 hook(见下方安装说明),写入记忆文件时会自动触发,无需手动执行
# 未安装 hook 时手动运行:
bash scripts/generate-memory-artifacts.sh
# 步骤 2:更新编辑器规则(根据当前编辑器环境自动判断)
bash scripts/generate-rules.sh <当前编辑器>
输出结算报告:
✅ 记忆系统结算完成
- 新增记忆:N 条
- 更新索引:memory/index.md
- 更新清单:memory/CHECKLIST.md
- 更新编辑器规则:<当前编辑器>
安装(一次性)
在使用本 skill 的项目根目录下运行,注册 Claude Code hook:
bash <skill所在路径>/auto-memory-rules/scripts/setup-hooks.sh
安装后,每次向 memory/ 写入 .md 文件,generate-memory-artifacts.sh 会自动触发,无需 AI 手动调用。
标准 Category
| Category | 适用场景 |
|---|---|
api | API 调用、接口定义、HTTP 请求、URL 规范 |
types | TypeScript 类型、接口、泛型 |
component | React 组件、JSX、Props 设计 |
hook | 自定义 Hook、useXxx 封装 |
state | 状态设计、数据流、状态恢复 |
pattern | 设计模式、架构模式、代码组织 |
convention | 命名、格式、代码风格、注释 |
quality | 可维护性、性能优化、最佳实践 |
workflow | 开发流程、调试方法、问题排查 |
general | 跨领域通用规则、不适合以上分类的偏好 |
多方面冲突时选最核心的那个。
记忆文件模板
文件名:YYYY-MM-DD-{category}-{brief-description}.md
---
category: [从标准列表中选择唯一一个]
priority: [high|medium|low]
tags: [关键词1, 关键词2]
description: [一句话描述]
---
# [记忆主题]
## 反思记录
**用户说了什么**:[原始表达]
**为什么会这么说**:[分析]
**提取的原则**:[通用原则]
## 核心原则
[一句话概括]
## 具体要求
- [可执行的指令]
## 检查点
- [ ] [陈述句:描述应该做什么]
注意:检查点使用陈述句,不是疑问句或错误描述
✅ 好:Hook 不允许暴露内部 setter
❌ 差:Hook 是否暴露了 setter?
❌ 差:Hook 暴露了 setter
## 示例
✅ [好的示例]
❌ [避免的示例]
## 相关记忆
- [相关记忆文件名](相关记忆文件名.md)