做 AI 技能开发的人最近应该都感受到了一个趋势:Agent Skills 正在变成新的”基础设施”。26 个主流 AI 编程助手全部支持同一个 SKILL.md 文件格式,包括 GitHub Copilot、Claude Code、Cursor 和 WorkBuddy。这件事的影响比表面看起来大得多,它意味着你写一次 Skill,可以跑在二十几个不同的 Agent 上。
但问题也在这。写一个 Skill 的门槛其实不低。不是代码难,是规范碎。name 字段只能小写加连字符,description 要同时说清楚 WHAT 和 WHEN,body 不能超过 500 行,bundled asset 单个不能超过 5MB。每条规则单独拿出来都不难遵守,但第一次写的时候凑在一起,出错率惊人。
这就是 make-skill-template 出现的背景。它是 github/awesome-copilot 仓库里的一个元技能,专门用来帮你创建新的 Agent Skills。三万星仓库里的 443 个技能之一,但它干的活比大部分技能都底层:它生产技能本身。
说真的,这篇文章不是要教你写一个多么复杂的 Skill。我只是把 make-skill-template 的设计逻辑和实际用法拆开看了一遍,哪些地方做得漂亮,哪些地方暴露了 Agent Skills 规范本身的尴尬,梳理清楚之后,你自己判断它值不值得放进工作流。
环境准备
make-skill-template 的获取方式比你想象中简单。它不是一个独立仓库,而是 github/awesome-copilot 这个大仓库里 skills/ 目录下的一个子目录。最直接的拿法是用 NPX 一行命令安装:
npx skill4agent add github/awesome-copilot make-skill-template
如果你更习惯手动管理文件,也可以直接把仓库 clone 下来,然后把 skills/make-skill-template/ 目录拷到你 Agent 的 skills 目录里。不同 Agent 的存放路径略有不同:Claude Code 放在 ~/.claude/skills/,Copilot 放在 ~/.copilot/skills/,WorkBuddy 放在 ~/.workbuddy/skills-marketplace/skills/。

验证安装是否成功很简单,看一眼目标目录下有没有 SKILL.md 就行。这个文件就是整个 Skill 的全部内容,不到 200 行,没有任何脚本、没有额外依赖。一个纯 Markdown 文件,装下了创建 Agent Skill 的完整知识体系。这件事本身就挺说明问题的。
前置条件也很轻:只要你的 AI 助手支持 SKILL.md 格式就行。目前主流的 26 个编程助手基本都适配了 Agent Skills 规范,不需要额外安装运行时或编译工具。唯一需要注意的是,如果你打算在 Skill 里打包脚本,Node.js 或 Python 环境取决于你具体要跑什么。
操作流程
make-skill-template 的核心工作流分四步走。不是那种”先注册再验证再配置”的八股流程,每一步都有明确的设计意图,漏掉任何一步都可能让你的 Skill 跑不起来。
第一步是创建目录。规则只有一条:文件夹名必须全小写,单词之间用连字符,不能以连字符开头或结尾。my-awesome-skill 可以,My-Skill 不行。这个限制不是 make-skill-template 自己定的,它来自 Agent Skills 规范的 name 字段约束,目录名必须和 SKILL.md 里的 name 完全一致。很多 Skill 没被 Agent 识别到,问题就出在这一步的命名上。
第二步是生成 SKILL.md 并写入 frontmatter。这里有一个反直觉的设计:description 字段比 body 内容重要得多。Agent 在做 skill discovery 的时候,只加载 name 和 description(约 100 token),body 内容是 Skill 被激活之后才加载的。换句话说,如果你的 description 写得模糊,Agent 可能永远不知道什么时候该用你的 Skill。make-skill-template 的文档把这个点强调了三遍,不是啰嗦,是太多人在这栽过。
第三步是写 Skill 的主体内容。模板推荐的章节结构很务实:
-
标题概述,交代这个 Skill 干什么 -
触发场景说明,告诉 Agent 什么时候激活 -
前置条件清单,列出依赖和环境要求 -
分步骤操作流程,一步步引导执行 -
常见问题排查,预先堵住典型翻车点
没有强制格式要求,但建议把主体控制在 500 行以内。超过 500 行的部分应该拆到 references/ 目录下的独立文件里,利用 progressive disclosure 机制按需加载。
第四步是可选的,但实际项目中几乎必做:添加四个子目录来组织资源:
-
scripts/:放可执行脚本,Python、Bash、JS 都行 -
references/:放参考文档,API 说明、schema 定义 -
assets/:放静态资源,图片、字体、模板文件 -
templates/:放代码脚手架,Agent 可以修改后输出
目录结构的自由度很大,但本质上就是一个”指令文件加资源包”的模型,没什么花活。

