skills/keep-a-changelog/SKILL.md
Maintain CHANGELOG.md in Keep a Changelog format by updating Unreleased and version sections with user-relevant changes.
npx skillsauth add morzecrew/agent-skills keep-a-changelogInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill helps keep CHANGELOG.md accurate, current, and user-focused following Keep a Changelog format.
It is intended for maintaining changelog entries as the product evolves.
The agent helps update ## [Unreleased] and, when explicitly asked, prepare version sections in the changelog.
The human remains responsible for deciding when and how to cut a release.
CHANGELOG.md## [Unreleased]CHANGELOG.md should be updatedAdded, Changed, Deprecated, Removed, Fixed, SecurityUnreleased notes into a versioned changelog sectionCHANGELOG.mdCHANGELOG.md does not follow Keep a Changelog structureThe changelog must include only user-relevant product changes.
For this repository, that generally means:
src/The changelog must NOT include:
tests/)If a change does not affect how users import, use, or install the library, it should generally be excluded from the changelog.
Only include changes that are meaningful to library consumers.
Do not include:
CHANGELOG.md must remain in this structure:
## [Unreleased]
### Added### Changed### Deprecated### Removed### Fixed### Security## [X.Y.Z] - YYYY-MM-DD[unreleased]: ..., [0.1.1]: ...)The six categories above are the baseline. Additional semantic sections MAY be
introduced when a change does not fit the basics (for example a dedicated
### Security callout, or another clearly-named category). Add them only when
they improve clarity; do not invent categories for changes that already fit.
Important:
Do not add or modify bottom reference links unless explicitly asked.
# wrong
- Something
- Something 2
# right
- Something
- Something 2
`like_this`) as sparingly as
possible — only for an essential identifier such as a symbol or flag. Prefer
plain prose.Use these types as defined by Keep a Changelog:
Additional rules:
UnreleasedWhen the user says "update changelog", "add to changelog", or provides a list of changes:
## [Unreleased].## [Unreleased] blockCHANGELOG.mdWhen the user explicitly asks to convert current changelog notes into a versioned section:
Use the target version X.Y.Z.
Use today's date in YYYY-MM-DD using the user's timezone.
Create a new section directly under Unreleased:
## [X.Y.Z] - YYYY-MM-DD
Move content from ## [Unreleased] into that new version section:
Reset ## [Unreleased] categories back to placeholder state (- ...)
Do not edit reference links at the bottom unless explicitly asked
Output the proposed changelog edits as a diff or updated blocks
When updating the changelog, always produce:
CHANGELOG.md changes (diff or updated sections)CHANGELOG.md currenttesting
Write, polish, review, or align documentation pages to a consistent, production-grade standard using the altitude model (a deliberate high-level to low-level descent), Diátaxis-based page contracts, a shared consistency layer, and a ship rubric. Use when creating, revising, reviewing, or aligning documentation pages, or when deciding where new doc content belongs.
development
Write consistent Python docstrings using reST roles for cross-references. Use when writing or updating docstrings, documenting Python code, or when the user mentions docstrings, reST, Sphinx, or API documentation.
development
Write consistent Python docstrings in Google style with typed sections. Use when writing or updating docstrings, documenting Python code, or when the user mentions docstrings, Google style, Napoleon, or API documentation.
development
Format git commit messages and Pull Request titles using Conventional Commits with a deterministic gitmoji prefix. Use when generating or suggesting commit messages, PR titles, or when the user says "commit this", "create PR", "write a commit", "prepare PR", or similar.