.agents/skills/openclaw-release-maintainer/SKILL.md
Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.
npx skillsauth add giggle-official/storyclaw-assistant openclaw-release-maintainerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill for release and publish-time workflow. Keep ordinary development changes and GHSA-specific advisory work outside this skill.
docs/reference/RELEASING.md for public policy.openclaw publish is manual workflow_dispatch; creating or pushing a tag does not publish by itself.stable: tagged releases only, published to npm latest and then mirrored onto npm beta unless beta already points at a newer prereleasebeta: prerelease tags like vYYYY.M.D-beta.N, with npm dist-tag beta-beta.N; do not mint new -1 or -2 beta suffixesdev: moving head on mainpackage.jsonapps/android/app/build.gradle.ktsapps/ios/Sources/Info.plistapps/ios/Tests/Info.plistapps/macos/Sources/OpenClaw/Resources/Info.plistdocs/install/updating.mdvYYYY.M.D-N, the repo version locations still stay at YYYY.M.D.appcast.xml.https://raw.githubusercontent.com/openclaw/openclaw/main/appcast.xml, and the canonical published file is appcast.xml on main in the openclaw repo.appcast.xml unless a separate beta feed exists.vYYYY.M.D-N, the repo version still stays
at YYYY.M.D, but the mac release must use a strictly higher numeric
APP_BUILD / Sparkle build than the original release so existing installs
see it as newer.vYYYY.M.D-beta.N from the release commitopenclaw YYYY.M.D-beta.NCHANGELOG.md version sectionCHANGELOG.md sorted by impact:
### Changes first### Fixes deduped with user-facing fixes firstBefore tagging or publishing, run:
node --import tsx scripts/release-check.ts
pnpm release:check
pnpm test:install:smoke
For a non-root smoke path:
OPENCLAW_INSTALL_SMOKE_SKIP_NONROOT=1 pnpm test:install:smoke
After npm publish, run:
node --import tsx scripts/openclaw-npm-postpublish-verify.ts <published-version>
YYYY.M.D-N, it also verifies the
upgrade path from YYYY.M.D to YYYY.M.D-N so a correction publish cannot
silently leave existing global installs on the old base stable payload.pnpm checkpnpm buildnode --import tsx scripts/release-check.tspnpm release:checkOPENCLAW_INSTALL_SMOKE_SKIP_NONROOT=1 pnpm test:install:smokeopenclaw/openclaw and the real mac preflight in
openclaw/releases-private for every release.appcast.xml update on main as part of mac release readiness, not an optional follow-up.appcast.xml before uploading
public release assets so the updater feed cannot lag the published binaries.appcast.xml files from the same stale seed.workflow_dispatch.preflight_only=true to run validation/build/package steps without uploading
public release assets.smoke_test_only=true for branch-safe
workflow smoke tests that use ad-hoc signing, skip notarization, skip shared
appcast generation, and do not prove release readiness.preflight_only=true on the npm workflow is also the right way to validate an
existing tag after publish; it should keep running the build checks even when
the npm version is already published..github/workflows/macos-release.yml in openclaw/openclaw is now a
public validation-only handoff. It validates the tag/release state and points
operators to the private repo; it does not build or publish macOS artifacts.openclaw/releases-private/.github/workflows/openclaw-macos-publish.yml.appcast.xml generation.main; branch-dispatched publish
attempts should fail before the protected environment is reached.npm-release environment must be approved by @openclaw/openclaw-release-managers before publish continues.openclaw/releases-private/.github/workflows/openclaw-macos-publish.yml for
build, signing, notarization, packaged mac artifact generation, and
stable-feed appcast.xml artifact generation..zip, .dmg, and
.dSYM.zip assets to the existing GitHub release in openclaw/openclaw
automatically when OPENCLAW_PUBLIC_REPO_RELEASE_TOKEN is present in the
private repo mac-release environment.macos-appcast-<tag> artifact from the successful private mac workflow and
then update appcast.xml on main.appcast.xml
unless a separate beta Sparkle feed exists.mac-release environment. If the GitHub
plan does not yet support required reviewers there, do not assume the
environment alone is the approval boundary; rely on private repo access and
CODEOWNERS until those settings can be enabled.NPM_TOKEN or the plugin OTP flow for OpenClaw releases.@openclaw/* plugin publishes use a separate maintainer-only flow.scripts/package-mac-dist.sh to build, sign, notarize, and package the app;
manual GitHub release asset upload; then scripts/make_appcast.sh plus the
appcast.xml commit to main.scripts/package-mac-dist.sh now fails closed for release builds if the
bundled app comes out with a debug bundle id, an empty Sparkle feed URL, or a
CFBundleVersion below the canonical Sparkle build floor for that short
version. For correction tags, set a higher explicit APP_BUILD.scripts/make_appcast.sh first uses generate_appcast from PATH, then
falls back to the SwiftPM Sparkle tool output under apps/macos/.build.appcast.xml.appcast.xml unless a separate beta feed exists..zip, .dmg, and .dSYM.zip assetsappcast.xml on main points at the new stable zipCFBundleVersion at or above the canonical Sparkle build floorCHANGELOG.md and assemble the matching GitHub release notes..github/workflows/openclaw-npm-release.yml with preflight_only=true
and wait for it to pass..github/workflows/macos-release.yml in openclaw/openclaw and wait
for the public validation-only run to pass.openclaw/releases-private/.github/workflows/openclaw-macos-publish.yml
with preflight_only=true and wait for it to pass..github/workflows/openclaw-npm-release.yml with the same tag for
the real publish.npm-release approval from @openclaw/openclaw-release-managers.openclaw/releases-private/.github/workflows/openclaw-macos-publish.yml
for the real publish and wait for success..zip, .dmg,
and .dSYM.zip artifacts to the existing GitHub release in
openclaw/openclaw.macos-appcast-<tag> from the successful
private mac run, update appcast.xml on main, and verify the feed.appcast.xml artifact and do not update the shared production feed unless a
separate beta feed exists.openclaw-ghsa-maintainer for GHSA advisory inspection, patch/publish flow, private-fork validation, and GHSA API-specific publish checks.tools
A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.
development
Comprehensive spreadsheet creation, editing, and analysis with support for formulas, formatting, data analysis, and visualization. When Claude needs to work with spreadsheets (.xlsx, .xlsm, .csv, .tsv, etc) for: (1) Creating new spreadsheets with formulas and formatting, (2) Reading or analyzing data, (3) Modify existing spreadsheets while preserving formulas, (4) Data analysis and visualization in spreadsheets, or (5) Recalculating formulas
development
X2C Distribution and Wallet API — publish video to X2C platform, manage assets (balance, claim X2C, swap to USDC, withdraw, transactions).
data-ai
Manage X (Twitter) accounts — post tweets, like, reply, retweet, view timeline, search, auto-interact, analyze data.