<!-- title: 撞名九组：描述排他设计学 -->

# 撞名九组：装机端描述排他设计学

## 概述

## 一、为什么普查撞名：第五个注册表角度，和最后一个没教的问题

先交代角度的合法性。注册表这个观测点本栏目用过三次：装机普查量了人设占比（390 件里人设件约 245 件）、上下文经济学算了每条描述的持有成本、体重学把七件实测样本排成 W0–W6 谱系。三篇的共同盲区：都把注册表当成**一件件独立技能的集合**，没有把「件与件之间的关系」当数据。撞名普查问的正是关系——两件技能描述同一件事时，谁触发？

这个问题的教学价值比学术价值大。前几期回答的是「单个 Skill 怎么写」：句子、流程、体重。但新手发布的 Skill 不会装进一台空机器——它装进的是一台已经被官方件、巨库、人设件塞满的机器，触发那一刻要和所有常驻描述竞争。往期《起名即路由》拆过名字作为入口的门面设计，那是**单件怎么起名**；本期是**多件共存怎么仲裁**，是门面之后的楼道公约。

普查对象有两组。第一组是**同名重复**：同一个技能名在注册表里挂了两份以上注册。第二组是**同赛道拥挤**：名字不同但赛道相同，描述稍有重叠就会抢触发。两组的病因不同（分发渠道并行 vs 赛道内卷），但对写作者的启示是同一条：描述的职责不只是「说明我是谁」，还有「说明我不是谁」。

## 二、普查数据：9 组同名，19 份注册，10 份冗余

先把同名组的完整清单摆出来（本会话注册表逐名核对口径）：

| # | 技能名 | 注册份数 | 来源组合 | 内容同源判定 |
|---|---|---|---|---|
| 1 | skill-creator | **3** | 裸名 + example-skills: + obsidian: | 异源同名※，是否同一内容未验证 |
| 2 | obsidian-bases | 2 | 裸名 + obsidian: | 几乎确定同物 |
| 3 | obsidian-markdown | 2 | 裸名 + obsidian: | 几乎确定同物 |
| 4 | json-canvas | 2 | 裸名 + obsidian: | 几乎确定同物 |
| 5 | pdf | 2 | 裸名 + example-skills: | 几乎确定同物 |
| 6 | pptx | 2 | 裸名 + example-skills: | 几乎确定同物 |
| 7 | canvas-design | 2 | 裸名 + example-skills: | 几乎确定同物 |
| 8 | algorithmic-art | 2 | 裸名 + example-skills: | 几乎确定同物 |
| 9 | frontend-design | 2 | 裸名 + frontend-design: | 几乎确定同物 |

9 个名字、19 份注册、**10 份纯冗余**；另有一组疑似（deep-research 在裸名清单与带描述区块各出现一次，可能是同一注册的双重渲染，不计入）。冗余的直接代价是上下文税：每份带描述的注册都是一条 100% 常驻的描述文本，10 份冗余等于每个会话白付十份描述钱——单价口径沿用《上下文经济学》，不重复计价。

```mermaid
mindmap
  root((装机约390件))
    同名重复 9组19份
      skill-creator 三份
      example-skills 五对
      obsidian 双注册三对
    同赛道拥挤簇
      PPT 10件
      course 家族 8件
      video 6件
      research 5件
      skill-meta 5件
      deploy 4件
      pcap 3件
    人设件约245件
      榜单照不见的第三生态
    排他句出厂件
      simplify 让位句
      claude-api 触发跳过对
      update-config 划清记忆
```

同赛道组的拥挤度更触目（名字层面逐一清点，描述不可见，重叠程度系推断※）：

- **PPT 簇 10 件**：pptx、example-skills:pptx、pptx-generator、pptx-manipulation、pptx-official、pptx-test、51xtx-ppt-writer、ericsson-ppt-writer、ericsson-ppt-writer-sc、ericsson-ppt-writer-v2（另有 knowledge-to-slides、frontend-slides 两个邻轨）。往期《谁决定好看》对拆过其中四件的质量，本期补的是全簇的拥挤度——**一个赛道装到 10 件时，用户的每次「做个 PPT」都是十选一路由**。
- **course 簇 8 件**：course-designer、course-material-creator、course-video-maker 及其 -link / -zh / -zh-link 三个变体、knowledge-to-course、ai-course-development-expert。变体后缀直接把一件技能做成了四份注册。
- **video 簇 6 件**：content-to-video、txt-to-video、book-to-short-videos、remotion/manim/processing 三个引擎件。
- **research 簇 5 件**：deep-research、research、wikipedia-research、academic-researcher、content-research-writer。
- **skill-meta 簇 5 件**：skill-creator、skill-factory、skill-seekers、find-skills、skill-sync-github——「做技能的技能」本身已经拥挤。
- **deploy 簇 4 件**、**pcap 簇 3 件**、**notebooklm 簇 3 件**。

