Skills 开发规范
每个 skill = 一个子目录 + SKILL.md 文件。各 skill 版本号以对应 SKILL.md frontmatter 为准;全表见仓库根目录运行 node scripts/gen-skill-docs.mjs 生成的 docs/generated/skills-index.md。
目录结构
skills/
├── coding-fangirl/ # 情绪陪伴;含 context.json 供 Hook 使用;多模式在 modes/
│ ├── SKILL.md
│ ├── context.json
│ └── modes/ # _index.json + 各模式 *.md(可扩展)
├── solve-workflow/
├── perf-workflow/
├── frontend-perf/ # 含 reference.md(前端性能参考资料)
│ ├── SKILL.md
│ └── reference.md
├── chinese-format/
├── android-webview-debug/
├── git-commit/
├── jira-fix-workflow/
├── jira-read/
├── typescript-check/
└── article-writer/
分类与依赖
| 类别 | Skills | 说明 |
|---|---|---|
| 情绪陪伴 | coding-fangirl | 核心 skill,被三个 Hook 引用,有专属 context.json |
| 工作流 | solve-workflow, perf-workflow | 多阶段流程,有严格阶段边界 |
| 知识库 | frontend-perf | 依赖 perf-workflow,为其提供前端领域专属数据 |
| 格式规范 | chinese-format | 自动触发,无需用户主动调用 |
| 内容创作 | article-writer | 公众号 / 知乎等技术文章流程 |
| 工具 | android-webview-debug | enable/revert 双模式,带修改记录和回滚 |
| Git | git-commit | 统一入口,默认自动执行,含多项目检测与错误处理 |
| Jira | jira-fix-workflow | 默认自动模式;--manual 进手动确认模式;含规则制难度分级(极难自动终止);批量场景可在外部编排工具中自行接入(非本仓库内置命令) |
| Jira | jira-read | 本地缓存优先,支持 mcp-atlassian API 降级;需配置 $JIRA_CACHE_DIR |
| 工具 | typescript-check | TypeScript 类型错误检查流程 |
SKILL.md 必须包含
---
name: kebab-case-name # 必须与目录名一致
version: "X.Y.Z" # 语义化版本
user-invocable: true|false # false 表示仅被其他 skill 调用
description: | # 必须包含所有触发词
触发条件说明。当用户说"触发词1"、"触发词2"时触发。
---
触发词规则
- 在
description中列出所有触发词 - 支持两种形式:"触发词" 或 "触发词:具体描述"
- 冒号中英文均可,空格可有可无
- 工作流 skill 的阶段名即为触发词(如"分析问题"触发 solve-workflow 的阶段 1)
新增 Skill 检查清单
- 目录名 kebab-case
SKILL.mdfrontmatter 完整(name、version、description 含触发词)- 如需命令入口 → 在
commands/添加对应.md - 如需 Hook 触发 → 在
hooks/hooks.json添加配置 - 如需 OpenCode 支持 → 在
.opencode/plugins/或.opencode/plugin/添加 JS/TS 代码 - 在仓库根目录执行
node scripts/gen-skill-docs.mjs,将更新后的docs/generated/skills-index.md一并提交
反模式
- ❌ SKILL.md 缺少 frontmatter 或 description 不含触发词
- ❌
user-invocable: false但无其他 skill 引用它 - ❌ 目录名与 frontmatter
name不一致 - ❌ 工作流 skill 跳过阶段(分析阶段禁止 Edit/Write)
- ❌ 支持文件(如 reference.md)未在 SKILL.md 中引用