别再把 Claude Code 用乱了:CLAUDE.md、Rules、Skills、Hooks 到底怎么分工? 1. 引言Claude Code 作为一款强大的 AI 编程助手其核心魅力在于高度的可定制性。然而很多用户在深入使用时会被CLAUDE.md、Rules、Skills、Hooks这几个概念搞得一头雾水。它们之间到底有什么区别什么时候该用哪个如何组合才能发挥最大威力本文将带你彻底理清这四者的分工与协作关系并通过大量实战代码示例让你看完就能上手告别“乱用”时代。2. 核心概念速览一张表看懂分工在深入代码之前我们先通过一个表格快速建立全局认知。概念作用域核心用途触发时机类比CLAUDE.md项目级定义项目背景、技术栈、编码规范、全局约束每次对话开始时自动注入项目“宪法”Rules全局/项目级定义通用或特定的行为规则、安全边界每次对话开始时自动注入行为“守则”Skills全局定义可复用的能力、工具、工作流通过skill显式调用可插拔的“工具箱”Hooks项目级在特定生命周期如文件读写、命令执行前后执行自定义脚本事件触发自动化“哨兵”3. CLAUDE.md项目的“宪法”CLAUDE.md是 Claude Code 的项目级配置文件通常放在项目根目录。它定义了 AI 助手在这个特定项目中应该如何表现。3.1 核心职责项目背景描述项目是做什么的目标用户是谁。技术栈声明明确使用的语言、框架、数据库、第三方服务。编码规范命名风格、代码结构、注释要求。全局约束禁止修改的文件、必须遵循的安全策略。3.2 实战示例一个 Python Web 项目的 CLAUDE.md# CLAUDE.md - My Awesome API Project ## 项目概述 这是一个基于 FastAPI 的 RESTful API 服务用于管理用户和订单数据。 ## 技术栈 - 语言Python 3.11 - 框架FastAPI - 数据库PostgreSQL SQLAlchemy (async) - 缓存Redis - 测试pytest httpx ## 编码规范 - 所有 API 端点必须使用 Pydantic 模型进行请求/响应校验。 - 数据库操作必须使用异步 Session。 - 函数和类必须包含类型注解。 - 日志使用 structlog不要使用 print。 - 所有新功能必须编写单元测试和集成测试。 ## 全局约束 - **严禁**修改 alembic/versions/ 目录下的数据库迁移文件。 - **严禁**在代码中硬编码 API Key 或数据库密码必须从环境变量读取。 - 所有对外 API 响应必须包含 request_id 字段。 ## 目录结构src/api/ # API 路由core/ # 核心配置与依赖models/ # SQLAlchemy 模型schemas/ # Pydantic 模型services/ # 业务逻辑层tests/unit/integration/3.3 使用场景新项目初始化第一次与 Claude Code 协作时先写好CLAUDE.md。接手旧项目快速让 AI 理解项目背景和约束。团队协作统一 AI 助手的行为避免不同开发者使用时产生不一致。4. Rules行为“守则”Rules是比CLAUDE.md更灵活、更细粒度的规则系统。它可以作用于全局所有项目或特定项目。4.1 全局 Rules全局 Rules 存放在~/.claude/rules/目录下对所有项目生效。适合定义个人偏好或通用安全策略。示例~/.claude/rules/security.md# 安全规则 1. 永远不要执行 rm -rf / 或任何可能破坏系统的命令。 2. 在安装新的 Python 包之前先检查 requirements.txt 或 pyproject.toml 中是否已有。 3. 如果用户要求执行一个看起来有风险的命令如 curl ... | bash必须先向用户确认。4.2 项目级 Rules项目级 Rules 存放在项目根目录的.claude/rules/下仅对该项目生效。适合定义该项目特有的、但不想写在CLAUDE.md中的规则。示例.claude/rules/testing.md# 测试规则 1. 在修改任何 src/services/ 下的业务逻辑后必须运行相关的单元测试。 2. 新增 API 端点时必须同时在 tests/integration/ 下创建对应的集成测试。 3. 测试覆盖率不得低于 80%。4.3 Rules vs CLAUDE.md维度CLAUDE.mdRules文件位置项目根目录~/.claude/rules/或.claude/rules/作用域项目级全局或项目级内容风格项目“宪法”宏观行为“守则”具体典型内容技术栈、目录结构、全局约束编码细节、测试要求、安全策略最佳实践将项目背景、技术栈等不变的信息放在CLAUDE.md将具体的编码、测试、安全行为规则放在Rules中便于按需启用/禁用。5. Skills可插拔的“工具箱”Skills是 Claude Code 最强大的特性之一。它允许你定义可复用的能力、工作流或工具并在需要时通过skill显式调用。5.1 核心概念定义一个 Skill 是一个包含skill.md和可选脚本的目录。存储位置~/.claude/skills/。调用方式在对话中输入skill-name。核心价值将复杂、重复的工作流封装成一个简单的命令。5.2 实战示例创建一个“代码审查” Skill目录结构~/.claude/skills/code-review/ skill.md review.pyskill.md# Code Review Skill ## 描述 对当前工作区中的代码变更进行全面的代码审查。 ## 用法 在对话中输入 code-review 即可触发。 ## 工作流 1. 运行 git diff HEAD 获取当前变更。 2. 调用 review.py 脚本对变更进行分析。 3. 输出审查结果包括代码质量、潜在 Bug、安全漏洞、性能建议。review.py#!/usr/bin/env python3importsubprocessimportsysdefget_git_diff():resultsubprocess.run([git,diff,HEAD],capture_outputTrue,textTrue)returnresult.stdoutdefanalyze_diff(diff_content):# 这里可以集成更复杂的分析逻辑如调用 linter、静态分析工具等issues[]ifTODOindiff_content:issues.append(发现未处理的 TODO 注释请确认是否需要处理。)ifprint(indiff_content:issues.append(发现 print 语句请确认是否应替换为日志记录。)returnissuesdefmain():diffget_git_diff()ifnotdiff:print(没有发现代码变更。)returnissuesanalyze_diff(diff)ifissues:print(### 代码审查结果)forissueinissues:print(f-{issue})else:print(代码审查通过未发现明显问题。)if__name____main__:main()5.3 使用场景代码审查code-review数据库迁移db-migrate部署流程deploy-to-staging日志分析analyze-logs6. Hooks自动化“哨兵”Hooks允许你在 Claude Code 的特定生命周期事件如文件读写、命令执行前后自动执行自定义脚本。这类似于 Git Hooks但作用于 AI 助手的操作。6.1 核心概念事件驱动Hooks 由特定事件触发而非手动调用。前后拦截可以在事件发生前pre-*或发生后post-*执行。脚本执行可以执行任何可执行脚本Shell、Python、Node.js 等。6.2 支持的 Hook 事件Hook 名称触发时机典型用途pre-tool-execution在 Claude Code 执行任何工具前安全检查、日志记录post-tool-execution在 Claude Code 执行任何工具后结果验证、通知pre-file-write在写入文件前代码格式化、许可证头检查post-file-write在写入文件后自动编译、触发测试pre-command在执行 Shell 命令前命令白名单/黑名单检查post-command在执行 Shell 命令后命令结果分析6.3 实战示例一个“安全哨兵” Hook目录结构在项目根目录的.claude/hooks/下.claude/hooks/ pre-command.sh pre-file-write.sh.claude/hooks/pre-command.sh#!/bin/bash# 在 Claude Code 执行任何 Shell 命令前进行检查COMMAND$1# 黑名单命令BLACKLIST(rm -rf /dd ifmkfs /dev/sda)forbanned_cmdin${BLACKLIST[]};doif[[$COMMAND*$banned_cmd*]];thenecho❌ 危险命令被拦截:$COMMANDexit1# 返回非零值阻止命令执行fidone# 白名单检查只允许执行 git、npm、pip、python、docker 等安全命令ALLOWED_PREFIXES(gitnpmpippythondockerlscatechomkdirtouchcpmv)ALLOWEDfalseforprefixin${ALLOWED_PREFIXES[]};doif[[$COMMAND$prefix*]];thenALLOWEDtruebreakfidoneif[$ALLOWEDfalse];thenecho⚠️ 命令 $COMMAND 不在白名单中是否继续(y/n)read-rresponseif[$response!y];thenexit1fifiexit0.claude/hooks/pre-file-write.sh#!/bin/bash# 在写入文件前自动添加许可证头如果是 Python 文件FILE_PATH$1FILE_EXT${FILE_PATH##*.}if[$FILE_EXTpy];then# 检查是否已有许可证头if!head-1$FILE_PATH2/dev/null|grep-q# Copyright;then# 在文件开头插入许可证头LICENSE_HEADER# Copyright$(date%Y)My Company. All rights reserved.\n# Licensed under the MIT License.\n# 注意这里只是演示实际修改文件内容需要更复杂的处理echo 正在为$FILE_PATH添加许可证头...fifiexit06.4 使用场景安全防护阻止危险命令的执行。代码质量在写入前自动格式化代码。自动化工作流文件变更后自动运行测试。合规检查确保所有新文件都包含必要的许可证头。7. 四者协同一个完整的实战工作流现在让我们通过一个完整的场景看看这四者如何协同工作。7.1 场景描述你正在开发一个 FastAPI 项目需要 Claude Code 帮你添加一个新的用户注册 API。7.2 配置准备CLAUDE.md定义了项目背景、技术栈和全局约束如必须使用异步 Session。Rules定义了测试规则新增 API 必须写集成测试。Skills定义了一个code-reviewSkill用于审查代码变更。Hooks定义了一个pre-commandHook阻止危险命令一个post-file-writeHook在写入新文件后自动运行相关测试。7.3 工作流执行你帮我添加一个用户注册 API路径为 /api/v1/register使用邮箱和密码注册。Claude Code 启动自动读取CLAUDE.md了解项目是 FastAPI SQLAlchemy async。自动加载Rules知道新增 API 需要写集成测试。Claude Code 生成代码在src/api/v1/下创建register.py。在src/schemas/下创建register_schema.py。在src/services/下创建register_service.py。在tests/integration/下创建test_register.py。Hooks 介入pre-file-writeHook 检查新文件是否包含许可证头根据CLAUDE.md的约束。post-file-writeHook 自动运行pytest tests/integration/test_register.py。你帮我审查一下这些变更。Claude Code调用code-reviewSkill运行git diff并执行review.py进行分析输出审查结果。7.4 协同效果CLAUDE.md提供了项目上下文确保代码风格一致。Rules确保了测试覆盖。Hooks自动执行了安全检查和测试。Skills简化了代码审查流程。8. 总结与最佳实践8.1 选择指南需求推荐方案定义项目背景和技术栈CLAUDE.md定义通用的编码规范Rules全局定义项目特有的行为规则Rules项目级封装可复用的工作流Skills在特定事件前后自动执行操作Hooks8.2 最佳实践从 CLAUDE.md 开始每个项目都应该有一个CLAUDE.md这是 AI 助手理解项目的基石。Rules 要具体规则越具体AI 的执行效果越好。避免模糊的描述。Skills 要封装将复杂的、多步骤的工作流封装成 Skill可以大幅提升效率。Hooks 要谨慎Hooks 有自动执行的能力务必确保脚本的安全性和稳定性。组合使用四者不是互斥的而是互补的。合理组合可以发挥最大威力。版本控制将CLAUDE.md、.claude/rules/、.claude/hooks/纳入 Git 版本控制方便团队共享和追踪变更。通过本文的梳理和实战相信你已经彻底理解了CLAUDE.md、Rules、Skills、Hooks的分工与协作方式。现在去给你的 Claude Code 项目配置一个完美的“大脑”吧

