---
captured_at: 2026-04-23T14:45Z
source: agent 深度调研（官方 GitHub 源码 docs/ + REST API + CLI --help + WebFetch 校验 + .well-known 发现）
captured_by: general-purpose agent
---

# ClawHub 深度调研 — 2026-04-23

**目的**：替换之前 85 行的快照（raw/distribution-channels-research-2026-04-23.md），所有 fact 必须能 trace 回一个可访问 URL 或一条 CLI / API 命令输出。

## 引用的 source URL（每个都 WebFetch / curl / gh api 校验过）

### ✓ 官方一手（直连成功 + 实测有内容）

- ✓ <https://clawhub.ai/> — 主页（自报 52.7k tools / 180k 用户 / 12M 下载 / 4.8 avg），Vercel 部署 + Convex 后端
- ✓ <https://clawhub.ai/about> — 政策页（rejection categories / enforcement 原文）
- ✓ <https://clawhub.ai/.well-known/clawhub.json> — registry 发现文件，现 `minCliVersion: 0.1.0`
- ✓ <https://clawhub.ai/api/v1/openapi.json> — OpenAPI 3.1.0 schema 完整定义
- ✓ <https://clawhub.ai/api/v1/skills/acong-tech-xiangqin> — 单个 skill metadata
- ✓ <https://clawhub.ai/api/v1/skills/acong-tech-xiangqin/versions/0.6.1> — 含 security 字段完整结构
- ✓ <https://clawhub.ai/api/v1/skills/acong-tech-xiangqin/versions> — 12 个版本历史
- ✓ <https://clawhub.ai/api/v1/search?q=xiangqin> — 向量搜索 JSON 返回（含 score）
- ✓ <https://github.com/openclaw/clawhub> — 开源 TypeScript 仓库（public，MIT，8228 stars，1255 forks）
- ✓ <https://github.com/openclaw/clawhub/blob/main/docs/spec.md> — 产品实现规范
- ✓ <https://github.com/openclaw/clawhub/blob/main/docs/skill-format.md> — skill 格式权威说明
- ✓ <https://github.com/openclaw/clawhub/blob/main/docs/security.md> — 审核管线权威说明
- ✓ <https://github.com/openclaw/clawhub/blob/main/docs/acceptable-usage.md> — 可接受用途
- ✓ <https://github.com/openclaw/clawhub/blob/main/docs/http-api.md> — 完整 REST API 参考（17KB）
- ✓ <https://github.com/openclaw/clawhub/blob/main/docs/cli.md> — CLI 参考（10KB）
- ✓ <https://github.com/openclaw/clawhub/blob/main/docs/architecture.md> — 架构
- ✓ <https://github.com/openclaw/clawhub/blob/main/docs/auth.md> — 认证流
- ✓ <https://github.com/openclaw/clawhub/blob/main/docs/telemetry.md> — 遥测机制
- ✓ <https://github.com/openclaw/clawhub/blob/main/docs/orgs.md> — Publisher / 组织计划
- ✓ `clawhub --help`（v0.9.0 @ 7a58bcb7）本地 CLI 所有子命令
- ✓ `clawhub search 相亲` 本地实测（返回 3 条）

### ⚠️ 第三方 / 未验证完整内容

- ⚠️ <https://openclaw.cc/> — 200 响应，但**未验证**是否真是官方中文镜像（之前研究声称官方镜像，不排除第三方抢注）
- ⚠️ <https://clawcn.net/> — 200 响应，未验证归属
- ⚠️ <https://jimo.studio/blog/openclaw-launches-clawhub-china-mirror-site-with-chinese-interface/> — 200 响应，第三方博客

### ✗ 之前研究里但核查后无法访问 / 不存在

- ✗ <https://docs.openclaw.ai/tools/clawhub> — 连 TLS 都失败（`SSL_ERROR_SYSCALL`），**之前研究拍的，实际不存在**
- ✗ <https://clawhub.ai/docs> — 返回 404（没有直接的 docs 路由，文档全在 GitHub 仓库 docs/ 目录）

