Agent工坊

【Agent工坊】Claude Code CLAUDE.md 终极配置指南:5个模板让你的AI编程产出提升3倍

CLAUDE.md 是 Claude Code 的"系统提示词"——写得好,Agent 像你的10x工程师搭档;写得差,它就是个乱改代码的实习生。本文给你5个可复制的生产级模板,覆盖全栈项目、微服务、数据分析、开源贡献和一人创业项目。

你的Claude Code是不是也这样?

  • 明明说了要用 TypeScript,它偏给你写 JavaScript
  • 让它重构代码,结果把测试全删了
  • 每次新开会话都要重新解释项目架构,烦得要死
  • 生成的代码风格和你项目里现有的完全不一致

这不是 Claude Code 不够聪明——是你的 CLAUDE.md 没写对。

CLAUDE.md 本质上是一个持久化的系统提示词,Claude Code 在每次对话开始时自动加载它。它告诉 Agent:你是谁、项目是什么、规则是什么、偏好是什么。

但 90% 的开发者要么不写 CLAUDE.md,要么只写了一行"这是个 React 项目"。今天我们把它彻底讲透。


CLAUDE.md 为什么是 Claude Code 的第一性配置

在 Claude Code 的配置体系中,有三个层级的"记忆":

层级 配置方式 生效范围 典型用途
全局 ~/.claude/settings.json 所有项目 API密钥、全局Hook
项目 CLAUDE.md(项目根目录) 当前项目 项目架构、编码规范
会话 对话中的指令 当前会话 临时需求、一次性约束

其中 CLAUDE.md 是投入产出比最高的一项

  • 写一次,每次对话自动生效
  • 不消耗 context window 中的对话轮次
  • 可以提交到 Git,团队共享

实测数据:一个 200 行的 CLAUDE.md 约消耗 ~500 tokens 的系统提示预算,但它能省掉每轮对话中「解释项目结构」的 200-500 tokens。一天 50 轮对话下来,净省 10,000+ tokens


CLAUDE.md 的黄金结构

经过大量实战验证,一个高效的 CLAUDE.md 应该包含以下 5 个模块:

# 项目名称(1行)

## 1. 项目概述(3-5句)
- 这个项目做什么
- 技术栈一句话
- 目标用户/使用场景

## 2. 技术架构(10-20行)
- 目录结构概览
- 关键模块和职责
- 数据流/请求流

## 3. 编码规范(10-20行)
- 语言/框架具体约束
- 命名规范
- 文件组织规则
- 禁止事项(非常重要!)

## 4. 常用命令(5-10行)
- 安装/构建/测试/部署
- Lint/格式化命令

## 5. 特殊约定(5-10行)
- Git 工作流
- PR/Review 流程
- 环境变量/密钥管理

下面我们逐一拆解,每个模块都有可直接复制的模板。


模板一:全栈项目(React + Node.js)

这是最常见的 AI 创业项目形态——前端 React/Next.js,后端 Node.js/Express,数据库 PostgreSQL。

# MySaaS - AI 内容创作平台

## 项目概述
全栈 SaaS 应用,帮助内容创作者用 AI 生成和排期社媒内容。
- 前端: Next.js 14 (App Router) + TypeScript + Tailwind CSS
- 后端: Node.js + Express + Prisma ORM
- 数据库: PostgreSQL (Supabase)
- AI: OpenAI API (GPT-4o) + Anthropic API (Claude 3.5 Sonnet)
- 部署: Vercel (前端) + Railway (后端)

## 目录结构

/
├── frontend/ # Next.js 前端
│ ├── app/ # App Router 页面
│ ├── components/ # 可复用组件
│ │ ├── ui/ # 基础 UI (shadcn/ui)
│ │ └── features/ # 业务组件
│ ├── lib/ # 工具函数、API 客户端
│ └── hooks/ # 自定义 Hooks
├── backend/ # Express 后端
│ ├── routes/ # API 路由
│ ├── services/ # 业务逻辑层
│ ├── middleware/ # 认证、日志等中间件
│ └── prisma/ # 数据库 Schema + 迁移
└── shared/ # 前后端共享类型定义

