Agent skill

121 Java Object Oriented Design

by jabrena in jabrena/plinth

A skill your agent uses when reviewing, improving, or refactoring Java object-oriented design, including applying SOLID, DRY, or YAGNI; improving classes and interfaces; correcting encapsulation…

Apache-2.0Auto-check passedDevelopment

Install 121 Java Object Oriented Design

skills CLI
$ npx skills add jabrena/plinth --skill 121-java-object-oriented-design -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install jabrena/plinth 121-java-object-oriented-design --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/jabrena/plinth.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/121-java-object-oriented-design .claude/skills/121-java-object-oriented-design && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
121-java-object-oriented-design
GitHub stars
446
Token cost
~2.1k tokens
SKILL.md length
810 words
Files
9 (incl. references)
Skills in repo
124
Repo updated
First seen
Licence
Apache-2.0

At a glance

A skill your agent uses when reviewing, improving, or refactoring Java object-oriented design, including applying SOLID, DRY, or YAGNI; improving classes and interfaces; correcting encapsulation…

  • Refactoring Java object-oriented design
  • SKILL.md covers Constraints, When to use this skill, Workflow and Reference
  • Calls mvn
  • Including applying SOLID

What it does

121 Java Object Oriented Design is an agent skill from jabrena/plinth. 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

Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 9 other files, including reference files (for example `references/121-java-object-oriented-design-classes-interfaces.md`, `references/121-java-object-oriented-design-code-smells.md` and `references/121-java-object-oriented-design-enums-annotations.md`).

It sits in Development, covering Refactoring. It works with Java. The repository describes itself as: Plinth is an AI-native engineering toolkit for modern Java enterprise SDLC, built around reusable Commands, Agents, Skills, and MCP Servers. The licence is Apache-2.0.

When your agent uses it

  • Refactoring Java object-oriented design
  • Including applying SOLID
  • Improving classes and interfaces
  • Correcting encapsulation

Example prompts

  • “/121-java-object-oriented-design”

What it can do on your machine

Read from SKILL.md and the folder at commit dca88dc. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • mvn

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

121 Java Object Oriented Design loads about 2.1k tokens when it runs, and up to ~24k if it reads all its reference files. Until then it costs about 123 tokens; SKILL.md has 810 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~123
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~24k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from jabrena/plinth at commit dca88dc, republished under its Apache-2.0 licence (© jabrena). 810 words, ~2,089 tokens.