---

## 1. 分发方式（distribution）

**权威 source**：`docs/cli.md` + `docs/architecture.md` + `clawhub --help`

### 1.1 用户如何安装一个 skill

标准路径：

```bash
npm i -g clawhub                     # CLI 是 npm 包（bin 名 clawhub）
clawhub login                        # 浏览器 OAuth → GitHub → loopback 回调 → 存 token
clawhub install acong-tech-xiangqin  # 下载 zip 解压到 <workdir>/skills/<slug>/
```

### 1.2 install 流程内部（`docs/architecture.md` + `docs/cli.md`）

1. CLI 调 `GET /api/v1/skills/<slug>` 拿 latest version
2. 调 `GET /api/v1/download?slug=<slug>&version=<v>`（或 `&tag=latest`）拿 zip
3. 解压到 `<workdir>/<dir>/<slug>`（默认 `./skills/<slug>`）
4. 写两个 lock 文件：
   - `<workdir>/.clawhub/lock.json` — 工作区级锁
   - `<skill>/.clawhub/origin.json` — 每个 skill 的源记录
5. 历史兼容目录 `.clawdhub/` 也被识别（从前叫 Clawdhub）

### 1.3 依赖解析 / 环境要求

**skill 自身只是文本文件，本体不带二进制依赖**。声明方式在 `SKILL.md` 的 YAML frontmatter 里：

```yaml
metadata:
  openclaw:
    requires:
      env: [TODOIST_API_KEY]      # 必需的环境变量
      bins: [curl, jq]            # 必需全部存在的 CLI
      anyBins: [python3, python]  # 任一存在即可
      config: [~/.config/...]     # 必读的配置路径
    install:
      - kind: brew   # 或 node / go / uv
        formula: jq
        bins: [jq]
    primaryEnv: TODOIST_API_KEY   # 主要凭证 env
    os: [macos]                   # OS 限制
```

`install` 数组是声明式依赖，**ClawHub 本身不执行安装**，是消费端 (clawdbot / openclaw runtime) 读取后决定怎么装。

### 1.4 版本拉取机制

- Semver 必填，每次 publish 是独立 SkillVersion
- Tags 是指向 version 的指针，`latest` 自动维护但可手动重打
- `clawhub install --version 0.6.1` 指定版本
- `clawhub install --tag beta` 走自定义 tag
- Rollback = 把 `latest` tag 移回老版本

### 1.5 update 的 fingerprint 机制（`cli.md` + `GET /api/v1/resolve`）

- `clawhub update` 先本地 hash → `GET /api/v1/resolve?slug=x&hash=<sha256>`
- 命中已知版本 → 当作"当前版"
- 本地被改过 → 默认 **refuse**，必须 `--force` 才覆盖
- 这避免了盲目覆盖本地开发中的 skill 修改

### 1.6 离线镜像 / 企业私有源

- **支持自建 registry**：`CLAWHUB_REGISTRY=https://my-registry.example.com` 或 `--registry` flag
- 自建需要实现 `/.well-known/clawhub.json` 发现文件（返回 `apiBase / authBase / minCliVersion`）
- **HTTP 代理支持**：CLI 尊重 `HTTPS_PROXY / HTTP_PROXY / NO_PROXY`（明确为企业防火墙 / Docker 容器场景写的）
- **没有官方的"离线打包 / 镜像同步工具"**——需要自建镜像的话得自己写 proxy 层

### 1.7 企业 / 组织发布（`docs/orgs.md`）

