
changelog
Generate and manage changelogs from git history. Use for release notes, tracking breaking changes, and maintaining project history.
- Installs
- 45
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/johnlindquist/claude --skill changelog- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads changelog automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Changelog Generator
Generate changelogs from git commits and manage release notes.
Prerequisites
# Git
git --version
# GitHub CLI (for release notes)
brew install gh
gh auth login
# Gemini (for AI summaries)
pip install google-generativeai
export GEMINI_API_KEY=your_api_key
CLI Reference
Git History Commands
# Recent commits
git log --oneline -20
# Since last tag
git log $(git describe --tags --abbrev=0)..HEAD --oneline
# Between tags
git log v1.0.0..v1.1.0 --oneline
# With full messages
git log v1.0.0..v1.1.0 --pretty=format:"%h %s%n%b"
# By author
git log --author="name" --oneline -10
# With dates
git log --format="%h %ad %s" --date=short
Finding Tags
# List all tags
git tag
# List tags with dates
git tag --sort=-creatordate --format='%(refname:short) %(creatordate:short)'
# Latest tag
git describe --tags --abbrev=0
# Tags matching pattern
git tag -l "v1.*"
Generating Changelogs
From Git Log
# Simple changelog since tag
git log v1.0.0..HEAD --oneline > CHANGELOG_DRAFT.md
# Categorized by conventional commits
git log v1.0.0..HEAD --oneline | grep "^[a-f0-9]* feat:"
git log v1.0.0..HEAD --oneline | grep "^[a-f0-9]* fix:"
git log v1.0.0..HEAD --oneline | grep "^[a-f0-9]* chore:"
Using GitHub CLI
# Generate release notes
gh release create v1.1.0 --generate-notes
# View release notes draft
gh release create v1.1.0 --generate-notes --notes-start-tag v1.0.0 --dry-run
# From existing release
gh release view v1.0.0
AI-Generated Changelog
# Get commits since last tag
COMMITS=$(git log $(git describe --tags --abbrev=0)..HEAD --pretty=format:"%s%n%b")
# Generate polished changelog
gemini -m pro -o text -e "" "Generate a changelog from these commits:
$COMMITS
Format as:
## [Version] - Date
### Added
- New features
### Changed
- Modifications
### Fixed
- Bug fixes
### Breaking Changes
- Any breaking changes
Write user-friendly descriptions, not raw commit messages."
Workflow Patterns
Release Preparation
#!/bin/bash
VERSION=$1
LAST_TAG=$(git describe --tags --abbrev=0)
echo "# Release $VERSION"
echo ""
echo "Changes since $LAST_TAG:"
echo ""
# Categorize commits
echo "## Features"
git log $LAST_TAG..HEAD --oneline | grep -i "feat:" | sed 's/^[a-f0-9]* feat: /- /'
echo ""
echo "## Fixes"
git log $LAST_TAG..HEAD --oneline | grep -i "fix:" | sed 's/^[a-f0-9]* fix: /- /'
echo ""
echo "## Other"
git log $LAST_TAG..HEAD --oneline | grep -v -i "feat:\|fix:" | sed 's/^[a-f0-9]* /- /'
Breaking Changes Detection
# Find breaking changes in commit messages
git log v1.0.0..HEAD --oneline | grep -i "breaking\|BREAKING"
# Find in commit bodies
git log v1.0.0..HEAD --grep="BREAKING" --pretty=format:"%h %s"
Maintaining CHANGELOG.md
Standard format (Keep a Changelog):
# Changelog
All notable changes to this project will be documented in this file.
## [Unreleased]
### Added
- New feature X
### Changed
- Updated Y
### Fixed
- Bug in Z
## [1.1.0] - 2024-01-15
### Added
- Feature A
- Feature B
### Fixed
- Issue #123
Update Script
#!/bin/bash
VERSION=$1
DATE=$(date +%Y-%m-%d)
# Generate new section
NEW_SECTION="## [$VERSION] - $DATE
$(git log $(git describe --tags --abbrev=0)..HEAD --pretty=format:"- %s")
"
# Prepend to changelog (after header)
head -7 CHANGELOG.md > CHANGELOG_NEW.md
echo "" >> CHANGELOG_NEW.md
echo "$NEW_SECTION" >> CHANGELOG_NEW.md
echo "" >> CHANGELOG_NEW.md
tail -n +8 CHANGELOG.md >> CHANGELOG_NEW.md
mv CHANGELOG_NEW.md CHANGELOG.md
Statistics
# Commits by author since tag
git shortlog -sn v1.0.0..HEAD
# Files changed
git diff --stat v1.0.0..HEAD | tail -1
# Commits per day
git log --format="%ad" --date=short v1.0.0..HEAD | sort | uniq -c
# Most changed files
git diff --stat v1.0.0..HEAD | sort -k3 -n -r | head -10
GitHub Releases
# Create release with notes
gh release create v1.1.0 --title "v1.1.0" --notes-file RELEASE_NOTES.md
# Create from tag with auto-notes
gh release create v1.1.0 --generate-notes
# Edit existing release
gh release edit v1.1.0 --notes-file UPDATED_NOTES.md
# List releases
gh release list
# Download release assets
gh release download v1.1.0
Best Practices
- Use conventional commits - Enables automatic categorization
- Tag releases - Clean boundaries for changelogs
- Write for users - Translate technical to user impact
- Note breaking changes - Prominently marked
- Include issue references - Link to related issues
- Date your releases - Clear timeline
- Keep unreleased section - Track ongoing work
FAQ
What does the changelog skill do?
Generate and manage changelogs from git history. Use for release notes, tracking breaking changes, and maintaining project history.
How do I install changelog?
Run npx skills add https://github.com/johnlindquist/claude --skill changelog in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/changelog/ (personal) or .claude/skills/changelog/ (project).
Which AI agents can use changelog?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is changelog safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains changelog?
It is published by johnlindquist in johnlindquist/claude. It has 45 recorded installs.
More from johnlindquist/claude
gemini-image
johnlindquist/claude
Analyze images using Gemini's vision capabilities. Use for image analysis, text extraction from screenshots, and visual content understanding.
memory
johnlindquist/claude
Persistent knowledge storage using basic-memory CLI. Use to save notes, search memories semantically, and build context for topics across sessions.
brainstorm
johnlindquist/claude
Generate ideas and explore possibilities with AI. Use for creative problem solving, generating alternatives, and expanding on concepts.
deepwiki
johnlindquist/claude
Query DeepWiki for repository documentation and structure. Use to understand open source projects, find API docs, and explore codebases.
Popular code quality & workflow skills
grill-me
mattpocock/skills
A relentless interview to sharpen a plan or design.
improve-codebase-architecture
mattpocock/skills
Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.
handoff
mattpocock/skills
Compact the current conversation into a handoff document for another agent to pick up.
domain-modeling
mattpocock/skills
Build and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a GLOSSARY.md, or recording or editing an ADR.
codebase-design
mattpocock/skills
Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.
diagnosing-bugs
mattpocock/skills
Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.