← Back to Skills Marketplace
leeshunee

Kinema's Skill Making Pipeline

by Kinema. · GitHub ↗ · v1.4.0 · MIT-0
cross-platform ✓ Security Clean
206
Downloads
0
Stars
1
Active Installs
11
Versions
Install in OpenClaw
/install kinema-skill-making-pipeline
Description
KinemaClaw Skill development and publishing specification. Defines the standard process for skill development, version management, and publishing. All skills...
README (SKILL.md)

Kinema's Skill Making Pipeline | Kinema Skill 开发与发布规范

本规范定义了 KinemaClaw ecosystem 中 skill 的开发、版本管理、发布的标准化流程。

Core Principles | 核心原则

  1. Git First - All modifications must be managed in Git repository | 所有修改必须在 Git 仓库中管理
  2. Atomic Commits - Each commit must be a meaningful independent change | 每次 commit 必须是有意义的独立变更
  3. Versioned Releases - Must create Git tag before publishing | 发布前必须打 Git tag
  4. No In-Place Publishing - Never publish raw skills from /app/skills/ | 禁止发布 /app/skills/ 中的原位 skill
  5. Onboarding Required - Every skill must have installation/configuration guide | 每个 skill 必须有安装/配置引导
  6. Four-Way Sync - After release, sync versions across: projects repo, local skills, GitHub Release, ClawHub | 发版后同步四地版本:projects 仓库、本地 skills、GitHub Release、ClawHub

Development Workflow | 开发流程

1. Create Skill Repository | 创建 Skill 仓库

projects/\x3Cskill-name>/
├── SKILL.md              # Required: skill definition
├── scripts/              # Optional: automation scripts
├── references/           # Optional: reference materials
└── other project files

2. Development Guidelines | 开发规范

  • Atomic commits: One thing per commit | 每个 commit 只做一件事
  • Commit frequently: Commit after completing each feature/fix | 完成一个功能/修复一个问题后立即 commit
  • Descriptive messages: Use meaningful commit messages | 使用描述性的 commit message
# Good | 好
git commit -m "Add install command to searxng-search CLI"

# Bad | 不好
git commit -m "update" 
git commit -m "fix stuff"

3. Release Process | 发布流程

cd projects/\x3Cskill-name>

# 1. Ensure all changes are committed | 确保所有修改已 commit
git status

# 2. Create version tag (Semantic Versioning) | 打版本 tag (语义化版本)
git tag -a v1.2.0 -m "Release v1.2.0: Add onboarding"

# 3. Push tag to GitHub | 推送 tag 到 GitHub
git push origin v1.2.0

# 4. Create release on GitHub | 在 GitHub 仓库发布
# Settings → Releases → Create new release

# 5. Publish to ClawHub | 推送到 ClawHub
clawhub publish . --slug \x3Cskill-name> --name "\x3CdisplayName>" --version 1.2.0 --changelog "description of changes"

Fallback: 如果 clawhub publish 返回 502 错误,可通过 Node.js 直接调用 ClawHub API 发布。详见附录。

node -e "
const fs = require('fs');
const path = require('path');
const TOKEN = JSON.parse(fs.readFileSync(process.env.HOME + '/.config/clawhub/config.json','utf8')).token;

const folder = '/path/to/\x3Cskill-name>';
const files = [];
function walk(dir, prefix='') {
  for (const f of fs.readdirSync(dir, {withFileTypes: true})) {
    const full = path.join(dir, f.name);
    const rel = prefix ? prefix + '/' + f.name : f.name;
    if (f.name === '.git' || f.name === 'node_modules') continue;
    if (f.isDirectory()) walk(full, rel);
    else if (rel.split('.').pop().match(/^(md|json|yaml|yml|js|ts|py|sh|txt|toml|css|html|svg|xml|csv|env|ini|cfg)$/)) {
      files.push({ relPath: rel, bytes: fs.readFileSync(full) });
    }
  }
}
walk(folder);

const form = new FormData();
form.set('payload', JSON.stringify({
  slug: '\x3Cskill-name>',
  displayName: '\x3CdisplayName>',
  version: '1.2.0',
  changelog: 'description of changes',
  acceptLicenseTerms: true,
  tags: ['latest']
}));
for (const f of files) form.append('files', new Blob([f.bytes], {type: 'text/plain'}), f.relPath);

fetch('https://clawhub.ai/api/v1/skills', {
  method: 'POST',
  headers: { 'Authorization': 'Bearer ' + TOKEN, 'Accept': 'application/json' },
  body: form
}).then(async r => {
  const data = await r.json();
  console.log(r.ok ? 'OK ' + data.versionId : JSON.stringify(data));
});
"

