agentleFS
SkillMedevSkillMedev/engineering-workflow/skills/changelog-generator/SKILL.md

changelog-generator

Skill0 starsChanged 38 days agoMITView on GitHub

Generate or update a repository CHANGELOG.md in Keep a Changelog format from git history - grouping commits since the last tag into Added/Changed/Deprecated/Removed/Fixed/Security, rewriting them as user-facing entries, and recommending the semantic version bump. Use when someone asks "generate a changelog from the git log", "update CHANGELOG.md for this release", "what version bump does this release need", or "turn these commits into release notes". Do NOT use for writing benefit-first product announcement changelogs for end users from release notes - use changelog-writer instead; this skill produces the versioned CHANGELOG.md file that lives in the repo.

99 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use api-test-suite-builder, fda-consultant-specialist and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • Arnav-0Skill

    api-test-suite-builder

    Use when the user asks to generate API tests, create integration test suites, test REST endpoints, or build contract tests.

    Also in 7 projects that use this

  • Hussain-ElfalahSkill

    fda-consultant-specialist

    Also in 5 projects that use this

  • csiddhant796-blipSkill

    karpathy-coder

    Use when writing, reviewing, or committing code to enforce Karpathy's 4 coding principles — surface assumptions before coding, keep it simple, make surgical changes, define verifiable goals. Triggers on "review my diff", "check complexity", "am I overcomplicating this", "karpathy check", "before I commit", or any code quality concern where the LLM might be overcoding.

    Also in 5 projects that use this

  • Hussain-ElfalahSkill

    quality-manager-qmr

    Also in 5 projects that use this

  • csiddhant796-blipSkill

    self-eval

    Honestly evaluate AI work quality using a two-axis scoring system. Use after completing a task, code review, or work session to get an unbiased assessment. Detects score inflation, forces devil's advocate reasoning, and persists scores across sessions.

    Also in 6 projects that use this

  • ComposioHQSkill

    meeting-notes-and-actions

    Turn meeting transcripts or rough notes into crisp summaries with decisions, risks, and owner-tagged action items; use for Zoom/Meet/Teams transcripts, call notes, or long meeting chats to generate share-ready outputs.

    Also in 4 projects that use this

  • +4 more from Hussain-Elfalah

The file

We split this skill into the rules it gives an agent

8 rules. 0 are common, 8 are distinctive, and 0 are very specific to this project.

  • 0

    Common

    Most of the 93 edited versions we read keep these.

  • 8

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  • could be automatic: a setting could enforce it
  1. Distinctive:

    Drop invisible commits: Remove chores, CI tweaks, test-only changes, dependency bumps, refactors, and formatting - unless one produced a …

    line 21
  2. Distinctive:

    Do not paste commit messages verbatim - a changelog is written for the reader of the release, not the author of the commit.

    line 71
  3. Distinctive:

    Do not bury a breaking change in Changed prose.

    line 72
  4. Distinctive:

    Do not merge Security fixes into Fixed - their own section is what makes them findable.

    line 73
  5. Distinctive:

    Do not put one change in two categories.

    line 74
  6. Distinctive:

    Do not write "various improvements and bug fixes" - an entry that conveys nothing erodes trust in every future entry.

    line 75
  7. Distinctive:

    Do not backfill or reformat old released sections when appending a new one.

    line 76
  8. Distinctive:

    Every entry is one line, symptom/benefit-phrased, free of internal class and service names, with a PR link where one exists.

    line 80

“Common” is measured: kept by at least 6 in 10 of the 93 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Changelog Generator

A changelog exists so a human deciding whether to upgrade can answer "what breaks, what's fixed, what's new" in thirty seconds. The costly failure is dumping git log into a file: raw commit messages describe the code's history, not the release's meaning, and they bury the one breaking change under forty chores. This skill turns commit history into a Keep a Changelog-formatted CHANGELOG.md and a defensible version bump.

Inputs to collect

