Skip to content

Claude Code配置指南:CLAUDE.md、Rules与Settings完整手册

2026年4月28日

Claude Code配置指南:CLAUDE.md、Rules与Settings完整手册

配好.claude目录,Claude Code从「每天来个新实习生」变成「读过你所有项目文档的老同事」。

问题:每次新会话,Claude什么都不记得

你上次告诉它「这个项目用pnpm不用npm」「测试要先跑db:reset」「commit message用中文」,下次它又从头问你一遍。

更头疼的是版本差异:你的项目用MySQL 5.7,它给你写了个8.0才有的窗口函数;项目跑在JDK 8上,它随手就用var和Records。

问题本质:Claude不了解你的项目背景,每次都在用「通用最佳实践」猜。

.claude目录全景地图

your-project/                          # 项目级(提交到Git,团队共享)
├── CLAUDE.md                          # 项目说明书
├── CLAUDE.local.md                    # 个人覆盖(自动gitignore)
└── .claude/
    ├── settings.json                  # 权限+行为配置
    ├── settings.local.json            # 个人配置覆盖
    ├── rules/                         # 模块化规则文件
    │   ├── code-style.md
    │   ├── testing.md
    │   └── api-conventions.md
    ├── skills/                        # 可复用技能包
    └── agents/                        # 自定义AI角色

~/.claude/                             # 用户级(本地,跨项目生效)
├── CLAUDE.md                          # 全局个人偏好
├── settings.json                      # 全局配置
├── rules/                             # 用户级规则
└── projects/<project>/memory/        # Auto Memory存储

官方建议:大多数人只需要编辑CLAUDE.md和settings.json,其余可选。

三层架构

层级文件作用
知识层CLAUDE.md、rules/、Auto Memory告诉Claude「你的项目是什么」
行为层settings.json告诉Claude「你喜欢怎么工作」
能力层skills/、hooks、agents/让Claude做更多事

CLAUDE.md:最重要的单一配置

放在哪里

层级位置用途共享范围
项目说明./CLAUDE.md团队共享的项目文档通过Git共享
用户偏好~/.claude/CLAUDE.md个人跨项目偏好仅自己
本地覆盖./CLAUDE.local.md个人项目定制仅自己

关键细节

  • 子目录也可以放CLAUDE.md,按需加载
  • /compact后不会丢失,会重新从磁盘读取
  • HTML注释<!-- -->会自动去除,不浪费token

导入语法

markdown
# 引用项目文档
参考项目文档 @README.md 和 @package.json

# 引用外部指令
- git工作流 @docs/git-instructions.md
- 个人偏好 @~/.claude/my-project-instructions.md

最大5层递归深度。AGENTS.md不会自动读取,需用@AGENTS.md导入。

该写什么(六大板块)

板块写什么举例
项目概述一句话说明"Express REST API, Node 20, PostgreSQL via Prisma"
常用命令构建、测试、部署pnpm dev / pnpm test / pnpm build
架构边界关键目录划分"handlers在src/handlers/,domain逻辑在src/domain/"
编码规范命名、风格、约定"用zod做请求校验,返回格式统一{data, error}"
安全底线NEVER列表"不准改.env、lockfile、CI secrets"
压缩指令Compact Instructions"压缩时必须保留:架构决策、已改文件、验证状态"

不该写什么

❌ 别写原因
大段背景介绍Claude不需要公司历史
完整API文档用@path导入链接
空泛原则"写高质量代码"无法执行
Claude自己能推断的信息它会自己ls和cat
已经在linter配置里的东西别重复
大量低频任务知识放到Skills里按需加载

控制在200行以内。Anthropic官方CLAUDE.md约2.5K tokens。写太长反而挤占上下文。

实战模板

模板一:开发者项目

markdown
# Project: Acme API

## Commands
npm run dev          # Start dev server
npm run test         # Run tests (Jest)
npm run lint         # ESLint + Prettier check
npm run build        # Production build

## Architecture
- Express REST API, Node 20
- PostgreSQL via Prisma ORM
- All handlers live in src/handlers/
- Shared types in src/types/

## Conventions
- Use zod for request validation in every handler
- Return shape is always { data, error }
- Never expose stack traces to the client
- Use the logger module, not console.log

## Watch out for
- Tests use a real local DB, not mocks. Run `npm run db:test:reset` first
- Strict TypeScript: no unused imports, ever

模板二:工程化完整版

markdown
# Project Contract

## Build And Test
- Install: `pnpm install`
- Dev: `pnpm dev`
- Test: `pnpm test`
- Typecheck: `pnpm typecheck`
- Lint: `pnpm lint`

## Architecture Boundaries
- HTTP handlers live in `src/http/handlers/`
- Domain logic lives in `src/domain/`
- Do not put persistence logic in handlers
- Shared types live in `src/contracts/`

## Coding Conventions
- Prefer pure functions in domain layer
- Do not introduce new global state without explicit justification
- Reuse existing error types from `src/errors/`

## NEVER
- Modify `.env`, lockfiles, or CI secrets without explicit approval
- Remove feature flags without searching all call sites
- Commit without running tests

## ALWAYS
- Show diff before committing
- Update CHANGELOG for user-facing changes

