首页 › skills-review › 拆mattpocock:把Skill写成一套的六课

拆mattpocock:把 Skill 写成一套的六课

概述

评测对比表

本期评的是「套件架构」而非单件,维度相应替换:组织结构(分层与复用)、上下文成本控制、分发设计、新手可抄度。带「存档」字样的分数沿用往期印刷值,带 ※ 的为本期套件层印象分(正文树未核验,见文末局限声明)。

套件 星数(09-20) 件数与形态 组织结构 成本控制 分发设计 新手可抄度 综合
mattpocock/skills 266,035 53 件·个人目录公开 ★★★★★ ★★★★½ ★★★★★ ★★★★★ 4.60※
obra/superpowers 288,947 14 件·方法论框架 ★★★★★ ★★★★ ★★★★½ ★★★½ 4.40※
affaan-m/ECC 263,135 五名词系统·树未核验※ ★★★★ ★★★★ ★★★ ★★½ 4.10(09-05 存档)
Appllama/appllama-skills 1,907 builder 合集 ★★★★ ★★★ ★★★ ★★★★ 3.90※
cbrock84/headcount(对照行) — 15+ 部门·12,500 词名册 ★★★ ★★ ★★★ ★★★ 3.80(09-03 存档)

一、为什么是它:热榜前十里唯一没上过解剖台的山头

定位的原文只有两句话:"Skills for Real Engineers. Straight from my .agents directory."(给真工程师的技能,直接从我自己的 .agents 目录里搬出来的。)09-04 期对拆时给过一句判词,本期原样转引:superpowers 说自己是个 framework & methodology——盖楼;mattpocock 说 straight from my .agents directory——搬家。这个语气差异不是文案趣味,它是套件的第一设计决策,下面第一节就拆它。

二、六课:写第一件时就要定的套件级决策

以下六课的证据全部来自往期存档对其 README、skills.sh 页面与部分 SKILL.md 的一手记录,本文不新增任何未经转引的内幕;每课末尾给第一作者的操作口诀。

第一课:名字空间先于功能——先想清楚「这一套叫什么」

「Straight from my .agents directory」的高明处在于:它把 53 件技能包装成一个人公开自己的工作目录,而不是一个组织发布产品线。这一手解决了套件最隐形的成本——信任。53 件小工件,谁也没法逐件审,读者买的其实是「这个人的品味」,个人目录叙事恰好把品味摆在了货架最前面。

反面标本本周就有现成的:Jev 家族六个仓库挤进新星榜前二十,同台的 SemIf 不得不在自己的描述里写明 "Independent; not affiliated with Jev or TypeSafe"——家族式蹭名逼出了自证清白声明。蹭来的名字空间是负资产。

口诀:第一件 Skill 的名字里就埋下你要用十年的姓氏,哪怕那套「将来」只有一件。

第二课:调用分层——编排件与纪律件分通道

08-29 期存档逐字引用过它 README 的组织规则,这是全生态最值钱的套件宪法,值得整段抄:

并配一条硬约束:"A user-invoked skill may invoke model-invoked skills, but never another user-invoked one."(编排件可以调用纪律件,但永远不许调用另一个编排件。)这一句禁掉了编排层互相嵌套的失控链,和软件工程里「组合根唯一」是同一个思想。套件长大后最常见的死法就是编排件套编排件,调用链深到没人敢动——它在第一件就立法禁掉了。

flowchart TD
    U["用户发起请求"] --> R{"路由判断"}
    R -->|斜杠点名| O["编排件 user-invoked"]
    R -->|描述命中| M["纪律件 model-invoked"]
    O -->|只许向下调用| M
    M --> P["共享原语层"]
    P --> P1["grilling 拷问访谈"]
    P --> P2["writing-for-agents 写作规范"]
    P1 --> F["五个上层件复用同一份原语"]

口诀:给每件新 Skill 发牌照时先问一句——它是「用户敲的」还是「模型想起来的」,混编的从第一天就拆开。

第三课:原语提取——第三次重复再动手,别提前抽象

它 README 里的底层原语层目前只有两件:grilling(拷问式访谈)与 writing-for-agents(面向 Agent 的写作规范)。其中 grilling 被明确列为 grill-me、grill-with-docs、triage、wayfinder、improve-codebase-architecture 五个上层件的共享原语——一份正文,五个出口。09-05 期对 improve-codebase-architecture 的评语转引一句:「grilling 原语复用保证了访谈质量不随技能数量稀释,这是套件级设计对单文件设计的代差。」

注意时间结构:53 件的套件,原语层只沉淀了两件。原语是长出来的,不是设计出来的。这和上一期拆 skill-creator 得出的「重复第三次就收编成脚本」是同一条定律在不同楼层的投影:流程步骤的第三次重复收编进 scripts/,访谈话术的第三次重复才升格为原语件。第一件就预建原语目录的,多半抽错了东西。

口诀:见到第三次重复再动手;提取对象是「话术与判断」,不是「步骤」。

第四课:依赖声明——把「谁需要我」写进明文