## 编码规范

### TypeScript
- 严格模式 (`strict: true`),禁止 `any`
- 接口用 `interface`,类型别名用 `type`
- 所有函数必须有返回类型注解
- 异步函数返回 `Promise<T>`

### React
- 组件用函数式 + Hooks,禁止 Class 组件
- 一个文件只导出一个组件
- Props  interface 定义,放在文件顶部
-  `'use client'` 明确标记客户端组件

### 命名
- 文件名: kebab-case (`user-profile.tsx`)
- 组件名: PascalCase (`UserProfile`)
- 函数/变量: camelCase (`getUserData`)
- 常量: UPPER_SNAKE_CASE (`MAX_RETRY_COUNT`)

### 禁止事项
-  不要使用 `var`
-  不要直接操作 DOM(用 React 声明式写法)
-  不要在组件中直接调用 API(用 hooks 封装)
-  不要硬编码 API 密钥或 URL(用环境变量)
-  不要删除已有的测试文件
-  **绝对不要修改 `prisma/schema.prisma` 除非我明确要求**

## 常用命令
```bash
# 开发
cd frontend && npm run dev      # 前端开发服务器 :3000
cd backend && npm run dev       # 后端开发服务器 :4000

# 测试
npm test                        # 运行所有测试
npm test -- --coverage          # 含覆盖率报告

# 数据库
cd backend && npx prisma migrate dev   # 执行迁移
cd backend && npx prisma studio        # 可视化数据库

# 部署
git push main                  # 自动触发 Vercel + Railway 部署

Git 约定

  • 分支: feature/xxx, fix/xxx, refactor/xxx
  • Commit: Conventional Commits (feat:, fix:, refactor:)
  • PR 前必须通过 lint + test
---

## 模板二:CLI 工具 / NPM 包

AI 创业者经常要写 CLI 工具或发布 npm 包。这个模板适用于单仓库、注重 API 设计的项目。

```markdown
# agent-utils - AI Agent 工具集

## 项目概述
一组用于构建 AI Agent 的 TypeScript 工具库。发布到 npm,目标用户是 Node.js 开发者。

## 架构

/
├── src/
│ ├── core/ # 核心抽象 (Agent, Tool, Memory 接口)
│ ├── tools/ # 内置工具 (FileSystem, WebSearch, CodeExec)
│ ├── memory/ # 记忆系统实现
│ └── utils/ # 内部工具函数
├── tests/ # Vitest 测试
├── examples/ # 使用示例
└── docs/ # TypeDoc 生成的 API 文档

## 编码规范

### 核心原则
- 库代码必须是无副作用的纯函数(除 tools/ 目录)
- 所有公共 API 必须有 JSDoc 注释
- 导出用 named exports,禁止 default export
- 错误用自定义 Error 子类,不要 throw 字符串

### API 设计规则
- 构造器参数用对象解构(options pattern)
- 异步操作用 AbortSignal 支持取消
- 返回类型始终明确,不依赖类型推断

### 禁止事项
-  不要在库代码中使用 `console.log`(用 debug 库)
-  不要引入超过 50KB 的依赖
-  不要修改 `package.json` 的版本号
-  不要在未讨论的情况下添加新依赖

## 测试规范
- 测试文件: `src/xxx.test.ts`(与源文件同目录)
- 每个公共 API 至少有一个测试
-  `describe`/`it` 模式,描述用英文
- Mock 外部依赖,不请求真实网络

## 常用命令
```bash
npm run build       # tsc 编译
npm test           # vitest --run
npm run lint       # eslint + prettier
npm run docs       # 生成 API 文档
npm version patch  # 发布新版本(自动 build + test + publish)
---

## 模板三:Python 数据/AI 项目

Python 是 AI Agent 开发的主力语言。这个模板适用于 Jupyter-heavy 的数据分析或 AI 模型项目。

```markdown
# ai-analytics - AI 使用数据仪表板

