先交代角度的合法性。注册表这个观测点本栏目用过三次:装机普查量了人设占比(390 件里人设件约 245 件)、上下文经济学算了每条描述的持有成本、体重学把七件实测样本排成 W0–W6 谱系。三篇的共同盲区:都把注册表当成一件件独立技能的集合,没有把「件与件之间的关系」当数据。撞名普查问的正是关系——两件技能描述同一件事时,谁触发?
这个问题的教学价值比学术价值大。前几期回答的是「单个 Skill 怎么写」:句子、流程、体重。但新手发布的 Skill 不会装进一台空机器——它装进的是一台已经被官方件、巨库、人设件塞满的机器,触发那一刻要和所有常驻描述竞争。往期《起名即路由》拆过名字作为入口的门面设计,那是单件怎么起名;本期是多件共存怎么仲裁,是门面之后的楼道公约。
普查对象有两组。第一组是同名重复:同一个技能名在注册表里挂了两份以上注册。第二组是同赛道拥挤:名字不同但赛道相同,描述稍有重叠就会抢触发。两组的病因不同(分发渠道并行 vs 赛道内卷),但对写作者的启示是同一条:描述的职责不只是「说明我是谁」,还有「说明我不是谁」。
先把同名组的完整清单摆出来(本会话注册表逐名核对口径):
| # | 技能名 | 注册份数 | 来源组合 | 内容同源判定 |
|---|---|---|---|---|
| 1 | skill-creator | 3 | 裸名 + example-skills: + obsidian: | 异源同名※,是否同一内容未验证 |
| 2 | obsidian-bases | 2 | 裸名 + obsidian: | 几乎确定同物 |
| 3 | obsidian-markdown | 2 | 裸名 + obsidian: | 几乎确定同物 |
| 4 | json-canvas | 2 | 裸名 + obsidian: | 几乎确定同物 |
| 5 | 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 份冗余等于每个会话白付十份描述钱——单价口径沿用《上下文经济学》,不重复计价。
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 划清记忆
同赛道组的拥挤度更触目(名字层面逐一清点,描述不可见,重叠程度系推断※):
拥挤是常态,那仲裁靠什么?出厂件给出了四种写进描述一句话里的答案,全部为本会话注册表一手原文:
其一,让位句——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 的记忆系统——「这种事别指望记忆,来找我」。这是最宽的一条界:技能与技能外机制的仲裁。
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 | 无排他句,靠覆盖面压制 | — | —(上位件特权) |
把普查与逐句拆的结果压成四条,按写作顺序排列:
第一,名字先把赛道钉死。 装机端的幸存者命名法是「主体名词 + 动词后缀」: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 两份——每个变体后缀都是用户注册表里一条永久常驻的描述。除非变体真的面向不同宿主或语言且接受共存,否则一件技能内部分支,好过注册表里四件分身。
第三,描述写一句排他。 模板直接抄出厂件:
# 让位句(仅当接盘者几乎人手一件时用)
...; 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,要么把场景切得比所有邻居更细,要么就是注册表里下一个长期沉默的件。
# 管理层样本(本期反面教材,无描述、纯社交通道涨星)
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
一句话收束本期:生态的竞争已经从「谁的功能全」转移到「谁的边界清」——出厂件用一句排他句终结路由战争,社区件还在裸奔。写第一件 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 等场景全覆盖。
