SOLID principles for Rust 2024+. Files < 100 lines, traits separated, modular architecture. Modules MANDATORY.
From fuse-solidnpx claudepluginhub fusengine/agents --plugin fuse-solidThis skill uses the workspace's default tool permissions.
references/architecture-patterns.mdreferences/dependency-inversion.mdreferences/interface-segregation.mdreferences/liskov-substitution.mdreferences/open-closed.mdreferences/single-responsibility.mdreferences/solid-principles.mdreferences/templates/error.mdreferences/templates/handler.mdreferences/templates/module.mdreferences/templates/service.mdreferences/templates/test.mdreferences/templates/trait-def.mdGenerates zero-dependency, animation-rich HTML presentations from scratch, PPT/PPTX conversions, or existing slides. For talks, pitches, workshops via visual style exploration.
Provides React and Next.js patterns for component composition, compound components, state management, data fetching, performance optimization, forms, routing, and accessible UIs.
Creates distinctive production-grade frontend UIs for web components, pages, and apps, emphasizing intentional visual design, typography, color, layout, and motion.
Before ANY implementation, use TeamCreate to spawn 3 agents:
Before writing ANY new code:
src/core/services/, src/core/traits/src/core/| Layer | Location | Max Lines |
|---|---|---|
| Handlers | src/modules/[feature]/handlers.rs | 50 |
| Services | src/modules/[feature]/services.rs | 100 |
| Repositories | src/modules/[feature]/repository.rs | 100 |
| Traits | src/modules/[feature]/traits.rs | 30 |
| Models | src/modules/[feature]/models.rs | 50 |
| Shared | src/core/{services,traits,models}/ | - |
NEVER use flat src/ structure - always src/modules/[feature]/
| Rule | Value |
|---|---|
| File limit | 100 lines (split at 90) |
| Handlers | < 50 lines, delegate to services |
| Traits | traits.rs or src/core/traits/ ONLY |
| Rustdoc | /// on every public item |
| Error handling | Use thiserror for custom errors |
| Generics | Use trait bounds, not concrete types |
| Topic | Reference | When to consult |
|---|---|---|
| SOLID Overview | solid-principles.md | Quick reference |
| SRP | single-responsibility.md | Fat structs |
| OCP | open-closed.md | Adding impls |
| LSP | liskov-substitution.md | Trait contracts |
| ISP | interface-segregation.md | Fat traits |
| DIP | dependency-inversion.md | Generics/DI |
| Architecture | architecture-patterns.md | Modular crate |
| Template | When to use |
|---|---|
| module.md | Feature module structure |
| service.md | Business logic service |
| trait-def.md | Trait definition |
| handler.md | HTTP handler (Axum) |
| error.md | Custom errors (thiserror) |
| test.md | Unit + integration tests |
| Anti-Pattern | Fix |
|---|---|
| Files > 100 lines | Split at 90 |
| Traits in impl files | Move to traits.rs |
Box<dyn Any> | Use proper trait bounds |
Flat src/ structure | Use src/modules/[feature]/ |
| Unwrap in library code | Use Result<T, E> |