Claude Code 个人记忆实战:以 claude-howto 仓库的 personal-CLAUDE.md 为模板,编写专属 `~/.claude/CLAUDE.md`
2026/9/10 14:52:56 网站建设 项目流程

Claude Code 个人记忆实战:以 claude-howto 仓库的 personal-CLAUDE.md 为模板,编写专属~/.claude/CLAUDE.md

【免费下载链接】claude-howtoA visual, example-driven guide to Claude Code — from basic concepts to advanced agents, with copy-paste templates that bring immediate value.项目地址: https://gitcode.com/GitHub_Trending/cl/claude-howto

本篇文章聚焦 Claude Code 记忆体系中的"个人(用户级)记忆":以 claude-howto 仓库中现成的 02-memory/personal-CLAUDE.md 为唯一主体,完整拆解这份个人开发偏好模板的每个字段与写法,并结合仓库中的 02-memory/README.md 说明其落盘位置、加载时机、写入方式和维护规范。读完本文,你将能为自己量身打造一份可跨项目生效的个人记忆文件,让 Claude 在每次会话中都自动了解你的编码习惯、调试风格与沟通偏好。

个人记忆在 Claude Code 记忆体系中的位置

Claude Code 的记忆由两层互补系统组成:CLAUDE.md 文件(由你书写,随会话开始整体加载)与auto memory(Claude 自己在会话中沉淀的笔记)。claude-howto 仓库的 02-memory/README.md 把 CLAUDE.md 文件的存放位置按作用域划分为四档,个人记忆对应其中的"用户级":

作用域位置用途
Managed Policy(受管策略)macOS:/Library/Application Support/ClaudeCode/CLAUDE.md;Linux/WSL:/etc/claude-code/CLAUDE.md;Windows:C:\Program Files\ClaudeCode\CLAUDE.md由 IT/DevOps 下发、全组织生效,个人设置无法排除
User Memory(用户记忆)~/.claude/CLAUDE.md跨所有项目生效的个人偏好,本文核心
Project Memory(项目记忆)./CLAUDE.md./.claude/CLAUDE.md随 Git 版本控制的团队规范
Local Memory(本地记忆)./CLAUDE.local.md个人在单一项目内的偏好,建议加入.gitignore

