fundamentals/solid-principles

Review TypeScript/NestJS modules for SOLID principle adherence.

Updated Mar 26, 2026
One-click install
npx skills add https://github.com/johnnystefan/test-saas-business --skill fundamentals-solid-principles
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: fundamentals/solid-principles
Source: https://github.com/johnnystefan/test-saas-business/tree/main/skills/fundamentals/solid-principles
Command: npx skills add https://github.com/johnnystefan/test-saas-business --skill fundamentals-solid-principles

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill arms agents with the SOLID framework so they can spot tangled responsibilities and fragile dependencies before they erode maintainability in TypeScript and backend services.

Core Features & Use Cases

  • SRP & OCP Checks: Highlights classes doing too much work and pinpoints where strategy or decorator patterns enable extension without modification.
  • LSP & ISP Insights: Evaluates inheritance trees for substitutability and recommends splitting bloated interfaces to match real client needs.
  • DIP Guidance: Encourages abstracting low-level services behind interfaces, which is critical when reviewing NestJS modules like booking or finance to prevent direct Prisma coupling.

Quick Start

Ask the skill to map booking-service domain classes to SOLID responsibilities before refactoring.

Frequently Asked Questions about fundamentals/solid-principles

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

FAQPage Schema
How do I review TypeScript modules for SOLID principles before refactoring?

SOLID principles analysis checks single responsibility, open-closed extension, Liskov substitutability, interface segregation, and dependency inversion to prevent tightly coupled, monolithic backend classes during refactoring.

Why does my NestJS service have fragile dependencies and how do I fix them?

Fragile dependencies in NestJS services often stem from direct Prisma coupling; applying dependency inversion by abstracting low-level services behind interfaces resolves this and prevents tightly coupled modules.

What is the best way to map domain classes to SOLID responsibilities?

The best way to map domain classes to SOLID responsibilities is evaluating inheritance trees for substitutability and pinpointing where strategy or decorator patterns enable extension without modification.

When do I need to split bloated interfaces in TypeScript?

You need to split bloated interfaces in TypeScript when they fail interface segregation, meaning you must separate them to match real client needs rather than forcing clients to depend on unused methods.

Does this SOLID review approach work for Domain-Driven Design architecture?

Yes, this SOLID review approach works for Domain-Driven Design by ensuring architecture modules avoid monolithic structures and maintain clean boundaries for maintainable business logic.