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 2026 - •
2026.1.1- First patch release - •
2026.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
markdown
- [TICKET-ID](JIRA-URL) Description in specified language
Korean Example:
markdown
- [SYN-1234](https://jira.example.com/browse/SYN-1234) 사용자 인증 기능 추가
English Example:
markdown
- [SYN-1234](https://jira.example.com/browse/SYN-1234) Add user authentication feature
Workflow
1. Extract Ticket ID
From branch name:
bash
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:
bash
git log --oneline --since="$(git describe --tags --abbrev=0)"
Review changed files:
bash
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:
markdown
## [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):
code
User: /add-changelog --type added Skill: Analyzes changes → Generates description → Adds to CHANGELOG.md Result: - [SYN-1234](URL) 사용자 프로필 이미지 업로드 기능 추가
Fix bug (English):
code
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
code
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