## 项目概述
分析 AI API 调用日志,生成成本和使用趋势报告。内部工具,非公开发布。

## 技术栈
- Python 3.12+
- 数据处理: Pandas, Polars (优先 Polars,性能更好)
- 可视化: Plotly (非 Matplotlib)
- 配置: Pydantic Settings
- 环境管理: uv (非 pip)

## 目录结构

/
├── src/
│ ├── ingest/ # 数据摄入 (API logs → Parquet)
│ ├── transform/ # 数据清洗和聚合
│ ├── visualize/ # 图表生成
│ └── report/ # 报告生成 (Markdown + HTML)
├── notebooks/ # 探索性分析(不要放生产代码)
├── tests/
└── data/ # 本地数据(gitignored)

## 编码规范

### Python 风格
- 类型注解: 所有函数签名必须有完整类型注解
- 字符串: 单引号 `'...'`(除非字符串内含单引号)
- Docstring: Google 风格
- 行宽: 100 字符

### 数据处理规范
- 优先用 Polars,仅在与 Plotly 集成时用 Pandas
- 大文件用 Parquet 格式,不要用 CSV
- 链式操作,避免中间变量

### 禁止事项
-  不要使用 `print()` 调试(用 `logging` 模块)
-  不要在 notebooks/ 中写生产代码
-  不要硬编码文件路径(用 `src/config.py`
-  不要在循环中逐行构建 DataFrame

## 常用命令
```bash
uv run pytest                    # 运行测试
uv run ruff check .              # Linting
uv run mypy src/                 # 类型检查
uv run python -m src.main        # 运行主流程
---

## 模板四:开源贡献者(多仓库协作)

如果你用 Claude Code 给开源项目提 PR这个模板告诉 Agent 如何与陌生代码库交互

```markdown
# Open Source Contributor Mode

## 核心原则
这是一个开源贡献会话我在为 [项目名] 提交 PR

## 交互规则
1. **先读后改**: 修改任何文件前先阅读相关文件和测试
2. **最小变更**: 只改实现目标所需的最小代码
3. **保持风格**: 严格遵循已有代码风格不做格式化
4. **测试先行**: 修改前理解现有测试修改后确保测试通过
5. **Commit 规范**: 遵循项目的 CONTRIBUTING.md 中的约定

## 代码探索策略
- 先看 `README.md`  `CONTRIBUTING.md`
- 再看相关源码文件的 import 和类型定义
- 最后看测试了解预期行为

## 禁止事项
-  不要在未理解的情况下删除代码
-  不要重新格式化已有代码
-  不要引入项目未使用的依赖
-  不要修改与 PR 目标无关的文件
-  不要擅自重构

## 工作流
1. 创建分支: `git checkout -b fix/description`
2. 修改 + 测试
3. 运行项目的 lint/test 命令
4. 生成 PR description

模板五:一人创业项目(全栈 + 运营)

这是给"一个人干全栈 + 内容 + 运营"的 AI 创业者准备的模板。

# AI创业内参 - 全栈一人项目

## 项目概述
AI 行业日报 + 工具教程的自动化内容生产系统。包含:
- 热点监控(cron + Hermes Agent)
- 内容生产(多 Agent 协作流水线)
- 微信公众号发布
- 网站同步(Cloudflare Pages)
- 数据分析(n8n 待搭建)

## 核心约束(非常重要!)

### 发布安全
- **绝对不要**在未人工确认的情况下发布文章
- 所有草稿必须先保存到 `content/draft-*.md`
- 发布前必须通过三审:rate_article(≥60) → rate_layout(≥80) → rate_images(≥70)

### Token 成本控制
- 单篇文章的 Agent 调用成本控制在 $0.50 以内
- 搜索优先用 HN Algolia API(免费),避免 web_search(付费)
- 长文章用 deepseek-v4(便宜),短指令用 claude-sonnet(精准)

### 内容规范
- 文章 1500-2500 字
- 必须有可复制的代码/配置片段
- 必须有具体数据(不能是"据说""可能")
- 必须标注数据来源 URL

## 常用命令
```bash
# 内容生产
python scripts/hotspot_scan.py      # 热点扫描
python scripts/generate_draft.py    # 生成草稿
python scripts/publish_wechat.py    # 发布公众号

# 网站
wrangler pages deploy www --project-name ai-neican --branch main

禁止事项

  • ❌ 不要删除 content/ 中的历史草稿
  • ❌ 不要在 .env 中硬编码 API 密钥(用环境变量)
  • ❌ 不要在文章中写"据说""可能"等无法验证的内容
  • ❌ 不要发布没有通过三审的文章
---

## CLAUDE.md 常见错误与修正

### 错误1:写成散文而非指令

❌ "这个项目用了很多现代技术,我们追求代码质量和最佳实践..."
✅ "TypeScript strict mode,禁止 any,文件名 kebab-case"

CLAUDE.md 是给 AI 看的,AI 需要**精确、可执行**的指令,不需要氛围描述。

### 错误2:只有禁止没有允许

❌ "不要写烂代码"
✅ "用函数式组件 + Hooks,一个文件一个组件,Props 用 interface 定义"

只说"不要什么",AI 仍然不知道"要什么"。正向示例比禁止更有效。

### 错误3:放临时的任务描述

❌ "今天需要完成用户登录模块 # TODO"
✅ 临时任务放在对话中说,CLAUDE.md 只放持久化的项目规则

CLAUDE.md 会被 Git 追踪。临时的 TODO 会让 Agent 在每次对话中都以为要做这个任务。

### 错误4:过长或过短

❌ 10 行:只说"这是 React 项目"
❌ 500 行:连每个组件的作用都写了
✅ 80-200 行:架构概览 + 关键规则 + 禁止事项
```

AI 的注意力是有限的。太短没信息量,太长稀释重点。80-200 行是最佳区间。

错误5:忘记更新

代码库重构了,CLAUDE.md 还是旧的目录结构 → Agent 在错误的上下文中工作。每完成一个大功能就更新一次 CLAUDE.md。


效果评估:你怎么知道 CLAUDE.md 起作用了?

好的 CLAUDE.md 应该让你感受到这些变化:

  1. 新会话成本降低:不再需要每次解释项目结构
  2. 代码风格一致:Agent 生成的代码和已有代码看不出区别
  3. 减少"你错了"的纠正回合:Agent 第一次就按规则来
  4. 安全边界生效:Agent 不会擅自改不该改的文件

一个简单测试:新开一个对话,只给一句话任务(如"给用户表加个 avatar 字段"),看 Agent 是否:
- 知道了你的 ORM 是 Prisma 并修改了正确的 schema 文件
- 遵循了你的命名规范(avatar_url 而非 avatarUrl
- 没有碰你不让碰的文件

全中 = CLAUDE.md 写对了 ✓


行动清单:现在就能做的事

  1. 今天就写:打开项目根目录,创建 CLAUDE.md,至少写 50 行
  2. 从模板开始:从上文 5 个模板中选择最接近你项目的,填充你的具体信息
  3. 先写禁止事项:如果时间紧,至少把"绝对不要做的事"写清楚——这是安全网
  4. 测试:新开一个 Claude Code 会话,给一个简单任务,观察 Agent 是否遵循规则
  5. 迭代:发现 Agent 犯了什么错误,就把规则加到 CLAUDE.md 里

一个 200 行的 CLAUDE.md,花 20 分钟写完,但未来 200 天,每天帮你省至少 10 分钟。这个投资回报率,你自己算。


本文是「Agent工坊」系列第 N 期。每周一个可复制的 AI Agent 配置模板,帮助 AI 创业者把 Agent 从"能用"提升到"好用"。

Agent工坊 #ClaudeCode #CLAUDE.md #AI编程 #一人公司 #效率工具