





















@@ -17,6 +17,10 @@ Use this skill for release and publish-time workflow. Load `$release-private` if
1717- This skill should be sufficient to drive the normal release flow end-to-end.
1818- Use the private maintainer release docs for credentials, recovery steps, and mac signing/notary specifics, and use `docs/reference/RELEASING.md` for public policy.
1919- Core `openclaw` publish is manual `workflow_dispatch`; creating or pushing a tag does not publish by itself.
20+- Do not edit the root `README.md` as release prep, release closeout, or a
21+ substitute for release notes. Package-root README validation is a hard
22+ packaging gate, but a release only changes README content when an actual
23+ user-facing documentation contract changed.
2024- Normal release work happens on a branch cut from `main`, not directly on
2125`main`. Use `release/YYYY.M.PATCH` for the branch name.
2226- If the operator asks for a release without saying stable/full, default to
@@ -76,6 +80,44 @@ Use this skill for release and publish-time workflow. Load `$release-private` if
7680 or clawgrit reports. Report regressions explicitly. A major regression is a
7781 release blocker unless the operator waives it or the data clearly proves
7882 infrastructure noise.
83+- Heal CI before tagging or publishing. The exact candidate SHA must have green
84+`Full Release Validation`, including the root Dockerfile/install-smoke path.
85+ Treat a red Docker, package, or release workflow lane as a release-branch
86+ defect until the smallest correct fix is landed and proven; do not waive it
87+ because npm preflight or another sibling lane passed.
88+- Keep the canonical `scripts/pr` runner authoritative for prepare and merge
89+ artifacts. A release-gate policy change may use focused candidate tests and
90+ exact-SHA hosted CI for proof, but never route `prepare-*` or `merge-*`
91+ through PR-controlled scripts or synthesize prepare artifacts to bootstrap
92+ the change. If the current canonical gate cannot validate the new policy,
93+ stop for explicit maintainer direction rather than weakening that boundary.
94+- In maintainer Testbox mode, use `OPENCLAW_TESTBOX=1 scripts/pr prepare-run
95+<PR>` only after the exact PR head has passed `CI` and every scheduled
96+ hosted gate. For a workflow change, that means `Blacksmith Testbox`,
97+`Blacksmith ARM Testbox`, `Blacksmith Build Artifacts Testbox`, and
98+`Workflow Sanity`; only gates GitHub actually scheduled for that exact head
99+ are required. This preserves the canonical prepare artifacts while avoiding
100+ a redundant broad local suite. A
101+ literal `CHANGELOG.md`-only head gets a clean diff check instead because
102+ those workflows intentionally do not dispatch. Documentation and README
103+ changes still require CI. If `merge-run` requires a mainline sync, run
104+`OPENCLAW_TESTBOX=1 scripts/pr prepare-sync-head <PR>`, wait for those hosted
105+ gates on the newly pushed SHA, then run `prepare-run` again.
106+- If an exact PR-head CI run has no active jobs because Blacksmith capacity is
107+ stalled, a maintainer may dispatch the explicit GitHub-hosted fallback from
108+ the PR head branch:
109+ `gh workflow run ci.yml --repo openclaw/openclaw --ref <pr-head-branch> -f
110+target_ref=<full-pr-sha> -f include_android=true -f release_gate=true`.
111+ Use it only for an observed provider queue stall, never for failed CI or as a
112+ routine shortcut. The run must be named `CI release gate <full-pr-sha>` and
113+ pass on that exact SHA; the native hosted-gate verifier rejects generic manual
114+ CI runs. If `Blacksmith Build Artifacts Testbox` is the only remaining
115+ required gate and it is still queued without a runner, the same completed
116+ fallback CI may cover it because its `build-artifacts` job builds, packages,
117+ and smoke tests those artifacts. The verifier records that coverage. Never
118+ use this coverage when the artifact workflow has started, failed, been
119+ cancelled, or been skipped. Then rerun `OPENCLAW_TESTBOX=1 scripts/pr
120+prepare-run <PR>`.
79121- Generate the changelog before every beta, beta rerun, stable release, or
80122 stable rerun, before version/tag preparation. Use
81123`$openclaw-changelog-update` for the rewrite. Do not continue release prep if
@@ -119,6 +161,14 @@ Stable publication is not complete until `main` carries the actual shipped relea
119161`OPENCLAW_TESTBOX=1 pnpm check:changed`. Push, then verify `origin/main`
120162 contains the shipped version and changelog before calling the stable release
121163 done.
164+6. Keep repository variables `RELEASE_ROLLBACK_DRILL_ID` and
165+`RELEASE_ROLLBACK_DRILL_DATE` current after each private rollback drill.
166+`openclaw-stable-main-closeout.yml` starts from the `main` push carrying the
167+ shipped version, changelog, and appcast after stable publication, then binds
168+ immutable evidence to the published tag. Do not declare stable complete
169+ until it writes the immutable closeout manifest to the GitHub release. The
170+ drill must be within 90 days; manual dispatch is only for repair/replay, and
171+ private rollback commands remain in the maintainer-only runbook.
122172123173## Handle versions and release files consistently
124174此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。