/ Annuaire / Playground / Axiom (xOS Dev Skills)
● Communauté CharlesWiltgen ⚡ Instantané

Axiom (xOS Dev Skills)

par CharlesWiltgen · CharlesWiltgen/Axiom

Développement Apple sans se battre contre Swift 6 — skills opinionés pour SwiftUI, concurrence structurée, @Observable, et tooling de build moderne.

Axiom est un bundle de skills Claude Code pour shipper des applications de production sur iOS / iPadOS / watchOS / tvOS. Il applique des conventions modernes : SwiftUI-first, @Observable plutôt qu'ObservableObject, async/await plutôt que completion handlers, types valeurs, et règles de concurrence Swift 6. Inclut des vérifications d'accessibilité, une checklist App Store et de l'hygiène de projet Xcode.

Pourquoi l'utiliser

Fonctionnalités clés

Démo en direct

Aperçu en pratique

prêt

Installer

Choisissez votre client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "axiom-xos-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/CharlesWiltgen/Axiom",
        "~/.claude/skills/axiom"
      ],
      "_inferred": true
    }
  }
}

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

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "axiom-xos-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/CharlesWiltgen/Axiom",
        "~/.claude/skills/axiom"
      ],
      "_inferred": true
    }
  }
}

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": {
    "axiom-xos-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/CharlesWiltgen/Axiom",
        "~/.claude/skills/axiom"
      ],
      "_inferred": true
    }
  }
}

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

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "axiom-xos-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/CharlesWiltgen/Axiom",
        "~/.claude/skills/axiom"
      ],
      "_inferred": true
    }
  }
}

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

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "axiom-xos-skill",
      "command": "git",
      "args": [
        "clone",
        "https://github.com/CharlesWiltgen/Axiom",
        "~/.claude/skills/axiom"
      ]
    }
  ]
}

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

~/.config/zed/settings.json
{
  "context_servers": {
    "axiom-xos-skill": {
      "command": {
        "path": "git",
        "args": [
          "clone",
          "https://github.com/CharlesWiltgen/Axiom",
          "~/.claude/skills/axiom"
        ]
      }
    }
  }
}

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

claude mcp add axiom-xos-skill -- git clone https://github.com/CharlesWiltgen/Axiom ~/.claude/skills/axiom

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

Cas d'usage

Usages concrets : Axiom (xOS Dev Skills)

Migrer un ViewModel vers @Observable

👤 Développeurs iOS adoptant iOS 17+ ⏱ ~45 min advanced

Quand l'utiliser : L'application est en iOS 17+ mais les ViewModels utilisent encore ObservableObject + @Published.

Prérequis
  • Skill installé — git clone https://github.com/CharlesWiltgen/Axiom ~/.claude/skills/axiom
  • Cible de déploiement iOS 17 minimum — Paramètres du projet
Déroulement
  1. Inventaire
    Axiom : liste chaque ObservableObject + @Published dans le projet. Note lesquels sont feuille vs partagé.✓ Copié
    → Liste avec forme + indices de dépendances
  2. Migrer l'un d'eux
    Refactorise ProfileViewModel vers @Observable. Garde l'API publique stable. Mets à jour les bindings des Views consommatrices.✓ Copié
    → VM migré ; @Bindable utilisé dans les vues ; plus de @Published
  3. Vérifier
    Lance xcodebuild pour le scheme. Signale les warnings.✓ Copié
    → Build propre ; pas de warnings Swift 6

Résultat : Base de code @Observable moderne avec des vues plus propres.

Pièges
  • Les tests existants s'appuient sur la projection @Published ($name) — Les tests doivent être réécrits ; tous les patterns d'accès ne se mappent pas directement
Combiner avec : filesystem · ios-simulator-mcp

Corriger les warnings de concurrence Swift 6

👤 Développeurs iOS préparant la concurrence stricte Swift 6 ⏱ ~60 min advanced

Quand l'utiliser : Le build est jaune avec des warnings Sendable / actor.

