Solid swift
Skill fusengine/agents/plugins/swift-apple-expert/skills/solid-swift
SOLID principles for Swift 6 and SwiftUI (iOS 26+). Files < 100 lines, protocols separated, @Observable, actors, Preview-driven development. Features Modular MANDATORY.From its SKILL.md
npx -y skills add fusengine/agents --skill solid-swiftAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 22 stars22 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
4.1 KB, 908 tokens by cl100k_base, as published. Nobody here has run it
SOLID Swift - Apple Best Practices 2026
Agent Workflow (MANDATORY)
Before ANY implementation, use TeamCreate to spawn 3 agents:
- fuse-ai-pilot:explore-codebase - Analyze existing architecture
- fuse-ai-pilot:research-expert - Verify Swift/Apple docs via Apple Docs MCP + Context7
- XcodeBuildMCP - Build validation after code changes. Then run fuse-ai-pilot:sniper.
DRY - Reuse Before Creating (MANDATORY)
Before writing ANY new code:
- Grep the codebase for similar protocols, services, or logic
- Check shared locations:
Core/Extensions/,Core/Utilities/,Core/Protocols/ - If similar code exists -> extend/reuse instead of duplicate
- If code will be used by 2+ features -> create it in
Core/directly
Architecture (Features Modular MANDATORY)
| Layer | Location | Max Lines |
|---|---|---|
| Views | Features/[Feature]/Views/ | 80 |
| ViewModels | Features/[Feature]/ViewModels/ | 100 |
| Services | Features/[Feature]/Services/ | 100 |
| Protocols | Features/[Feature]/Protocols/ | 30 |
| Shared | Core/{Models,Protocols,Services,Extensions,Utilities}/ | - |
NEVER use flat Sources/ structure - always Features/[Feature]/
Critical Rules (MANDATORY)
| Rule | Value |
|---|---|
| File limit | 100 lines (split at 90) |
| ViewModels | @MainActor @Observable |
| Protocols | Features/[Feature]/Protocols/ or Core/Protocols/ ONLY |
| Models | Sendable structs |
| Documentation | /// on all public APIs |
| Previews | Every View MUST have #Preview |
Reference Guide
Concepts
| Topic | Reference | When to consult |
|---|---|---|
| SOLID Overview | solid-principles.md | Quick reference all principles |
| SRP | single-responsibility.md | Fat views/VMs, splitting files |
| OCP | open-closed.md | Adding providers, extensibility |
| LSP | liskov-substitution.md | Protocol contracts, testing |
| ISP | interface-segregation.md | Fat protocols, splitting |
| DIP | dependency-inversion.md | Injection, testing, mocking |
| Concurrency | concurrency-patterns.md | Actors, @MainActor, Sendable |
| Anti-Patterns | anti-patterns.md | Code smells detection |
Templates
| Template | When to use |
|---|---|
| view.md | SwiftUI View with subviews and #Preview |
| viewmodel.md | @Observable ViewModel with @MainActor |
| service.md | API Service, Mock, Cache actor |
| protocol.md | Service protocol, CQRS, Auth |
| model.md | Model, DTO, Error, Enum |
Forbidden
| Anti-Pattern | Fix |
|---|---|
| Files > 100 lines | Split at 90 |
| Protocols in impl files | Move to Protocols/ directory |
ObservableObject | Use @Observable |
| Completion handlers | Use async/await |
Missing #Preview | Add preview for every View |
| Non-Sendable in async | Use struct with let |
Flat Sources/ structure | Use Features/[Feature]/ |
What ships with it: 13 files
42.0 KB alongside SKILL.md
references/
- anti-patterns.md3.8 KB
- concurrency-patterns.md3.1 KB
- dependency-inversion.md3.7 KB
- interface-segregation.md3.7 KB
- liskov-substitution.md3.8 KB
- open-closed.md3.6 KB
- single-responsibility.md3.4 KB
- solid-principles.md2.5 KB
- templates/model.md2.7 KB
- templates/protocol.md3.1 KB
- templates/service.md3.3 KB
- templates/view.md2.4 KB
- templates/viewmodel.md3.0 KB