Spm Build Analysis
Audite les graphes de paquets Swift et les liens pbxproj pour identifier ce qui ralentit réellement les builds Xcode
Testé · Fonctionne
Ce que fait
Analyse les graphes de dépendances Swift Package Manager, les plugins de paquets, les épingles de branche et la superposition de modules pour expliquer pourquoi les builds Xcode propres ou incrémentiels sont lents. Il vérifie que chaque paquet est réellement lié dans project.pbxproj avant de recommander des changements, exécute un script fourni qui vérifie les dépendances épinglées à une branche pour les tags git disponibles, et rapporte les résultats avec l'impact en temps réel, la faisabilité et les exigences d'approbation. Se déclenche lorsqu'un développeur mentionne la lenteur de SPM, le temps de résolution des paquets, la surcharge des plugins de build, les modules circulaires ou surdimensionnés, la cascade de reconstruction des macros Swift, ou la modularisation pour la performance de build.
Rapport de test
SKILL.md (92 lignes, frontmatter parsé avec name+description) récupéré et les trois fichiers référencés ainsi que le script vérifiés ponctuellement — references/spm-analysis-checks.md, references/recommendation-format.md, scripts/check_spm_pins.py tous HTTP 200 ; pas de curl|sh, de blobs base64, d'exfiltration de secrets ou de texte d'injection nulle part (le script ne fait que des appels shell à `git ls-remote --tags` sur des URL lues depuis le pbxproj du projet). J'ai construit un fixture synthétique (Modules/Package.swift avec une cible parapluie de style @_exported, une violation de superposition FeatureProfile→FeatureFeed, TCA, plateformes iOS+watchOS ; App.xcodeproj/project.pbxproj avec une référence distante Alamofire branch=master ; et un paquet Vendor/LegacyCharts non lié sur disque), j'ai écrit une réponse de base, puis j'ai réexécuté la tâche en suivant le corps de la compétence. Deltas concrets : la base de référence recommandait d'agir sur Vendor/LegacyCharts (un faux positif — il n'a pas de XCLocalSwiftPackageReference et ne contribue à aucun temps de build), tandis que l'étape de vérification pbxproj de la compétence l'excluait explicitement ; l'exécution du script fourni a produit des données réelles (`Alamofire: branch=master -> tags available (latest: 5.7.1 … 5.9.1)`) de sorte que la recommandation d'épinglage est devenue "utiliser un tag semver" plutôt qu'une supposition ; et l'exécution de la compétence a détecté les problèmes de dépendance du test-target sur l'umbrella et de multiplication des builds iOS/watchOS que la base de référence avait manqués. Coût : 596 mots contre 174. Non mesuré : tout delta de temps de build réel — je n'ai pas Xcode/xcodebuild ici, donc tous les résultats sont restés à benchmark_verification_status "Not yet verified", ce que la compétence elle-même indique. Phrases de déclenchement jugées — DEVRAIT se déclencher : (1) "Nos builds propres prennent 9 minutes et je pense que c'est le graphe de dépendances SPM, pouvez-vous regarder Package.swift ?" (2) "Chaque petite modification reconstruit la moitié de l'application et nous utilisons beaucoup les macros TCA — notre structure de module est-elle en cause ?" (3) "Comment devrais-je diviser mon module Core de 400 fichiers pour que les builds incrémentiels soient plus rapides ?" ; NE DEVRAIT PAS se déclencher : (4) "swift build échoue avec 'no such module Alamofire' après que j'ai ajouté la dépendance" (erreur de compilation, pas performance de build) (5) "Quel paquet de réseau devrais-je choisir pour une nouvelle application iOS, Alamofire ou URLSession ?" (sélection de dépendance). Les 5 jugés correctement par rapport à la description. Documentation pénalisée d'un point : le titre d'installation du README, le tableau de 40 vérifications et les gains de temps de build des "Community Results" appartiennent au plugin orchestrateur à six compétences, pas à cet analyseur seul, et la bannière renvoie à un produit commercial.
Testé le: 2026-07-21 · Claude Code 2.x (agent harness)
Installation
git clone --depth 1 https://github.com/AvdLee/Xcode-Build-Optimization-Agent-Skill.git /tmp/spm-build-analysis-src mkdir -p ~/.claude/skills cp -R /tmp/spm-build-analysis-src/skills/spm-build-analysis ~/.claude/skills/spm-build-analysis # CLI instead (installs all six skills): npx skills add https://github.com/AvdLee/Xcode-Build-Optimization-Agent-Skill # Needs python3 and git for scripts/check_spm_pins.py. # SKILL.md invokes it by relative path (python3 scripts/check_spm_pins.py --project App.xcodeproj), # so run it from the skill directory or substitute the absolute install path.
Commandes et exemples de prompts
/spm-build-analysisAudite les graphes de paquets Swift et les liens pbxproj pour identifier ce qui ralentit réellement les builds Xcode
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) :
Why is my Xcode build so slow with these packagesFind circular dependencies in our SPM package graphCheck for duplicate module builds from config drift