关键语义是:这些文件不是"后加载的覆盖先加载的",而是在会话开始时按顺序拼接进同一份上下文——管理策略最先出现,用户级规则(~/.claude/rules/*.md)次之,用户记忆~/.claude/CLAUDE.md第三位出现,其后才是项目规则、项目记忆与本地记忆。从工作目录向父目录向上发现文件时,离启动目录越近的 CLAUDE.md 在上下文中出现得越靠后。auto memory(~/.claude/projects/<project>/memory/)则是独立机制,不参与上述拼接顺序。

由此可以得出个人记忆文件的两条设计准则:

  • 内容必须是"与你这个人有关"而非"与某个项目有关"。它会在你打开任何一个项目时加载,因此放"我在所有项目里都这么写代码",而不是"本项目用 PostgreSQL"。
  • 个人项目内专属偏好请放入./CLAUDE.local.md(仓库指南明确说明它用于"personal project-specific preferences",且应加入.gitignore),避免污染团队共享的项目记忆。

仓库中的现成模板:personal-CLAUDE.md 长什么样

02-memory/personal-CLAUDE.md 正是 02-memory/README.md "Practical Examples(Example 3: Personal Memory)"一节中独立抽取出的那份用户记忆模板,其目标落盘位置就是~/.claude/CLAUDE.md。仓库还提供了中文本地化副本 zh/02-memory/personal-CLAUDE.md,便于中文开发者对照阅读。

这份模板的完整内容如下(可直接复制,替换为自己的信息):

# My Development Preferences ## About Me - **Experience Level**: 8 years full-stack development - **Preferred Languages**: TypeScript, Python - **Communication Style**: Direct, with examples - **Learning Style**: Visual diagrams with code ## Code Preferences ### Error Handling I prefer explicit error handling with try-catch blocks and meaningful error messages. Avoid generic errors. Always log errors for debugging. ### Comments Use comments for WHY, not WHAT. Code should be self-documenting. Comments should explain business logic or non-obvious decisions. ### Testing I prefer TDD (test-driven development). Write tests first, then implementation. Focus on behavior, not implementation details. ### Architecture I prefer modular, loosely-coupled design. Use dependency injection for testability. Separate concerns (Controllers, Services, Repositories). ## Debugging Preferences - Use console.log with prefix: `[DEBUG]` - Include context: function name, relevant variables - Use stack traces when available - Always include timestamps in logs ## Communication - Explain complex concepts with diagrams - Show concrete examples before explaining theory - Include before/after code snippets - Summarize key points at the end ## Project Organization I organize my projects as: project/ ├── src/ │ ├── api/ │ ├── services/ │ ├── models/ │ └── utils/ ├── tests/ ├── docs/ └── docker/ ## Tooling - **IDE**: VS Code with vim keybindings - **Terminal**: Zsh with Oh-My-Zsh - **Format**: Prettier (100 char line length) - **Linter**: ESLint with airbnb config - **Test Framework**: Jest with React Testing Library

文件末尾还带有可追溯的元信息页脚,建议在新版本推出或偏好变更时同步刷新:

**Last Updated**: August 4, 2026 **Claude Code Version**: 2.1.220 **Compatible Models**: Claude Fable 5, Claude Opus 5, Claude Sonnet 5, Claude Sonnet 4.6, Claude Opus 4.8, Claude Haiku 4.5

Last Updated用于标记内容时效性,Claude Code Version注明该模板所基于的版本(当前为 2.1.220),Compatible Models则声明适用于哪些模型代次——注意,不同的模型代次对提示词的响应方式不同,模板中的"验证提醒"类措辞在不同代次上表现迥异(详见后文"记忆维护的最佳实践")。

逐节拆解:每一个字段在教 Claude 什么

个人记忆的全部价值在于"可被 Claude 准确执行",因此模板中每个小节都对应一类可观察的行为校准。以下逐节说明写作意图与落地要点。

About Me:建立基线画像

Experience Level、Preferred Languages、Communication Style、Learning Style 四条元信息并不直接约束代码,而是让 Claude 一开始就掌握你的背景:经验年限决定它解释概念的详略层级,首选语言决定默认的示例载体,沟通与学习风格("直接、配示例""图示 + 代码")决定它在回答与交付时的呈现方式。越具体的描述(如明确的"TypeScript、Python"),越能减少 Claude 在多个等价选择间的猜测。

Code Preferences:编码规范的四个支柱

模板将编码规范收敛为四个子标题,每一种都在传达一条可执行指令:

  • Error Handling(错误处理):"显式 try-catch + 有意义的错误信息、避免泛化错误、始终记录日志以便调试"。这同时是在给 Claude 定下"审查代码时重点看什么"的预期——它知道你要的是可定位、可读的异常路径,而不是吞掉错误的空 catch。
  • Comments(注释):"注释解释 WHY 而不是 WHAT,代码本身应当自文档化"。这是一条被广泛采用的工程共识:业务逻辑、非显然的决策(例如某个魔数的由来)才值得注释,而i++这类动作不需要注释。
  • Testing(测试):"TDD、先写测试再实现、关注行为而非实现细节"。后一句尤为关键:它引导 Claude 在重构或补测试时以对外行为为锚点,而不是把测试写成与内部实现强耦合的"实现快照",从而避免轻微改动即引发测试连锁碎裂。
  • Architecture(架构):"模块化、低耦合、依赖注入、关注点分离(Controller / Service / Repository)"。这是一份典型的经典分层架构声明,Claude 在生成新模块或评审结构时会默认套用这套边界。

Debugging Preferences:日志的"格式化协议"

模板给出四条非常具体的调试约定,本质上是把"你认可的日志格式"写成 Claude 可照做的协议:

  • 前缀统一为[DEBUG],便于在混合日志中一眼过滤;
  • 附带上下文(函数名 + 相关变量);
  • 可用时带上调用栈;
  • 始终带时间戳。

把抽象规则("写得清楚些")翻译成这种带前缀、带上下文字段、带时间戳的结构化要求,正是 02-memory/README.md "最佳实践"一节反复强调的——规则要具体、可行动、可验证,而不是"遵循最佳实践"这类空话。落到代码上,它相当于要求调试输出形如:

console.log(`[DEBUG] ${new Date().toISOString()} | ${fnName} | payload=${JSON.stringify(vars)}`)

Communication:你希望 Claude 如何向你解释

这组偏好约束的是"对话呈现层"而非"代码层":复杂概念配图、先给具体示例再讲理论、附带 before/after 代码对照、结尾做要点小结。它对个人记忆的启示是——记忆不只写工程规范,也可以写你偏好的信息交付方式,两者都会被 Claude 用于日常协作。

Project Organization:目录布局的心智模型

模板声明了一套src/{api,services,models,utils}+tests/+docs/+docker/的经典布局。Claude 读到这段后,在回答"新模块放哪""依赖归属哪层"之类问题时,会以这套结构为坐标系作答;如果你实际使用的就是这种布局,Claude 的理解成本会显著降低。

Tooling:把工具链固化成共识

工具行把容易在跨项目时漂移的选型钉死,避免 Claude 每次凭空猜测:

条目模板值落到配置的典型形态
IDEVS Code with vim keybindingsVS Code 中开启 Vim 插件模拟键位
TerminalZsh with Oh-My-Zshshell 环境的个人选择
FormatPrettier(100 字符行宽).prettierrc"printWidth": 100
LinterESLint with airbnb configESLint 配置extends: ["airbnb"]
Test FrameworkJest + React Testing LibraryJest 测试运行器 + RTL 组件测试库

需要说明:模板的 100 字符行宽与 02-memory/README.md 项目记忆示例中的CLAUDE.md保持一致(其中同样写着 "Maximum line length: 100 characters")。为了让 Claude 的产出与你的工具链一致,最好把这里的声明与项目真实配置对齐——例如实际的printWidth若被团队约定改成了 80,个人记忆与项目记忆就会互相矛盾。

把模板改造成"你自己的版本"

替换这份模板时请记住三条原则:保留"具体偏好声明"的骨架,替换其中的人物与选型;把每条规则写成 Claude 无需追问即可执行的程度;并根据仓库 02-memory/README.md 的指导控制总篇幅——单份 CLAUDE.md 建议200 行以内

如何安装与写入个人记忆

首次创建:三步落盘

02-memory/README.md 的 "Setup Personal Memory" 小节给出了标准创建流程:

# 1. 创建 ~/.claude 目录 mkdir -p ~/.claude # 2. 创建个人记忆文件 touch ~/.claude/CLAUDE.md # 3. 写入偏好模板(可直接把 personal-CLAUDE.md 的内容贴进来) cat > ~/.claude/CLAUDE.md << 'EOF' # My Development Preferences ## About Me - Experience Level: [Your level] - Preferred Languages: [Your languages] - Communication Style: [Your style] ## Code Preferences - [Your preferences] EOF

验证方式同样简单:在任意项目目录下执行ls -la ~/.claude/CLAUDE.md确认文件存在,再启动一次新的 Claude Code 会话,Claude 便会把该文件并入上下文——个人记忆会在每个项目、每次会话开始时自动加载。

会话内维护:/memory命令与对话式记忆

记忆并非一次性写完就结束,日常维护主要通过两条路径:

路径一:/memory命令。在会话中输入/memory,Claude 会打开编辑器并列出可选范围(受管策略记忆、项目记忆./CLAUDE.md、用户记忆~/.claude/CLAUDE.md、本地项目记忆)。选择用户记忆后,你的默认编辑器会打开~/.claude/CLAUDE.md,保存并关闭后 Claude 自动重新加载。它适合大批量增改与结构重组(02-memory/README.md 将其定位为"ongoing maintenance",而/init定位为一次性初始化)。

路径二:对话式请求。直接对 Claude 说"Remember that…"或"Please add to memory: …",Claude 会先与你确认写入哪个文件,再执行写入:

User: 记住,我执行 Python 脚本前会先检查是否存在虚拟环境(venv),存在则激活后再执行。 Claude: 我把它加入你的记忆。请选择保存位置: 1. 项目记忆(./CLAUDE.md) 2. 个人记忆(~/.claude/CLAUDE.md) User: 个人记忆 Claude: ✅ 规则已保存到 ~/.claude/CLAUDE.md,将应用于你的所有项目。

上面正是仓库 02-memory/README.md Example 3 之后用截屏记录的真实流程:当~/.claude/CLAUDE.md尚不存在时,Claude 会先读取失败、再替你创建并写入(README 中附注 "Claude has not save the rule because I did not have anyClaude.mdfile anywhere"),随后向用户确认位置并完成保存。需要留意的是,早期版本曾提供#前缀的行内快捷写入语法,但在当前版本(v2.1.220 主线文档)中该快捷方式已停用,应统一改用/memory或对话式请求。

个人记忆该写什么、不该写什么

内容分级:先选对层级,再动笔

02-memory/README.md 的 "Memory Management Tips" 给出了选择记忆层级的判断表,可直接作为"要不要写进个人记忆"的决策依据:

使用场景应选的记忆层级理由
公司安全策略Managed Policy全组织、全项目生效
团队代码风格指南Project(项目记忆)通过 Git 与团队共享
你偏好的编辑器快捷键User(个人记忆)纯个人偏好,无需共享
API 模块规范Directory(目录记忆)仅作用于该模块子树

Do's:值得写进去的

  • 具体、可执行:写"所有 JavaScript 文件使用 2 空格缩进",而不是"遵循最佳实践";
  • 保持结构清晰:用明确的 Markdown 章节组织,便于 Claude 检索与/memory维护;
  • 善用@导入:用@path/to/file引用已有文档,避免复制粘贴产生多份副本;导入支持相对/绝对路径,递归深度上限 4 层,首次导入外部位置会触发批准弹窗(用于安全确认);
  • 记录高频命令与工具:把你反复使用的命令固化下来,为每个会话省下重复解释的时间;
  • 定期复盘更新:项目与技术栈演进后同步修订,避免陈旧偏好误导 Claude。

Don'ts:必须避免的

  • 绝不存放密钥:API Key、密码、Token、凭据一律不写入;
  • 不写敏感数据:PII、私密或专有信息禁止入库;
  • 不重复造内容:能@导入就不要复制粘贴;
  • 不要空泛:杜绝"写高质量代码"这类无法执行的表述;
  • 不要过长:单份 CLAUDE.md 目标 200 行以内——文件虽会全量加载,但超过一定规模后指令遵从度会随篇幅下降;
  • 不要过度分层:谨慎使用目录级覆盖,避免创建过多层级;
  • 不要放任过期:过时记忆会制造混乱与错误实践。

别写"验证提醒"

02-memory/README.md 特别警示了一类内容:诸如"完成前一定要先跑测试""记得复核你的工作"这类验证提醒,在 Claude Opus 5 与 Fable 5 上会诱发过度验证——Claude 反复复查本就正确的成果,白白消耗轮次与 Token。仓库指南引用的事实是:Anthropic 为 Claude 5 一代精简了超过 80% 的官方系统提示而未产生可测量的性能回退,因此原则同样适用于个人记忆:陈述目标、让 Claude 自行判断,而不是枚举它该执行的检查。真正非显然的项目约束(如"集成测试需要 Docker 在运行")属于信息而非提醒,应当保留;而"总是先跑测试再说完成"这类措辞,在面向新一代模型时应从既有 CLAUDE.md 中删除。

文件膨胀后的"卸载"路径

当个人记忆超过 200 行,优先把内容迁移出去而非压缩措辞(依据 02-memory/README.md 的 "Keeping CLAUDE.md Small"):

内容类型迁移去向理由
多步骤操作流程Skills按需加载,仅相关时进入上下文
目录/文件类型相关规则.claude/rules/*.md(配paths:frontmatter)按 glob 作用域,触达匹配文件才加载
参考资料与长示例Skill 的references/目录仅在 Skill 需要时读取
Claude 该记住的"关于你"的动态信息Auto memory(默认开启)由 Claude 自动写入与加载

要注意:@path导入能整理大文件,但并不能省上下文——导入内容仍会在加载时被完整并入。真正减少加载量的手段是拆成按需加载的 path 作用域规则。

与仓库内其他记忆文件的配合

claude-howto 仓库把三种典型记忆文件分开存放,方便对照它们的分工差异:

  • 02-memory/personal-CLAUDE.md:用户级记忆样板,对应~/.claude/CLAUDE.md,本文主体;
  • 02-memory/project-CLAUDE.md:项目级记忆样板,对应./CLAUDE.md,含项目概览、命名规范、Git 工作流、测试要求、API 规范、常用命令、已知问题等,随 Git 共享给团队;
  • 02-memory/directory-api-CLAUDE.md:目录级记忆样板(./src/api/CLAUDE.md),文件头明确写了它"supplements"而非"overrides"根 CLAUDE.md,并在 Claude 读取该子树文件时按需加载。

三者叠加使用时的正确心智模型是:个人记忆回答"我习惯怎么写",项目记忆回答"这个项目怎么写",目录记忆回答"这块代码怎么写"——Claude 在同一份上下文中拼接使用它们,而不是用项目文件"覆盖"掉你的个人偏好。理解了这层关系,再回头填写~/.claude/CLAUDE.md,你就能准确判断:哪些偏好属于"我这个人的默认值",应当放进个人记忆并长期受益于每一个 Claude Code 会话。

【免费下载链接】claude-howtoA visual, example-driven guide to Claude Code — from basic concepts to advanced agents, with copy-paste templates that bring immediate value.项目地址: https://gitcode.com/GitHub_Trending/cl/claude-howto

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询