Skip to main content
Alison Aquinas logoAlison's LLM Skills Marketplace

changelog

Included in skill bundleshared-skillsView on GitHub ↗

Files

SKILL.mdagentsreferencesscripts

Install

Install only this skill with npx skills
npx skills add alisonaquinas/llm-shared-skills --skill 'changelog' -g -y
Install the containing skill bundle
/plugin install shared-skills@llm-skills
Download changelog-skill.zip
This skill is bundled inside shared-skills. Use npx skills when you only want this skill, or install the bundle once to make every included skill available through the plugin marketplace flow. Browse the full skill bundle repository at github.com/alisonaquinas/llm-shared-skills.

Invoke

Invoke this skill after installation
/shared-skills:changelog

SKILL.md


name: changelog description: > Maintain CHANGELOG.md files following the Keep a Changelog format with structured Unreleased entries, typed changes, and semver release workflow. Use when the agent needs to add entries, cut a release, fix formatting violations, or guide a project to adopt the standard.

Changelog Skill

Maintain CHANGELOG.md files in a consistent, user-friendly format that tracks project evolution without relying on git logs. Helps add entries under the correct type, run release workflows, and avoid common anti-patterns.


Intent Router

Load the relevant reference file when you need depth on a specific domain.

TopicFileLoad when...
Format spec & entry typesreferences/cheatsheet.mdUnsure about entry types, section headers, or version format
Tools (git-cliff install)references/install-and-setup.mdUser wants optional tooling or help installing git-cliff
Release automationreferences/advanced-usage.mdIntegrating changelog into CI/CD, automating generation, mono-repos
Common mistakes & fixesreferences/troubleshooting.mdEntries are vague, git log is being used as a changelog, validation issues

Quick Start

  1. Locate the CHANGELOG.md in the project root. If it doesn't exist, note that one needs creating.
  2. Check the preamble — it should cite Keep a Changelog and Semantic Versioning.
  3. Confirm the [Unreleased] section exists at the top after the preamble — this is where new entries go.
  4. Add or update entries under the correct type (Added, Changed, Deprecated, Removed, Fixed, Security).
  5. When cutting a release, rename [Unreleased] to [x.y.z] - YYYY-MM-DD, add a blank [Unreleased] section, and update compare links.

Core Workflow

Adding an Entry

All entries go under [Unreleased], under the appropriate type heading:

## [Unreleased]

### Added
- New feature description

### Fixed
- Bug fix description

Entry types (from most to least common):

  • Added — new features, new dependencies
  • Changed — behavior changes, improvements to existing features
  • Deprecated — features marked for removal in a future version
  • Removed — deleted features or dependencies
  • Fixed — bug fixes and patches
  • Security — security vulnerabilities and fixes

Write entries from a user perspective. Not "rewrote the parser" but "improved parsing speed by 40% for large files."

Cutting a Release

When releasing version x.y.z:

  1. Rename ## [Unreleased] to ## [x.y.z] - YYYY-MM-DD (use ISO 8601 date).

  2. Add a blank ## [Unreleased] section at the top.

  3. Update or add the compare link at the bottom:

    [x.y.z]: https://github.com/user/repo/compare/v[old-version]...v[x.y.z]
    [Unreleased]: https://github.com/user/repo/compare/v[x.y.z]...HEAD
    
  4. Create a git commit with the new version.

  5. Tag the commit: git tag v[x.y.z].


Quick Command Reference

# ── Inspect the changelog ───────────────────────────────────────────────────
cat CHANGELOG.md | head -30          # view preamble and Unreleased section
grep "^##" CHANGELOG.md             # list all version headers
grep "###" CHANGELOG.md             # list all entry types

# ── Write a good entry ──────────────────────────────────────────────────────
# Bad:  "fixed bug"
# Good: "fixed null pointer crash in session handler when user logs out"
# Rule: Complete sentence, user-facing wording, specific not vague

# ── Optional: Generate changelog from git log ───────────────────────────────
git log --oneline --no-decorate v1.0.0..HEAD
# Then manually categorize into Added/Changed/Fixed/etc. and rewrite for users

# ── Optional: Use git-cliff to generate or update entries ────────────────────
git-cliff --config cliff.toml             # generate based on commit messages
git-cliff --tag v1.2.3 --output CHANGELOG.md  # cut a release

# ── Validate the file ────────────────────────────────────────────────────────
# Verify [Unreleased] section exists, all versions have dates, compare links work
head -20 CHANGELOG.md && tail -10 CHANGELOG.md

Safety Notes

RuleWhyHow to avoid
Don't use git log as a changelogGit logs are for developers; changelogs are for usersManually curate entries; rewrite git messages for end users
Always keep [Unreleased] at topNew entries have nowhere to go without itAdd blank [Unreleased] after every release
Use ISO 8601 datesVersion 1.0.0 - March 9, 2026 is ambiguous; 1.0.0 - 2026-03-09 is notEnforce YYYY-MM-DD format
Never delete old versionsHistory matters; users need contextKeep all versions; use ## [x.y.z] - YYYY-MM-DD (YANKED) for broken releases
Ensure compare links point to real diffsBroken links confuse usersDouble-check GitHub/GitLab compare URLs before committing
Categorize correctlyA vague "Fixed: stuff" wastes reader timeLoad the cheatsheet and check entry-type definitions

Source Policy

The canonical references are:

  • Keep a Changelog — format, entry types, versioning
  • Semantic Versioning — version semantics (MAJOR.MINOR.PATCH rules)
  • git-cliff (optional) — automated changelog generation from commit messages

Resource Index

Scripts

FilePurposePlatform
scripts/install.shCheck or install git-cliff (optional)Bash (macOS, Linux)
scripts/install.ps1Check or install git-cliff (optional)PowerShell (Windows, macOS, Linux)

Both scripts are optional helpers. The skill works without any tools installed.

← Back to marketplace