<!-- title: 一件四牌：装机清单里的马甲家族 -->

# 一件四牌：装机清单里的马甲家族

## 概述

本期周报的观测口径先交代清楚：外部榜单通道本期不可用，全部观察取自一台真实机器的装机清单——三百二十余个已安装 Skills 的门牌名册。这个样本换来一个榜单给不了的视角：**不是看哪些件新上架，而是看哪些件在一台机器上挂了不止一块牌**。核心发现是「马甲家族」现象：同一份能力，靠后缀、靠生命周期、靠命名空间，开出两到四家分店。最夸张的一个家族，一门课拆出四个门牌，构成一张 2×2 的笛卡尔积。本文把这个现象切成四型，逐型拆到后缀字符级，给出什么时候该开分店、什么时候必须单店的判断标准。

## 数据面板：一台机器的门牌账本

先把账本摊开。这台机器的装机清单里：

- Skills 总数：**逾 320 个**（含插件命名空间内的重复注册）
- 人名件（以人名/角色命名的 Skills）：**约 180 个**，占比过半——与既往普查「六成门牌是人名」的量级一致，属于存量基本盘
- `example-skills:` 插件命名空间：**16 件**官方示例
- `obsidian:` 插件命名空间：**5 件**
- 同名多处注册：**skill-creator 与 frontend-design 各 3 处**，另有 3 件 Obsidian 系双注册
- 后缀变体家族：**5 组以上**（下文逐组过堂）

换句话说，三百多个门牌里，至少有二十多块牌指向的不是「二十多个不同的能力」，而是「十来个能力的多个化身」。榜单统计装机量的时候，这些化身每一个都算一件。**装机数的水分，就是从这里灌进去的。**

## 评测对比表

本期没有外部热度数据（Star、下载量），评分只覆盖两个可观测维度——门牌清晰度（看名字能否猜出分工）与触发安全（多件并存时会不会抢同一个指令），外加维护成本与抄写价值两个工程维度。**口径：静态名册分析，未逐件实测功能。**

| 家族案例 | 类型 | 门牌清晰度 | 触发安全 | 维护成本（星多=负担小） | 抄写价值 |
|---|---|---|---|---|---|
| course-video-maker 四件套 | 参数后缀型 | ★★★★★ | ★★★☆☆ | ★★☆☆☆ | ★★★★★ |
| ericsson-ppt-writer 三件 | 参数后缀型 | ★★★★☆ | ★★★☆☆ | ★★☆☆☆ | ★★★★☆ |
| openstoryline 两件 | 阶段拆分型 | ★★★★★ | ★★★★★ | ★★★★☆ | ★★★★★ |
| skill-creator 三重注册 | 命名空间重影型 | ★★★☆☆ | ★★★★☆ | ★★★☆☆ | ★★★★☆ |
| pcap 三动词族 | 同前缀兄弟族（对照） | ★★★★★ | ★★★★★ | ★★★★★ | ★★★★☆ |

## 第一型：参数后缀型——把配置差异做成门牌差异

### 头号家族：一门课，四块牌

装机清单里最大的变体家族，是这四件：

```
course-video-maker
course-video-maker-link
course-video-maker-zh
course-video-maker-zh-link
```

这是一张标准的 2×2 笛卡尔积：两个开关（`-zh`、`-link`），全排列，四个门牌。按通行命名惯例，`-zh` 大概率是中文语境档，`-link` 大概率与素材链接的处理方式有关——具体语义需要拆开文件才能确证，本文不替作者下结论。但**结构本身**已经把作者的设计决策交代得清清楚楚：

**作者认为「语言」和「链接」是两个独立的配置维度，且每一个组合都值得一个独立入口。**

这个决策的收益很直接：用户装 `course-video-maker-zh`，触发条件天然收窄到中文课程场景，不需要在提示词里声明参数。SKILL.md 的 description 字段可以写死「中文课程视频」，触发工程（此前拆过的「一个字段定生死」）变成零成本。

代价同样直接，而且是复利的：

1. **四份拷贝**。核心逻辑大概率在四个 SKILL.md 里各存一份。修一个 bug，要改四处；漏改一处，四个门牌里就有一块在说谎。
2. **触发打架**。四个件共享「course video」这个词根。用户说「帮我做课程视频」，模型在四块牌之间摇摆，最后靠 description 里的细微措辞裁决。如果作者偷懒让四个 description 长得像，抢触发现象几乎必然发生。
3. **组合爆炸**。今天 2×2 是四件；明天想加一个「无字幕」维度，就是八件。后缀命名法的扩展成本是乘法，不是加法。

