--- title: "Claude Code 工程化指南:高效组织 .claude/ 目录" source: "https://x.com/vincemask/article/2056757482152960110" author: - "[[Vince 聊开发 (@vincemask)]]" published: 2026-05-19 created: 2026-05-20 description: "为什么结构很重要?大多数 Claude Code 用户知道 .claude/ 文件夹的存在,但很少有人认真思考它的组织方式。项目小的时候,一个 CLAUDE.md、几个设置文件就够了。但随着项目增长,指令变得难以维护,工作流散落在错误的地方,文件夹慢慢变成有用配置和难以解释的混乱..." tags: - "clippings" --- ![Image](https://pbs.twimg.com/media/HIr7nm6bkAEXYr-?format=jpg&name=large) # 为什么结构很重要? 大多数 Claude Code 用户知道 .claude/ 文件夹的存在,但很少有人认真思考它的组织方式。项目小的时候,一个 CLAUDE.md、几个设置文件就够了。但随着项目增长,指令变得难以维护,工作流散落在错误的地方,文件夹慢慢变成有用配置和难以解释的混乱的混合物。 一个组织良好的 .claude/ 文件夹让 Claude 更容易被引导、被信任,也更容易在真实项目中扩展。 # 目标结构蓝图 ```markdown your-project/ ├── CLAUDE.md # 主项目指令 ├── CLAUDE.local.md # 个人覆盖(不提交) └── .claude/ ├── settings.json # 控制层 ├── settings.local.json # 本地覆盖 ├── rules/ # 模块化指令 ├── hooks/ # 自动化脚本 ├── commands/ # 可复用提示词工作流 ├── skills/ # 打包能力 └── agents/ # 专用子代理 ``` # 核心原则 ## 1\. 顶层要轻 - CLAUDE.md:解释项目如何工作(栈、架构、关键命令、全局约定) - .claude/settings.json:控制 Claude 在项目中的操作方式(权限、hooks、项目级行为) - CLAUDE.local.md / .claude/settings.local.json:个人覆盖,不进git版本控制 这两层分开:一个负责**引导**,一个负责**控制**。 ## 2\. CLAUDE.md 与 rules/ 的划分 **CLAUDE.md 放全局指导**——每次会话都需要的内容: - 主要技术栈 - 高层架构 - 最重要的开发命令 - 广泛适用的代码约定 - 项目级警告或约束 **rules/ 放专项指导**——某个领域或工作流的规则: ```markdown .claude/ └── rules/ ├── frontend.md ├── backend-api.md ├── testing.md └── data-pipelines.md ``` 什么时候应该拆分成 rules/: - CLAUDE.md 开始显得拥挤 - 不同仓库区域需要不同指导 - 不同人有不同标准 - 团队经常更新约定 - 想按路径限定指令作用域 CLAUDE.md 建议参考这篇文章进行调整 > May 7 ## 3\. hooks/ 和 commands/ 分工 **hooks/**:自动运行的脚本,不放在说明文档中 - 拦截危险操作(如 [block-dangerous-commands.sh](https://block-dangerous-commands.sh/)) 清理或验证输出(如 [format-edits.sh](https://format-edits.sh/)) 强制执行工作流要求(如 [run-tests-before-stop.sh](https://run-tests-before-stop.sh/)) **commands/**:可复用的提示词工作流,不是自动运行的 - 审查 PR(review-pr.md) - 编写测试(write-tests.md) - 为发布准备变更摘要(summarize-changes.md) ```markdown .claude/ ├── hooks/ │ ├── block-dangerous-commands.sh │ ├── format-edits.sh │ └── run-tests-before-stop.sh └── commands/ ├── review-pr.md ├── write-tests.md └── summarize-changes.md ``` 命名要清晰:[format-edits.sh](https://format-edits.sh/) 好过 [script1.sh](https://script1.sh/)。 ## 4\. skills/ 和 agents/ 的进阶结构 **skills/**:打包的能力,工作流有多个步骤、需要配套文档时使用 ```markdown .claude/ └── skills/ ├── release-prep/ │ ├── SKILL.md │ └── release-template.md └── docs-audit/ ├── SKILL.md └── style-guide.md ``` **commands/ vs skills/** 的区别: - commands/ = 轻量可复用任务(一个文件就够了) - skills/ = 更丰富的打包工作流(多个步骤 + 配套文档) **agents/**:专用子代理,需要更聚焦的角色时使用 ```markdown .claude/ └── agents/ ├── code-reviewer.md ├── security-auditor.md └── docs-writer.md ``` 每个 skill 解决一个重复出现的完整工作流,每个 agent 拥有一个专门角色。如果两个文件高度重叠,应该合并或简化。 ## 5\. 团队结构 vs 个人结构的分离 ```markdown # 项目级(团队共享) your-project/ ├── CLAUDE.md └── .claude/ ├── settings.json ├── rules/ └── hooks/ # 用户级(个人偏好) ~/.claude/ ├── CLAUDE.md ├── settings.json ├── skills/ ├── agents/ └── projects/ ``` **判断标准**:如果配置帮助整个团队更一致地工作 → 放项目级。如果主要反映一个人的工作流 → 放本地或全局设置。 **本地覆盖文件**:CLAUDE.local.md 和 .claude/settings.local.json 是很好的中间层,让人可以在不污染版本控制的情况下调整行为。 # 渐进式成长路径 不要一开始就填满所有文件夹。按需增加: 1. **起步**:CLAUDE.md + .claude/settings.json 2. **指令膨胀**:加 rules/ 3. **需要自动化**:加 hooks/ 4. **提示词重复**:加 commands/ 5. **工作流变深**:加 skills/ 6. **需要专精角色**:加 agents/ # 常见错误 ![Image](https://pbs.twimg.com/media/HIr1_uaacAATGj5?format=png&name=large) # 关键要点 最高效的 .claude/ 文件夹不是功能最丰富的,而是**每个部分都有清晰用途**的。好的结构应该能立即回答这些问题: - 项目级指令在哪里? - 模块化规则放哪里? - 自动化脚本放哪里? - 可复用工作流放哪里? - 哪些是共享的,哪些是私人的? - 哪些是活跃的,哪些只是实验? 当 .claude/ 组织好了,Claude 用起来会可预测、可维护、易于团队共享。 ![Image](https://pbs.twimg.com/media/HIr6ouWasAAOr8x?format=jpg&name=large)