К основному содержанию
скилл CX Codex

122-java-type-design — скилл для Claude Code: типы в Java

Скилл для ревью и рефакторинга Java-кода: убирает primitive obsession, строит иерархии типов и подсказывает, где нужен BigDecimal.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add jabrena/plinth --skill 122-java-type-design -a claude-code
Открыть на GitHub

Что делает 122-java-type-design

Скилл разбирает Java-код по правилам типового дизайна: иерархии вложенных статических классов, единые имена интерфейсов и реализаций, value-объекты вместо примитивов вроде EmailAddress и Money, generic-параметры, fluent-интерфейсы и builder. Отдельно — числовые типы: для денежных расчётов советует BigDecimal, для необязательных значений Optional, для выбора между Set и List — семантику коллекции.

Работает по шагам. Сначала обязательная компиляция: ./mvnw compile или mvn compile. Если сборка падает, скилл останавливается и ничего не меняет — это блокирующее условие. Потом читает references/122-java-type-design.md с примерами хороших и плохих паттернов, применяет правки и в конце гоняет ./mvnw clean verify или mvn clean verify.

Если непонятно, что именно рефакторить, скилл задаёт уточняющий вопрос вместо правок наугад. То же с нехваткой файлов или инструментов: сообщает, чего нет, и спрашивает, продолжать ли. Проект должен собираться через Maven — на Gradle-сборке шаги компиляции и верификации не сработают.

Какие задачи решает

  • убрать примитивы вроде String и double из доменных полей
  • собрать иерархию типов с вложенными статическими классами
  • ввести value-объекты EmailAddress и Money вместо сырых значений
  • вынести контракт в интерфейс и развести его с реализацией
  • заменить double на BigDecimal в денежных расчётах

Примеры запросов агенту

  • Проверь типовой дизайн в src/main/java/com/example/order/Order.java
  • Убери primitive obsession в модуле billing и заведи value-объекты
  • Сделай ревью иерархии типов и имён интерфейсов в пакете service

Как установить 122-java-type-design

1Через Skills CLI (Vercel)

npx skills add jabrena/plinth --skill 122-java-type-design -a claude-code

2Вручную: положить файлы

~/.claude/skills/122-java-type-design/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/122-java-type-design/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о 122-java-type-design

Как установить 122-java-type-design в Claude?

Выполните npx skills add jabrena/plinth --skill 122-java-type-design -a claude-code. Скилл окажется в ~/.claude/skills/122-java-type-design/SKILL.md.

Что делает 122-java-type-design?

Проверяет и переписывает Java-код по правилам типового дизайна: иерархии, имена, value-объекты, generic-параметры, fluent-интерфейсы, точные числовые типы.

Что нужно, чтобы скилл сработал?

Проект на Maven, который компилируется: скилл сначала запускает ./mvnw compile или mvn compile и при ошибке сборки останавливается. После правок проверяет результат через ./mvnw clean verify или mvn clean verify.

Исходный текст

SKILL.md · Apache-2.0
---
name: 122-java-type-design
description: Use when you need to review, improve, or refactor Java code for type design quality — including establishing clear type hierarchies, applying consistent naming conventions, eliminating primitive obsession with domain-specific value objects, leveraging generic type parameters, creating type-safe wrappers, designing fluent interfaces, ensuring precision-appropriate numeric types (BigDecimal for financial calculations), and improving type contrast through interfaces and method signature alignment. This should trigger for requests such as Review Java code for type design; Improve type design in Java code; Fix primitive obsession in Java code; Create value objects in Java code. Part of Plinth Toolkit
license: Apache-2.0
metadata:
  author: Juan Antonio Breña Moral
  version: 0.19.0
---
# Type Design Thinking in Java

Review and improve Java code using comprehensive type design principles that apply typography concepts to code structure and organization for maximum clarity and maintainability.

**What is covered in this Skill?**

- Clear type hierarchies: nested static classes, logical structure
- Consistent naming conventions: domain-driven patterns, uniform interface/implementation naming
- Strategic whitespace for readability
- Type-safe wrappers: value objects replacing primitive obsession (EmailAddress, Money)
- Generic type parameters: flexible reusable types, bounded parameters
- Domain-specific fluent interfaces: builder pattern, method chaining
- Type weights: conceptual importance — core domain vs supporting vs utility
- Type contrast through interfaces: contract vs implementation separation
- Aligned method signatures: consistent parameter and return types across related classes
- Self-documenting code: clear descriptive names
- BigDecimal for precision-sensitive calculations (financial/monetary operations)
- Strategic type selection: Optional, Set vs List, interfaces over concrete types

