Junki
Junki
Published on 2026-03-09 / 7 Visits
0
0

Claude Code 实用指南:核心机制、关键配置与高频场景

在AI辅助开发日益普及的今天,Claude Code 作为一款以项目目录为操作沙箱的AI Agent,凭借灵活的配置、强大的场景适配能力,成为很多开发者提升效率的得力工具。本文将从核心机制、配置案例到实操场景,全方位拆解 Claude Code,帮你快速上手、熟练运用。

一、核心机制与文件体系

🧠 核心运行机制

Claude Code 的核心定位是「以项目目录为操作沙箱的AI Agent」,它不绑定特定的 Claude 模型,可通过配置环境变量接入任何兼容API的模型(如通义千问、智谱AI等),其每次会话的完整流程如下:

  1. 加载记忆文件(CLAUDE.md),获取项目背景、开发规范等核心信息;

  2. 读取代码库,快速解析现有项目结构与代码逻辑;

  3. 规划执行步骤,并调用工具(读文件、写文件、执行终端命令等);

  4. 根据当前模式,等待用户确认后执行,或自动完成操作。

📁 完整文件体系与详细说明

Claude Code 的配置文件分为项目级、用户级、组织级,不同层级的文件各司其职,协同保障开发效率。以下是完整的文件体系及核心作用解析:

文件路径核心作用补充说明
your-project/CLAUDE.md项目级记忆文件(核心)每次启动都加载,记录项目背景、技术栈、代码规范、禁止操作等
your-project/CLAUDE.local.md个人本地配置文件不提交git,记录本地数据库地址、测试账号、沙箱URL等个性化配置
your-project/.claude/Claude Code 配置根目录存放项目级配置、SubAgent定义、分文件规则等
your-project/.claude/CLAUDE.md项目级记忆文件(备选)与根目录CLAUDE.md二选一即可,功能完全一致
your-project/.claude/settings.json项目级共享配置提交git,供团队共享,配置权限规则、Hooks、MCP Server等
your-project/.claude/settings.local.json本地个人配置自动加入.gitignore,不影响团队配置
your-project/.claude/agents/SubAgent 定义目录存放专项助手(如代码审查),独立上下文,仅汇报最终结果
your-project/.claude/rules/分文件管理规则目录大项目推荐使用,按前端、后端等维度拆分规则,按需加载
~/.claude/用户级配置目录(跨所有项目生效)存放个人偏好、用户级配置、Agent Skill定义等
~/.claude/CLAUDE.md个人偏好配置每次启动任何项目都加载,记录编码风格、沟通方式等
~/.claude/settings.json用户级全局配置对所有项目生效,统一配置个人常用参数
~/.claude/skills/Agent Skill 定义目录存放轻量快捷技能(如每日日报),共享主对话上下文
/Library/Application Support/ClaudeCode/CLAUDE.md组织级策略文件优先级最高,不可覆盖,用于IT部署、组织级规范约束

🔃 配置优先级(从高到低)

当不同层级的配置出现冲突时,将按照以下优先级生效,确保配置的灵活性与规范性:

  1. 组织策略(Managed):/Library/Application Support/ClaudeCode/CLAUDE.md

  2. 命令行参数(临时覆盖):启动时输入的终端命令参数

  3. Local(本地配置):settings.local.json / CLAUDE.local.md

  4. Project(项目配置):settings.json / CLAUDE.md

  5. User(用户配置):~/.claude/ 目录下的所有配置

⏱️ 各文件加载时机一览

掌握文件加载时机,能更好地理解 Claude Code 的执行逻辑,避免配置无效或冲突:

文件名称加载时机
根目录 CLAUDE.md每次启动 Claude Code,全量读入上下文
~/.claude/CLAUDE.md每次启动任何项目时都会加载
子目录 CLAUDE.mdClaude Code 读取该目录文件时,按需加载
.claude/settings.json启动时加载,影响项目的权限控制和Hook执行
skills/xxx/SKILL.md意图匹配时自动调用,或通过命令手动触发,动态注入上下文
agents/xxx.md任务委托时,创建独立上下文并加载该SubAgent
Auto Memory(自动记忆)每次启动加载前200行,由Claude自动维护

二、关键配置和实践案例

了解完文件体系后,结合实际开发场景配置文件,才能真正发挥 Claude Code 的价值。以下是各核心配置文件的实战案例,可直接参考复用。

📄 CLAUDE.md — 项目的「开发指南」

CLAUDE.md 是项目的核心配置文件,相当于告诉 Claude Code「这是什么项目、该怎么干活」,所有开发规范、项目背景都在这里定义。

案例1:电商订单项目规范约束

# CLAUDE.md

## 项目背景
本项目为面向电商平台的订单管理系统,涉及支付、物流接口对接,需保证数据一致性。

