Claude Code 六种扩展能力整理小结
0. 一句话记住六者分工
| 能力 | 管什么 | 触发方式 | 存放位置 |
|---|---|---|---|
| CLAUDE.md | 项目长期规则(常驻) | 自动读取,每会话都在 | CLAUDE.md / ~/.claude/CLAUDE.md / 子目录 |
| Skills | 某类任务的方法(按需) | /skill-name 或模型按 description 自动判断 | .claude/skills/ |
| Subagents | 独立角色 + 独立上下文干活 | 主 Agent 派发 / 用户点名 | .claude/agents/ |
| MCP | 连接仓库外的系统和数据 | 配置后作为工具可调 | claude mcp add / .mcp.json |
| Hooks | 命中事件就必须执行的确定动作 | 生命周期事件自动触发 | .claude/settings.json 的 hooks |
| Plugins | 把上面几层打包分发给团队 | /plugin install | .claude-plugin/plugin.json |
核心判断链:常驻规则 → CLAUDE.md;重复方法 → Skill;要隔离上下文 → Subagent;要连外部 → MCP;必须发生 → Hook;要发给别人 → Plugin。

1. 为什么需要这六套,而不是"一个万能 Prompt"
纯聊天在真实项目里会失效,原因有两个:
- Claude 要读几十个文件、跑命令、处理测试失败,还可能经历上下文压缩。你临时交代的"这个项目用 pnpm"“改完跑单测”,会和越来越多新信息挤在同一个上下文里。
规则会被稀释。
- 规则只活在你的会话里,换同事、换机器、换项目就得重讲一遍。
经验无法复用。
所以六种能力各自回答一个问题:每次进项目该知道什么(CLAUDE.md)→ 某类任务怎么做(Skill)→ 谁去做、要不要隔离(Subagent)→ 怎么拿到仓库外的信息(MCP)→ 哪些动作不许漏(Hook)→ 怎么发给团队(Plugin)。
2. CLAUDE.md:项目的"上岗说明书"
放什么
和 README 的区别
四个存放位置
| 位置 | 范围 | 适合放 |
|---|---|---|
| ~/.claude/CLAUDE.md | 本机所有项目 | 个人偏好、通用习惯 |
| 当前项目,团队共享(进 Git) | 技术栈、命令、全局规则 | |
| 当前项目,仅自己(进 .gitignore) | 本地地址、个人测试习惯 | |
| <子目录>/CLAUDE.md | 进入该模块时按需加载 | 模块命令、局部架构与禁区 |
大仓库不要把所有模块规则塞进根文件——根目录管全局,各模块(前端/支付/数据)放自己的。
该不该写进去,问三个问题
⚠️ CLAUDE.md 不是安全边界。
PreToolUse Hook。
规则不生效时
/memory 确认文件真的加载了,再检查是不是太模糊、太长、或彼此冲突。
3. Skills:按需加载的"专项工具箱"
解决的问题
目录结构
.claude/skills/release-check/ ├── SKILL.md ← 入口,只做导航 ├── checklist.md ← 大段参考资料单独放 └── scripts/verify.sh ← 确定性检查交给脚本
SKILL.md 的 frontmatter 关键字段:
- name —— skill 名,对应 /name 调用。
- description —— 不是写给人看的广告,而是告诉 Claude 什么时候该加载它。要写清任务、触发语境、以及不适用范围。
- disable-model-invocation: true —— 只允许用户主动调用,模型不得自动触发。
分工原则:脚本负责确定性检查,Claude 负责结合现场解释结果。
什么时候该做 Skill(信号不是"知识很高级",而是重复):同一段说明已经复制第三次;CLAUDE.md 某节越来越像操作手册;任务有固定输入/步骤/输出格式;需要模板、示例或脚本;多个角色要复用同一套知识。
反面:description 写太宽会在不相关任务里乱触发;内容太大加载后一样挤占上下文。Skill 不是越多越好。
4. Subagents:独立上下文里的专门角色
为什么有 Skill 还要 Subagent:Skill 给当前 Agent 加方法,但工作仍发生在当前上下文。安全审查、全仓探索、测试排查会读大量文件、产生大量中间输出,全塞进主会话就把上下文弄脏了。更麻烦的是,让写代码的 Agent 审自己的代码,容易产生"我已经改好了所以应该没问题"的自我认可。
Subagent 的价值:另开独立上下文,让专门角色完成任务,只把结论和证据带回来。
定义(.claude/agents/
一个实用技巧:要求它"若无问题,列出检查了什么,不要只回 looks good"——避免拿到无信息量的结论。
适合拆的任务(共同点:过程很长,但主会话只要结果):只读探索大代码库;安全/性能/测试独立复核;多个互不依赖模块的并行调查;需要不同角色从相反角度挑错;想给角色限制工具、模型或权限。
不适合拆:单文件小修改;强依赖主会话大量隐含信息;子任务互相等待;拆分成本超过任务本身。
组合用法:Skill 是方法,Subagent 是拿着方法独立干活的角色——在 Subagent 的 skills 字段里预加载安全规范或测试方法。
5. MCP:接上仓库外的世界
是什么
典型外部系统
添加与检查
claude mcp add --transport http issue-tracker https://mcp.example.com/mcp claude mcp add --transport stdio my-tools -- node ./tools/mcp-server.js claude mcp list claude mcp get issue-tracker
会话内用 /mcp 看连接与认证状态。团队共享配置可写进 .mcp.json——但
从仓库拉下来的配置需要经过信任和审批,不要因为文件进了 Git 就默认它安全
三个坑
- 。查库就用只读账号,别上生产写权限;代码评审只需读 PR,别顺手给删仓库权限。
权限给太大
- 。一口气接几十个 Server、暴露几百个工具,既增加选择成本又污染上下文。先接最常用、返回结果最干净的。
工具太多
- 。MCP 只负责"能连接、能调用";查什么、怎么判断、输出什么格式,仍归 CLAUDE.md / Skill / Subagent。
把 MCP 当成工作方法
一句话:
MCP 提供手和眼,Skill 提供做事方法。
6. Hooks:不再依赖"记得"
和提醒的区别
提醒
PostToolUse Hook 在编辑成功后自动跑格式化是确定性动作
可挂的事件
配置
.claude/settings.json 或 ~/.claude/settings.json):
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{ "type": "command", "command": ".claude/hooks/check-edited-file.sh" }
]
}
]
}
}
建议把复杂逻辑放进独立脚本
/hooks 确认事件、匹配器、命令都加载了。
避免产生新的问题
.*;默认快速执行,繁重的任务不能影响每次编辑;脚本要有明确的退出码和错误信息;不要在Hook里进行发布、删除、推送等高风险操作
判据:
"发生到这里就必须做"→ Hook;"需要读大量上下文、权衡多个方案"→ 不要 Hook。
7. Plugins:打包分发,不是第七种能力
Plugin 更像
包装和分发格式
什么时候做
.claude/ 里做实验适合快速迭代;等配置稳定、需要跨项目跨团队安装/升级/版本管理时,再打成 Plugin。
最小结构
team-toolkit/ ├── .claude-plugin/plugin.json ← name / description / version ├── skills/release-check/SKILL.md ├── agents/security-reviewer.md ├── hooks/hooks.json └── .mcp.json
本地开发:claude --plugin-dir ./team-toolkit;安装市场插件:/plugin 面板或 /plugin install 。
注意
安装插件不等于给它无限授权
8. 配置顺序(从零开始)
不要第一天就装几十个 Plugin、接十几个 MCP、开一队 Subagents——配置越多,冲突、权限和上下文成本越高。按
问题出现的顺序
- :只写命令、架构、禁区、最常见的坑。
根 CLAUDE.md 写到能用
/memory验证加载。 - :从最常复制的发布/评审/排障流程开始。
把重复流程做成一个 Skill
/skills检查描述和作用域。 - :先接格式化、lint、危险命令拦截。
给"必须发生"的动作加 Hook
/hooks检查,手动验证成功和失败两条路径。 - :优先安全审查、大范围只读探索。
只为明确场景建 Subagent
/agents检查工具/模型/skills。 - :先接一个高频系统,给最小权限。
按真实需求接 MCP
/mcp看认证连接状态。 - :先证明有用,再跨项目分发。插件化太早只会把没想清楚的配置更快复制出去。
稳定后再做 Plugin
配置不生效时的排查顺序:/doctor → /status → /permissions,先确认"有没有加载、从哪加载、最终权限是什么",再怀疑模型。
9. 最容易配错的六个地方
| # | 错误 | 后果 | 改法 |
|---|---|---|---|
| 1 | CLAUDE.md 写成百科全书 | 每轮占上下文,重要规则反被淹没 | 稳定事实留下,专项流程移 Skill,长资料按需加载 |
| 2 | Skill 的 description 太空 | "帮助开发"什么都匹配 = 什么都没说 | 写清任务、触发语境、不适用范围 |
| 3 | 为"并行"滥用 Subagents | 拆任务、传上下文、汇总都要成本 | 只在能独立完成或需隔离噪音时拆 |
| 4 | MCP 一上来给生产写权限 | 误操作半径跟着放大 | 只读优先、最小权限、敏感动作留人工确认 |
| 5 | Hook 又重又宽 | 每次编辑都卡,还可能误伤不相关文件 | 缩小 matcher,逻辑进可测脚本,重任务改 Skill |
| 6 | 把 Plugin 当"装得越多越强" | 组件冲突、工具膨胀、权限难审计 | 只装能解决明确问题的,定期诊断来源 |
10. 高频问题
CLAUDE.md与自动Memory的差异在哪里?
本地
Skill 还是 Hook?
Skill 还是 Subagent?
MCP 和 Plugin 的关系?
配齐六件套一定更好吗?
重复流程出现了才加 Skill;上下文需要隔离才加 Subagent;仓库外能力确实要用才接 MCP。最好的配置不是组件最多,而是每一层都在解决真实问题。
-
下载
-
- 关于柯南的沙雕网名有哪些
- 角色扮演 | 1
- 网名
-
- 最新中性名字男女通用网名有哪些
- 角色扮演 | 1
- 网名
-
- 关于蓝色说唱的网名有哪些
- 角色扮演 | 1
- 网名
-
- 我好喜欢你是什么梗?
- 角色扮演 |