




























@@ -0,0 +1,96 @@
1+---
2+summary: "How ClawHub publishing works for skills, plugins, owners, scopes, releases, and review."
3+read_when:
4+ - Publishing a skill or plugin
5+ - Debugging owner or package scope errors
6+ - Adding publish UI, CLI, or backend behavior
7+---
8+9+# Publishing on ClawHub
10+11+ClawHub publishing is owner-scoped: every publish targets a publisher, and the
12+server decides whether the signed-in user is allowed to publish there.
13+14+## Owners
15+16+An owner is a ClawHub publisher handle, such as `@alice` or `@openclaw`.
17+Personal owners are created for users. Org owners can have multiple members.
18+19+When you publish, you either use your personal owner or choose an org owner
20+where you have publisher access.
21+22+## Skills
23+24+Skills are published from a skill folder. The public page is:
25+26+```text
27+https://clawhub.ai/<owner>/<slug>
28+```
29+30+Example:
31+32+```text
33+https://clawhub.ai/alice/review-helper
34+```
35+36+The publish request includes the selected owner, slug, version, changelog, and
37+files. The server verifies that the actor can publish as that owner before it
38+creates the release.
39+40+## Plugins
41+42+Plugins use npm-style package names. Scoped package names include the owner in
43+the first part of the name:
44+45+```text
46+@owner/package-name
47+```
48+49+The scope must match the selected publish owner. If your package is named
50+`@openclaw/dronzer`, it can only be published as `@openclaw`. If you publish as
51+`@vintageayu`, rename the package to `@vintageayu/dronzer`.
52+53+This prevents a package from claiming an org namespace that the publisher does
54+not control.
55+56+## Release Flow
57+58+1. The UI, CLI, or GitHub workflow gathers package metadata and files.
59+2. The publish request is sent to ClawHub with the selected owner.
60+3. The server validates owner permissions, package scope, package name, version,
61+ file limits, and source metadata.
62+4. ClawHub stores the release and starts automated security checks.
63+5. New releases are hidden from normal install/download surfaces until review
64+ and verification finish.
65+66+If validation fails, the release is not created.
67+68+## FAQ
69+70+### Package scope must match selected owner
71+72+If the package scope and selected owner do not match, ClawHub rejects the
73+publish:
74+75+```text
76+Package scope "@openclaw" must match selected owner "@vintageayu".
77+Publish as "@openclaw" or rename this package to "@vintageayu/dronzer".
78+```
79+80+To fix it, either choose the owner named by the package scope, or rename the
81+package so the scope matches the owner you can publish as.
82+83+If the package name already has the right scope but the package is owned by the
84+wrong publisher, transfer ownership instead:
85+86+```sh
87+clawhub package transfer @opik/opik-openclaw --to opik
88+```
89+90+Use package transfer only when you have admin access to both the current package
91+owner and the destination publisher. It does not let you publish into a scope you
92+cannot manage.
93+94+This protects org namespaces. A package named `@openclaw/dronzer` claims the
95+`@openclaw` namespace, so only publishers with access to the `@openclaw` owner
96+can publish it.
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。