06|CLAUDE.md 实战:写一份真正有用的项目说明
从项目模板出发编写架构、命令、规范和边界。
从项目模板出发编写架构、命令、规范和边界。
CLAUDE.md 不是百科全书,而是新同事上岗第一天贴在显示器旁的便签:怎么启动、怎么验证、哪些区域不要碰、团队真正坚持什么。过长的说明会让关键规则失焦。


本课交付物
为练习仓库编写不超过 60 行的 CLAUDE.md,包含架构地图、标准命令、代码约定、危险区和完成定义;开启新会话验证它是否被正确遵守。
开发规范
代码风格
命名约定
Git 工作流
测试要求
API 规范
数据库
部署
常用命令
团队联系人
已知问题与解决办法
相关项目
示例 2:目录级记忆
# API 模块规范
## API 专属规范
### 请求校验
### 身份验证
### 响应格式
### 分页
### 限流
### 缓存
示例 3:个人记忆
# 我的开发偏好
## 关于我
## 代码偏好
### 错误处理
### 注释
### 测试
### 架构
## 调试偏好
## 沟通方式
## 项目组织
## 工具链
示例 4:会话中更新记忆
两种常见方式:
- 直接提要求,让 Claude 把规则写进 memory
- 使用
# new rule into memory这种模式追加规则
最佳实践
应该做的
- 用项目记忆保存团队标准
- 用目录记忆保存局部差异
- 先写简洁规则,再逐步补充
- 把可重复内容写进
CLAUDE.md
不应该做的
- 不要把 README 整份复制进
CLAUDE.md - 不要把明显属于代码的实现细节硬塞进 memory
- 不要让 memory 变成垃圾桶
记忆管理建议
- 优先引用已有文档,而不是重复粘贴
- 只保留真正影响 Claude 行为的信息
- 定期整理过期或冲突的规则
安装说明
设置项目记忆
方法 1:使用 /init(推荐)
/init
方法 2:手动创建
cp project-CLAUDE.md CLAUDE.md
方法 3:快速更新
# Use semantic versioning for all releases
# Always run tests before committing
# Prefer composition over inheritance
设置个人记忆
cp personal-CLAUDE.md ~/.claude/CLAUDE.md
设置目录记忆
cp directory-api-CLAUDE.md src/api/CLAUDE.md
验证安装
- 重新打开 Claude Code 会话
- 检查
CLAUDE.md是否被自动加载 - 用一条明显会受 memory 影响的提示词测试
官方文档
如果你想看更详细的行为定义、兼容性和最新限制,建议参考 Claude Code 官方 memory 文档。
相关概念
- Slash Commands 中文参考
- Skills 中文指南
- Subagents 中文参考
- Advanced Features 中文指南
团队联系人
- 技术负责人:Sarah Chen(@sarah.chen)
- 产品经理:Mike Johnson(@mike.j)
- 运维:Alex Kim(@alex.k)
已知问题与解决方案
- PostgreSQL 连接池在高峰期限制为 20
- 解决方法:实现查询排队
- Safari 14 对 async generator 的兼容性有问题
- 解决方法:使用 Babel 转译器
关联项目
- 分析仪表盘:
/projects/analytics - 移动端 App:
/projects/mobile - 管理后台:
/projects/admin
本站实战工作台
把它当成新同事桌边的说明卡
CLAUDE.md 的价值不是把整个项目抄进去,而是让每次新会话都从同一组关键事实开始。最有用的内容通常只有五类:项目地图、标准命令、代码约定、危险区域、完成定义。它应该帮助 Agent 更快找到证据,而不是要求 Agent 相信一篇永远不会过期的百科。
先收集事实,再写规则
从 README、package.json、CI 配置和现有测试里核对启动与验证命令。不要凭印象写 npm test;项目可能要求特定 Node 版本或额外环境变量。把每条规则问成一个问题:“如果删掉它,Agent 是否更可能犯真实错误?”答案是否定的,就不该占据长期上下文。
# Project map
- frontend/: Nuxt public site and admin
- service/: Nest API and Prisma
# Verify
- Frontend tests: npm test
- Production build: use the pinned Node runtime
# Boundaries
- Preserve unrelated worktree changes
- Never print or commit secrets
# Done
- Test, build, browser evidence, and rollback note
指令要具体到行为
“保持高质量”无法执行;“新增可见文案必须同时增加 zh/en 相同 key”可以检查。“小心数据库”仍然模糊;“禁止 reset,迁移前备份,发布后检查 migration status”才是控制规则。
避免把临时任务写进永久记忆。今天要改首页轮播,不代表今后每个任务都需要读轮播实现。临时目标留在任务卡,稳定约定才进入 CLAUDE.md。
60 行实验
为练习仓库写一份不超过 60 行的 CLAUDE.md。关闭当前会话,开启新会话,只问三件事:怎样验证、哪些目录危险、完成后交付什么证据。若回答需要翻阅大量无关文件,说明说明卡缺少入口;若它机械复述长段文字,说明说明卡太重。
再故意写一条与 package.json 冲突的测试命令,观察 Agent 会盲从还是用仓库事实指出矛盾。长期指令拥有高影响力,因此也必须可被验证和修正。
维护而不是堆积
当架构、命令或发布方式变化时,同一个提交里更新说明。每季度或大版本后审计一次:删除已失效路径,合并重复规则,把事故中真正有复发价值的教训留下。Git 历史已经保存旧版本,不需要在文件里保留“过去曾经……”的考古段落。
验收
一位不了解项目的人只读这份说明,能找到入口、运行正确检查、避开危险区;文件中的每个命令都在当前仓库验证过;没有密钥、个人路径和一次性任务。做到这些,它才是项目记忆,而不是项目负担。