Spm Build Analysis

Controleert Swift Package-grafieken en pbxproj-links om te achterhalen wat Xcode-builds vertraagt

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

Getest · Werkt ★ 8.4/10

Spm Build Analysis — Controleert Swift Package-grafieken en pbxproj-links om te achterhalen wat Xcode-builds vertraagt

Wat het doet

Analyseert Swift Package Manager afhankelijkheidsgrafieken, pakketplugins, branch-pins en module-lagen om uit te leggen waarom Xcode clean of incrementele builds traag zijn. Het verifieert of elk pakket daadwerkelijk is gekoppeld in project.pbxproj voordat wijzigingen worden aanbevolen, voert een gebundeld script uit dat branch-pinned afhankelijkheden controleert op beschikbare git-tags, en rapporteert bevindingen met impact op de kloktijd, uitvoerbaarheid en goedkeuringsvereisten. Activeert wanneer een ontwikkelaar SPM-traagheid, pakketresolutietijd, build-plugin overhead, circulaire of te grote modules, Swift macro rebuild cascading, of modularisatie voor buildprestaties noemt.

Testrapport

skills/spm-build-analysis/SKILL.md (92 regels, frontmatter parset met name+description) opgehaald en alle drie de genoemde bestanden plus het script steekproefsgewijs gecontroleerd — references/spm-analysis-checks.md, references/recommendation-format.md, scripts/check_spm_pins.py allemaal HTTP 200; geen curl|sh, base64 blobs, geheime exfiltratie of injectietekst ergens (het script roept alleen `git ls-remote --tags` aan op URL's gelezen uit de eigen pbxproj van het project). Ik bouwde een synthetische fixture (Modules/Package.swift met een @_exported-stijl umbrella target, een FeatureProfile→FeatureFeed layering violation, TCA, iOS+watchOS platforms; App.xcodeproj/project.pbxproj met een Alamofire branch=master remote ref; en een niet-gekoppeld Vendor/LegacyCharts pakket op schijf), schreef een baseline-antwoord, en voerde de taak daarna opnieuw uit volgens de skill-body. Concrete verschillen: de baseline adviseerde actie te ondernemen op Vendor/LegacyCharts (een vals positief — het heeft geen XCLocalSwiftPackageReference en draagt nul buildtijd bij), terwijl de pbxproj-verificatiestap van de skill het expliciet uitsloot; het uitvoeren van het gebundelde script produceerde echte gegevens (`Alamofire: branch=master -> tags available (latest: 5.7.1 … 5.9.1)`) zodat de pin-aanbeveling "use a semver tag" werd in plaats van een gok; en de skill-uitvoering ving de test-target-depends-on-umbrella en iOS/watchOS build-multiplication bevindingen op die de baseline miste. Kosten: 596 woorden versus 174. Niet gemeten: enige daadwerkelijke build-tijd delta — ik heb hier geen Xcode/xcodebuild, dus alle bevindingen bleven op benchmark_verification_status "Not yet verified", wat de skill zelf instrueert. Triggerzinnen beoordeeld — MOET activeren: (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?"; MOET NIET activeren: (4) "swift build fails with 'no such module Alamofire' after I added the dependency" (compileerfout, geen buildprestatie) (5) "Which networking package should I pick for a new iOS app, Alamofire or URLSession?" (afhankelijkheidsselectie). Alle 5 correct beoordeeld tegen de beschrijving. Docs één punt afgetrokken: de installatiekop van de README, de 40-checks tabel en de "Community Results" build-time winsten behoren tot de zes-skill orchestrator plugin, niet tot deze analyzer alleen, en de banner linkt naar een commercieel product.

Getest op: 2026-07-21 · Claude Code 2.x (agent harness)

Installatie

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.

Commando's en voorbeeldprompts

  • /spm-build-analysisControleert Swift Package-grafieken en pbxproj-links om te achterhalen wat Xcode-builds vertraagt

Skills reageren op gewone verzoeken — geen commando's om te onthouden. Na installatie activeren prompts zoals deze de skill (in het Engels):

  • 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