From java-core
Diagnoses and fixes Java compile errors, runtime exceptions, and stack traces from javac, Maven, or Gradle. Useful when users report 'fix this error', 'won't compile', or 'debug this'.
npx claudepluginhub ducpm2303/claude-java-plugins --plugin java-coreThis skill uses the workspace's default tool permissions.
Diagnose the Java error or stack trace I've provided and propose a fix. Be specific — do not give generic advice.
Quickly diagnoses and fixes simple errors from stack traces and messages, including syntax errors, import issues, build failures, failing tests, and lint errors.
Debugs errors, test failures, and unexpected behavior through root cause analysis, stack trace review, hypothesis testing, logging, and targeted code fixes.
Categorizes and debugs compile/type errors, failing tests, runtime exceptions, env/setup issues, lint violations, deps conflicts, and webtest failures with minimal context.
Share bugs, ideas, or general feedback.
Diagnose the Java error or stack trace I've provided and propose a fix. Be specific — do not give generic advice.
Compile errors (javac / Maven / Gradle output):
cannot find symbol → missing import, misspelled name, or wrong scopeincompatible types → type mismatch; check generics, autoboxing, wideningmethod X is not applicable → wrong number or types of argumentsvariable X might not have been initialized → missing initialisation on all code pathsreached end of file while parsing → unmatched { or }class X is public, should be declared in a file named X.java → filename mismatchRuntime exceptions (stack traces):
NullPointerException → identify the line; determine which reference is null; suggest a null check or OptionalClassCastException → show the actual vs expected type; fix the cast or use instanceof firstArrayIndexOutOfBoundsException → check loop bounds and array lengthStackOverflowError → identify the recursive call; check base caseConcurrentModificationException → iterating and modifying a collection simultaneously; suggest iterator.remove() or a copyIllegalArgumentException / IllegalStateException → read the message; check the API contractRead the full error message carefully. The root cause is usually the last "Caused by:" in a stack trace. Show the user:
Show:
If the fix requires reading a file not currently shown, ask for it: "Can you share the contents of ClassName.java? I need to see [specific thing]."
Add one short note on how to avoid this class of error in the future (e.g., "Use Objects.requireNonNull() at method entry to catch nulls early").
After applying the fix:
mvn compile -q or ./gradlew build -q/java-test to verify behaviour is preserved/java-review on the surrounding code