Claude Code 记忆系统与 CLAUDE.md
Claude Code 有多种方式获取项目相关知识它们的区别如下表所示这里的关键洞察是——CLAUDE.md 的内容会每次对话都加载所以要精简。把“每次都需要”的内容放这里把“偶尔需要”的内容放到 Skills 或文档里。一、Claude Code 的五层记忆架构Claude Code 支持五个层级的记忆就像洋葱一样从外到内按层级结构组织——高层级的文件优先加载为底层文件提供基础1、企业策略级记忆设定企业策略级记忆设定的作用是组织范围内的指令由 IT/DevOps 统一管理和部署组织。适合内容是公司编码标准、安全策略、合规要求以及禁止使用的库或模式。通过配置管理系统MDM、Group Policy、Ansible 等部署确保在所有开发者机器上一致分发。如果你是个人或小团队可以直接跳过企业级设定这一层不影响任何使用。位置macOS: /Library/Application Support/ClaudeCode/CLAUDE.mdLinux: /etc/claude-code/CLAUDE.mdWindows: C:\Program Files\ClaudeCode\CLAUDE.md# 公司开发策略## 安全要求- 禁止在代码中硬编码任何密钥或敏感信息- 所有 API 调用必须使用 HTTPS- 用户输入必须经过验证和清理## 合规要求- 所有日志必须排除 PII个人身份信息- 数据库连接必须使用加密传输## 禁止项- 禁止使用未经审批的第三方库- 禁止直接访问生产数据库2、用户级内容设定用户级内容设定承载的是你的全局偏好即跨所有项目生效的个人偏好如个人代码风格沟通语言设置通用工作习惯等。比如说我希望所有的 PPT 都是 16:9黑体字。这种设置就应该放在此处。用户级记忆会被项目级覆盖。如果你个人喜欢 2 空格缩进但项目要求 4 空格那就用 4 空格。位置~/.claude/CLAUDE.md# 个人偏好## 沟通方式- 使用中文回复- 代码注释使用英文- 解释简洁直接不要过多铺垫## 通用代码风格- 缩进使用 2 空格- 优先使用 async/await- 变量命名使用 camelCase- 常量命名使用 UPPER_SNAKE_CASE## 我的常用工具- 包管理器: uv- 编辑器: VS Code- 终端: zsh3、项目级团队共享规范团队共享规范是团队共享的项目知识应该提交到 Git。适合存放的内容包括项目架构和技术栈、团队编码规范、重要的设计决策和常用命令。位置项目根目录的 ./CLAUDE.md# 项目订单服务 API## 技术栈- Node.js 20 TypeScript- FastifyWeb 框架- PrismaORM- PostgreSQL Redis- Zod数据验证## 目录结构src/├── routes/ # 路由定义├── controllers/ # 请求处理├── services/ # 业务逻辑├── repositories/ # 数据访问├── schemas/ # Zod schemas└── types/ # 类型定义## API 响应格式typescriptinterface ApiResponseT {success: boolean;data?: T;error?: { code: string; message: string };}编码规范- TypeScript strict 模式- 禁止使用 any使用 unknown 类型守卫- 所有 API 端点必须有 Zod schema 验证- 业务错误使用自定义 Error 类常用命令- pnpm dev - 启动开发服务器- pnpm test - 运行测试- pnpm prisma migrate dev - 运行数据库迁移4、本地级个人工作空间个人工作空间用于记载个人工作笔记不提交到 Git适合内容包括本地环境配置、个人调试技巧、当前工作备注敏感信息测试账号等。位置项目根目录的./CLAUDE.local.md# 本地开发笔记## 我的环境- 本地 API: http://localhost:3000- 测试数据库: order_service_dev- Redis: localhost:6379## 测试账号- admintest.com / test123- usertest.com / test123## 当前工作- 正在重构支付模块- 参考 PR #234 的讨论- 周五前完成## 调试技巧- 订单状态机日志: LOG_LEVELdebug pnpm dev- 查看 Redis 缓存: redis-cli KEYS order:*