ClawHub 发版要求:

  • --name 必须使用 SKILL.md 中的 displayName
  • --version 必须与 Git tag 版本号一致
  • --changelog 必须包含本次变更说明
  • 发布前确保 GitHub Release 已创建

4. Four-Way Version Sync | 四地版本同步

完成发版后,必须确保以下四个位置的版本一致:

Location Path/URL Action
projects 仓库 ~/.openclaw/workspace/projects/\x3Cskill-name>/ Git tag + SKILL.md version
本地 skills ~/.openclaw/workspace/skills/\x3Cskill-name>/ clawhub update 或手动同步
GitHub Release https://github.com/\x3Corg>/\x3Crepo>/releases gh release create
ClawHub https://clawhub.ai clawhub publish

发版后自动同步本地 skills:

# 发版完成后,更新本地安装的 skill
clawhub update \x3Cskill-name>

# 或手动同步
cp projects/\x3Cskill-name>/SKILL.md skills/\x3Cskill-name>/SKILL.md
cp -r projects/\x3Cskill-name>/scripts skills/\x3Cskill-name>/scripts/

完整发版检查清单:

  • 1. projects 仓库 SKILL.md 版本号已更新
  • 2. Git commit 并打 tag (vX.Y.Z)
  • 3. Push 到 GitHub (git push origin master --tags)
  • 4. 创建 GitHub Release (gh release create vX.Y.Z)
  • 5. 发布到 ClawHub (clawhub publish 或 API fallback)
  • 6. 更新本地 skills (clawhub update \x3Cskill-name> 或手动同步)
  • 7. 验证四地版本一致

Version Numbering | 版本号规则

Follow Semantic Versioning: | 遵循语义化版本 (Semantic Versioning):

  • MAJOR: Incompatible API changes | 不兼容的 API 变更
  • MINOR: Backward-compatible new features | 向后兼容的新功能
  • PATCH: Backward-compatible bug fixes | 向后兼容的 bug 修复
v1.0.0 → First release | 首次发布
v1.1.0 → New features | 新功能
v1.1.1 → Bug fixes | bug 修复
v2.0.0 → Breaking changes | 重大变更

Required Elements | 必须要素

Each skill must include: | 每个 skill 必须包含:

1. SKILL.md

Must include: | 包含:

  • name: skill name | skill 名称
  • displayName: human-readable name with feature description | 人类可读名称(含功能描述)
  • version: semantic version number | 语义化版本号
  • description: functionality description and trigger condition | 功能描述和触发条件
  • Complete usage instructions | 完整使用说明

作者声明规范:

SKILL.md 正文开头(标题之后)必须声明作者信息:

# 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 主页链接
GitHub Skill 源码仓库链接

displayName 格式规范:

  • 统一格式: `Name (Feature Description)`

2. Onboarding | Onboarding

ONBOARDING.md 是必选文件。 SKILL.md 不包含安装/配置细节,仅引用 ONBOARDING.md。

2.1 SKILL.md 中的 Onboarding 引导

