Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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.
.claude/skills/decebals-git-commit/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-16 | ✗→✓ | ▲ Improved | 56% | 0% |
| case-21 | ✓→✗ | ▼ Worse | 41% | 0% |
| case-02 | ✓→✓ | = Same ✓ | 90% | 0% |
| case-03 | ✓→✓ | = Same ✓ | 183% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 205% | 0% |
Generate conventional, informative commit messages for Java projects.
Use Conventional Commits format:
<type>(<scope>): <subject>
<body>
<footer>core, api, plugin-loaderPluginManager, ExtensionFactorylifecycle, dependencies, securityfix(plugin-loader): prevent NPE when plugin directory is missing
Check for null before accessing plugin directory to avoid
NullPointerException during initialization.
Fixes #234feat(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 #567refactor(core): extract plugin validation logic
Move validation logic from PluginManager to separate
PluginValidator class for better testability and separation
of concerns.test(plugin-loader): add integration tests for plugin loading
Add comprehensive integration tests covering:
- Loading from directory
- Loading from JAR
- Error handling for invalid pluginsbuild(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.git diff --stagedgit commit -m "message"git diff --staged --stat + targeted file diffs❌ Avoid:
✅ Good commits:
After commit, suggest next steps:
feat(extension): add support for prioritized extensions
Allow extensions to specify priority order for execution.
Extensions with higher priority run first.
Closes #123fix(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 #456build(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.docs(readme): add plugin development quickstart guide
Add step-by-step guide for creating first plugin:
- Project setup
- Implementing Plugin interface
- Building and testingperf(plugin-loader): cache plugin descriptors
Cache parsed plugin descriptors to avoid repeated I/O
and parsing. Reduces plugin loading time by ~40%.
Related to #789When 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, #222Always 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| 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 |
Other measured skills in the registry, with their headline benchmark lift.