AI 编程概念入门:Rules、MCP、Skills、Hooks 实战指南

随着 AI 编程工具的普及,Claude Code、GitHub Copilot 等 AI 辅助编程工具已经成为开发者的日常伙伴。但这些工具中经常出现的术语 —— RulesMCPSkillsHooks —— 常常让新手感到困惑。

🤔 你是否也遇到过这些问题:

  • CLAUDE.md 里到底应该写什么?
  • MCP 和 Skills 有什么区别?
  • 什么时候该用 Rules,什么时候该用 Hooks?

这篇文章将以实战为导向,用最简单的语言解释这些概念,并重点介绍 如何在 Claude Code 中使用 Rules(CLAUDE.md) 的最佳实践。

一、核心概念快速对比

先用一张表让你快速了解这四个概念的区别:

概念全称简单理解作用使用场景复杂度
RulesRules规则文件告诉 AI 如何工作项目特定的编码规范、约定
MCPModel Context Protocol模型上下文协议扩展 AI 的能力连接外部工具、数据库、API⭐⭐⭐
SkillsSkills技能包可复用的能力模块特定领域的最佳实践⭐⭐
HooksHooks钩子在特定时机触发操作自动化工作流、CI/CD 集成⭐⭐

一句话总结

  • Rules:给 AI 立规矩(像项目文档)
  • MCP:给 AI 装插件(像浏览器扩展)
  • Skills:给 AI 技能包(像安装应用)
  • Hooks:给 AI 设触发器(像事件监听)

💡 初学者建议:从 Rules 开始,这是最简单也是最重要的概念。其他概念可以根据需要逐步学习。


二、Rules(规则)- 给 AI 立规矩

什么是 Rules?

Rules 是项目级别的配置文件,告诉 AI 在这个项目中应该如何工作。在 Claude Code 中,Rules 通常存储在 CLAUDE.md 文件中。

可以把 Rules 理解为:

  • 项目文档的 AI 友好版
  • 给 AI 的"开发者指南"
  • 让 AI 适应你团队的编码规范

Rules 的作用

作用说明实际效果
统一编码风格定义命名规范、代码格式AI 生成的代码自动符合项目风格
约束行为禁止某些操作、强制某些流程AI 不会生成不安全的代码
提供上下文项目架构、技术栈说明AI 理解项目结构,给出更准确的建议
自定义命令定义常用操作的快捷方式简化重复性工作

为什么 Rules 重要?

想象一下,新加入的团队成员如果不了解项目规范,写出的代码可能完全不符合团队标准。同样,AI 如果不了解你的项目规则,也会生成"不符合规范"的代码。

Rules 就是给 AI 的"团队手册",让它像老员工一样工作。


三、CLAUDE.md 最佳实践

文件位置

CLAUDE.md 文件应该放在项目的根目录,与 package.jsonREADME.md 同级。

my-project/
├── .git/
├── node_modules/
├── src/
├── CLAUDE.md          ← 放在这里
├── package.json
└── README.md

基本格式

一个完整的 CLAUDE.md 通常包含以下几个部分:

# 项目规则

## 全局规则

### 语言规范

- 所有交流必须使用中文
- 代码注释使用中文
- 变量命名使用英文(驼峰命名)

### Git 提交规范

- 格式:`<type>: <description>`
- 类型:feat, fix, docs, refactor, test, chore
- 描述不超过 50 字符
- 必须使用中文

## 技术栈

- 前端框架:React 18 + TypeScript
- 状态管理:Zustand
- 样式方案:Tailwind CSS
- 构建工具:Vite

## 编码规范

### React 组件

- 使用函数组件 + Hooks
- 组件文件使用 PascalCase 命名
- Props 必须定义 TypeScript 类型

### 文件组织

- 按功能模块组织代码
- 每个组件一个文件
- 工具函数放在 `utils/` 目录

## 禁止事项

- ❌ 不要提交 `.env` 文件
- ❌ 不要使用 `any` 类型
- ❌ 不要在组件中直接修改 props

