

















@@ -0,0 +1,86 @@
1+---
2+name: openclaw-changelog-update
3+description: Regenerate OpenClaw release changelog sections from git history before beta or stable releases.
4+---
5+6+# OpenClaw Changelog Update
7+8+Use this for release changelog rewrites and GitHub release-note source text.
9+Use it with `release-openclaw-maintainer`; this skill owns changelog content,
10+ordering, and audit discipline.
11+12+## Goal
13+14+Rewrite the target `CHANGELOG.md` version section from history, not from stale
15+draft notes. Produce user-facing release notes sorted by user interest while
16+preserving issue/PR refs and thanks.
17+18+## Inputs
19+20+- Target base version: `YYYY.M.D`, without beta suffix.
21+- Base tag: last reachable shipped release tag, usually the previous stable or
22+ the previous beta train requested by the operator.
23+- Target ref: exact branch/SHA being released.
24+25+## Workflow
26+27+1. Start on `main` before branching when possible:
28+- `git fetch --tags origin`
29+- `git pull --ff-only`
30+- confirm clean `git status -sb`
31+2. Audit history, including direct commits:
32+- `git log --first-parent --date=iso-strict --pretty=format:'%h%x09%ad%x09%s' <base-tag>..<target-ref>`
33+- `git log --first-parent --grep='(#' --date=short --pretty=format:'%h%x09%ad%x09%s' <base-tag>..<target-ref>`
34+- also inspect `--since='24 hours ago'` when main moved during the release.
35+3. Read linked PRs/issues or diffs for ambiguous commits. Direct commits matter;
36+ infer notes from subject, body, touched files, tests, and nearby commits.
37+4. Rewrite one stable-base section only:
38+- use `## YYYY.M.D`
39+- do not create beta-specific headings
40+- do not leave a stale `## Unreleased` section above the target release
41+- if `Unreleased` contains release-bound notes, fold them into the target
42+ section instead of deleting them
43+5. Section shape:
44+- `### Highlights`: 5-8 bullets, broad user wins first
45+- `### Changes`: new capabilities and behavior changes
46+- `### Fixes`: user-facing fixes first, grouped by impact and surface
47+6. Preserve attribution:
48+- keep `#issue`, `(#PR)`, GHSA ids, `Fixes #...`, and `Thanks @...`
49+- never thank bots, `@openclaw`, `@clawsweeper`, or `@steipete`
50+- if grouping multiple entries, carry all relevant refs and thanks into the
51+ grouped bullet
52+7. Sorting preference:
53+- security/data-loss and content-boundary fixes
54+- transcript/replay/reply delivery correctness
55+- channels and mobile integrations
56+- providers/Codex/local model reliability
57+- install/update/release path reliability
58+- performance and observability
59+- docs and contributor-only/internal details last or omitted
60+8. Keep bullets single-line unless existing file style forces otherwise. Avoid
61+ internal release-process noise unless it changes user install/update safety.
62+9. Check release-note side conditions:
63+- inspect `src/plugins/compat/registry.ts`
64+- inspect `src/commands/doctor/shared/deprecation-compat.ts`
65+- if any compatibility `removeAfter` is on/before release date, resolve it
66+ or explicitly record the blocker before shipping
67+10. Validate and ship:
68+- `git diff --check`
69+- for docs/changelog-only changes, no broad tests are required
70+- commit with `scripts/committer "docs(changelog): refresh YYYY.M.D notes" CHANGELOG.md`
71+- push, pull/rebase if needed, then branch/rebase release from latest `main`
72+73+## Quota / API Outage Rule
74+75+If GitHub API quota is exhausted, do not idle. Continue work that does not need
76+GitHub API:
77+78+- local changelog rewrite and release-note extraction
79+- local pretag checks and package/build sanity
80+- git push/tag checks over git protocol
81+- npm registry `npm view` checks
82+- exact workflow-dispatch command preparation
83+84+Only GitHub Release creation, workflow dispatch, run polling, artifact download,
85+and issue/PR mutation need API quota.
86+此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。