convention-solid-isp

Split large interfaces into focused, client-specific contracts.

Updated Mar 19, 2026
One-click install
npx skills add https://github.com/sunLeee/optimization --skill convention-solid-isp
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: convention-solid-isp
Source: https://github.com/sunLeee/optimization/tree/main/.claude/skills/reference/philosophy/solid/isp
Command: npx skills add https://github.com/sunLeee/optimization --skill convention-solid-isp

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

ISP (Interface Segregation Principle) states that clients should not depend on interfaces they do not use. It helps prevent fat, monolithic interfaces by splitting large contracts into focused, cohesive ones tailored to specific clients or responsibilities. This reduces coupling and makes systems easier to maintain and evolve.

Core Features & Use Cases

  • Split large interfaces into client-specific, cohesive interfaces to minimize unused methods.
  • Improve testability, readability, and maintainability by reducing surface area and dependencies.
  • Use Case: design an API with separate Reader, Writer, and Validator interfaces so clients only depend on the parts they actually use.

Quick Start

Refactor a monolithic interface into small, client-specific interfaces and ensure implementations depend only on the relevant contracts.

Frequently Asked Questions about convention-solid-isp

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
What is the Interface Segregation Principle in software design?

The Interface Segregation Principle (ISP) states that clients should not depend on interfaces they do not use. It solves the problem of monolithic contracts by splitting large interfaces into focused, client-specific ones to minimize coupling and improve system maintainability.

How do I split a large API interface into smaller client-specific contracts?

To split a large API interface, refactor monolithic contracts into small, cohesive interfaces tailored to specific client responsibilities. Ensure implementations depend only on the relevant contracts, like separating Reader, Writer, and Validator interfaces so clients only use necessary parts.

When should I apply interface segregation in clean architecture?

Apply interface segregation in clean architecture when designing APIs, plugin architectures, or service interfaces to reduce unused methods. It is needed when fat interfaces cause tight coupling, requiring cohesive, minimal interfaces and explicit client-bound dependencies to support dependency injection.

Does interface segregation improve testability in service interfaces?

Yes, interface segregation improves testability in service interfaces by reducing the surface area and dependencies. By ensuring clients depend only on focused, cohesive interfaces they actually use, implementations become easier to mock, read, and maintain during testing.

What is the best way to reduce coupling in a monolithic plugin architecture?

The best way to reduce coupling in a monolithic plugin architecture is to split large interfaces into focused, client-specific contracts. This approach minimizes unused methods and ensures teams depend only on explicit, client-bound dependencies, improving overall maintainability.