Skip to content
Back to skills

release-notes

ASecurity

Draft release notes and changelog entries from git history or merged PRs between two refs (tags/SHAs/branches), including breaking changes, migrations, and upgrade steps. Use when the user asks for release notes, changelog updates, or a GitHub Release draft.

  • 130 stars
  • 1 vote
  • 8 copies
  • 101 views
  • Added December 23, 2025
documentationgojavakotlinnodegitapisecurityperformance

Works with

  • cli
  • api

Security analysis

A100/100

Scanned February 12, 2026

npx -y skills add jMerta/codex-skills --skill release-notes --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of release-notes?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for release-notes
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/jmerta-release-notes/badge)](https://www.skillsdirectory.com/skills/jmerta-release-notes)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
---
name: release-notes
description: Draft release notes and changelog entries from git history or merged PRs between two refs (tags/SHAs/branches), including breaking changes, migrations, and upgrade steps. Use when the user asks for release notes, changelog updates, or a GitHub Release draft.
---

# Release notes

## Goal
Produce accurate, scannable release notes (Markdown) for a specific release range.

## Inputs to ask for (if missing)
- Release version + date (or "unreleased").
- Range to summarize: `from_ref..to_ref` (tags/SHAs/branches). If unknown, ask: "last release tag?" and "target branch/tag?"
- Target audience: end users, developers, internal ops, or all.
- What to include/exclude: internal refactors, dependency bumps, infra-only changes.

## Workflow (checklist)
1) Determine the release range
   - Prefer tags: pick the previous tag and the new tag/HEAD.
   - If no tags: use the last release branch point or a date-based window.
   - Commands to gather candidates:
     - `git tag --sort=-creatordate | Select-Object -First 20`
     - `git log --first-parent --oneline <from_ref>..<to_ref>`
     - If GitHub CLI is available: list merged PRs for the range and use titles for grouping.
2) Collect and categorize changes
   - Start from merge commits (first-parent) to avoid noise.
   - Categorize into: Highlights, Breaking changes, Features, Fixes, Performance, Security, Deprecations, Docs, Dependencies, Infra/ops.
   - Flag anything requiring action: config changes, env vars, DB migrations, API contract changes.
3) Identify breaking changes and upgrade steps
   - Look for: renamed/removed endpoints, changed request/response fields, changed config keys, Java/Kotlin/Node version bumps, DB schema changes.
   - Add explicit "Upgrade" and "Rollback" notes when impact is non-trivial.
4) Write release notes using the template
   - Use short bullets, active voice, and user-facing wording.
   - Prefer "what changed" + "why it matters" over implementation details.
   - Include PR/issue references only if they are stable in your repo hosting.
   - Use `references/release-notes-template.md` to keep structure consistent.
5) Sanity check for omissions and accuracy
   - Diff the range: `git diff --stat <from_ref>..<to_ref>`
   - Scan for config/migrations: `rg -n \"ENV|config|migration|Flyway|Liquibase\" -S`
   - Ensure breaking changes are called out and have upgrade steps.

## Deliverable
Provide:
- Release notes Markdown (ready to paste into a GitHub Release / changelog).
- A short "Risk/notes" section listing any required migrations, config changes, or rollback concerns.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…