From rpw-published
Use when drafting release notes or a changelog for this marketplace — "draft the release notes", "what changed since the last release", "write the changelog", "generate the release-log entry". Mines squash-merged PR titles/bodies + linked issues between the last v-tag and HEAD and renders the docs/release-log.md entry plus a PR/release description, shaped to this repo's calendar-first release flow (ADR-001).
How this skill is triggered — by the user, by Claude, or both
Slash command
/rpw-published:changelog-release-notesThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Draft the human-readable delta for a marketplace release. This repo's release
Draft the human-readable delta for a marketplace release. This repo's release
automation (scripts/bump_marketplace_versions.py) writes a release-log entry
with a generic placeholder summary — "Automated production merge version bump." — and never mines PR titles or linked issues. This skill fills that gap:
it produces the real "what changed for the user" delta that an operator pastes
into the release log and the publish PR on the mirror.
Trigger on: "draft the release notes", "what changed since the last release",
"write the changelog", "generate the release-log entry", "summarize this
release". Also use it as the drafting step before tagging a release
(make tag-release) and opening the publish PR (make publish-public).
make release-notes # both drafts, auto base (latest v-tag or fallback)
make release-notes RELEASE_NOTES_BASE=<ref> # scope the delta from an explicit base
make release-notes RELEASE_NOTES_FORMAT=release-log # just the release-log entry
make release-notes RELEASE_NOTES_FORMAT=pr-body # just the PR/release body
Or call the script directly for finer control:
uv run python scripts/release_notes.py --base v2026.06.1202 --version 2026.06.1203
uv run python scripts/release_notes.py --base production~10 --no-gh # offline
It is a drafting tool: it prints to stdout and never rewrites tracked files, so it composes with the release automation instead of competing with it.
v<marketplace-version> tag (created by
make tag-release, which tags v$(metadata.version) on production). No
v* tags exist yet — until one does, the tool falls back to the repo root and
prints a note telling you to pass --base <ref> (e.g. the last release
commit) to scope the delta correctly. Always pass --base for a real draft.YYYY.MM.DD01; pass --version/RELEASE_NOTES_VERSION to match the bump the
release will actually allocate.feat(runtime): …,
fix(gdocs): … are parsed into type + scope. Type drives the PR-body section
(Features / Fixes / …); scope drives the release-log Scope field.… (#269)) is extracted as the PR reference; the PR's
own number is excluded from the issue refs.#NN in subject and body) are preserved as refs #….
They are labeled "refs", not "closes" — bodies cite epics and context issues,
not only closed ones, so the tool does not over-assert closure.docs/release-log.md entry — the exact canonical template
(Type / Scope / PR / Summary / Checks, plus Highlights). Replace
the automated placeholder summary with this one. The release-log file
prepends newest-first under the ## Releases header.make publish-public (or the GitHub release notes).v* tag, or the last release commit on
production if no tag exists yet.make release-notes RELEASE_NOTES_BASE=<base> RELEASE_NOTES_VERSION=<next>.docs/release-log.md (newest at top, under
## Releases) and the PR body into the publish PR on the mirror.production with make tag-release, then open the reviewable
mirror PR with make publish-public.versioning-standards (version identity) and the release Makefile
targets (tag-release, publish-public).npx claudepluginhub randypitcherii/rpw-agent-marketplace --plugin rpw-publishedCreates, edits, and verifies skills using a test-driven development approach with pressure scenarios and subagents.