本系列第 8 轮,也是本季度的收官篇。前七轮我们把 skills.sh 总榜与趋势榜上的头部 Skill 逐个拆到了 SKILL.md 的段落级——grill-me(911.2K 安装)、frontend-design(796.7K)、tdd(722.0K)、prototype(612.2K)、agent-browser(702.8K),也拆过趋势榜上的新面孔 reddit-automation(一周 16.8K)和图表赛道的四款竞品(安装量数据均为 skills.sh 2026-08-30 抓取)。这一轮换个方向:不再拆某一个 Skill,而是把这一周积累的一手观察蒸馏成八种可复用的 SKILL.md 写法模式,配反模式清单和一个可直接照抄的骨架,让读者看完就能写出自己的第一个 Skill。核心结论先行:热门 Skill 与平庸 Skill 的差距,几乎不在「教了模型什么知识」,而在「怎么触发、怎么划界、怎么刹车、怎么闭环」这四件事上。
写作最好的范本不是教程,而是被市场验证过的原文。本文所有模式提炼自以下八份 SKILL.md(均为本系列本周逐段拆解时抓取的原文):
| 样本 | 来源 | 安装量 | 在本文中承担的角色 |
|---|---|---|---|
| prototype | mattpocock/skills | 612.2K(总榜#12) | 触发设计、刹车纪律的范本 |
| grill-me | mattpocock/skills | 911.2K(总榜#2) | 意图触发的代表(已拆,本文引用其结论) |
| reddit-automation | flowkit-labs/skills | 16.8K(趋势榜#11) | 语法级约束与安全章节的范本 |
| design-doc-mermaid | SpillwaveSolutions | 31.5K(图表赛道#1) | 路由器架构的范本 |
| excalidraw-diagram-generator | github/awesome-copilot | 27.5K | 重复锚定与 token 策略的范本 |
| excalidraw-diagram | coleam00 | 7.0K | 闭环验证的范本 |
| teach | mattpocock/skills | 489.7K(总榜#55) | 文件即状态的范本 |
| domain-modeling | mattpocock/skills | 449.0K(总榜#61) | 划界声明的范本 |
评分为本系列本周各轮拆解的加权结果(功能完整度 25%、设计质量 25%、实战效果 20%、上手难度 15%——高星为易上手、社区活跃度 15%),此处沿用并补充一列「最值得抄的模式」:
| 样本 | 功能 | 设计 | 实战 | 上手 | 社区 | 加权总分 | 最值得抄 |
|---|---|---|---|---|---|---|---|
| prototype | ★★★★ | ★★★★★ | ★★★★½ | ★★★★½ | ★★★★★ | 4.58 | 模式1、4 |
| reddit-automation | ★★★★ | ★★★★★ | ★★★★ | ★★★★★ | ★★★ | 4.40 | 模式5、安全段 |
| baoyu-diagram | ★★★★ | ★★★★★ | ★★★★ | ★★★ | ★★★★★ | 4.25 | 触发动词表 |
| excalidraw-diagram-generator | ★★★★★ | ★★★★ | ★★★ | ★★★★★ | ★★★★ | 4.20 | 模式6、token策略 |
| teach | ★★★★½ | ★★★★½ | ★★★★ | ★★★½ | ★★★★ | 4.18 | 模式7 |
| design-doc-mermaid | ★★★★ | ★★★★★ | ★★★ | ★★★★ | ★★★ | 3.90 | 模式3 |
| domain-modeling | ★★★★ | ★★★★½ | ★★★★ | ★★★½ | ★★★★ | 4.05 | 模式2 |
| excalidraw-diagram | ★★★ | ★★★★★ | ★★★★ | ★★ | ★★★ | 3.55 | 模式8 |
新手写 description 最常见的写法是复读功能名:「帮助用户创建原型。」总榜第 12 名 prototype 的写法完全不同:
name: prototype
description: Build a throwaway prototype to answer a design question.
Use when the user wants to sanity-check whether a state model or
logic feels right, or explore what a UI should look like.
第一句给定义,第二句给的不是「用户要求做原型」,而是用户的认知状态——对状态模型的合理性存疑(sanity-check)、想探索 UI(explore)。这意味着用户说「我不确定这个状态机对不对」时,不需要念出「原型」这个咒语,模型也能路由到它。grill-me 能以 91 万安装成为总榜亚军,同理:它触发于「用户提了个模糊需求」这个高频认知瞬间,而不是某个明确的指令词。
怎么抄:写完 description 后自问——用户带着这个问题来的时候,嘴上会说什么?把那些「认知瞬间」写进去,而不是把功能名词写进去。
Skill 数量一多,触发冲突就成了生态级问题:本周趋势榜上甚至出现了两个不同团队的 ai-video-generation 同名同周上榜(skills-101 版 22.6K、genmedia-labs 版 17.3K)。头部作者的解法是在正文开头主动划界,domain-modeling 的开篇原文:
(Merely reading
CONTEXT.mdfor vocabulary is not this skill — that's a one-line habit any skill can do. This skill is for when you're changing the model, not just consuming it.)
一句话把「读词汇表」这个任何 Skill 都会做的动作排除在外——消费模型是习惯,修改模型才是我的职责。这是解决相邻 Skill 抢触发的最低成本方案:不靠改代码,靠一句自我声明。
怎么抄:如果你的 Skill 与某个常见习惯(读个文件、跑个测试)只差一线之隔,把那条线写出来。
design-doc-mermaid(图表赛道安装量第一)的 SKILL.md 主文件只有一棵决策树:判断用户要活动图、部署图、架构图还是时序图,然后才按需加载 references/guides/diagrams/ 下 2-5KB 的专项指南,而不是把 50KB 文档全部塞进上下文(作者自述单次生成的 token 消耗从约 10,000 降到约 2,000,官方数据、未经独立验证)。prototype 是同一模式更极简的版本:主文件 60 行以内,逻辑分支和 UI 分支的细节分别放在 LOGIC.md 和 UI.md 两个附属文件里。这正是官方 skill-creator 教科书里「渐进式披露」原则的社区实践样板。
怎么抄:主文件只回答两件事——「这个 Skill 什么时候用」和「接下来该读哪个文件」。任何超过一屏的细节都值得拆出去。
LLM 写代码的默认本能是补测试、加抽象、做防御式处理。prototype 全文最有力量的六条军规,条条都在给这套本能踩刹车:不写测试、不抽象、默认不持久化(理由写得极精彩:Persistence is the thing the prototype is checking, not something it should depend on——持久化正是原型要检验的东西,不是它该依赖的)。reddit-automation 则把刹车用在了营销场景:产品提名必须过「OP 明确在找 + 产品真能回答 + 自己真用过」三重门槛,任一不成立就不提,且明说「一条不带推销的有用回复也是胜利」。
怎么抄:写 SKILL.md 之前先列出「模型在这个场景下会犯的本能错误」,每条错误配一条硬规则。教模型新知识往往它本来就会,拦住它才需要你。
「写得自然一点」「语气要真诚」这类风格建议对模型几乎没有约束力。reddit-automation 给出了更好的写法——把口吻问题降维成语法问题:
✅ "I ran into this exact thing — what fixed it for me was…" ❌ "You should…", "The best way is…"
「经验语法 vs 建议语法」是可判定的:输出里出现第二人称建议句式即可打回。它配套的上线前自检清单同理——草稿像客服 FAQ、像分步教程、堆砌资历,一律重写。可判定意味着模型能自查,这正是它比风格建议高一个量级的原因。
怎么抄:检查你的每条规则是否可以用「是/否」判定。不能判定的,改写成带正反例的句式规则。
github/awesome-copilot 的 excalidraw-diagram-generator(27.5K 安装)有一条看似笨拙的设计:fontFamily: 5(Excalifont)这条规则在 SKILL.md 全文重复了四次。长任务里模型的注意力会衰减,单次声明的高优规则到第 20 轮对话时可能已经被稀释。重复不是冗余,是对抗遗忘的机制。同一仓库还有一招值得抄:AWS/GCP 图标的 JSON 每个有 200-1000 行,直接读会爆上下文,于是它用 Python 脚本按坐标注入图标,明确标注理由是「图标数据永不进入 AI 上下文」——数据走旁路,上下文只留指令。
怎么抄:挑出违反后全盘皆输的那 1-2 条规则,在开头、分支内、收尾清单各重复一次。
Skill 没有数据库,但仓库有文件系统。teach(489.7K 安装)把当前目录约定为教学工作区:MISSION.md 记学习动机、RESOURCES.md 记验证过的资源、learning-records/0001-.md 记学习档案(作者明说类比 ADR)、lessons/0001-.html 是编号递增的课程。模型每次被唤起先读这些文件恢复状态——一个纯文件的 Skill 实现了跨会话记忆。它还有两个配套纪律值得抄:文件惰性创建(Create files lazily,有东西可写才建,不搞空架子初始化——domain-modeling 同款);以及 teach 的 frontmatter 用 disable-model-invocation: true 把编排权锁死在用户手里——教学是需要用户主动开始的多会话承诺,不许模型自作主张。
怎么抄:如果你的 Skill 需要记住上次的结果,别急着上 MCP 和数据库,先设计三五个约定文件名。
把本周拆过的图表类 Skill 按「模型能否看见自己的产出」排成光谱:纯开环(checklist 自查,模型盲画)→ 语法级反馈(mermaid-cli 验证对错)→ 视觉级反馈(coleam00 的 excalidraw-diagram:生成后必须用 Playwright 渲染成 PNG,用 Read 工具看图,按缺陷清单修,通常迭代 2-4 轮)。唯一的真闭环版本安装量最低(7.0K)、上手成本最高(要装 uv 和 chromium),但它的质量上限也最高。这对应一条通用设计原则:验证层级每升一级,质量上限高一档,依赖和成本也重一分。写 Skill 时要做的不是无脑上闭环,而是想清楚你的产出错误是「语法级可机检」还是「视觉级必须看」。
fontFamily: 5,coleam00 全文规定 fontFamily: 3。SKILL.md 里写得斩钉截铁的技术参数,往往只是作者踩坑后的个人选择——你抄的时候要过一遍自己的环境。ai-video-generation 同周撞榜。给你的 Skill 起名前先去 skills.sh 搜一遍,npx skills add 虽按 owner/repo 寻址不会技术冲突,但搜索曝光会实打实被稀释。选一个最小的真实需求做示例:把一周的 git 提交变成一份面向用户的更新日志。先建目录结构(模式 3):
.claude/skills/weekly-changelog/
├── SKILL.md # 路由器,60 行以内
├── FORMAT.md # 按需加载:对外版/内部版的格式
└── CHECKLIST.md # 按需加载:发布前自检
SKILL.md 骨架如下,注释标注了每一段用的模式:
---
name: weekly-changelog
description: Turn a week of git history into a user-facing changelog.
Use when the user mentions release notes, changelog, weekly update,
or asks "what did we ship this week". # 模式1:认知状态触发
---
# Weekly Changelog
A changelog is marketing written in facts.
Every line must trace to a real commit — no commit, no entry. # 模式4:刹车
## Route first # 模式3:路由器
- Public-facing notes → read FORMAT.md (user voice)
- Internal digest → read FORMAT.md (dev voice)
- Ambiguous → default to internal, and say so at the top. # 模式2:兜底+划界
## Hard rules # 模式5:可判定规则
1. Never invent a feature. Unclear commit → list it under
"unclear" and ask. Do not guess. # 模式4:刹车
2. Experience grammar, not announcement grammar: # 模式5:正反例
✅ "You can now filter by tag"
❌ "We are excited to announce tag filtering"
3. One command to regenerate:
git log --since="7 days ago" --oneline
## When done
Re-read rule 1 before you output. # 模式6:重复锚定
Save the changelog next to the tag it describes,
then verify every entry has a commit hash.
Delete your scratch notes. # 模式7:文件即状态
写完后的验证与发布路径(本系列在生态里反复看到的约定):
# 1. 项目级 Skill 放 .claude/skills/<名字>/SKILL.md,个人级放 ~/.claude/skills/
# 2. 开新会话,用一句自然的用户话术测试触发(不要念 Skill 名):
# "帮我整理下这周发了什么" —— 看模型是否自动调用
# 3. 观察它是否读了 FORMAT.md 而不是把格式塞在主文件里
# 4. 满意后推到 GitHub 仓库,别人即可安装:
npx skills add <你的GitHub用户名>/<你的仓库名> --skill weekly-changelog -g
写作流程一图流:
flowchart TD
A["找到真实需求<br/>先手写一遍理想输出"] --> B{"触发方式?"}
B -->|"用户主动敲命令"| C["user-invoked<br/>考虑 disable-model-invocation"]
B -->|"任务匹配自动触发"| D["description 写认知状态<br/>+ 触发短语"]
D --> E["主文件只当路由器<br/>细节拆 references/"]
C --> E
E --> F["列模型的本能错误<br/>每条配可判定的硬规则"]
F --> G{"产出错误属于哪一级?"}
G -->|"语法级"| H["机器校验<br/>linter/CLI 检查"]
G -->|"视觉/语义级"| I["渲染回看闭环<br/>接受依赖成本"]
H --> J["关键规则重复2-3次<br/>数据走脚本旁路"]
I --> J
J --> K["新会话实测触发<br/>确认没有相邻 Skill 抢触发"]
mindmap
root(("SKILL.md 八种写法模式<br/>源自2026.08.30榜单实测"))
触发与划界
模式1 意图触发<br/>prototype 612.2K
模式2 划界声明<br/>domain-modeling 449.0K
结构与上下文
模式3 路由器架构<br/>design-doc-mermaid 31.5K
模式6 重复锚定<br/>awesome-copilot 27.5K
约束与纪律
模式4 刹车优先<br/>prototype 六条军规
模式5 语法级约束<br/>reddit-automation 16.8K
状态与验证
模式7 文件即状态<br/>teach 489.7K
模式8 闭环验证<br/>excalidraw-diagram 7.0K
[!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 等场景全覆盖。