## 技术栈
- 后端:Node.js + Express + Sequelize
- 数据库:PostgreSQL 14,所有写操作必须加事务
- 前端:Vue3 + Vite + Pinia

## 代码规范
- 所有涉及金额的字段必须做精度校验(保留2位小数)
- 禁止硬编码常量,统一放在 config/constants.js 中
- 新增接口必须添加 JWT 权限校验,无需校验的接口需标注原因

## 测试要求
- 跑测试命令:npm run test:order
- 接口测试覆盖率需达到 80% 以上

效果:Claude Code 每次启动后,写代码会自动遵守这些规范,无需每次手动提醒「记得加事务」「不要硬编码」,大幅减少沟通成本。

案例2:防止 Claude 误操作

## ⚠️ 禁止操作
- 禁止修改 `db/migrations/` 下的历史迁移文件,只能新增
- 不要删除 `config/production.js`,这是生产环境核心配置
- 提交代码前必须运行 `npm run lint` 修复代码格式问题

效果:Claude Code 会主动识别这些禁止操作,在执行相关操作前自动规避风险,避免误删核心文件、破坏生产配置。

📄 CLAUDE.local.md — 你的「本地配置备忘录」

CLAUDE.local.md 用于存储个人本地开发环境的差异化配置,不提交git,避免本地配置污染团队仓库,适合多人协作场景。

案例:本地开发环境差异化配置

# CLAUDE.local.md(不提交 git)

## 本地环境
- 本地数据库:postgresql://postgres:123456@localhost:5432/order_dev
- 测试账号:test_admin / Test@456
- 本地 Mock 支付服务器:http://localhost:9000

## 调试说明
- 启动 order-service 前需先启动 `npm run mock:pay`
- 调试时可通过 http://localhost:3000/dev 查看接口日志

效果:同事拉取代码后,可创建自己的 CLAUDE.local.md 配置本地环境,你的本地数据库地址、测试账号等信息不会影响团队其他成员。

📄 .claude/settings.json — 团队的「权限与自动化配置」

该文件是团队共享的配置文件,主要用于定义权限控制和自动化工作流(Hook),规范团队开发行为,提升协作效率。

案例1:Hook 自动代码校验与修复

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "hooks": [
          {
            "type": "command",
            "command": "cat | jq -r '.file_path' | xargs eslint --fix"
          }
        ]
      }
    ]
  }
}

效果:Claude Code 每次写完 JS/TS 文件后,会自动触发 PostToolUse Hook,执行 ESLint 校验并自动修复格式问题,确保团队代码格式统一。

案例2:危险操作权限拦截

{
  "permissions": {
    "deny": [
      "Bash(rm -rf /)",
      "Bash(TRUNCATE TABLE*)",
      "Bash(git rebase --force)"
    ]
  }
}

效果:即使 Claude Code 判断需要执行删除、清空表、强制变基等危险操作,这些命令也会被直接拦截,避免误操作导致项目崩溃、数据丢失。

📄 ~/.claude/CLAUDE.md — 跨项目的「个人开发习惯」

该文件是用户级配置,全局生效,用于定义个人编码风格、沟通方式等偏好,无论切换到哪个项目,Claude Code 都会遵守这些习惯,无需重复设置。

案例:个人编码风格 + 沟通方式

# ~/.claude/CLAUDE.md(全局生效)

## 我的编码偏好
- 代码注释用中文,变量名和函数名用英文驼峰命名
- 函数超过 40 行提示我拆分,提高可读性
- 生成 SQL 时默认加上 LIMIT 100,避免全表查询

## 沟通方式
- 回答问题先给结论,再分点解释原因
- 不确定的方案列出 2 个选项并说明优缺点,让我选择

效果:无论你切换到哪个项目,Claude Code 都会按照你的编码偏好写代码,按照你的沟通方式回复问题,贴合个人使用习惯。

📄 agents/ — 独立的「专项辅助工具」

agents 目录用于存放 SubAgent(专项助手),每个 SubAgent 拥有独立的上下文,仅汇报最终结果,适合处理任务量大、不希望污染主对话上下文的场景(如代码审查、全量测试)。

案例:接口性能审查 SubAgent

文件路径:.claude/agents/performance-reviewer.md

---
name: performance-reviewer
description: 接口性能审查专家,当用户要求性能测试或上线前调用
model: claude-sonnet-4-5
tools: [Read, Bash]
color: blue
---

## 职责
对指定接口模块进行性能扫描,重点检查:

1. **查询性能**:是否存在未加索引的慢查询、全表扫描
2. **接口响应**:接口响应时间是否超过 500ms,是否需要分页
3. **资源占用**:接口调用时 CPU、内存占用是否异常