相关新闻

最新新闻

计算机毕业设计之基于Web技术的家校交流平台

计算机毕业设计之基于Web技术的家校交流平台

信息技术是当今社会发展的重要方向之一,它已经深入到各个行业中。随着计算机技术的发展,信息技术已经从传统的数据处理转变为网络信息的处理和交互。在管理方面,通过信息管理技术,系统可以快速的处理大量的数据,并且能…

2026/7/7 7:07:15
核心概念总结

核心概念总结

async/await 异步编程 # 同步(阻塞) def function():result blocking_operation() # 必须等待完成return result# 异步(非阻塞) async def function():result await async_operation() # 等待但不阻塞其他任务return result作…

2026/7/7 7:07:15
Deep Mutual Learning 算法复现:PyTorch 1.13 实现 CIFAR-100 分类精度提升 1.2%

Deep Mutual Learning 算法复现:PyTorch 1.13 实现 CIFAR-100 分类精度提升 1.2%

Deep Mutual Learning 算法实战:PyTorch 1.13 实现 CIFAR-100 分类精度提升 1.2% 当两个神经网络像同学一样互相切磋时会发生什么?2018年CVPR论文《Deep Mutual Learning》给出了令人惊喜的答案:一组结构简单的学生网络通过相互学习&#xff…