- 文档显示 org + publisher 模型是**已规划但还在迁移中**
- 目标：`@owner/name` 作为 canonical identity（类似 npm scoped）
- 当前状态：skills 按 `ownerUserId` 单用户拥有，`slug` 全局唯一
- 未来：引入 `publishers` + `publisherMembers`，personal publisher + org publisher 并存
- **暂时没有"企业私有 skill"概念**，但 `/api/v1/packages` 路由已经有 `channel=private`，说明 code-plugin / bundle-plugin **已经支持 private**（只有 authenticated 且属于 publisher 的 caller 能看到）

### 1.8 CLI 子命令完整清单（`clawhub --help`）

```
login / logout / whoami / auth
search / explore / inspect
install / update / uninstall / list
publish / sync
delete / undelete / hide / unhide
skill (rename / merge)
package (explore / inspect / publish) — OpenClaw 代码插件
ban-user / set-role                    — moderator / admin 专用
star / unstar
transfer (request / list / accept / reject / cancel)
```

---

## 2. 格式要求（format）

**权威 source**：`docs/skill-format.md` + `docs/spec.md`

### 2.1 必须文件

- `SKILL.md`（或 `skill.md`，大小写不敏感）— **唯一必填**
- 没有 README 强制要求（但 API 返回里看到 xiangqin 有 README.md 1051B，作为可选补充）

### 2.2 可选文件

- 任意 text-based 文件（代码示例、模板、prompt 片段）
- `.clawhubignore`（publish 时忽略 pattern，类似 .gitignore）
- `.gitignore` 也被尊重

### 2.3 frontmatter 字段（YAML）

**顶层**：

| 字段 | 类型 | 必填 | 用途 |
|---|---|---|---|
| `name` | string | 是 | skill 内部名 |
| `description` | string | 是 | **作为 summary 进 UI / search 索引** |
| `version` | semver | publish 时 | 版本 |

**`metadata.openclaw`**（aliases: `metadata.clawdbot` / `metadata.clawdis`，都等价）：

| 字段 | 说明 |
|---|---|
| `requires.env` | 需要的环境变量 |
| `requires.bins` | 必须全部存在的 CLI |
| `requires.anyBins` | 任一存在即可的 CLI |
| `requires.config` | 读取的配置文件路径 |
| `primaryEnv` | 主要凭证 env 名 |
| `always` | true = 无需显式 install 永远 active |
| `skillKey` | 覆盖调用 key |
| `emoji` | 显示 emoji |
| `homepage` | 主页 URL |
| `os` | OS 限制 `[macos|linux|...]` |
| `install[]` | 依赖声明（kind: brew/node/go/uv） |
| `nix.plugin` + `nix.systems` | Nix 插件指针 |
| `config.requiredEnv / stateDirs / example` | clawdbot 配置规格 |
| `cliHelp` | CLI --help 文本（给 nix 插件） |

### 2.4 server 端限制

- **bundle 总大小 ≤ 50MB**（`spec.md` / `skill-format.md`）
- **文件类型**：只接受 text-based；扩展名白名单在 `packages/schema/src/textFiles.ts`（Markdown/JSON/YAML/TOML/JS/TS/SVG 等）
- **embedding 索引范围**：`SKILL.md` + 最多 ~40 个非 `.md` 文件（best-effort）
- **文件 API 读取 ≤ 200KB**（`GET /api/v1/skills/{slug}/file`）
- **changelog 必填**（每次 publish）

### 2.5 slug 规则

- 小写 URL-safe：正则 `^[a-z0-9][a-z0-9-]*$`
- 默认从文件夹名派生
- owner 可以 `clawhub skill rename` / `merge`，老 slug 变 redirect alias

### 2.6 license 硬性规定（关键）

- **所有在 ClawHub 发布的 skill 一律 MIT-0**（`cli.md`：`Publishing a skill means it is released under MIT-0 on ClawHub`）
- MIT-0 = MIT 去掉 attribution 要求 = 任何人可自由使用 / 修改 / 再分发
- `SKILL.md` 里写的 license 声明**不算数**，ClawHub 不支持 per-skill license override

