首页/DevOps/changelog-writer
C

changelog-writer

by @patricio0312revv1.0.0
4.2(6)

从Git历史自动解析提交、分类变更、标记破坏性更新,生成专业格式化的变更日志

release-managementdocumentationversion-controlautomationgitGitHub
安装方式
npx skills add patricio0312rev/skills --skill changelog-writer
compare_arrows

Before / After 效果对比

1
使用前

手动梳理提交记录、分类功能修复、撰写说明,一个版本需要1-2小时整理

使用后

自动分析Git历史并生成结构化发布说明,5分钟获得专业变更日志

description SKILL.md

changelog-writer

Changelog & Release Notes Writer

Generate professional changelogs and release notes from version control history.

Core Workflow

  • Analyze commits: Parse git history since last release

  • Categorize changes: Group by type (feat, fix, docs, etc.)

  • Identify breaking changes: Flag incompatible changes

  • Extract highlights: Surface most important changes

  • Format document: Follow Keep a Changelog format

  • Suggest version: Recommend semantic version bump

  • Generate release notes: Create user-friendly summary

Commit Analysis

Extract Information From

  • Commit messages (preferably conventional commits)

  • PR titles and descriptions

  • Issue references (#123)

  • Merge commit messages

  • Commit authors

Parse Patterns

feat(auth): add OAuth2 support
^    ^      ^
|    |      └─ Description
|    └─ Scope (optional)
└─ Type

Types to Categories:

  • feat → Added

  • fix → Fixed

  • docs → Documentation

  • style, refactor → Changed

  • perf → Performance

  • test → Testing

  • chore, ci → Internal

  • BREAKING CHANGE → Breaking Changes

Changelog Format (Keep a Changelog)

# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

### Added

- New feature X
- Support for Y

### Changed

- Updated Z behavior

### Fixed

- Resolved issue #123

## [2.1.0] - 2024-01-15

### Added

- OAuth2 authentication support
- User profile management API
- Dark mode toggle

### Changed

- Improved error messages
- Updated dependencies to latest versions

### Deprecated

- Legacy authentication method (will be removed in 3.0.0)

### Fixed

- Memory leak in WebSocket connection
- Incorrect date formatting in reports
- Race condition in concurrent requests

### Security

- Patched XSS vulnerability in user input

## [2.0.0] - 2023-12-01

### Breaking Changes

- ⚠️ Removed support for Node.js 16
- ⚠️ Changed API response format for `/users` endpoint
- ⚠️ Renamed `config.yaml` to `config.yml`

### Added

- Complete API rewrite with improved performance
- WebSocket support for real-time updates

### Migration Guide

See [MIGRATION_v2.md](./docs/MIGRATION_v2.md) for upgrade instructions.

[unreleased]: https://github.com/user/project/compare/v2.1.0...HEAD
[2.1.0]: https://github.com/user/project/compare/v2.0.0...v2.1.0
[2.0.0]: https://github.com/user/project/releases/tag/v2.0.0

Release Notes Format

# Release v2.1.0 - "Feature Release Name"

Released: January 15, 2024

## 🎉 Highlights

This release brings major improvements to authentication and user experience:

- **OAuth2 Support**: Users can now sign in with Google, GitHub, and Microsoft
- **Dark Mode**: Toggle between light and dark themes
- **Performance**: 40% faster API response times

## ✨ New Features

- OAuth2 authentication with popular providers (#456)
- User profile management API (#478)
- Dark mode toggle in settings (#492)
- Export data in CSV format (#501)

## 🐛 Bug Fixes

- Fixed memory leak in WebSocket connections (#489)
- Resolved incorrect date formatting in reports (#495)
- Fixed race condition in concurrent API requests (#503)

## 🔄 Changes

- Improved error messages across the application
- Updated all dependencies to latest stable versions
- Refined UI animations for smoother experience

## 🔒 Security

- Patched XSS vulnerability in user input validation
- Updated JWT library to address CVE-2024-1234

## 📚 Documentation

- Added OAuth2 setup guide
- Updated API reference with new endpoints
- Improved troubleshooting section

## 🙏 Contributors

Thank you to all contributors who made this release possible:

- @alice - OAuth2 implementation
- @bob - Dark mode feature
- @charlie - Bug fixes and testing

## 📦 Installation

```bash
npm install project-name@2.1.0
# or
yarn add project-name@2.1.0

## 🔗 Links

- [Full Changelog](https://github.com/user/project/compare/v2.0.0...v2.1.0)

- [Documentation](https://docs.projectname.com)

- [Migration Guide](https://github.com/patricio0312rev/skills/blob/HEAD/foundation/changelog-writer/./docs/MIGRATION_v2.md)

**Note:** This is a minor release. No breaking changes. Safe to upgrade from 2.0.x.

Semantic Versioning Rules

Given a version number MAJOR.MINOR.PATCH (e.g., 2.1.0):

  1. MAJOR (2.x.x → 3.x.x)

    • Breaking changes
    • Incompatible API changes
    • Removed features
  2. MINOR (2.1.x → 2.2.x)

    • New features
    • Backward-compatible functionality
    • Deprecated features
  3. PATCH (2.1.0 → 2.1.1)

    • Bug fixes
    • Security patches
    • Performance improvements

Special versions:

  • 0.x.x - Initial development (breaking changes allowed in minor)
  • x.y.0-alpha.1 - Pre-release
  • x.y.0-beta.2 - Beta release
  • x.y.0-rc.1 - Release candidate

Git Commands for Changelog Generation

# Get commits since last tag
git log $(git describe --tags --abbrev=0)..HEAD --oneline

# Get commits between two tags
git log v2.0.0..v2.1.0 --oneline

# Get commits with PR numbers
git log --merges --pretty=format:"%s" v2.0.0..HEAD

# Get contributors
git log v2.0.0..HEAD --format='%aN' | sort -u

# Get commit count by type
git log v2.0.0..HEAD --oneline | grep -E '^[a-f0-9]+ (feat|fix|docs)' | cut -d' ' -f2 | sort | uniq -c

Breaking Changes Detection

Look for these indicators:

  • Commit message contains BREAKING CHANGE:

  • Commit type has ! (e.g., feat!:)

  • PR labeled with "breaking-change"

  • Major dependency updates

  • API endpoint changes

  • Config file format changes

Document clearly:

### Breaking Changes

⚠️ **API Response Format Changed**

The `/api/users` endpoint now returns:

```json
// Before
{ "data": [...] }

// After
{ "users": [...], "total": 100 }

**Migration:** Update your API client to access `users` instead of `data`.

Automation Tools

Using conventional-changelog

npm install -g conventional-changelog-cli

# Generate changelog
conventional-changelog -p angular -i CHANGELOG.md -s

# Generate for specific version
conventional-changelog -p angular -i CHANGELOG.md -s -r 0

Using git-cliff

# Install git-cliff
cargo install git-cliff

# Generate changelog
git-cliff --tag v2.1.0 > CHANGELOG.md

# Generate release notes
git-cliff --tag v2.1.0 --unreleased

GitHub Release Script

#!/bin/bash
# scripts/release.sh

VERSION=$1
PREVIOUS_TAG=$(git describe --tags --abbrev=0)

# Generate release notes
gh release create "$VERSION" \
  --title "Release $VERSION" \
  --notes "$(git log $PREVIOUS_TAG..HEAD --pretty=format:'- %s')"

User-Facing vs Developer-Facing

User-Facing (Release Notes)

  • Focus on benefits and features

  • Less technical jargon

  • Include screenshots/demos

  • Highlight user experience improvements

  • Provide upgrade instructions

Developer-Facing (Changelog)

  • Technical details

  • API changes

  • Breaking changes with migration guides

  • Dependencies updates

  • Internal refactorings

Templates by Project Type

Library/Package

Focus on: API changes, breaking changes, new methods

Application

Focus on: New features, bug fixes, UI improvements

CLI Tool

Focus on: New commands, flag changes, behavior changes

API Service

Focus on: Endpoint changes, performance, security

Best Practices

  • Be specific: "Fixed login bug" → "Fixed session timeout on mobile"

  • Link issues: Reference GitHub issues (#123)

  • Credit contributors: Acknowledge work

  • Highlight impact: Mark breaking changes clearly

  • Group logically: By type, not chronologically

  • Update regularly: With each release

  • Follow conventions: Keep a Changelog format

  • Semantic versioning: Use correctly

Changelog Entry Examples

Good Examples

### Added

- OAuth2 authentication support (#456) - @alice
- Export data in CSV format with custom column selection (#501)

### Fixed

- Resolved memory leak in WebSocket connections affecting long-running sessions (#489)
- Fixed race condition in concurrent API requests that caused data inconsistency (#503)

Bad Examples

### Added

- Added stuff
- New feature

### Fixed

- Fixed bug
- Updates

Version Suggestion Algorithm

If breaking changes detected:
  MAJOR++, MINOR=0, PATCH=0
Else if new features:
  MINOR++, PATCH=0
Else if only fixes:
  PATCH++

Release Checklist

Before publishing release:

  • Review all commits since last release

  • Identify breaking changes

  • Categorize changes properly

  • Update CHANGELOG.md

  • Write release notes

  • Update version in package.json/pyproject.toml

  • Create git tag

  • Push tag to trigger CI/CD

  • Publish to package registry (npm, PyPI, etc.)

  • Create GitHub release with notes

  • Announce on relevant channels

Output Checklist

Every changelog generation should provide:

  • Formatted CHANGELOG.md following Keep a Changelog

  • Release notes draft (user-friendly)

  • Semantic version suggestion (X.Y.Z)

  • Breaking changes clearly marked

  • Migration guide for breaking changes

  • Git tag command to run

  • Links to compare view

Weekly Installs222Repositorypatricio0312rev/skillsGitHub Stars20First SeenJan 24, 2026Security AuditsGen Agent Trust HubPassSocketPassSnykPassInstalled oncodex216gemini-cli214opencode214github-copilot213amp208kimi-cli208

forum用户评价 (0)

发表评价

效果
易用性
文档
兼容性

暂无评价,来写第一条吧

统计数据

安装量337
评分4.2 / 5.0
版本1.0.0
更新日期2026年3月21日
对比案例1 组

用户评分

4.2(6)
5
0%
4
0%
3
0%
2
0%
1
0%

为此 Skill 评分

0.0

兼容平台

🔧Claude Code

时间线

创建2026年3月21日
最后更新2026年3月21日