mcpField
S
solid-swift

solid-swift

github.com/fusengine開発3441 回インストール2 週間前に更新
リポジトリ

solid-swift について

solid-swiftは、Swift 6とSwiftUIのプロジェクト向けコーディングスキルです。モジュール構成の規則、SOLID・DRYの指針、コードテンプレートにより、統一した設計と並行処理の規約を支援します。

主な機能

  1. 01機能単位のモジュール構成を必須化
  2. 02SOLID原則のリファレンス
  3. 03ファイルサイズと層ごとの上限
  4. 04Swiftの並行処理パターン
  5. 05一般的なコードテンプレート
  6. 06共有コードの再利用確認

活用シーン

  1. 01SwiftUI機能のディレクトリ設計
  2. 02大きなViewやViewModelの分割
  3. 03並行処理規約に沿った実装
  4. 04機能追加前の再利用可能な要素の確認

インストール

コマンドをコピーしてターミナルで実行します。

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

インストール後、Claude Code で/solid-swiftを入力して読み込まれたか確認します。

同梱ファイル

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

詳細

Swift 6 および SwiftUI(iOS 27 以降)プロジェクトにおいて SOLID 原則と DRY 原則を徹底します。必須の Features/[Feature]/ モジュール型ディレクトリ構造(フラットな Sources/ レイアウトは不可)、厳格なファイルサイズ制限(100 行、90 行で分割、Views/ViewModels/Services/Protocols のレイヤーごとの予算付き)、プロトコルを専用の Protocols/ ディレクトリに分離、ViewModel には @Observable + @MainActor、モデルには Sendable 構造体、そしてすべての View に必須の #Preview を採用します。

5 つすべての SOLID 原則を専用のリファレンス(SRP、OCP、LSP、ISP、DIP)でカバーし、並行処理パターン(アクター、@MainActor、Sendable)、アンチパターンカタログ、および View、ViewModel、Service、プロトコル、モデルのコードテンプレートを提供します。

新しいコードを書く前にコードベースを grep して再利用可能なプロトコルやサービスを探すこと、また 2 つ以上の機能で使われるロジックを重複させる前に共有の場所(Core/Extensions/、Core/Utilities/、Core/Protocols/)を確認することを必須とします。

SOLID Swift - Apple ベストプラクティス 2026

エージェントワークフロー(必須)

いかなる実装の前にも、3 つのエージェントを並列で起動します。それぞれ name を指定した 1 回の Agent 呼び出しです。

  1. fuse-ai-pilot:explore-codebase - 既存アーキテクチャを分析
  2. fuse-ai-pilot:research-expert - Apple Docs MCP + Context7 で Swift/Apple ドキュメントを検証
  3. XcodeBuildMCP - コード変更後のビルド検証。その後 fuse-ai-pilot:sniper を実行。

DRY - 作成する前に再利用(必須)

新しいコードを書く前に:

  1. 類似のプロトコル、サービス、ロジックがないかコードベースを grep する
  2. 共有の場所を確認する:Core/Extensions/、Core/Utilities/、Core/Protocols/
  3. 類似のコードが存在する場合 -> 重複させずに拡張・再利用する
  4. 2 つ以上の機能で使われるコードの場合 -> 直接 Core/ に作成する

アーキテクチャ(モジュール型 Features は必須)

レイヤー場所最大行数
ViewsFeatures/[Feature]/Views/80
ViewModelsFeatures/[Feature]/ViewModels/100
ServicesFeatures/[Feature]/Services/100
ProtocolsFeatures/[Feature]/Protocols/30
SharedCore/{Models,Protocols,Services,Extensions,Utilities}/-

フラットな Sources/ 構造は決して使わない - 常に Features/[Feature]/


重要なルール(必須)

ルール値
ファイル制限100 行(90 行で分割)
ViewModels@MainActor @Observable
プロトコルFeatures/[Feature]/Protocols/ または Core/Protocols/ のみ
モデルSendable 構造体
ドキュメントすべての public API に ///
プレビューすべての View に #Preview が必須

リファレンスガイド

概念
トピックリファレンス参照すべきとき
SOLID 概要solid-principles.mdすべての原則のクイックリファレンス
SRPsingle-responsibility.md肥大化した View/VM、ファイルの分割
OCPopen-closed.mdプロバイダの追加、拡張性
LSPliskov-substitution.mdプロトコル契約、テスト
ISPinterface-segregation.md肥大化したプロトコル、分割
DIPdependency-inversion.md注入、テスト、モック
並行処理concurrency-patterns.mdアクター、@MainActor、Sendable
アンチパターンanti-patterns.mdコードスメルの検出
テンプレート
テンプレート使用する場面
view.mdサブビューと #Preview を備えた SwiftUI View
viewmodel.md@MainActor を付けた @Observable ViewModel
service.mdAPI Service、Mock、Cache actor
protocol.mdService プロトコル、CQRS、Auth
model.mdModel、DTO、Error、Enum

禁止事項

アンチパターン修正方法
100 行を超えるファイル90 行で分割する
実装ファイル内のプロトコルProtocols/ ディレクトリに移動する
ObservableObject@Observable を使用する
コールバックハンドラーasync/await を使用する
#Preview の欠落すべての View にプレビューを追加する
非同期処理における非 Sendablelet を付けた struct を使用する
フラットな Sources/ 構造Features/[Feature]/ を使用する

コメント