它的套件内部引用不走隐式默契,走声明。存档记录的写法是 "when another skill needs..." 句式——triage 对信息不全的 issue 发起 grilling,是原语复用的实证;反过来每件依赖原语的件,正文里都写明这层关系。配套的触发词写法也有存档实证:resolving-merge-conflicts 的描述 "Use when you need to resolve an in-progress git merge/rebase conflict."——08-29 期对这句的判词是「不是给用户看的广告词,是给模型的触发器」。套件规模下,每件描述同时服务两个读者:用户和邻居。没有依赖声明的套件,删一件塌一片,改一件盲改。

口诀:写完 description 问一句——哪个邻居会引用我?说不出来,说明你还没有邻居,也说明你还没想好自己在套件里的位置。

第五课:成本会计——53 件套的上下文租账

套件越大,描述越贵:每件的 name + description 常驻路由上下文,53 件就是 53 份租约。这套件里专门长出了一件管账的:writing-great-skills,09-04 期给过 4.00 存档分,判语是「唯一把成本账写进正文的样本,disable-model-invocation 的会计思维领先生态一个身位」——该不参加自动路由的件,明写不参加,把常驻预算让给真正要被模型想起的件。

反面标本是 headcount:15 个以上部门的组织名册塞进一套 Skill,12,500 词的名册账逼得它事后补「两级触发」救场,09-03 存档分 3.80,触发串扰与技能腐烂两个隐患至今压着上限。套件的上下文账必须在第一件就算,事后 retrofit 的触发分层是补丁,不是设计。

口诀:每加一件,问一句它的描述值不值这份常驻租金;不参与自动路由的,明写退出。

第六课:分发通道——更新权就是产品定义

08-29 期存档记录了它的两条安装通道,语义完全不同:

# 通道一:官方插件市场(托管、只读、自动更新)
/plugin install mattpocock-skills

# 通道二:skills.sh 安装器(文件写进你的仓库,可魔改,手动 npx skills update 更新)
npx skills@latest add mattpocock/skills

# 通道三:裸克隆(自己挑着用)
git clone --depth 1 https://github.com/mattpocock/skills ~/.agents/skills

只读自动更新,用户拿到的是「作者签名的新鲜度」;写入可魔改,用户拿到的是「所有权」,代价是更新靠手动。上一期还记过一笔官方侧的呼应:skill-creator 在本机环境以三个发行版本并存——连官方教人造 Skill 的那件,自己也在用多通道分发。选通道不是运维细节,它定义了你和用户的关系:是供货商,还是同行。「Straight from my .agents directory」的叙事,和「文件写进你仓库」的通道二刚好互为表里。

口诀:第一件就决定默认通道;改通道的那天,就是产品重新发布的那天。

三、上手:把第一个 Skill 写成「套件就绪」形态

六课合起来,给出一个最小骨架。以下 SKILL.md 为本文示例(按上述模式构造,非引用任何仓库原文),功能取自本栏目每周真做的事——对账两个时点的星数快照:

name: weekly-recon
description: 对账不同日期的仓库星数快照并计算增速。Use when the user
  gives two or more dated star counts, or asks about 增速 / 对账 / 涨了多少。
  Read-only: never call the network, compute only from numbers in context.
## 流程
1. 从对话抓出所有「仓库名 + 日期 + 星数」三元组
2. 按仓库分组、按日期排序,逐对计算增量
3. 增量为零或为负的仓库单独点名,禁止静默并入均值

## 依赖声明
when another skill needs 增速曲线图,交给 chart 类技能,本件只出数字与表格。

落位与验证:

# 落位到个人技能目录
mkdir -p ~/.claude/skills/weekly-recon
# 放入上面的 SKILL.md 后,新开会话(元数据在会话启动时加载)
# 会话内输入 /skills 确认它被发现、状态正常

# 对照教材:装第二山头全桶,重点读三件
#   writing-great-skills(成本会计)→ triage(分层与声明)→ handoff(交接纪律)
npx skills@latest add mattpocock/skills

生长路径一图收束——什么时候保持单件,什么时候动手拆套:

flowchart TD
    S["第一件 Skill 上线"] --> Q1{"同类任务第三次重复?"}
    Q1 -->|没有| K["保持单件"]
    Q1 -->|有| Q2{"重复的是流程还是话术"}
    Q2 -->|流程步骤| SC["收编进 scripts"]
    Q2 -->|访谈话术| PR["提取为原语件"]
    PR --> DP["旧件补依赖声明"]
    SC --> L1{"要拆出编排件吗"}
    DP --> L1
    L1 -->|不要| FIN["套件雏形完成"]
    L1 -->|要| CR["编排件互不调用"]
    CR --> FIN

推荐排行榜

本期局限

其一,53 件的文件树与各件正文本期未核验,套件内证据全部转引 08-29 / 09-04 / 09-05 三期存档的一手记录,凡存档未记的细节一律未写。其二,评测表带 ※ 的四格为本期套件层印象分,非逐件实测。其三,1,820 万安装量为 skills.sh 单源口径(往期存档已标注),且 triage 等单件在 skills.sh 不同页面间存在读数差异(624.4K / 665.6K / 415.8K 三说并存),引用时均已注明以榜单页为准。

参考来源

[!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学通信知识星球海报-扫码加入