现在位置: 首页 > Claude Code 教程 > 正文

Claude Code 开发配置

你有没有遇到过这些情况?

  • 每次打开新会话,又要跟 Claude 重新解释一遍我们项目的命名规范
  • Claude 突然跑去执行了一条危险命令,比如删文件
  • 让 Claude 做代码审查,结果它把整个项目都塞进上下文,又慢又贵
  • 你精心调教出来的一套 Claude 用法,新同事完全不知道怎么复用

这些问题,都可以用一套叫做 Agent Development Kit(ADK,智能体开发套件) 的结构来解决。

它的核心就是 5 个文件夹,通过这 5 个文件夹我们可以把 Claude Code 变成一支有记忆、懂规矩、会分工、能复制的自动化开发团队。

整体结构:

你的项目/
├── CLAUDE.md/     ← 第一层:记忆
├── skills/        ← 第二层:知识
├── hooks/         ← 第三层:护栏
├── subagents/     ← 第四层:分工
└── plugins/       ← 第五层:复制

层级 目录 / 文件 作用 核心意义 类比理解
第1层 CLAUDE.md/ 智能体的全局规则与记忆中心 定义 AI 的行为规范、项目背景、开发约束 AI 项目操作手册
architecture.rules 架构规则定义 规定代码结构、命名规范、目录设计 技术团队编码规范
global.md 全局共享记忆 所有项目都生效的长期规则 AI 的长期记忆
project.md 当前项目专属记忆 当前仓库的业务背景、特殊要求 项目 README 的增强版
第2层 skills/ 技能模块目录 给 AI 注入专业能力 AI 的技能库
SKILL.md 技能描述文件 告诉 AI 什么情况下调用该技能 技能说明书
scripts/ 技能脚本目录 存放自动化脚本与模板 工具箱
context.md 技能上下文 提供技能运行时需要的背景知识 专业知识库
第3层 hooks/ Hook 钩子系统 在执行前后自动插入检查逻辑 自动安全审计
PreToolUse.sh 工具执行前钩子 执行命令前做校验 "危险操作确认器"
PostToolUse.sh 工具执行后钩子 执行完成后自动处理 自动格式化、通知
SessionStart.sh 会话启动钩子 初始化开发环境 IDE 启动脚本
第4层 subagents/ 子智能体目录 拆分不同专业 Agent AI 团队协作系统
code-reviewer.md 代码审查 Agent 专门负责代码 Review Reviewer 工程师
test-runner.md 测试 Agent 自动运行测试 QA 测试工程师
explorer.md 探索型 Agent 分析代码库结构 技术调研员
第5层 plugins/ 插件系统 将能力模块化分发 AI 应用市场
manifest.json 插件配置清单 定义插件元数据 npm package.json
marketplace.url 插件市场地址 插件下载与共享入口 应用商店
team.install 团队安装脚本 一键同步团队环境 DevOps 初始化脚本

每一层解决一个具体问题,下面逐一拆解。


第一层:CLAUDE.md — 给 Claude 装一块长期记忆

问题是什么?

Claude 没有跨会话记忆。你今天告诉它组件命名用大驼峰,明天开新会话它就忘了。

解决方案

在项目里放一个 CLAUDE.md 文件,把所有不想重复说的事写进去。每次会话开始,Claude 自动读取它。

两个文件,两个作用范围:

文件位置 作用范围
~/.claude/CLAUDE.md 你电脑上的所有项目都生效
项目根目录 .claude/CLAUDE.md 只对这一个仓库生效

写什么进去?想想你最常对 Claude 重复说的话:

# 项目:我的电商平台

## 技术栈
- 前端:Next.js 14(App Router)
- 样式:Tailwind CSS
- 数据库:PostgreSQL + Prisma

## 命名规范
- 组件文件:大驼峰,如 `UserCard.tsx`
- 工具函数:小驼峰,如 `formatPrice.ts`
- API 路由:短横线,如 `/api/user-profile`

## 注意事项
- 禁止使用 `any` 类型
- 所有异步函数必须有 try/catch
- 提交代码前必须通过 ESLint 检查
- 不要直接操作 `main` 分支

## 代码风格
- 缩进:2 个空格
- 引号:单引号
- 函数优先用箭头函数

效果: 你再也不用在每次对话开头粘贴一大段背景介绍了。


第二层:skills/ — 把你的经验存起来

问题是什么?

你每次让 Claude 帮我写一个新组件,它可能每次做法都不一样——有时候加测试,有时候不加,有时候有 TypeScript 类型,有时候没有。

