Spm Build Analysis

Auditerer Swift Package-grafer og pbxproj-links for at finde, hvad der faktisk forsinker Xcode-builds

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

Testet · Virker ★ 8.4/10

Spm Build Analysis — Auditerer Swift Package-grafer og pbxproj-links for at finde, hvad der faktisk forsinker Xcode-builds

Hvad det gør

Analyserer Swift Package Manager-afhængighedsgrafer, pakke-plugins, branch-pins og modullagdeling for at forklare, hvorfor Xcode clean eller inkrementelle builds er langsomme. Den verificerer, at hver pakke faktisk er linket i project.pbxproj, før den anbefaler ændringer, kører et medfølgende script, der kontrollerer branch-pinned afhængigheder for tilgængelige git-tags, og rapporterer fund med wall-clock-påvirkning, handlingsmulighed og godkendelseskrav. Udløses, når en udvikler nævner SPM-langsomhed, pakkeopløsningstid, build-plugin-overhead, cirkulære eller overdimensionerede moduler, Swift macro rebuild cascading eller modularisering for build-performance.

Testrapport

Hentede skills/spm-build-analysis/SKILL.md (92 linjer, frontmatter parses med name+description) og spot-tjekkede alle tre refererede filer plus scriptet — references/spm-analysis-checks.md, references/recommendation-format.md, scripts/check_spm_pins.py alle HTTP 200; ingen curl|sh, base64 blobs, hemmelig exfiltration eller injektionstekst nogen steder (scriptet sheller kun ud til `git ls-remote --tags` på URL'er læst fra projektets egen pbxproj). Jeg byggede en syntetisk fixture (Modules/Package.swift med et @_exported-stil paraplytarget, en FeatureProfile→FeatureFeed lagdelingsovertrædelse, TCA, iOS+watchOS platforme; App.xcodeproj/project.pbxproj med en Alamofire branch=master remote ref; og en ulænket Vendor/LegacyCharts pakke på disk), skrev et baseline-svar, og genkørte derefter opgaven efter skill-kroppen. Konkrete forskelle: baseline anbefalede at handle på Vendor/LegacyCharts (en falsk positiv — den har ingen XCLocalSwiftPackageReference og bidrager med nul build-tid), mens skill'ens pbxproj-verifikationstrin eksplicit udelukkede den; kørsel af det medfølgende script producerede reelle data (`Alamofire: branch=master -> tags available (latest: 5.7.1 … 5.9.1)`) så pin-anbefalingen blev "use a semver tag" i stedet for et gæt; og skill-kørslen fangede test-target-depends-on-umbrella og iOS/watchOS build-multiplikationsfund, som baseline missede. Omkostning: 596 ord vs 174. Ikke målt: nogen faktisk build-tidsforskel — jeg har ingen Xcode/xcodebuild her, so all findings stayed at benchmark_verification_status "Not yet verified", which is what the skill itself instructs. Trigger-fraseringer bedømt — SKAL udløses: (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?"; SKAL IKKE udløses: (4) "swift build fails with 'no such module Alamofire' after I added the dependency" (kompileringsfejl, ikke build-performance) (5) "Which networking package should I pick for a new iOS app, Alamofire or URLSession?" (afhængighedsvalg). Alle 5 bedømt korrekt mod beskrivelsen. Dokumentation trukket et point: README's install-overskrift, 40-checks tabel og "Community Results" build-time-gevinster tilhører den seks-skill orchestrator-plugin, not to this analyzer alone, and the banner links a commercial product.

Testet: 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.

Kommandoer og eksempelprompter

  • /spm-build-analysisAuditerer Swift Package-grafer og pbxproj-links for at finde, hvad der faktisk forsinker Xcode-builds

Skills udløses af almindelige forespørgsler — ingen kommandoer at huske. Efter installationen aktiverer prompter som disse skillen (på engelsk):

  • 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