changelog-from-commits
GitHub基于真实 Git 提交历史生成面向用户的变更日志。通过 GitHub 连接器读取指定版本范围的提交,将技术术语转化为用户利益点,按功能、修复等分类去重合并,并优先展示破坏性变更,输出符合 Keep-a-Changelog 标准的发布说明。
Trigger Scenarios
Install
npx skills add mohitagw15856/pm-claude-skills --skill changelog-from-commits -g -y
SKILL.md
Frontmatter
{
"name": "changelog-from-commits",
"homepage": "https:\/\/mohitagw15856.github.io\/pm-claude-skills\/skill\/changelog-from-commits.html",
"metadata": {
"openclaw": {
"emoji": "🧠"
}
},
"description": "Write a human changelog from the REAL commit history — read the actual commit range via the GitHub connector, not a template. Use when asked to write the changelog for this release, what changed since the last tag, draft release notes from my commits, or summarise this range for users in Cowork. Reads commits\/PRs between two refs via the GitHub connector, groups them into user-facing changes (features \/ fixes \/ breaking), translates commit-speak into human benefit, and produces a changelog artifact ready for the release."
}
Changelog from Commits (Live)
Users don't read commit messages, and they shouldn't have to. In Claude Cowork this skill reads the real commit range and turns it into a changelog written for the people who use the software — grouped, deduped, and translated from "refactor: extract helper" into what actually changed for them.
What This Skill Produces
- The changelog — grouped into Added / Changed / Fixed / Breaking, each entry written as user-facing benefit, not commit-speak
- The breaking-change callout — migrations and removals pulled to the top with what to do
- A changelog artifact — Keep-a-Changelog style, ready to paste into
CHANGELOG.mdor a release
Required Inputs
Ask for these if not provided:
- The range — from tag/ref to tag/ref (default: last tag → HEAD), and the repo
- The audience — end users, API consumers, or developers — translation depth follows
- Version & date — the release number and date for the heading
Framework: Commits → Changelog
- Group by impact — Added / Changed / Fixed / Breaking; drop internal-only churn (chore/ci/refactor) unless it changes behaviour.
- Translate — every entry says what the user can now do or no longer suffers, not the implementation.
- Dedupe & merge — many commits behind one feature become one line.
- Breaking first — removals, renames, and migrations lead, with the upgrade step.
- Credit & links — PR numbers/authors where it helps.
Execution (Cowork)
- Read the range — via the GitHub connector, list commits (and merged PRs) between the two refs, with messages, PR titles, and labels.
- Classify — map each to Added/Changed/Fixed/Breaking; set aside pure-internal churn; detect breaking changes from
!/BREAKING CHANGE/removed-public-API signals. - Translate & merge — collapse the commits behind each user-facing change into one benefit-led line; keep PR references.
- Order — breaking first, then Added, Changed, Fixed.
- Emit the artifact — the changelog block; offer to prepend it to
CHANGELOG.mdor attach to a release, only on request.
Guardrails: include only changes actually present in the range — never invent a feature; base "breaking" on real signals, not guesses; don't overstate impact; if the connector is unauthorised, work from a pasted git log and say the range couldn't be read live.
Output Format
A Changelog block:
## [version] — date
### ⚠ Breaking
- what changed → what to do (#PR)
### Added
- user-facing capability (#PR)
### Changed
- what's different now (#PR)
### Fixed
- the problem that's gone (#PR)
Quality Checks
- Every entry maps to a real commit/PR in the range
- Entries read as user benefit, not commit messages
- Breaking changes lead and include the migration step
- Internal-only churn was excluded (unless it changed behaviour)
- Multiple commits behind one feature are a single line
Anti-Patterns
- Pasting raw commit messages as the changelog.
- Inventing a feature not in the range to round it out.
- Burying a breaking change in the middle of "Changed".
- Listing every
chore:/refactor:that users never see.
Example Trigger Phrases
- "Write the changelog since the last tag in Cowork."
- "Draft release notes from my commits for v2.0."
- "What changed for users between v1.4 and HEAD?"
- "Summarise this commit range as a human changelog."
Version History
- 471c606 Current 2026-07-22 13:15


