☰
Claude Code 配置分层实战:CLAUDE.md、Skills、Subagents 与 MCP servers 的加载秩序
2026/10/3 6:38:48 网站建设 项目流程

1. 团队协作里 Claude Code 配置为什么总打架

一个仓库里同时存在根目录 CLAUDE.md、个人目录 CLAUDE.md、项目级 Skill、插件自带 Skill、.mcp.json 里的 github server,还有某个同事本地 scope 里同名的 github server。跑起来之后,Claude Code 的行为和预期不一致,大家第一反应往往是"模型不稳定",但真正的原因通常是配置分层没理清。

Claude Code 的配置分层机制,简单说就是:不同能力有不同的加载规则,有的叠加、有的覆盖、有的全部触发。CLAUDE.md 是叠加进上下文,Skills 和 Subagents 是同名只选一个,MCP servers 同名只连一个且取最高优先级完整定义,Hooks 是匹配事件后一起触发。这套秩序在单人项目里感知不强,但团队越大、仓库越多、插件越杂,冲突就越明显。

这篇文章面向正在用 Claude Code 做团队协作的开发者,尤其是维护 monorepo、需要多人共享同一套 AI 编码规范的团队。我会把四类配置的加载优先级拆开讲清楚,给出可复制的分层目录结构和配置片段,再演示怎么通过调整加载顺序验证不同层级配置的生效范围。适合谁:已经用过 Claude Code 基础功能、准备把配置沉淀成团队规范的人;也适合被"为什么我的 Skill 没生效""为什么 MCP 连的是别人的账号"这类问题困扰过的人。

核心检索词先摆出来:Claude Code 配置分层、CLAUDE.md 加载顺序、Skills 覆盖规则、Subagents 优先级、MCP servers scope。这几个词贯穿全文,后面每一节都会落到具体文件和具体命令上。

我试过在一个二十多人的 monorepo 里把配置从"每人各写各的"整理成"分层可治理",过程里踩的坑基本都来自对加载秩序的误解。下面按四类配置逐个拆。

2. TaoToken 前置:把模型入口和配置分层解耦

在讲配置分层之前,得先把模型入口这件事说清楚。Claude Code 本身是一个客户端,它需要连到一个兼容 Anthropic API 的服务端点。团队协作场景下,如果每个人的模型入口都不一样,配置分层就无从谈起——你连模型都连不到同一个地方,讨论 CLAUDE.md 加载顺序没有意义。

TaoToken 在这里扮演的角色是统一的模型接入层。官网地址是 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 端点是 https://taotoken.net/api 。它的作用是让 Claude Code 通过一个稳定的 Base URL 访问模型,这样团队里每个人用的模型入口一致,配置分层才有共同的底座。

为什么要在配置分层文章里先讲这个?因为 Claude Code 的配置分层里,有一部分配置是跟模型入口绑定的。比如 settings.json 里的环境变量、Codex 的 auth.json、Cline 的 MCP 配置,这些都会涉及 Base URL 和 Key。如果模型入口本身是散的,分层规则就会被这些散落的入口信息干扰。

TaoToken 的接入方式对 Claude Code 来说很直接:设置 ANTHROPIC_BASE_URL 指向 https://taotoken.net/api ,再配上对应的 API Key。这样 Claude Code 的所有请求都走这个端点。团队里每个人用同一套 Base URL,但各自的 Key 可以不同,权限和用量在服务端区分。

这里要强调一点:TaoToken 是合规的模型接入服务,不是灰色中转。它的定位是让开发者用统一的方式访问模型能力,配置分层是建立在这个统一入口之上的工程实践。

对于团队协作,我建议把模型入口配置放在个人层或者环境变量层,不要写进项目仓库。原因很简单:Base URL 可以共享,但 Key 是个人凭证,不应该进版本控制。项目仓库里只放跟业务逻辑强相关的配置,比如 CLAUDE.md、Skills、Subagents、MCP server 的公共定义。模型入口这种跟个人账号绑定的东西,放在 ~/.claude/settings.json 或者 shell 环境变量里更合适。