解决方案

把标准做法写成技能文件放进 skills/ 目录,Claude 会根据你的任务描述,自动匹配并调用对应的技能,你不需要输入任何命令。

目录结构:

skills/
├── SKILL.md              ← 技能索引(描述 + 触发条件)
├── create-component.md   ← 创建 React 组件的标准流程
├── write-api.md          ← 写接口的标准流程
└── fix-bug.md            ← 排查 Bug 的标准流程

一个技能文件长什么样?

---
name: create-react-component
description: >
  当用户说"创建组件"、"新建页面"、"写一个 UI"时,
  自动调用此技能。
---

# 创建 React 组件的标准流程

## 步骤
1. 检查 `src/components/` 下是否已存在同名组件
2. 用大驼峰命名新建 `.tsx` 文件
3. 必须定义 TypeScript interface,不允许 any
4. 同步在 `src/stories/` 下新建对应的 Storybook 故事
5. 在 `__tests__/` 下新建单元测试文件

## 代码模板
\`\`\`tsx
interface Props {
  // 在这里定义 props
}

export const ComponentName: React.FC<Props> = ({ }) => {
  return <div>{/* 内容 */}</div>;
};
\`\`\`

效果: 你说帮我创建一个用户卡片组件,Claude 自动按照你团队的标准流程来做,测试、类型、文档一个不漏。

💡 通俗理解: 这就像给一个新员工写了一本《操作手册》,它照着手册做事,不需要你每次盯着。


第三层:hooks/ — 设一道不可绕过的护栏

问题是什么?

AI 有时候会做出一些你绝对不想要的操作——比如在生产环境直接删数据库,或者跑了一条 rm -rf 命令。这种事情靠在提示词里说不要这样做是不可靠的。

解决方案

Hooks 是在 Claude 每次工具调用前后自动运行的 Shell 脚本。它是纯代码逻辑,确定性执行,AI 绕不过去。

三个核心文件:

hooks/
├── PreToolUse.sh    ← 工具调用「之前」运行
├── PostToolUse.sh   ← 工具调用「之后」运行
└── SessionStart.sh  ← 会话「开始时」运行

PreToolUse.sh 示例 — 拦截危险命令:

#!/bin/bash
# 检查 Claude 准备执行的命令

TOOL_INPUT="$2"

# 禁止执行 rm -rf /
if echo "$TOOL_INPUT" | grep -qE "rm\s+-rf\s+/"; then
  echo "已拦截:禁止执行破坏性删除命令" >&2
  exit 1
fi

# 禁止在没有确认的情况下操作生产数据库
if echo "$TOOL_INPUT" | grep -q "prod_db" && echo "$TOOL_INPUT" | grep -qE "DROP|DELETE"; then
  echo "已拦截:生产数据库的破坏性操作需要人工确认" >&2
  exit 1
fi

exit 0

PostToolUse.sh 示例 — 保存文件后自动格式化:

#!/bin/bash
# 每次 Claude 写完文件,自动跑 lint 和格式化

TOOL_NAME="$1"
FILE_PATH="$2"

if [ "$TOOL_NAME" = "write_file" ]; then
  case "$FILE_PATH" in
    *.ts|*.tsx|*.js|*.jsx)
      npx eslint --fix "$FILE_PATH"
      npx prettier --write "$FILE_PATH"
      echo "已自动格式化:$FILE_PATH"
      ;;
  esac
fi

效果:

  • Claude 写完代码,自动帮你 lint,不用你手动跑
  • 危险命令在执行前就被拦截,你连看都不用看
  • 部署脚本跑完,自动发 Slack 通知给团队

💡 通俗理解: 就像工厂流水线上的质检环节。产品出厂前强制过一遍,不符合规格的直接挡回去,不依赖工人的个人判断。


第四层:subagents/ — 让专门的人做专门的事

问题是什么?

让 Claude 在一个会话里同时做"代码审查 + 跑测试 + 写文档",上下文会越来越大,越来越慢,而且各种任务互相干扰。

解决方案

把不同任务拆分给独立的子代理。每个子代理有自己独立的上下文窗口、专属的工具权限,只做一件事,做完汇报结果。

目录结构:

subagents/
├── code-reviewer.md   ← 专门做代码审查
├── test-runner.md     ← 专门跑测试
└── doc-writer.md      ← 专门写文档

code-reviewer.md 示例:

---
name: code-reviewer
description: PR 需要代码审查时调用此代理
tools:
  - read_file        # 只允许读文件
permissions:
  - read_only        # 只读权限,绝对不会误操作
---

# 代码审查专用代理

你是一名资深代码审查员。你只会收到 git diff,不需要了解整个项目。
你没有写入权限,只能阅读和分析。

## 审查清单
- [ ] 有没有硬编码的密钥或密码?
- [ ] 新函数有没有对应的单元测试?
- [ ] TypeScript 类型是否明确,有没有 any?
- [ ] 异步操作有没有错误处理?
- [ ] 有没有遗留的 console.log?

## 输出格式
1. **总体评价**:一句话说清楚
2. **必须修改**:阻塞合并的问题
3. **建议优化**:非阻塞的改进项
4. **结论**:可以合并 / 需要修改

整体运作流程:

你说:"帮我审查这个 PR 并运行测试"
          │
          ├──→ 调用 code-reviewer 子代理
          │         独立上下文,只看 diff,只读权限
          │         返回:结构化审查报告
          │
          ├──→ 调用 test-runner 子代理
          │         独立上下文,有执行测试的权限
          │         返回:测试通过/失败摘要
          │
          └──→ 主会话汇总结果,上下文始终保持干净

💡 通俗理解: 就像一个包工头。他自己不撸代码,但他手下有专门的水电工、瓦工、木工。谁的活儿谁干,互不干扰,最后包工头统一汇报进度。


第五层:plugins/ — 一键复制给全团队

问题是什么?

你花了好几天把以上四层全部调教好了,但新同事入职,他怎么知道这套配置?难道要让他再配置一遍?

解决方案

把整套系统打包成一个插件,新成员执行一条命令,立刻拥有和你完全相同的 Claude Code 工作环境。

目录结构:

plugins/
├── manifest.json    ← 描述插件包含什么
├── marketplace.url  ← 分享链接
└── team.install     ← 一键安装脚本

team.install 示例:

#!/bin/bash
echo "&#x1f680; 正在安装团队 ADK 配置..."

# 安装项目级 CLAUDE.md
cp ./CLAUDE.md/project.md ./.claude/CLAUDE.md

# 安装所有技能
mkdir -p ./.claude/skills && cp -r ./skills/* ./.claude/skills/

# 安装钩子(记得加执行权限)
mkdir -p ./.claude/hooks && cp -r ./hooks/* ./.claude/hooks/
chmod +x ./.claude/hooks/*.sh

# 安装子代理
mkdir -p ./.claude/subagents && cp -r ./subagents/* ./.claude/subagents/

echo "安装完成!Claude Code 已配置为团队模式。"

新同事入职第一天:

bash plugins/team.install

完毕。和你用的是完全一样的 Claude Code。

💡 通俗理解: 就像公司的"新员工电脑配置包"。IT 部门做好一个镜像,新人一键安装,环境和老员工一模一样,不用挨个手动配。

完整流程图:5 层如何协同工作

开发者输入任务
      │
      ▼
  CLAUDE.md        → 加载项目规范和背景知识
      │
      ▼
  skills/          → 匹配任务类型,调用对应工作流
      │
      ▼
  hooks/PreToolUse → 执行前检查,拦截危险操作
      │
      ▼
  subagents/       → 复杂任务拆分给专属子代理执行
      │
      ▼
  hooks/PostToolUse→ 执行后处理,自动格式化/通知
      │
      ▼
  plugins/         → 整套配置一键同步给所有团队成员

5 层对应解决的问题汇总

层级 文件夹 解决什么问题 类比
第一层 CLAUDE.md/ Claude 每次都忘记项目规范 员工手册
第二层 skills/ 同类任务每次做法不一致 操作手册
第三层 hooks/ 危险操作无法防范 流水线质检
第四层 subagents/ 复杂任务上下文膨胀 专业分工
第五层 plugins/ 配置无法在团队复用 新人入职包

快速上手:今天就能做的 3 件事

如果你觉得一次全部配置太复杂,可以先从最高回报的开始:

第 1 步(5 分钟): 建一个 CLAUDE.md,把你最常跟 Claude 重复说的项目背景都写进去。

第 2 步(10 分钟): 建一个 hooks/PreToolUse.sh,加入几条你最不想 Claude 执行的危险命令的拦截规则。

第 3 步(30 分钟): 把你最常做的一类任务(比如"创建组件")写成第一个 skills/ 文件,积累你的团队标准。

剩下的层可以边用边补,不需要一次做完。


这套系统的名字叫 Agent Development Kit(ADK)。五层结构,一个堆栈。

你不需要更多工具,只需要 5 个文件夹。