# Release Notes

> Build human-readable release notes from a range of commits or merged PRs

- Skill: `onlyterp/release-notes` (Agent Skill)
- Install (CLI): `npx skillmds@latest add onlyterp/release-notes`
- Raw SKILL.md: https://api.skillmd.com/api/skills/onlyterp/release-notes/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: OnlyTerp (https://skillmd.com/u/onlyterp)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/onlyterp/release-notes

---


# release-notes — Generate Release Notes

Produce a release-notes document following the "What's New / Improvements / Fixes / Breaking / Acknowledgements" structure used by Hermes, React, VS Code, etc.

## Procedure

1. **Resolve the range:**
   - If `range:` looks like a git range (`X..Y`), use `git log --pretty` to list commits.
   - Otherwise treat it as a GitHub milestone name and pull the closed PRs via `github` MCP.

2. **For each commit/PR, extract:**
   - Type from Conventional Commits prefix (`feat:`, `fix:`, `docs:`, `security:`, `perf:`, `refactor:`, `chore:`)
   - Scope (inside the parentheses)
   - Summary (the first line after the prefix)
   - Body / PR description for context
   - Author + association (CONTRIBUTOR / COLLABORATOR / MEMBER)

3. **Group:**
   - **🚀 What's New** — all `feat:` with scope outside `ci|deps|docs`
   - **⚡ Improvements** — `perf:` and `refactor:`
   - **🐛 Fixes** — `fix:`
   - **🔒 Security** — `security:` + any PR labeled `security` regardless of prefix
   - **💥 Breaking** — any PR labeled `breaking` or any commit with `!:` marker
   - **📚 Docs** — `docs:`
   - **🙏 Acknowledgements** — list of all non-MEMBER authors

4. **Write in plain English.** For each entry, rewrite the conventional-commit summary into a reader-friendly one-liner. Example:
   - Input: `feat(mcp): add http transport with reconnect backoff`
   - Output: `HTTP MCP servers now reconnect automatically with exponential backoff.`

5. **Include PR links** where available: `([#1234](https://github.com/owner/repo/pull/1234))`

6. **Output** as markdown, ready to paste into a GitHub release.

## Example output shape

```markdown
# v1.3.0 — "Thunderbolt"

## 🚀 What's New
- HTTP MCP servers now reconnect automatically with exponential backoff. ([#1234](…))
- Gemini OAuth is now a first-class provider. ([#1270](…))

## ⚡ Improvements
- 40% faster skill load via async frontmatter parsing. ([#1205](…))

## 🐛 Fixes
- Telegram voice transcripts no longer truncate at 60s. ([#1240](…))

## 🔒 Security
- Redact GitHub PATs in log output. ([#1256](…))

## 🙏 Acknowledgements
Thanks to @alice, @bob, @charlie for contributions this release.
```

## Cron wiring

```bash
hermes cron create "0 16 * * 5" \
  "Generate release notes for origin/main..last release" \
  --skill release-notes --name weekly-release-preview --deliver telegram
```

