github-actions
Use this skill when authoring or debugging GitHub Actions workflows (.github/workflows/*.yml) — e.g. "add CI for this Drupal…
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",
Claude Code
$ npx -y skills add siva01c/claude-plugins --skill solid --agent claude-code
Codex
$ npx skills add siva01c/claude-plugins --skill solid -a codex -y
Cursor
$ npx skills add siva01c/claude-plugins --skill solid -a cursor -y
Gemini CLI
$ npx skills add siva01c/claude-plugins --skill solid -a gemini-cli -y
GitHub Copilot
$ npx skills add siva01c/claude-plugins --skill solid -a github-copilot -y
OpenCode
$ npx skills add siva01c/claude-plugins --skill solid -a opencode -y
Windsurf
$ npx skills add siva01c/claude-plugins --skill solid -a windsurf -y
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.
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.
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.
One unit (function, class, module, service) has to change for **two unrelated reasons**. Name both reasons in the finding.
child process; a Drupal form submit handler that also syncs to a remote API.
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).
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).
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.
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.
to (two branches of an `if` chain disagree, a stubbed method is called in production).
tested without real I/O.
Each finding carries:
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.
A curated collection of Claude Code plugins for Drupal development, security, and deployment. Each plugin covers one topic — Drupal itself, DDEV, Docker, CI/CD, git workflows, and security verification — so you install only what you need.
Use this skill when authoring or debugging GitHub Actions workflows (.github/workflows/*.yml) — e.g. "add CI for this Drupal…
Use this skill when authoring or debugging GitLab CI/CD pipelines (.gitlab-ci.yml) — e.g. "add a CI pipeline for this Drupal…
Use for operational Drupal 11 workflows in DDEV environments, including safe updates, backup-first procedures, and…
Use this skill when authoring or editing Docker Compose files (compose.yaml / docker-compose.yml), running multi-container…
Use this skill when running local AI models with Docker Model Runner — the `docker model` CLI — e.g. "run an LLM locally with…
Use when creating or extending Drupal 11 custom modules, including scaffolding, service architecture, and dependency injection…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.