很多人第一次用 make-skill-template 的时候会直接复制整个模板目录然后改名字。这确实是文档推荐的”quick start”方式,但从社区反馈来看,更常见的坑是改完 name 忘了同步改文件夹名,或者 description 写得像功能列表而不是触发条件描述。后者的后果更严重:你的 Skill 在 Agent 眼里是隐形的。
关键设计
make-skill-template 身上有三个设计决策值得单独拿出来说。不是因为它做得多么惊艳,而是因为它暴露了 Agent Skills 规范在设计上的一些真实取舍。
第一个是 description 作为 discovery 机制。整个 Agent Skills 生态的自动发现完全依赖 description 字段的质量,没有 tag 系统,没有分类树,没有关键词索引。Agent 在启动时扫一遍所有 Skill 的 metadata(约 100 token 每个),然后根据用户输入和 description 的语义匹配程度决定激活哪个 Skill。这个设计的好处是零配置,坏处是发现质量极度依赖作者的文字功底。一个写得好的 description 是”Toolkit for testing local web applications using Playwright. Use when asked to verify frontend functionality, debug UI behavior, capture browser screenshots”,一个写得烂的是”Web testing helpers”。两者触发的准确率差距至少在 3 倍以上。
第二个是 progressive disclosure 的加载策略。Agent 分三层加载 Skill:metadata 层在启动时全部读入,指令层在 Skill 激活时加载,资源层按需读取。这个模型本质上是在 context window 有限的前提下做的工程折中,它假设大部分 Skill 在大部分时间里不会被激活,所以 metadata 层越轻越好。但这也意味着,如果你的 Skill body 写得过长,Agent 还没读完你的指令就已经消耗了大量 context 预算,留给实际任务的窗口会变小。500 行的建议线不是随便拍的。
第三个是 allowed-tools 的实验性质。这个字段允许 Skill 预先声明它需要用到的工具,被声明过的工具在 Skill 执行时无需用户逐次确认。听着很美好,但在安全敏感的环境里这几乎等同于开了后门。文档自己也在旁边标了”Experimental”,还附了一行警告:只有在你完全信任 Skill 来源和所有引用脚本的前提下,才应该 pre-approve shell 或 bash 工具。这个设计上的矛盾短期内看不到解法,安全性和便利性在 Agent 工具调用这个维度上是真的互斥的。

