Use when reviewing, improving, or refactoring Java object-oriented design, including applying SOLID, DRY, or YAGNI; improving classes and interfaces; correcting encapsulation, inheritance, or polymorphism; resolving God Class, Feature Envy, or Data Clumps; and improving object creation, methods, or exception contracts. Triggers include review Java OOD, refactor Java OOD, improve Java OOD, fix OOP misuse, and identify Java code smells. Part of Plinth Toolkit
67
80%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./skills/121-java-object-oriented-design/SKILL.mdReview and improve Java code using focused object-oriented design references selected after assessing the request and affected code.
What is covered in this Skill?
Scope: Classify the applicable OOD concerns first, then load only the focused references needed for those concerns. Load multiple references when a refactoring crosses concern boundaries.
Before applying any OOD changes, ensure the project compiles. If compilation fails, stop immediately — do not proceed until resolved. After applying improvements, run full verification.
./mvnw compile or mvn compile before applying any change./mvnw clean verify or mvn clean verify after applying improvementsRun ./mvnw compile or mvn compile and stop immediately if compilation fails.
Analyze the request and affected Java code before reading implementation guidance. Classify each relevant problem into one or more concerns:
@Override.Optional.If the request is dedicated type-design work, use skill 122. If it is dedicated exception-handling work, use skill 126.
Map the classified concerns to focused references:
references/121-java-object-oriented-design-principles.md.references/121-java-object-oriented-design-oop-concepts.md.references/121-java-object-oriented-design-code-smells.md.references/121-java-object-oriented-design-object-creation.md.references/121-java-object-oriented-design-classes-interfaces.md.@Override, read references/121-java-object-oriented-design-enums-annotations.md.Optional, read references/121-java-object-oriented-design-methods.md.references/121-java-object-oriented-design-exceptions.md.Read every reference required by a cross-concern refactoring, but do not read unrelated references.
Prioritize findings by impact: CRITICAL, MAINTAINABILITY, FLEXIBILITY, or CODE_QUALITY. Apply the smallest suitable refactoring for each diagnosed concern while preserving observable behavior:
Apply changes incrementally and compile after each significant refactoring.
Run ./mvnw clean verify or mvn clean verify after applying improvements.
Report findings by impact and concern, focused references used, refactorings applied, maintainability/flexibility/testability benefits, behavior-preservation evidence, and the final compilation and test result.
For detailed guidance, examples, and constraints, see:
f6dfc6f
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.