Agent skill

Changelog Generator for Java

by decebals in decebals/claude-code-java

Builds changelog entries from conventional commits in a Java project, after working out whether it uses SemVer, two-part versions or calendar versions.

MITAuto-check passedDevelopment

Install Changelog Generator for Java

skills CLI
$ npx skills add decebals/claude-code-java --skill changelog-generator -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install decebals/claude-code-java changelog-generator --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/decebals/claude-code-java.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/changelog-generator .claude/skills/changelog-generator && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
changelog-generator
GitHub stars
751
Token cost
~2.1k tokens
SKILL.md length
609 words
Files
2
Skills in repo
18
Repo updated
First seen
Licence
MIT

At a glance

Builds changelog entries from conventional commits in a Java project, after working out whether it uses SemVer, two-part versions or calendar versions.

  • Works in 4 steps: Check CLAUDE.md (if exists) → Fallback: Detect from git tags → Fallback: Detect from CHANGELOG.md → …
  • Preparing a release and needing the changelog updated from commits
  • SKILL.md covers When to Use, Versioning Convention Detection, Output Format and Reference-Style Links…, plus 9 more sections
  • Calls git; reaches github.com

What it does

Before writing anything, the skill works out which versioning style the project uses. It checks CLAUDE.md for a Versioning section, falls back to the git tag history, then to the entries already in CHANGELOG.md, and asks you only when none of those give an answer.

It recognizes semantic versions with or without a tag prefix, two-component versions and calendar versions. The output follows either Keep a Changelog, with version headings at the second level, or the pf4j layout with third-level headings, matching whatever the existing file uses. Entries use reference-style links to issue numbers. For older projects whose CLAUDE.md has no versioning notes, the agent can offer to record the convention it detected.

When your agent uses it

  • Preparing a release and needing the changelog updated from commits
  • Answering what changed since the last release
  • Closing out a milestone with a written summary of the changes

Example prompts

  • “Generate the changelog for everything since the last tag.”
  • “Update CHANGELOG.md with the commits merged this sprint.”
  • “What changed since the last release? Write it up in Keep a Changelog format.”

Requirements

  • A git repository with commit history

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Check CLAUDE.md (if exists)
  2. Fallback: Detect from git tags
  3. Fallback: Detect from CHANGELOG.md
  4. Last resort: Ask user

What it can do on your machine

Read from SKILL.md and the folder at commit 0d98fe9. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Changelog Generator for Java loads about 2.1k tokens when it runs. Until then it costs about 47 tokens; SKILL.md has 609 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~47
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from decebals/claude-code-java at commit 0d98fe9, republished under its MIT licence (© decebals). 609 words, ~2,149 tokens.

Download SKILL.mdSave it as .claude/skills/changelog-generator/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
changelog-generator
description
Generate changelogs from git commits. Use when user says "generate changelog", "update changelog", "what changed since last release", or before preparing a new release.
license
MIT

Changelog Generator Skill

Generate changelogs from conventional commits for Java projects.

When to Use

  • Before a release
  • User says "generate changelog" / "update changelog" / "what changed since last release"
  • After completing a milestone

Versioning Convention Detection

Detect versioning style using this priority order:

1. Check CLAUDE.md (if exists)
bash
grep -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`
2. Fallback: Detect from git tags
bash
git tag --sort=-version:refname | head -10
Pattern detectedVersioning style
v3.15.0, 3.15.0SemVer (x.y.z)
release-3.15.0SemVer with prefix
v2.1, 2.1Two-component (x.y)
2026.01, 26.1CalVer
No patternAsk user
3. Fallback: Detect from CHANGELOG.md
bash
grep -E "^\#+ \[.*\]" CHANGELOG.md | head -5

Extract version format from existing entries.

4. Last resort: Ask user
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
Supported Versioning Styles
StyleFormatTag examplesVersion bump
SemVerx.y.zv3.15.0, release-3.15.0major.minor.patch
Two-componentx.yv2.1, 2.1major.minor
CalVerYYYY.MM[.patch]2026.01, 2026.01.1year.month[.patch]
Legacy Projects (CLAUDE.md without versioning section)

If CLAUDE.md exists but has no versioning info:

  1. Don't assume - detect from tags/changelog
  2. If detected, optionally suggest adding to CLAUDE.md:
    Detected versioning: SemVer (x.y.z) with tag prefix 'release-'
    Want me to add this to CLAUDE.md for future reference?

Output Format

Supports two formats - detect from existing CHANGELOG.md or ask user preference.

Format A: Keep a Changelog (h2 versions)
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
Format B: pf4j style (h3 versions)
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:

  • Cleaner to read (no long URLs inline)
  • Links defined once, reusable
  • Easier to write and maintain

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}

Section Order

Adapt to existing file, or use this default order:

SectionWhen to use
FixedBug fixes
ChangedChanges to existing functionality
AddedNew features
DeprecatedSoon-to-be removed features
RemovedRemoved features
SecurityVulnerability 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.

Mapping Conventional Commits to Changelog

Commit TypeChangelog Section
featAdded
fixFixed
perfChanged
refactorChanged
build(deps)Changed or Security (if CVE)
BREAKING CHANGEChanged (with bold note)
deprecateDeprecated

Workflow

  1. Check for existing CHANGELOG.md

    bash
    cat CHANGELOG.md | head -20

    Detect format (h2 vs h3 versions, section order, link style).

  2. Determine version range

    bash
    # Find last tag
    git describe --tags --abbrev=0
    
    # List recent tags
    git tag --sort=-version:refname | head -5
  3. Get commits since last release

    bash
    git log v3.14.1..HEAD --oneline
  4. Extract issue/PR references Look for patterns: #123, fixes #123, closes #123, (#123)

  5. Generate changelog entry

    • Group by section
    • Use reference-style links
    • Add version comparison link
  6. Suggest version bump (based on detected versioning style)

    SemVer (x.y.z):

    • BREAKING CHANGE → Major (3.0.0 → 4.0.0)
    • feat → Minor (3.14.0 → 3.15.0)
    • fix only → Patch (3.14.0 → 3.14.1)

    Two-component (x.y):

    • BREAKING CHANGE → Major (2.0 → 3.0)
    • feat/fix → Minor (2.1 → 2.2)

    CalVer (YYYY.MM):

    • New month → 2026.01 → 2026.02
    • Same month, new release → 2026.01 → 2026.01.1
Show full SKILL.md (198 more words)Show less

Token Optimization

  • Use git log --oneline for initial scan
  • Only fetch full body if BREAKING CHANGE suspected
  • Reuse existing link definitions from file
  • Don't re-read entire changelog - just prepend new section

Example: Full Workflow

Input: User says "generate changelog for next release"

Step 1: Check existing format

bash
head -30 CHANGELOG.md

→ Detects pf4j style (h3 versions, Fixed first)

Step 2: Find version range

bash
git describe --tags --abbrev=0

→ release-3.15.0

Step 3: Get commits

bash
git 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)

Handling Edge Cases

No conventional commits

List under "Changed" with original message:

markdown
#### Changed
- Updated plugin loading mechanism
- Refactored test utilities
Security fix
markdown
#### Security
- [#618], [#623]: Fix path traversal vulnerabilities in ZIP extraction
Breaking change
markdown
#### Changed
- **BREAKING**: [#645] Renamed `LegacyExtension*` classes to `IndexedExtension*`
Multiple issues for same fix
markdown
- [#630], [#631]: Set `failedException` when plugin validation fails

Integration with Existing CHANGELOG.md

  1. Read existing file to detect:

    • Heading level (## or ### for versions)
    • Section order
    • Link style (reference or inline)
    • Existing link definitions
  2. Insert new version after [Unreleased] section

  3. Merge link definitions - add new ones, keep existing

  4. Update [unreleased] comparison link to point to new version

Quick Reference

User saysAction
"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

© decebals, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in skills/changelog-generator of decebals/claude-code-java.

  • SKILL.md
  • README.md

Open the folder on GitHubat commit 0d98fe9

Compare with similar skills

Changelog Generator for Java next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Changelog Generator for Java compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Changelog Generator for Java this skilldecebals/claude-code-java751—~2.1kAutomated safety check: PassMIT
Git Workflow and Versioningaddyosmani/agent-skills104k2 repos~3.5kAutomated safety check: NotesMIT
WooCommerce Git Commitwoocommerce/woocommerce11k—~1.2kAutomated safety check: PassCustom licence
Git Changes ReporterNo-Trade-No-Life/Yuan352—~1.2kAutomated safety check: PassMIT
Shift Commit Rulesshift-editor/shift349—~1.4kAutomated safety check: NotesApache-2.0
Version Bump and ReleaseescapeWu/perplexity-ai171—~528Automated safety check: PassMIT

Similar skills

  • Git Workflow and Versioning

    addyosmani/agent-skills

    Sets git habits for every change: short-lived branches, atomic commits with descriptive messages, clean pull requests, plus versioning, tagging and changelogs for releases.

    104k GitHub starsUsed in 2 repos~3.5k tokens
    DevelopmentAuto-check: notes
  • WooCommerce Git Commit

    woocommerce/woocommerce

    Commits pending changes with short, verb-first messages that follow WooCommerce repository conventions, splitting commits only when changes are clearly unrelated.

    11k GitHub stars~1.2k tokensUpdated today
    DevelopmentAuto-check passed
  • Git Changes Reporter

    No-Trade-No-Life/Yuan

    生成结构化 git 变更报告(JSON + Markdown)。使用此技能当用户提到"git 变更"、"commit 摘要"、"代码审查"、"release note"、"近期改动"、"每日摘要",或需要分析指定 commit 区间的代码变更。包含三元组结构(设计意图、核心代码、影响范围)的语义化报告,适用于代码审查、发布说明、团队同步、CI/CD 等场景。

    352 GitHub stars~1.2k tokensUpdated 5 mo ago
    DevelopmentAuto-check passed
  • Shift Commit Rules

    shift-editor/shift

    Rules for writing git commits in the Shift font editor repo: Conventional Commits subjects, user-facing changelog wording, concise subjects and logical commit boundaries.

    349 GitHub stars~1.4k tokensUpdated today
    DevelopmentAuto-check: notes
  • Version Bump and Release

    escapeWu/perplexity-ai

    Bumps a project version, updates both changelogs, builds the frontend, then commits, tags and pushes the release.

    171 GitHub stars~528 tokensUpdated 13 days ago
    DevelopmentAuto-check passed
  • Fantasia Final Cleanup

    vishiri/fantasia-archive

    End-of-batch ship workflow for Fantasia Archive: run full yarn testbatch:verify (not dev scoped gate), fix failures, sync README/AGENTS/rules/skills from Git changes, update in-app changelog, split…

    409 GitHub stars~1.2k tokensUpdated 3 days ago
    DevelopmentAuto-check passed

More from decebals/claude-code-java

All 18 skills in this repo
  • Java Design Patterns Reference

    decebals/claude-code-java

    A practical Java reference for Builder, Factory, Singleton, Strategy, Observer and other patterns, with a table matching problems to patterns.

    751 GitHub starsUsed in 1 repo~4.4k tokens
    Auto-check passed
  • Jpa Patterns

    decebals/claude-code-java

    JPA/Hibernate patterns and common pitfalls (N+1, lazy loading, transactions, queries).

    751 GitHub starsUsed in 1 repo~4k tokens
    Auto-check passed
  • Logging Patterns

    decebals/claude-code-java

    Java logging best practices with SLF4J, structured logging (JSON), and MDC for request tracing.

    751 GitHub starsUsed in 1 repo~3.3k tokens
    Auto-check passed
  • REST API Contract Review

    decebals/claude-code-java

    Reviews REST API design for correct HTTP verbs, versioning, DTO use, consistent responses and backward compatibility before an API change ships.

    751 GitHub stars~2.8k tokensUpdated 1 mo ago
    Auto-check passed
  • Java Architecture Review

    decebals/claude-code-java

    Reviews a Java project's architecture at the macro level: package structure, module boundaries, dependency direction and layering.

    751 GitHub stars~2.2k tokensUpdated 1 mo ago
    Auto-check passed
  • Clean Code Principles

    decebals/claude-code-java

    Covers Clean Code principles for Java: DRY, KISS and YAGNI with before-and-after examples, plus naming conventions for variables and booleans.

    751 GitHub stars~3.4k tokensUpdated 1 mo ago
    Auto-check passed

Works with

Categories

Questions about Changelog Generator for Java

What does Changelog Generator for Java do?

Builds changelog entries from conventional commits in a Java project, after working out whether it uses SemVer, two-part versions or calendar versions. Before writing anything, the skill works out which versioning style the project uses.md, and asks you only when none of those give an answer.

When should I use Changelog Generator for Java?

Changelog Generator for Java fits situations like: preparing a release and needing the changelog updated from commits; answering what changed since the last release; closing out a milestone with a written summary of the changes.

How do I install Changelog Generator for Java in Claude Code?

Run `npx skills add decebals/claude-code-java --skill changelog-generator -a claude-code`. Or copy the skill folder (skills/changelog-generator in decebals/claude-code-java) into .claude/skills/changelog-generator in your project. Claude Code loads it when a task matches its description.

How do I install Changelog Generator for Java in Codex?

Run `npx skills add decebals/claude-code-java --skill changelog-generator -a codex`. Or copy the skill folder (skills/changelog-generator in decebals/claude-code-java) into .agents/skills/changelog-generator in your project. Codex loads it when a task matches its description.

Can I use Changelog Generator for Java in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add decebals/claude-code-java --skill changelog-generator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/changelog-generator, .gemini/skills/changelog-generator, .github/skills/changelog-generator and .opencode/skills/changelog-generator in your project.

What does Changelog Generator for Java need to run?

Going by SKILL.md and its folder, Changelog Generator for Java needs the command-line tools its instructions call (git). Our summary lists: A git repository with commit history.

Does Changelog Generator for Java access the network?

SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Changelog Generator for Java safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Changelog Generator for Java use?

Changelog Generator for Java is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Changelog Generator for Java use?

About 2.1k tokens (SKILL.md is roughly 8.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Changelog Generator for Java?

Skills that share tags, products or a category with Changelog Generator for Java: Git Workflow and Versioning (addyosmani/agent-skills, 104k stars), WooCommerce Git Commit (woocommerce/woocommerce, 11k stars), Git Changes Reporter (No-Trade-No-Life/Yuan, 352 stars) and Shift Commit Rules (shift-editor/shift, 349 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Changelog Generator for Java?

decebals (a GitHub user) maintains it in decebals/claude-code-java, which has 751 GitHub stars. The repository holds 18 skills in this directory. The repository was last updated on September 6, 2026.

Source: decebals/claude-code-java on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.