本规范定义了 KinemaClaw ecosystem 中 skill 的开发、版本管理和跨 Codex、Claude Code、GitHub、ClawHub 发布的标准化流程。
首次使用此 skill 前,必须先读取 references/ONBOARDING.md 完成环境配置。
text
projects/<skill-name>/
├── .claude-plugin/plugin.json # Required: Claude Code manifest
├── .codex-plugin/plugin.json # Required: Codex manifest
├── skills/<skill-name>/SKILL.md # Required: Codex discovery entry
├── SKILL.md # Required: skill definition
├── scripts/ # Optional: automation scripts
├── references/ # Required: references and onboarding
│ └── ONBOARDING.md # Required: onboarding guide
└── other project files
bash
# Good | 好
git commit -m "Add install command to searxng-search CLI"
# Bad | 不好
git commit -m "update"
git commit -m "fix stuff"
发版流程已外置到 references/release-process.md。Agent 发版时必须读取该文档并按 Step 1→9 顺序执行。
发布前先判断类型 | Determine release type first:
类型额外动作全新 skill 首发(marketplace 索引中尚无该 skill)走常规流程 + 更新 marketplace 索引 → 读取 references/marketplace-publishing.md已有 skill 版本更新仅走常规流程, 不动 marketplace 索引
判断方法:分别在 marketplace 的
.claude-plugin/marketplace.json与.agents/plugins/marketplace.json中检索本 skill 的name。任一支持平台缺失都需要补登记;均存在则是版本更新。
发版流程概要(详细步骤见 reference):
@commit-id)~/.openclaw 存在时)版本校验工具:
bash scripts/version-check.sh [expected-version]— 校验 SKILL.md、Claude/Codex manifests 与 git tag 四处版本号一致。
Follow Semantic Versioning: | 遵循语义化版本 (Semantic Versioning):
text
v1.0.0 → First release | 首次发布
v1.1.0 → New features | 新功能
v1.1.1 → Bug fixes | bug 修复
v2.0.0 → Breaking changes | 重大变更
Each skill must include: | 每个 skill 必须包含:
Must include: | 包含:
作者声明规范:
SKILL.md 正文开头(标题之后)必须声明作者信息:
markdown
# Skill Name
- **Author**: [AuthorName](https://github.com/authorname)
- **Organization**: [OrgName](https://github.com/orgname)
- **GitHub**: https://github.com/orgname/skill-name
字段说明Author作者 GitHub 个人主页链接Organization所属组织 GitHub 主页链接GitHubSkill 源码仓库链接
displayName 格式规范:
references/ONBOARDING.md 是必选文件。 SKILL.md 不包含安装/配置细节,仅引用 references/ONBOARDING.md。
SKILL.md 文件开头( # 标题之后、Environment Variables 之前)必须包含以下引导块:
markdown
## ⚠️ Before First Use | 首次使用必读
**首次使用此 skill 前,必须先读取 [references/ONBOARDING.md](references/ONBOARDING.md) 完成环境配置。**
- **首次配置** → 读取 references/ONBOARDING.md 完成全部步骤
- **环境不可用**(命令不存在、依赖缺失、连接失败)→ 读取 references/ONBOARDING.md Troubleshooting 排查修复
- **配置完成后** → 直接使用下方 Run Commands
Agent 读取 SKILL.md 时会看到此块,根据场景决定是否继续读取 references/ONBOARDING.md。
references/ONBOARDING.md 是给 AI Agent 执行的引导文档,必须按以下结构编写:
markdown
# <Skill Name> Onboarding
> 本文档指导 AI Agent 完成首次环境配置。按顺序执行,遇到问题时参考 Troubleshooting。
## Prerequisites | 前置条件
(列出运行此 skill 所需的系统和软件条件)
## Step 1: <步骤名称>
### 检测
(检测命令 + 期望输出,agent 据此判断是否需要执行本步骤)
### 安装
(多种降级方案,按优先级排列,agent 逐条尝试)
### 验证
(验证命令 + 期望输出,确认本步骤完成)
## Step 2: <步骤名称>
...
## Step N: <验证连接或最终检查>
## Troubleshooting | 故障排除
(按错误信息分类的排查表,每行包含:错误 → 原因 → 解决方案)
编写规则:
规则说明按顺序执行Steps 之间有依赖关系,不可跳步每步可独立验证每个 Step 必须有验证命令 + 期望输出降级策略每步提供多种方案(至少 2 种),适配不同环境不硬编码路径用 <skill_dir> 等占位符,agent 运行时替换需要用户输入时明确标注如"必须询问用户" "用户提供",不猜测Troubleshooting 覆盖常见错误列出所有已知失败场景和解决方案
对于安装配置较复杂的 skill,可提供 scripts/setup.reference.sh 作为 参考范式。
注意:
reference,明确标识为参考文件而非可执行脚本bash
# scripts/setup.reference.sh - SETUP REFERENCE (DO NOT EXECUTE DIRECTLY)
# Agent should read this file and adapt commands to current environment.
# Step 1: Check Python
python3 --version
# Step 2: Install dependencies (try in order)
uv pip install --system requests 2>/dev/null || \
pip3 install requests 2>/dev/null || \
sudo pip3 install --break-system-packages requests
# Step 3: Create symlink
sudo ln -sf <skill_dir>/scripts/tool.py /usr/local/bin/tool
# Step 4: Verify
tool --help
场景Agent 行为首次使用读取 references/ONBOARDING.md,按 Step 1-N 顺序执行环境不可用读取 references/ONBOARDING.md Troubleshooting,按错误信息匹配解决方案依赖缺失跳转到对应 Step 重新执行安装版本升级后重新执行 references/ONBOARDING.md 全流程(新版本可能引入新依赖)
同时支持 Claude Code 与 Codex 的 skill 必须把以下文件作为源码提交,均不得加入 .gitignore:
文件用途.claude-plugin/plugin.jsonClaude Code plugin metadata.codex-plugin/plugin.jsonCodex plugin metadata 与 UI 信息skills/<skill-name>/SKILL.mdCodex skill 发现入口
name 必须与根 SKILL.md 一致。SKILL.md 与两份 manifest 的版本必须一致。name 和 description,正文通过相对路径引用根规范与 references,避免复制方法论。apps 或 mcpServers。.claude-plugin/plugin.json 继续使用 Claude Code 支持的 displayName、 version、 description、 author、 homepage、 repository、 license 与 keywords 字段。
.codex-plugin/plugin.json 至少包含 name、严格 SemVer version、 description、 author.name 和完整 interface。 skills 使用以 ./ 开头的相对路径:
json
{
"name": "my-skill-name",
"version": "1.0.0",
"description": "Short description of the skill functionality.",
"author": {
"name": "AuthorName",
"url": "https://github.com/authorname"
},
"repository": "https://github.com/OrgName/my-skill-name",
"license": "GPL-3.0",
"skills": "./skills/",
"interface": {
"displayName": "My Skill Name",
"shortDescription": "Create and publish a cross-platform skill.",
"longDescription": "Longer user-facing plugin description.",
"developerName": "OrgName",
"category": "Developer Tools",
"capabilities": ["Interactive", "Write"],
"websiteURL": "https://github.com/OrgName/my-skill-name",
"defaultPrompt": ["Use this skill to review my plugin."],
"brandColor": "#6366F1"
}
}
Codex plugin 完成后运行官方 validator;Codex wrapper 完成后运行 skill quick validator。验证命令根据本机 skill 工具实际位置执行,不在仓库规范中硬编码用户目录。
SKILL.md、 .claude-plugin/plugin.json 和 .codex-plugin/plugin.json。scripts/version-check.sh 必须检查三份版本声明及最新 git tag。plugin-creator 与 skill-creator 校验规则为准。Skills must NOT contain: | skill 中 禁止 包含:
.clawhub/、 node_modules/、 skills/ 等应通过 .gitignore 排除)注意:
.claude-plugin/、.codex-plugin/和受 manifest 引用的skills/<skill-name>/都是项目源码,必须被 Git 跟踪。
.gitignore 必须排除 .clawhub/、 skills/ 等 CLI 产物text
<skill-name>/ # Git repository | Git 仓库
├── .claude-plugin/plugin.json # Required: Claude Code manifest
├── .codex-plugin/plugin.json # Required: Codex manifest
├── .gitignore # Required: must exclude CLI cache files | 必需:排除 CLI 缓存
├── SKILL.md # Required: skill definition | 必需
├── skills/<skill-name>/SKILL.md # Required: Codex discovery wrapper
├── README.md # Recommended: project readme | 推荐
├── LICENSE # Recommended: license | 推荐
├── scripts/ # Optional: scripts | 可选
│ ├── version-check.sh # Optional: version consistency checker | 可选:版本一致性校验
│ └── setup.reference.sh # Optional: setup reference | 可选(见 Onboarding 章节)
└── references/ # Required: references and onboarding | 必需(低频/详细内容外置)
├── ONBOARDING.md # Required: onboarding guide | 必需(见 Onboarding 章节)
└── release-process.md # Recommended: release process guide | 推荐:发版流程文档
bash
#!/bin/bash
# skill-publish.sh - Publish skill to GitHub + ClawHub
# 完整发版流程见 references/release-process.md
SKILL_NAME=$1
VERSION=$2
CHANGELOG=${3:-"Release v$VERSION"}
if [ -z "$SKILL_NAME" ] || [ -z "$VERSION" ]; then
echo "Usage: $0 <skill-name> <version> [changelog]"
exit 1
fi
cd projects/$SKILL_NAME
# Version consistency check | 版本一致性校验
bash scripts/version-check.sh "$VERSION"
if [ $? -ne 0 ]; then
echo "Error: Version mismatch. Fix before releasing."
exit 1
fi
# Check for uncommitted changes | 检查是否有未提交的修改
if ! git diff --quiet; then
echo "Error: Commit all changes first | 先提交所有修改"
exit 1
fi
# Create tag | 打 tag
git tag -a v$VERSION -m "Release v$VERSION"
# Push | 推送
git push origin <default-branch>
git push origin v$VERSION
# Publish to ClawHub (temp folder mode) | 发布到 ClawHub(临时文件夹模式)
# Plugin metadata causes ClawHub to misidentify the package | 插件元数据会导致 ClawHub 误判
TMPDIR=$(mktemp -d /tmp/clawhub-publish-XXXXXX)
rsync -a --exclude='.git' --exclude='.claude-plugin' --exclude='.codex-plugin' --exclude='.claude' --exclude='.clawhub' --exclude='skills' . "$TMPDIR/"
clawhub publish "$TMPDIR" --slug $SKILL_NAME --version $VERSION --changelog "$CHANGELOG"
EXIT_CODE=$?
rm -rf "$TMPDIR"
exit $EXIT_CODE
skill-creator and plugin-creator built-in skills | Codex 内置创建与校验规范clawhub publish 返回 502 时的 API 备用发布脚本