定制 Skill
Skill 是 Trellis 0.5 的主要扩展点。原生带有的大部分工作流(brainstorm、before-dev、check、update-spec、break-loop)都以 auto-trigger skill 的形式交付。本章说明如何添加自己的 skill。Command vs. Sub-agent vs. Skill
| Command | Sub-agent | Skill | |
|---|---|---|---|
| 用途 | 用户显式入口 | 有自己角色的隔离子进程 | 可复用的工作流模块 |
| 触发 | /trellis:xxx | 通过 Task 工具 spawn | 平台根据用户意图自动匹配 |
| 粒度 | 会话边界 | 角色级 | 能力或阶段级 |
| 跨平台 | 每平台一份文件 | 每平台一份文件 | 每平台一个文件夹(结构一致) |
Skill 文件格式
Skill 是包含SKILL.md 的文件夹:
SKILL.md 用 YAML frontmatter,平台会对这段文本做匹配:
| 平台 | 位置 |
|---|---|
| Claude Code | .claude/skills/{name}/SKILL.md |
| Cursor | .cursor/skills/{name}/SKILL.md |
| OpenCode | .opencode/skills/{name}/SKILL.md |
| Codex | .codex/skills/{name}/SKILL.md(同时拷一份到 .agents/skills/ 给跨平台生态用) |
| Kiro | .kiro/skills/{name}/SKILL.md |
| Gemini CLI | .gemini/skills/{name}/SKILL.md |
| Qoder | .qoder/skills/{name}/SKILL.md |
| CodeBuddy | .codebuddy/skills/{name}/SKILL.md |
| Copilot | .github/skills/{name}/SKILL.md |
| Droid | .factory/skills/{name}/SKILL.md |
| Kilo | .kilocode/skills/{name}/SKILL.md |
| Antigravity | .agent/skills/{name}/SKILL.md |
| Windsurf | .windsurf/skills/{name}/SKILL.md |
.agents/skills/{name}/SKILL.md(agentskills.io 跨平台共享层)由 Codex 的 configurator 写入,可被 Amp、Cline、Deep Agents、Firebender、Kimi Code CLI、Warp 等读该标准的 agent 直接消费。
写出能稳定触发的 skill
description 字段是平台用来匹配的。把它写成「什么情况下应该触发这个 skill」的条件描述,而不是 skill 自己的身份介绍。
对比:
- 在 skill 自己的话里再次声明触发条件,让 AI 自检是否匹配正确。
- 告诉 AI 动手前要读哪些文件。
- 给一个固定的输出格式,让每次调用的结果一致。
示例:一个 api-doc skill
.claude/skills/api-doc/SKILL.md:
分享 skill
跨项目分发一个 skill:- 把规范版
SKILL.md放在packages/cli/src/templates/common/skills/{name}/SKILL.md(想上游贡献的话),或以单独 npm 包发布。 - 在每个平台的 configurator 里加一步,把 skill 拷贝或适配进该平台的布局。
- Skill 随 Trellis 发布版本一起进化,保证 migration 一致。