本层判断标准

改这类代码时,助手在没提示的情况下会自己读出这份步骤吗?读出来以后,五步是不是按同一顺序做完?

答「不会」或「顺序每次不同」,先改 description 的措辞,再改正文的编号。这两处是技能被选中和被执行的全部依据。

目录结构

技能是「一个目录一份 SKILL.md」,目录名就是技能名。正文超过一屏时,把背景拆到同目录的另一个文件里,正文只留步骤——助手默认读的是 SKILL.md,不会自动读旁边的文件。

仓库根目录下的技能目录

仓库根目录/
├── .cursor/skills/
│   ├── trace-retrieval/
│   │   ├── SKILL.md        # 前置元数据 + 五步正文(本页实物)
│   │   └── reference.md    # 超过一屏的背景放这里
│   └── check-scope/
│       └── SKILL.md        # 这是命令,带 disable-model-invocation
├── .claude/skills/trace-retrieval/SKILL.md
└── .trae/skills/trace-retrieval/SKILL.md

三处目录的 SKILL.md 正文逐字照抄,前置元数据按工具换。新增一个技能就是建一个同名目录,删除就是删掉整个目录——留下空目录或只删文件,助手下次仍会试图读它。

提交前跑两条自检:ls -d .cursor/skills/*/ .claude/skills/*/ .trae/skills/*/,三处应当出现同名目录;grep -rn "name:" .cursor/skills/*/SKILL.md,每条 name 应当与所在目录逐字相同。别给没用到的工具建空目录。

典型应用示例:说一句「改检索」之后

场景:对助手说「把检索改成按更新时间过滤」,没说怎么改、按什么顺序核对,也没贴文档。

有它 trace-retrieval 的 description 命中「修改检索」类任务,助手自己把 SKILL.md 读进上下文,按固定顺序做完:scope_id 取自当前会话、向量点 id 与切片 id 相同、没有命中就返回无依据、引用能回到那一条切片、准备两个所属范围的数据。
没有它 助手凭印象改——上次记得核对引用,这次可能就漏;两个人、两次会话,两种做法。

做成技能、命令还是子智能体

这三者都装「一段步骤」,最容易混用。判据是谁在什么时候决定用它。下表列出最容易被误做成技能的东西,以及它真正的落点。

容易被做成技能的做成什么怎么判
只在改某一类文件时成立的一条约束规则这条约束只在改这类文件时才用得到吗?是 → 规则;改文档时它不该在上下文里
人输入 /名称 才执行的清单命令需不需要人记得去用、由人拍板?是 → 命令
一次性的项目背景、历史决策docs/它不是步骤,改一次就不再用 → 放文档
产品功能的文案、评分、讲解流程业务代码与验收文档它面向用户,不是开发流程里的步骤 → 放业务目录
需要只读或独立上下文的核对子智能体要不要独立上下文,或更小的工具范围?是 → 子智能体

description 是唯一的触发依据,要写清两件事:做什么、在什么任务里用。漏了后半句,助手判断不出时机,技能放在仓库里也等于没有。六个落点的完整对照见规则页的总表。

落在哪

技能文件在三家工具里都叫 SKILL.md,差别只在放在哪个根目录;TraeCode 另外还有一个兼容来源。照下面这张表找到自己用的那一行,再进对应的落地页看完整写法。

工具技能目录落地页
Cursor.cursor/skills/名称/SKILL.mdCursor 技能落地页
TraeCode.trae/skills/名称/SKILL.mdTraeCode 技能落地页
Claude Code.claude/skills/名称/SKILL.mdClaude Code 技能落地页