## Verification
- Backend changes: `make test` + `make lint`
- API changes: update contract tests under `tests/contracts/`
- UI changes: capture before/after screenshots

## Compact Instructions
Preserve:
1. Architecture decisions (NEVER summarize)
2. Modified files and key changes
3. Current verification status (pass/fail commands)
4. Open risks, TODOs, rollback notes

如何写出自己的CLAUDE.md

方法一:让Claude帮你生成初版

输入/init,Claude会分析项目结构、package.json、代码风格,生成CLAUDE.md初稿。

方法二:从踩坑开始写

发现Claude犯错(用错版本、改错文件、格式不对),纠正后马上加一行到CLAUDE.md。

创始人Boris Cherny推荐:「Update your CLAUDE.md so you don't make that mistake again.」

方法三:问自己三个问题

  1. 新人入职第一天,你会告诉他什么?
  2. 你被Claude坑过什么?
  3. 你重复说过哪些话?

rules/:红线清单

当CLAUDE.md超过200行,或不同目录需要不同规则时,拆到rules/:

.claude/rules/
├── code-style.md          # 代码风格约束
├── testing.md             # 测试规范
└── api-conventions.md     # API设计规则

支持路径限定

markdown
---
paths:
  - "src/api/**/*.ts"
---

# API开发规则
- 所有API端点必须包含输入校验
- 使用标准错误响应格式
- 不要在handler里写持久化逻辑

Auto Memory:Claude自己的笔记本

CLAUDE.md是你写给Claude的,Auto Memory是Claude写给自己的。

存在~/.claude/projects/<project>/memory/下,下次开会话时自动加载前200行。

关键点

  • 默认开启,可用/memory关闭
  • 本地存储,不通过Git共享
  • 同一个Git仓库的所有worktree共享

三者分工

维度CLAUDE.mdrules/Auto Memory
谁写的Claude
是什么入职手册红线清单工作笔记
何时加载每次启动启动/按路径触发每次启动
提交Git

settings.json:行为层配置

文件位置和优先级

优先级位置用途
最高.claude/settings.local.json个人项目覆盖
.claude/settings.json团队共享配置
最低~/.claude/settings.json个人全局配置

常用配置项

json
{
  "$schema": "https://json.schemastore.org/claude-code-settings.json",
  "permissions": {
    "allow": [
      "Bash(npm run lint)",
      "Bash(npm run test *)",
      "Read(~/.zshrc)"
    ],
    "deny": [
      "Bash(curl *)",
      "Read(./.env)",
      "Read(./.env.*)"
    ]
  },
  "env": {
    "CLAUDE_CODE_EFFORT_LEVEL": "max"
  }
}

要点

  • $schema:加上后有自动补全和校验
  • permissions:allow免确认、deny直接禁止
  • env:注入环境变量

怎么分层

放全局放项目级
默认模型和effort级别权限配置
API中转地址和密钥项目特定环境变量
个人习惯的环境变量提交到Git,团队统一

权限思路:高频操作免确认,危险操作拦住。

从零搭建五步法

Step 1:用/init生成初版CLAUDE.md

bash
/init

自动分析项目结构,生成CLAUDE.md初稿。

Step 2:补rules/

bash
mkdir -p .claude/rules

CLAUDE.md超过200行时拆分强制约束。

Step 3:配settings.json

bash
cat > .claude/settings.json << 'EOF'
{
  "$schema": "https://json.schemastore.org/claude-code-settings.json",
  "permissions": {
    "allow": [
      "Bash(npm run *)",
      "Bash(git status)",
      "Bash(git diff *)"
    ],
    "deny": [
      "Bash(rm -rf *)",
      "Read(./.env)"
    ]
  }
}
EOF

Step 4:确认Git提交策略

提交到Git不提交
CLAUDE.mdCLAUDE.local.md
.claude/settings.json.claude/settings.local.json
.claude/rules/~/.claude/下所有内容

Step 5:持续维护

  • 每次Claude犯错 → 让它更新CLAUDE.md
  • /insight提炼经验
  • 定期review,删掉过时条目

配好之后的效果

之前:每次新会话花5-10分钟对齐上下文,一天开四五个会话浪费半小时以上。

之后:新会话一启动就直接进入状态,说「帮我给用户模块加个导出功能」,它已经知道项目用的框架、代码放哪个目录、测试怎么跑、commit message用什么格式。

Auto Memory的复利效应:用两三周后,Claude对项目的熟悉程度明显提升,记住了上次踩的坑、你偏好的写法、项目里的特殊约定。


总结

文件作用控制范围
CLAUDE.md入职手册200行以内
rules/红线清单按路径生效
Auto Memory工作笔记自动积累
settings.json行为偏好allow高频、deny危险

配好这些,Claude Code每次启动就自动带着你的项目上下文,不用再重复解释。把精力聚焦在业务问题本身。


关键词:Claude Code配置, CLAUDE.md, rules规则, settings权限, Auto Memory, .claude目录

不要孤军奋战啦!

加入微信群一起学习交流 AI

与大神一起使用 OpenClaw、Hermes、Claude Code、Seedance 2.0、GPT-Image-2 等

微信公众号

扫码关注微信公众号
私信 "加群",将自动获取微信群二维码

探索 AI 世界,掌握智能未来