2.1 目录结构总览
标准目录树
my-skill/ ← 目录名 = Skill 的 name(必须完全一致)
├── SKILL.md ← 唯一必需文件
├── scripts/ ← 可选
│ ├── main.py
│ └── helper.sh
├── references/ ← 可选
│ ├── api_reference.md
│ └── schema.md
└── assets/ ← 可选
├── template.pptx
└── logo.png
只有 SKILL.md 是必需的。其余三个目录,不需要就一个都别建——空目录是噪音。
两种存放位置
| 作用范围 | 路径 | 什么时候用 |
|---|---|---|
| 用户级(个人) | ~/.workbuddy/skills/<skill-name>/ |
默认选择。跨所有项目可用,跟着你走 |
| 项目级(团队) | <工作区>/.workbuddy/skills/<skill-name>/ |
需要随仓库提交、给协作者共享时 |
Windows 上 ~ 展开为 C:\Users\<用户名>,所以用户级路径实际是:
C:\Users\<用户名>\.workbuddy\skills\<skill-name>\
选择建议:先问「这个 Skill 是我个人习惯,还是团队规范?」 个人习惯 → 用户级;团队规范 / 项目专属数据口径 → 项目级。
命名硬规则(会被校验脚本拒绝)
创建 Skill 目录时,名称必须满足:
| 规则 | 说明 | 反面例子 |
|---|---|---|
| 仅小写字母、数字、连字符 | 正则表现为 ^[a-z0-9-]+$ |
MySkill、my_skill、我的技能 ❌ |
| 不能以连字符开头/结尾 | -skill- ❌ |
-pdf-tool |
| 不能出现连续连字符 | pdf--tool ❌ |
pdf--tool |
| 长度上限 40 字符 | 太长不便引用 | — |
目录名必须与 name 字段完全一致 |
否则校验器/加载器行为不确定 | 目录 pdf-tool,字段 pdftool ❌ |
推荐的命名风格:
- 动作导向:
pdf-watermark、weekly-report、code-review - 领域导向:
finance-schema、brand-voice - 不要用
tools、helper、utils这类无信息量的名字。
最小可用 Skill
如果只是让 WorkBuddy「记住一个流程」,一个文件就够了:
weekly-report/
└── SKILL.md
内容示例:
---
name: weekly-report
description: 生成团队周报。当用户要求「写周报/周报汇总/本周工作整理/周总结」时使用。
---
# 团队周报生成器
## 输出格式
严格按以下结构输出,不要增删一级标题:
### 一、本周完成
- 每条格式:`[项目] 事项描述(产出物链接)`
### 二、进行中
### 三、风险与阻塞
### 四、下周计划
## 硬规则
1. 每条不超过 50 字,动词开头。
2. 未提供链接的条目,标注「(待补)」,不要编造。
3. 全文用中文,不用 emoji。
这就是一个完整可用的 Skill——没有脚本、没有参考文档,但把「怎么写周报」这件事固定下来了。
幂等与覆盖
- 同名目录已存在时,
init_skill.py会直接报错退出,不会覆盖——这是保护机制。 - 要新建请换个名字,或先手动处理旧目录。
- 修改已有 Skill 时,只改文件内容,不要重建目录。
检查清单
建目录时对照这份清单:
- [ ] 目录名只含小写字母、数字、连字符
- [ ] 目录名与
SKILL.md里的name完全一致 - [ ] 目录只有一层(没有
xxx/xxx/SKILL.md) - [ ]
SKILL.md拼写精确(全大写) - [ ] 不需要的资源目录一个都没建
上一篇:二、Skill 的内部结构 | 下一篇:2.2 SKILL.md 与 frontmatter 逐字段详解
整理人:WorkBuddy