2026/7/7 7:07:15
河南郑州 GEO 搜索哪家性价比高?收费标准明细参考

河南郑州 GEO 搜索哪家性价比高?收费标准明细参考

引言在当今数字信息爆炸的时代,企业对于精准的网络推广需求愈发强烈。GEO搜索作为一种新兴且高效的推广方式,正逐渐受到众多企业的关注。在河南郑州,不少企业都在寻觅性价比高的GEO搜索服务。那么,哪家更具优势呢?收费…

2026/7/7 7:07:15
生成式模型底层原理通关笔记 _

生成式模型底层原理通关笔记 _

分数匹配 (Score Matching):高斯加噪下的高维引力场构建流匹配 (Flow Matching):追求两点之间直线最短的速度场理论1. DDPM (Denoising Diffusion Probabilistic Models) —— 概率流的单线传话🧱 核心底层逻辑:马尔可夫链的微扰D…

2026/7/7 7:07:15
低代码+MES制造执行系统:技术架构与代码实操指南

低代码+MES制造执行系统:技术架构与代码实操指南

搭贝AI低代码平台是一款面向全体量企业的全行业通用企业级低代码平台,依托独立通用底层架构,无行业使用限制,兼顾业务人员零代码搭建、IT人员深度扩展,区别市面轻量化部门级零代码工具,可支撑企业轻量化办公核心业务数…

2026/7/7 7:02:15

月新闻