● Communauté
kylehughes
⚡ Instantané
Swift Concurrency Migration Skill
par kylehughes · kylehughes/the-unofficial-swift-concurrency-migration-skill
Expédiez la simultanéité Swift 6 en toute confiance : le guide de migration officiel d'Apple est chargé dans Claude en tant que compétence, les agents citent donc la documentation réelle.
Cette compétence regroupe le guide de migration Swift Concurrency d'Apple (articles + exemples de code) dans un ensemble SKILL.md/resources afin que Claude Code, Claude Desktop et les clients compatibles puissent citer le guide précisément lors de la conversion du code de rappel/DispatchQueue hérité en asynchrone/attente, acteurs et concurrence stricte. Utile pour les migrations Swift 6 / à concurrence stricte où l'obtention des bonnes limites d'isolement est tout le jeu.
Pourquoi l'utiliser
Fonctionnalités clés
- Exemples de texte et de code complets du guide de migration Swift Concurrency
- Claude cite le guide au lieu d'halluciner les idiomes async/wait
- Installable via Claude Code /plugin ou ZIP pour Claude.ai
- Provisionnement automatique de l'équipe via .claude/settings.json
- Utile pour l'adoption stricte de la concurrence concurrente de Swift 6 et les audits Sendable
Démo en direct
Aperçu en pratique
swift-concurrency-migration-skill.replay
▶ prêt
Cas d'usage
Usages concrets : Swift Concurrency Migration Skill
Quand l'utiliser : Vous possédez un module mélangeant DispatchQueue, des gestionnaires de complétion et des fermetures @escaping ; vous voulez asynchrone/attendre.
Prérequis
- Xcode avec Swift 5.9+ (mode Swift 6 si vous souhaitez une concurrence stricte) — Installez Xcode depuis l'App Store
- Compétence installée — /Le marché des plugins ajoute Kylehughes/the-unofficial-swift-concurrency-migration-skill
Déroulement
-
Demandez un plan de migration
Expliquez-moi tout au long de la migration de NetworkService.swift vers async/await, en citant le Guide de migration Swift Concurrency.✓ Copié
→ Plans de référence nommés articles dans le guide
-
Appliquer étape par étape
Commencez par la surface de l'API publique : convertissez les méthodes de gestion d'achèvement en async/await.✓ Copié
→ Le code utilise des API asynchrones idiomatiques, pas des rappels de wrapper
-
Gérer l’annulation et l’isolement
Ajoutez l'annulation de tâche et décidez de l'isolement des acteurs pour le cache.✓ Copié
→ Task.checkCancellation appropriée + isolation explicite des acteurs
Résultat : Le module a migré proprement avec un raisonnement lié aux propres conseils d'Apple.
Pièges
- Encapsuler les rappels dans withCheckedContinuation sans corriger la propriété — Migrez d'abord l'API racine ; ne laissez pas les suites comme ponts permanents
Quand l'utiliser : Vous avez inversé le mode langage et maintenant le compilateur crie.
Déroulement
-
Regroupez les avertissements
Regroupez les avertissements Sendable dans ce journal de build par catégorie (type de valeur, classe, capture de fermeture).✓ Copié
→ Effacer les compartiments avec les correctifs typiques du guide
-
Appliquer des correctifs canoniques
Pour chaque compartiment, appliquez le correctif du Guide de migration Swift Concurrency ; expliquer les compromis.✓ Copié
→ Les correctifs citent @unchecked Sendable uniquement lorsque cela est justifié
Résultat : Une version Swift 6 qui compile avec un raisonnement documenté pour chaque choix.
Pièges
- Utiliser @unchecked Sendable comme silencieux — Le guide met explicitement en garde contre cela – réserver aux API héritées en boîte avec une sécurité des threads documentée
Quand l'utiliser : Vous modélisez un état partagé et vous ne savez pas quelle saveur d'acteur vous convient.
Déroulement
-
Décrire l'état
Description de l'état : <cache des profils utilisateur ; lecture intensive, écriture toutes les 5 minutes>.✓ Copié
→ La compétence fait référence aux sections acteur/GlobalActor du guide
-
Obtenez la recommandation
Recommandez l'acteur vs GlobalActor avec des citations.✓ Copié
→ Recommandation fondée sur des sections de guide et non sur les meilleures pratiques génériques
Résultat : Modèle d’isolement que vous pouvez défendre en revue.
Combinaisons
Associez-le à d'autres MCPs pour un effet X10
Itérer : migrer → construire → corriger les avertissements → répéter
Après chaque modification, exécutez xcodebuild et renvoyez les avertissements Swift 6 à la compétence.✓ Copié
Questions générales sur le langage Swift ainsi que des conseils spécifiques à la concurrence
Expliquer les packs de paramètres génériques ; puis appliquez-le dans la migration simultanée.✓ Copié
Comparez les coroutines Android Compose avec la concurrence Swift lorsque vous effectuez un travail multiplateforme
Notre équipe iOS utilise async/await ; L'équipe Android utilise des coroutines. Alignez les modèles de concurrence pour la couche API partagée.✓ Copié
Coût et limites
Coût d'exécution
- Quota d'API
- Aucune
- Tokens par appel
- Cela dépend de la quantité de guide chargée ; portée étroite des questions
- Monétaire
- Gratuite
- Astuce
- Posez des questions précises (nommez le fichier, nommez l'avertissement) afin que la compétence ne charge que les sections pertinentes.
Sécurité
Permissions, secrets, portée
Stockage des identifiants : Aucune information d'identification
Sortie de données : Aucun — le contenu est regroupé localement
- Il s'agit d'un emballage non officiel du guide Apple. Il s'agit toujours du texte du guide, mais vérifiez par rapport à la documentation Apple en direct si une version récente de Swift a introduit des modifications.
Dépannage
Erreurs courantes et correctifs
Les réponses semblent génériques et ne citent pas de sections
Invitez explicitement : « citez la section du Guide de migration Swift Concurrency ». La compétence possède le texte – faites-lui l'utiliser.
L'installation échoue via /plugin
Mettez à jour Claude Code vers une version prenant en charge le marché /plugin. Vous pouvez également télécharger la version ZIP.
Vérifier : claude --version
Alternatives
Swift Concurrency Migration Skill vs autres
| Alternative | Quand l'utiliser | Compromis |
| the-unofficial-swift-programming-language-skill | Vous voulez le livre de langage Swift, pas le guide de concurrence | Plus large, moins axé sur la migration |
| xcodebuild | Vous souhaitez automatiser les builds/tests, pas migrer le code | Outillage orthogonal |