Skip to content
Development
Skill

/changelog-generator

智能变更日志生成器 - 自动分析Git提交历史,生成符合规范的CHANGELOG.md。支持语义化版本管理、多种输出格式、增量更新和GitHub/GitLab集成。

From plugin
ai-agent-team
42012 skills7 agents11 commands
Install
$ npx -y skills add peterfei/ai-agent-team --skill changelog-generator --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/changelog-generator

Context preview

The summary Claude sees to decide when to auto-load this skill.

智能变更日志生成器 - 自动分析Git提交历史,生成符合规范的CHANGELOG.md。支持语义化版本管理、多种输出格式、增量更新和GitHub/GitLab集成。

SKILL.md

changelog-generator.SKILL.md
name: changelog-generator
description: "智能变更日志生成器 - 自动分析Git提交历史,生成符合规范的CHANGELOG.md。支持语义化版本管理、多种输出格式、增量更新和GitHub/GitLab集成。"
license: MIT

changelog-generator - 智能变更日志生成器

概述

当用户需要生成或更新 CHANGELOG 时,此 skill 会自动完成以下流程: 1. 分析 Git 提交历史 2. 根据 Conventional Commits 规范解析提交 3. 智能分类和组织变更 4. 生成符合 Keep a Changelog 标准的 CHANGELOG.md 5. 支持版本发布和增量更新

支持的触发指令

用户可以通过以下方式触发此 skill:

  • "changelog" - 简易触发词
  • "变更日志" - 简易触发词
  • "帮我生成 CHANGELOG" - 生成完整的 CHANGELOG
  • "更新 CHANGELOG" - 增量更新 CHANGELOG
  • "发布新版本" - 发布正式版本
  • "初始化 changelog 配置" - 创建配置文件

工作流程

步骤 1: 初始化配置(首次使用)

**命令**:

cd ~/.claude/skills/changelog-generator
npm install

# 在项目目录中初始化配置
cd /path/to/your/project
changelog-generate init

**配置文件**: `.changelogrc.json`

交互式配置会询问:

  • 当前版本号
  • 语言选择(中文/英文)
  • 是否使用 emoji
  • 是否显示作者信息

步骤 2: 生成 CHANGELOG

**场景 A: 首次生成完整 CHANGELOG**

# 生成所有历史提交的 CHANGELOG
changelog-generate generate --all

# 生成指定范围的 CHANGELOG
changelog-generate generate --from v1.0.0 --to v2.0.0

**场景 B: 增量更新 CHANGELOG**

# 更新 [Unreleased] 区域
changelog-generate update

# 从指定标签开始更新
changelog-generate update --from v2.0.0

**场景 C: 发布新版本**

# 自动确定版本号(交互式)
changelog-generate release

# 手动指定版本号
changelog-generate release --version 2.1.0

# 指定日期
changelog-generate release --version 2.1.0 --date 2023-11-10

步骤 3: 输出文件

**默认输出路径**: `./CHANGELOG.md`

**生成的 CHANGELOG 示例**:

# Changelog

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

## [Unreleased]

## [2.0.0] - 2023-11-10

### 💥 BREAKING CHANGES

