一个多平台可复用 Agent 技能仓库。
skills-src/ 目录下编写一次技能.claude/skills/.agents/skills/.opencode/skills/.workbuddy/skills/npm run sync # 同步所有技能到所有平台
npm run sync:watch # 监视模式(需先执行: npm install chokidar)
npm run sync:skill -- <name> # 同步指定技能(增量同步)
npm run validate # 验证所有 meta.json 文件
npm run test # 运行测试
node tools/sync-skills.mjs [选项]
选项:
--skill, -s <名称> 仅同步指定的技能
--watch, -w 监视文件变化并自动同步
--validate, -v 仅验证 meta.json 文件,不同步
--help, -h 显示帮助信息
skills-src/<技能名称>/ ├── meta.json # 必需:元数据和平台配置 ├── SKILL.md # 必需:技能指令文档 ├── scripts/ # 可选:可执行脚本 ├── assets/ # 可选:静态资源 ├── references/ # 可选:参考文档 ├── prompts/ # 可选:提示词模板 └── config.json # 可选:技能配置文件
| 字段 | 必需 | 描述 |
|---|---|---|
name | ✅ | 小写 kebab-case 格式标识符(1-64 字符) |
description | ✅ | 简短描述(10-500 字符) |
version | ⬜ | 语义化版本号(如 "1.0.0") |
author | ⬜ | 作者名称或账号(最大 100 字符) |
tags | ⬜ | 标签数组,用于分类发现(最多 10 个) |
entry | ⬜ | 可执行脚本路径(相对于技能目录) |
platforms | ⬜ | 平台特定配置 |
{
"platforms": {
"claude": {
"argument_hint": "--file <路径> 或 --text <内容>",
"allowed_tools": ["read_file", "write_to_file"],
"user_invocable": true,
"disable_model_invocation": false
},
"codex": {
"display_name": "我的技能",
"short_description": "简短描述",
"allow_implicit_invocation": true
},
"opencode": {
"use_claude_projection": true
},
"bolt": {
"use_claude_projection": true
}
}
}
Claude 平台:
argument_hint - 参数提示信息allowed_tools - 允许使用的工具列表user_invocable - 是否允许用户直接调用disable_model_invocation - 是否禁用模型自动调用Codex 平台:
display_name - 显示名称short_description - 简短描述allow_implicit_invocation - 是否允许隐式调用OpenCode / Bolt 平台:
use_claude_projection - 是否使用 Claude 格式投影skills-src/<技能名称>/ 下编辑技能npm run sync(或 npm run sync:watch 自动同步).claude/、.agents/、.opencode/、.workbuddy/ 目录下的生成文件skills-src/ 目录下进行skills-src/schema.json 进行验证meta.json 文件必须符合以下验证规则:
^[a-z][a-z0-9-]*$(小写字母开头,可包含小写字母、数字和连字符)^\d+\.\d+\.\d+$(语义化版本格式)^[a-z][a-z0-9-]*$