claude code 的五层记忆架构
CLAUDE.md 的内容会每次对话都加载,所以要精简。把“每次都需要”的内容放这里,把“偶尔需要”的内容放到 Skills 或文档里

CLAUDE.md 的说明和示例
5. 企业策略级记忆设定
C:\Program Files\ClaudeCode\CLAUDE.md# 公司开发策略
## 安全要求
- 禁止在代码中硬编码任何密钥或敏感信息
- 所有 API 调用必须使用 HTTPS
- 用户输入必须经过验证和清理
## 合规要求
- 所有日志必须排除 PII(个人身份信息)
- 数据库连接必须使用加密传输
## 禁止项
- 禁止使用未经审批的第三方库
- 禁止直接访问生产数据库6. 用户级内容设定
~/.claude/CLAUDE.md# 个人偏好
## 沟通方式
- 使用中文回复
- 代码注释使用英文
- 解释简洁直接,不要过多铺垫
## 通用代码风格
- 缩进使用 2 空格
- 优先使用 async/await
- 变量命名使用 camelCase
- 常量命名使用 UPPER_SNAKE_CASE
## 我的常用工具
- 包管理器: uv
- 编辑器: VS Code
- 终端: zsh7. 项目级团队共享规范
项目根目录的 ./CLAUDE.md# 项目:订单服务 API
## 技术栈
- Node.js 20 + TypeScript
- Fastify(Web 框架)
- Prisma(ORM)
- PostgreSQL + Redis
- Zod(数据验证)
## 目录结构
src/
├── routes/ # 路由定义
├── controllers/ # 请求处理
├── services/ # 业务逻辑
├── repositories/ # 数据访问
├── schemas/ # Zod schemas
└── types/ # 类型定义
## API 响应格式
```typescript
interface ApiResponse<T> {
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 - 运行数据库迁移本地级个人工作空间
项目根目录的./CLAUDE.local.md# 本地开发笔记
## 8. <a name='-1'></a>我的环境
- 本地 API: http://localhost:3000
- 测试数据库: order_service_dev
- Redis: localhost:6379
## 9. <a name='-1'></a>测试账号
- admin@test.com / test123
- user@test.com / test123
## 10. <a name='-1'></a>当前工作
- 正在重构支付模块
- 参考 PR #234 的讨论
- 周五前完成
## 11. <a name='-1'></a>调试技巧
- 订单状态机日志: LOG_LEVEL=debug pnpm dev
- 查看 Redis 缓存: redis-cli KEYS "order:*"** 记得把 CLAUDE.local.md 加入 .gitignore!
规则目录:分类组织
位置:.claude/rules/*.md.claude/
└── rules/
├── typescript.md # TypeScript 规范
├── testing.md # 测试规范
├── api-design.md # API 设计规范
└── security.md # 安全规范条件作用域示例:.claude/rules/testing.md
编写高效的 CLAUDE.md
- 核心原则1:Less is More
- 核心原则2:具体优于泛泛
- 核心原则3:关键三问题 WHY / WHAT / HOW
- 核心原则4:渐进式披露:不要把一切都塞进 CLAUDE.md
优化已有的 CLAUDE.md
- 技术栈,目录结构,核心编码规范
- 详细的API 文档,数据库表结构,部署流程 (移动到单独文档)
- 可以考虑进一步把测试规范、前端规范、后端规范拆分到 .claude/rules/,并设置 paths条件。
记忆管理命令
/memory
/memory edit # 编辑项目级 CLAUDE.md
/memory edit user # 编辑用户级记忆
/memory edit local # 编辑本地级记忆