Spm Build Analysis

Reviderer Swift Package-grafer og pbxproj-lenker for å finne hva som faktisk bremser Xcode-bygg

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

Bestått ★ 8.4/10

Spm Build Analysis — Reviderer Swift Package-grafer og pbxproj-lenker for å finne hva som faktisk bremser Xcode-bygg

Hva den gjør

Analyserer Swift Package Manager-avhengighetsgrafer, pakkeplugins, branch-pins og modullagdeling for å forklare hvorfor Xcode rene eller inkrementelle bygg er trege. Den verifiserer at hver pakke faktisk er lenket i project.pbxproj før den anbefaler endringer, kjører et medfølgende skript som sjekker branch-pinned avhengigheter for tilgjengelige git-tags, og rapporterer funn med veggklokke-påvirkning, handlingsbarhet og godkjenningskrav. Utløses når en utvikler nevner SPM-treghet, pakkeoppløsningstid, byggeplugin-overhead, sirkulære eller overdimensjonerte moduler, Swift makro-gjenoppbyggingskaskader, eller modularisering for byggeytelse.

Testrapport

Hentet skills/spm-build-analysis/SKILL.md (92 linjer, frontmatter parses med name+description) og stikkprøvekontrollerte alle tre refererte filer pluss skriptet — references/spm-analysis-checks.md, references/recommendation-format.md, scripts/check_spm_pins.py alle HTTP 200; ingen curl|sh, base64 blobs, hemmelig eksfiltrering eller injeksjonstekst noe sted (skriptet sheller kun ut til `git ls-remote --tags` på URL-er lest fra prosjektets egen pbxproj). Jeg bygget en syntetisk fixture (Modules/Package.swift med et @_exported-stil paraplytarget, en FeatureProfile→FeatureFeed lagdelingsbrudd, TCA, iOS+watchOS plattformer; App.xcodeproj/project.pbxproj med en Alamofire branch=master fjernreferanse; og en ulenket Vendor/LegacyCharts-pakke på disk), skrev et grunnlinjesvar, og kjørte deretter oppgaven på nytt etter ferdighetskroppen. Konkrete forskjeller: grunnlinjen anbefalte å handle på Vendor/LegacyCharts (en falsk positiv — den har ingen XCLocalSwiftPackageReference og bidrar med null byggetid), mens ferdighetens pbxproj-verifiseringstrinn eksplisitt ekskluderte den; kjøring av det medfølgende skriptet produserte reelle data (`Alamofire: branch=master -> tags available (latest: 5.7.1 … 5.9.1)`) slik at pin-anbefalingen ble "use a semver tag" i stedet for et gjetning; og ferdighetskjøringen fanget test-target-depends-on-umbrella og iOS/watchOS build-multiplication funnene grunnlinjen savnet. Kostnad: 596 ord vs 174. Ikke målt: noen faktisk byggetidsdelta — jeg har ingen Xcode/xcodebuild her, så alle funn forble på benchmark_verification_status "Not yet verified", som er det ferdigheten selv instruerer. Triggerfraser vurdert — BØR utlø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?"; BØR IKKE utløses: (4) "swift build fails with 'no such module Alamofire' after I added the dependency" (kompileringsfeil, ikke byggeytelse) (5) "Which networking package should I pick for a new iOS app, Alamofire or URLSession?" (avhengighetsvalg). Alle 5 vurdert korrekt mot beskrivelsen. Dokumentasjonen trukket ett poeng: READMEs installasjonsoverskrift, 40-sjekker-tabell og "Community Results" byggetidsgevinster tilhører den seks-ferdighets orkestreringspluginen, ikke denne analysatoren alene, og banneret lenker til et kommersielt produkt.

Testet på: 2026-07-21 · Claude Code 2.x (agent harness)

Installer

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-analysisReviderer Swift Package-grafer og pbxproj-lenker for å finne hva som faktisk bremser Xcode-bygg

Skills utløses av vanlige forespørsler — ingen kommandoer å huske. Etter installasjonen 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