Parse args to extract NEW_TAG and BASE_TAG (format: v0.5.2 from v0.5.0).
Run git log <BASE_TAG>..<NEW_TAG> --oneline --merges to list merge commits (PRs).
For each merge commit, extract the PR number and title using gh pr view <number> --json number,title,author — match PR numbers from commit messages like #123 or Merge pull request #123.
If no PR number is found in a merge commit, use the commit subject as the entry with the committer as author.
If the tag does not yet exist on the remote, add --target main (or the default branch).
If the release already exists, use gh release edit <NEW_TAG> --notes "<body>" instead.
Print the release URL from the gh output.
Output Format
## <NEW_TAG> — <short label derived from the tag, e.g. "0.5.2">
<2-3 sentence Slack-ready summary. What shipped, why it matters, any breaking changes. Plain prose, no bullet points. No internal jargon.>
## What's Changed
- <PR title> by @<author> in #<number>
- <PR title> by @<author> in #<number>
...
**Full Changelog**: https://github.com/<owner>/<repo>/compare/<BASE_TAG>...<NEW_TAG>
Rules
Derive <owner>/<repo> from gh repo view --json nameWithOwner -q .nameWithOwner.
Release title format: <NEW_TAG> (just the tag — GitHub prepends the repo name automatically).
The Slack summary goes at the top of the release body, before "What's Changed".
List only PRs merged between the two tags — do not include direct commits that have no PR.
If a commit has no associated PR, skip it silently unless it's the only change, in which case list it as - <subject> by @<author>.
Do NOT include "Merge branch" or "Merge pull request" boilerplate lines.
The summary must be usable as-is in a Slack message — no markdown headers, no code spans.
After publishing, print the final release URL so the user can share it.
1---2name: release-notes3description: Release Notes Generator4---56# Release Notes Generator78## Steps9101. Parse args to extract `NEW_TAG` and `BASE_TAG` (format: `v0.5.2 from v0.5.0`).112. Run `git log <BASE_TAG>..<NEW_TAG> --oneline --merges` to list merge commits (PRs).123. For each merge commit, extract the PR number and title using `gh pr view <number> --json number,title,author` — match PR numbers from commit messages like `#123` or `Merge pull request #123`.134. If no PR number is found in a merge commit, use the commit subject as the entry with the committer as author.145. Write release notes in the format below.156. Publish the GitHub release: `gh release create <NEW_TAG> --title "<title>" --notes "<body>"`.16 - If the tag does not yet exist on the remote, add `--target main` (or the default branch).17 - If the release already exists, use `gh release edit <NEW_TAG> --notes "<body>"` instead.187. Print the release URL from the `gh` output.1920## Output Format2122```23## <NEW_TAG> — <short label derived from the tag, e.g. "0.5.2">2425<2-3 sentence Slack-ready summary. What shipped, why it matters, any breaking changes. Plain prose, no bullet points. No internal jargon.>2627## What's Changed2829- <PR title> by @<author> in #<number>30- <PR title> by @<author> in #<number>31...3233**Full Changelog**: https://github.com/<owner>/<repo>/compare/<BASE_TAG>...<NEW_TAG>34```3536## Rules3738- Derive `<owner>/<repo>` from `gh repo view --json nameWithOwner -q .nameWithOwner`.39- Release title format: `<NEW_TAG>` (just the tag — GitHub prepends the repo name automatically).40- The Slack summary goes at the **top** of the release body, before "What's Changed".41- List only PRs merged between the two tags — do not include direct commits that have no PR.42- If a commit has no associated PR, skip it silently unless it's the only change, in which case list it as `- <subject> by @<author>`.43- Do NOT include "Merge branch" or "Merge pull request" boilerplate lines.44- The summary must be usable as-is in a Slack message — no markdown headers, no code spans.45- After publishing, print the final release URL so the user can share it.
Run npx skillmds@latest add griddynamics/release-notes in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
Release Notes Generator It is listed under Coding & Dev Tools on SkillMD.
This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
griddynamics (@griddynamics) published this skill. Their other Agent Skills are listed on their SkillMD profile.