主题
扩展 Claude Code 总览
介绍 CLAUDE.md/Skills/subagents/hooks/MCP/plugins 等扩展层及选型。
你的扩展栈现状(按你真实配置)
把官方"扩展层"对到你实际在用的东西:
| 扩展层 | 你的现状 |
|---|---|
| CLAUDE.md / AGENTS.md | 4 层 CLAUDE.md+AGENTS.md 成对:root / docs/ / kj-frontend/ / SpringBlade_GKX_Base/。没有用户级 ~/.claude/CLAUDE.md。注意 CC 只读 CLAUDE.md,AGENTS.md 要靠 @AGENTS.md 导入才进上下文 |
| Skills | ~/.claude/skills/ 下 48 个个人技能(gstack 那套:/qa、/cso、/investigate、/ship、/design-* 等)+ 插件命名空间技能(/code-review、/commit、superpowers:brainstorming 等)——你是重度 skills 用户 |
| MCP | 5 个,全来自插件:serena / context7 / playwright / figma / chrome-devtools。工具默认 deferred 不占上下文 |
| Subagents | 没自建,靠 pr-review-toolkit 那套(见「并行运行总览」节) |
| Hooks | 你没写任何自定义 hooks;但 superpowers、ralph-loop 插件自带 hooks 在跑——你其实已在用 hooks,只是没自己配过 |
| Plugins | 15 个启用、全来自 claude-plugins-official(semgrep 关着);另注册了 claude-hud 市场 |
对你最该注意的一点
你全局 defaultMode: bypassPermissions——权限弹窗全跳过。官方这套扩展里,只有 hooks(尤其 PreToolUse)是确定性硬闸;CLAUDE.md/AGENTS.md 里写的"必须先确认 git push / 改 SpringBlade 启动配置"在 bypass 下只是建议、拦不住。要真拦,得加 PreToolUse hook(见「Hooks」节的现成模板)。
选型口诀:常驻规则→CLAUDE.md;可复用流程→Skill;外部工具→MCP;隔离/并行→subagent;每次必做/必拦→hook;打包分发给团队→plugin。
官方文档要点
以下为按官方文档整理的系统性参考。
是什么
Claude Code 由能推理代码的模型加一组内置工具(文件操作、搜索、执行、网络访问)组成,内置工具已覆盖大多数编码任务。本页讲解其上的「扩展层」:用于定制 Claude 所知内容、连接外部服务、自动化工作流的特性。
扩展会插入 agentic loop 的不同环节:CLAUDE.md 提供每次会话都可见的持久上下文,Skills 提供可复用的知识与可调用工作流,MCP 连接外部服务与工具,subagents 在隔离上下文中独立运行并返回摘要,hooks 在生命周期事件上触发,plugins 与 marketplaces 负责打包分发。新用户建议先用 CLAUDE.md 记录项目约定,再随具体触发场景逐步添加其他扩展。
怎么工作
- 按目标选型:从「每次会话都加载的常驻上下文」到「你或 Claude 按需调用的能力」再到「特定事件触发的后台自动化」,文档给出 Feature/作用/使用时机/示例对照表
- Skills 是最灵活的扩展,本质是一个含知识、工作流或指令的 markdown 文件,可用 /<name> 调用或由 Claude 在相关时自动加载
- 逐步搭建:不必一次配齐,每个特性都有可识别的触发信号(同一约定 Claude 错两次→写进 CLAUDE.md;反复粘贴同一 playbook→沉淀为 skill;另一个仓库需要同样配置→打包成 plugin)
- 多层级叠加规则不同:CLAUDE.md 各层内容叠加(additive)、冲突时更具体者优先;Skills/subagents 按名覆盖;MCP 按名覆盖 local>project>user;hooks 全部合并触发
- 组合使用:Skill+MCP、Skill+Subagent、CLAUDE.md+Skills、Hook+MCP
- 上下文成本各异:CLAUDE.md 会话开始加载全文且每次请求都在;Skills 开始仅加载描述、调用时加载全文;MCP 仅加载工具名、用时再拉 schema;subagents 用隔离上下文;hooks 在会话外执行成本为零(除非返回输出)
什么时候用
- 想给 Claude 加常驻项目约定或「永远做 X」规则时,用 CLAUDE.md
- 有可复用知识、参考文档或可重复任务(如 /deploy 部署清单、API 文档)时,用 Skill
- 需要上下文隔离、并行任务或专职 worker(读大量文件只回摘要)时,用 subagent 或 agent teams
- 需要连接数据库、Slack、浏览器等外部数据或动作时,用 MCP
- 希望某动作每次匹配事件都确定性发生(如每次编辑后跑 ESLint、拦截危险命令)时,用 hook
限制 / 坑
- Agent teams 为实验性功能,默认关闭,需另行参考其文档启用
- CLAUDE.md 建议保持在 200 行以内,过长应把参考内容移到 skills 或拆到 .claude/rules/
- CLAUDE.md 或 skill 里写「绝不编辑 .env」只是请求而非保证;要强制约束须用 PreToolUse 之类 hook
- skill 描述若含糊或重叠,Claude 可能加载错误 skill 或漏掉应有的;扩展加得过多会占满上下文
- LSP/code intelligence 工具在未安装对应语言的 code intelligence 插件前处于未激活状态
硬事实速查(12 条)
- CLAUDE.md:每次会话自动加载的持久上下文,适合项目约定与 always do X 规则
- Skills:Claude 可用的指令/知识/工作流,可 /<name> 调用或自动加载;最灵活的扩展,分 reference(参考)与 action(执行)两类
- Subagents:拥有独立上下文的隔离 worker,只把摘要返回主会话,适合读大量文件、并行与专职任务
- Agent teams:协调多个相互独立的 Claude Code 会话,teammate 间可直接通信并共享任务列表(实验性,默认关闭)
- Code intelligence(LSP):接入语言服务器做符号级导航与实时类型诊断,需装语言插件
- MCP:连接外部服务与工具的协议,连接与鉴权由 server 负责
- Hooks:在生命周期事件上触发,可运行 shell 命令、HTTP 请求、LLM prompt 或 subagent;确定性触发,适合 lint、拦截、日志、通知与强制护栏
- Plugins:打包层,把 skills/hooks/subagents/MCP servers 捆成单一可安装单元,plugin skill 带命名空间
- Marketplaces:托管与分发 plugin 集合的渠道
- Rules(.claude/rules/):每次会话或匹配文件打开时加载,可按文件路径限定作用域
- bundled skills:Claude Code 自带开箱即用 skill,如 /code-review、/batch、/debug
- disable-model-invocation: true:让 skill 对 Claude 隐藏、只能手动调用,把上下文成本降为零