Skip to content
Back to skills

Changelog Pro

ASecurity

Maintain changelogs users actually read: Keep-a-Changelog format, automation, and release-note craft. Use when writing changelogs or automating release notes.

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 29, 2026
ai-agentsrustgogitapisecurity

Works with

  • cli
  • api

Security analysis

A100/100

Scanned September 29, 2026

npx -y skills add aicodedecode/awesome-muse-skills --skill changelog-pro --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Changelog Pro?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Changelog Pro
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/aicodedecode-changelog-pro/badge)](https://www.skillsdirectory.com/skills/aicodedecode-changelog-pro)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: changelog-pro
description: Maintain changelogs users actually read: Keep-a-Changelog format, automation, and release-note craft. Use when writing changelogs or automating release notes.
category: development
---

# Changelog Pro

## Overview

A changelog is **the human-readable story of what changed and why it matters** — distinct from git
history (for developers) and marketing (for prospects). Done well, it builds trust: users can see
what's new, what's fixed, and what might break them. This skill covers the Keep-a-Changelog
discipline, writing entries users care about, and automating generation without producing robotic
noise.

The through-line: changelogs are for humans — write what changed from the *user's* perspective, in
language they'll understand.

## When to use

- Writing changelog entries for a release.
- Setting up changelog conventions (Keep-a-Changelog, changesets).
- Automating release notes from commits or PRs.
- Reviewing changelogs for clarity and completeness.
- Deciding what belongs in a changelog vs git history.

## Core concepts

- **Keep-a-Changelog format.** `CHANGELOG.md` with `## [Unreleased]` at top, version sections with
  dates, and categorized entries: Added / Changed / Deprecated / Removed / Fixed / Security.
  Reverse-chronological, one file, human-written summaries — the de facto standard for a reason.
- **User perspective, always.** "Fixed: checkout no longer double-charges on retry" — not
  "refactored payment idempotency layer." Users care about behavior change, not implementation.
  Write the *impact*, link the detail (PR/issue) for the curious.
- **Breaking changes, loudly.** A dedicated, unmissable section at the top of the release:
  what breaks, who it affects, and exactly how to migrate (before/after code). Breaking changes
  buried in "Changed" erode trust permanently.
- **The Unreleased section.** Every PR that changes behavior adds an entry under `## [Unreleased]`
  *in the same PR*. Release time = rename the section + date. No archaeology, no forgotten entries.
- **Automation with judgment.** Generate drafts from conventional commits or PR titles, but
  *curate* before publishing — raw commit logs are noise ("fix typo", "wip"). Changesets
  (per-PR change descriptions) produce the best automated changelogs because humans write the
  entries at change time.
- **Version links and dates.** `[1.2.0] - 2026-09-26` with link definitions to diffs/tags at the
  bottom. Dates matter (users correlate with their issues); diff links serve the deeply curious.

## Practical workflow

1. **Adopt the format.** `CHANGELOG.md` at repo root, Keep-a-Changelog structure, `## [Unreleased]`
   section live from day one. Add "changelog entry" to the PR template checklist.
2. **Write entries per PR.** In the same PR as the change: one bullet under Unreleased, categorized,
   user-perspective language, PR/issue link. Small habit, huge payoff.
3. **Curate at release.** Read the Unreleased section as a user: reorder by importance, merge
   related bullets, elevate breaking changes to the top with migration guides, cut internal noise.
4. **Publish consistently.** Changelog updated in the release commit; release notes (GitHub
   releases) mirror or link it; announce breaking changes through every channel users watch.
5. **Automate the draft.** Conventional commits → generated draft, or changesets → compiled notes;
   human curates. Never ship raw generated logs as the changelog.
6. **Maintain the discipline.** Review changelog entries in PR review like code; reject "various
   fixes" entries; keep the format consistent across releases.

Example entries:

```markdown
## [Unreleased]

## [2.4.0] - 2026-09-26

### ⚠️ Breaking changes
- **API:** `POST /orders` now requires `idempotency_key` (was optional).
  Migration: generate a UUID per order attempt client-side; see #1234.
  Affects: all API consumers creating orders.

### Added
- Checkout now supports saved payment methods (#1230)
- Webhook event `refund.processed` for refund status tracking (#1228)

### Fixed
- Double charges when "Place order" was tapped twice quickly (#1224)
- Order list pagination skipping items when new orders arrived (#1219)

### Security
- Rate limiting added to password-reset endpoint (abuse prevention) (#1221)
```

## Common pitfalls

- **Git log as changelog.** Dumping commit messages ("fix stuff", "wip", "address review
  feedback") — noise that teaches users to never read it. Curate for humans.
- **Developer perspective.** "Refactored auth middleware" means nothing to users. Translate to
  impact: "Sign-in is now 40% faster" or omit if truly internal.
- **Missing breaking changes.** Or burying them. Breaking changes are the highest-value changelog
  content — prominent, with migration paths. Users plan upgrades around them.
- **Stale or missing Unreleased.** Entries written at release time from memory — incomplete and
  wrong. Per-PR entries under Unreleased, enforced by checklist/review.
- **"Various bug fixes."** The entry that says nothing. Each fix gets its specific bullet, or the
  changelog isn't doing its job.
- **No dates or versions.** Undated sections, missing version links — users can't correlate
  releases with their experience. Date every release; link every version.
- **Changelog vs release notes confusion.** The changelog is the durable record (in the repo);
  release notes are the announcement (can link it). Keep the changelog canonical; don't maintain
  two divergent sources.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…