## 输出格式
### 性能审查报告
**扫描范围**:xxx
**发现问题**:
- 🔴 高危:[描述 + 文件位置 + 影响]
- 🟡 中危:[描述 + 文件位置 + 优化建议]
**优化方案**:...

实际效果

你:帮我审查一下 order-api 模块的接口性能

Claude Code 启动 performance-reviewer(蓝色标注)
  → SubAgent 读取 25 个接口文件,模拟 1000 次请求测试...
  → 主对话上下文完全没有变化

SubAgent 完成,汇报结果:
  🔴 高危:OrderController.java:67 订单列表查询未加索引,响应时间 800ms
  🟡 中危:订单详情接口未分页,大数据量下响应缓慢,建议添加分页参数

📄 skills/ — 轻量的「快捷操作技能」

skills 目录用于存放 Agent Skill(快捷技能),与 SubAgent 不同,Skill 共享主对话上下文,适合处理与当前对话强关联、影响小的轻量任务(如写接口文档、生成测试用例)。

案例:接口文档生成 Skill

文件路径:~/.claude/skills/api-doc/SKILL.md

---
name: api-doc
description: 根据当前接口代码,生成标准化的接口文档,包含请求参数、响应格式、错误码
---

## 输出格式

### 📄 接口文档 {apiName}

**接口路径**:/api/{path}
**请求方法**:GET/POST/PUT/DELETE
**请求参数**:
| 参数名 | 类型 | 必选 | 描述 |
|--------|------|------|------|
| param1 | String | 是 | 描述信息 |

**响应格式**:
{
  "code": 200,
  "message": "success",
  "data": {}
}

**错误码说明**:
- 400:参数错误
- 401:未授权
- 500:服务器内部错误

触发方式

  • 自动识别:输入「帮我生成这个接口的文档」,Claude Code 自动调用该 Skill;

  • 手动触发:输入「/api-doc /api/order/list 订单列表接口」,直接生成标准化文档。

为什么用 Skill 而不用 SubAgent?因为接口文档需要结合当前接口的代码逻辑(主对话上下文),共享上下文能确保文档内容准确,而 SubAgent 的独立上下文无法获取这些信息。

🔗 综合场景:所有配置协同工作

以下是一个完整的开发流程,展示所有配置如何协同工作,提升开发效率:

1. 启动 claude
   ↓ 加载 CLAUDE.md          → 知道:电商订单项目、禁止硬编码
   ↓ 加载 ~/.claude/CLAUDE.md → 知道:驼峰命名、回答先给结论

2. 你说:"帮我做订单列表接口"
   ↓ Claude Code 写代码(遵守 CLAUDE.md 规范)
   ↓ 写完触发 PostToolUse Hook → 自动跑 ESLint 修复格式

3. 你说:"帮我做接口性能审查"
   ↓ 启动 performance-reviewer SubAgent(独立上下文)
   ↓ 审查完毕,主对话收到报告,上下文无影响

4. 你说:"生成这个接口的文档"
   ↓ 调用 api-doc Skill(共享上下文)
   ↓ 根据接口代码生成标准化文档

5. 同事拉代码,用他自己的 CLAUDE.local.md
   ↓ 本地环境配置各自独立,互不影响

总结:一句话记住每个文件