### 亚马逊云 families：只增不删的版本坟场

第二组家族来自同一家厂牌：

```
ericsson-ppt-writer
ericsson-ppt-writer-sc
ericsson-ppt-writer-v2
```

`-sc` 按通行缩写是简体中文档，`-v2` 是第二版。这组家族比 course 系多暴露一个问题：**版本升级没有替换旧牌，而是新挂一块**。`-v2` 上架之后，v1 那块牌——不带任何后缀的主牌——仍然挂在清单里。装机者装到哪块用哪块，用错版本不会有任何报错。

同样的尸体暗示还出现在另一处：清单里只有 `continuous-learning-v2`，没有 v1。这说明该件经历过一次大改版，作者用换牌宣布新版本，旧牌已经下架或从未上架。**同样是 v2，一个家族留着尸首，一个家族连坟都不留**——后缀版本法没有约定俗成的清理纪律，每个作者自己发明。

### `chart-craft-plus` 与 `gstack-local`：单件变体

还有两个单人单级的变体：`chart-craft` 与 `chart-craft-plus`，`gstack` 与 `gstack-local`。前者是典型的「增强版另立门户」，后者按命名惯例是本地化部署档。这两个案例的关键差异在于：它们只分化了一次，家族树是一层扁平的枝杈，维护负担尚可控。变体家族的风险从来不在数量，在于**分化之后还有没有合并的机制**——这两组显然没有。

## 第二型：阶段拆分型——把流水线切成两块牌

```
openstoryline-install
openstoryline-use
```

这是全清单里我最愿意让初学者抄的一对门牌。它和后缀型有本质区别：`install` 和 `use` 不是同一件事的两种口味，而是**同一条工作流的两个阶段**——先装，后用。

用后缀型的三个代价来检验它：

1. **没有拷贝问题**。安装逻辑和使用逻辑本来就是两段代码，拆开是顺着纹理切，不是复制粘贴。
2. **没有触发打架**。「帮我装 openstoryline」和「帮我用 openstoryline 出片」是两个意图域，description 各写各的，互不越界。
3. **没有组合爆炸**。阶段是线性的，阶段数就是件数，不会相乘。

阶段拆分型的适用边界也很清楚：只适合**「部署/使用」生命周期差异极大**的件——比如依赖外部服务、安装步骤繁琐的工具。一个纯本地的文本处理件拆成 install/use，就是为拆而拆。

顺带一提，清单里的 `zlib-download` 与 `zlib-to-notebooklm` 也是近亲：前者管取货，后者管把货送进 NotebookLM 的流水线。取货和加工分成两块牌，同样是阶段拆分的思路，只是没用 `install/use` 这种自解释后缀，门牌清晰度略逊。

## 第三型：命名空间重影型——一份能力，三块招牌

第三型最隐蔽，因为它不靠后缀，靠**命名空间**。

```
skill-creator
example-skills:skill-creator
obsidian:skill-creator
```

同一个名字，三处注册：顶层用户目录一份，官方示例插件一份，Obsidian 插件一份。`frontend-design` 同构，也是三处，其中一处还带着自家命名空间：

```
frontend-design
example-skills:frontend-design
frontend-design:frontend-design
```

第三块牌的形式值得单独说：`插件名:技能名` 的完整限定名，是插件打包时的标准写法。它揭示了这个生态的一个分发现实——**同一个能力，要随宿主走**。模型在用户级、示例插件级、第三方插件级各能摸到一份 skill-creator，功能一致，触发靠命名空间隔离才不至于打架。

这型是真问题还是假问题？我的判断：**对单机用户是冗余，对生态是必需**。插件化分发要求能力随包走，用户级安装又要求能力离包可用，两边都合理，撞在一起就成了重影。真正的坑在维护端：三处注册若是三份独立拷贝，官方示例改了一版，用户目录里的旧版不会自动跟上——清单里那九件「顶层与 example-skills: 双注册」的官方件（docx、pptx、xlsx、pdf、mcp-builder 等），哪一份更新、哪一份过期，装机者无从判断。**重影不可怕，可怕的是重影之间的版本差没有任何 UI 能看见。**

## 第四型（对照）：同前缀兄弟族——不是马甲，是分工

必须把对照组请出来，否则读者会以为所有同前缀件都是病：

```
pcap-analyzer / pcap-generator / pcap-modifier
content-creator / content-research-writer / content-repurposer / content-strategy
```

