Faster Claude

Claude 如何记住你的项目

使用 CLAUDE.md 文件为 Claude 提供持久指令,并让 Claude 通过自动记忆功能自动积累学习内容。

每个 Claude Code 会话都从一个全新的上下文窗口开始。两种机制可以跨会话传递知识:

  • CLAUDE.md 文件 — 你编写的指令,为 Claude 提供持久上下文
  • 自动记忆 — Claude 根据你的更正和偏好自己编写的笔记

CLAUDE.md 与自动记忆

CLAUDE.md 文件自动记忆
谁编写Claude
包含内容指令和规则学习和模式
范围项目、用户或组织每个仓库,跨 worktree 共享
加载到每个会话每个会话(前 200 行或 25KB)
用于编码标准、工作流、项目架构构建命令、调试见解、Claude 发现的偏好

当你想指导 Claude 的行为时使用 CLAUDE.md。自动记忆让 Claude 从你的更正中学习,无需手动操作。

无论 Claude 决定什么都要阻止某操作时,请改用 PreToolUse hook

CLAUDE.md 文件

CLAUDE.md 是 markdown 文件,为 Claude 提供持久指令。Claude 在每个会话开始时读取它们。

何时添加到 CLAUDE.md

在以下情况添加:

  • Claude 第二次犯同样的错误
  • 代码审查发现 Claude 本应知道的内容
  • 你在聊天中重复上次的更正
  • 新队友需要相同上下文才能上手

保留每个会话都应知道的事实:构建命令、约定、项目布局、「总是做 X」的规则。多步骤流程放到 skill 或路径范围规则中。

选择 CLAUDE.md 的位置

范围位置目的
托管策略macOS: /Library/Application Support/ClaudeCode/CLAUDE.md;Linux/WSL: /etc/claude-code/CLAUDE.md;Windows: C:\Program Files\ClaudeCode\CLAUDE.md组织范围指令
用户~/.claude/CLAUDE.md所有项目的个人偏好
项目./CLAUDE.md./.claude/CLAUDE.md团队共享的项目指令
本地./CLAUDE.local.md个人项目偏好(gitignore)

设置项目 CLAUDE.md

./CLAUDE.md./.claude/CLAUDE.md 中写入构建/测试命令、编码标准、架构、命名约定与工作流。

运行 /init 生成起始 CLAUDE.md。设置 CLAUDE_CODE_NEW_INIT=1 可启用交互式多阶段流程。

编写有效的指令

  • 大小: 每个文件目标 200 行以内
  • 结构: markdown 标题与列表
  • 具体性: 「使用 2 空格缩进」优于「正确格式化代码」
  • 一致性: 删除 CLAUDE.md 与 .claude/rules/ 中的冲突规则

导入其他文件

有关项目概述请参阅 @README,有关 npm 命令请参阅 @package.json。

# 其他指令
- git 工作流 @docs/git-instructions.md

私人偏好用 CLAUDE.local.md。跨 worktree 共享:

- @~/.claude/my-project-instructions.md

AGENTS.md

Claude Code 读取 CLAUDE.md,不读取 AGENTS.md。导入共享说明:

@AGENTS.md

## Claude Code

`src/billing/` 下的更改使用 Plan Mode。

CLAUDE.md 如何加载

Claude 从当前工作目录向上查找 CLAUDE.mdCLAUDE.local.md。内容从根向下拼接;更近目录的内容后读。子目录中的 CLAUDE.md 在 Claude 读取该目录文件时加载。

--add-dir 目录加载:

CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 claude --add-dir ../shared-config

.claude/rules/ 组织规则

将 markdown 放在 .claude/rules/。路径规则使用 frontmatter:

---
paths:
  - "src/api/**/*.ts"
---

# API 开发规则

- 所有 API 端点必须包括输入验证
- 使用标准错误响应格式

paths 的规则每会话加载。有 paths 的在读取匹配文件时加载。

~/.claude/rules/ 中的用户级规则适用于所有项目,且在项目规则之前加载。

在 monorepo 中排除 CLAUDE.md

{
  "claudeMdExcludes": [
    "**/monorepo/CLAUDE.md",
    "/home/user/monorepo/other-team/.claude/rules/**"
  ]
}

托管策略 CLAUDE.md 不可排除。

自动记忆

自动记忆让 Claude 跨会话积累知识。Claude 在工作时保存笔记:构建命令、调试见解、架构笔记与工作流习惯。

需要 Claude Code v2.1.59 或更高版本(claude --version)。

启用或禁用

/memory 中切换,或:

{
  "autoMemoryEnabled": false
}

CLAUDE_CODE_DISABLE_AUTO_MEMORY=1

存储位置

~/.claude/projects/<project>/memory/MEMORY.md 为索引,可有主题文件。

~/.claude/settings.json 自定义目录:

{
  "autoMemoryDirectory": "~/my-custom-memory-dir"
}

工作原理

MEMORY.md 前 200 行或 25KB 在会话开始时加载。主题文件按需加载。看到「Writing memory」或「Recalled memory」时,Claude 正在更新或读取该目录。

审计和编辑

运行 /memory 列出已加载的 CLAUDE.md、切换自动记忆、打开记忆文件夹。均为可编辑的纯 markdown。

故障排除

Claude 不遵循我的 CLAUDE.md

  • 运行 /memory 确认文件已加载
  • 使指令更具体
  • 检查冲突指令
  • 必须执行的步骤用 hook 或 --append-system-prompt(自动化)

/compact 后指令似乎丢失

项目根 CLAUDE.md 在 /compact 后会重新读取。嵌套 CLAUDE.md 在再次读取该子目录文件时加载。持久规则写入 CLAUDE.md,不要只留在对话中。

On this page