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.
Builds changelog entries from conventional commits in a Java project, after working out whether it uses SemVer, two-part versions or calendar versions.
$ npx skills add decebals/claude-code-java --skill changelog-generator -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install decebals/claude-code-java changelog-generator --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "changelog-generator" agent skill from https://github.com/decebals/claude-code-java/tree/main/skills/changelog-generator into .claude/skills/changelog-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "changelog-generator", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/decebals/claude-code-java/tree/main/skills/changelog-generatorType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add decebals/claude-code-java --skill changelog-generator -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install decebals/claude-code-java changelog-generator --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/decebals/claude-code-java.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/changelog-generator .agents/skills/changelog-generator && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "changelog-generator" agent skill from https://github.com/decebals/claude-code-java/tree/main/skills/changelog-generator into .agents/skills/changelog-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "changelog-generator", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add decebals/claude-code-java --skill changelog-generator -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install decebals/claude-code-java changelog-generator --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/decebals/claude-code-java.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/changelog-generator .cursor/skills/changelog-generator && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "changelog-generator" agent skill from https://github.com/decebals/claude-code-java/tree/main/skills/changelog-generator into .cursor/skills/changelog-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "changelog-generator", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/decebals/claude-code-java.git --path skills/changelog-generator--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add decebals/claude-code-java --skill changelog-generator -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install decebals/claude-code-java changelog-generator --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/decebals/claude-code-java.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/changelog-generator .gemini/skills/changelog-generator && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "changelog-generator" agent skill from https://github.com/decebals/claude-code-java/tree/main/skills/changelog-generator into .gemini/skills/changelog-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "changelog-generator", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install decebals/claude-code-java changelog-generatorInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add decebals/claude-code-java --skill changelog-generator -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/decebals/claude-code-java.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/changelog-generator .github/skills/changelog-generator && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "changelog-generator" agent skill from https://github.com/decebals/claude-code-java/tree/main/skills/changelog-generator into .github/skills/changelog-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "changelog-generator", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add decebals/claude-code-java --skill changelog-generator -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install decebals/claude-code-java changelog-generator --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/decebals/claude-code-java.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/changelog-generator .opencode/skills/changelog-generator && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "changelog-generator" agent skill from https://github.com/decebals/claude-code-java/tree/main/skills/changelog-generator into .opencode/skills/changelog-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "changelog-generator", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
changelog-generatorBuilds 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. 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.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 0d98fe9. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
github.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
The full file from decebals/claude-code-java at commit 0d98fe9, republished under its MIT licence (© decebals). 609 words, ~2,149 tokens.
.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.Generate changelogs from conventional commits for Java projects.
Detect versioning style using this priority order:
grep -A5 "## Versioning" CLAUDE.md 2>/dev/nullLook for explicit convention:
## Versioning
This project uses Semantic Versioning (x.y.z).
Tag format: `release-x.y.z`git 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 |
grep -E "^\#+ \[.*\]" CHANGELOG.md | head -5Extract 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.
# 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## 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 missingUse reference-style links for cleaner, more readable entries:
#### 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/625Benefits:
Add comparison links at the bottom for easy diff viewing:
[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.1Pattern: [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 |
Check for existing CHANGELOG.md
cat CHANGELOG.md | head -20Detect format (h2 vs h3 versions, section order, link style).
Determine version range
# Find last tag
git describe --tags --abbrev=0
# List recent tags
git tag --sort=-version:refname | head -5Get commits since last release
git log v3.14.1..HEAD --onelineExtract issue/PR references
Look for patterns: #123, fixes #123, closes #123, (#123)
Generate changelog entry
Suggest version bump (based on detected versioning style)
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
head -30 CHANGELOG.md→ Detects pf4j style (h3 versions, Fixed first)
Step 2: Find version range
git describe --tags --abbrev=0→ release-3.15.0
Step 3: Get commits
git log release-3.15.0..HEAD --oneline→ 5 commits found
Step 4: Generate entry
### [Unreleased][unreleased]
#### Fixed
- [#650]: Fix memory leak in extension factory
#### Changed
- [#651]: Rename `LegacyExtension*` to `IndexedExtension*`
#### Added
- [#652]: Add support for plugin priority orderingStep 5: Generate link definitions
[#652]: https://github.com/pf4j/pf4j/pull/652
[#651]: https://github.com/pf4j/pf4j/pull/651
[#650]: https://github.com/pf4j/pf4j/issues/650Step 6: Update version comparison links
[unreleased]: https://github.com/pf4j/pf4j/compare/release-3.15.0...HEADStep 7: Suggest version
Suggested: 3.16.0 (minor - has new feature)List under "Changed" with original message:
#### Changed
- Updated plugin loading mechanism
- Refactored test utilities#### Security
- [#618], [#623]: Fix path traversal vulnerabilities in ZIP extraction#### Changed
- **BREAKING**: [#645] Renamed `LegacyExtension*` classes to `IndexedExtension*`- [#630], [#631]: Set `failedException` when plugin validation failsRead existing file to detect:
Insert new version after [Unreleased] section
Merge link definitions - add new ones, keep existing
Update [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 |
© decebals, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in skills/changelog-generator of decebals/claude-code-java.
Open the folder on GitHubat commit 0d98fe9
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Changelog Generator for Java this skilldecebals/claude-code-java | 751 | — | ~2.1k | Automated safety check: Pass | MIT | |
| Git Workflow and Versioningaddyosmani/agent-skills | 104k | 2 repos | ~3.5k | Automated safety check: Notes | MIT | |
| WooCommerce Git Commitwoocommerce/woocommerce | 11k | — | ~1.2k | Automated safety check: Pass | Custom licence | |
| Git Changes ReporterNo-Trade-No-Life/Yuan | 352 | — | ~1.2k | Automated safety check: Pass | MIT | |
| Shift Commit Rulesshift-editor/shift | 349 | — | ~1.4k | Automated safety check: Notes | Apache-2.0 | |
| Version Bump and ReleaseescapeWu/perplexity-ai | 171 | — | ~528 | Automated safety check: Pass | MIT |
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.
woocommerce/woocommerce
Commits pending changes with short, verb-first messages that follow WooCommerce repository conventions, splitting commits only when changes are clearly unrelated.
No-Trade-No-Life/Yuan
生成结构化 git 变更报告(JSON + Markdown)。使用此技能当用户提到"git 变更"、"commit 摘要"、"代码审查"、"release note"、"近期改动"、"每日摘要",或需要分析指定 commit 区间的代码变更。包含三元组结构(设计意图、核心代码、影响范围)的语义化报告,适用于代码审查、发布说明、团队同步、CI/CD 等场景。
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.
escapeWu/perplexity-ai
Bumps a project version, updates both changelogs, builds the frontend, then commits, tags and pushes the release.
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…
decebals/claude-code-java
A practical Java reference for Builder, Factory, Singleton, Strategy, Observer and other patterns, with a table matching problems to patterns.
decebals/claude-code-java
JPA/Hibernate patterns and common pitfalls (N+1, lazy loading, transactions, queries).
decebals/claude-code-java
Java logging best practices with SLF4J, structured logging (JSON), and MDC for request tracing.
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.
decebals/claude-code-java
Reviews a Java project's architecture at the macro level: package structure, module boundaries, dependency direction and layering.
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.
Categories
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.