Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Generate changelogs from git commits. Use when user says "generate changelog", "update changelog", "what changed since last release", or before preparing a new release.
.claude/skills/decebals-changelog-generator/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-08 | ✗→✓ | ▲ Improved | 27% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 133% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 282% | 0% |
| case-16 | ✗→✓ | ▲ Improved | 121% | 0% |
| case-17 | ✓→✗ | ▼ Worse | 353% | 0% |
Generate changelogs from conventional commits for Java projects.
Detect versioning style using this priority order:
bashgrep -A5 "## Versioning" CLAUDE.md 2>/dev/null
Look for explicit convention:
markdown## Versioning This project uses Semantic Versioning (x.y.z). Tag format: `release-x.y.z`
bashgit tag --sort=-version:refname | head -10
| Pattern detected | Versioning style | |------------------|------------------| | v3.15.0, 3.15.0 | SemVer (x.y.z) | | release-3.15.0 | SemVer with prefix | | v2.1, 2.1 | Two-component (x.y) | | 2026.01, 26.1 | CalVer | | No pattern | Ask user |
bashgrep -E "^\#+ \[.*\]" CHANGELOG.md | head -5
Extract version format from existing entries.
No versioning convention detected. Which format does this project use?
- Semantic Versioning (x.y.z) - e.g., 3.15.0
- Two-component (x.y) - e.g., 2.1
- Calendar Versioning - e.g., 2026.01| Style | Format | Tag examples | Version bump | |-------|--------|--------------|--------------| | SemVer | x.y.z | v3.15.0, release-3.15.0 | major.minor.patch | | Two-component | x.y | v2.1, 2.1 | major.minor | | CalVer | YYYY.MM.patch] | 2026.01, 2026.01.1 | year.month.patch] |
If CLAUDE.md exists but has no versioning info:
Detected versioning: SemVer (x.y.z) with tag prefix 'release-' Want me to add this to CLAUDE.md for future reference?
Supports two formats - detect from existing CHANGELOG.md or ask user preference.
markdown# Changelog ## [Unreleased] ## [1.2.0] - 2026-01-29 ### Added - [#123]: New feature for plugin dependencies ### Changed - [#456]: Improved performance of plugin loading ### Fixed - [#234]: Resolved NPE when directory missing
markdown## Change Log ### [Unreleased][unreleased] ### [3.15.0] - 2026-01-29 #### Added - [#123]: New feature for plugin dependencies #### Changed - [#456]: Improved performance of plugin loading #### Fixed - [#234]: Resolved NPE when directory missing
Use reference-style links for cleaner, more readable entries:
markdown#### Fixed - [#648]: Restore missing `module-info.class` in multi-release JAR - [#625]: Fix exception handling inconsistency in `startPlugin()` #### Added - [#629]: Validate dependency state on plugin start - [#633]: Allow customization of `PluginClassLoader` parent delegation <!-- At the bottom of the file --> [#648]: https://github.com/user/repo/issues/648 [#633]: https://github.com/user/repo/pull/633 [#629]: https://github.com/user/repo/pull/629 [#625]: https://github.com/user/repo/pull/625
Benefits:
Add comparison links at the bottom for easy diff viewing:
markdown[unreleased]: https://github.com/user/repo/compare/release-3.15.0...HEAD [3.15.0]: https://github.com/user/repo/compare/release-3.14.1...release-3.15.0 [3.14.1]: https://github.com/user/repo/compare/release-3.14.0...release-3.14.1
Pattern: [version]: https://github.com/{owner}/{repo}/compare/{previous-tag}...{current-tag}
Adapt to existing file, or use this default order:
| Section | When to use | |---------|-------------| | Fixed | Bug fixes | | Changed | Changes to existing functionality | | Added | New features | | Deprecated | Soon-to-be removed features | | Removed | Removed features | | Security | Vulnerability fixes (CVEs) |
Note: pf4j uses Fixed → Changed → Added → Removed. Keep a Changelog uses Added → Changed → Deprecated → Removed → Fixed → Security.
Rule: Follow existing file's order if present.
| Commit Type | Changelog Section | |-------------|-------------------| | feat | Added | | fix | Fixed | | perf | Changed | | refactor | Changed | | build(deps) | Changed or Security (if CVE) | | BREAKING CHANGE | Changed (with bold note) | | deprecate | Deprecated |
bash cat CHANGELOG.md | head -20 Detect format (h2 vs h3 versions, section order, link style).
bash # Find last tag git describe --tags --abbrev=0
# List recent tags git tag --sort=-version:refname | head -5
bash git log v3.14.1..HEAD --oneline
Look for patterns: #123, fixes #123, closes #123, (#123)
SemVer (x.y.z):
Two-component (x.y):
CalVer (YYYY.MM):
git log --oneline for initial scanInput: User says "generate changelog for next release"
Step 1: Check existing format
bashhead -30 CHANGELOG.md
→ Detects pf4j style (h3 versions, Fixed first)
Step 2: Find version range
bashgit describe --tags --abbrev=0
→ release-3.15.0
Step 3: Get commits
bashgit log release-3.15.0..HEAD --oneline
→ 5 commits found
Step 4: Generate entry
markdown### [Unreleased][unreleased] #### Fixed - [#650]: Fix memory leak in extension factory #### Changed - [#651]: Rename `LegacyExtension*` to `IndexedExtension*` #### Added - [#652]: Add support for plugin priority ordering
Step 5: Generate link definitions
markdown[#652]: https://github.com/pf4j/pf4j/pull/652 [#651]: https://github.com/pf4j/pf4j/pull/651 [#650]: https://github.com/pf4j/pf4j/issues/650
Step 6: Update version comparison links
markdown[unreleased]: https://github.com/pf4j/pf4j/compare/release-3.15.0...HEAD
Step 7: Suggest version
Suggested: 3.16.0 (minor - has new feature)List under "Changed" with original message:
markdown#### Changed - Updated plugin loading mechanism - Refactored test utilities
markdown#### Security - [#618], [#623]: Fix path traversal vulnerabilities in ZIP extraction
markdown#### Changed - **BREAKING**: [#645] Renamed `LegacyExtension*` classes to `IndexedExtension*`
markdown- [#630], [#631]: Set `failedException` when plugin validation fails
[Unreleased] section[unreleased] comparison link to point to new version| User says | Action | |-----------|--------| | "generate changelog" | Full changelog since last tag | | "changelog since v3.14" | From specific version | | "what's unreleased" | Preview unreleased changes | | "update changelog for 3.16" | Generate and insert for version | | "add changelog entry for #123" | Single issue entry |
Other measured skills in the registry, with their headline benchmark lift.