Plugin 是把一堆配置打成一个包:技能、子智能体、钩子、命令,一起装、一起升、一起卸。 它解决的是一致性:改一次要通知几个人,超过了「口头同步能覆盖」的范围,才需要包。
前八章讲的都是「单个能力怎么做好」,这一章讲「怎么把它发给别人」。 这一节先定位:包解决的是什么问题,不解决什么。
一、打包解决了什么
装:一条命令装齐。没包的时候,是一个个文件拷,漏一个就不工作。 升:整包升级。没包的时候,谁改了哪个文件没人说得清。 卸:整包卸载。没包的时候,删了一半剩下一半还在生效——这种「半生效」最难查。
审:一份清单可以评审。散在各处的配置,评审时根本看不全。 四件事里,「卸」最容易被忽略:它只在出问题的时候才重要,而那时候已经晚了。
二、四种规模,成本怎么涨
自己用:一份源,没有拷贝。 一个小组用:几份拷贝,口头同步,出问题再问。 跨团队用:几十份拷贝,要写文档、发版本、答疑。
对外发布:几百份,要管版本兼容、变更说明、issue。 同步方式那一列越往下越重。而这个重量不是线性的:答疑和 issue 会吃掉维护者大部分时间。
三、分界线在哪
判据不是人数,是「改一次要通知几个人」。 一个人改了自己知道;两个人就要说一声;五个人以上,口头同步必然漏。 所以真正的分界线在「口头同步失效」的那一刻,通常就是三到五个人。
一句话:Plugin 真正解决的是「一致性」,不是「方便」。方便是顺带的。
四、包和散装的关系
包里的东西还是那些东西:技能还是 SKILL.md,子智能体还是那份定义,钩子还是那段脚本。 包只是在外面加了一层:一份清单、一个版本号、一个安装位置。 所以「该不该打包」和「内容写得好不好」是两个问题,别混在一起想。
先有能跑的单件,再考虑打包——顺序反了,你会为一个还没成形的东西维护版本。
五、什么时候打包没意义
只有你自己用、改了就生效、没有第二个人依赖——打包只会多一步「装」。 还有一类:东西还在天天变。这时候先别打包,等形状稳定了再说。 这两条会在 9.8 节展开成四个具体问题。
现在先记住一句:包是有维护成本的东西,不是「更正式的版本」。
六、动手 Demo:四种分发规模,同步成本怎么涨
Plugin 是把「一堆配置」打成一个包:一起装、一起升、一起卸。 这里把四种分发规模摆出来,看「同步」这件事的成本怎么涨。
SHAPES = [(u"自己用", 1, 0, u"拷一份目录"),
(u"一个小组用", 5, 1, u"口头同步,出问题再问"),
(u"跨团队用", 30, 4, u"写文档、发版本、答疑")]
实跑输出:
--------------------------------------------------------------------
四种分发规模,同步成本怎么涨
--------------------------------------------------------------------
Plugin 是把「一堆配置」打成一个包:技能、子智能体、钩子、命令,一起装、一起升、一起卸。
它的价值跟用的人多少成正比:一个人用,打包没意义;三十个人用,不打包就是灾难。
① 打包解决了什么
--------------------------------------------------------------------
| 这一步 | 有包 | 没包 |
|---|---|---|
| 装 | 一条命令装齐 | 一个个文件拷,漏一个就不工作 |
| 升 | 整包升级 | 谁改了哪个文件,没人说得清 |
| 卸 | 整包卸载 | 删了一半,剩下一半还在生效 |
| 审 | 一份清单可以评审 | 散在各处,评审时看不全 |
② 四种规模,成本怎么涨
--------------------------------------------------------------------
| 场景 | 多少人 | 几份拷贝 | 同步方式 |
|---|---|:---:|---|
| 自己用 | 1 | 0 | 拷一份目录 |
| 一个小组用 | 5 | 1 | 口头同步,出问题再问 |
| 跨团队用 | 30 | 4 | 写文档、发版本、答疑 |
| 对外发布 | 500 | 20 | 版本兼容、变更说明、issue 处理 |
注意「几份拷贝」这一列:自己用是零份(就一份源),对外发布是二十份。
而同步方式那一列越往下越重——从「拷一份」到「发版本、答疑、处理 issue」。
③ 分界线在哪
--------------------------------------------------------------------
判据不是人数,是「改一次要通知几个人」。一个人改了自己知道;两个人就要说一声;
五个人以上,口头同步必然漏 —— 这时候才需要「包加版本号」。
所以 Plugin 真正解决的是「一致性」,不是「方便」。方便是顺带的。
④ 包和散装的关系
--------------------------------------------------------------------
包里的东西还是那些东西:技能还是 SKILL.md,子智能体还是那份定义,钩子还是那段脚本。
包只是在外面加了一层:一份清单、一个版本号、一个安装位置。
所以「该不该打包」和「内容写得好不好」是两个问题,别混在一起想。
⑤ 什么时候打包没意义
--------------------------------------------------------------------
只有你自己用、改了就生效、没有第二个人依赖 —— 打包只会多一步「装」。
还有一类:东西还在天天变。这时候先别打包,等形状稳定了再说。
这一条和 9.8 节那个判断是同一件事,那边会给具体判据。
! 这一节的成本是示意,不是实测;它演示的是「拷贝份数随人数线性涨」这件结构上的事。
①打包解决四件事:装(一条命令装齐)、升(整包升级)、卸(整包卸载)、审(一份清单可评审)。 「卸」最容易被忽略,它只在出问题时才重要,而那时候已经晚了——半生效的状态最难查。 ②分界线的判据不是人数,是「改一次要通知几个人」。 五个人以上口头同步必然漏,这时候才需要「包加版本号」。 ③所以 Plugin 真正解决的是「一致性」,不是「方便」。方便是顺带的。 ④包不改变内容的格式,只改变它们放在哪儿、怎么被找到。所以先有能跑的单件,再考虑打包。
30 秒实验
- 把「跨团队用」的人数从三十改成三,重跑一遍。这时候还需要包吗?「几份拷贝」到多少才叫管不住?
- 给「自己用」加一个条件「半个月后才回来改」,结论会变吗?为什么「隔了多久」也会影响这个判断?
- 列出你现在散装维护的三样配置。它们各自处于哪种规模?有哪一样其实已经该打包了?
常见误区
- 一个人用也打包。多一步「装」,换不来任何东西。
- 以为打包能解决「内容写得不好」。包只管分发,不管质量。
- 东西还在天天变就打包。改三版之后往往把包废掉,回到散装。
- 把「卸载」当成小事。删了一半、剩一半还在生效,是最难查的一类问题。
- 以为包越多越专业。每个包都有维护成本,包的数量要克制。
自测三问(点开对答案)
1. Plugin 解决的核心问题是什么? —— 一致性。装、升、卸、审四件事在散装状态下都没有保证,包把它们变成一个动作。 2. 该不该打包的判据是什么? —— 「改一次要通知几个人」。五个人以上口头同步必然漏,那时候才需要包加版本号。 3. 为什么「卸载」最容易被忽略? —— 因为它只在出问题的时候才重要。而「删了一半还在生效」是最难查的一类状态。定位说清了,下一节看一个包具体长什么样:一份清单加几个目录。
- ☐ (本篇完,下一篇 9.2 Plugin 的物理结构)
相关笔记
- 何时将能力打包为 Plugin:什么时候该打包
- Plugin 的物理结构:包里的清单怎么写
- Claude Code 橙皮书 · 索引
- 🐎 Claude Code 实战 · 索引