git-commit

GitHub

为Java项目生成符合Conventional Commits规范的提交信息。在用户要求提交或完成代码更改后,分析变更内容并输出格式标准的提交消息,支持feat、fix等类型及作用域定义。

.claude/skills/git-commit/SKILL.md decebals/claude-code-java

Trigger Scenarios

用户说 commit 用户说 create commit 用户说 commit changes 完成需要提交的代码更改后

Install

npx skills add decebals/claude-code-java --skill git-commit -g -y
More Options

Non-standard path

npx skills add https://github.com/decebals/claude-code-java/tree/main/.claude/skills/git-commit -g -y

Use without installing

npx skills use decebals/claude-code-java@git-commit

指定 Agent (Claude Code)

npx skills add decebals/claude-code-java --skill git-commit -a claude-code -g -y

安装 repo 全部 skill

npx skills add decebals/claude-code-java --all -g -y

预览 repo 内 skill

npx skills add decebals/claude-code-java --list

SKILL.md

Frontmatter
{
    "name": "git-commit",
    "description": "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."
}

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 Type Type Example Scope
New feature feat api, core, loader
Bug fix fix plugin-loader, lifecycle
Refactoring refactor core, utils
Tests test integration, unit
Docs docs readme, javadoc
Build build maven, deps
Performance perf classloader, cache
Maintenance chore ci, tooling

References

Version History

  • f81fbd2 Current 2026-07-05 11:55

Same Skill Collection

.claude/skills/api-contract-review/SKILL.md
.claude/skills/architecture-review/SKILL.md
.claude/skills/changelog-generator/SKILL.md
.claude/skills/clean-code/SKILL.md
.claude/skills/concurrency-review/SKILL.md
.claude/skills/design-patterns/SKILL.md
.claude/skills/issue-triage/SKILL.md
.claude/skills/java-code-review/SKILL.md
.claude/skills/java-migration/SKILL.md
.claude/skills/jpa-patterns/SKILL.md
.claude/skills/logging-patterns/SKILL.md
.claude/skills/maven-dependency-audit/SKILL.md
.claude/skills/performance-smell-detection/SKILL.md
.claude/skills/solid-principles/SKILL.md
.claude/skills/spring-boot-patterns/SKILL.md
.claude/skills/test-quality/SKILL.md

Metadata

Files
0
Version
f81fbd2
Hash
c2e634fa
Indexed
2026-07-05 11:55

Accueil - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-07-10 17:57
浙ICP备14020137号-1 $Carte des visiteurs$