Swift Concurrency

Diagnostyka wyścigów danych w Swift 6, izolacja aktorów, migracja z callbacków na async/await.

Autor: AvdLee · AvdLee/Swift-Concurrency-Agent-Skill

Testowano · Działa ★ 9.2/10

Swift Concurrency — Diagnostyka wyścigów danych w Swift 6, izolacja aktorów, migracja z callbacków na async/await.

Co robi ten skill

Diagnozuje błędy kompilatora Swift Concurrency i prowadzi migrację do Swift 6, najpierw odczytując tryb języka projektu i ustawienia izolacji, a następnie stosując najmniejszą bezpieczną poprawkę. Uruchamia się na Sendable, @MainActor, aktorów, wyścigi danych lub konwersję completion handlers na async/await.

Raport z testu

Zadanie: doprowadzić do czystej kompilacji w Swift 6 modelu z ładowarką callback i wspólnym cachem — swiftc -swift-version 6 dawał 3 błędy «main actor-isolated property ... from a Sendable closure». Podstawowe uruchomienie bez umiejętności — odruchowa poprawka Task { @MainActor in ... } — kompiluje się czysto (0 błędów), czyli według kompilatora obie wersje są równe. Różnica pojawiła się w następnym kroku: umiejętność, zgodnie z zasadą «shared mutable state → actor», uczyniła Cache aktorem, a wersja bazowa pozostawiła go jako klasę; kiedy dopisałem realistyczne wymaganie (rozgrzewanie cache'u z tła Task.detached), wersja bazowa upadła z błędem «non-sendable type 'Cache' ... cannot cross actor boundary», a wersja z umiejętnością skompilowała się czysto (exit 0). Umiejętność wymusiła również najpierw ustalenie language mode i zastosowała swoją zasadę Task entry isolation, pozostawiając odziedziczony @MainActor, ponieważ synchroniczny prefiks mutuje isLoading. Wszystkie 15 plików references/ jest na miejscu, instalacja sprawdzona w pustym HOME bez ~/.claude. Link do płatnego kursu autora jest, ale uczciwie ujawniony w stopce i oznaczony «use sparingly».

Testowano: 2026-07-17 · Claude Code 2.x (agent harness)

Instalacja

git clone https://github.com/AvdLee/Swift-Concurrency-Agent-Skill.git
mkdir -p ~/.claude/skills
cd Swift-Concurrency-Agent-Skill && cp -r swift-concurrency ~/.claude/skills/swift-concurrency

Komendy i przykładowe prompty

  • /swift-concurrencyDiagnostyka wyścigów danych w Swift 6, izolacja aktorów, migracja z callbacków na async/await.

Skille uruchamiają się na zwykłe polecenia — bez komend do zapamiętania. Po instalacji aktywują go prompty takie jak te (po angielsku):

  • My Swift 6 build throws main actor-isolated Sendable closure errors, help
  • Migrate this completion-handler loader to async/await under Swift 6 strict mode
  • This shared mutable cache won't cross the actor boundary in Swift 6