## 三、排他句逐句拆：出厂描述里现成的仲裁条款

拥挤是常态，那仲裁靠什么？出厂件给出了四种写进描述一句话里的答案，全部为本会话注册表一手原文：

**其一，让位句——simplify。** 原文："Quality only — it does not hunt for bugs; use code-review for that." 一个「不做什么」加一个「接盘者点名」。它在保留自己领地（质量清理）的同时，把最容易重叠的领地（找 bug）用一句英文划给了邻居。耐人寻味的是不对称性：**simplify 让位了，code-review 的描述里却没有回指 simplify**——下位件让位、上位件沉默，因为上位件覆盖面更大，不怕重叠。

**其二，触发/跳过对——claude-api。** 原文以 "TRIGGER when: code imports `anthropic`/`@anthropic-ai/sdk`…" 开场，以 "SKIP when: file imports `openai`/other-provider SDK…" 收尾。这是排他的完全体：正负两个条件从句，把边界钉死到具体的库名。注意它划界的对象不是邻居技能，而是**竞品生态**——连 openai 的 import 都写进了跳过条件。

**其三，门控句——deep-research。** 原文："BEFORE invoking, check if the question is specific enough to research — if underspecified … ask 2-3 clarifying questions." 它解决的不是技能间冲突，而是技能与模糊请求的冲突：宁可反问，不硬接。research 簇 5 件同赛道，这一句让 deep-research 不用和四个邻居抢「帮我查查」这种模糊触发。

**其四，跨系统划界——update-config。** 原文："Automated behaviors … require hooks configured in settings.json … memory/preferences cannot fulfill them." 它的排他对象不是另一个技能，而是 harness 的记忆系统——「这种事别指望记忆，来找我」。这是最宽的一条界：技能与技能外机制的仲裁。

```mermaid
flowchart TD
    A[用户请求] --> B[扫描注册表全部常驻描述]
    B --> C{命中几件}
    C -- 1件 --> D[直接触发]
    C -- 多件 --> E{描述里有排他句吗}
    E -- 有让位句 --> F[按句仲裁 幸存者触发]
    E -- 无 --> G[路由掷硬币<br/>如同名 pdf 双注册]
    G --> H[装错的件长期沉默<br/>用户以为技能不行]
```

出厂件敢点名邻居，有一个社区件学不来的前提：**官方控制整套集件，跨引用是同一供应商内部的合同**。社区件的邻居不在自己的控制范围——你让位给的 code-review 可能根本没装。所以社区版的排他句必须换锚点：不点名邻居，**点名场景**（TRIGGER/SKIP 条件从句）或**点名输入类型**（「只处理 X 格式」）。这是本期最重要的可抄结论。

## 四、评测对比表

权重沿用本栏固定口径：功能 25%、设计 25%、实战 20%、上手 15%、社区 15%（上手分越高越容易）。出厂四件评分沿用 09-04 存档原始口径不复测；带 ▲ 者为本期描述级估分（注册表可见描述为评分底稿）；skill-cabinet 的功能与实战两格因仓库正文未取得取保守低分※。

| 对象 | 功能 25% | 设计 25% | 实战 20% | 上手 15% | 社区 15% | 加权 |
|---|---|---|---|---|---|---|
| code-review（出厂，沿用） | ★★★★★ | ★★★★★ | ★★★★ | ★★★★★ | ★★★★★ | **4.80** |
| simplify（出厂，沿用） | ★★★★ | ★★★★★ | ★★★★ | ★★★★★ | ★★★★★ | **4.55** |
| verify（出厂，沿用） | ★★★★ | ★★★★ | ★★★★★ | ★★★★ | ★★★★★ | **4.35** |
| run（出厂，沿用） | ★★★★ | ★★★★ | ★★★★ | ★★★★★ | ★★★★★ | **4.30** |
| deep-research（▲本期估分） | ★★★★ | ★★★★★ | ★★★★ | ★★★★ | ★★★★ | **4.25** |
| claude-api（▲本期估分） | ★★★★ | ★★★★★ | ★★★★ | ★★★ | ★★★★ | **4.10** |
| update-config（▲本期估分） | ★★★★ | ★★★★ | ★★★★ | ★★★★ | ★★★★ | **4.00** |
| skill-cabinet（▲快照估分） | ★★※ | ★ | ★★※ | ★★★★ | ★★★ | **2.20** |

