Claude Code - CLAUDE MD
Claude Code - CLAUDE MD
CLAUDE.md 最佳实践/维护
编写实践推荐
- 每个md不超过200行
- 不写无效规则
- 复述型 (复制完整文档等)
- 愿望型 (希望测试覆盖率90%等)
- 术语表型 (通用术语等)
- 写有效规则
- 短、具体、可验证、告诉模型为什么要遵守这条规则(等于告诉模型规则的边界)
- 持续更新
- 犯错就增加防御规则, 同时记得要删除老规则
- 长了拆到 .claude/rules/ 目录
- 高频工作流写到 commands/
- 可复用能力封装成 skills/
- skills 渐进式披露 progressive disclosure
- commands和skills都是splash command
1
2
3
4
5
6
7
8
9
10
11
~/.claude/
└── CLAUDE.md # 全局:用中文回复我、commit message 写中文
my-project/
├── CLAUDE.md # 项目根:技术栈、目录结构、命令、硬约束
├── frontend/
│ ├── CLAUDE.md # 前端模块:组件用函数式、状态管理用 Zustand
│ └── src/
└── backend/
├── CLAUDE.md # 后端模块:API 用 RESTful 风格、错误统一抛 AppError
└── src/
1
2
3
4
5
6
.claude/
└── rules/
├── testing.md # 测试规则
├── api-design.md # 接口设计规则
├── security.md # 安全规则
└── ui-components.md # UI 组件约定
Demo
- rules demo
- 带yaml的md文件
- frontmatter中的paths告诉模型只有在改相关文件才加载
1
2
3
4
5
6
7
---
paths: ["src/api/**/*.ts"]
---
# 接口设计规则
- 所有接口走 RESTful 命名(GET / POST / PUT / DELETE)
- 返回值统一用 { data, error } 格式
- 错误码用 4 位数字(如 1001、1002),别用字符串
6段式建议
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# CLAUDE.md
## 1. Project Overview
(2-3 行讲清这是个啥项目,技术栈 + 定位)
- 这是一个面向 B 端的订单管理系统
- 技术栈:TypeScript + Next.js 14 + PostgreSQL
- 部署:Vercel + Supabase
## 2. Commands
(最常用的几个命令,Claude 会直接执行)
- 安装依赖:`pnpm install`
- 启动开发:`pnpm dev`
- 跑测试:`pnpm test`
- 类型检查:`pnpm typecheck`
- Lint:`pnpm lint`
## 3. Architecture
(三句话讲完架构,不要展开)
- 前端页面在 app/(App Router)
- API 路由在 app/api/
- 数据库 schema 在 prisma/schema.prisma
- 详细架构见 docs/architecture.md
## 4. Conventions
(团队真实在用的约定)
- 组件文件用 PascalCase(UserCard.tsx)
- 工具函数用 kebab-case(format-date.ts)
- API 返回统一用 { data, error } 格式
- 错误处理用 Result type,不要 throw
## 5. Hard Constraints
(这部分要严,Claude 越界一次就要补)
- 不要写入 production 数据库(去年事故)
- 不要修改 prisma/migrations/ 下已经合入的 migration
- 不要把 .env 文件加入 git
- 所有 API 路由必须过 requireAuth() middleware
## 6. Gotchas
(每个新人都踩过的坑)
- 跑 dev 之前要先 pnpm db:push 同步 schema
- macOS 上 Prisma 偶发崩溃,重启 dev server 就好
- Vercel 部署日志在 dashboard 里看,不在终端
- AGENTS.md 和 CLAUDE.md
- 可以通过@AGENTS.md/@CLAUDE.md使两个互通, 不用写两遍
This post is licensed under CC BY 4.0 by the author.
