name: changelog-manager description: Manages changelog entries following Keep a Changelog format with CalVer versioning. Analyzes changes and generates appropriate changelog descriptions. allowed-tools: Read, Write, Edit, Bash user-invocable: true
Changelog Manager Skill
Purpose
This skill manages changelog entries in CHANGELOG.md following the Keep a Changelog format with Calendar Versioning.
Core Capabilities
1. Changelog Entry Generation
- Analyze current changes and commits
- Generate appropriate changelog descriptions
- Support Korean and English languages
- Extract ticket IDs from branch names
- Follow Keep a Changelog categories
2. Change Analysis
- Review git commits since last release
- Identify changed files and their purposes
- Categorize changes appropriately
- Generate concise but informative descriptions
3. Format Compliance
- Maintain Keep a Changelog format
- Use CalVer (YYYY.MM.MICRO) versioning
- Include JIRA ticket linking
- Preserve existing format and conventions
Versioning Strategy
This plugin uses Calendar Versioning with format YYYY.Minor.Patch.
Examples:
2026.1.0- First minor release in 20262026.1.1- First patch release2026.2.0- Second minor release in 2026
Changelog Categories
Based on Keep a Changelog:
- Added: New features, endpoints, functionality
- Changed: Changes in existing functionality, improvements, updates
- Fixed: Bug fixes, error corrections, issue resolutions
- Deprecated: Soon-to-be removed features
- Removed: Removed features
- Security: Security fixes
Entry Format
- [TICKET-ID](JIRA-URL) Description in specified language
Korean Example:
- [SYN-1234](https://jira.example.com/browse/SYN-1234) 사용자 인증 기능 추가
English Example:
- [SYN-1234](https://jira.example.com/browse/SYN-1234) Add user authentication feature
Workflow
1. Extract Ticket ID
From branch name:
git branch --show-current
# Example: feature/SYN-1234-user-authentication
# Extract: SYN-1234
Pattern: (PROJ-\d+) where PROJ is project prefix
2. Analyze Changes
Review commits:
git log --oneline --since="$(git describe --tags --abbrev=0)"
Review changed files:
git diff --name-status $(git describe --tags --abbrev=0)..HEAD
3. Generate Description
Based on:
- Commit messages
- Changed files
- Code diff analysis
- User input if needed
Guidelines:
- Be concise but informative
- Focus on "what" not "how"
- Use active voice
- Mention affected components
4. Add to CHANGELOG.md
Location: Under ## [Unreleased] in appropriate category
Format:
## [Unreleased] - yyyy-mm-dd
### Added
- [TICKET-ID](JIRA-URL) New feature description
### Changed
- [TICKET-ID](JIRA-URL) Updated feature description
### Fixed
- [TICKET-ID](JIRA-URL) Bug fix description
Parameters
type: Changelog category (added/changed/fixed/deprecated/removed/security)lang: Description language (korean/english)ticket: Ticket ID (optional, auto-extracted from branch if not provided)
Integration
This skill is invoked by:
/add-changelogcommand - Manual changelog entry addition
Best Practices
Do:
- ✅ Follow Keep a Changelog format
- ✅ Use CalVer versioning
- ✅ Include ticket IDs with links
- ✅ Write clear, concise descriptions
- ✅ Maintain chronological order (newest first)
- ✅ Group related changes together
Don't:
- ❌ Mix multiple unrelated changes in one entry
- ❌ Use vague descriptions
- ❌ Forget ticket ID linking
- ❌ Break existing format
- ❌ Add duplicate entries
Example Usage
Add new feature (Korean):
User: /add-changelog --type added
Skill: Analyzes changes → Generates description → Adds to CHANGELOG.md
Result: - [SYN-1234](URL) 사용자 프로필 이미지 업로드 기능 추가
Fix bug (English):
User: /add-changelog --type fixed --lang eng
Skill: Analyzes changes → Generates description → Adds to CHANGELOG.md
Result: - [SYN-1235](URL) Fix profile image upload validation error
Error Handling
- No ticket ID found: Ask user to provide ticket ID
- CHANGELOG.md not found: Create new CHANGELOG.md with proper format
- No Unreleased section: Add Unreleased section
- Invalid category: Default to "Added" or ask user
File Structure
CHANGELOG.md format:
# Changelog
## [Unreleased] - yyyy-mm-dd
### Added
### Changed
### Fixed
## [2026.1.0] - 2026-01-15
### Added
- Feature 1
- Feature 2
### Changed
- Change 1