具体来说,个人层可以这样设置环境变量:

export ANTHROPIC_BASE_URL="https://taotoken.net/api" export ANTHROPIC_API_KEY="你的个人Key"

或者在 ~/.claude/settings.json 里配置:

{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_API_KEY": "你的个人Key" } }

这样配置之后,Claude Code 启动时会读取这个端点。项目层的 .claude/settings.json 可以覆盖一些非敏感配置,但不应该覆盖 Base URL 和 Key,否则团队共享的配置就会带上个人凭证。

如果你还没拿到 Key,可以去 https://taotoken.net/api-keys 生成。生成之后先别急着写进项目,放在个人环境里测试通过再说。

模型入口统一之后,接下来才是真正的配置分层。CLAUDE.md、Skills、Subagents、MCP servers 这四类配置,每一类都有自己的加载规则,混在一起看就会乱。下面逐个拆。

3. 可复制配置:四类配置的分层目录与加载规则

这一节是全文的核心,给出可直接复制的目录结构和配置片段。先看整体目录布局,再逐类讲加载规则。

一个健康的 monorepo 配置分层大概长这样:

repo-root/ ├── CLAUDE.md # 仓库级长期指令 ├── .mcp.json # 项目级 MCP servers(可提交) ├── .claude/ │ ├── settings.json # 项目级设置 │ ├── skills/ │ │ ├── review-pr/SKILL.md # 项目级 Skill │ │ └── generate-migration/SKILL.md │ └── agents/ │ └── payment-security-reviewer.md # 项目级 Subagent ├── apps/ │ └── web/ │ ├── CLAUDE.md # 子目录局部指令 │ └── .claude/ │ └── skills/ │ └── deploy/SKILL.md # 嵌套 Skill,限定名 apps/web:deploy └── services/ └── api/ └── CLAUDE.md

个人层在 ~/.claude/ 下:

~/.claude/ ├── settings.json # 个人设置(含模型入口) ├── CLAUDE.md # 个人全局指令 ├── skills/ │ └── my-debug/SKILL.md └── agents/ └── code-reviewer.md

3.1 CLAUDE.md:叠加进上下文,不是覆盖

CLAUDE.md 的加载规则是叠加。Claude Code 从当前工作目录向上查找 CLAUDE.md 和 CLAUDE.local.md,把发现的内容拼接进上下文。目录树里从宽泛位置排到具体位置,同一层级里 CLAUDE.local.md 追加在 CLAUDE.md 后面。子目录里的 CLAUDE.md 不一定在启动时加载,而是当 Claude 读取对应子目录文件时再进入上下文。

这意味着 CLAUDE.md 像一叠便利贴,不是配置开关。企业层写安全合规,个人层写开发偏好,项目根目录写架构约定,子目录写局部规则,全部一起进入语义空间。冲突时没有机械的优先级计算器,Claude 根据上下文判断,更靠近当前工作内容的规则通常更具体、更容易被采用。

根目录 CLAUDE.md 示例:

# 仓库级约定 - 包管理器统一使用 pnpm,禁止 npm/yarn - 提交前必须运行 pnpm test - 不允许直接修改 generated/ 目录下的文件 - 接口变更必须同步更新 packages/types

apps/web/CLAUDE.md 示例:

# 前端局部约定 - React 组件优先使用 packages/ui 的组件库 - 样式统一用 CSS Modules,不用内联 style - 路由变更需要同步更新 apps/web/src/routes.ts

注意 CLAUDE.md 会消耗上下文窗口,长文件会降低遵循效果。单个 CLAUDE.md 建议控制在较短规模,多步骤流程移到 Skill 或路径级规则里。CLAUDE.md 适合写每次都必须知道的事实:构建命令、目录结构、永远不要动的文件、接口兼容约束。

3.2 Skills:同名只选一个,Plugin 用命名空间

Skills 的规则和 CLAUDE.md 完全不同。Skill 通过 SKILL.md 扩展能力,可以由 Claude 自动选择,也可以用 /skill-name 直接调用。存放位置决定作用范围:企业级面向组织,~/.claude/skills/ 面向个人所有项目,项目级 .claude/skills/ 面向当前项目,Plugin 也可以携带 Skills。

多个层级出现同名 Skill 时,不是全部拼起来,而是一个定义胜出。优先级是:企业级覆盖个人级,个人级覆盖项目级,同名的也会覆盖内置 bundled skill。Plugin Skills 使用 plugin-name:skill-name 命名空间,不会和用户级、项目级同名 Skill 直接冲突。

项目级 Skill 示例,.claude/skills/review-pr/SKILL.md:

--- name: review-pr description: 审查 PR 变更,检查测试覆盖、接口兼容和日志脱敏 --- # PR 审查流程 1. 读取当前分支与 main 的 diff 2. 检查是否有新增接口未更新 packages/types 3. 检查日志里是否打印了用户敏感字段 4. 检查新增代码是否有对应测试 5. 输出审查结论,按严重程度分级

嵌套 Skill 的场景:apps/web/.claude/skills/deploy/SKILL.md 和根目录 .claude/skills/deploy/SKILL.md 同名时,二者可以同时保留,嵌套版本会出现目录限定名 apps/web:deploy,Claude 根据正在处理的文件选择更匹配的版本,手动调用时也可以用限定名。

3.3 Subagents:同名优先级更细,项目级向上扫描

Subagents 负责把任务交给隔离的工作者。自定义 Subagent 有自己的 prompt、工具限制、权限模式、Hooks 和 Skills,定义为带 YAML frontmatter 的 Markdown 文件。

同名 Subagent 的优先级:Managed settings 最高,CLI flag 次之,项目级 .claude/agents/ 再往下,个人级 ~/.claude/agents/ 更低,Plugin 的 agents/ 目录最低。项目级 Subagents 从当前工作目录向上扫描,多个嵌套目录定义同名 name 时,使用最接近当前工作目录的版本。

项目级 Subagent 示例,.claude/agents/payment-security-reviewer.md:

--- name: payment-security-reviewer description: 支付相关代码的安全审查,检查 PCI、日志脱敏、幂等性 tools: Read, Grep, Glob --- # 支付安全审查 你是一个专注支付安全的审查者。检查以下内容: 1. 是否有明文记录卡号、CVV 等敏感字段 2. 支付接口是否实现幂等性 3. 重试逻辑是否会导致重复扣款 4. 错误日志是否泄露内部实现细节 只输出审查结论,不要修改代码。

Subagent 可以通过 skills 字段预加载 Skill 内容,Skill 也可以通过 context: fork 放到隔离上下文运行。代码审查 Skill 沉淀团队清单,code-reviewer Subagent 隔离读取大量文件,只把结论带回主会话,主上下文不会被海量 diff 挤爆。

注意 Plugin Subagents 的限制:出于安全原因,Plugin Subagents 不支持 hooks、mcpServers 或 permissionMode frontmatter 字段,这些字段在从插件加载 agent 时会被忽略。需要特殊权限的 Subagent,更适合落在项目级或用户级目录。

3.4 MCP servers:同名只连一个,取最高优先级完整定义

MCP 是 Claude Code 接外部世界的桥,连接外部工具和数据源。MCP servers 有 local、project、user 三种安装范围:local 只在当前项目加载且不共享,project 写进项目根目录 .mcp.json 并可通过版本控制共享,user 面向个人所有项目。管理员还可以通过 managed configuration 部署企业级 servers。

同名 MCP server 出现在多个地方时,Claude Code 只连接一次,使用最高优先级来源的完整 server entry,不会跨 scope 合并字段。优先级是:local scope 高于 project scope,高于 user scope,再往下是 Plugin-provided servers 和 claude.ai connectors。

项目级 .mcp.json 示例:

{ "mcpServers": { "github-enterprise": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"], "env": { "GITHUB_TOKEN": "${GITHUB_TOKEN}" } }, "sap-hana-readonly": { "command": "npx", "args": ["-y", "mcp-server-sap-hana"], "env": { "SAP_HOST": "${SAP_HOST}", "SAP_READONLY": "true" } } } }

凭证不要硬编码进仓库。项目级只提交 server 名称、类型和公共 endpoint,敏感认证交给环境变量、OAuth 或本机配置。调试中的 server 放 local scope,只对当前项目和当前用户可见。

server name 要慎重。github、jira、db 这种名字方便但容易冲突,项目里用更具体的名称,比如 github-enterprise、jira-product、sap-hana-readonly。名字语义化之后,工具列表更清楚,权限审查也更容易落地。

3.5 Hooks:合并触发,不是抢优先级

Hooks 是另一套逻辑。Hooks 在 Claude Code 生命周期特定点自动执行 shell commands、HTTP endpoints 或 LLM prompts,事件可以发生在会话开始和结束、每一轮对话、每次工具调用之前或之后。

Hooks 的核心不是按名字覆盖,而是匹配事件后一起触发。Plugin Hooks 会和 user、project Hooks 合并。同名 Skill 只赢一个,同名 MCP server 只连一个,但多个 Hook 只要注册到相同事件并匹配,就都会运行。

项目级 Hook 示例,.claude/settings.json:

{ "hooks": { "PostToolUse": [ { "matcher": "Edit|Write", "hooks": [ { "type": "command", "command": "pnpm prettier --write $CLAUDE_FILE_PATH" } ] } ], "PreToolUse": [ { "matcher": "Bash", "hooks": [ { "type": "command", "command": "bash .claude/hooks/block-dangerous.sh" } ] } ] } }

Hooks 合并带来的不是覆盖冲突,而是重复触发和副作用冲突。项目 Hook 编辑后跑 pnpm lint --fix,个人 Hook 也跑 prettier --write,插件 Hook 又跑代码扫描,一次小改动触发三套脚本。Hooks 设计时把触发条件写窄,matcher 不要过于宽泛,重型任务放到明确事件或异步流程。

3.6 Managed policies:企业级护栏

Claude Code 进入企业环境后,managed settings 是真正的治理层,最高优先级,不可被覆盖。strictPluginOnlyCustomization 可以阻止来自用户级和项目级的 Skills、Agents、Hooks 和 MCP servers,只允许这些能力来自 Plugins 或 managed settings。

企业层负责不可妥协的底线:禁止高危 Bash 命令、限制 MCP server 来源、统一安全审查 Subagent。项目层负责和业务代码强相关的知识。个人层保留轻量偏好。Plugin 层负责可分发的复用能力。这样分层以后,Claude Code 的行为更可预测,也更容易解释。

4. 验证请求:调整加载顺序看生效范围

配置写完之后,怎么验证哪一层生效了?这一节给出可操作的验证步骤。

4.1 验证 CLAUDE.md 叠加

在仓库根目录启动 Claude Code,问它:"当前仓库使用什么包管理器?提交前要运行什么命令?"它应该能答出根目录 CLAUDE.md 里的内容。

然后进入 apps/web 目录,再问:"前端组件应该优先用什么?"它应该能答出 apps/web/CLAUDE.md 里的内容,同时仍然记得根目录的包管理器约定。这说明两层 CLAUDE.md 都进入了上下文。

如果只答出根目录内容,说明子目录 CLAUDE.md 还没被加载——它是在 Claude 读取对应子目录文件时才进入上下文的。让它读一个 apps/web 下的文件,再问一次。

4.2 验证 Skill 覆盖

在项目里放一个 .claude/skills/review-pr/SKILL.md,然后在个人目录 ~/.claude/skills/ 放一个同名的 review-pr/SKILL.md。启动 Claude Code,调用 /review-pr,观察它执行的是哪一套流程。

按规则,个人级覆盖项目级,所以应该执行个人目录里的版本。把个人目录里的同名 Skill 删掉,再调用一次,这次应该执行项目级版本。这个对比能直观看到同名 Skill 的覆盖关系。

4.3 验证 MCP server 优先级

在项目 .mcp.json 里定义 github-enterprise,在个人 user scope 里也定义同名的 github-enterprise,指向不同的 endpoint。启动 Claude Code,用 /mcp 查看当前连接的 server 列表和来源。

按规则,user scope 低于 project scope,所以应该连项目级的。然后在 local scope 里再加一个同名的,重启后应该连 local 的。注意观察:它只连一个,不会把两个的字段合并。

4.4 验证 Subagent 优先级

在项目 .claude/agents/ 放一个 payment-security-reviewer.md,在个人 ~/.claude/agents/ 放一个同名的。启动后让它审查一段支付代码,观察用的是哪套 prompt。

按规则,项目级高于个人级,应该用项目级版本。如果企业通过 managed settings 发布了同名 Subagent,企业级会压过一切。

4.5 验证 Hook 合并

在项目 .claude/settings.json 里注册一个 PostToolUse Hook,在个人 ~/.claude/settings.json 里也注册一个匹配相同事件的 Hook。编辑一个文件,观察两个 Hook 是否都触发了。

按规则,Hooks 是合并触发,两个都应该运行。如果只运行了一个,检查 matcher 是否匹配、命令路径是否正确。

4.6 用 TaoToken 验证模型入口

配置分层验证的同时,确认模型入口是通的。用 curl 测一下:

curl https://taotoken.net/api/v1/messages \ -H "x-api-key: $ANTHROPIC_API_KEY" \ -H "anthropic-version: 2023-06-01" \ -H "content-type: application/json" \ -d '{ "model": "claude-sonnet-4-20250514", "max_tokens": 100, "messages": [{"role": "user", "content": "回复 OK"}] }'

返回正常说明模型入口没问题。如果这里就报错,先解决入口问题,再排查配置分层。模型对话入口在 https://taotoken.net/chat ,可以先用它确认 Key 有效。

5. 本篇常见错排查:401、local proxy failed、reading choices、OAuth

配置分层过程中遇到的报错,很多不是分层本身的问题,而是模型入口或凭证的问题。这一节对照真实报错逐个排查。

5.1 401 Unauthorized

最常见。Claude Code 启动后请求模型返回 401,说明 API Key 无效或没传对。

排查顺序:先确认 ANTHROPIC_API_KEY 环境变量是否设置,echo $ANTHROPIC_API_KEY看有没有值。再确认 Base URL 是否指向 https://taotoken.net/api ,echo $ANTHROPIC_BASE_URL。如果两个都对还报 401,去 https://taotoken.net/api-keys 重新生成一个 Key,确认没有多余空格。

注意:如果项目 .claude/settings.json 里也写了 env,可能会覆盖个人环境变量。检查项目设置里有没有意外的 ANTHROPIC_API_KEY。

5.2 local proxy failed

这个报错通常出现在 Claude Code 尝试连接本地代理时。如果你没有配置本地代理,检查环境变量里有没有残留的 HTTP_PROXY、HTTPS_PROXY 设置。这些变量会让 Claude Code 把请求发到本地端口,而本地没有服务在监听。

unset HTTP_PROXY unset HTTPS_PROXY unset http_proxy unset https_proxy

清掉之后重启 Claude Code。如果团队里有人配了代理,确认它是否还在运行。

5.3 reading choices 报错

这个报错通常和响应格式有关。Claude Code 期望 Anthropic 格式的响应,如果端点返回的格式不对,解析 choices 字段就会失败。

确认 Base URL 是 https://taotoken.net/api ,不要多加路径或者少加。有些兼容端点需要 /v1 前缀,有些不需要,TaoToken 的端点是 https://taotoken.net/api ,Claude Code 会自动拼接后续路径。

如果还是报错,用 4.6 节的 curl 命令直接测端点,看返回的 JSON 结构是否包含 content 字段。

5.4 OAuth 相关报错

MCP server 如果用 OAuth 认证,可能会遇到 token 过期或回调失败。检查 .mcp.json 里对应 server 的 env 配置,确认 OAuth 相关变量是否正确。

对于项目级 MCP server,不要把 OAuth token 写进 .mcp.json。用环境变量引用,或者让 Claude Code 走 OAuth 流程重新授权。如果某个 server 一直授权失败,先把它从项目配置里移除,在 local scope 里单独调试。

5.5 Codex auth.json 配置

如果团队里有人用 Codex 配合 Claude Code,auth.json 需要写全三件套:Base URL、Key、Model ID。

{ "base_url": "https://taotoken.net/api", "api_key": "你的Key", "model": "claude-sonnet-4-20250514" }

三个字段缺一不可。只写 base_url 不写 model,Codex 不知道用哪个模型;只写 api_key 不写 base_url,请求发不到 TaoToken。

5.6 Cline MCP 配置

Cline 里配置 MCP server 时,同样要写全 Base URL、Key、Model ID。Cline 的 MCP 配置文件和 Claude Code 的 .mcp.json 格式类似,但字段名可能不同。确认 Cline 的设置里,模型入口指向 https://taotoken.net/api ,Key 用个人的,Model ID 写清楚。

5.7 CC Switch 配置

如果用 CC Switch 管理多个 Claude Code 配置,确认切换到的配置里 Base URL 和 Key 是配套的。常见错误是切了 Key 但 Base URL 还是旧的,或者反过来。CC Switch 的每个 profile 都应该包含完整的 Base URL、Key、Model ID 三件套。

5.8 Skill 没生效

如果 Skill 调用后没反应,先确认 SKILL.md 的 frontmatter 里 name 和 description 都写了。name 要和调用时用的一致。再确认存放位置:项目级在 .claude/skills/ 下,个人级在 ~/.claude/skills/ 下。如果同名 Skill 在多个层级存在,按优先级只有一个生效,检查是不是被更高优先级的覆盖了。

5.9 Subagent 没生效

Subagent 没生效,检查 .claude/agents/ 下的文件名和 frontmatter 里的 name 是否一致。项目级 Subagent 从当前工作目录向上扫描,如果嵌套目录里有同名 name,用最接近当前工作目录的版本。确认你启动 Claude Code 的目录,以及它扫描到的 Subagent 版本。

5.10 MCP server 连不上

MCP server 连不上,先用 /mcp 看当前加载了哪些 server、来源是什么。如果同名 server 在多个 scope 存在,只有一个会连。确认最高优先级的那个配置是否正确。local scope 高于 project,project 高于 user。如果 local scope 里有个同名的旧配置,它会压过项目里的新配置。

排查完这些,配置分层基本就理清了。模型入口的问题去 https://taotoken.net/api-keys 和 https://taotoken.net/doc 查,配置分层的问题对照第 3 节的规则逐个核对。

6. 把配置分层沉淀成团队规范

配置分层理清之后,下一步是把它变成团队可执行的规范。这一节给出落地建议,以及长期编码场景下的工具选择。

6.1 命名规范

Skill name、Subagent name、MCP server name 都是分层系统里的关键标识。名字取得太宽,冲突就多;名字取得足够业务化,排查就简单。

deploy 不如 deploy-staging-web 清楚,db 不如 sap-hana-readonly 安全,reviewer 不如 payment-security-reviewer 明确。命名本身就是治理的一部分。团队规范里应该写清楚命名约定:项目级 Skill 用动词开头,Subagent 用领域加职责,MCP server 用系统加权限级别。

6.2 分层职责划分

企业层负责不可妥协的底线:禁止高危 Bash 命令、限制 MCP server 来源、统一安全审查 Subagent。项目层负责和业务代码强相关的知识:目录结构、测试命令、领域模型、API 约定。个人层保留轻量偏好:常用编辑习惯、回答风格、个人调试路径。Plugin 层负责可分发的复用能力:标准 PR review、发布检查、运行验证、内部平台操作流程。

每一层写什么、不写什么,团队规范里要明确。最容易出问题的是个人层写了本该项目层写的东西,导致每个人行为不一致。

6.3 配置审查

项目仓库里的 .claude/ 和 .mcp.json 应该纳入代码审查。新增 Skill、修改 Subagent、调整 MCP server 都要走 PR 流程。审查时重点看:命名是否规范、凭证是否硬编码、Hook 的 matcher 是否过宽、MCP server 的权限是否最小化。

个人层的配置不进仓库,但团队可以提供一个推荐的 ~/.claude/settings.json 模板,包含模型入口和常用偏好。模板里 Base URL 指向 https://taotoken.net/api ,Key 留空让个人填。

6.4 长期编码场景的工具选择

如果团队长期用 Claude Code 做编码和 Agent 任务,可以考虑 Coding Plan。Coding Plan 面向持续性的编码场景,适合把 Claude Code 作为日常开发工具、需要稳定模型入口和用量管理的团队。入口在 https://taotoken.net/coding-plan 。

对于需要频繁验证模型能力的场景,模型对话入口 https://taotoken.net/chat 更方便,可以快速测试不同 prompt 和模型的表现。

6.5 接入文档和 API Keys

配置分层落地过程中,接入文档是必备参考。TaoToken 的接入文档在 https://taotoken.net/doc ,里面有 Base URL、认证方式、模型列表和常见问题。API Keys 管理在 https://taotoken.net/api-keys ,团队里每个人用自己的 Key,用量在服务端区分。

6.6 从简单开始,逐步分层

小团队可以从一个 CLAUDE.md 开始,慢慢提炼 Skills,接入必要的 MCP servers,再用 Hooks 固化确定性动作。团队变大以后,再把稳定能力沉淀成 Plugins,把风险入口交给 managed policies 管起来。

不要一开始就搭一套复杂的分层体系。配置分层是为了解决问题,不是为了好看。先有痛点,再加配置。每个新增的 Skill、Subagent、MCP server 都要能回答"它解决了什么问题"。

6.7 验证清单

每次调整配置分层后,用第 4 节的验证步骤过一遍。重点确认:CLAUDE.md 叠加是否正常、同名 Skill 覆盖是否符合预期、MCP server 连的是不是最高优先级版本、Hooks 是否都触发了、模型入口是否通。

把验证步骤写成团队 checklist,新人入职时照着走一遍,能快速理解配置分层机制。

6.8 持续维护

配置分层不是一次性的工作。仓库结构变了、团队规模变了、插件更新了,分层规则都要跟着调整。建议每个季度 review 一次 .claude/ 目录和 .mcp.json,清理不再使用的 Skill 和 server,更新 CLAUDE.md 里过时的约定。

Claude Code 的强大,不只来自模型会写代码,还来自这些能力可以分层、组合、继承和约束。把配置分层理清,Claude Code 才不会变成每个人机器上行为各异的黑箱,而会变成一套可以解释、可以复用、可以治理的工程系统。

最后一步,把团队规范写进仓库根目录的 CLAUDE.md,让 Claude Code 自己也知道这套分层规则。这样它在做决策时,会参考团队约定的加载秩序,而不是凭感觉选一个配置。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询