Déroulement
  1. Triage
    Axiom concurrency-clean : classifie les warnings en : (1) isolation d'acteur, (2) conformité Sendable, (3) risque de data race.✓ Copié
    → Liste catégorisée
  2. Corriger l'isolation d'acteur
    Attaquez d'abord la catégorie 1. Proposez des corrections minimales ; préférez @MainActor sur les types UI plutôt que l'isolation globale.✓ Copié
    → Changements chirurgicaux ; pas de saupoudrage de @MainActor en masse

Résultat : Build Swift 6 propre avec des frontières de concurrence intentionnelles.

Pièges
  • Surusing @MainActor comme raccourci pour 'faire taire les warnings' — Le skill le signale ; utilisez à la place une conception d'acteur correcte

Lancer un audit d'accessibilité

👤 Équipes iOS avant une release ⏱ ~60 min intermediate

Quand l'utiliser : Soumission App Store imminente ; vous voulez VoiceOver/Dynamic Type couverts.

Déroulement
  1. Scanner les vues
    Axiom a11y : scanne les vues SwiftUI. Signalez accessibilityLabel manquant, tailles de police codées en dur, utilisation de couleurs à faible contraste.✓ Copié
    → Liste de problèmes par vue
  2. Patcher les principaux problèmes
    Applique les corrections pour les 10 principaux problèmes. Utilisez les polices système pour Dynamic Type.✓ Copié
    → Patches appliqués ; build toujours propre

Résultat : L'application passe un walkthrough VoiceOver basique.

Pièges
  • Les labels auto-générés ne correspondent pas au modèle mental de l'utilisateur — Remplacez par des labels révélateurs d'intention
Combiner avec : ios-simulator-mcp

Combinaisons

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

axiom-xos-skill + ios-simulator-mcp

Appliquer les recommandations du skill + test de fumée sur le simulateur

Axiom : migre ProfileVM. Puis iOS-Simulator : lance, capture l'écran de profil.✓ Copié
axiom-xos-skill + filesystem

Appliquer les patches dans le projet

Axiom concurrency-clean : produit les patches pour src/. Filesystem : applique-les.✓ Copié
axiom-xos-skill + xcodebuildmcp

Vérification de build après refactoring

Après la migration, XcodeBuild : compile pour sim. Signale les warnings.✓ Copié

Outils

Ce que ce MCP expose

OutilEntréesQuand appelerCoût
vm_migrate_observable viewmodel_path Migration par VM 0
concurrency_clean scope Préparation Swift 6 0
a11y_scan scope Pré-release 0
appstore_checklist (aucun) Pré-soumission 0
xcode_hygiene project Nettoyage périodique 0

Coût et limites

Coût d'exécution

Quota d'API
N/A
Tokens par appel
Les scans de projet font 10k–40k tokens
Monétaire
Gratuit
Astuce
Ciblez les audits sur une fonctionnalité/dossier ; ne déployez pas en éventail sur une grande application

Sécurité

Permissions, secrets, portée

Portées minimales : filesystem-read filesystem-write
Stockage des identifiants : Aucun
Sortie de données : Aucun

Dépannage

Erreurs courantes et correctifs

La migration a cassé l'usage de @Bindable

Certaines vues ont besoin de wrappers @Bindable ; vérifiez que le skill n'en a pas manqué

Les correctifs de concurrence changent silencieusement la sémantique

Lancez toujours les tests post-migration ; les changements de concurrence sont subtils

Les suggestions a11y semblent boilerplate

Le skill suit les HIG Apple ; affinez avec vos propres labels

Alternatives

Axiom (xOS Dev Skills) vs autres

AlternativeQuand l'utiliserCompromis
Skill Swift Concurrency AvdLeeVous avez uniquement besoin de la concurrence, pas du bundle completPlus étroit
Swift Migrator officiel AppleVous voulez une migration estampillée AppleMoins interactif ; moins conscient du projet
Skill SwiftUI Agent twostrawsFocus SwiftUI uniquementOpinions différentes

Plus

Ressources

📖 Lire le README officiel sur GitHub

🐙 Voir les issues ouvertes

🔍 Parcourir les 400+ serveurs MCP et Skills