- **api:** Remove deprecated v1 endpoints (#123)

### ✨ Features

- **auth:** Add JWT authentication (#120)
- **api:** Add user profile endpoint (#121)

### 🐛 Bug Fixes

- **ui:** Fix button alignment issue (#122)

### 📝 Documentation

- Update API documentation

## [1.0.0] - 2023-10-01

...

核心功能

1. 智能提交解析

支持 Conventional Commits 规范:

feat(auth): add login functionality
^    ^      ^
type scope  subject

BREAKING CHANGE: Remove old auth API

**支持的提交类型**:

  • `feat`: ✨ Features
  • `fix`: 🐛 Bug Fixes
  • `docs`: 📝 Documentation
  • `style`: 💄 Styles (可隐藏)
  • `refactor`: ♻️ Code Refactoring
  • `perf`: ⚡ Performance
  • `test`: ✅ Tests
  • `build`: 📦 Build System
  • `ci`: 👷 CI/CD
  • `chore`: 🔧 Chores (可隐藏)

2. 自动版本管理

根据提交类型自动确定版本号:

| 提交类型 | 版本影响 | 示例 | |---------|---------|------| | BREAKING CHANGE | Major | 1.0.0 → 2.0.0 | | feat | Minor | 1.0.0 → 1.1.0 | | fix | Patch | 1.0.0 → 1.0.1 |

3. PR 和 Issue 引用

自动识别和链接:

feat: add new feature (#123)
fix: resolve bug (fixes #456)

生成链接:

- **feat:** add new feature ([#123](https://github.com/user/repo/pull/123))

4. 破坏性变更检测

两种检测方式:

**方式 1**: 使用 `BREAKING CHANGE` footer

feat: add new API

BREAKING CHANGE: Old API is removed

**方式 2**: 使用 "!" (感叹号) 标记

feat!: remove deprecated method

配置选项

完整配置示例

{
  "version": "1.0.0",
  "format": "keepachangelog",
  "language": "zh-CN",

  "display": {
    "emoji": true,
    "groupByType": true,
    "showAuthor": true,
    "showPR": true,
    "showIssue": true
  },

  "types": [
    { "type": "feat", "section": "Features", "emoji": "✨" },
    { "type": "fix", "section": "Bug Fixes", "emoji": "🐛" },
    { "type": "chore", "hidden": true }
  ],

  "exclude": {
    "types": ["style", "chore"],
    "scopes": ["deps"]
  }
}

使用场景

场景 1: 新项目首次生成

# 1. 初始化配置
changelog-generate init

# 2. 生成 CHANGELOG
changelog-generate generate --all

# 输出: CHANGELOG.md 包含所有历史提交

场景 2: 日常开发增量更新

# 在每次 PR 合并后或定期更新
git pull
changelog-generate update

# 查看 [Unreleased] 的内容
changelog-generate preview

场景 3: 发布新版本

# 1. 更新 CHANGELOG
changelog-generate update

# 2. 预览将要发布的内容
changelog-generate preview

# 3. 发布版本
changelog-generate release

# 4. 提交和推送
git add CHANGELOG.md
git commit -m "chore(release): 2.0.0"
git tag v2.0.0
git push && git push --tags

场景 4: CI/CD 自动化

**GitHub Actions**:

name: Update Changelog

on:
  push:
    branches: [main]

jobs:
  changelog:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
        with:
          fetch-depth: 0

      - name: Update Changelog
        run: |
          npm install -g changelog-generate
          changelog-generate update

      - name: Commit
        run: |
          git config user.name "github-actions[bot]"
          git config user.email "github-actions[bot]@users.noreply.github.com"
          git add CHANGELOG.md
          git commit -m "docs: update changelog" || true
          git push

CLI 命令参考

`init` - 初始化配置

changelog-generate init

交互式创建 `.changelogrc.json` 配置文件。

`generate` - 生成 CHANGELOG

changelog-generate generate [options]

Options:
  -f, --from <tag>    起始标签
  -t, --to <tag>      结束标签 (默认: HEAD)
  -o, --output <file> 输出文件 (默认: CHANGELOG.md)
  --all               包含所有历史提交

`update` - 增量更新

changelog-generate update [options]

Options:
  -f, --from <tag>    起始标签(默认为最新标签)
  -o, --output <file> CHANGELOG 文件 (默认: CHANGELOG.md)

`release` - 发布版本

changelog-generate release [options]

Options:
  -v, --version <version> 版本号
  -d, --date <date>       发布日期
  -o, --output <file>     CHANGELOG 文件

`preview` - 预览 Unreleased

changelog-generate preview

显示 [Unreleased] 区域的内容。

最佳实践

1. 规范的 Commit Message

使用 Conventional Commits 规范:

# 好的示例
git commit -m "feat(auth): add OAuth2 support"
git commit -m "fix(ui): resolve button alignment issue"
git commit -m "docs: update installation guide"

# 避免的示例
git commit -m "update code"
git commit -m "fix bug"
git commit -m "wip"

2. 使用 Commitlint

安装 commitlint 检查提交消息:

npm install --save-dev @commitlint/cli @commitlint/config-conventional

配置 `.commitlintrc.json`:

{
  "extends": ["@commitlint/config-conventional"]
}

3. Git Hooks 自动化

使用 husky 在提交时检查:

npm install --save-dev husky

# .husky/commit-msg
Read more
Ships withai-agent-team

💛 Sponsored by DolOffer — GPT & Claude 正版会员充值,输入优惠码 AI8888 享9折特惠 🚀 拥有24/7专业AI开发团队:产品经理、全栈开发、前端开发、后端开发、测试工程师、DevOps工程师、技术负责人 💾 Thread Manager 让 AI 拥有记忆! 语义搜索 | 任务线程管理 | 完整上下文恢复 | 自动 Git 版本控制 ⚡ 只需 3 步完成安装 → 马上开始使用!

Get the whole plugin