112-java-type-design

Java design guidelines for making types and domain models clear, consistent, and easier to use correctly. They cover naming, type hierarchies, wrappers, generics, and domain-specific types.

In plain words
What is it for?
Use them when designing or reviewing Java classes, interfaces, generic types, wrappers, naming conventions, and domain models.
Why use it?
They reduce confusion about what values and objects represent, especially as a codebase grows. Clear types make the program's intent easier for both the compiler and developers to check.

Cursor rule for Cursor

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add rules/alkoleft/platform-context-exporter/112-java-type-design
Clone the repo
git clone --depth 1 https://github.com/alkoleft/platform-context-exporter

Made for: Cursor.

Per session 0 Nothing until a file matches its globs; then the whole rule loads.
When invoked 4,583 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00000 $0.04583
Opus 5 $0.00000 $0.02292
Sonnet 5 $0.00000 $0.00917
Haiku 4.5 $0.00000 $0.00458

Measured yesterday against content hash 9c2f78fbcb1b, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

112-java-type-design scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.cursor/rules/112-java-type-design.mdc · 612 lines

How it starts

The opening of the file, as written. The whole thing — 612 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Type Design Thinking in Java

Type design thinking in Java applies typography principles to code structure and organization. Just as typography creates readable, accessible text, thoughtful type design in Java produces maintainable, comprehensible code.

Implementing These Principles

  1. Start with domain modeling: Sketch your type system before coding.
  2. Create a type style guide: Document naming conventions and patterns.
  3. Review for type consistency: Periodically check for style adherence.
  4. Refactor toward clearer type expressions: Improve existing code.
  5. Use tools to enforce style: Configure linters and static analyzers.

Remember, good type design in Java is about communication - making your code's intent clear both to the compiler and to other developers.

Table of contents

  • Rule 1: Establish a Clear Type Hierarchy
  • Rule 2: Use Consistent Naming Conventions (Your Type's "Font Family")
  • Rule 3: Embrace Whitespace (Kerning and Leading)
  • Rule 4: Create Type-Safe Wrappers (Type as Communication)
  • Rule 5: Leverage Generic Type Parameters (Responsive Typography)
  • Rule 6: Create Domain-Specific Languages (Typography with Character)
  • Rule 7: Use Consistent Type "Weights" (Bold, Regular, Light)
  • Rule 8: Apply Type Contrast Through Interfaces
  • Rule 9: Create Type Alignment Through Method Signatures
  • Rule 10: Design for Clear Type Readability and Comprehension
  • Rule 11: Use BigDecimal for Precision-Sensitive Calculations
  • Rule 12: Strategic Type Selection for Methods and Algorithms

Rule 1: Establish a Clear Type Hierarchy

Title: Establish a Clear Type Hierarchy Description: This rule focuses on organizing classes and interfaces into a logical structure using inheritance and composition. A clear hierarchy makes the relationships between types explicit, improving code navigation and understanding. It often involves using nested static classes for closely related types.

Good example:

// GOOD: Clear type hierarchy with descriptive names
public class OrderManagement {
    public static class Order {
        private List<OrderItem> items;
        private Customer customer;
        // ...
    }

    public static class OrderItem {
        private Product product;
        private int quantity;
        // ...
    }
}

Read the full file on GitHub · 612 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 612 lines · 0 tokens per session scan A 9c2f78fbcb1b

Subscribe to this mod's changes

112-java-type-design is a cursor rule published in the GitHub repository alkoleft/platform-context-exporter (48 stars, last pushed 1y ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 4,583 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.