跳到主要内容
知仓学习社ZHICANG

changelog-generator

Convert a git log, commit list, or release notes into a polished, user-facing changelog. Use when writing release notes, generating a CHANGELOG.md e…

不碰外部(只输出文字)无严重或高危命中mohitagw15856/pm-claude-skills

它会碰到什么

扫了多少1 个文本文件,6 KB
它会碰到什么不碰外部(只输出文字)
命中总数0 处
命中统计严重 0 · 高 0 · 中 0 · 低 0

这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。

技能内容

Changelog Generator Skill

Converts raw git commits, a diff summary, or developer release notes into a polished changelog entry — categorised, user-facing, and following Keep a Changelog conventions.

Required Inputs

Ask for these if not provided:

  • Commits or release notes (paste git log --oneline, raw commit messages, or a description of what changed)
  • Version number (e.g. 2.4.0, v1.0.0-beta.2)
  • Release date (or "today")
  • Audience (developers using an API / end users of a product / internal team — affects language)
  • Any breaking changes (flag these explicitly if known)
  • Previous version behaviour (optional — paste the previous changelog entry or describe what is changing; needed for accurate "Changed" entries)
  • Scope (whole product / specific package or module — e.g. "payments SDK only", "iOS app", "all services")

Output Format

Follow Keep a Changelog format:


[X.Y.Z] — YYYY-MM-DD

Breaking Changes ⚠️

[Only include if there are breaking changes]

  • [Breaking change]: [What changed and what it breaks]
  • Migration required: [Specific action the user must take]

Added

  • [New feature or capability, written from the user's perspective]
  • [Another addition]

Changed

  • [Changed behaviour — what it did before vs. what it does now]
  • [Performance improvement with measurable impact if known]

Fixed

  • [Bug fixed — describe what was broken, not the fix implementation]
  • [Another fix]

Deprecated

  • [Deprecated thing] — use [replacement] instead. Will be removed in [version].

Removed

  • [Removed thing] — was deprecated in [version]

Security

  • [Security fix — describe the vulnerability class, not exploit details]


> Skill guidance — do not include the following section in the delivered changelog:

Formatting Rules Applied

Language: Write for the reader, not the committer. "Add dark mode support" not "implement ThemeProvider with dark palette variant".

Breaking changes: Always call these out first with ⚠️. Include a migration path.

Bug fixes: Describe what was broken, not what was changed. "Fix crash when user has no profile picture" not "null-check avatar URL before rendering".

Granularity: Group related commits into one line. Don't list every micro-commit separately.

Tone: Active voice, imperative mood. "Add", "Fix", "Remove" — not "Added", "Fixed", "Removed".

Empty sections: Omit any section with no entries. Don't include empty ### Fixed blocks.

Scoring Rubric (0–40)

Score any output of this skill before handing it over; 32+ is ship-quality.

| Dimension | 0 | 5 | 10 |

|---|---|---|---|

| Reader-facing translation | Entries restate commit messages, with internal identifiers and implementation details | Mostly user-facing, but a few entries leak internals or describe the patch rather than what was broken | Every entry describes the change from the reader's perspective — what changed for them, never how the code was refactored |

| Breaking-change handling | Breaking changes buried mid-list or missing a migration path | Flagged at the top, but migration guidance is vague ("update your code") | At the top with ⚠️, each with a specific migration action the user can execute |

| Curation & grouping | Every micro-commit listed; internal-only commits included | Some grouping, but related commits still appear as separate entries or noise slips through | Related commits grouped into single entries; internal-only commits excluded; nothing a user can't observe |

| Format discipline | Wrong or missing version/date header; past-tense verbs; empty sections left in | Header correct but tense or empty-section slips remain | Keep a Changelog conventions throughout — correct header, imperative mood, only populated sections |

Quality Checks

  • [ ] Breaking changes are at the top with migration instructions
  • [ ] All entries are user-facing language (no internal variable names or implementation details)
  • [ ] Related commits are grouped into single entries (not listed individually)
  • [ ] Version and date header is correct
  • [ ] Empty sections are omitted
  • [ ] No entries start with past-tense verbs (no "Added", "Fixed", "Removed" — use "Add", "Fix", "Remove")
  • [ ] Every breaking change entry includes a specific migration action (not just "update your code")

Anti-Patterns

  • [ ] Do not include implementation details in changelog entries — users need to know what changed for them, not how the code was refactored internally
  • [ ] Do not list every micro-commit as a separate entry — related commits should be grouped into one user-facing change
  • [ ] Do not omit the migration path for breaking changes — a breaking change entry without a specific migration action forces users to read the source code
  • [ ] Do not include empty sections — a "### Fixed" section with no entries signals the template was filled in carelessly
  • [ ] Do not write breaking changes in the same casual tone as minor additions — breaking changes must be visually prominent and call out migration requirements explicitly

Usage Examples

  • "Write a changelog for version [X]" + [paste commits]
  • "Generate release notes from these commits"
  • "Turn this git log into a CHANGELOG entry"
  • "Write the CHANGELOG.md update for this release"
  • "What changed in this release?" + [paste commit list]

想直接用这个技能?

本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。

同名技能的其他版本

有 4 个不同仓库或目录里都有叫 changelog-generator 的技能。它们内容并不相同,别混用: