mcpField
S
solid-java

solid-java

github.com/fusengineDevelopment3444 installsUpdated 1d ago
Repository

About solid-java

A Java architecture skill for teams structuring code around SOLID principles and feature modules. It provides rules and templates for separation of concerns, reuse, dependency injection, and implementation scaffolding.

Key features

  1. 01Feature-based module structure
  2. 02Shared-code reuse checks
  3. 03Thin controllers delegating to services
  4. 04Records for DTOs and sealed types
  5. 05Javadoc for public methods
  6. 06Architecture and code templates

Use cases

  1. 01Organize a Java codebase into feature modules
  2. 02Check for reusable shared services and interfaces
  3. 03Scaffold services, repositories, and tests
  4. 04Apply SOLID principles during implementation

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/fusengine/claude-plugins --skill solid-java

After installing, type/solid-javain Claude Code to confirm it loaded.

Details

From the project README
SOLID Java enforces a modular architecture for Java 25+ (current LTS): every feature lives under `modules/[feature]/` (controllers, services, repositories, interfaces, models/DTOs) with shared code in `modules/core/`, interfaces live only in `modules/[feature]/interfaces/`, controllers stay thin and delegate to services, with files within `FUSE_SOLID_MAX_LINES`, records are used for DTOs and sealed types for restricted hierarchies, and every public method carries Javadoc.

Before writing any new code it requires a DRY check against modules/core/services and modules/core/interfaces. See solid-principles.md for the overview, the per-principle references for SRP/OCP/LSP/ISP/DIP detail, and the templates for module/service/interface/repository/error/test scaffolding.

SOLID Java - Modular Architecture

Agent Workflow (MANDATORY)

Before ANY implementation, spawn 3 agents in parallel, one Agent call each with a name:

  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)

LayerLocation
Controllersmodules/[feature]/controllers/
Servicesmodules/[feature]/services/
Repositoriesmodules/[feature]/repositories/
Interfacesmodules/[feature]/interfaces/
Models/DTOsmodules/[feature]/models/
Sharedmodules/core/{services,interfaces,models}/

NEVER use flat src/ structure - always modules/[feature]/


Critical Rules (MANDATORY)

RuleValue
File limitFUSE_SOLID_MAX_LINES
ControllersThin, delegate to services
Interfacesmodules/[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 over FUSE_SOLID_MAX_LINESSplit by responsibility
Interfaces in impl filesMove to interfaces/ directory
new ConcreteClass() in servicesUse dependency injection
Flat src/ structureUse modules/[feature]/
God classesSplit by responsibility

Comments

Markdown supported