### 2.7 分类 / 标签

- 没有官方的"垂直分类"（dating / productivity / finance 等）
- tags 是 free-form 字符串；`latest` 是特殊 tag
- 发现：首页有 trending / featured / highlighted 策展位

### 2.8 中文 / 多语言 tag

- `displayName` 支持任意 Unicode（xiangqin 的 `相亲` 正常展示）
- description 也支持中文
- **没有显式的"语言 tag"机制**；语言靠 embedding 隐式区分

### 2.9 多 skill 目录发布（`sync`）

`clawhub sync` 支持一次扫多个 root：
- 手动 `--root <dir...>`
- 自动发现 `~/.clawdbot/clawdbot.json` 里的 `agent.workspace/skills`、`routing.agents.*.workspace/skills`、`~/.clawdbot/skills`、`skills.load.extraDirs`

---

## 3. 安全检测（security）

**权威 source**：`docs/security.md` + `GET /api/v1/skills/{slug}/moderation` + `GET /api/v1/skills/{slug}/scan` + xiangqin v0.6.1 API 实测返回

背景已有详尽记录：[../wiki/concepts/clawhub-security-scanning.md](../wiki/concepts/clawhub-security-scanning.md)。**本节只补充官方 docs 确认 / 新发现项**。

### 3.1 官方确认的扫描器 ID（`version.security.scanners` JSON）

实测 xiangqin 0.6.1 返回：

- `security.scanners.vt`（VirusTotal）:
  - `status: clean | suspicious | malicious`
  - `verdict: benign | ...`
  - `normalizedStatus`
  - `source: palm`（**新发现**：VT 那条走的是 "palm"，疑似 Google Palm / VT Code Insights 内部标识）
  - `analysis: <自由文本>`
  - `virustotalUrl: https://www.virustotal.com/gui/file/<sha256>`
- `security.scanners.llm`（OpenClaw AI 审查）:
  - `status / verdict / normalizedStatus / confidence`
  - `summary` — 一句话总结
  - `dimensions[]` — 5 维度（purpose_capability / instruction_scope / install_mechanism / environment_proportionality / persistence_privilege）
  - `guidance` — 给用户的提示文本
  - `model: gpt-5-mini`（**新发现**：当前模型是 gpt-5-mini，不是 gpt-4 / claude）
  - `findings: null | [...]`

### 3.2 moderation 结构化 verdict（新字段，之前没记录）

`docs/security.md` 明确：

- `moderationVerdict`: `clean | suspicious | malicious`
- `moderationReasonCodes[]`: 规范化机器可读代码（示例 `suspicious.dynamic_code_execution`）
- `moderationEvidence[]`: file + line + message（对 owner / staff 可见，public 只有 redacted）
- `moderationSummary`, `engineVersion`（v2.0.0）, `updatedAt`
- `staticScan`: 静态分析，**可重新计算历史版本**的 backfill

### 3.3 静态分析硬阻断（新发现）

`docs/security.md`：**如果 skill 指示用户粘贴 obfuscated shell payload（例如 base64 解码的 `curl|bash`），会触发：**

1. 该上传 skill 立刻 hidden
2. 上传者进入 manual moderation
3. **该用户所有已发布 skill 全部 hidden** 直到 staff review

这是一个"一人触发全军隐藏"的机制，很严厉。

### 3.4 capability tags（`GET /api/v1/skills/{slug}/scan`）

security 扫描除了 verdict，还会打确定性 capability 标签：
- `crypto`
- `requires-wallet`
- `can-make-purchases`
- `can-sign-transactions`
- `requires-oauth-token`
- `posts-externally`

这些标签独立于 clean/suspicious verdict，用于浏览时的筛选。xiangqin 0.6.1 的 `capabilityTags: []`（空）。

### 3.5 申诉路径（关键新发现）

**没有传统意义的"申诉表单 / 人工 review 队列"**。修复路径是：

1. 改 `SKILL.md`（按 flag 原因补披露 / 移除误判触发文本）
2. `clawhub sync` 或 `clawhub publish` 推新 version
3. 每个 version 发布时**触发重扫**（security.md 明确：deterministic static scan persisted on new publishes; **packages also recompute on backfill**）
4. 新 verdict 自动覆盖老 flag

例外：静态分析硬阻断（3.3）会 freeze 账号所有 skill，需要**人工 review**——但 docs 没写联系方式。推测走 GitHub issue / Discord。

### 3.6 申诉 API

- `GET /api/v1/skills/{slug}/moderation` — 结构化 moderation 状态（owner + staff 能看 evidence，public 只看 verdict）
- `GET /api/v1/skills/{slug}/scan` — scan verification 详情
- `POST /api/v1/skills/{slug}/undelete` — 仅 owner / moderator / admin 能调
- **没有公开"report 驳回"API**

### 3.7 企业 / 私有 skill 的扫描区别

- 目前 skill 不支持 private
- 但 code-plugin / bundle-plugin 支持 `channel=private`，扫描流程一致（docs 没分化 public / private 的扫描策略）
- 关键：**pending VirusTotal scans 不阻塞下载**，但 malicious verdict 会返 403（`docs/http-api.md` `GET /api/v1/packages/{name}/download`）

### 3.8 report / auto-hide 阈值（`docs/security.md`）

- report 唯一性：每个 (user, target) 一个 report
- per-user cap：20 个活跃 report
- **4 个独立 reporter 触发 auto-hide**（之前快照里说 3 个，**实际是 > 3，也就是第 4 次才触发**）
- 同时：soft-delete + `moderationStatus = hidden` + `moderationReason = auto.reports` + 删 embedding 可见性 + 写 audit log `skill.auto_hide`

### 3.9 comment scam 扫描（新发现）

ClawHub 对 comment 也有 AI 扫：
- `scamScanVerdict`: `not_scam | likely_scam | certain_scam`
- `scamScanConfidence`: `low | medium | high`
- **只有 `certain_scam` + `high` 才 auto-ban 账号**
- moderator / admin 永不被 auto-ban
- 手动触发：`npx convex run commentModeration:backfillCommentScamModeration '{"batchSize":25}'`

### 3.10 GitHub 账号年龄门槛（关键）

- publish / comment 都要求 GitHub 账号 age ≥ **14 天**（之前快照说 ≥ 1 周，**实际 14 天**）
- 查 GitHub `created_at`，按 numeric ID 查，缓存到 user.githubCreatedAt
- 如果 GitHub API 429 / 403，publish 会失败并提示 rate limit

### 3.11 账号 ban 的副作用

- **hard-delete 所有 owned skills**
- soft-delete 所有 comment（skill + soul）
- revoke API tokens
- unban 后 token 不自动恢复，用户重建

---

## 4. 搜索机制（search）

**权威 source**：`docs/spec.md` + `docs/http-api.md` + `README`

### 4.1 技术栈（README 明确）

- **Embedding 模型**：OpenAI `text-embedding-3-small`
- **向量存储**：Convex 内置 vector search
- **API**：`GET /api/v1/search?q=...`

### 4.2 索引字段

`docs/spec.md` 明确 vector search 索引的是：

- `SKILL.md` 文本（正文）
- 其他 text 文件（最多 ~40 个非 `.md` 文件）
- frontmatter 抽取的 metadata summary

### 4.3 排序因子（关键新发现）

`docs/http-api.md` `GET /api/v1/search` **明确的排序算法**：

> Results are returned in relevance order (embedding similarity **+ exact slug/name token boosts + popularity prior from downloads**).

也就是说不是纯向量分数，有三个信号：
1. Embedding similarity
2. Slug / displayName 精确 token 命中 boost
3. Downloads 作为 popularity prior

