title:"Claude Code 插件第一性原理:你装的不是新功能,是打包分发"type:公众号终稿series:Claude Code 从 0 到 1 入门sequence:11status:终稿created:2026-06-28published:2026-06-28main_value:实用为主source_material:"[[50-创作与素材/MOC-待消化素材/怎么给 AI 装插件]]"writing_plan:"[[50-创作与素材/工作区/CC11-插件第一性原理-plan]]"related_docs:-"[[CC07-从Skill到SubAgent:一张桌子的故事]]"-"[[CC08-多个AI怎么协作]]"-"[[CC09-Claude Code 的提示词是提醒——不够用,得装门禁 Hook]]"-"[[CC10-Claude Code 权限分 5 档:5 张房卡看你该拿哪张]]"-"[[30-知识与技能/MOC-AI应用方法论/AI辅助写作-L1-03-事实层与解读层]]"style_card:19 · 马斯克(第一性原理 + 反官方包装 + 280 字短帖)tags:-Claude Code-Plugin-插件-第一性原理-打包分发-Marketplace-高信任组件-npmdescription:|Claude Code 插件不是 App Store 装的孤立功能,而是把你已有能力(Skill/Hook/MCP/SubAgent)打包分发的容器。本文剥到第一性讲清楚:插件解决了什么(散装配置难复制)、怎么用(目录结构 + manifest + marketplace + scope)、什么时候该用(先问 3 个问题)、2 个致命失控(App Store 装一堆 + 个人配置仓库化)。changelog:-2026-06-28:v1 草稿,按 writing-sop 跑完 9 维决策 + brainstorming 流程 + 马斯克(19)风格指令 + 6 大块大纲-2026-06-28:内容审查通过(全文合格,无高风险问题)-2026-06-28:事实核查通过——3 处修订——(1) "11 个组件"改为"9 个核心稳定 + 2 个 experimental"(官方主页只列 9 个稳定,Themes/Output styles 标 experimental);(2) §5 "high-trust components" 去掉引号 + 标"素材原作者转述";(3) §4 命名空间加 1 句"S KILL.md name 不带前缀";移到 MOC-创作成果/Claude Code 从 0 到 1 入门系列 · 第 11 篇上手时间:读完约 8 分钟,搭一个最小插件约 5 分钟
Skill / Hook / Permission / SubAgent / Agent Teams / MCP ……熟悉吗?会用这些,都是能力。
你的能力非常强,让同事非常羡慕:"你这套 Claude Code 怎么配的?我也想装"。那怎么做?🤔
单个文件📄可以复制,单段配置📄也可以贴过去,这整套能力散落在 .claude/、settings.json、.mcp.json、脚本目录里。你想想,复制一次还行,给多个人复制会不会出错?
然后,假设你更新了 Hook 逻辑,是不是还得通知大家手动更新😅😅
所以才有了 Plugin(插件)。
插件 = 新功能?😅😅不是这样
大多数人第一次听说 Claude Code 插件,直觉反应是:
"哦,就是装一个新功能嘛,像装 Chrome 插件那样。"
这个直觉是错的。
如果你真的把 Plugin 当"新功能"装:
逛 marketplace 像逛 应用商店 一样,然后装一堆 装完期待 Claude "多了一个能力" 结果发现 Claude 没变聪明,因为 Plugin 装的是你已有的能力,不是新能力
哪里有问题?🫤
Chrome 插件 = 装一个新功能(广告拦截器、密码管理器、主题皮肤), 这些插件给浏览器增加原本没有的能力。
Claude Code 插件 ≠ 装一个新功能。
它是把你已经在用的 Skill / Hook / MCP / SubAgent 打包起来,让另一个项目、另一个同事也能用同一套。
可总结为👉第一性:Plugin 的价值不是给 Claude Code 加能力,是把你已有的能力(你花了一周配的 Hook、你写的 MCP server、你调的 Skill)变成可分发、可更新、可安装的包。
Plugin 第一性:你已有能力的打包分发
抛去官方定义,抛掉"npm 包类比",Plugin 第一性原理只有一句话:
Plugin = 你已有能力的打包分发。
ta不是新功能,是把分散在 .claude/、settings.json、脚本目录里的配置,作为一个整体打包。装的人不用懂怎么配、用哪几个文件、怎么连。
这跟 npm 包的设计哲学一样👉不是创造新能力,是给已有能力提供分发包装。
但实际 npm 类比容易把人带偏,让人以为"Plugin 就是 npm 包的 copy"。真正的 Plugin 比 npm 多了两层:
- 容器化
Plugin 不是单一文件,是一组文件(Skill + Hook + MCP + SubAgent + manifest + 默认设置)的整体打包 - 可发现性
通过 Marketplace 目录统一管理,不用记仓库地址
我看官方文档把 Plugin 说成"包含 skills/agents/hooks/MCP servers 等扩展能力",有点觉得这个描述是倒果为因。Plugin 不是"包含这些东西",Plugin 是"这些分散能力的统一分发入口"。
如果让我重写所有文章,我会先写"Plugin = 容器, 也等于 你已有能力的打包",再讲里面能塞什么。先讲结构、再讲组件,而不是反过来从内到外。
拆解:9 个核心组件👉Plugin 是容器不是功能
以往,Plugin 常被说成只打包 5 件套:commands、agents、skills、hooks、MCP。这个理解是过时的,当前官方一个 Plugin 包含 9 类核心组件 + 2 个 experimental:
核心 9 类(稳定)
| Skills | skills/ | |
| Commands | commands/ | |
| Agents | agents/ | |
| Hooks | hooks/hooks.json | |
| MCP servers | .mcp.json | |
| LSP servers | .lsp.json | |
| Monitors | monitors/monitors.json | |
bin/ | bin/ | |
| Default settings | settings.json |
Experimental 2 类 ⚠️
| Output styles | output-styles/ | |
| Themes | themes/ |
⚠️ Output styles 和 Themes 截至 2026-06 仍标 experimental,生产环境谨慎使用。
Plugin 是"容器"不是"功能",你这样理解一下:
一个 PR 审查 Plugin = Skill(审查流程)+ Agent(安全审查员)+ MCP(GitHub 数据)+ Hook(提交前检查)🤔🛠️4 类能力打包在一起,团队成员装一次就有完整能力。
如果让我重做插件分类,我会先按"装的人会得到什么能力"分(流程 / 工具 / 智能 / 监控),再按组件分。现在的分类按"实现机制"分,让装的人看了一脸懵。
什么时候该装?先问 3 个问题
不是所有配置都该打 Plugin。先问 3 个问题,全答"是"才考虑打包:
| 这套配置会被另一个项目或同事复用吗? | .claude/ | |
| 配置包含 3 个以上组件吗? | ||
| 配置会随时间演进、需要分发更新吗? |
反过来说,如果 3 个问题有 1 个答"否",就先别打 Plugin——standalone(散装配置)适合个人和单项目。
具体怎么判断?👇
.claude/CLAUDE.md | |
.claude/settings.local.json | |
| Plugin | |
| Plugin | |
| Plugin |
这跟发 npm 包一个逻辑👉不要一开始就发包。先在本项目里跑通,稳定后再打包。
如果你只数出 0-1 条(部分)该打 Plugin🤔证明你还在 standalone 阶段,⚠️别为了"看起来工程化"提前打包。
5 分钟搭一个最小可用插件
目标也比较简单:搭一个最简 PR 审查 Plugin。
【一个 Skill + 一个 manifest】,然后让同事能装上。
第 1 步:建目录结构(30 秒)
pr-review-plugin/├── .claude-plugin/│ └── plugin.json└── skills/ └── review-pr/ └── SKILL.md⚠️ 常见错:把 skills/ 也塞进 .claude-plugin/ 里,这会导致组件加载不到。只 manifest 进 .claude-plugin/,其他组件放插件根目录。
第 2 步:写 manifest(1 分钟)
.claude-plugin/plugin.json:
{ "name": "pr-review-plugin", "description": "Claude Code 的团队PR审查工作流", "version": "1.0.0", "author": { "name": "Your Team" }}字段含义:
name插件唯一标识,也是 Skill 命名空间前缀(下面第 3 步会用到) description管理界面展示用 version控制用户什么时候收到更新,不写 version 的话,如果通过 git 分发,Claude Code 用 commit SHA 判断版本,每次 commit 都视为新版本 author作者归属
第 3 步:写一个 Skill(1 分钟)
skills/review-pr/SKILL.md:
---name:review-prdescription:审查拉取请求的安全性,风格和测试---# Review PR在审查拉起请求时:1.检查安全问题(SQL注入,硬编码密钥)2.验证代码风格符号项目规范3.确认测试覆盖新逻辑4.在最后输出风险列表命名空间机制:当你装了 pr-review-plugin,调用时用 /pr-review-plugin:review-pr,不会跟其他插件的 review-pr 冲突。
⚠️ 注意:SKILL.md 里的 name 字段只写 skill 本名(如 review-pr),不带命名空间前缀——前缀由 plugin.json 的 name 自动加。
第 4 步:发到仓库 + 加 Marketplace(2 分钟)
推到一个 git 仓库(比如 your-org/pr-review-plugin)。
然后在 Claude Code 里:
/plugin marketplace add https://gitlab.com/your-org/plugins.git/plugin install pr-review-plugin@your-org安装作用域(用 --scope 指定):
user | ||
project | 团队统一工具链 | |
local | ||
managed |
默认装到 user scope,团队统一用要显式加 --scope project,会写入 .claude/settings.json 的 enabledPlugins。
大概就这样,5 分钟🏪📨你的同事就能装你的 PR 审查 Plugin 了。
高信任组件的 2 个致命失控 + 短帖收尾
搭插件容易,管住风险难。
一句话:Plugins 和 marketplaces 是 high-trust components,可以用你的用户权限在机器上执行任意代码。⚠️ 插件跑在你的 session 权限里。
失控 1:把 Plugin 当 App Store(应用商店) 装一堆
Marketplace 的体验跟手机商店太像了,图标、列表、一键安装。但底层完全不同:
| 任意代码 |
修复建议:每装一个插件,至少看它的 bin/ 和 hooks/👀👉这两类是真正能"代你执行"的代码。装 10 个不知来源的 plugin,等于把电脑控制权交给 10 个陌生人。
失控 2:把 Plugin 当个人配置仓库
把所有 Skill、所有 Hook、个人主题、shell 别名全打进一个"my-claude-config" Plugin,结果可能同事装了反而被强制改成你的工作风格。
修复建议:Plugin 应该围绕单一可复用工作流打包("PR 审查"、"合规审计"),不是个人 dotfiles。个人偏好放 ~/.claude/ 不进 Plugin。
收尾 2 件事儿
三句话总结
- 第一性
Plugin = 你已有能力的打包分发,不是新功能。 - 决策
先问 3 个问题(复用?3 个组件?分发更新?)。满足 3 个"是"才打 Plugin,有1个"否"就留 standalone。 - 风险
高信任组件跑在你 session 权限里👉看 bin/和hooks/、别装来源不明的、看 scope、定期回顾。
5-15 分钟练习题
任务:列出你 ~/.claude/ 下当前所有 standalone 配置(Skills / Hooks / MCP servers)。判断:哪些只对你个人 / 单项目有用✔️留在 standalone;哪些会被另一个项目或同事复用🛠️🛠️可以打成 Plugin。
验收标准(全部满足才算合格):
- 列出 ≥ 3 条 standalone 配置
每条写清"是 Skill / Hook / MCP / 其他" + "用途一句话" - 判断每条是否该打 Plugin
用本文的 3 个问题(复用?3 个组件?要分发更新?),每条给"是/否"判断 + 一句话理由 - 如果 ≥ 2 条该打 Plugin
写出 1 个最小 Plugin 目录结构(manifest + 至少 1 个组件) - 复述第一性
用一句话讲清"Plugin 第一性原理是什么"(不超过 30 字)
做完 4 步,你会有一个自己的"散装配置 → Plugin 化"清单🤔🫤下次想打包直接照着做。
本文是 CC10-Claude Code 权限分 5 档:5 张房卡看你该拿哪张 的延伸阅读——前一篇讲"给 AI 权限边界",本文讲"把已有能力打包分发"。
夜雨聆风