MCPInstall

git-commit

Generate conventional commit messages for Java projects. Use when user says "commit", "create commit", "commit changes", or after completing code changes that need to be committed.

Installs
228
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/decebals/claude-code-java --skill git-commit
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads git-commit automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Git Commit Message Skill

Generate conventional, informative commit messages for Java projects.

When to Use

  • After making code changes
  • User says "commit this" / "commit changes" / "create commit"
  • Before creating PRs

Format Standard

Use Conventional Commits format:

<type>(<scope>): <subject>

<body>

<footer>

Types (Java context)

  • feat: New feature (new API, new functionality)
  • fix: Bug fix
  • refactor: Code refactoring (no functional change)
  • test: Add/update tests
  • docs: Documentation only
  • perf: Performance improvement
  • build: Maven/Gradle changes
  • chore: Maintenance (dependency updates, etc)

Scope Examples (Java specific)

  • Module name: core, api, plugin-loader
  • Component: PluginManager, ExtensionFactory
  • Area: lifecycle, dependencies, security

Subject Rules

  • Imperative mood: "Add support" not "Added support"
  • No period at end
  • Max 50 chars
  • Lowercase after type

Body (optional but recommended)

  • Explain WHAT and WHY, not HOW
  • Wrap at 72 chars
  • Reference issues: "Fixes #123" / "Relates to #456"

Examples

Simple fix

fix(plugin-loader): prevent NPE when plugin directory is missing

Check for null before accessing plugin directory to avoid
NullPointerException during initialization.

Fixes #234

Feature with breaking change

feat(api): add support for plugin dependencies versioning

BREAKING CHANGE: PluginDescriptor now requires semantic versioning
format (x.y.z) instead of free-form version strings.

Closes #567

Refactoring

refactor(core): extract plugin validation logic

Move validation logic from PluginManager to separate
PluginValidator class for better testability and separation
of concerns.

Test addition

test(plugin-loader): add integration tests for plugin loading

Add comprehensive integration tests covering:
- Loading from directory
- Loading from JAR
- Error handling for invalid plugins

Build/dependency update

build(deps): upgrade Spring Boot to 3.2.1

Update Spring Boot from 3.1.0 to 3.2.1 for security patches
and performance improvements.

Workflow

  1. Analyze changes using git diff --staged
  2. Identify scope from modified files
  3. Determine type based on change nature
  4. Generate message following format
  5. Execute commit: git commit -m "message"

Token Optimization

  • Read staged changes ONCE: git diff --staged --stat + targeted file diffs
  • Don't read entire files unless necessary
  • Use concise body - aim for 2-3 lines max
  • Batch multiple small changes into logical commits

Anti-patterns

❌ Avoid:

  • "fix stuff" / "update code" / "changes"
  • "WIP" commits (unless explicitly requested)
  • Mixing unrelated changes (use separate commits)
  • Over-detailed technical implementation in message

✅ Good commits:

  • Single logical change
  • Clear, searchable subject
  • References issues when applicable
  • Explains business value

Integration with GitHub

After commit, suggest next steps:

  • "Push changes?"
  • "Create PR for issue #X?"
  • "Continue with next task?"

Common Patterns for Java Projects

Adding new functionality

feat(extension): add support for prioritized extensions

Allow extensions to specify priority order for execution.
Extensions with higher priority run first.

Closes #123

Fixing bugs

fix(classloader): resolve resource lookup in nested JARs

ClassLoader.getResource() was failing for resources in
JARs loaded from plugin JARs (nested JARs). Fixed by
implementing proper resource resolution chain.

Fixes #456

Dependency updates

build(deps): bump slf4j from 1.7.30 to 2.0.9

Updates SLF4J to latest stable version. No API changes
required as we use only stable APIs.

Documentation improvements

docs(readme): add plugin development quickstart guide

Add step-by-step guide for creating first plugin:
- Project setup
- Implementing Plugin interface
- Building and testing

Performance optimizations

perf(plugin-loader): cache plugin descriptors

Cache parsed plugin descriptors to avoid repeated I/O
and parsing. Reduces plugin loading time by ~40%.

Related to #789

Multi-file Changes

When changes span multiple components:

refactor(core): reorganize plugin lifecycle management

- Extract lifecycle state machine to separate class
- Move validation logic to validators package
- Update tests to reflect new structure

This refactoring improves testability and separation
of concerns without changing external APIs.

Related to #111, #222

Breaking Changes

Always use BREAKING CHANGE footer:

feat(api)!: replace Plugin.start() with Plugin.initialize()

BREAKING CHANGE: The Plugin.start() method has been renamed
to Plugin.initialize() for better semantic clarity. All
plugin implementations must update their code.

Migration guide: Replace @Override start() with @Override
initialize() in all Plugin implementations.

Closes #999

Quick Reference Card

Change TypeTypeExample Scope
New featurefeatapi, core, loader
Bug fixfixplugin-loader, lifecycle
Refactoringrefactorcore, utils
Teststestintegration, unit
Docsdocsreadme, javadoc
Buildbuildmaven, deps
Performanceperfclassloader, cache
Maintenancechoreci, tooling

References

FAQ

What does the git-commit skill do?

Generate conventional commit messages for Java projects. Use when user says "commit", "create commit", "commit changes", or after completing code changes that need to be committed.

How do I install git-commit?

Run npx skills add https://github.com/decebals/claude-code-java --skill git-commit in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/git-commit/ (personal) or .claude/skills/git-commit/ (project).

Which AI agents can use git-commit?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is git-commit safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains git-commit?

It is published by decebals in decebals/claude-code-java. It has 228 recorded installs.

More from decebals/claude-code-java

View all →

java-code-review

decebals/claude-code-java

Systematic code review for Java with null safety, exception handling, concurrency, and performance checks. Use when user says "review code", "check this PR", "code review", or before merging changes.

clean-code

decebals/claude-code-java

Open the skill to read its SKILL.md instructions.

concurrency-review

decebals/claude-code-java

Open the skill to read its SKILL.md instructions.

solid-principles

decebals/claude-code-java

Open the skill to read its SKILL.md instructions.

Backend & APIs350 installs

architecture-review

decebals/claude-code-java

Open the skill to read its SKILL.md instructions.

design-patterns

decebals/claude-code-java

Open the skill to read its SKILL.md instructions.

Backend & APIs340 installs

Popular code quality & workflow skills

View category →

grill-me

mattpocock/skills

A relentless interview to sharpen a plan or design.

Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.

handoff

mattpocock/skills

Compact the current conversation into a handoff document for another agent to pick up.

domain-modeling

mattpocock/skills

Build and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a GLOSSARY.md, or recording or editing an ADR.

codebase-design

mattpocock/skills

Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.

diagnosing-bugs

mattpocock/skills

Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.