Manage project changelogs with commit tracking and structured documentation. Use when updating CHANGELOG.md, tracking project changes, or documenting version releases.
This skill covers best practices for maintaining project changelogs, including commit tracking, version management, and structured change documentation following the Keep a Changelog standard.
# Changelog
## [Unreleased]
### Planned
- [ ] Feature name
## [Version] - YYYY-MM-DD
### Added
- **Feature Name** ([commit](link))
- Description
### Changed
- **Feature Name** ([commit](link))
- What changed
### Fixed
- **Bug Description** ([commit](link))
- What was fixed
### Documentation
- **Document Name** ([commit](link))
- What was updated
[MAJOR.MINOR.PATCH]YYYY-MM-DD2025-01-15# Short commit hash
git log --oneline -1
# Output: abc1234 feat: add search
# Full commit hash
git rev-parse HEAD
# Output: abc1234567890abcdef1234567890abcdef1234
# Commit for specific file
git log --oneline -1 -- path/to/file.rs
Short Hash with Link (Recommended):
- **Feature** ([abc1234](https://github.com/user/repo/commit/abc1234))
Multiple Commits:
- **Feature** ([abc1234](link), [def5678](link))
Commit Range:
- **Feature** ([abc1234..def5678](https://github.com/user/repo/compare/abc1234..def5678))
Without Link:
- **Feature** (commit: abc1234)
For new features, functionality, or capabilities:
### Added
- **Search Functionality** ([abc1234](link))
- Real-time search by title and description
- Search history with recent searches
- Keyboard shortcut (Ctrl/Cmd + K)
For changes to existing functionality:
### Changed
- **Storage Implementation** ([def5678](link)) (2025-02-01)
- Migrated from localStorage to IndexedDB
- Improved performance for large datasets
- Added automatic data migration script
For bug fixes:
### Fixed
- **GitHub Pages Deployment** ([ghi9012](link)) (2025-02-01)
- Fixed `base_path` configuration (added leading slash)
- Fixed 404.html for client-side routing
- Fixed file copying to include all subdirectories
For documentation updates:
### Documentation
- **Cursor Rules** ([jkl3456](link)) (2025-02-01)
- Created comprehensive rule structure
- Added project structure guidelines
- Added code formatting standards
Develop and commit:
git commit -m "feat: add search functionality"
Get commit hash:
git log --oneline -1
# Output: abc1234 feat: add search functionality
Update CHANGELOG.md:
## [Unreleased]
### Planned
- [x] Add search functionality ✅
## [0.2.0] - 2025-02-01
### Added
- **Search Functionality** ([abc1234](https://github.com/user/repo/commit/abc1234))
- Real-time search by title and description
- Search history with recent searches
Update version in Cargo.toml:
[package]
version = "0.2.0"
Fix and commit:
git commit -m "fix: correct base_path configuration"
Update CHANGELOG.md:
### Fixed
- **GitHub Pages Deployment** ([abc1234](link)) (2025-02-01)
- Fixed `base_path` configuration (added leading slash)
Mark clearly with migration notes:
## [2.0.0] - 2025-03-01
### Changed (Breaking)
- **Storage API** ([abc1234](link)) (2025-03-01)
- Changed storage key format from `reminders` to `reminders_v2`
- **Migration Required**: Run migration script before upgrading
- Old data format no longer supported
# Get commits since last tag
git log $(git describe --tags --abbrev=0)..HEAD --oneline
# Get commits for a specific version
git log v0.1.0..v0.2.0 --oneline
# Get commit messages for changelog
git log --pretty=format:"- %s ([%h](https://github.com/user/repo/commit/%H))" v0.1.0..HEAD
Link CHANGELOG to DEVELOPMENT_PLAN:
### Added
- **Search Functionality** ([abc1234](link))
- Real-time search by title and description
- See [DEVELOPMENT_PLAN.md](./DEVELOPMENT_PLAN.md) for details
- Related issue: #123
- Related PR: #456
Finalize CHANGELOG:
## [0.2.0] - 2025-02-01
[All changes with commit references]
Update version:
[package]
version = "0.2.0"
Create git tag:
git tag -a v0.2.0 -m "Release v0.2.0"
git push origin v0.2.0
Create GitHub release:
[Unreleased] items to new version section