Spm Build Analysis
Granskar Swift Package-grafer och pbxproj-länkar för att hitta vad som faktiskt saktar ner Xcode-byggen
Testad · Fungerar
Vad den gör
Analyserar Swift Package Manager-beroendegrafar, paketplugins, branch pins och modullager för att förklara varför Xcode clean- eller inkrementella byggen är långsamma. Den verifierar att varje paket faktiskt är länkat i project.pbxproj innan den rekommenderar ändringar, kör ett medföljande skript som kontrollerar branch-pinned-beroenden för tillgängliga git-taggar, och rapporterar fynd med wall-clock-påverkan, åtgärdbarhet och godkännandekrav. Utlöses när en utvecklare nämner SPM-långsamhet, paketupplösningstid, build plugin-overhead, cirkulära eller överdimensionerade moduler, Swift macro rebuild cascading, eller modularisering för byggprestanda.
Testrapport
Hämtade skills/spm-build-analysis/SKILL.md (92 rader, frontmatter parsas med name+description) och stickprovskontrollerade alla tre refererade filer plus skriptet — references/spm-analysis-checks.md, references/recommendation-format.md, scripts/check_spm_pins.py alla HTTP 200; ingen curl|sh, base64-blobar, hemlig exfiltrering eller injektionstext någonstans (skriptet kör endast `git ls-remote --tags` på URL:er lästa från projektets egen pbxproj). Jag byggde en syntetisk fixtur (Modules/Package.swift med ett @_exported-style umbrella target, en FeatureProfile→FeatureFeed-lageröverträdelse, TCA, iOS+watchOS-plattformar; App.xcodeproj/project.pbxproj med en Alamofire branch=master remote ref; och ett olänkat Vendor/LegacyCharts-paket på disk), skrev ett baslinjesvar, sedan körde jag om uppgiften enligt skicklighetens brödtext. Konkreta skillnader: baslinjen rekommenderade att agera på Vendor/LegacyCharts (en falsk positiv — den har ingen XCLocalSwiftPackageReference och bidrar med noll byggtid), medan skicklighetens pbxproj-verifieringssteg explicit exkluderade den; att köra det medföljande skriptet producerade verklig data (`Alamofire: branch=master -> tags available (latest: 5.7.1 … 5.9.1)`) så pin-rekommendationen blev "use a semver tag" snarare än en gissning; och skicklighetskörningen fångade test-target-depends-on-umbrella och iOS/watchOS build-multiplication-fynden som baslinjen missade. Kostnad: 596 ord vs 174. Ej mätt: någon faktisk byggtidsdelta — jag har ingen Xcode/xcodebuild här, så alla fynd stannade vid benchmark_verification_status "Not yet verified", vilket är vad skickligheten själv instruerar. Trigger-fraseringar bedömdes — SKA utlösas: (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?"; SKA INTE utlösas: (4) "swift build fails with 'no such module Alamofire' after I added the dependency" (kompileringsfel, inte byggprestanda) (5) "Which networking package should I pick for a new iOS app, Alamofire or URLSession?" (beroendeval). Alla 5 bedömdes korrekt mot beskrivningen. Dokumentationen förlorade en poäng: README:s installationsrubrik, 40-checks-tabell och "Community Results" byggtidsvinster tillhör den sex-skicklighetsorkestreringspluginen, inte denna analysator ensam, och bannern länkar en kommersiell produkt.
Testad: 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.
Kommandon och exempelprompter
/spm-build-analysisGranskar Swift Package-grafer och pbxproj-länkar för att hitta vad som faktiskt saktar ner Xcode-byggen
Skills triggas av vanliga förfrågningar — inga kommandon att memorera. Efter installationen aktiverar prompter som dessa skillen (på engelska):
Why is my Xcode build so slow with these packagesFind circular dependencies in our SPM package graphCheck for duplicate module builds from config drift