/ Annuaire / Playground / Swift Concurrency Migration Skill
● 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

Démo en direct

Aperçu en pratique

swift-concurrency-migration-skill.replay ▶ prêt
0/0

Installer

Choisissez votre client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "swift-concurrency-migration-skill": {
      "command": "claude",
      "args": [
        "plugin",
        "marketplace",
        "add",
        "kylehughes/the-unofficial-swift-concurrency-migration-skill"
      ],
      "_inferred": false
    }
  }
}

Ouvrez Claude Desktop → Settings → Developer → Edit Config. Redémarrez après avoir enregistré.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "swift-concurrency-migration-skill": {
      "command": "claude",
      "args": [
        "plugin",
        "marketplace",
        "add",
        "kylehughes/the-unofficial-swift-concurrency-migration-skill"
      ],
      "_inferred": false
    }
  }
}

Cursor utilise le même schéma mcpServers que Claude Desktop. La config projet l'emporte sur la globale.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "swift-concurrency-migration-skill": {
      "command": "claude",
      "args": [
        "plugin",
        "marketplace",
        "add",
        "kylehughes/the-unofficial-swift-concurrency-migration-skill"
      ],
      "_inferred": false
    }
  }
}

Cliquez sur l'icône MCP Servers dans la barre latérale Cline, puis "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "swift-concurrency-migration-skill": {
      "command": "claude",
      "args": [
        "plugin",
        "marketplace",
        "add",
        "kylehughes/the-unofficial-swift-concurrency-migration-skill"
      ],
      "_inferred": false
    }
  }
}

Même format que Claude Desktop. Redémarrez Windsurf pour appliquer.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "swift-concurrency-migration-skill",
      "command": "claude",
      "args": [
        "plugin",
        "marketplace",
        "add",
        "kylehughes/the-unofficial-swift-concurrency-migration-skill"
      ]
    }
  ]
}

Continue utilise un tableau d'objets serveur plutôt qu'une map.

~/.config/zed/settings.json
{
  "context_servers": {
    "swift-concurrency-migration-skill": {
      "command": {
        "path": "claude",
        "args": [
          "plugin",
          "marketplace",
          "add",
          "kylehughes/the-unofficial-swift-concurrency-migration-skill"
        ]
      }
    }
  }
}

Ajoutez dans context_servers. Zed recharge à chaud à la sauvegarde.

claude mcp add swift-concurrency-migration-skill -- claude plugin marketplace add kylehughes/the-unofficial-swift-concurrency-migration-skill

Une seule ligne. Vérifiez avec claude mcp list. Supprimez avec claude mcp remove.

Cas d'usage

Usages concrets : Swift Concurrency Migration Skill

Convertir un module lourd DispatchQueue en async/await

👤 Les ingénieurs iOS/macOS modernisent une base de code existante ⏱ ~90 min advanced

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
  1. 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
  2. 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
  3. 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

Auditer une base de code pour les avertissements de conformité Sendable

👤 Équipes activant la vérification de concurrence stricte Swift 6 ⏱ ~60 min advanced

Quand l'utiliser : Vous avez inversé le mode langage et maintenant le compilateur crie.

Déroulement
  1. 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
  2. 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
Combiner avec : xcodebuild

Décidez où présenter les acteurs par rapport à GlobalActor

👤 Les architectes dessinent des limites d'isolement ⏱ ~30 min intermediate

Quand l'utiliser : Vous modélisez un état partagé et vous ne savez pas quelle saveur d'acteur vous convient.

Déroulement
  1. 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
  2. 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.

Combiner avec : jetpack-compose-skill

Combinaisons

Associez-le à d'autres MCPs pour un effet X10

swift-concurrency-migration-skill + xcodebuild

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é
swift-concurrency-migration-skill + the-unofficial-swift-programming-language-skill

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é
swift-concurrency-migration-skill + jetpack-compose-skill

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é

Outils

Ce que ce MCP expose

OutilEntréesQuand appelerCoût
migrating-to-swift-concurrency (SKILL) natural-language code questions Chaque fois que vous touchez à la concurrence Swift et que vous souhaitez des réponses faisant autorité 0

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

Dépannage

Erreurs courantes et correctifs

La compétence ne s'active pas

Vérifiez la description de SKILL.md - c'est ce qui le déclenche. Assurez-vous également que vous exécutez Claude Code ou un client compatible avec Agent Skill.

Vérifier : head ~/.claude/skills/migrating-to-swift-concurrency-skill/SKILL.md
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

AlternativeQuand l'utiliserCompromis
the-unofficial-swift-programming-language-skillVous voulez le livre de langage Swift, pas le guide de concurrencePlus large, moins axé sur la migration
xcodebuildVous souhaitez automatiser les builds/tests, pas migrer le codeOutillage orthogonal

Plus

Ressources

📖 Lire le README officiel sur GitHub

🐙 Voir les issues ouvertes

🔍 Parcourir les 400+ serveurs MCP et Skills