**对 xiangqin 的含义**：
- `acong-tech-xiangqin` slug 命中 "xiangqin" 精确 token
- `相亲` displayName 命中 "相亲" 精确 token
- 目前 downloads = 61，popularity prior 很弱，排名主要靠 embedding + exact token boost
- 实测 `clawhub search 相亲` 返回：`acong-tech-xiangqin  相亲  (1.688)` 排第一，其次 `dating-matchmaking-cn (0.779)`、`touhao-hongniang-media (0.586)`——**中文 token 匹配 + 向量都在工作**

### 4.4 中文支持到什么程度

- **embedding 层**：`text-embedding-3-small` 是 OpenAI 多语言模型，原生支持中文，不需要分词
- **token boost 层**：**没有官方文档提"中文分词"**。看实测 `相亲` 整体作为 token 能命中，但不清楚 `"相亲找对象"` 这种连串是否被切分
- **语言检测**：security.md 提到"word counting is language-aware (`Intl.Segmenter` with fallback)"——说明至少在**计词数**时用 Intl.Segmenter（JS 内置）
- **未明确** query string 的 tokenizer 是否也过 Intl.Segmenter

### 4.5 filter / 过滤

搜索支持：
- `highlightedOnly=true` — 只看 highlighted（staff 标星）
- `nonSuspiciousOnly=true` — 隐藏 `flagged.suspicious` 的 skill
- `limit` — 结果数

**没有** tag / owner / language filter。

### 4.6 `GET /api/v1/skills` 的 sort（非搜索）

列表接口支持 sort：
- `updated`（默认）
- `downloads`
- `stars`（alias: `rating`）
- `installsCurrent`（alias: `installs`）
- `installsAllTime`
- `trending` — **过去 7 天 telemetry 安装数**

对 xiangqin 曝光的含义：`trending` 榜单 = 过去 7 天内用 `clawhub sync` 推上来的新安装数驱动。刚发布的 skill 容易挤进 trending。

### 4.7 rate limit（之前未记录）

- anonymous 按 IP：read 180/min、write 45/min、download 30/min
- authenticated 按 user bucket：read 900/min、write 180/min、download 180/min
- openapi.json 里写的是旧值 120/min read per IP，**实际 docs 是 180/min**（看哪个生效待测）
- 返回 standard `RateLimit-*` + legacy `X-RateLimit-*` headers

---

## 5. 审核机制（moderation）

**权威 source**：`docs/security.md` + `docs/acceptable-usage.md` + `docs/spec.md` + /about 页面

### 5.1 三层角色

- **user**：上传 / 举报（受 14 天 GitHub 门槛）
- **moderator**：hide / restore / soft-delete / ban users（不能 ban admin）
- **admin**：以上全部 + hard-delete + change owner + change roles

### 5.2 自动审核的信号源（汇总）

| 信号 | 触发条件 | 动作 |
|---|---|---|
| VirusTotal malicious | verdict = malicious | hide + block download (403) |
| LLM (gpt-5-mini) suspicious | dimensions 任一 flag | 加 `moderationVerdict = suspicious`，但不自动 hide |
| Static scan 硬阻断 | 检测 obfuscated `curl\|bash` 等 payload | **立即 hide + 用户所有 skill freeze** |
| Report auto-hide | > 3 个独立 reporter | soft-delete + hide + embedding 删 |
| Comment scam scanner | certain_scam + high confidence | auto-ban 账号 |

### 5.3 内容政策硬禁项（`/about` + `acceptable-usage.md`）

六大类（原文逐条）：

