From dm-arch
Use when writing, reviewing, or refactoring code that involves structural decisions. Provides SOLID principles, composition patterns, module organization, and side-effect boundary guidelines.
npx claudepluginhub rbergman/dark-matter-marketplace --plugin dm-archThis skill uses the workspace's default tool permissions.
Apply these principles when writing or modifying code. Use them as tie-breakers when design decisions conflict.
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
Apply these principles when writing or modifying code. Use them as tie-breakers when design decisions conflict.
Favor small, focused types composed together rather than deep inheritance trees. When tempted to extend a class, first ask: "Can this be achieved through composition instead?"
Each module/type/function has one reason to change.
Violation signals:
Action: Split into focused modules with clear, singular purposes.
Extend via new implementations, not constant modification.
Violation signals:
Action: Add behavior through new modules and composition, not conditionals.
Subtypes must work anywhere their base type is expected.
Violation signals:
Action: Prefer interfaces over deep hierarchies. Ensure substitutability.
Depend only on the minimal surface needed.
Violation signals:
Action: Create small, specific interfaces. Split large ones.
Depend on abstractions, not concretions.
Violation signals:
Action: Inject dependencies. Use explicit context/environment objects passed to systems.
Establish clear dependency directions:
core → domain → application → UI
Rules:
Separate pure computation from side effects.
Pure (no side effects):
Impure (side effects):
Systems receive these via injection for deterministic testing:
Push I/O and external integrations to small, well-named boundary modules at system edges.
When refactoring: Bias toward making core logic purer and pushing side effects outward.
Before committing code changes: