# 把自己的 Skill 发布到 ClawHub，再从平台装回来（下）

GitHub 解决了“源码放在哪里”，但别人想安装你的 Skill 时，仍要先知道仓库地址、自己判断版本、再想办法放进正确目录。

这一集继续用 X-ray 作为示例，把最后一块拼图补上：**将自己的 Skill 发布到 ClawHub，查看自动扫描结果，再从平台重新安装并完成最终验收。** 名称、简介和版本号都可以换成你自己的内容。

![下集主线：发布 ClawHub、核对扫描、重新安装并换项目复验](images/01-episode-guide.png)<!-- display-width:520 -->

- **预计用时**：25～35 分钟，安全扫描等待时间另算。
- **需要准备**：Node.js/npm、GitHub 账号、已经发布好的 X-ray 文件夹。
- **成功标志**：ClawHub 出现 `@ppshux/x-ray` 1.0.0；安装命令成功下载；新测试目录生成 `xray-data.json` 与 `xray-report.html`。
- **今天不做**：不修改 X-ray 功能，不运行测试项目代码。

所谓“发布到云端”，不是让 X-ray 在云上偷偷加班，而是把它变成一个可发现、可下载、可版本化的包。真正分析仓库的动作，仍发生在本地 Agent。

## 1. 先分清 GitHub、ClawHub 和本地 Agent

![ClawHub 负责版本分发，本地 Agent 负责真正运行 Skill](images/02-distribution-diagram.png)<!-- display-width:520 -->

- **GitHub**：保存源码、README、许可证和提交历史。
- **ClawHub**：保存可安装版本、公开页面、分类信息和自动扫描结果。
- **OpenClaw / CodeBuddy**：把 Skill 安装到自己能读取的位置，并在本地项目中真正执行。

ClawHub 官方把自己定义为 OpenClaw Skills 与 Plugins 的公共注册表。发布使用 `clawhub` CLI；安装到 OpenClaw 则可以使用 `openclaw skills install`。完整说明可看[ClawHub 官方概览](https://github.com/openclaw/clawhub/blob/main/docs/clawhub.md)与[快速开始](https://github.com/openclaw/clawhub/blob/main/docs/quickstart.md)。

## 2. 安装 ClawHub CLI

CLI 是我们与 ClawHub 交互的命令行工具，后面的登录、发布、检查和安装都靠它完成。

ClawHub CLI 通过 npm 安装。没有 Node.js 时，先从 [Node.js 官网](https://nodejs.org/en/download)安装 LTS 版本，再检查：

```powershell
node --version
npm --version
```

能看到两个版本号后，在 PowerShell 执行和截图一致的命令：

```powershell
npm i -g clawhub
clawhub --help
```

![安装 ClawHub CLI 后用帮助命令确认可用](images/03-clawhub-cli.png)<!-- display-width:600 -->

截图使用的 ClawHub CLI 是 v0.23.3。CLI 会继续更新，所以真正复现时，以你电脑上 `clawhub --help` 和[官方 CLI 文档](https://github.com/openclaw/clawhub/blob/main/docs/cli.md)为准；但本篇实际用到的 `login`、`skill publish`、`inspect` 与安装路径参数都仍在官方文档中。

**看到什么算成功：** 终端出现 `ClawHub CLI` 和命令列表，而不是“无法识别 clawhub”。

## 3. 登录 ClawHub

执行：

```powershell
clawhub login
```

![运行 clawhub login 后终端给出设备授权入口](images/04-clawhub-login.png)<!-- display-width:600 -->

终端会给出设备授权网址和一次性验证码。截图中已把验证码遮住；你只需要打开自己终端显示的网址，不要把真实验证码发给别人。

浏览器会进入授权页面，登录 GitHub 后点击授权：

![在 ClawHub 页面完成 GitHub 设备授权](images/05-clawhub-authorize.png)<!-- display-width:600 -->

回到终端，继续执行：

```powershell
clawhub whoami
```

![授权完成后用 clawhub whoami 验证当前账号](images/06-clawhub-whoami.png)<!-- display-width:600 -->

能看到自己的 ClawHub 用户名，登录就完成了。截图里是 `ppshux`；你看到的应该是自己的账号。

## 4. 先 dry-run：彩排一遍，不真正上传

在本地 `x-ray` 根目录执行和截图一致的命令：

```powershell
clawhub skill publish . --slug x-ray --name "X-ray" --categories development --topics "codebase,analysis,onboarding" --dry-run
```

![正式发布前用 --dry-run 预览 x-ray 1.0.0](images/07-publish-dry-run.png)<!-- display-width:600 -->

几个参数只需要记住大白话版本：

- `.`：发布当前文件夹；
- `--slug x-ray`：公开地址里的名字；
- `--name "X-ray"`：页面显示名；
- `--categories` 与 `--topics`：帮助别人搜索和筛选；
- `--dry-run`：只预览，不上传。

终端出现 `Would publish x-ray@1.0.0`，说明包内容与元数据已经通过预检查。新 Skill 默认从 1.0.0 开始，后续内容变化通常自动增加补丁版本。

## 5. 正式发布

确认预览没问题后，删掉最后的 `--dry-run`：

```powershell
clawhub skill publish . --slug x-ray --name "X-ray" --categories development --topics "codebase,analysis,onboarding"
```

![正式提交后 ClawHub 返回待安全扫描的发布结果](images/08-publish-result.png)<!-- display-width:600 -->

截图返回：

```text
Update submitted for x-ray@1.0.0; pending security scans before it becomes public.
```

这句话的意思是“已经提交，正在等自动扫描”，还不是“全网可见”。别在终点线前两米就开始放礼花。

## 6. 检查版本和自动扫描

过一会儿执行：

```powershell
clawhub inspect @ppshux/x-ray --versions
```

跟做时把 `ppshux` 换成自己的 ClawHub 用户名。

![inspect 显示自动扫描结果为 CLEAN](images/09-security-scan.png)<!-- display-width:600 -->

实验截图显示：

```text
Moderate CLEAN
scanner.llm.clean
No suspicious patterns detected.
```

准确说法是：**ClawHub 对这个版本的自动扫描没有发现已知可疑模式。** 它不是人工逐行审计，也不代表 Skill 永远绝对安全。安装陌生 Skill 前，仍然要看 `SKILL.md`、脚本、权限需求与来源。

还有一个许可证细节：我们的 GitHub 仓库选择了 MIT；ClawHub 官方文档说明，发布到 ClawHub 的 Skill 版本按 MIT-0 分发。两处页面显示不同并不是截图出错，但正式维护项目时最好在 README 中明确说明，避免读者猜。

## 7. 在 ClawHub 找到自己的 X-ray

打开 [ClawHub](https://clawhub.ai/)，搜索 `x-ray`。

![在 ClawHub 搜索 x-ray 并找到公开条目](images/10-clawhub-search.png)<!-- display-width:600 -->

进入详情页，应该能看到作者、版本、说明、扫描状态与安装命令。

![X-ray 的 ClawHub 页面展示版本、说明和安装命令](images/11-clawhub-page.png)<!-- display-width:600 -->

到这里，“发布闭环”已经完成：X-ray 不只是一份 GitHub 源码，还拥有一个可以被搜索和安装的版本页。

## 8. 换一个项目，准备最终复验

接下来验证安装和复用。你可以使用自己的公开项目，或者任何确认允许当前模型读取的仓库；KOF 只是截图里的测试样例。

为了和截图一致，可以在桌面新建 `测试云端X-ray` 文件夹。

![新建测试云端X-ray文件夹，准备第三次独立验收](images/12-create-cloud-test-folder.png)<!-- display-width:600 -->

进入文件夹，执行和截图一致的 SSH 命令：

```powershell
git clone git@github.com:ppshux/kof.git
```

![克隆一个新项目，作为 ClawHub 路线的最终测试对象](images/13-clone-kof.png)<!-- display-width:600 -->

没有配置 SSH Key 时用 HTTPS：

```powershell
git clone https://github.com/ppshuX/kof.git
```

本次截图使用公开的 [KOF 仓库](https://github.com/ppshuX/kof)，只是为了方便对照；和前两次一样，我们只读文件，不安装依赖、不启动游戏。

## 9. 从 ClawHub 安装 x-ray 1.0.0

这一步要证明的是：别人不需要知道你的本地文件夹，只凭平台上的包名就能把 Skill 下载回来。

ClawHub 页面给出的 OpenClaw 安装命令是：

```powershell
openclaw skills install @ppshux/x-ray
```

![从 ClawHub 页面复制 OpenClaw 安装命令](images/14-copy-install-command.png)<!-- display-width:600 -->

如果终端提示找不到 `openclaw`，按截图中的路线先安装：

```powershell
npm install -g openclaw@latest
openclaw skills install @ppshux/x-ray
```

![OpenClaw 从 ClawHub 下载 x-ray 1.0.0 并写入工作区](images/15-install-cloud-skill.png)<!-- display-width:600 -->

截图里可以看到三个关键结果：

```text
Downloading x-ray@1.0.0 from ClawHub...
Installing to C:\Users\wenxiaolv\.openclaw\workspace\skills\x-ray...
Installed x-ray@1.0.0
```

这证明 **ClawHub 上的 1.0.0 已经成功下载到 OpenClaw 工作区**。

### 用 CodeBuddy 复现时，多补一个“目标目录”动作

OpenClaw 与 CodeBuddy 默认读取的 Skill 目录不同。为了确保下一步 CodeBuddy 用到的就是 ClawHub 下载版本，可以再执行：

```powershell
clawhub --workdir "$env:USERPROFILE" --dir ".codebuddy/skills" install @ppshux/x-ray
```

官方 CLI 的目录规则是 `<workdir>/<dir>/<slug>`，所以上面会安装到：

```text
C:\Users\你的用户名\.codebuddy\skills\x-ray
```

如果该目录已有旧版，先备份或移走旧文件夹，再安装并重启 CodeBuddy。这样就不会出现“ClawHub 确实装了，但 CodeBuddy 其实还在调用旧副本”的证据空档。

## 10. 在 CodeBuddy 中再次调用 /x-ray

用 CodeBuddy 打开 `测试云端X-ray`，输入：

```text
/x-ray
```

![回到 CodeBuddy 再次执行 /x-ray](images/16-cloud-skill-visible.png)<!-- display-width:600 -->

看到命令可用，只证明 CodeBuddy 已识别 X-ray；真正的验收仍然是新的 JSON 与 HTML。

等待扫描结束后，打开新项目的报告顶部：

![新项目生成第三份 X-ray 分析报告](images/17-kof-report-overview.png)<!-- display-width:600 -->

这次报告识别出 248 个文件、64 个目录、Python 与 JavaScript，并给出 4.5/10 的复杂度。

继续往下看项目结构和复杂度分布：

![第三份报告展示项目结构与复杂度分布](images/18-kof-report-details.png)<!-- display-width:600 -->

最后检查关键文件、适合人群和推荐阅读顺序：

![第三份报告给出关键文件、适合人群与推荐阅读顺序](images/19-clawhub-closure.png)<!-- display-width:600 -->

**下集通关：** X-ray 已发布到 ClawHub，1.0.0 能被下载；在目标 Agent 的 Skill 目录安装后，新项目又生成了一份独立报告。

## 11. 三个常见问题

- **`clawhub` 不是命令**：重新执行 `npm i -g clawhub`，再运行 `clawhub --help`；如果仍失败，检查 npm 全局命令目录是否进入 PATH。
- **发布后搜不到**：先看终端是否还在 `pending security scans`，稍等后用 `clawhub inspect @你的用户名/x-ray --versions` 检查。
- **安装成功但 CodeBuddy 没有 `/x-ray`**：确认安装目标是 `%USERPROFILE%\.codebuddy\skills\x-ray`，而不是只有 `.openclaw\workspace\skills\x-ray`，然后彻底重启 CodeBuddy。

## 12. 收尾：从一个想法，到可复用数字资产

![三部曲通关：制作、GitHub 发布、ClawHub 分发全部闭环](images/20-episode-summary.png)<!-- display-width:520 -->

三集下来，我们完成了三个闭环：

1. **本地闭环**：制作 X-ray，装进 Agent 工具并跑通第一次调用；
2. **GitHub 闭环**：发布源码，从仓库重新安装并换项目复验；
3. **ClawHub 闭环**：发布版本、查看自动扫描、从平台重新安装并完成最终验收。

更重要的是，你已经完整“抄”过一遍 Skill 的制作与发布流程。下次只需要换掉 `SKILL.md` 的目标、脚本、参考规则和资产模板，就能开始做自己的 Skill。

X-ray 的口号可以很酷：**Understand any codebase in 5 minutes.** 但这三集真正想交付的，不是宣传某个 Skill，而是让你亲手走完“制作 → 本地调用 → GitHub 管理 → ClawHub 分发”的全流程。

现在把 X-ray 换成你的想法，这套路线仍然成立：先从一个小而明确的任务开始，让它真的被调用一次，再考虑发布给别人。
