Skip to main content

release-notes

Generate release notes between two git tags and publish as a GitHub release. Input format: "<new-tag> from <base-tag>" (e.g. "v0.5.2 from v0.5.0").

Source facts

Repository
griddynamics/specflow
Last source activity
June 30, 2026 at 09:29
Detected SKILL.md language
English
Stars
9
Forks
2

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
release-notes
description
Generate release notes between two git tags and publish as a GitHub release. Input format: "<new-tag> from <base-tag>" (e.g. "v0.5.2 from v0.5.0").
# Release Notes Generator ## Steps 1. Parse args to extract `NEW_TAG` and `BASE_TAG` (format: `v0.5.2 from v0.5.0`). 2. Run `git log <BASE_TAG>..<NEW_TAG> --oneline --merges` to list merge commits (PRs). 3. 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`. 4. If no PR number is found in a merge commit, use the commit subject as the entry with the committer as author. 5. Write release notes in the format below. 6. Publish the GitHub release: `gh release create <NEW_TAG> --title "<title>" --notes "<body>"`. - 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. 7. 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.
View on GitHub