Gather before writing: the repo (or the raw log), the last released tag (git describe --tags --abbrev=0 - if there are no tags, the whole history is the first release), the existing CHANGELOG.md if any (append to its conventions rather than reformatting history), whether commits follow Conventional Commits (feat:, fix: prefixes make categorization mechanical; otherwise categorize by reading each diff's intent), and the project's versioning scheme (default: SemVer). Label any inferred categorization from an ambiguous commit as a guess for the maintainer to confirm.

Operating procedure

Order matters: categorize before writing, and decide the version last, because the bump is a function of the finished category lists.

  1. Collect the range. git log <last-tag>..HEAD --oneline --no-merges. Pull PR numbers from merge commits or squash-commit suffixes like (#123).
  2. Drop invisible commits. Remove chores, CI tweaks, test-only changes, dependency bumps, refactors, and formatting - unless one produced a user-visible result, in which case describe the result, not the work ("Reduced install size by 40%", not "Switched bundler").
  3. Categorize every surviving commit into exactly one Keep a Changelog category:
    • Added - new features and capabilities (feat:).
    • Changed - existing behavior that now works differently.
    • Deprecated - still works, will be removed; say what to use instead.
    • Removed - gone; this is breaking.
    • Fixed - bug fixes (fix:), described by the symptom the user saw.
    • Security - vulnerability fixes always get their own section, never hidden under Fixed, because scanners and humans grep for it.
  4. Rewrite each commit as a user-facing entry. One line, what changed from the consumer's perspective, ending with the PR link when available. Consumers of a library "see" the API, so API changes are user-facing here even when no end user notices.
  5. Decide the version bump from the categories, strictest rule wins: anything in Removed, or any breaking change in Changed (or a BREAKING CHANGE: footer) → major; anything in Added or Deprecated → minor; only Fixed/Security/perf → patch. Pre-1.0 projects: breaking changes bump minor, everything else patch.
  6. Assemble the file: newest version at top, ## [Unreleased] section always present (and emptied into the new release section when cutting one), categories ordered Added > Changed > Deprecated > Removed > Fixed > Security, ISO dates.
  7. Flag what you dropped. List the commits excluded as internal-only so the maintainer can confirm nothing user-facing was lost.

Format

# Changelog

All notable changes to this project are documented in this file,
following the Keep a Changelog format and Semantic Versioning.

## [Unreleased]

## [1.2.0] - 2026-06-15
### Added
- Export reports as CSV in addition to PDF (#123)
### Changed
- Session timeout is now configurable; the default remains 30 minutes (#127)
### Deprecated
- `client.fetchAll()` - use `client.list({ paginate: true })` instead; removal planned for the next major (#130)
### Fixed
- Exporting an empty report no longer fails with a blank error page (#125)
### Security
- Upgraded the JWT library to patch a signature-bypass vulnerability (#131)

Worked contrast - translating a commit

Commit: fix: handle NPE in ExportService when rows==0 (#125)

Bad entry: - fix: handle NPE in ExportService when rows==0 (#125) - internal class name, internal jargon, describes the code, tells an upgrader nothing.

Good entry: - Exporting an empty report no longer fails with a blank error page (#125) - the symptom the user hit, in their vocabulary, with the reference preserved.

Deliverable

Produce: the updated CHANGELOG.md section (or full file for a first release) in the exact format above, the recommended version number with the one-line rule that justifies it ("Removed section non-empty → major"), and the list of dropped internal-only commits for confirmation.

Do NOT

  • Do not paste commit messages verbatim - a changelog is written for the reader of the release, not the author of the commit.
  • Do not bury a breaking change in Changed prose; breaking changes lead their section and force the major bump.
  • Do not merge Security fixes into Fixed - their own section is what makes them findable.
  • Do not put one change in two categories; pick the one that matches how a consumer experiences it.
  • Do not write "various improvements and bug fixes" - an entry that conveys nothing erodes trust in every future entry.
  • Do not backfill or reformat old released sections when appending a new one; released history is immutable.

Quality bar

  • Every entry is one line, symptom/benefit-phrased, free of internal class and service names, with a PR link where one exists.
  • Categories appear in the canonical order and none is empty (omit empty sections).
  • The version bump follows mechanically from the categories, and the justification names the triggering rule.
  • [Unreleased] exists at the top of the file after the update.
  • The dropped-commit list is included, so the maintainer can audit the cut in under a minute.

Hand off adjacent jobs: for a marketing-facing announcement version of the same release, route to changelog-writer; the semantic-version decision for API surface changes can be sanity-checked with api-versioning-strategist.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.