AI 编程概念入门:Rules、MCP、Skills、Hooks 实战指南
随着 AI 编程工具的普及,Claude Code、GitHub Copilot 等 AI 辅助编程工具已经成为开发者的日常伙伴。但这些工具中经常出现的术语 —— Rules、MCP、Skills、Hooks —— 常常让新手感到困惑。
🤔 你是否也遇到过这些问题:
- CLAUDE.md 里到底应该写什么?
- MCP 和 Skills 有什么区别?
- 什么时候该用 Rules,什么时候该用 Hooks?
这篇文章将以实战为导向,用最简单的语言解释这些概念,并重点介绍 如何在 Claude Code 中使用 Rules(CLAUDE.md) 的最佳实践。
一、核心概念快速对比
先用一张表让你快速了解这四个概念的区别:
一句话总结
- Rules:给 AI 立规矩(像项目文档)
- MCP:给 AI 装插件(像浏览器扩展)
- Skills:给 AI 技能包(像安装应用)
- Hooks:给 AI 设触发器(像事件监听)
💡 初学者建议:从 Rules 开始,这是最简单也是最重要的概念。其他概念可以根据需要逐步学习。
二、Rules(规则)- 给 AI 立规矩
什么是 Rules?
Rules 是项目级别的配置文件,告诉 AI 在这个项目中应该如何工作。在 Claude Code 中,Rules 通常存储在 CLAUDE.md 文件中。
可以把 Rules 理解为:
- 项目文档的 AI 友好版
- 给 AI 的"开发者指南"
- 让 AI 适应你团队的编码规范
Rules 的作用
为什么 Rules 重要?
想象一下,新加入的团队成员如果不了解项目规范,写出的代码可能完全不符合团队标准。同样,AI 如果不了解你的项目规则,也会生成"不符合规范"的代码。
Rules 就是给 AI 的"团队手册",让它像老员工一样工作。
三、CLAUDE.md 最佳实践
文件位置
CLAUDE.md 文件应该放在项目的根目录,与 package.json、README.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.)
- 使用代码块展示示例
- 使用表情符号增强可读性(✅、❌、💡)
- 保持简洁,避免冗余
常见配置示例
示例 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 认证
注意事项
✅ 应该做的
保持简洁
- 只包含必要的规则
- 避免冗长的说明
- 用代码示例代替文字描述
保持更新
- 项目架构变化时同步更新
- 新增技术栈时添加说明
- 定期 review 和优化
使用具体的例子
# 好的示例 组件命名使用 PascalCase: - ✅ UserProfile.tsx - ✅ Button.tsx - ❌ userProfile.tsx - ❌ button.tsx分类清晰
- 按功能或主题分组
- 使用明确的标题
- 保持逻辑结构
❌ 不应该做的
不要写成项目文档
# ❌ 不好的示例 ## 项目介绍 本项目是一个电商系统,成立于 2020 年... (这些内容应该放在 README.md)不要包含过时信息
- 及时删除已废弃的技术
- 更新版本号
- 移除不再使用的规则
不要过于严格
- 给 AI 一定的灵活性
- 使用"推荐"而非"强制"
- 保留合理的例外情况
不要重复 README.md
- CLAUDE.md 侧重于 AI 如何工作
- README.md 侧重于项目介绍和使用指南
调试技巧
如果 AI 没有按照你的规则工作:
检查规则是否明确
- 规则是否清晰无歧义?
- 是否有具体的例子?
检查规则是否在根目录
- 确认
CLAUDE.md在项目根目录 - 检查文件名是否正确(区分大小写)
- 确认
重新加载规则
- 有时需要重新启动 AI 工具
- 清除缓存后重试
简化规则
- 先从简单的规则开始
- 逐步添加复杂规则
- 测试每条规则是否生效
四、MCP(Model Context Protocol)- 给 AI 装插件
什么是 MCP?
MCP(Model Context Protocol,模型上下文协议)是一个开放标准,允许 AI 工具连接到外部系统。
可以把 MCP 理解为:
- AI 的"插件系统"
- 连接 AI 和外部世界的桥梁
- 让 AI 访问数据库、API、文件系统等
使用场景
简单示例
假设你有一个 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 类型
使用示例
示例 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 类型
使用示例
示例 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] 可维护性检查通过
- ⚠️ 缺少单元测试
实际应用场景
CI/CD 集成
- 自动运行测试
- 自动生成部署文档
- 自动通知团队
代码质量
- 自动检查代码规范
- 自动识别潜在问题
- 自动生成改进建议
团队协作
- 自动分配审查任务
- 自动更新文档
- 自动生成变更日志
注意事项
- Hooks 配置需要一定的脚本知识
- 过多的 Hooks 可能影响开发效率
- 初学者可以先使用社区提供的 Hook 模板
七、最佳实践总结
使用决策树
开始
↓
需要定义项目规范吗?
├─ 是 → 使用 Rules (CLAUDE.md)
│ ↓
│ 需要连接外部系统吗?
│ ├─ 是 → 配置 MCP
│ └─ 否 → 完成
│
↓
需要特定领域的工作流程吗?
├─ 是 → 使用 Skills
│ ↓
│ 需要自动化触发操作吗?
│ ├─ 是 → 配置 Hooks
│ └─ 否 → 完成
│
↓
需要自动化工作流吗?
├─ 是 → 配置 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 逻辑简单
- 做好错误处理和日志
性能优化建议
Rules 优化
- 使用简洁的语言
- 避免冗余的规则
- 分类清晰,便于查找
MCP 优化
- 合理设置缓存
- 限制查询结果数量
- 使用索引优化查询
Skills 优化
- 选择合适的 Skill
- 避免同时激活多个 Skill
- 定期更新 Skills
Hooks 优化
- 减少 Hook 触发频率
- 异步执行耗时操作
- 做好超时处理
结语
AI 编程工具正在改变我们的开发方式,而理解 Rules、MCP、Skills、Hooks 这些核心概念,是充分发挥 AI 工具潜力的关键。
学习路径回顾
开始
↓
1. 掌握 Rules(CLAUDE.md)← 最重要!
↓
2. 了解常用 Skills
↓
3. 学习 MCP 基础(如需要)
↓
4. 探索 Hooks 自动化(如需要)
↓
成为 AI 编程高手
核心要点
- Rules 是基础:几乎所有项目都需要 CLAUDE.md
- 按需学习:MCP、Skills、Hooks 根据项目需求选择
- 循序渐进:不要试图一次性掌握所有概念
- 持续优化:定期 review 和改进配置
下一步行动
- 为你的项目创建
CLAUDE.md - 尝试使用一个常用的 Skill
- 评估是否需要配置 MCP 或 Hooks
- 与团队分享这些知识
💡 记住:AI 是强大的助手,但理解这些概念并合理配置,才能让它真正成为你的"得力伙伴"。
相关资源:
有问题或建议? 欢迎在评论区讨论!