solid-java

Original🇺🇸 English
Translated

SOLID principles for Java 21+. Files < 100 lines, interfaces separated, modular architecture. Modules MANDATORY.

1installs
Added on

NPX Install

npx skill4agent add fusengine/agents solid-java

Tags

Translated version includes tags in frontmatter

SOLID Java - Modular Architecture

Agent Workflow (MANDATORY)

Before ANY implementation, use
TeamCreate
to spawn 3 agents:
  1. fuse-ai-pilot:explore-codebase - Analyze existing architecture
  2. fuse-ai-pilot:research-expert - Verify Java docs via Context7
  3. fuse-ai-pilot:sniper - Post-implementation validation

DRY - Reuse Before Creating (MANDATORY)

Before writing ANY new code:
  1. Grep the codebase for similar interfaces, services, or logic
  2. Check shared locations:
    modules/core/services/
    ,
    modules/core/interfaces/
  3. If similar code exists -> extend/reuse instead of duplicate
  4. If code will be used by 2+ features -> create it in
    modules/core/

Architecture (Modules MANDATORY)

LayerLocationMax Lines
Controllers
modules/[feature]/controllers/
50
Services
modules/[feature]/services/
100
Repositories
modules/[feature]/repositories/
100
Interfaces
modules/[feature]/interfaces/
30
Models/DTOs
modules/[feature]/models/
50
Shared
modules/core/{services,interfaces,models}/
-
NEVER use flat
src/
structure - always
modules/[feature]/

Critical Rules (MANDATORY)

RuleValue
File limit100 lines (split at 90)
Controllers< 50 lines, delegate to services
Interfaces
modules/[feature]/interfaces/
ONLY
JavadocEvery public method documented
RecordsUse for DTOs (Java 16+)
SealedUse for restricted hierarchies (Java 17+)

Reference Guide

Concepts

TopicReferenceWhen to consult
SOLID Overviewsolid-principles.mdQuick reference
SRPsingle-responsibility.mdFat classes
OCPopen-closed.mdAdding providers
LSPliskov-substitution.mdContracts
ISPinterface-segregation.mdFat interfaces
DIPdependency-inversion.mdInjection
Architecturearchitecture-patterns.mdModular patterns

Templates

TemplateWhen to use
module.mdFeature module structure
service.mdBusiness logic service
interface.mdContract definition
repository.mdData access layer
error.mdCustom exceptions
test.mdUnit tests with mocks

Forbidden

Anti-PatternFix
Files > 100 linesSplit at 90
Interfaces in impl filesMove to
interfaces/
directory
new ConcreteClass()
in services
Use dependency injection
Flat
src/
structure
Use
modules/[feature]/
God classesSplit by responsibility