pcap 三件是三个动词对同一个对象：分析、生成、改写。意图域完全不重叠，触发天然安全。content 四件是工作流的四个工位：研究、创作、复用、策略。这两组与 course 四件套的差别一句话说尽：**兄弟族拆的是「做什么」，马甲族拆的是「对谁做/怎么做」。前者是职能分工，后者是配置分化。** 判断一个多件家族健康与否，就看它的切分轴是动词还是配置。

## 设计军规：什么时候该开分店

把四型过完，可以提炼四条可执行的规则，给想写自己第一个 Skill 的读者：

1. **配置差异用参数，不用门牌。** 语言、格式、深度这类连续变量，写进 SKILL.md 让用户在对话里声明，或者做成脚本参数。只有当某个配置组合的触发词、流程、产出物**全部**不同时，才值得另挂一块牌。
2. **阶段差异才拆件。** install/use、download/process 这类生命周期切分，每块牌一个独立意图域，是健康的拆法。
3. **版本升级就地替换，别留坟。** v2 上架当天，v1 改名归档或直接删除。清单里的 `-v2` 并存现象，本质是把版本管理债转嫁给了装机者的判断力。
4. **多宿主注册，单一事实源。** 同一份能力要发多个渠道时，用一个上游目录做源，发布脚本分发到各命名空间，禁止手工维护多份拷贝。

## 生态结构图

```mermaid
flowchart TD
    A["一件多牌四型"] --> B["参数后缀型"]
    A --> C["阶段拆分型"]
    A --> D["命名空间重影型"]
    A --> E["同前缀兄弟族"]
    B --> B1["course-video-maker-zh"]
    B --> B2["ericsson-ppt-writer-v2"]
    B --> B3["chart-craft-plus"]
    C --> C1["openstoryline-install"]
    C --> C2["openstoryline-use"]
    D --> D1["skill-creator 三处注册"]
    D --> D2["frontend-design 三处注册"]
    E --> E1["pcap-analyzer"]
    E --> E2["pcap-modifier"]
```

头号家族的笛卡尔积单独画一张，看得更清楚：

```mermaid
flowchart TD
    BASE["course-video-maker"] --> ZH["加 -zh 后缀"]
    BASE --> LINK["加 -link 后缀"]
    ZH --> BOTH["course-video-maker-zh-link"]
    LINK --> BOTH
    BOTH --> RISK["四份拷贝维护债"]
```

## 推荐排行榜

**最值得抄的三种挂法：**

1. **openstoryline 的 install/use 拆分**——阶段切分自解释，触发零冲突，初学者第一课
2. **pcap 的动词三分**——一件一个动词，职能边界即触发边界
3. **content 四工位**——工作流前中后各立一牌，流水线自带组织架构

**最该避开的两个反模式：**

1. **course-video-maker 的 2×2 全排列**——配置维度相乘，门牌数失控，四份拷贝同步是长期税
2. **ericsson-ppt-writer 的 v1/v2 并存**——升级换牌不删旧牌，装机清单变成版本坟场

## 安装与自查命令

变体家族的件，安装前先做一次自查。检索某个名字是否已有变体在册（`npx skills find` 是该生态的通用检索入口）：

```bash
npx skills find course-video-maker
```

本机自查装机清单里有没有同族门牌（以任何类 Unix 环境为例）：

```bash
ls ~/.claude/skills/ | grep -i "video-maker"
```

确认无冲突后再装单个变体——变体件只装你需要的那个组合，不要全家桶：

```bash
# 安装单个技能的通用做法：将含 SKILL.md 的目录放入技能目录
git clone <仓库地址> ~/.claude/skills/course-video-maker-zh
```

装完复查一次重影：

```bash
ls ~/.claude/skills/ | wc -l
```

## 参考来源

> 口径说明：本期全部实例取自一台真实机器的装机清单（静态名册分析，未逐件实测），文中对后缀语义的解读均标注「按命名惯例推断」。以下为栏目常规信息源，本期未做在线核验，列作延伸入口。

1. [skillsmp.com](https://skillsmp.com) — 2300+ Skills 的可搜索聚合目录，可用来核对某一家族在市场上的在架变体数
2. [mcpservers.org/agent-skills](https://mcpservers.org/agent-skills) — Claude Skills 与 Agent Skills Library，官方与社区精选收录
3. [skillsdirectory.com](https://www.skillsdirectory.com) — 带安全扫描评级的 Skills 目录，装机前建议先过一遍
4. [skills.sh](https://skills.sh) — Skills 生态站，热门榜单可用于验证本文家族在市场上的热度
5. [github.com/anthropics/skills](https://github.com/anthropics/skills) — 官方 Skills 仓库，`example-skills:` 命名空间的重影源头

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