格式要点

  1. 使用清晰的标题层级(#、##、###)
  2. 使用列表展示规则(- 或 1.)
  3. 使用代码块展示示例
  4. 使用表情符号增强可读性(✅、❌、💡)
  5. 保持简洁,避免冗余

常见配置示例

示例 1:简单项目规范

# 项目规范

## 命名规范

- 文件名:kebab-case(如 user-profile.tsx)
- 组件名:PascalCase(如 UserProfile)
- 变量名:camelCase(如 userName)
- 常量名:UPPER_SNAKE_CASE(如 API_BASE_URL)

## Git 提交

- 格式:`类型: 简短描述`
- 类型:feat, fix, docs, refactor, test, chore
- 示例:`feat: 添加用户登录功能`

## 注意事项

- 所有注释使用中文
- 提交前运行 `npm run lint`

示例 2:前端项目规范

# 前端项目规范

## 技术栈

- React 18 + TypeScript
- Vite 5
- Tailwind CSS 3
- React Router 6

## 组件规范

- 使用函数组件 + Hooks
- Props 必须定义 TypeScript 接口
- 组件文件名使用 PascalCase
- 导出使用默认导出

## 代码风格

- 使用 2 空格缩进
- 使用单引号
- 语句末尾加分号
- 每行不超过 100 字符

## 禁止事项

- ❌ 不要在 useEffect 中直接修改 state
- ❌ 不要使用 any 类型
- ❌ 不要内联大型对象或函数
- ❌ 不要在循环中定义组件

示例 3:后端项目规范

# 后端项目规范

## 技术栈

- Node.js 20
- Express 4
- TypeScript 5
- PostgreSQL 15

## API 规范

- RESTful 风格
- 使用 HTTP 状态码
- 统一错误处理
- 请求体使用 JSON

## 数据库规范

- 表名使用 snake_case
- 字段名使用 snake_case
- 必须有 id 和 created_at 字段
- 软删除使用 deleted_at

## 安全规范

- 所有输入必须验证
- 敏感信息使用环境变量
- 密码使用 bcrypt 加密
- API 使用 JWT 认证

注意事项

✅ 应该做的

  1. 保持简洁

    • 只包含必要的规则
    • 避免冗长的说明
    • 用代码示例代替文字描述
  2. 保持更新

    • 项目架构变化时同步更新
    • 新增技术栈时添加说明
    • 定期 review 和优化
  3. 使用具体的例子

    # 好的示例
    
    组件命名使用 PascalCase:
    
    - ✅ UserProfile.tsx
    - ✅ Button.tsx
    - ❌ userProfile.tsx
    - ❌ button.tsx
    
  4. 分类清晰

    • 按功能或主题分组
    • 使用明确的标题
    • 保持逻辑结构

❌ 不应该做的

  1. 不要写成项目文档

    # ❌ 不好的示例
    
    ## 项目介绍
    
    本项目是一个电商系统,成立于 2020 年...
    (这些内容应该放在 README.md)
    
  2. 不要包含过时信息

    • 及时删除已废弃的技术
    • 更新版本号
    • 移除不再使用的规则
  3. 不要过于严格

    • 给 AI 一定的灵活性
    • 使用"推荐"而非"强制"
    • 保留合理的例外情况
  4. 不要重复 README.md

    • CLAUDE.md 侧重于 AI 如何工作
    • README.md 侧重于项目介绍和使用指南

调试技巧

如果 AI 没有按照你的规则工作:

  1. 检查规则是否明确

    • 规则是否清晰无歧义?
    • 是否有具体的例子?
  2. 检查规则是否在根目录

    • 确认 CLAUDE.md 在项目根目录
    • 检查文件名是否正确(区分大小写)
  3. 重新加载规则

    • 有时需要重新启动 AI 工具
    • 清除缓存后重试
  4. 简化规则

    • 先从简单的规则开始
    • 逐步添加复杂规则
    • 测试每条规则是否生效

四、MCP(Model Context Protocol)- 给 AI 装插件

什么是 MCP?

MCP(Model Context Protocol,模型上下文协议)是一个开放标准,允许 AI 工具连接到外部系统。

可以把 MCP 理解为:

  • AI 的"插件系统"
  • 连接 AI 和外部世界的桥梁
  • 让 AI 访问数据库、API、文件系统等

使用场景

场景说明
数据库查询让 AI 直接查询数据库
文件操作让 AI 读写文件系统
API 调用让 AI 调用外部 API
工具集成让 AI 使用 Git、Docker 等工具

简单示例

假设你有一个 PostgreSQL 数据库,配置 MCP 后:

你:查询最近 10 个注册用户

AI:[自动执行 SQL 查询]
SELECT * FROM users ORDER BY created_at DESC LIMIT 10;

结果:返回 10 条用户记录

没有 MCP 的情况:

你:查询最近 10 个注册用户

AI:我无法直接访问数据库,请提供数据或告诉我数据库结构...

注意事项

  • MCP 配置相对复杂,需要技术背景
  • 需要考虑安全性(不要暴露敏感数据)
  • 初学者可以先掌握 Rules,再学习 MCP

五、Skills(技能)- 给 AI 技能包

什么是 Skills?

Skills 是预定义的、可复用的能力模块,包含特定领域的最佳实践和工作流程。

可以把 Skills 理解为:

  • AI 的"应用商店"
  • 特定领域的专家模式
  • 经过验证的最佳实践集合

常见 Skills 类型

Skill 类型说明示例
测试驱动开发TDD 工作流程red-green-refactor
代码审查代码质量检查安全性、性能、可维护性
调试系统化问题排查日志分析、断点调试
重构代码优化策略提取函数、消除重复
文档编写技术文档规范API 文档、架构图

使用示例

示例 1:使用 TDD Skill

你:帮我写一个用户验证函数
[激活 TDD Skill]

AI:
1. 先写测试用例
2. 运行测试(预期失败)
3. 编写最小实现
4. 运行测试(预期通过)
5. 重构优化

示例 2:使用代码审查 Skill

你:审查这段代码
[激活代码审查 Skill]

AI:
- ✅ 代码结构清晰
- ⚠️ 缺少错误处理
- ❌ 存在 SQL 注入风险
- 💡 建议使用参数化查询

如何使用 Skills

在 Claude Code 中,Skills 通常会自动激活或通过关键词触发:

你:帮我测试这个功能
[AI 自动激活 testing Skill]

你:这段代码有 bug 吗?
[AI 自动激活 debugging Skill]

注意事项

  • Skills 是社区贡献的,质量参差不齐
  • 选择适合你项目的 Skill
  • 不要过度依赖 Skills,理解原理更重要

六、Hooks(钩子)- 给 AI 设触发器

什么是 Hooks?

Hooks 是在特定事件或时机自动触发的操作,用于自动化工作流程。

可以把 Hooks 理解为:

  • AI 的"事件监听器"
  • 自动化工作流的关键节点
  • 类似 Git Hooks 的机制

常见 Hook 类型

Hook 类型触发时机用途
pre-commit提交代码前运行 lint、格式化代码
post-commit提交代码后发送通知、更新文档
pre-push推送代码前运行测试、检查分支
code-review代码审查时自动检查代码质量

使用示例

示例 1:pre-commit Hook

配置:每次提交前自动运行 lint 和格式化

流程:
1. 你执行 git commit
2. Hook 触发:运行 npm run lint
3. 如果通过:继续提交
4. 如果失败:阻止提交,显示错误

示例 2:code-review Hook

配置:每次代码审查时自动检查

你:请审查这段代码
[AI 触发 code-review Hook]

AI:
- [x] 安全性检查通过
- [x] 性能检查通过
- [x] 可维护性检查通过
- ⚠️ 缺少单元测试

实际应用场景

  1. CI/CD 集成

    • 自动运行测试
    • 自动生成部署文档
    • 自动通知团队
  2. 代码质量

    • 自动检查代码规范
    • 自动识别潜在问题
    • 自动生成改进建议
  3. 团队协作

    • 自动分配审查任务
    • 自动更新文档
    • 自动生成变更日志

注意事项

  • Hooks 配置需要一定的脚本知识
  • 过多的 Hooks 可能影响开发效率
  • 初学者可以先使用社区提供的 Hook 模板

七、最佳实践总结

使用决策树

开始
需要定义项目规范吗?
  ├─ 是 → 使用 Rules (CLAUDE.md)
  │   ↓
  │   需要连接外部系统吗?
  │   ├─ 是 → 配置 MCP
  │   └─ 否 → 完成
需要特定领域的工作流程吗?
  ├─ 是 → 使用 Skills
  │   ↓
  │   需要自动化触发操作吗?
  │   ├─ 是 → 配置 Hooks
  │   └─ 否 → 完成
需要自动化工作流吗?
  ├─ 是 → 配置 Hooks
  └─ 否 → 完成

简化版决策指南

你的需求推荐方案
定义编码规范、项目约定Rules
让 AI 访问数据库/APIMCP
需要特定领域的最佳实践Skills
自动化测试、部署等流程Hooks

实战建议

1. 循序渐进,不要贪多

Week 1: 配置 CLAUDE.md(Rules)
Week 2: 尝试使用常用 Skills
Week 3: 学习 MCP 基础配置
Week 4: 探索 Hooks 自动化

原因:

  • 每个概念都需要时间消化
  • 熟练掌握一个再学下一个
  • 避免信息过载

2. 从小项目开始练习

建议:

  • 先在个人项目中尝试
  • 使用简单的配置
  • 逐步增加复杂度

避免:

  • 直接在团队项目中实验
  • 一开始就配置复杂的规则
  • 同时学习多个概念

3. 定期 review 和优化

每月检查清单:

  • CLAUDE.md 是否还在更新?
  • 哪些规则从未被使用?
  • 有没有新的最佳实践可以加入?
  • 团队成员对配置是否满意?

4. 团队协作

建议:

  • 团队共同制定规则
  • 定期讨论配置优化
  • 建立配置变更流程
  • 文档化决策原因

常见误区

❌ 误区 1:Rules 越多越好

问题:

  • 过多的规则让 AI 无所适从
  • 规则之间可能相互冲突
  • 增加维护成本

正确做法:

  • 只保留必要的规则
  • 定期清理无用规则
  • 优先考虑核心规范

❌ 误区 2:MCP 可以解决所有问题

问题:

  • MCP 配置复杂,学习成本高
  • 不是所有场景都需要 MCP
  • 可能引入安全风险

正确做法:

  • 评估是否真的需要 MCP
  • 考虑替代方案
  • 做好安全配置

❌ 误区 3:Skills 可以替代思考

问题:

  • 盲目依赖 Skills
  • 不理解背后的原理
  • 无法灵活应对特殊情况

正确做法:

  • 理解 Skill 的工作原理
  • 根据实际情况调整
  • 将 Skills 作为辅助工具

❌ 误区 4:Hooks 越多越自动化

问题:

  • 过多的 Hooks 影响性能
  • 调试困难
  • 可能产生意外行为

正确做法:

  • 只在必要时使用 Hooks
  • 保持 Hook 逻辑简单
  • 做好错误处理和日志

性能优化建议

  1. Rules 优化

    • 使用简洁的语言
    • 避免冗余的规则
    • 分类清晰,便于查找
  2. MCP 优化

    • 合理设置缓存
    • 限制查询结果数量
    • 使用索引优化查询
  3. Skills 优化

    • 选择合适的 Skill
    • 避免同时激活多个 Skill
    • 定期更新 Skills
  4. Hooks 优化

    • 减少 Hook 触发频率
    • 异步执行耗时操作
    • 做好超时处理

结语

AI 编程工具正在改变我们的开发方式,而理解 Rules、MCP、Skills、Hooks 这些核心概念,是充分发挥 AI 工具潜力的关键。

学习路径回顾

开始
1. 掌握 Rules(CLAUDE.md)← 最重要!
2. 了解常用 Skills
3. 学习 MCP 基础(如需要)
4. 探索 Hooks 自动化(如需要)
成为 AI 编程高手

核心要点

  1. Rules 是基础:几乎所有项目都需要 CLAUDE.md
  2. 按需学习:MCP、Skills、Hooks 根据项目需求选择
  3. 循序渐进:不要试图一次性掌握所有概念
  4. 持续优化:定期 review 和改进配置

下一步行动

  • 为你的项目创建 CLAUDE.md
  • 尝试使用一个常用的 Skill
  • 评估是否需要配置 MCP 或 Hooks
  • 与团队分享这些知识

💡 记住:AI 是强大的助手,但理解这些概念并合理配置,才能让它真正成为你的"得力伙伴"。


相关资源:


有问题或建议? 欢迎在评论区讨论!