solid
/solid
SOLID design review rules (SRP, OCP, LSP, ISP, DIP) for code reviews: what counts as a real design finding, what is only taste, how to cite it and how severe it is. Use when reviewing a diff, a pull request or recent changes for design problems, when asked for a "SOLID review", "design review", "is this class doing too much", or when a review checklist asks for SOLID. Pair it with the dry skill for duplication and with owasp-asvs for security.
- Author
- siva01c ↗
- Repository
- claude-plugins ↗
- Licence
- MIT
- Last repository change
- 26.09.2026
Assessment and security
- Files in this package
- 1
- Scripts
- 0
- HTML comments
- 0
- URLs in SKILL.md
- 0
No signals detected. Repository changed on 26.09.2026, without references to retired models or APIs.
MIT, open: use and modify while retaining author attribution.
What it does and when to use it
SOLID design review rules (SRP, OCP, LSP, ISP, DIP) for code reviews: what counts as a real design finding, what is only taste, how to cite it and how severe it is. Use when reviewing a diff, a pull request or recent changes for design problems, when asked for a "SOLID review", "design review", "is this class doing too much", or when a review checklist asks for SOLID. Pair it with the dry skill for duplication and with owasp-asvs for security.
Triggers from the description
Original author description
SOLID design review rules (SRP, OCP, LSP, ISP, DIP) for code reviews: what counts as a real design finding, what is only taste, how to cite it and how severe it is. Use when reviewing a diff, a pull request or recent changes for design problems, when asked for a "SOLID review", "design review", "is this class doing too much", or when a review checklist asks for SOLID. Pair it with the dry skill for duplication and with owasp-asvs for security.
How it works
- Scope
- Rules
- Severity
- Reporting a finding
SKILL.md preview
--- name: solid description: > SOLID design review rules (SRP, OCP, LSP, ISP, DIP) for code reviews: what counts as a real design finding, what is only taste, how to cite it and how severe it is. Use when reviewing a diff, a pull request or recent changes for design problems, when asked for a "SOLID review", "design review", "is this class doing too much", or when a review checklist asks for SOLID. Pair it with the dry skill for duplication and with owasp-asvs for security. --- # SOLID Review A design finding is worth reporting only when the design **already costs something or will on the next ordinary change** — a bug, an inconsistency, a change that has to touch many places, a unit that cannot be tested. Style, naming taste, "could be more elegant" and textbook purity are never findings. ## Scope Review the changed code and what it calls, read whole — not only the diff hunks. Judge the change against the conventions the repository already follows (its `AGENTS.md`/`CLAUDE.md`, existing seams and patterns). A repo that keeps small scripts procedural is not violating SOLID by doing so. ## Rules ### SRP — Single Responsibility One unit (function, class, module, service) has to change for **two unrelated reasons**. Name both reasons in the finding. - Finding: an HTTP controller that validates input, builds SQL, renders e-mail and spawns a child process; a Drupal form submit handler that also syncs to a remote API. - Not a finding: a long function that does one thing in several steps. ### OCP — Open/Closed Adding the **next variant** (a check, a backend, a provider, a content type) requires editing a `switch`/`if` chain in **several** places instead of one registration point (a map, a plugin type, a tagged service, an event subscriber). - Cite every place the next variant would have to touch. - Not a finding: a single `match` in one place that is the registration point. ### LSP — Liskov Substitution An implementation that **throws, no-ops or silently changes meaning** for part of the contract it claims, so that callers must know which concrete class they have (`instanceof` checks, "not supported" exceptions, a subclass that ignores an argument). ### ISP — Interface Segregation Callers are forced to depend on methods they never use, or implementers must stub out half an interface. Cite the unused methods and the stubbing implementers. ### DIP — Dependency Inversion Business logic hard-wired to a concrete I/O dependency (network, filesystem, database, clock, child process, a static `\Drupal::service()` call inside a class that supports injection) so that it cannot be tested or swapped without it — **where the codebase already has a seam** for that dependency elsewhere (DI container, an injected client, a clock service). Without an existing seam, report it only if it already blocks a test the change needs. ## Severity - `high` — the design problem has **already produced** a bug or an inconsistency you can point to (two branches of an `if` chain disagree, a stubbed method is called in production). - `medium` — default: the next ordinary change will have to touch several places or cannot be tested without real I/O. - `low` — cleanup that would help but costs nothing today. ## Reporting a finding Each finding carries: - **rule** — `SRP`, `OCP`, `LSP`, `ISP` or `DIP`; - **location** — `file:line` (every location for OCP); - **cost** — one sentence: what breaks or what the next change has to do because of it; - **fix direction** — the smallest change that removes the cost, preferring a seam the codebase already has over a new abstraction. Verify each finding against the code before keeping it: re-read the lines and confirm the cost is real. Fewer, true findings beat a long list. A disagreement with the overall approach of a change is one finding, not a rewrite.
Versions
| Repository | Score | Licence |
|---|---|---|
| This page · siva01c/claude-plugins | 90 | MIT |
| krzysztofsurdy/code-virtuoso | 100 | MIT |
| claude-dev-suite/claude-dev-suite | 100 | MIT |
| vercel-labs/json-render | 100 | Apache-2.0 |
| Tyler-R-Kendrick/agent-skills | 100 | MIT |
Database snapshot: 13.11.2026 · package version 054382f28ee8 (SHA-256 digest of the entire package)
Downloads in the last 30 days: 0 · ranking
Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.
Similar skills
- 90SOLID Principles Code Review
Review Python code for adherence to SOLID principles (SRP, OCP, LSP, ISP, DIP). Use when reviewing Python code for maintainability, testability, and design quality. - 100solid-review
SOLID design-principles review (SRP / OCP / LSP / ISP / DIP) on a file/directory/glob. Review-only. Triggers on `/solid-review`, \"SOLID review\", \"design review\", \"design principles\", \"SOLID 검증\", \"디자인 리뷰\", \"원칙 검증\", or `/deep-test` running it as the Advisory Gate. - 100solid-principles
Apply SOLID principles (SRP, OCP, LSP, ISP, DIP) for tactical class design, method extraction, and interface definition. Use when reviewing class design, refactoring code for maintainability, or designing interfaces and abstractions. - 100solid-principles
SOLID design principles. Covers SRP, OCP, LSP, ISP, DIP. Use when designing classes and modules. USE WHEN: user mentions "SOLID", "single responsibility", "open closed", "Liskov", "interface segregation", "dependency inversion", "dependency injection", asks about "class design",… - 90dry
DRY (Don't Repeat Yourself) review rules for code reviews: find the same knowledge — a rule, a constant, a parser, a validation, a protocol detail — implemented in several places that must change together, and tell it apart from code that merely looks alike. Use when reviewing a… - 87solid-principles
Use when designing or refactoring classes, modules, or interfaces in any OO language — and whenever the user mentions SOLID, single responsibility / SRP, open/closed / OCP, Liskov substitution / LSP, interface segregation / ISP, dependency inversion or dependency injection /…