Claude Code 项目记忆

每个 Claude Code 会话都会从新的上下文窗口开始。CLAUDE.md 和 auto memory 可以把项目知识带到后续会话;配合 Skills 处理可重复流程,配合 Hooks 做强制约束。

最近核验
适用版本
Claude Code 2.1.x。本机使用 2.1.198 核对 CLI 拼写;官方文档可能描述更新的 2.1.x 行为。
核验方式
依据官方资料核对 CLAUDE.md loading、imports、local memory、auto-memory 限制与 enforcement boundary;未改变用户或项目 memory。
官方来源
MemorySettingsChangelog

可复现实践

把重复纠正变成有 Scope、可测试的项目规则

只把 durable fact 写入一次性 CLAUDE.md,在提议真实仓库改动前证明 scope 和 load behavior。

准备

  • 有仓库证据的重复纠正。
  • 唯一临时 git 仓库。
  • Shared rule 不含秘密、个人偏好或一次性任务文本。

执行步骤

  1. 创建一次性项目

    把练习放在所有真实仓库之外。

    步骤 1
    MEMORY_LAB=$(mktemp -d "${TMPDIR:-/tmp}/claude-memory.XXXXXX")
    printf '%s\n' "$MEMORY_LAB"
    cd "$MEMORY_LAB" && git init -q
  2. 写一条可验证规则

    描述确切 command 和适用条件,不写模糊质量偏好。

    步骤 2
    printf '%s\n' '# Verification' '- After changing TypeScript, run: pnpm exec tsc -b --pretty false' > CLAUDE.md
    wc -l CLAUDE.md
  3. 检查加载 context

    可选交互会话使用 `/context` 和 `/memory`;本次未打开或修改 memory UI。

  4. 单独选择 enforcement

    如果动作必须被阻止,应使用 permissions、sandbox 或 hook,不应加强 prose。

预期结果

规则简短、scope 明确,仅在适当时纳入版本控制,可在 context 看到,并能与 enforced policy 区分。

验证

  • 采用前确认 command 在真实项目存在。
  • 用 `/context` 确认目标文件已加载。
  • 检查 import 和 path-scoped rules 的冲突或无关 context。

失败处理

规则未被遵循

检查 load scope,并重写成一条有观察结果的具体指令。

Context 膨胀

把 procedure 移到 skill,并拆分 path-specific rules。

清理或回退

  • 返回原目录,只删除打印出的 MEMORY_LAB 路径。
  • 真实 shared rule 造成更差行为时通过 code review 回退。

边界与不适用场景

  • CLAUDE.md 和 auto memory 只指导行为,不执行安全 policy。
  • Auto memory 按 repository scope 跨 worktree 共享,不存秘密或短期 incident data。

CLAUDE.md 与 auto memory

CLAUDE.md 是你编写的说明;auto memory 是 Claude 根据纠正和模式自动记录的笔记。二者都会在会话开始时加载,但解决的问题不同。

Auto memory

适合让 Claude 记住偏好和调试经验,而不需要你每次手动改说明文件。

阅读指南

记忆文件放在哪里

记忆可以按组织、用户、项目或本地工作区分层。更具体的文件应补充更 broad 的默认值,而不是重复它们。

CommandDescription
/init基于当前仓库生成 starter CLAUDE.md
/memory会话中编辑稳定记忆和 instructions。
./CLAUDE.md纳入版本控制的团队共享项目说明。
~/.claude/CLAUDE.md适用于所有项目的个人说明。

写出有效的 CLAUDE.md

好的记忆内容应事实化、简洁、可验证。把命令、路径、命名规则和审查要求写在这里;一次性流程应放到 skills 或路径级 rules 中。

项目 CLAUDE.md 示例片段
# Project memory

- Package manager: pnpm
- Test: pnpm test
- Lint: pnpm lint
- Do not edit files under dist/
- Auth changes require tests in src/auth/

与其他主题连接记忆

记忆最好作为 onboarding 和 review 栈的一部分,而不是唯一的项目指导来源。

排查记忆未生效

当说明看起来被忽略时,先检查当前会话是否真的加载了该文件,是否有更具体的规则覆盖,以及内容是否过于空泛。

CommandDescription
/context查看上下文窗口占用,包括已加载的记忆。
/doctor查找重复 CLAUDE.md 并裁剪 always-loaded 指导内容。

记忆检查

相关主题