1. **Bypass and unauthorized access** — auth bypass / account takeover / CAPTCHA / Cloudflare / anti-bot evasion / rate-limit bypass / reusable session theft / live call 或 agent 接管
2. **Platform abuse and ban evasion** — 封后小号 / 养号 / 假互动 / 多账号自动化 / spam 发帖 / 规避检测的营销自动化
3. **Fraud and deception** — 假证书 / 假发票 / 欺骗性支付流 / 假社交 proof / 钓鱼 / 合成身份开户
4. **Privacy-invasive surveillance** — 大规模抓联系人 / 人肉 / 跟踪 / 隐蔽监控 / 无同意的生物识别匹配 / 购买 / 发布 / 操作化泄露数据或 breach dumps
5. **Non-consensual impersonation** — 换脸 / 数字孪生 / 克隆 influencer / 假人设 / 身份操纵
6. **Explicit sexual content** — NSFW 图 / 视频 / 文字生成；关闭安全检查的成人生成
7. **Hidden or misleading execution** — 混淆安装命令 / `curl | sh` / 未声明 secret 需求 / 未声明 私钥使用 / 不可审查的远程 `npx @latest` / 误导性 metadata

**对 xiangqin 的含义**：相亲 / 交友本身**不在禁止列表**，但要警惕触边：
- 如果 skill 引导用户"批量注册账号"→ 触 Platform abuse
- 如果返回陌生人电话 / 真实姓名 → 触 Privacy-invasive surveillance（xiangqin 用 HMAC-SHA256 hash phone，LLM 扫描已经确认 clean，稳）
- 如果有 NSFW / 性内容 → 直接 ban
- 如果"创建假身份聊天机器人"→ 触 Non-consensual impersonation

### 5.4 report 机制细节

- 任意 user 可 report skill / comment
- 必填 reason（trimmed, max 500 chars）
- **abuse of reporting 本身也会被 ban**（docs 原文：`Abuse of reporting may result in account bans`）
- per-user cap 20 个 active report
- 阈值：> 3 个独立 reporter 自动 hide
- mods 可 unhide / delete / ban 触发

### 5.5 ban 的连锁反应

```
ban user X
  ├── hard-delete X 的所有 skill（不是 soft）
  ├── soft-delete X 所有 comment（skill + soul）
  ├── revoke X 所有 API tokens
  ├── 设置 users.deletedAt
  └── 记 banReason（max 500 chars）到 users.banReason + audit log
```

admin 可手动 unban（清 `deletedAt` + `banReason`），但 token 永不自动复活。

### 5.6 企业 / 官方 skill 特殊流程

- **official channel**（`channel=official`）：只有 "trusted publishers" 能发
- `POST /api/v1/users/publisher` 是 admin-only 的 endpoint，用来把 handle 升级成 org publisher 并标 `trustedPublisher: true`
- 代持发布：`--owner <handle>` + admin token 可以代 org 发（审计 actor 仍是 admin 个人）
- **目前 skills 还没 official / trusted 机制完全落地**（org 迁移在 docs/orgs.md 规划中），只有 badges（`official / highlighted / deprecated / redactionApproved`）

### 5.7 moderation UI flags vs internal status

- `moderationStatus`: `active | hidden | removed`
- `moderationFlags[]`: 自动检测标签（字符串数组，例 `flagged.suspicious`）
- `badges`: owner-visible 徽章（official / highlighted / deprecated / redactionApproved）
- 浏览时可过滤 `nonSuspiciousOnly=true` 隐藏 suspicious 条目

---

## 对 xiangqin 的结论更新

对照 [../wiki/concepts/distribution-channels.md](../wiki/concepts/distribution-channels.md) 的现有结论：

### 确认 / 强化的结论

1. **向量搜索对中文友好确实成立**：OpenAI `text-embedding-3-small` 多语言原生 + slug/name exact token boost → `相亲` 查询 xiangqin 排第一（score 1.688，碾压第二 0.779）
2. **中文 displayName + 英文 slug 分工合理**：`displayName` 不影响 token boost（token boost 同时吃 slug 和 displayName），两边都算 exact match 命中
3. **MIT-0 强制**无法规避——之前说"xiangqin skill 开源免费"，现在确认这不是选择，是 ClawHub 的硬性规定，SKILL.md 里写其他 license 无效

