Spm Build Analysis

Verifica i grafici dei pacchetti Swift e i collegamenti pbxproj per trovare cosa rallenta effettivamente le build di Xcode

di AvdLee · AvdLee/Xcode-Build-Optimization-Agent-Skill

Promosso ★ 8.4/10

Spm Build Analysis — Verifica i grafici dei pacchetti Swift e i collegamenti pbxproj per trovare cosa rallenta effettivamente le build di Xcode

Cosa fa

Analizza i grafici delle dipendenze di Swift Package Manager, i plugin dei pacchetti, i pin dei branch e la stratificazione dei moduli per spiegare perché le build pulite o incrementali di Xcode sono lente. Verifica che ogni pacchetto sia effettivamente collegato in project.pbxproj prima di raccomandare modifiche, esegue uno script in bundle che controlla le dipendenze bloccate su branch per i tag git disponibili e riporta i risultati con impatto sul tempo reale, azionabilità e requisiti di approvazione. Si attiva quando uno sviluppatore menziona la lentezza di SPM, il tempo di risoluzione dei pacchetti, l'overhead dei plugin di build, i moduli circolari o sovradimensionati, le cascate di ricostruzione delle macro Swift o la modularizzazione per le prestazioni di build.

Rapporto di test

Recuperato skills/spm-build-analysis/SKILL.md (92 righe, il frontmatter è parsabile con name+description) e controllato a campione tutti e tre i file referenziati più lo script — references/spm-analysis-checks.md, references/recommendation-format.md, scripts/check_spm_pins.py tutti HTTP 200; nessun curl|sh, blob base64, esfiltrazione di segreti o testo di iniezione da nessuna parte (lo script esegue solo `git ls-remote --tags` su URL letti dal pbxproj del progetto). Ho costruito un fixture sintetico (Modules/Package.swift con un target umbrella in stile @_exported, una violazione di stratificazione FeatureProfile→FeatureFeed, TCA, piattaforme iOS+watchOS; App.xcodeproj/project.pbxproj con un riferimento remoto Alamofire branch=master; e un pacchetto Vendor/LegacyCharts non collegato su disco), ho scritto una risposta di base, quindi ho rieseguito il task seguendo il corpo della skill. Differenze concrete: la baseline raccomandava di agire su Vendor/LegacyCharts (un falso positivo — non ha XCLocalSwiftPackageReference e non contribuisce a zero tempo di build), mentre il passaggio di verifica pbxproj della skill lo escludeva esplicitamente; l'esecuzione dello script in bundle ha prodotto dati reali (`Alamofire: branch=master -> tags available (latest: 5.7.1 … 5.9.1)`) quindi la raccomandazione del pin è diventata "use a semver tag" piuttosto che un'ipotesi; e l'esecuzione della skill ha rilevato i risultati test-target-depends-on-umbrella e iOS/watchOS build-multiplication che la baseline aveva perso. Costo: 596 parole contro 174. Non misurato: alcun delta effettivo del tempo di build — non ho Xcode/xcodebuild qui, quindi tutti i risultati sono rimasti a benchmark_verification_status "Not yet verified", che è ciò che la skill stessa istruisce. Frasi trigger giudicate — DOVREBBE attivarsi: (1) "Our clean builds take 9 minutes and I think it's the SPM dependency graph, can you look at Package.swift?" (2) "Every tiny edit rebuilds half the app and we use TCA macros heavily — is our module structure to blame?" (3) "How should I split my 400-file Core module so incremental builds get faster?"; NON DOVREBBE attivarsi: (4) "swift build fails with 'no such module Alamofire' after I added the dependency" (errore di compilazione, non prestazioni di build) (5) "Which networking package should I pick for a new iOS app, Alamofire or URLSession?" (selezione di dipendenze). Tutti e 5 giudicati correttamente rispetto alla descrizione. Documentazione detratta di un punto: il titolo di installazione del README, la tabella di 40 controlli e i guadagni di tempo di build dei "Community Results" appartengono al plugin orchestratore di sei skill, non solo a questo analizzatore, e il banner collega un prodotto commerciale.

Testato il: 2026-07-21 · Claude Code 2.x (agent harness)

Installazione

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.

Comandi e prompt di esempio

  • /spm-build-analysisVerifica i grafici dei pacchetti Swift e i collegamenti pbxproj per trovare cosa rallenta effettivamente le build di Xcode

Gli skill si attivano con richieste in linguaggio naturale, senza comandi da ricordare. Dopo l'installazione, prompt come questi lo attivano (in inglese):

  • Why is my Xcode build so slow with these packages
  • Find circular dependencies in our SPM package graph
  • Check for duplicate module builds from config drift