
Changelog
This automates the tedious part of keeping CHANGELOG.md current by pulling commits since your last release and formatting them into proper changelog entries. It finds your latest tag, grabs all commits since then, and writes them into the Unreleased section with linked hashes and one-line summaries. It even tries to detect and link to PRs instead of raw commits when it can. The format is opinionated but sensible: one commit, one line, no fluff. If you maintain a keepachangelog-style file and want to stop manually copy-pasting git log output before every release, this handles the grunt work and lets you focus on editing the lines that actually matter.
- GitHub stars
- 1.3K
- last updated
- Jun 11, 2026
Install
$ npx -y skills add codeaholicguy/ai-devkit --skill changelog --agent claude-codeInstalls into .claude/skills of the current project.
Files
Changelog
Update the top Unreleased list in CHANGELOG.md from commits after the latest release.
Workflow
- Find the latest release base:
- Prefer the latest reachable tag:
git describe --tags --abbrev=0. - If there are no tags, search recent history for a release commit and use that hash.
- Prefer the latest reachable tag:
- Get commits:
git log <base>..HEAD --reverse --format='%H%x09%s'. - Derive the GitHub repo URL from
git remote get-url origin. - For each commit, add one concise changelog line:
- Format:
- [<short-hash>](<url>) <one-line summary> - If the commit clearly relates to a PR, link the hash to the PR URL instead of the commit URL.
- Detect PRs from subjects like
(#123), merge commits, orgh pr list --search <hash> --state all --json number,url.
- Format:
- Insert the new lines into the top
Unreleasedsection/list inCHANGELOG.md.- If no
Unreleasedsection exists, create one at the top. - Do not create a dated release heading unless the user asks for a release.
- If no
Rules
Sponsors
Details
- Repository
- github.com/codeaholicguy/ai-devkit
- Categories
- Git & Pull Requests, AI & Agent Building, Release Management
- First seen
- Jun 11, 2026