mcpField
S
solid-swift

solid-swift

github.com/fusengineDevelopment3441 installsUpdated 2w ago
Repository

About solid-swift

solid-swift is a coding skill for Swift 6 and SwiftUI projects, using modular layout rules, SOLID and DRY guidance, and code templates to shape implementation. It is intended for Swift developers who need consistent architecture and concurrency conventions.

Key features

  1. 01Requires feature-based modular directories
  2. 02Provides references for SOLID principles
  3. 03Sets file-size and layer limits
  4. 04Covers Swift concurrency patterns
  5. 05Includes common code templates
  6. 06Checks for reusable shared code

Use cases

  1. 01Plan directory structure for SwiftUI features
  2. 02Split oversized views or view models
  3. 03Implement code following concurrency conventions
  4. 04Check for reusable components before adding features

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/fusengine/agents --skill solid-swift

After installing, type/solid-swiftin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
anti-patterns.md
concurrency-patterns.md
dependency-inversion.md
interface-segregation.md
liskov-substitution.md
open-closed.md
single-responsibility.md
solid-principles.md
references/templates/
model.md
protocol.md
service.md
view.md
viewmodel.md

Details

From the project README
Enforces SOLID and DRY principles for Swift 6 and SwiftUI (iOS 27+) projects: a mandatory Features/[Feature]/ modular directory structure (never a flat Sources/ layout), strict file-size limits (100 lines, split at 90, with per-layer budgets for Views/ViewModels/Services/Protocols), protocols separated into their own Protocols/ directories, @Observable + @MainActor for ViewModels, Sendable structs for models, and mandatory #Preview on every View.

Covers all five SOLID principles with dedicated references (SRP, OCP, LSP, ISP, DIP), concurrency patterns (actors, @MainActor, Sendable), an anti-pattern catalog, and code templates for views, view models, services, protocols, and models.

Requires grepping the codebase for reusable protocols/services before writing new code, and checking shared locations (Core/Extensions/, Core/Utilities/, Core/Protocols/) before duplicating logic used by 2+ features.

SOLID Swift - Apple Best Practices 2026

Agent Workflow (MANDATORY)

Before ANY implementation, spawn 3 agents in parallel, one Agent call each with a name:

  1. fuse-ai-pilot:explore-codebase - Analyze existing architecture
  2. fuse-ai-pilot:research-expert - Verify Swift/Apple docs via Apple Docs MCP + Context7
  3. XcodeBuildMCP - Build validation after code changes. Then run fuse-ai-pilot:sniper.

DRY - Reuse Before Creating (MANDATORY)

Before writing ANY new code:

  1. Grep the codebase for similar protocols, services, or logic
  2. Check shared locations: Core/Extensions/, Core/Utilities/, Core/Protocols/
  3. If similar code exists -> extend/reuse instead of duplicate
  4. If code will be used by 2+ features -> create it in Core/ directly

Architecture (Features Modular MANDATORY)

LayerLocationMax Lines
ViewsFeatures/[Feature]/Views/80
ViewModelsFeatures/[Feature]/ViewModels/100
ServicesFeatures/[Feature]/Services/100
ProtocolsFeatures/[Feature]/Protocols/30
SharedCore/{Models,Protocols,Services,Extensions,Utilities}/-

NEVER use flat Sources/ structure - always Features/[Feature]/


Critical Rules (MANDATORY)

RuleValue
File limit100 lines (split at 90)
ViewModels@MainActor @Observable
ProtocolsFeatures/[Feature]/Protocols/ or Core/Protocols/ ONLY
ModelsSendable structs
Documentation/// on all public APIs
PreviewsEvery View MUST have #Preview

Reference Guide

Concepts
TopicReferenceWhen to consult
SOLID Overviewsolid-principles.mdQuick reference all principles
SRPsingle-responsibility.mdFat views/VMs, splitting files
OCPopen-closed.mdAdding providers, extensibility
LSPliskov-substitution.mdProtocol contracts, testing
ISPinterface-segregation.mdFat protocols, splitting
DIPdependency-inversion.mdInjection, testing, mocking
Concurrencyconcurrency-patterns.mdActors, @MainActor, Sendable
Anti-Patternsanti-patterns.mdCode smells detection
Templates
TemplateWhen to use
view.mdSwiftUI View with subviews and #Preview
viewmodel.md@Observable ViewModel with @MainActor
service.mdAPI Service, Mock, Cache actor
protocol.mdService protocol, CQRS, Auth
model.mdModel, DTO, Error, Enum

Forbidden

Anti-PatternFix
Files > 100 linesSplit at 90
Protocols in impl filesMove to Protocols/ directory
ObservableObjectUse @Observable
Completion handlersUse async/await
Missing #PreviewAdd preview for every View
Non-Sendable in asyncUse struct with let
Flat Sources/ structureUse Features/[Feature]/

Comments

Markdown supported