draft-release-notes
GitHub根据 Git 提交历史生成符合 Keep a Changelog 规范的发布说明,自动分类变更并按用户视角格式化输出。
Trigger Scenarios
Install
npx skills add luxury-yacht/app --skill draft-release-notes -g -y
SKILL.md
Frontmatter
{
"name": "draft-release-notes",
"description": "Generate release notes from git log since last tag, following [Keep a Changelog](https:\/\/keepachangelog.com) and project conventions"
}
Release Notes
Generate formatted release notes by reading commits since the last git tag.
Usage
/draft-release-notes — generate notes from the last tag to HEAD
/release-notes <from-tag> — generate notes from a specific tag to HEAD
/release-notes <from-tag> <to-tag> — generate notes between two tags
Steps
-
Determine range. If no arguments, find the latest tag with
git tag --sort=-v:refname | head -1and use<latest-tag>..HEAD. If arguments provided, use those. -
Read commits. Run
git log <range> --oneline --no-mergesto get the commit list. Also rungit log <range> --oneline --mergesto capture PR merge commits (these have the PR title and number). -
Read changed code when needed. For commits with unclear messages, read the actual changed files (
git show <sha> --statthen read key files) to understand what the change does from a user's perspective. -
Categorize. Group changes using Keep a Changelog types. Only include categories that have entries:
- Added — new features, new UI elements, new capabilities
- Changed — modifications to existing functionality, UX changes, behavior changes
- Fixed — bug corrections, stability improvements
- Security — vulnerability patches, auth fixes
- Deprecated — features marked for future removal
- Removed — features that were deleted
-
Format output. Use this template:
## v<version> — <YYYY-MM-DD>
**Added:**
- Description of feature
- Sub-detail of feature if it has multiple notable parts
**Changed:**
- Description of change
**Fixed:**
- Description of fix
Writing Style
Follow the conventions established in existing releases:
- Write for users, not developers. Describe what the user sees or can do, not implementation details. "Favorites feature enabling users to save views with associated filters" not "implement fav persistence layer with JSON serialization."
- Lead with the feature/area name when describing additions. "Rollback functionality for Deployments, Daemonsets, Statefulsets" not "Added a new modal that lets you roll back."
- Use sub-bullets for notable details of a larger feature. The first bullet names the feature, subsequent bullets describe specifics (e.g., "Heart icon to mark/unmark favorite views", "Cluster-specific or universal favorite support").
- Group related fixes under a single descriptive bullet when they're part of one effort. "Improved reliability and user experience of pod logs viewer" not three separate bullets for each small fix.
- Bold the category name followed by a colon —
**Added:**,**Fixed:**— not markdown headers for categories. - No PR numbers or commit hashes in the output. The release notes are for users.
- Omit version bump commits, merge commits, and CI/build-only changes.
- Omit the Deprecated, Removed, and Security sections unless there are actual entries — but never omit them if there ARE entries. Deprecations, removals, and breaking changes are the most important things to document.
Version History
- ee846a6 Current 2026-08-20 13:02