SKILL.md 文件开头(# 标题之后、Environment Variables 之前)必须包含以下引导块:

## ⚠️ Before First Use | 首次使用必读

**首次使用此 skill 前,必须先读取 [ONBOARDING.md](ONBOARDING.md) 完成环境配置。**

- **首次配置** → 读取 ONBOARDING.md 完成全部步骤
- **环境不可用**(命令不存在、依赖缺失、连接失败)→ 读取 ONBOARDING.md Troubleshooting 排查修复
- **配置完成后** → 直接使用下方 Run Commands

Agent 读取 SKILL.md 时会看到此块,根据场景决定是否继续读取 ONBOARDING.md。

2.2 ONBOARDING.md 结构规范

ONBOARDING.md 是给 AI Agent 执行的引导文档,必须按以下结构编写:

# \x3CSkill Name> Onboarding

> 本文档指导 AI Agent 完成首次环境配置。按顺序执行,遇到问题时参考 Troubleshooting。

## Prerequisites | 前置条件
(列出运行此 skill 所需的系统和软件条件)

## Step 1: \x3C步骤名称>
### 检测
(检测命令 + 期望输出,agent 据此判断是否需要执行本步骤)
### 安装
(多种降级方案,按优先级排列,agent 逐条尝试)
### 验证
(验证命令 + 期望输出,确认本步骤完成)

## Step 2: \x3C步骤名称>
...

## Step N: \x3C验证连接或最终检查>

## Troubleshooting | 故障排除
(按错误信息分类的排查表,每行包含:错误 → 原因 → 解决方案)

编写规则:

规则 说明
按顺序执行 Steps 之间有依赖关系,不可跳步
每步可独立验证 每个 Step 必须有验证命令 + 期望输出
降级策略 每步提供多种方案(至少 2 种),适配不同环境
不硬编码路径 \x3Cskill_dir> 等占位符,agent 运行时替换
需要用户输入时明确标注 如"必须询问用户" "用户提供",不猜测
Troubleshooting 覆盖常见错误 列出所有已知失败场景和解决方案

2.3 setup.reference.sh(可选)

对于安装配置较复杂的 skill,可提供 scripts/setup.reference.sh 作为参考范式

注意

  • 文件名必须包含 reference,明确标识为参考文件而非可执行脚本
  • Agent 不应直接执行此文件,而是读取其内容,根据当前环境适配执行
  • 内容是安装流程的模板代码,展示检测→安装→验证的逻辑模式
# 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 \x3Cskill_dir>/scripts/tool.py /usr/local/bin/tool

# Step 4: Verify
tool --help

2.4 Onboarding 触发场景

场景 Agent 行为
首次使用 读取 ONBOARDING.md,按 Step 1-N 顺序执行
环境不可用 读取 ONBOARDING.md Troubleshooting,按错误信息匹配解决方案
依赖缺失 跳转到对应 Step 重新执行安装
版本升级后 重新执行 ONBOARDING 全流程(新版本可能引入新依赖)

3. Prohibited Content | 禁止内容

Skills must NOT contain: | skill 中禁止包含:

  • Personal websites, domains | 个人网站、域名
  • Passwords, accounts, tokens | 密码、账号、Token
  • Personal email, phone | 个人邮箱、电话
  • Real names, identity information | 真实姓名、身份信息

GitHub Repository Guidelines | GitHub 仓库规范

  • Default to Private repositories | 默认创建 Private 仓库
  • Use meaningful repository names | 使用有意义的仓库名称
  • Keep README.md in sync with SKILL.md | 保持 README.md 与 SKILL.md 一致

Directory Structure | 目录结构

\x3Cskill-name>/                     # Git repository | Git 仓库
├── SKILL.md                      # Required: skill definition | 必需
├── ONBOARDING.md                 # Required: onboarding guide | 必需(见 Onboarding 章节)
├── README.md                     # Recommended: project readme | 推荐
├── LICENSE                       # Recommended: license | 推荐
├── scripts/                      # Optional: scripts | 可选
│   └── setup.reference.sh        # Optional: setup reference | 可选(见 Onboarding 章节)
└── references/                   # Optional: reference materials | 可选

Automation Script Example | 自动化脚本示例

#!/bin/bash
# skill-publish.sh - Publish skill to GitHub + ClawHub

SKILL_NAME=$1
VERSION=$2

if [ -z "$SKILL_NAME" ] || [ -z "$VERSION" ]; then
    echo "Usage: $0 \x3Cskill-name> \x3Cversion>"
    exit 1
fi

cd projects/$SKILL_NAME

# 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 master
git push origin v$VERSION

# Publish to ClawHub | 发布到 ClawHub
clawhub publish . --slug $SKILL_NAME --version $VERSION

Related Documentation | 相关文档

Appendix: ClawHub API Fallback | 附录: ClawHub API 备用发布

clawhub publish 返回 502 错误时,可通过 Node.js 直接调用 ClawHub API 发布。

node -e "
const fs = require('fs');
const path = require('path');
const TOKEN = JSON.parse(fs.readFileSync(process.env.HOME + '/.config/clawhub/config.json','utf8')).token;

const folder = '/path/to/\x3Cskill-name>';
const files = [];
function walk(dir, prefix='') {
  for (const f of fs.readdirSync(dir, {withFileTypes: true})) {
    const full = path.join(dir, f.name);
    const rel = prefix ? prefix + '/' + f.name : f.name;
    if (f.name === '.git' || f.name === 'node_modules') continue;
    if (f.isDirectory()) walk(full, rel);
    else if (rel.split('.').pop().match(/^(md|json|yaml|yml|js|ts|py|sh|txt|toml|css|html|svg|xml|csv|env|ini|cfg)$/)) {
      files.push({ relPath: rel, bytes: fs.readFileSync(full) });
    }
  }
}
walk(folder);

const form = new FormData();
form.set('payload', JSON.stringify({
  slug: '\x3Cskill-name>',
  displayName: '\x3CdisplayName>',
  version: '1.2.0',
  changelog: 'description of changes',
  acceptLicenseTerms: true,
  tags: ['latest']
}));
for (const f of files) form.append('files', new Blob([f.bytes], {type: 'text/plain'}), f.relPath);

fetch('https://clawhub.ai/api/v1/skills', {
  method: 'POST',
  headers: { 'Authorization': 'Bearer ' + TOKEN, 'Accept': 'application/json' },
  body: form
}).then(async r => {
  const data = await r.json();
  console.log(r.ok ? 'OK ' + data.versionId : JSON.stringify(data));
});
"
Usage Guidance
This skill is a documentation/specification for developing and publishing skills and is internally consistent. Before using the provided Node.js fallback: (1) inspect the snippet — it reads ~/.config/clawhub/config.json for a token and uploads files to https://clawhub.ai; only run it if you trust the target ClawHub account and you intend to publish. (2) When publishing, ensure the file list excludes any secrets (config files, .env, private keys). (3) Prefer using the official cli (clawhub publish) or an explicit, audited environment variable for tokens rather than running one-off scripts that read config files. (4) If you need higher assurance, request the canonical publishing CLI or an audited automation script from the repository owner.
Capability Analysis
Type: OpenClaw Skill Name: kinema-skill-making-pipeline Version: 1.4.0 The skill bundle defines a standardized development and publishing pipeline for OpenClaw skills, focusing on Git workflow, versioning, and ClawHub integration. It includes a Node.js fallback script in SKILL.md that reads a local authentication token from `~/.config/clawhub/config.json` to publish skills to the official `clawhub.ai` API; this behavior is transparently documented and strictly aligned with the skill's stated purpose. The bundle also includes proactive security guidelines for developers, such as prohibiting the inclusion of secrets or personal data in skills.
Capability Assessment
Purpose & Capability
Name/description match the provided content: the files and SKILL.md contain a skill development and publishing specification. All instructions (git tag, GitHub release, clawhub publish) are coherent with the stated purpose.
Instruction Scope
The SKILL.md is largely procedural guidance. One fallback Node.js snippet reads a local ClawHub config file (~/.config/clawhub/config.json) to obtain a token and uploads repository files to https://clawhub.ai/api/v1/skills. That behavior is expected for a publish fallback but introduces a sensitive action (reading a local token file and transmitting files to ClawHub) which deployers should review before running.
Install Mechanism
No install spec or code files are provided; this is instruction-only which minimizes installation risk.
Credentials
The skill declares no required env vars or credentials, but the Node fallback implicitly uses process.env.HOME to locate ~/.config/clawhub/config.json and extract a token. This is proportional to the publishing task but should be explicitly acknowledged since it accesses a local credential file not declared in metadata.
Persistence & Privilege
always is false, no persistent/background privileges requested, and the skill does not attempt to modify agent/system-wide configs. Autonomous model invocation is allowed (default) but that is normal and not problematic here.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install kinema-skill-making-pipeline
  3. After installation, invoke the skill by name or use /kinema-skill-making-pipeline
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.4.0
Add Author/Organization/GitHub link specification in SKILL.md requirements
v1.3.1
Add GitHub repository link to SKILL.md
v1.2.3
README 添加 ClawHub 安装链接
v1.2.2
新增四地版本同步要求
v1.2.1
version sync
v1.0.4
Add API fallback appendix
v1.0.3
Generalize skill spec
v1.3.0
No changes detected in this version. - Version 1.3.0 does not include any file modifications or updates to the documentation.
v1.2.0
- Added "displayName: Kinema's Skill Making Pipeline" to SKILL.md. - Updated the title and introductory heading to "Kinema's Skill Making Pipeline | Kinema Skill 开发与发布规范" for clarity and consistency. - No other substantive changes to process or content.
v1.1.0
- SKILL.md rewritten to provide a fully bilingual (English/Chinese) specification. - All headings, key principles, workflow steps, and examples are now presented in both languages. - No changes to technical workflows or requirements; the update improves clarity and accessibility for multilingual users. - Directory structure, automation script, and required elements now include English translations alongside the original Chinese. - Documentation links also displayed in both languages.
v1.0.0
Initial release of the Kinema Skill development and publishing standard. - Defines standardized processes for skill development, versioning, and publishing within KinemaClaw. - Enforces Git-based workflow, atomic commits, and semantic versioning for all skills. - Prohibits in-place publishing and mandates onboarding documentation or scripts for every skill. - Specifies required repository structure and content, including SKILL.md details. - Provides example automation scripts for streamlined publishing.
Metadata
Slug kinema-skill-making-pipeline
Version 1.4.0
License MIT-0
All-time Installs 1
Active Installs 1
Total Versions 11
Frequently Asked Questions

What is Kinema's Skill Making Pipeline?

KinemaClaw Skill development and publishing specification. Defines the standard process for skill development, version management, and publishing. All skills... It is an AI Agent Skill for Claude Code / OpenClaw, with 206 downloads so far.

How do I install Kinema's Skill Making Pipeline?

Run "/install kinema-skill-making-pipeline" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Kinema's Skill Making Pipeline free?

Yes, Kinema's Skill Making Pipeline is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Kinema's Skill Making Pipeline support?

Kinema's Skill Making Pipeline is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Kinema's Skill Making Pipeline?

It is built and maintained by Kinema. (@leeshunee); the current version is v1.4.0.

💬 Comments