





























@@ -10,12 +10,15 @@ Use this skill for release and publish-time workflow. Load `$release-private` if
1010## Respect release guardrails
11111212- Do not change version numbers without explicit operator approval.
13+- Versions use `YYYY.M.PATCH`, where `PATCH` is the sequential release-train number within the month, not the calendar day.
14+- Choose a new beta train from stable and beta releases only. Alpha-only tags do not consume or advance the beta/stable patch number. Continue the highest existing unpublished/published beta train with the next `beta.N` when appropriate; otherwise increment the highest stable/beta patch by one and start at `beta.1`.
15+- Example: after stable `2026.6.5`, the next new beta train is `2026.6.6-beta.1`, even if automated alpha-only tags such as `2026.6.10-alpha.1` exist.
1316- Ask permission before any npm publish or release step.
1417- This skill should be sufficient to drive the normal release flow end-to-end.
1518- Use the private maintainer release docs for credentials, recovery steps, and mac signing/notary specifics, and use `docs/reference/RELEASING.md` for public policy.
1619- Core `openclaw` publish is manual `workflow_dispatch`; creating or pushing a tag does not publish by itself.
1720- Normal release work happens on a branch cut from `main`, not directly on
18-`main`. Use `release/YYYY.M.D` for the branch name.
21+`main`. Use `release/YYYY.M.PATCH` for the branch name.
1922- If the operator asks for a release without saying stable/full, default to
2023 beta only. Continue from beta to stable only when the operator explicitly asks
2124 for the full release or an automated beta-and-stable train.
@@ -92,7 +95,7 @@ Use this skill for release and publish-time workflow. Load `$release-private` if
9295## Keep release channel naming aligned
93969497- `stable`: tagged releases only, published to npm `beta` by default; operators may target npm `latest` explicitly or promote later
95-- `beta`: prerelease tags like `vYYYY.M.D-beta.N`, with npm dist-tag `beta`
98+- `beta`: prerelease tags like `vYYYY.M.PATCH-beta.N`, with npm dist-tag `beta`
9699- Prefer `-beta.N`; do not mint new `-1` or `-2` beta suffixes
97100- `dev`: moving head on `main`
98101- When using a beta Git tag, publish npm with the matching beta version suffix so the plain version is not consumed or blocked
@@ -108,7 +111,7 @@ Use this skill for release and publish-time workflow. Load `$release-private` if
108111- `docs/install/updating.md`
109112- Peekaboo Xcode project and plist version fields
110113- Before creating a release tag, make every version location above match the version encoded by that tag.
111-- For fallback correction tags like `vYYYY.M.D-N`, the repo version locations still stay at `YYYY.M.D`.
114+- For fallback correction tags like `vYYYY.M.PATCH-N`, the repo version locations still stay at `YYYY.M.PATCH`.
112115- “Bump version everywhere” means all version locations above except `appcast.xml`.
113116- Release signing and notary credentials live outside the repo in the private maintainer docs.
114117- Every stable OpenClaw release ships the npm package, macOS app, and signed
@@ -129,19 +132,19 @@ Use this skill for release and publish-time workflow. Load `$release-private` if
129132 tagged commit when the delta is mac packaging, signing, workflow, or
130133 validation-only release machinery. If mac packaging needs release-branch-only
131134 fixes after the stable npm package or GitHub tag is already published, do not
132- create a `vYYYY.M.D-N` correction tag just to change the workflow source.
133- Dispatch the private mac workflows for the original `tag=vYYYY.M.D` with
134-`source_ref=release/YYYY.M.D` and `public_release_branch=release/YYYY.M.D`;
135+ create a `vYYYY.M.PATCH-N` correction tag just to change the workflow source.
136+ Dispatch the private mac workflows for the original `tag=vYYYY.M.PATCH` with
137+`source_ref=release/YYYY.M.PATCH` and `public_release_branch=release/YYYY.M.PATCH`;
135138 provenance checks must prove the source SHA descends from the tag and
136- validation/preflight use the same source. Reserve `vYYYY.M.D-N` correction
139+ validation/preflight use the same source. Reserve `vYYYY.M.PATCH-N` correction
137140 tags for emergency hotfixes that must publish a new npm package/release
138141 identity, not for ordinary mac-only packaging recovery.
139142- The production Sparkle feed lives at `https://raw.githubusercontent.com/openclaw/openclaw/main/appcast.xml`, and the canonical published file is `appcast.xml` on `main` in the `openclaw` repo.
140143- That shared production Sparkle feed is stable-only. Beta mac releases may
141144 upload assets to the GitHub prerelease, but they must not replace the shared
142145`appcast.xml` unless a separate beta feed exists.
143-- For fallback correction tags like `vYYYY.M.D-N`, the repo version still stays
144- at `YYYY.M.D`, but the mac release must use a strictly higher numeric
146+- For fallback correction tags like `vYYYY.M.PATCH-N`, the repo version still stays
147+ at `YYYY.M.PATCH`, but the mac release must use a strictly higher numeric
145148`APP_BUILD` / Sparkle build than the original release so existing installs
146149 see it as newer.
147150- Stable Windows Hub release closeout requires the signed
@@ -151,7 +154,7 @@ Use this skill for release and publish-time workflow. Load `$release-private` if
151154 workflow after the matching `openclaw/openclaw-windows-node` release exists;
152155 it verifies Authenticode signatures on Windows before uploading assets.
153156- Website Windows Hub download links should target exact canonical
154-`openclaw/openclaw/releases/download/vYYYY.M.D/...` assets for the current
157+`openclaw/openclaw/releases/download/vYYYY.M.PATCH/...` assets for the current
155158 stable release, or `releases/latest/download/...` only after verifying the
156159 redirect resolves to that same tag, so the installable signed Windows artifact
157160 is visible from both the GitHub release page and openclaw.ai.
@@ -165,7 +168,7 @@ Use this skill for release and publish-time workflow. Load `$release-private` if
165168 beta release tag as the base, then inspect every commit through the target
166169 release SHA.
167170- The changelog rewrite is not optional for beta reruns: any `beta.N` after a
168- rebase or backport must refresh the same stable-base `## YYYY.M.D` section
171+ rebase or backport must refresh the same stable-base `## YYYY.M.PATCH` section
169172 before the new version/tag commit.
170173- Include both merged PR commits and direct commits on `main`. Direct commits
171174 matter: infer notes from their subject, body, touched files, linked issues,
@@ -188,11 +191,11 @@ Use this skill for release and publish-time workflow. Load `$release-private` if
188191- Changelog entries should be user-facing, not internal release-process notes.
189192- GitHub release and prerelease bodies must use the full matching
190193`CHANGELOG.md` version section, not highlights or an excerpt. When creating
191- or editing a release, extract from `## YYYY.M.D` through the line before the
194+ or editing a release, extract from `## YYYY.M.PATCH` through the line before the
192195 next level-2 heading and use that complete block as the release notes.
193196- To update an existing GitHub Release body, resolve the numeric release id and
194197 patch that resource with the notes file as the `body` field:
195-`gh api repos/openclaw/openclaw/releases/tags/vYYYY.M.D --jq .id`, then
198+`gh api repos/openclaw/openclaw/releases/tags/vYYYY.M.PATCH --jq .id`, then
196199`gh api -X PATCH repos/openclaw/openclaw/releases/<id> -F body=@/tmp/notes.md`.
197200 Do not trust `gh release edit --notes-file` or `--input` JSON if verification
198201 disagrees; verify with `gh api repos/openclaw/openclaw/releases/<id>` because
@@ -205,10 +208,10 @@ Use this skill for release and publish-time workflow. Load `$release-private` if
205208 record's `docsPath` or `/plugins/compatibility` when no more specific
206209 deprecation page exists.
207210- When cutting a mac release with a beta GitHub prerelease:
208-- tag `vYYYY.M.D-beta.N` from the release commit
209-- create a prerelease titled `openclaw YYYY.M.D-beta.N`
211+- tag `vYYYY.M.PATCH-beta.N` from the release commit
212+- create a prerelease titled `openclaw YYYY.M.PATCH-beta.N`
210213- use release notes from the stable base `CHANGELOG.md` version section
211- (`## YYYY.M.D`), not a beta-specific heading
214+ (`## YYYY.M.PATCH`), not a beta-specific heading
212215- attach at least the zip and dSYM zip, plus dmg if available
213216- Keep the top version entries in `CHANGELOG.md` sorted by impact:
214217- `### Changes` first
@@ -218,10 +221,10 @@ Use this skill for release and publish-time workflow. Load `$release-private` if
218221219222Use the OpenClaw account's existing release-post style:
220223221-- Format: `OpenClaw YYYY.M.D 🦞` or `🦞 OpenClaw YYYY.M.D is live`, blank line,
224+- Format: `OpenClaw YYYY.M.PATCH 🦞` or `🦞 OpenClaw YYYY.M.PATCH is live`, blank line,
222225 then 3-4 emoji-led bullets, blank line, one short punchline, then the release
223226 link.
224-- For beta: say `OpenClaw YYYY.M.D-beta.N 🦞` or `OpenClaw YYYY.M.D beta N is
227+- For beta: say `OpenClaw YYYY.M.PATCH-beta.N 🦞` or `OpenClaw YYYY.M.PATCH beta N is
225228live`; keep it clearly beta and avoid implying stable promotion.
226229- Lead with user-visible capabilities, then important integrations, then
227230 reliability/security/install fixes. Compress "lots of fixes" into one
@@ -332,8 +335,8 @@ node --import tsx scripts/openclaw-npm-postpublish-verify.ts <published-version>
332335```
333336334337- This verifies the published registry install path in a fresh temp prefix.
335-- For stable correction releases like `YYYY.M.D-N`, it also verifies the
336- upgrade path from `YYYY.M.D` to `YYYY.M.D-N` so a correction publish cannot
338+- For stable correction releases like `YYYY.M.PATCH-N`, it also verifies the
339+ upgrade path from `YYYY.M.PATCH` to `YYYY.M.PATCH-N` so a correction publish cannot
337340 silently leave existing global installs on the old base stable payload.
338341- Treat install smoke as a pack-budget gate too. `pnpm test:install:smoke`
339342 now fails the candidate update tarball when npm reports an oversized
@@ -480,7 +483,7 @@ node --import tsx scripts/openclaw-npm-postpublish-verify.ts <published-version>
480483`npm login --auth-type=legacy`, then confirm `npm whoami` reports
481484`steipete`.
482485- Promote with a fresh OTP:
483-`npm dist-tag add openclaw@YYYY.M.D latest --otp "$OTP"`.
486+`npm dist-tag add openclaw@YYYY.M.PATCH latest --otp "$OTP"`.
484487- Verify with a cache-bypassed registry read, for example:
485488`npm view openclaw dist-tags --json --prefer-online --cache /tmp/openclaw-npm-cache-verify-$$`
486489 and `npm view openclaw@latest version dist.tarball --json --prefer-online`.
@@ -506,7 +509,7 @@ node --import tsx scripts/openclaw-npm-postpublish-verify.ts <published-version>
506509 the npm version is already published.
507510- npm validation-only preflight may still be dispatched from ordinary branches
508511 when testing workflow changes before merge. Release checks and real publish
509- use only `main` or `release/YYYY.M.D`.
512+ use only `main` or `release/YYYY.M.PATCH`.
510513- `.github/workflows/macos-release.yml` in `openclaw/openclaw` is now a
511514 public validation-only handoff. It validates the tag/release state and points
512515 operators to the private repo. It still rebuilds the JS outputs needed for
@@ -531,7 +534,7 @@ node --import tsx scripts/openclaw-npm-postpublish-verify.ts <published-version>
531534 waives the full gate; mac beta validation is still only required when
532535 requested.
533536- Real publish runs may be dispatched from `main` or from a
534-`release/YYYY.M.D` branch. For release-branch runs, the tag must be contained
537+`release/YYYY.M.PATCH` branch. For release-branch runs, the tag must be contained
535538 in that release branch, and the real publish must reuse a successful preflight
536539 from the same branch.
537540- The release workflows stay tag-based; rely on the documented release sequence
@@ -599,8 +602,8 @@ node --import tsx scripts/openclaw-npm-postpublish-verify.ts <published-version>
5996024. Pull latest `main` and confirm current `main` CI is green.
6006035. Run `/changelog` for the stable base target version on `main`, commit the
601604 changelog rewrite immediately, push, and pull/rebase. For beta releases,
602- keep the changelog heading as `## YYYY.M.D`, not `## YYYY.M.D-beta.N`.
603-6. Create `release/YYYY.M.D` from that post-changelog `main` commit.
605+ keep the changelog heading as `## YYYY.M.PATCH`, not `## YYYY.M.PATCH-beta.N`.
606+6. Create `release/YYYY.M.PATCH` from that post-changelog `main` commit.
6046077. Make every repo version location match the beta tag before creating it.
6056088. Commit release preparation changes on the release branch and push the branch.
6066099. Immediately dispatch Actions > `OpenClaw Performance` from `main` with
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。