用途
memory-and-rules 用于配置和管理 Claude Code 的持久化记忆,使其在多个会话之间保持一致的指令与上下文。根据资料,Claude Code 具有两类持久化记忆:自动记忆(Claude 自行撰写的笔记)与 CLAUDE.md 文件(用户撰写的指令),两者都会在会话开始时载入上下文,且更具体的指令优先于更宽泛的指令。
主要能力
记忆层级
资料列出了记忆的加载优先级顺序(由高到低):
- 托管策略:组织范围,由 IT 部署。macOS 路径为 /Library/Application Support/ClaudeCode/CLAUDE.md,Linux 路径为 /etc/claude-code/CLAUDE.md。
- 用户记忆:个人、适用于所有项目,位于 ~/.claude/CLAUDE.md。
- 用户规则:个人模块化规则,位于 ~/.claude/rules/*.md。
- 项目记忆:团队共享,位于 ./CLAUDE.md 或 ./.claude/CLAUDE.md。
- 项目规则:模块化项目规则,位于 ./.claude/rules/*.md。
- 项目本地:个人项目专属,位于 ./CLAUDE.local.md(自动被 gitignore)。
- 自动记忆:Claude 的笔记,位于 ~/.claude/projects/<project>/memory/MEMORY.md(仅前 200 行)。
- 子目录:嵌套的 .claude/CLAUDE.md 文件在 Claude 读取这些目录中的文件时按需加载。
加载行为:工作目录之上的目录层级中的文件在启动时完整加载;子目录中的文件按需加载;自动记忆仅加载 MEMORY.md 的前 200 行。
选择记忆位置
资料提供了一个决策树:如果指令面向组织内所有人,使用托管策略;如果只面向自己且适用于所有项目,使用用户记忆;如果面向团队且针对当前项目,若单文件则使用项目记忆,若需分主题则使用项目规则;如果只面向自己在当前项目,则使用项目本地文件。
CLAUDE.md 文件
撰写有效指令的要点包括:具体明确(如使用 2 空格缩进,而非格式化代码);用项目符号并在描述性 Markdown 标题下分组;包含常用命令(构建、测试、lint);记录代码风格、命名约定、架构模式。
使用 /init 可为当前项目生成起始 CLAUDE.md。
导入语法
CLAUDE.md 文件可以使用 @path/to/import 语法导入其他文件。导入规则:相对路径相对于包含该导入的文件解析(而非当前工作目录);支持绝对路径与 ~ 路径;最大递归深度为 5 层;在代码跨度或代码块中不生效;项目中首次遇到会触发批准对话框。跨工作树共享时可使用主目录导入,使所有工作树共享个人指令。
可使用 /memory 在会话中打开任何记忆文件(包括 CLAUDE.md 文件、规则与自动记忆)到系统编辑器中。
模块化规则(.claude/rules/)
对于较大的项目,可将指令组织为独立的聚焦文件而非单个大型 CLAUDE.md。.claude/rules/ 中的所有 .md 文件会自动作为项目记忆加载,文件会递归发现子目录,符号链接会被解析(循环符号链接会被优雅处理)。
路径专属规则可通过 YAML frontmatter 的 paths 字段限定作用范围,例如匹配 src/api//.ts。没有 paths 字段的规则将无条件加载。支持的 glob 模式包括 **/.ts、src//、.md、src/components/.tsx、src/**/.{ts,tsx}、{src,lib}/**/*.ts 等,并支持多个模式。用户级规则位于 ~/.claude/rules/,适用于所有项目;项目规则的优先级高于用户规则。
自动记忆
自动记忆是 Claude 自行撰写、跨会话持久保存的笔记。与 CLAUDE.md(你为 Claude 写的指令)不同,自动记忆包含 Claude 为自己写的笔记。
存储位置:每个项目有独立的记忆目录 ~/.claude/projects/<project>/memory/。其中 <project> 路径来源于 git 仓库根目录;git 工作树拥有独立的记忆目录;在 git 仓库之外则使用工作目录。该目录下 MEMORY.md 为索引文件,会话开始时加载前 200 行;主题文件(如 debugging.md、api-conventions.md)按需加载。
工作方式:MEMORY.md 的前 200 行在会话开始时载入系统提示;主题文件在 Claude 需要时按需加载;Claude 在会话期间读写记忆文件。建议保持 MEMORY.md 简洁,将详细笔记移入主题文件。
管理自动记忆:可直接编辑文件(标准 markdown);使用 /memory 打开文件选择器;直接告诉 Claude(如记住我们使用 pnpm);也可要求 Claude 忘记某条目。
环境变量控制:设置 CLAUDE_CODE_DISABLE_AUTO_MEMORY=1 强制关闭,设为 0 强制开启,未设置时遵循渐进式发布。
附加目录记忆
--add-dir 标志可让 Claude 访问附加目录,但默认不加载这些目录中的 CLAUDE.md 文件。若要一并加载其记忆,可使用 CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 claude --add-dir ../shared-config。
常见任务
- 为新项目设置记忆:运行 /init 引导生成 CLAUDE.md,添加构建/测试/lint 命令,记录代码风格、架构模式与命名约定;对于 monorepo,在子目录中添加嵌套的 .claude/CLAUDE.md。
- 整理不断增长的 CLAUDE.md:创建 .claude/rules/ 目录,按主题拆分(code-style.md、testing.md、api-design.md),使用 paths frontmatter 处理语言/目录专属规则,主 CLAUDE.md 保留高层项目概览。
- 跨项目共享规则:可通过符号链接共享规则目录或单个规则文件。
- 调试记忆加载问题:运行 /memory 查看已加载的文件;检查文件位置是否匹配层级;验证 paths frontmatter 的 glob 模式是否匹配目标文件;检查导入 @ 引用是否正确解析(相对于包含文件);对于自动记忆,确认 MEMORY.md 在 200 行以内以保证加载。
适用场景
适用于需要为 Claude Code 项目建立跨会话记忆、组织模块化规则、按路径限定规则作用范围、共享团队或个人规则,以及排查记忆加载问题的场景。
限制与说明
资料未提供该技能的收费、价格或具体平台支持范围等信息。导入递归深度上限为 5 层;记忆优先级顺序已由资料明确列出;自动记忆仅保证加载 MEMORY.md 的前 200 行。更多细节可参考 references/memory-reference.md。