Swift Concurrency

Diagnostics des courses de données Swift 6, isolation des acteurs, migration de callback vers async.

par AvdLee · AvdLee/Swift-Concurrency-Agent-Skill

Testé · Fonctionne ★ 9.2/10

Swift Concurrency — Diagnostics des courses de données Swift 6, isolation des acteurs, migration de callback vers async.

Ce que fait

Diagnostique les erreurs de compilation Swift Concurrency et guide la migration vers Swift 6 en lisant d'abord le mode de langage et les paramètres d'isolation du projet, puis en appliquant la plus petite correction sûre. Se déclenche sur Sendable, @MainActor, les acteurs, les courses de données, ou la conversion des gestionnaires de complétion en async/await.

Rapport de test

Tâche : obtenir une compilation propre en Swift 6 d'un modèle avec un chargeur callback et un cache partagé — swiftc -swift-version 6 donnait 3 erreurs « main actor-isolated property ... from a Sendable closure ». L'exécution de base sans la compétence — un correctif réflexe Task { @MainActor in ... } — compile proprement (0 erreurs), c'est-à-dire que selon le compilateur, les deux versions sont égales. La différence est apparue à l'étape suivante : la compétence, selon la règle « shared mutable state → actor », a fait de Cache un acteur, tandis que la version de base l'a laissé en tant que classe ; lorsque j'ai ajouté une exigence réaliste (préchauffage du cache à partir d'un Task.detached en arrière-plan), la version de base a échoué avec l'erreur « non-sendable type 'Cache' ... cannot cross actor boundary », tandis que la version de la compétence a compilé proprement (exit 0). La compétence a également forcé la fixation du language mode et a appliqué sa règle d'isolation d'entrée de tâche, laissant le @MainActor hérité, car le préfixe synchrone mute isLoading. Les 15 fichiers references/ sont tous présents, l'installation a été vérifiée dans un HOME vide sans ~/.claude. Un lien vers un cours payant de l'auteur est présent, mais il est honnêtement divulgué dans le pied de page et marqué « use sparingly ».

Testé le: 2026-07-17 · Claude Code 2.x (agent harness)

Installation

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

Commandes et exemples de prompts

  • /swift-concurrencyDiagnostics des courses de données Swift 6, isolation des acteurs, migration de callback vers async.

Les skills se déclenchent sur des demandes en langage courant — aucune commande à retenir. Après installation, des prompts comme ceux-ci l'activent (en anglais) :

  • 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