**Scope:** The reference is organized by examples (good/bad code patterns) for each core area. Apply recommendations based on applicable examples.

## Constraints

Before applying any type design 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
- **BEFORE APPLYING**: Read the reference for detailed examples, good/bad patterns, and constraints
- **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 type design
- Improve type design in Java code
- Fix primitive obsession in Java code
- Create value objects in Java code
- Create type hierarchies in Java code
- Create fluent interfaces in Java code

## Workflow

1. **Compile project before type-design changes**

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

2. **Read type-design reference and inspect code**

Read `references/122-java-type-design.md` and identify type hierarchy, naming, and value-object improvements.

3. **Apply type-design refactorings**

Implement selected type-safety and readability improvements based on applicable patterns.

4. **Verify with full build**

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

## Reference

For detailed guidance, examples, and constraints, see [references/122-java-type-design.md](references/122-java-type-design.md).

© Juan Antonio Breña Moral · Apache-2.0 · jabrena/plinth

Похожие скиллы

Все скиллы по теме «Языки программирования» →
java-junit официальный github Пишет, проверяет и исправляет Java-тесты на JUnit, AssertJ и Mockito. Нужен при добавлении, рефакторинге или разборе падений тестов в Maven и Gradle. 11 632установок java-upgrade официальный github Пошагово помогает перевести Java-проект на новый JDK и освоить новые возможности языка. Подходит для переходов 11 → 17, 17 → 21 и 21 → 25. 6установок java-architect https://github.com/Jeffallan Скилл помогает проектировать Java-приложения на Spring Boot, писать реактивные API, разбирать запросы JPA и настраивать безопасность через OAuth2 и JWT. CX Codex +1 6 000установок type-design-performance Aaronontheweb Скилл для проектирования типов .NET с оглядкой на производительность: запечатанные классы, readonly-структуры, отложенный перебор коллекций. CX Codex +1 655установок java-migration decebals Ведёт проект по цепочке LTS-версий Java: от оценки текущего состояния до правки сборки и тестов. Пригодится, когда надо перевести легаси на Java 21 или 25. CX Codex +1 321установок java-code-review decebals Скилл прогоняет Java-код по чек-листу: null safety, исключения, конкурентность, утечки ресурсов. Пригодится перед мержем PR. CX Codex +1 1 000установок

Из того же набора40

121-java-object-oriented-design Разбирает Java-код по принципам SOLID, DRY и YAGNI, находит God Class и Feature Envy и предлагает точечные рефакторинги. Пригодится при ревью и переработке объектной модели. CX Codex +1 469установок 131-java-testing-unit-testing Скилл помогает писать и рефакторить модульные тесты на Java по стандартам JUnit 5, AssertJ и Mockito. Он находит антипаттерны вроде общего состояния и проверяет граничные условия. CX Codex +1 449установок 141-java-refactoring-with-modern-features Скилл переводит старый Java-код на современные возможности языка: лямбды, Stream API, Optional, java.time. Пригодится, когда проект пора чистить от легаси. CX Codex +1 427установок 125-java-concurrency Скилл для ИИ-агента, который разбирает Java-код на гонки, блокировки и утечки потоков и предлагает правки по современным средствам java.util.concurrent. CX Codex +1 402установок 302-frameworks-spring-boot-rest Скилл для проектирования и разбора REST API на Spring Boot: методы, коды ответов, DTO, версионирование, пагинация, ошибки по RFC 7807. CX Codex +1 392установок 301-frameworks-spring-boot-core Скилл настраивает правила ревью и рефакторинга кода на Spring Boot 4.0.x. Помогает внедрять зависимости через конструктор и валидировать конфигурацию. CX Codex +1 390установок 111-java-maven-dependencies Добавляет в pom.xml зависимости для качества кода: JSpecify, Error Prone с NullAway, VAVR, ArchUnit, JavaMoney. Спрашивает, что нужно, и ставит только выбранное. CX Codex +1 388установок 321-frameworks-spring-boot-testing-unit-tests Скилл ведёт агента по юнит-тестам Spring Boot: Mockito без поднятия контекста, срезы для контроллеров, параметризованные тесты. Пригодится, когда в проекте расплодились @SpringBootTest. CX Codex +1 387установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой