Changelog Generator Skill
Quick Reference - Parse conventional commits and generate categorized changelog
Mission
Generate changelog from conventional commits with categorization (Features, Bug Fixes, Breaking Changes, Performance, Documentation) and formatted output for release notes.
Core Capabilities
- •Conventional Commit Parsing: Extract type, scope, description, breaking changes
- •Change Categorization: Group by type (feat, fix, perf, docs, refactor, test, chore)
- •Breaking Change Detection: Identify BREAKING CHANGE footer and ! syntax
- •Semantic Version Integration: Suggest version bump based on change types
- •Multi-Format Output: Markdown, JSON, plain text formats
Quick Start
javascript
const { ChangelogGenerator } = require('./scripts/generate-changelog.js');
const generator = new ChangelogGenerator({
fromTag: 'v2.0.0',
toTag: 'HEAD',
format: 'markdown'
});
const changelog = await generator.generate();
console.log(changelog);
Conventional Commit Format
code
<type>(<scope>): <description> [optional body] [optional footer(s)]
Supported Types:
- •
feat: New feature → Features section - •
fix: Bug fix → Bug Fixes section - •
perf: Performance improvement → Performance section - •
docs: Documentation → Documentation section - •
style: Code style (no logic change) - •
refactor: Code refactoring - •
test: Test additions/updates - •
chore: Build/tooling changes
Breaking Changes:
- •
BREAKING CHANGE:footer → Breaking Changes section - •
!after type/scope → Breaking Changes section
Category Priority
- •Breaking Changes (highest impact)
- •Features (new functionality)
- •Bug Fixes (fixes)
- •Performance (optimizations)
- •Documentation (docs updates)
Example Output
markdown
## [2.1.0] - 2025-11-05 ### Breaking Changes - **auth**: Remove deprecated OAuth 1.0 support (c4f3b2a) ### Features - **api**: Add rate limiting with Redis backend (a1b2c3d) - **ui**: Implement dark mode toggle (e5f6g7h) ### Bug Fixes - **database**: Fix connection pool exhaustion (i8j9k0l) - **auth**: Resolve JWT token expiration edge case (m1n2o3p) ### Performance - **api**: Optimize query performance with database indexes (q4r5s6t)
Pass/Fail Criteria
Pass: Changelog generated with all changes categorized
- •✅ All conventional commits parsed correctly
- •✅ Changes grouped by category (breaking, features, fixes, etc.)
- •✅ Commit hashes included for traceability
- •✅ Execution time <60 seconds
Fail: Parsing or generation errors
- •❌ Non-conventional commits cannot be parsed
- •❌ Category detection fails
- •❌ Output format invalid
- •❌ Execution time exceeds 60 seconds
Configuration
yaml
# skills/changelog-generator/templates/changelog-config.yaml fromTag: v2.0.0 toTag: HEAD format: markdown # or 'json', 'plain' categories: - breaking - features - fixes - performance - documentation excludeTypes: - style - test - chore includeCommitHash: true
Performance Target
Target: <60 seconds for 1000 commits
- •Git log parsing: <20s
- •Commit analysis: <20s
- •Markdown generation: <20s
Need More Detail?
Load: skills/changelog-generator/REFERENCE.md (~15KB)
- •Advanced parsing patterns
- •Custom category configuration
- •Multi-repository support
- •Integration examples