How this skill is triggered — by the user, by Claude, or both
Slash command
/my-claude-skills:keep-a-changelogThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
---
Manage CHANGELOG.md files following the Keep a Changelog 1.1.0 format.
The file is named CHANGELOG.md at the project root. Structure:
# Changelog with introductory blurb referencing Keep a Changelog and SemVer## [Unreleased] — always present at top, collects pending changes## [X.Y.Z] - YYYY-MM-DD — reverse chronological order### Added — new features### Changed — changes in existing functionality### Deprecated — soon-to-be removed features### Removed — now removed features### Fixed — bug fixes### Security — vulnerability fixesFor the complete format specification and templates, consult references/format-spec.md.
Create CHANGELOG.md at the project root. Include:
# Changelog heading## [Unreleased] section (empty or with initial entries)Detect the repository's remote URL and tagging convention (e.g., v1.0.0 vs 1.0.0) from git to generate correct comparison links. If no git remote exists, use placeholder URLs and note them.
Add entries under ## [Unreleased] in the appropriate category subsection.
CHANGELOG.md[Unreleased] if it doesn't exist yet — maintain standard category order- Description of change (commit_hash)(abc1234, def5678). Use git log to find the right commit.When the user doesn't specify a category, infer it from context:
If ambiguous, prompt for clarification.
Move [Unreleased] entries into a new version section.
CHANGELOG.md## [X.Y.Z] - YYYY-MM-DD using today's date[Unreleased] into the new version section## [Unreleased] empty (with no category subsections)[Unreleased] and the previous latest version[Unreleased] link to compare new version tag to HEADCheck CHANGELOG.md for format compliance. Report issues:
# Changelog heading## [Unreleased] section## [X.Y.Z] - YYYY-MM-DD)- Report findings as a checklist with pass/fail indicators. Offer to fix any issues found.
A changelog is for humans, not machines. Every entry must be written from the user's perspective, describing what changed for them — not what happened in the code.
When deriving entries from git history, never paste commit messages verbatim. Rewrite them:
BAD: fix: correct Rule 5 (Big X smushing) string literals in smush-char (commit message)
GOOD: Incorrect horizontal smushing with Big X (Rule 5) (user-visible bug)
BAD: feat: use par-each for faster font showcase rendering (implementation detail)
GOOD: (omit — internal optimization, not user-facing)
BAD: Rename setup → setup-fonts, make compile private (code-level refactor)
GOOD: Rename \setup` to `setup-fonts`` (only the part the user sees)
If several commits contribute to one feature, write one entry:
ANSI color and gradient support with named presetsThe first release (0.0.1, 1.0.0, etc.) is all new — nothing was "fixed" or "changed" from the user's perspective. Use only ### Added.
[Unreleased] section, even if emptyYYYY-MM-DD)## [X.Y.Z] - YYYY-MM-DD [YANKED]For the complete format specification, file template, comparison link rules, and entry formatting guidelines, consult:
references/format-spec.md — Full Keep a Changelog 1.1.0 specification with templatesnpx claudepluginhub maxim-uvarov/my-claude-skills --plugin my-claude-skillsCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.