排他设计单独排一张定性表（不给分，只给机制与可抄性）：

| 样本 | 排他机制 | 原文锚点 | 社区件可抄性 |
|---|---|---|---|
| simplify | 让位句 | does not hunt for bugs; use code-review for that | 低（点名邻居，邻居可能没装） |
| claude-api | TRIGGER/SKIP 条件对 | 正负条件各一段，钉到库名 | **高（按场景划界）** |
| deep-research | 门控反问 | ask 2-3 clarifying questions | **高（模糊请求先澄清）** |
| update-config | 跨系统划界 | memory/preferences cannot fulfill them | 中（需存在可划界的系统机制） |
| code-review | 无排他句，靠覆盖面压制 | — | —（上位件特权） |

## 五、给要写第一件 Skill 的人：四条可抄的排他设计

把普查与逐句拆的结果压成四条，按写作顺序排列：

**第一，名字先把赛道钉死。** 装机端的幸存者命名法是「主体名词 + 动词后缀」：pcap-analyzer / pcap-generator / pcap-modifier 三件同赛相安无事，靠的是动词后缀切分功能面；vercel-deploy / netlify-deploy / render-deploy / cloudflare-deploy 四件共装不撞车，靠的是平台名词进前缀。名字自带区分度，描述的压力就小一半。

**第二，变体后缀要交税。** course-video-maker 一个产品线拆出 -link / -zh / -zh-link 三份注册，ericsson-ppt-writer 拆出 -sc / -v2 两份——每个变体后缀都是用户注册表里一条永久常驻的描述。除非变体真的面向不同宿主或语言且接受共存，否则一件技能内部分支，好过注册表里四件分身。

**第三，描述写一句排他。** 模板直接抄出厂件：

```text
# 让位句（仅当接盘者几乎人手一件时用）
...; it does not hunt for bugs; use code-review for that.
# 场景排他对（社区件安全版：按场景划界，不点名邻居）
TRIGGER when: <具体到库名、文件名、动词的场景>
SKIP when: <最容易误触发的邻近场景>
# 门控句（模糊请求先澄清，不硬接）
If the request is underspecified, ask 2-3 clarifying questions before running.
```

**第四，发布前问一句体重学没问的问题。** 体重学给了三个称重问题（任务脆弱度、维护税、上下文账单），本期补第四问：**装进一台已有 390 件、PPT 赛道已有 10 件的机器，谁让位给你？** 答不出让位者的 Skill，要么把场景切得比所有邻居更细，要么就是注册表里下一个长期沉默的件。

## 安装命令

```bash
# 管理层样本（本期反面教材，无描述、纯社交通道涨星）
npx skills add subsy/skill-cabinet

# 出厂排他四件（code-review / simplify / verify / run）随 Claude Code 分发，无需安装

# 官方示例库（example-skills 同名件的上游），按仓库说明拷贝对应子目录
git clone https://github.com/anthropics/skills

# 手动零依赖装法（任何 Skill 通吃，装完记得写描述排他句）
mkdir -p ~/.claude/skills/my-skill
$EDITOR ~/.claude/skills/my-skill/SKILL.md
```

## 推荐排行榜

- **排他句设计榜**：claude-api（TRIGGER/SKIP 完全体）> simplify（让位句发明者）> deep-research（门控反问）> update-config（跨系统划界）> code-review（无句，靠覆盖面）。
- **同赛道拥挤榜（装机端）**：PPT 10 件 > course 家族 8 件 > video 6 件 > research 5 件 = skill-meta 5 件 > deploy 4 件 > pcap 3 件 = notebooklm 3 件。
- **上下文冗余税榜**：skill-creator（三份注册）> obsidian 系（八条目、三对双注册）> example-skills 系（五对双注册）。
- **新作者第一问榜**：本期第四问「谁让位给你」> 体重学三问 > 八种写法的句式表——先答让位，再谈体重，最后润句子。

一句话收束本期：生态的竞争已经从「谁的功能全」转移到「谁的边界清」——出厂件用一句排他句终结路由战争，社区件还在裸奔。写第一件 Skill 之前，先替它想好那句「我不做什么」。

## 参考来源

> [!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)
