agentsclimarketplace

Java solid

Skill ducpm2303/claude-java-plugins/plugins/java-core/skills/java-solid

Checks Java code for SOLID principles violations with Java-specific patterns. Use when user asks to "check SOLID principles", "is this good OOP", "single responsibility", "SOLID violations", "open closed principle", or "dependency inversion".From its SKILL.md

Install
npx -y skills add ducpm2303/claude-java-plugins --skill java-solid

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 17 stars17 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

3.4 KB, 658 tokens by cl100k_base, as published. Nobody here has run it

Review the provided Java code for SOLID principles violations. For each principle, check for violations and suggest targeted improvements. Tailor suggestions to the detected Java version.

S — Single Responsibility Principle

A class should have one reason to change.

Violations to flag:

  • Classes named *Manager, *Helper, *Utils with more than 3 unrelated methods
  • Service classes that also contain validation logic, email sending, AND database calls
  • Classes with more than ~200 lines (often a signal of multiple responsibilities)
  • Methods that do multiple distinct things (parse + validate + persist + notify)

Fix pattern: Extract each responsibility into its own class. Show the split.

O — Open/Closed Principle

Open for extension, closed for modification.

Violations to flag:

  • if/else or switch chains on type/status that would require modification to add new types
  • Hard-coded behaviour that should be configurable
  • Direct instantiation of concrete classes in business logic (use interfaces)

Fix pattern: Introduce Strategy, Template Method, or polymorphism. Show the refactoring.

L — Liskov Substitution Principle

Subtypes must be substitutable for their base types.

Violations to flag:

  • Subclass overrides a method by throwing UnsupportedOperationException
  • Subclass weakens preconditions (accepts nulls when parent doesn't)
  • Subclass strengthens postconditions (returns more restricted type)
  • Square extends Rectangle anti-pattern

Fix pattern: Use composition over inheritance, or restructure the hierarchy.

I — Interface Segregation Principle

Clients should not depend on interfaces they don't use.

Violations to flag:

  • Interfaces with more than ~5 methods where implementors only use some
  • implements classes that leave methods empty or throw UnsupportedOperationException
  • Fat service interfaces used by clients that only call 1–2 methods

Fix pattern: Split the fat interface into focused role interfaces.

D — Dependency Inversion Principle

Depend on abstractions, not concretions.

Violations to flag:

  • Field or constructor takes a concrete class (new UserServiceImpl) instead of an interface (UserService)
  • new ConcreteClass() inside business logic instead of dependency injection
  • Static utility method calls deep in business logic that prevent testing
  • @Autowired on a concrete class field instead of an interface

Fix pattern: Introduce interface + constructor injection. Show the change.

Output format

For each violation:

  1. Principle violated: (S/O/L/I/D)
  2. Location: class + method
  3. Problem: what rule is broken and why it matters
  4. Fix: before/after code

End with: SOLID Score — how many of the 5 principles are cleanly satisfied (e.g., "3/5 — S, I, D pass; O and L need attention").

Next Steps

  • For O violations → run /java-design-pattern to find the right pattern
  • For D violations → run /java-refactor to extract interfaces
  • For SRP violations → run /java-refactor to split classes

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.