guide-swift-concurrency について
guide-swift-concurrency は、Swift の並行処理コードのレビューと記述に使うワークフロー・パターンガイドです。Swift 開発者が実際の正確性の問題を見つけられるよう、Swift 6.2、アクター、キャンセル、非同期ストリーム、テストを扱います。
主な機能
- 01Swift 並行処理コードのレビュー
- 02Swift 6.2 の並行処理動作の確認
- 03アクターと隔離の評価
- 04構造化並行処理パターンの優先
- 05キャンセル処理と非同期ストリームの確認
- 06並行処理の移行とテストの案内
活用シーン
- 01並行処理コードの正確性レビュー
- 02厳密な並行処理のコンパイルエラー診断
- 03GCD やコールバック方式のコード移行
- 04非同期テストパターンの確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ prisma-labs-dev/ apple-skills --skill guide-swift-concurrencyインストール後、Claude Code で/guide-swift-concurrencyを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/actors.mdasync-streams.mdbridging.mdbug-patterns.mdcancellation.mddiagnostics.mdhotspots.mdinterop.mdnew-features.mdstructured.mdtesting.mdunstructured.md詳細
Guide Skill — これは API リファレンスドキュメントではなく、エキスパート向けのワークフロー/パターンガイドです。 Paul Hudson による twostraws/Swift-Concurrency-Agent-Skill が元になっています。MIT License。
Swift Concurrency のパターン
Swift の並行処理コードをレビュー、作成し、正確性、最新の API の使用、プロジェクトの規約への準拠を確認します。本当に問題がある箇所のみ報告し、細かな点を過度に指摘したり、問題をでっち上げたりしないでください。
基本的な指示
- 厳密な並行処理チェックを有効にした Swift 6.2 以降を対象にします。
- 非構造化並行処理(
Task {})より、構造化並行処理(タスクグループ)を優先します。 - 新しいコードでは、GCD より Swift の並行処理機能を優先します。低レベルのコード、フレームワークとの相互運用、またはパフォーマンスが重要な同期処理では、引き続き GCD を使用できます。
- コンパイラーエラーの解決策として
@unchecked Sendableを提案しないでください。アクター、値型、またはsendingパラメーターを優先します。
レビュープロセス
references/hotspots.mdを使用して、既知の危険なパターンを調べます。references/new-features.mdを使用して、Swift 6.2 の並行処理の動作を確認します。references/actors.mdを使用して、再入可能性と隔離についてアクターの使い方を検証します。references/structured.mdを使用して、構造化並行処理が優先されていることを確認します。references/unstructured.mdを使用して、非構造化タスクの使い方を確認します。references/cancellation.mdを使用して、キャンセル処理を検証します。references/async-streams.mdを使用して、非同期ストリームと継続の使い方を検証します。references/bridging.mdを使用して、同期コードと非同期コード間のブリッジコードを確認します。references/interop.mdを使用して、レガシーな並行処理コードの移行をレビューします。references/bug-patterns.mdを使用して、一般的な失敗パターンと照合します。- 厳密な並行処理に関するエラーがある場合は、
references/diagnostics.mdを使用して診断メッセージに対応する修正方法を確認します。 - テストをレビューする場合は、
references/testing.mdを使用して非同期テストのパターンを確認します。
作業の一部のみを行う場合は、関連する参照ファイルだけを読み込んでください。
参照資料
| トピック | 参照資料 |
|---|---|
| コードレビューで検索する対象 — 既知の危険なパターン | references/hotspots.md |
Swift 6.2:デフォルトの隔離、@concurrent、Task.immediate、隔離された deinit | references/new-features.md |
| アクターの再入可能性、グローバルアクターの推論、隔離パターン | references/actors.md |
タスクグループ、async let、withDiscardingTaskGroup、並行処理の制限 | references/structured.md |
Task と Task.detached の違い、Task {} がコードの臭いとなる場合 | references/unstructured.md |
協調的キャンセル、withTaskCancellationHandler、問題のあるパターン | references/cancellation.md |
AsyncStream.makeStream(of:)、継続のライフサイクル、バックプレッシャー | references/async-streams.md |
チェック付き継続、デリゲートのラップ、@unchecked Sendable | references/bridging.md |
| GCD の移行、Combine から AsyncSequence への移行、完了ハンドラー、ロック | references/interop.md |
| LLM が生成する一般的な並行処理の失敗パターンとその修正方法 | references/bug-patterns.md |
| 厳密な並行処理に関するコンパイラーエラーと、考えられる修正方法の対応 | references/diagnostics.md |
| 非同期テストのパターン、競合状態の検出、タイミングに依存するテストの回避 | references/testing.md |
コメント
Markdown 対応