Download SKILL.mdSave it as .claude/skills/121-java-object-oriented-design/SKILL.md (or your agent's skills folder). This skill also uses 8 other files; get the full folder from GitHub.
name
121-java-object-oriented-design
description
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
license
Apache-2.0
metadata.author
Juan Antonio Breña Moral
metadata.version
0.19.0

Java Object-Oriented Design Guidelines

Review and improve Java code using focused object-oriented design references selected after assessing the request and affected code.

What is covered in this Skill?

  • Fundamental design principles (SOLID, DRY, YAGNI)
  • Class and interface design: composition over inheritance, immutability, accessibility minimization, accessor methods
  • Core OOP concepts: encapsulation, inheritance, polymorphism
  • Object creation patterns: static factory methods, Builder, Singleton, dependency injection, avoiding unnecessary objects
  • OOD code smells: God Class, Feature Envy, Inappropriate Intimacy, Refused Bequest, Shotgun Surgery, Data Clumps
  • Method design: parameter validation, defensive copies, careful signatures, empty collections over nulls, Optional usage
  • Exception handling: checked vs. runtime exceptions, standard exceptions, failure-capture messages, no silent ignoring

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.

Constraints

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.

  • MANDATORY: Run ./mvnw compile or mvn compile before applying any change
  • SAFETY: If compilation fails, stop immediately and do not proceed — compilation failure is a blocking condition
  • VERIFY: Run ./mvnw clean verify or mvn clean verify after applying improvements
  • PROGRESSIVE DISCLOSURE: Classify the applicable OOD concerns before reading references, then read only the references mapped to those concerns
  • MULTI-CONCERN CHANGES: Read multiple focused references only when the request or diagnosed code problems cross concern boundaries
  • PRESERVE BEHAVIOR: Apply focused, incremental refactorings without changing observable business behavior
  • INCREMENTAL SAFETY: Compile after each significant refactoring and keep changes easy to revert if validation reveals a regression
  • DEPENDENCY SAFETY: Confirm refactoring does not break imports, dependencies, class relationships, or established contracts
  • ADJACENT SKILLS: Use skill 122 for dedicated type-design work and skill 126 for dedicated exception-handling work; use the overlapping skill 121 references only when those topics are part of a broader OOD review
  • EDGE CASE: If request scope is ambiguous, stop and ask a clarifying question before applying changes
  • EDGE CASE: If required inputs, files, or tooling are missing, report what is missing and ask whether to proceed with setup guidance

When to use this skill

  • Review Java code for object-oriented design
  • Refactor Java code for object-oriented design
  • Improve Java code for object-oriented design
  • Fix OOP concept misuse in Java code
  • Identify and resolve code smells in Java code
  • Improve object creation patterns in Java code
  • Improve method design in Java code
  • Improve exception handling in Java code
Show full SKILL.md (405 more words)Show less

Workflow

  1. Compile project before OOD changes

Run ./mvnw compile or mvn compile and stop immediately if compilation fails.

  1. Assess code and classify OOD concerns

Analyze the request and affected Java code before reading implementation guidance. Classify each relevant problem into one or more concerns:

  • Fundamental principles: SOLID, DRY, or YAGNI violations.
  • Core OOP concepts: encapsulation, inheritance, or polymorphism misuse.
  • Code smells: God Class, Feature Envy, Inappropriate Intimacy, Refused Bequest, Shotgun Surgery, or Data Clumps.
  • Object creation: factories, builders, singletons, dependency injection, or unnecessary object creation.
  • Classes and interfaces: accessibility, public fields, mutability, composition, or inheritance design.
  • Enums and annotations: int constants, ordinals, bit fields, ordinal indexing, or missing @Override.
  • Methods: parameter validation, defensive copies, signatures, null collections, or Optional.
  • Exceptions: exception contracts that are part of the broader OOD review.

If the request is dedicated type-design work, use skill 122. If it is dedicated exception-handling work, use skill 126.

  1. Read only applicable OOD references

Map the classified concerns to focused references:

  • For SOLID, DRY, or YAGNI, read references/121-java-object-oriented-design-principles.md.
  • For encapsulation, inheritance, or polymorphism, read references/121-java-object-oriented-design-oop-concepts.md.
  • For object-oriented code smells, read references/121-java-object-oriented-design-code-smells.md.
  • For factories, builders, singletons, dependency injection, or unnecessary objects, read references/121-java-object-oriented-design-object-creation.md.
  • For class and interface boundaries, accessibility, mutability, composition, or inheritance design, read references/121-java-object-oriented-design-classes-interfaces.md.
  • For enums, ordinals, bit fields, enum lookup, or @Override, read references/121-java-object-oriented-design-enums-annotations.md.
  • For method contracts, validation, defensive copies, signatures, collection returns, or Optional, read references/121-java-object-oriented-design-methods.md.
  • For exception contracts within a broader OOD review, read references/121-java-object-oriented-design-exceptions.md.

Read every reference required by a cross-concern refactoring, but do not read unrelated references.

  1. Apply focused refactorings

Prioritize findings by impact: CRITICAL, MAINTAINABILITY, FLEXIBILITY, or CODE_QUALITY. Apply the smallest suitable refactoring for each diagnosed concern while preserving observable behavior:

  • Extract classes or methods to restore focused responsibilities.
  • Introduce or refine abstractions for extension, interface segregation, and dependency inversion.
  • Correct inheritance hierarchies to preserve substitutability, or replace inheritance with composition.
  • Move behavior to eliminate Feature Envy and improve encapsulation.
  • Introduce cohesive value or parameter objects for Data Clumps.
  • Hide exposed state and reduce unnecessary coupling.

Apply changes incrementally and compile after each significant refactoring.

  1. Verify with full build

Run ./mvnw clean verify or mvn clean verify after applying improvements.

  1. Report applied OOD 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.

Reference

For detailed guidance, examples, and constraints, see:

© jabrena, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 8 other files (references) in skills/121-java-object-oriented-design of jabrena/plinth.

  • SKILL.md
  • references/121-java-object-oriented-design-classes-interfaces.md
  • references/121-java-object-oriented-design-code-smells.md
  • references/121-java-object-oriented-design-enums-annotations.md
  • references/121-java-object-oriented-design-exceptions.md
  • references/121-java-object-oriented-design-methods.md
  • references/121-java-object-oriented-design-object-creation.md
  • references/121-java-object-oriented-design-oop-concepts.md
  • references/121-java-object-oriented-design-principles.md

Open the folder on GitHubat commit dca88dc

Compare with similar skills

121 Java Object Oriented Design next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

121 Java Object Oriented Design compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
121 Java Object Oriented Design this skilljabrena/plinth446—~2.1kAutomated safety check: PassApache-2.0
Java Design Patterns Referencedecebals/claude-code-java7511 repos~4.4kAutomated safety check: PassMIT
Bootui Java Developmentjdubois/boot-ui307—~1.3kAutomated safety check: PassApache-2.0
Goinference-gateway/inference-gateway214—~2.4kAutomated safety check: PassApache-2.0
Java 21 Developer Guide for Grailsapache/grails-core2.9k—~1.9kAutomated safety check: PassApache-2.0
Spring Data Developmentarangodb/spring-data116—~620Automated safety check: PassApache-2.0

Similar skills

  • Java Design Patterns Reference

    decebals/claude-code-java

    A practical Java reference for Builder, Factory, Singleton, Strategy, Observer and other patterns, with a table matching problems to patterns.

    751 GitHub starsUsed in 1 repo~4.4k tokens
    DevelopmentAuto-check passed
  • A skill your agent uses when implementing, debugging, refactoring, or testing existing BootUI Java code, including framework-neutral engine logic, Spring MVC and WebFlux adapters, Quarkus runtime…

    307 GitHub stars~1.3k tokensUpdated today
    DevelopmentAuto-check passed
  • Go

    inference-gateway/inference-gateway

    Idiomatic Go - package and interface design, error wrapping, table-driven tests, generics, the modern standard library (slices/maps/cmp/errors.Join), current syntax, and logging discipline.

    214 GitHub stars~2.4k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Guide for writing modern Java 21 in a Grails and Groovy codebase: records, sealed classes, pattern matching, text blocks and how Java works alongside Groovy.

    2.9k GitHub stars~1.9k tokensUpdated today
    DevelopmentAuto-check passed
  • Spring Data Development

    arangodb/spring-data

    Maintain and extend the arangodb/spring-data repository. An agent skill from arangodb/spring-data.

    116 GitHub stars~620 tokensUpdated 9 days ago
    DevelopmentAuto-check passed
  • Idea MCP

    dtprj/dongting

    IntelliJ IDEA MCP for Java code analysis, testing, refactoring, and project navigation.

    208 GitHub stars~698 tokensUpdated 3 days ago
    DevelopmentAuto-check passed

More from jabrena/plinth

All 124 skills in this repo
  • A skill your agent uses when you need to add or review fuzz testing for Java APIs with CATS — including contract-driven negative testing, malformed payload validation, boundary input exploration, CI…

    446 GitHub stars~874 tokensUpdated today
    Auto-check passed
  • A skill your agent uses when you need to generate Java project diagrams — including UML sequence diagrams, UML class diagrams, C4 model diagrams, UML state machine diagrams, UML Deployment Diagrams…

    446 GitHub stars~3.1k tokensUpdated today
    Auto-check passed
  • A skill your agent uses when you need to add or configure Maven plugins in your pom.xml — including quality tools (enforcer, surefire, failsafe, jacoco, pitest, spotbugs, pmd), security scanning…

    446 GitHub stars~3.2k tokensUpdated today
    Auto-check passed
  • A skill your agent uses when you need to set up JMeter performance testing for a Java project — including creating the run-jmeter.sh script from the exact template, configuring load tests with…

    446 GitHub stars~842 tokensUpdated today
    Auto-check passed
  • A skill your agent uses when you need to set up Java application profiling to detect and measure performance issues — including trusted preinstalled async-profiler v4.x setup, problem-driven…

    446 GitHub stars~903 tokensUpdated today
    Auto-check passed
  • A skill your agent uses when you need to generate a checklist document with embedded commands inventory, following the embedded template exactly and producing INVENTORY-COMMANDS-JAVA.md in the…

    446 GitHub stars~697 tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about 121 Java Object Oriented Design

What does 121 Java Object Oriented Design do?

A skill your agent uses when reviewing, improving, or refactoring Java object-oriented design, including applying SOLID, DRY, or YAGNI; improving classes and interfaces; correcting encapsulation…. 121 Java Object Oriented Design is an agent skill from jabrena/plinth. 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.

When should I use 121 Java Object Oriented Design?

121 Java Object Oriented Design fits situations like: refactoring Java object-oriented design; including applying SOLID; improving classes and interfaces; correcting encapsulation.

How do I install 121 Java Object Oriented Design in Claude Code?

Run `npx skills add jabrena/plinth --skill 121-java-object-oriented-design -a claude-code`. Or copy the skill folder (skills/121-java-object-oriented-design in jabrena/plinth) into .claude/skills/121-java-object-oriented-design in your project. Claude Code loads it when a task matches its description.

How do I install 121 Java Object Oriented Design in Codex?

Run `npx skills add jabrena/plinth --skill 121-java-object-oriented-design -a codex`. Or copy the skill folder (skills/121-java-object-oriented-design in jabrena/plinth) into .agents/skills/121-java-object-oriented-design in your project. Codex loads it when a task matches its description.

Can I use 121 Java Object Oriented Design in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jabrena/plinth --skill 121-java-object-oriented-design -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/121-java-object-oriented-design, .gemini/skills/121-java-object-oriented-design, .github/skills/121-java-object-oriented-design and .opencode/skills/121-java-object-oriented-design in your project.

What does 121 Java Object Oriented Design need to run?

Going by SKILL.md and its folder, 121 Java Object Oriented Design needs the command-line tools its instructions call (mvn).

Does 121 Java Object Oriented Design access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is 121 Java Object Oriented Design safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does 121 Java Object Oriented Design use?

121 Java Object Oriented Design is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does 121 Java Object Oriented Design use?

About 2.1k tokens (SKILL.md is roughly 8.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 22k tokens, read only when the agent opens those files.

What are the alternatives to 121 Java Object Oriented Design?

Skills that share tags, products or a category with 121 Java Object Oriented Design: Java Design Patterns Reference (decebals/claude-code-java, 751 stars), Bootui Java Development (jdubois/boot-ui, 307 stars), Go (inference-gateway/inference-gateway, 214 stars) and Java 21 Developer Guide for Grails (apache/grails-core, 2.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains 121 Java Object Oriented Design?

jabrena (a GitHub user) maintains it in jabrena/plinth, which has 446 GitHub stars. The repository holds 124 skills in this directory. The repository was last updated on October 7, 2026.

Source: jabrena/plinth on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.