文件名称一句话定位核心作用
CLAUDE.md告诉 Claude "这是什么项目、按什么规范干活"
CLAUDE.local.md告诉 Claude "我本地环境的特殊配置"
.claude/settings.json告诉 Claude "团队的权限和自动化规则"
~/.claude/CLAUDE.md告诉 Claude "我个人的开发习惯"
agents/*.md给 Claude 配备"专项工具",大任务独立执行
skills/*.md给 Claude 配备"快捷技能",小任务直接调用

三、高频场景汇总

掌握以下实操场景,能让 Claude Code 充分发挥作用,覆盖开发全流程,大幅提升开发效率。

🏗️ 场景一:项目快速初始化 / 架构重构

适用时机:从零开始创建项目,或把旧架构升级为现代化框架(如jQuery项目升级为Vue3+TS+Vite)。

典型操作

  • 直接描述项目需求和技术栈,Claude Code 自动生成代码、目录结构;

  • 更改架构前,先切换到 Plan Mode 讨论方案,确认方案可行后再执行,避免无效开发。

关键技巧:模式切换

# 默认模式(每次改文件都问你)→ 自动模式(不再打扰)→ Plan Mode(只聊不动手)
Shift + Tab  # 循环切换三种模式
模式显示标识说明
默认模式? for shortcuts每次写文件前询问用户,最稳妥,适合新手
自动模式accept edits on自动执行操作,不打扰用户,效率最高,适合熟悉项目后使用
Plan Modeplan mode on只讨论开发方案,不修改任何文件,适合架构设计、方案评审

🐛 场景二:代码调试与 Bug 修复

适用时机:遇到代码报错、功能异常、测试失败等问题,无法快速定位原因。

典型操作

  • 将报错信息直接粘贴到对话中,让 Claude Code 定位报错原因、给出修复方案;

  • 描述 Bug 复现步骤,让 Claude Code 追踪调用链,排查问题;

  • 输入「!」进入 bash 模式,直接运行终端命令验证问题、测试修复效果。

♻️ 场景三:代码回滚操作

适用时机:修改代码后出现问题,想撤销某次修改,恢复到之前的状态。

# 双击 ESC 或输入 /rewind
# 选择回滚点 → 选回滚代码+会话 / 仅代码 / 仅会话

注意:Claude Code 只能回滚它直接写入的文件,由终端命令(如 npm install、mkdir 等)产生的文件无法回滚。推荐结合 git 做精准回滚,确保代码安全。

🎨 场景四:Figma 设计稿转前端代码

适用时机:有 Figma 设计稿,需要快速将设计转化为前端代码,减少手动编写成本。

两种还原方式

  1. 截图拖入 / 粘贴(Ctrl+V,非 Cmd+V):操作简单,但还原精度有限,适合简单设计;

  2. 接入 Figma MCP:获取组件间距、字体样式等精确数据,还原度高,适合复杂设计。

# 安装 Figma MCP Server 后,通过 /mcp 授权
# 然后把 Figma 设计稿链接直接贴给 Claude Code
修改当前页面,使其与 Figma 设计稿完全一致
https://www.figma.com/file/xxx...

⚙️ 场景五:自动化工作流配置(Hooks)

适用时机:每次 Claude Code 写完代码后,需要自动执行某段逻辑(如格式化、校验),避免手动操作。

典型用例:写完代码自动 prettier 格式化

# 在 /hooks 中配置
# 触发时机:PostToolUse → Write/Edit
cat | jq -r '.file_path' | xargs prettier --write --single-quote

Hook 触发时机说明

触发时机说明
PreToolUse工具执行前触发,适合前置校验
PostToolUse工具执行后触发,最常用(如格式化、校验)
OnToolError工具执行失败时触发,适合错误处理、通知
Notification发送通知时触发,适合自定义通知逻辑

🧩 场景六:Agent Skill 与 SubAgent 区别

很多人会混淆 Agent Skill 和 SubAgent,两者的核心区别在于「上下文是否独立」,具体对比如下:

特性Agent SkillSubAgent
本质动态加载的 Prompt独立的 Agent
上下文共享主对话上下文完全独立的上下文
适合场景与上下文强关联、影响小的任务(如写接口文档、生成测试用例)任务量大、影响上下文大的任务(如全项目性能审查、全量测试)
结果回传全程记录在主对话只返回最终结果

核心区别示例

假设审查 150 个接口性能:

❌ 用 Skill:150 个接口的性能数据全部塞进主对话上下文
            → Token 爆炸,后续 Claude 响应变慢、逻辑出错

✅ 用 SubAgent:独立窗口处理,主对话只收到最终性能报告
            → 主对话干干净净,可继续正常开发工作

📦 场景七:Plugin 安装与使用

适用时机:需要一键获得整套能力(Skill + SubAgent + Hook 打包),无需手动配置,快速拓展 Claude Code 功能。

/plugin          # 进入插件管理器
# Discover → 找到目标插件 → 回车安装
# 安装后重启 Claude Code 即可生效

示例:安装 api-test 插件后,Claude Code 可自动生成接口测试用例,无需手动编写,同时支持一键运行测试,快速验证接口可用性。

🔧 场景八:上下文管理技巧

当对话次数过多、上下文内容繁杂时,可通过以下命令管理上下文,减少 Token 消耗,保持对话流畅。

/compact         # 压缩上下文(保留关键信息,减少 Token 消耗)
/compact 重点保留接口开发相关内容  # 带策略的压缩,精准保留核心内容

/clear           # 清空所有上下文(开始全新任务时用)

/tasks           # 查看后台任务(如 npm run dev)
Ctrl + B         # 把前台任务放到后台,让 Claude Code 继续响应

🔄 场景九:会话恢复操作

适用时机:关闭 Claude Code 后,需要恢复上一次的对话,继续之前的开发工作,无需重新描述需求。

claude -c        # 启动并自动恢复上一次对话(continue 缩写)
/resume          # 手动选择要恢复的历史会话

⚡ 场景十:跳过权限检查(危险)

适用时机:特殊场景下(如紧急修复生产问题),需要执行被权限拦截的命令,需谨慎使用。

claude --dangerously-skip-permissions
# 跳过所有权限确认,Claude 可执行任意终端命令
# 模式显示为:bypass permissions on
# ⚠️ 慎用,理论上 Claude 拥有与你相同的终端权限

Comment