make-skill-template 本身没有尝试解决这三个问题。它只是把 Agent Skills 规范的要求翻译成了一套可操作的步骤和检查清单。这既是它的价值所在,也是它的局限:它不做创新,它只是帮你别踩坑。
使用场景
make-skill-template 最擅长的场景很集中:你需要快速搭一个结构化、规范合规的 Agent Skill,不想从头记一堆 frontmatter 字段约束。两分钟出骨架,然后你只需要往里面填指令就行。
一个典型场景是团队内部的工具链标准化。假设你们团队有三个不同 Agent 的用户(有人在用 Claude Code,有人在用 Cursor,有人在用 Copilot),你希望所有人执行代码审查时遵循同一套规范。写一个 code-review Skill,按 make-skill-template 的格式输出 SKILL.md,然后丢到各自 Agent 的 skills 目录里,symlink 或者直接复制一份。Agent Skills 的跨平台兼容性在这种场景下的价值是最直接的。
另一个不太直观但同样成立的场景是 Skill 教学。make-skill-template 本身就是一个”教学型 Skill”,它的 SKILL.md 里没有一行在讲怎么完成某个具体任务,全部在讲怎么写一个好 Skill。如果你在带新人理解 Agent Skills 的工作机制,把这个文件当阅读材料比看官方 spec 要高效得多。官方 spec 在 agentskills.io 上写得极其干练,只定义了字段约束,没有解释为什么这么设计。make-skill-template 补的就是这个”为什么”的部分。
不适合的场景也有。如果你的 Skill 逻辑非常简单,比如只是一个”帮我查天气”的触发短语加一个 API 调用,make-skill-template 的脚手架反而显得多余。同理,如果你的 Skill 需要大量自定义脚本且对执行环境有复杂依赖,只靠模板的目录结构组织不了这些复杂度,需要你自己做额外的工程规划。模板解决的是格式问题,不是架构问题,这个边界要分清楚。
洞察与反思
用了 make-skill-template 不一定能写出好 Skill,但它确实能帮你避免写出”格式错误”的 Skill。这两个目标之间的差距,就是当前 Agent Skills 生态一个很本质的问题:规范统一了,但质量评判标准没统一。
先说积极的信号。Agent Skills 的跨平台兼容性在 2026 年上半年推进得比预期快。26 个 Agent 接入同一个规范,这件事放在一年前几乎不可想象。make-skill-template 这种元工具的出现,本质上是在降低规范的遵守成本,门槛越低,生态越密,网络效应越强。从 github/awesome-copilot 三万多星的仓库规模和 443 个社区贡献的 Skill 来看,这个飞轮已经在转了。
但另一方面,description 作为唯一发现机制这件事,短期看不太可能被取代,长期看也不应该被取代。替代方案无非是加 tag 系统或者分类目录,但这些都会引入新的人为维护成本和平台锁定风险。用自然语言做语义匹配虽然粗糙,但它是最去中心化的方案。问题在于,目前 Agent 对 description 的语义理解能力参差不齐,同一个 description 在 Claude Code 上触发很准,到了另一个 Agent 上可能完全不生效。这个一致性缺口才是真正需要填的坑。
还有一点值得留意。Agent Skills 规范的 simplicity 是一把双刃剑。简单意味着门槛低、传播快,但也意味着很多工程化的需求被刻意排除在规范之外。版本管理怎么做?Skill 之间的依赖怎么声明?Skill 的测试和 CI 怎么跑?这些问题的答案目前都是”你自己想办法”。make-skill-template 甚至连 skill:validate 的校验脚本都没有自带,只是文档里提了一句”用 npm run skill:validate”,具体实现还得你去 agentskills 的 reference library 里找。生态还在早期,这些缺失会被时间补上,但在补上之前,每个 Skill 作者都得自己扛。
资源地址
总结
make-skill-template 做的事情说穿了就一件:把 Agent Skills 规范里的约束,翻译成一套你不会漏掉的步骤。它不教你怎么设计 Skill 的逻辑,但它保证你产出的 SKILL.md 不会被 Agent 因为命名不规范或者 description 太短而直接忽略。
如果你已经写过几个 Skill,这些规则可能已经内化成了肌肉记忆,make-skill-template 对你的边际价值不大。但如果你刚开始接触 Agent Skills,或者团队里有人需要快速上手,把这 200 行不到的 SKILL.md 读一遍,比你翻官方 spec 然后反复试错要高效得多。
别看它短,它踩过的坑比大部分新手教程多。毕竟,这是一个专门教别人写 Skill 的 Skill,它自己的 description 就写满了触发词。

