首页 › skills-review › 热门Skill的八种SKILL.md写法模式

写自己的第一个 Skill:从本周最热门的 Skill 里提炼八种 SKILL.md 写法模式

概述

本系列第 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,就是最好的教材

写作最好的范本不是教程,而是被市场验证过的原文。本文所有模式提炼自以下八份 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

八种写法模式

模式 1:意图触发——把触发条件写成用户的「认知状态」

新手写 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 后自问——用户带着这个问题来的时候,嘴上会说什么?把那些「认知瞬间」写进去,而不是把功能名词写进去。

模式 2:划界声明——明说「这不是什么」

Skill 数量一多,触发冲突就成了生态级问题:本周趋势榜上甚至出现了两个不同团队的 ai-video-generation 同名同周上榜(skills-101 版 22.6K、genmedia-labs 版 17.3K)。头部作者的解法是在正文开头主动划界,domain-modeling 的开篇原文:

(Merely reading CONTEXT.md for 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 与某个常见习惯(读个文件、跑个测试)只差一线之隔,把那条线写出来。

模式 3:路由器架构——主文件只当目录,知识按需加载

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 什么时候用」和「接下来该读哪个文件」。任何超过一屏的细节都值得拆出去。

模式 4:刹车优先——约束模型的本能,比教它新知识更值钱

LLM 写代码的默认本能是补测试、加抽象、做防御式处理。prototype 全文最有力量的六条军规,条条都在给这套本能踩刹车:不写测试、不抽象、默认不持久化(理由写得极精彩:Persistence is the thing the prototype is checking, not something it should depend on——持久化正是原型要检验的东西,不是它该依赖的)。reddit-automation 则把刹车用在了营销场景:产品提名必须过「OP 明确在找 + 产品真能回答 + 自己真用过」三重门槛,任一不成立就不提,且明说「一条不带推销的有用回复也是胜利」。

怎么抄:写 SKILL.md 之前先列出「模型在这个场景下会犯的本能错误」,每条错误配一条硬规则。教模型新知识往往它本来就会,拦住它才需要你。

模式 5:语法级约束——用可判定的规则替代风格建议

「写得自然一点」「语气要真诚」这类风格建议对模型几乎没有约束力。reddit-automation 给出了更好的写法——把口吻问题降维成语法问题:

✅ "I ran into this exact thing — what fixed it for me was…" ❌ "You should…", "The best way is…"

「经验语法 vs 建议语法」是可判定的:输出里出现第二人称建议句式即可打回。它配套的上线前自检清单同理——草稿像客服 FAQ、像分步教程、堆砌资历,一律重写。可判定意味着模型能自查,这正是它比风格建议高一个量级的原因。

怎么抄:检查你的每条规则是否可以用「是/否」判定。不能判定的,改写成带正反例的句式规则。

模式 6:重复锚定——关键规则在全文重复出现

github/awesome-copilot 的 excalidraw-diagram-generator(27.5K 安装)有一条看似笨拙的设计:fontFamily: 5(Excalifont)这条规则在 SKILL.md 全文重复了四次。长任务里模型的注意力会衰减,单次声明的高优规则到第 20 轮对话时可能已经被稀释。重复不是冗余,是对抗遗忘的机制。同一仓库还有一招值得抄:AWS/GCP 图标的 JSON 每个有 200-1000 行,直接读会爆上下文,于是它用 Python 脚本按坐标注入图标,明确标注理由是「图标数据永不进入 AI 上下文」——数据走旁路,上下文只留指令。

怎么抄:挑出违反后全盘皆输的那 1-2 条规则,在开头、分支内、收尾清单各重复一次。

模式 7:文件即状态——用仓库文件实现跨会话记忆

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 和数据库,先设计三五个约定文件名。

模式 8:闭环验证——让模型看见自己的产出

把本周拆过的图表类 Skill 按「模型能否看见自己的产出」排成光谱:纯开环(checklist 自查,模型盲画)→ 语法级反馈(mermaid-cli 验证对错)→ 视觉级反馈(coleam00 的 excalidraw-diagram:生成后必须用 Playwright 渲染成 PNG,用 Read 工具看图,按缺陷清单修,通常迭代 2-4 轮)。唯一的真闭环版本安装量最低(7.0K)、上手成本最高(要装 uv 和 chromium),但它的质量上限也最高。这对应一条通用设计原则:验证层级每升一级,质量上限高一档,依赖和成本也重一分。写 Skill 时要做的不是无脑上闭环,而是想清楚你的产出错误是「语法级可机检」还是「视觉级必须看」。


反模式清单:五个有真实案例的坑

  1. README 漂移:design-doc-mermaid 的 README 目录树与完成状态清单自相矛盾;prototype 的 README 说它是「单份可分享 HTML 文件」,SKILL.md 实际写的是终端小程序。启示:评估任何 Skill 以 SKILL.md 原文为准,README 只是橱窗——你自己发布时也要记得同步。
  2. 上下文肥胖:baoyu-skills 仓库(25.2K star)的 README 自己警告「仓库有 20+ 个 Skill,别全装,会增加每次运行的上下文负担」。装一堆 Skill 不是免费午餐,description 全部常驻路由上下文。
  3. 参数绝对化:同为 Excalidraw 路线,awesome-copilot 钦定 fontFamily: 5,coleam00 全文规定 fontFamily: 3。SKILL.md 里写得斩钉截铁的技术参数,往往只是作者踩坑后的个人选择——你抄的时候要过一遍自己的环境。
  4. 无命名空间意识:两个 ai-video-generation 同周撞榜。给你的 Skill 起名前先去 skills.sh 搜一遍,npx skills add 虽按 owner/repo 寻址不会技术冲突,但搜索曝光会实打实被稀释。
  5. 开环盲画:只给 checklist、不给任何机器校验或渲染回看的生成类 Skill,重叠、溢出这类缺陷只能靠运气。checklist 是兜底,不是质检。

动手:照着八种模式写你的第一个 Skill

选一个最小的真实需求做示例:把一周的 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 抢触发"]

生态全景:八种模式在热门 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

推荐排行榜

参考来源

  1. skills.sh — Skills Leaderboard — 本文全部安装量与排名数据(2026-08-30 抓取)
  2. mattpocock/skills — prototype/SKILL.md 原文 — 模式 1、4 的引用出处;同仓库 teach、domain-modeling 为模式 2、7 出处
  3. flowkit-labs/skills — reddit-automation SKILL.md — 模式 5 及安全章节的引用出处
  4. SpillwaveSolutions/design-doc-mermaid — 模式 3 路由器架构与按需加载数据
  5. github/awesome-copilot — excalidraw-diagram-generator SKILL.md 原文 — 模式 6 重复锚定与图标旁路策略
  6. coleam00/excalidraw-diagram-skill — 模式 8 闭环验证的渲染-查看-修复循环

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