### 需要修正的结论

1. **审核门槛实际是 14 天 GitHub 账号龄，不是"约 1 周"**（distribution-channels.md 没写，distribution-channels-research-2026-04-23.md 写的"≥ 1 周"错）
2. **auto-hide 阈值实际是 > 3 个 reporter（第 4 个触发），不是 ≥ 3**（快照写"≥ 3 个" 误）
3. **"无专门消费者垂类"要扩展**：ClawHub 确实没垂直分类，但有三类信号可用——`highlightedOnly` filter（staff 策展）/ `trending` sort（7 天安装数）/ `stars` 排序。xiangqin 做 C 端可以主攻"拿 stars + 进 trending"
4. **docs.openclaw.ai 是假的**：之前 research 引用的 `https://docs.openclaw.ai/tools/clawhub` TLS 都连不上。真正的官方文档在 `github.com/openclaw/clawhub/tree/main/docs/`，**所有未来 research 应该引用 GitHub 路径**

### 新增可利用的渠道能力

1. **`GET /api/v1/skills?sort=trending`**：7 天 telemetry 榜单是刷曝光的硬杠杆，发新版本时要确保社区安装（xiangqin skill-creator 要求用户跑 `clawhub install` 推升 trending）
2. **star 机制**：`clawhub star <slug>` 是 highlight 列表，admin 可把热门 star 的 skill 标 `highlighted` badge 进首页策展
3. **badges 机制**：`official` 徽章需要 admin 手动批；xiangqin 作为"A Cong Tech"厂的托管 skill，未来如果要做"相亲垂类的准官方"可以申请
4. **org / publisher 迁移**（`docs/orgs.md`）：未来 `@acong-tech/xiangqin` 这种 scoped 名可能替代 `acong-tech-xiangqin` slug。值得 watch，迁移时主动 follow 不被动迁移
5. **telemetry 可关**：`CLAWHUB_DISABLE_TELEMETRY=1` 完全关闭遥测。**对 xiangqin 消费者无用**（用户不上报 = 我们 trending 排名归零）——**反指导：推广文案里不要建议用户关 telemetry**
6. **rate limit 有 user bucket**：900/min read per key 对爬虫 / 监控脚本绰绰有余，不需要担心自家 CI 监控被限

### 仍无法从官方源证实的点（老板需要知道）

1. **中文镜像站 `openclaw.cc` / `clawcn.net` 归属**：HTTP 200 但未 WebFetch 验证内容，**无法确认是官方还是社区 / 第三方抢注**。老板之前的研究引用了 `jimo.studio` 博客，该博客是第三方，官方 docs 从没提过这两个域名
2. **中文用户占比**：ClawHub 官方**从未披露**语言 / 地域用户比例，180k 用户里多少中文用户未知。之前 research 说的"有知乎 / 博客园大量中文教程"可能是幻觉（没列具体链接）
3. **"ClawHavoc" 供应链事件**：之前 research 引用的 `cnblogs.com/informatics/p/19679935` 关于 Koi Security 披露 341-1184 个恶意 skills 的说法，**没 WebFetch 验证**，可能是虚构
4. **Search query 的中文分词策略**：docs 只提到 word counting 用 Intl.Segmenter，没说搜索 tokenizer 是否也用。`"相亲找对象"` 这种没空格的中文 query 究竟怎么 tokenize 未知，得实测
5. **企业 SaaS / 付费推广**：ClawHub 首页没看到任何付费位 / 广告，但**也没官方声明"永久免费"**，未来可能引入
6. **Sagent VirusTotal sandbox 行为的持续性**：之前 clawhub-security-scanning.md 观察到 VT Sagent 会真跑 `python -m pip install pipx`，这是当时的 VT 实现，**未来可能升级跑更多命令**，需要持续监控
