From git
Analyze git changes and update CHANGELOG.md with new features, fixes, breaking changes, and other relevant entries following Keep a Changelog format
How this skill is triggered — by the user, by Claude, or both
Slash command
/git:update-changelogExploreThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Intelligently analyze git changes since the last CHANGELOG update and add appropriate entries following the Keep a Changelog format.
Intelligently analyze git changes since the last CHANGELOG update and add appropriate entries following the Keep a Changelog format.
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
### Added
- New feature descriptions
### Changed
- Changes to existing functionality
### Deprecated
- Soon-to-be removed features
### Removed
- Removed features
### Fixed
- Bug fixes
### Security
- Security fixes and improvements
## [1.0.0] - 2024-01-30
### Added
- Initial release
New features or capabilities that users can now use.
Examples:
--verbose flag to CLIChanges to existing functionality that alter behavior but don't break compatibility.
Examples:
Features that still work but will be removed in a future version.
Examples:
getUser() in favor of fetchUser()--old-flag CLI optionFeatures or functionality that have been removed (breaking change).
Examples:
oldMethod() functionBug fixes that restore intended functionality.
Examples:
Security fixes, vulnerability patches, or security-related improvements.
Examples:
# Check for CHANGELOG.md
ls -la CHANGELOG.md 2>/dev/null
# Also check common alternatives
ls -la CHANGELOG 2>/dev/null
ls -la HISTORY.md 2>/dev/null
If no changelog exists:
# Get the last commit that modified CHANGELOG
LAST_UPDATE=$(git log -n1 --format=%H -- CHANGELOG.md 2>/dev/null)
# If CHANGELOG never updated, use first commit
if [ -z "$LAST_UPDATE" ]; then
LAST_UPDATE=$(git rev-list --max-parents=0 HEAD)
fi
# Get commits since last update
git log --oneline "$LAST_UPDATE..HEAD"
# Get detailed changes
git log --format="%h %s" "$LAST_UPDATE..HEAD"
For each commit since last CHANGELOG update:
Parse commit message - look for Conventional Commits format
Categorize by type:
feat: → Addedfix: → Fixedrefactor:, perf:, style: → Changed (if user-facing)security: → SecurityBREAKING CHANGE: → Removed or Changed (with warning)deprecated: → Deprecatedtest:, chore:, ci:, build: → Skip (internal)Filter user-facing changes:
Extract descriptions:
feat:, fix:, etc.)# Read existing CHANGELOG
cat CHANGELOG.md
Identify:
Group changes by category:
## [Unreleased]
### Added
- New authentication system with OAuth support
- Export functionality for reports (CSV and PDF)
- Dark mode toggle in user settings
### Changed
- Improved search performance by 50%
- Updated error messages for clarity
### Fixed
- Fixed crash when uploading large files
- Fixed incorrect date display in timezone UTC-12
- Fixed memory leak in background workers
### Security
- Updated dependencies to patch vulnerabilities
Guidelines for entries:
(#123)If using Keep a Changelog format:
## [Unreleased] sectionIf using custom format:
# Show the updated section
head -50 CHANGELOG.md
Report:
User: "Update the changelog"
After analysis:
Commits since last update:
a1b2c3d feat(auth): add OAuth authentication
e4f5g6h fix(upload): handle large file uploads correctly
i7j8k9l chore(deps): update eslint to v8
Categorization:
feat(auth): add OAuth authentication → Addedfix(upload): handle large file uploads correctly → Fixedchore(deps): update eslint to v8 → Skip (internal)Update CHANGELOG:
## [Unreleased]
### Added
- OAuth authentication support (Google, GitHub, and Microsoft)
### Fixed
- Fixed crash when uploading files larger than 100MB
Report:
Updated CHANGELOG.md with 2 entries:
- Added: 1 entry
- Fixed: 1 entry
User: "Update changelog"
After analysis:
Commits:
a1b2c3d feat!: change API response format to REST standard
e4f5g6h docs: update API documentation
Categorization:
feat!: change API response format → Changed (breaking)docs: update API documentation → SkipUpdate CHANGELOG:
## [Unreleased]
### Changed
- **BREAKING**: Changed API response format to follow REST standards. Responses now use `data`, `error`, and `meta` fields. See migration guide in docs/migration.md
Report:
Updated CHANGELOG.md with 1 breaking change:
- Changed: API response format (breaking change)
⚠️ Remember to update version number when releasing (major version bump for breaking changes)
User: "Update changelog"
After analysis:
Commits:
a1b2c3d test: add unit tests for parser
e4f5g6h refactor: extract validation logic
i7j8k9l ci: update GitHub Actions workflow
Categorization:
Report:
No changelog updates needed. Changes since last update:
- Internal refactoring
- Test additions
- CI configuration updates
None of these require changelog entries.
User: "yes" (after being asked about creating CHANGELOG)
Actions:
git log --format="%h %s" --max-count=20
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
### Added
- Initial project setup
- User authentication system
- Dashboard with analytics
- REST API endpoints
### Fixed
- Various bug fixes and improvements
Report:
Created CHANGELOG.md with Keep a Changelog format.
Added initial entries based on recent commits.
User: "Update changelog"
After analysis:
Commits:
a1b2c3d feat(search): add full-text search
e4f5g6h feat(export): add PDF export
i7j8k9l fix(auth): prevent token expiry race condition
m1n2o3p security: update dependencies to patch CVE-2024-1234
q4r5s6t deprecated: mark v1 API as deprecated
Update CHANGELOG:
## [Unreleased]
### Added
- Full-text search across all content
- PDF export functionality for reports
### Deprecated
- API v1 endpoints (use v2 instead, v1 will be removed in next major version)
### Fixed
- Fixed race condition in token refresh causing intermittent 401 errors
### Security
- Updated dependencies to patch CVE-2024-1234 (high severity)
Report:
Updated CHANGELOG.md with 5 entries:
- Added: 2 entries
- Deprecated: 1 entry
- Fixed: 1 entry
- Security: 1 entry
If no CHANGELOG.md found:
If CHANGELOG was just updated:
If existing CHANGELOG doesn't follow Keep a Changelog:
If user is preparing a release:
## [1.2.0] - 2024-01-30
### Added
- New features...
[1.2.0]: https://github.com/user/repo/compare/v1.1.0...v1.2.0
If similar entry already exists in Unreleased:
If commit message is very long:
(abc1234)If analyzing merge commits:
(#123)❌ DO NOT:
✅ DO:
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub tarqd/skills --plugin git