Publish or update an OpenClaw skill on ClawHub using the local authenticated ClawHub session and direct API upload. Use when the user wants to publish a new...
--- name: clawhub-publish-flow description: Publish or update an OpenClaw skill on ClawHub using the local authenticated ClawHub session and direct API upload. Use when the user wants to publish a new skill to ClawHub, update an existing skill version, inspect the current remote version before release, package and upload a local skill folder reliably without relying on incomplete third-party publisher skills, or when assistant-created local skills should be routinely published after review and commit. --- # ClawHub Publish Flow Use this skill to publish a local skill folder to ClawHub through the already-authenticated local ClawHub account. ## Core rule Only publish skills that have already passed local review. Do not publish directly from vague drafts, half-finished folders, or unreviewed third-party skills. ## Preferred workflow 1. Confirm the local skill folder path. 2. Check login state with `clawhub whoami`. 3. Inspect the current remote skill with `clawhub inspect <slug>` when updating an existing skill. 4. Decide the target version and changelog. 5. Perform a **public-release sensitive-data review** on the exact outbound payload. 6. Package the skill with `package_skill.py` if a distributable artifact is needed. 7. Upload using `scripts/publish_to_clawhub.js`. 8. Verify with `clawhub inspect <slug>` after upload. 9. Report the final remote version and URL. ## Assistant-created skills policy When the user has explicitly asked that assistant-created skills be uploaded to ClawHub, treat this skill as the single publish flow for both: - one-off manual releases - newly created local skills after review and commit For newly created assistant-authored skills: 1. Confirm the new skill folder exists under `workspace/skills/<slug>`. 2. Confirm it has already been reviewed and committed locally. 3. Inspect remote state with `clawhub inspect <slug>`. 4. Versioning: - if missing remotely: publish `0.1.0` - if already present: bump patch version 5. Use a short changelog such as `Initial release`, `Add runtime notes`, `Refine trigger description`, or `Document proven workflow`. 6. Publish and verify. 7. If a registry sheet exists, update it too. ## Rate-limit fallback for new skills ClawHub may rate-limit new skill creation (for example: max 5 new skills per hour). When a publish attempt for a **new skill** fails due to rate limiting: 1. Do not keep hammering the endpoint. 2. Record the pending publish locally. 3. Schedule a delayed retry instead of requiring the user to remind you. 4. Use the same verified publish flow when retrying. Preferred local queue file: - `workspace/research/clawhub-publish-queue.md` Queue fields: - date - slug - local skill path - target version - changelog - reason queued - next retry note Retry rule: - wait until the rate-limit window has plausibly cleared - then retry publication once - verify with `clawhub inspect <slug>` after success ## Safety and release rules - Do not publish without an explicit user request. - Do not guess ownership, slug, or version when ambiguity matters. - Prefer patch bumps for small documentation or rule updates. - If the remote state is unclear, inspect first instead of overwriting blindly. - If a third-party publisher skill promises features but lacks code, ignore it and use this verified local flow. - Treat package-style publisher shells as untrusted until verified locally: if the folder is mostly README / metadata and lacks runnable implementation, do not route publishing through it. - Do not publish vague drafts or half-finished skills just because they were created; assistant-created skills still need to be coherent and committed. - ClawHub is a **public-release** path unless explicitly proven otherwise; use the highest sensitivity review bar. - Before upload, inspect the exact outbound payload for secrets, tokens, passwords, cookies, local absolute paths, runtime artifacts, `.env`, and machine-specific config. - If the skill package contains anything that should stay local-only, stop and fix the package before publishing. ## Required local assumptions This skill expects: - local `clawhub` CLI installed and authenticated - local ClawHub config present under the current user - a real skill directory containing `SKILL.md` - Node available for the publish script ## Scripts Use `scripts/publish_to_clawhub.js` for the actual API upload. Arguments: ```bash node scripts/publish_to_clawhub.js --skill-path <path> --slug <slug> --version <version> --changelog <text> ``` Optional: ```bash --display-name <name> --tag <tag> # repeatable ``` ## References Read `references/release-checklist.md` before publishing when the release is important or public. ## Output style Report with this structure: - skill - local path - prior remote version (if any) - target version - upload result - verification result - final URL - risks or follow-ups - whether publication succeeded immediately or was queued for delayed retry Keep it short and operational.
don't have the plugin yet? install it then click "run inline in claude" again.
extracted and formalized 6 required components including explicit inputs (clawhub cli auth, optional metadata, external connection details and edge cases), numbered procedure with inputs and outputs per step, decision tree for new vs existing skills and rate limit handling, formal output contract with structured fields, and outcome signal describing verification steps. clarified rate-limit fallback as a queuing mechanism rather than implicit logic.
publish a local skill folder to clawhub through your authenticated local clawhub account. use this when you need to release a new skill, update an existing skill version, inspect the remote state before release, or publish assistant-created skills after local review and commit. this is the canonical flow for reliable skill distribution without relying on incomplete third-party publisher skills.
local environment
clawhub CLI installed and authenticated. set up with clawhub login and verify with clawhub whoami.SKILL.md file.skill metadata
my-awesome-skill). must match the remote slug if updating an existing skill.workspace/skills/my-awesome-skill).0.1.0, 1.2.3). required for publication.initial release or add runtime notes). keep short and specific.optional metadata
external connection: clawhub API
clawhub login).edge cases to expect
clawhub whoami.SKILL.md. upload will fail; fix locally first.step 1: confirm skill folder and metadata
SKILL.md. run ls -la <path> to inspect.SKILL.md present.step 2: verify clawhub login state
clawhub whoami to confirm authenticated session.clawhub login before proceeding.step 3: inspect current remote state
clawhub inspect <slug> to fetch the existing remote skill version, metadata, and URL.step 4: decide target version and changelog
0.1.0. for updates, bump according to change scope (patch for docs/minor fixes, minor for features, major for breaking changes).step 5: perform sensitive-data review on outbound payload
.env files, runtime artifacts, or machine-specific config. scan SKILL.md, any .js, .py, .json, or binary files in the skill folder..gitignore, review what is excluded to ensure no secrets are being added to version control by accident.step 6: package the skill (conditional)
package_skill.py <path> --version <version> --output <output-dir>. if only uploading to clawhub directly, skip this step.step 7: upload to clawhub
node scripts/publish_to_clawhub.js --skill-path <path> --slug <slug> --version <version> --changelog <text>. include --display-name <name> and --tag <tag> flags if provided.step 8: verify publication
clawhub inspect <slug> to confirm the new version is live and metadata matches what was uploaded.step 9: report result
decision: is this a new skill or an update to an existing skill?
0.1.0. apply new skill rate-limit fallback rules if needed (see below).decision: did the upload fail with rate limit (429 or "too many requests")?
decision: should this skill be queued for delayed retry?
workspace/research/clawhub-publish-queue.md (or create it if missing) with date, slug, local path, target version, changelog, reason ("rate limit hit"), and next retry note.decision: is the sensitive-data review passing?
decision: does the skill folder contain incomplete metadata or vague content?
decision: is there a registry sheet that needs updating?
workspace/research/skill-registry.md): after successful publication, update the registry with slug, version, clawhub URL, and publication date.when a new skill publication attempt fails due to clawhub rate limiting:
workspace/research/clawhub-publish-queue.md (create file if missing).clawhub inspect <slug> after success.report the final publication result using this structure:
format as markdown or plain text. keep it short and operational.
you know the skill worked when:
clawhub inspect <slug> returns the exact version you just uploaded.