Skill 编写指南
这是一份面向新手的系统指南:先判断该不该写,再写最小 SKILL.md,随后补资源、做审计、跑验证、持续迭代。内容按真实学习路径重写,并加入 Fluxly 站内安装、审计、搜索和详情页经验。
为什么需要 Skill
Skill 解决的是“同一类工作每次都要重新解释、重新纠错、重新找资料”的问题。它不是普通提示词收藏夹,而是给 Agent 的可复用操作手册:包含触发边界、执行顺序、必要资源、验证标准和安全停止条件。
重复出现、容易漏步骤的工作流
例如固定报告、文件转换、CI 失败排查、代码评审、设计验收。只要你已经第三次给 Agent 解释同一套长流程,就应该考虑写成 Skill。
带私有上下文和固定验收标准
团队规范、内部 schema、模板、脚本、输出格式和验收命令都适合放进 Skill;它们能让 Agent 每次按同一套标准执行。
一次性、低风险、模型本来能稳定完成
如果只是临时问答、简单改写或没有固定资源的开放创意,普通提示词更轻。Skill 不是为了把所有提示词都文件化。
Skill 的最小可运行模型
最小 Skill 只有一个文件夹和一个 SKILL.md。frontmatter 里的 name 是身份,description 是触发入口;正文是匹配后才读取的执行说明。新手先把这一个文件写对,不要一开始就堆满脚本和长文档。
---
name: commit-message-helper
description: 根据当前仓库暂存区差异生成 3 个 Conventional Commit 候选。
当用户要求为已暂存改动编写、润色或选择提交信息时使用。
不用于普通 Git 问答,也不解释提交规范。
---
1. 先运行 `git diff --staged --stat` 和 `git diff --staged`。
2. 如果没有暂存区差异,停止并说明当前没有可用差异。
3. 只根据暂存区差异判断 type、subject 和可选 scope。
4. 严格输出 3 个候选,格式为 `type(optional-scope): subject`。
5. subject 不超过 72 个字符,结尾不要句号。
6. 只有路径或差异明显支持时才添加 scope。
7. 不运行 `git add`、`git commit`、`git push`,也不修改文件。
触发测试:
- 应触发:“给暂存区改动写 3 个提交信息”。
- 不应触发:“Conventional Commit 有哪些类型?”
- 应停止:`git diff --staged` 为空。 - name 用小写连字符,短且可识别。
- description 同时说明“做什么”和“什么时候用”,并排除近邻误触发。
- 正文只写触发后需要知道的动作、证据、停止条件和输出格式。
先发现和复用高质量 Skill
不要默认从空白文件开始。官方示例、一手仓库和维护良好的社区案例能提供结构参考;但安装前必须完整审计,不能只看 star 或截图。
官方示例、活跃仓库、同类任务历史。
读完 SKILL.md、references、scripts、assets 和依赖说明。
在低风险临时目录试跑,观察触发、输出和副作用。
保留结构,替换业务规则、验收标准和语言偏好。
安装前必须审计
- 完整阅读 SKILL.md、参考资料、脚本、素材和依赖说明。
- 检查是否写入硬编码密钥、私有路径、日志上传、外部回传或凭据读取。
- 检查脚本是否会删除文件、修改全局配置、联网、提交、发布或自动执行危险命令。
- 确认触发条件、停止条件、反例、验证方式和输出格式没有明显缺口。
Skill 的文件构成
好的 Skill 会把“每次都要看”和“特定分支才要看”的内容分层。SKILL.md 保持连续可读;长资料、脚本和模板按职责放到独立目录,避免污染上下文。
| 路径 | 是否必需 | 职责 |
|---|---|---|
SKILL.md | 必需 | 核心说明:frontmatter、触发边界、执行流程、停止条件、输出契约。 |
references/ | 可选 | 长资料:API 文档、schema、规范、术语表、评审清单。只在需要时读取。 |
scripts/ | 可选 | 确定性脚本:验证器、转换器、批处理、重复容易写错的命令。 |
assets/ | 可选 | 产物素材:模板、图片、样例文件、可复用提示片段。 |
agents/openai.yaml | 可选 | Codex UI 元数据、默认提示词、工具依赖和展示策略。 |
核心原理:渐进披露
启动索引
Agent 启动时只看到 name、description 和路径。这就是为什么 description 必须短、准、可触发。
匹配后加载
用户请求命中 description 后,Agent 才读取完整 SKILL.md。正文不负责宣传自己,只负责执行。
执行中按需展开
只有某个分支需要时才读取 references 或运行 scripts。这样能挂载很多 Skill 也不爆上下文。
Skill 与提示词、工具、MCP、子代理的区别
| 概念 | 最实用的判断 |
|---|---|
提示词 | 一次性指令,复制粘贴为主,不携带文件。 |
AGENTS.md | 项目或全局协作契约,长期生效,但不专门封装一类任务。 |
Skill | 一类任务的可复用操作手册和工具包,能携带 references、scripts、assets。 |
工具 / MCP | 实际可调用能力,比如读文件、浏览器、GitHub、数据库;不负责教学流程。 |
子代理 | 独立上下文中的执行者,适合并行调研、独立验证或对抗审查。 |
现代写法:让 AI 起草,但人负责边界
可以用 skill-creator 这类工具起草目录和 SKILL.md,但草稿不等于可用。你负责真实任务、触发边界、反例、验收标准和风险边界;AI 负责把材料整理成可审查的文件结构。
你必须提供
- 什么时候应该触发,什么时候不该触发。
- 真实任务记录、输入样例、失败案例和已有脚本。
- 成功输出长什么样,必须运行什么验证。
- 哪些动作必须先问,哪些动作绝对禁止。
AI 适合生成
- SKILL.md 的执行步骤、停止条件和输出模板。
- references、scripts、assets 的拆分建议。
- 触发测试、反例测试和验证清单。
- 根据审查结果持续重写,但每次都保留可验证证据。
从真实链路提炼,而不是凭空设计
- 先让 Agent 在真实文件、真实环境、真实目标下完整跑通一次。
- 记录输入假设、工具顺序、失败恢复、验证命令和最终输出。
- 先提炼可审核的工作流框架,不急着写完整 Skill。
- 人工补齐边界、风险、反例和验收标准。
- 再生成最终 SKILL.md,并用真实提示词做回归测试。
稳定 Skill 的质量门槛
选题真实、高频、易错、有固定资源或验收标准。
description 同时说明做什么、什么时候用、什么时候不要用。
路由少而强:关键分支绑定用户确认、文件、schema、测试、diff 或外部证据。
SKILL.md 保持短、连续、可执行;长资料进入 references,重复动作进入 scripts。
涉及删除、发布、push、凭据、全局配置和外部副作用时必须有停止条件。
用 should-trigger、should-not-trigger、should-stop 和 with/without 对照验证。
路由要少、强、可验证
路由是让 Agent 选择分支。分支不是坏事,坏的是弱判断和延迟反馈。能用执行产生证据时,先执行低风险检查,再让证据决定下一步。
少分支
只保留会改变执行路径的判断。可自然推断的细节放到示例或参考资料,不要堆成连续路由。
强证据
让分支绑定文件、差异、测试、结构化检查、用户确认或外部证据,而不是“看起来”“应该”。
短反馈
能用低风险动作产出证据时,先执行检查,再根据证据进入下一步。不要把错误拖到长链路末端。
使用中迭代:变稳,但不要过拟合
一次失败只是线索,不是新规则。先比较多个真实样例,确认失败有共性,再把共性写进 description、SKILL.md、scripts 或 references。
常见 Skill 类型
PDF / DOCX / PPTX / XLSX
封装工具选择、格式坑、渲染检查和模板复用。
CI / 安全 / 部署 / 代码评审
封装日志读取顺序、审批边界、验证命令和停止条件。
搜索 / 引用 / 证据链
固定来源优先级、过滤标准、引用格式和不确定性标注。
设计 / 截图 / 响应式
沉淀 UI 标准、浏览器验证、截图检查和布局风险。
Runbook / 评审 / 文档
封装团队偏好、角色分工、输出格式和历史教训。
日报 / 长文 / 发布清单
规范选题、素材整理、风格统一和发布前检查。
练习:起草第一个最小 Skill
推荐从提交信息助手开始练习,因为它小、高频、输入证据明确,也容易看出错误边界。目标不是生成漂亮文案,而是练习触发范围、证据来源、副作用边界、输出格式和停止条件。
练习要求
- 只在用户要求为暂存区改动编写、润色或选择提交信息时触发。
- 唯一输入来源是当前仓库的暂存区差异。
- 输出 3 个 Conventional Commit 候选,subject 不超过 72 字符。
- 不执行 git add、git commit、git push,不修改文件。
检查清单
- description 是否排除普通 Git 问答?
- 没有暂存区差异时是否硬停止?
- scope 是否只在路径或差异明显支持时出现?
- 是否包含应触发、不应触发、应停止三类测试?
常见错误与可复用结构
新手 Skill 最常见的问题不是语法,而是边界太松、证据太少、正文太散。下面这些检查点可以在提交前逐项对照。
把 Skill 写成提示词合集
只写“请你认真分析、提高质量”不会让 Agent 稳定变强。Skill 必须说明触发条件、输入来源、执行步骤、验证方式和停止条件。
description 太宽,导致误触发
description 是启动索引,不是营销文案。要写清“何时使用”和“何时不要使用”,尤其要排除相邻但不同的任务。
把长资料塞进 SKILL.md
正文越长越容易稀释执行重点。稳定规则留在 SKILL.md,长 API 文档、术语表、模板和案例放到 references 或 assets。
没有反例和停止条件
只写“应该做什么”不够。删除、发布、提交、凭据、全局配置和外部副作用都必须明确何时先停下来确认。
三个可练习的 Skill 方向
如果你还不知道从哪开始,可以先用下面三个方向训练:一个负责澄清,一个负责拆解,一个负责沉淀偏好。它们覆盖了 Skill 最典型的三类价值。
- $task-clarifier 把模糊需求拆成目标、约束、风险和下一步确认项,适合需求还没定型时使用。
- $task-forest 把复杂任务拆成可并行或可顺序推进的分支,适合多阶段项目、长链路排查和大范围重构。
- $user-profile-keeper 沉淀长期偏好、协作方式和固定输出标准,适合需要持续记住用户风格的工作流。
写完后如何安装和分享
写完 Skill 后,先在本机用户目录试用,再考虑放到仓库或团队目录。分享前至少准备一个 README、触发测试、负例测试、安全说明和版本记录。