swift-concurrency-expert について
Swift 6.2 以降のコードにおける並行処理の問題をレビューし、修正するスキルです。actor 分離と Sendable の安全性を重視し、動作変更を抑えながら診断やデータ競合のリスクに対応する開発者向けです。
主な機能
- 01コンパイラ診断の整理
- 02actor 分離コンテキストの確認
- 03最小限の並行処理修正
- 04Sendable を考慮した設計
- 05バックグラウンド処理の安全化
活用シーン
- 01Swift 6.2 の並行処理エラー解消
- 02UI 型の MainActor 分離
- 03共有グローバル状態の保護
- 04高負荷処理のメインアクター外への移動
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ steipete/ agent-scripts --skill swift-concurrency-expertインストール後、Claude Code で/swift-concurrency-expertを入力して読み込まれたか確認します。
同梱ファイルreferences/swift-6-2-concurrency.mdreferences/swiftui-concurrency-tour-wwdc.md
詳細
Swift Concurrency Expert
帰属:@Dimillian の Dimillian/Skills からコピー(2025-12-31)。
概要
Swift 6.2 以降のコードベースにおける Swift Concurrency の問題を、アクター分離、Sendable の安全性、最新の並行処理パターンを適用し、動作への変更を最小限に抑えてレビューし、修正します。
ワークフロー
1. 問題を切り分ける
- コンパイラ診断の正確な内容と、問題のあるシンボルを特定します。
- 現在のアクターコンテキスト(
@MainActor、actor、nonisolated)と、デフォルトのアクター分離モードが有効かどうかを確認します。 - コードが UI に関連するものか、メインアクター以外で実行することを意図したものかを確認します。
2. 安全性を保ちながら最小限の修正を適用する
データ競合の安全性を確保しつつ、既存の動作を維持する変更を優先します。
一般的な修正:
- UI に関連する型:型または該当するメンバーに
@MainActorを付けます。 - メインアクター上の型に対するプロトコル準拠:準拠を分離します(例:
extension Foo: @MainActor SomeProtocol)。 - グローバル/静的状態:
@MainActorで保護するか、アクター内に移します。 - バックグラウンド処理:コストの高い処理を
nonisolated型の@concurrent非同期関数に移すか、可変状態を保護するためにactorを使用します。 - Sendable に関するエラー:不変の値型を優先します。適切な場合にのみ
Sendable準拠を追加し、スレッド安全性を証明できない限り@unchecked Sendableは避けます。
参考資料
- Swift 6.2 の変更点、パターン、例については、
references/swift-6-2-concurrency.mdを参照してください。 - SwiftUI 固有の並行処理に関するガイダンスについては、
references/swiftui-concurrency-tour-wwdc.mdを参照してください。
コメント
Markdown 対応