Spm Build Analysis
Audituje grafy Swift Package a pbxproj odkazy, aby zjistil, co skutečně zpomaluje sestavení Xcode
Otestováno · Funguje
Co umí
Analyzuje grafy závislostí Swift Package Manager, balíčkové pluginy, branch piny a vrstvení modulů, aby vysvětlil, proč jsou čisté nebo inkrementální sestavení Xcode pomalé. Ověřuje, že každý balíček je skutečně propojen v project.pbxproj před doporučením změn, spouští přiložený skript, který kontroluje závislosti připnuté na větve pro dostupné git tagy, a hlásí zjištění s dopadem na reálný čas, akceschopností a požadavky na schválení. Spouští se, když vývojář zmíní pomalost SPM, čas řešení balíčků, režii build pluginů, kruhové nebo příliš velké moduly, kaskádování Swift makro rebuildů nebo modularizaci pro výkon sestavení.
Testovací report
Načteno skills/spm-build-analysis/SKILL.md (92 řádků, frontmatter se parsuje s name+description) a namátkově zkontrolovány všechny tři odkazované soubory plus skript — references/spm-analysis-checks.md, references/recommendation-format.md, scripts/check_spm_pins.py všechny HTTP 200; žádné curl|sh, base64 bloby, exfiltrace tajemství nebo injekční text nikde (skript pouze spouští `git ls-remote --tags` na URL čtených z vlastního pbxproj projektu). Vytvořil jsem syntetický fixture (Modules/Package.swift s @_exported-style umbrella targetem, porušení vrstvení FeatureProfile→FeatureFeed, TCA, iOS+watchOS platformy; App.xcodeproj/project.pbxproj s Alamofire branch=master vzdáleným odkazem; a nepropojený balíček Vendor/LegacyCharts na disku), napsal základní odpověď, pak jsem úkol znovu spustil podle těla dovednosti. Konkrétní rozdíly: základ doporučil jednat s Vendor/LegacyCharts (falešně pozitivní — nemá XCLocalSwiftPackageReference a nepřispívá k době sestavení), zatímco krok ověření pbxproj dovednosti ho explicitně vyloučil; spuštění přiloženého skriptu vygenerovalo skutečná data (`Alamofire: branch=master -> tags available (latest: 5.7.1 … 5.9.1)`), takže doporučení pinu se stalo "use a semver tag" namísto odhadu; a spuštění dovednosti zachytilo zjištění test-target-depends-on-umbrella a iOS/watchOS build-multiplication, které základ minul. Náklady: 596 slov vs 174. Neměřeno: žádný skutečný rozdíl v době sestavení — nemám zde Xcode/xcodebuild, takže všechna zjištění zůstala na benchmark_verification_status "Not yet verified", což je to, co dovednost sama nařizuje. Spouštěcí fráze posouzeny — MĚLO by se spustit: (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?"; NEMĚLO by se spustit: (4) "swift build fails with 'no such module Alamofire' after I added the dependency" (chyba kompilace, ne výkon sestavení) (5) "Which networking package should I pick for a new iOS app, Alamofire or URLSession?" (výběr závislosti). Všech 5 posouzeno správně proti popisu. Dokumentace ztrácí jeden bod: nadpis instalace v README, tabulka 40 kontrol a "Community Results" výhry v době sestavení patří k šestidovednostnímu orchestrátor pluginu, nikoli pouze k tomuto analyzátoru, a banner odkazuje na komerční produkt.
Testováno: 2026-07-21 · Claude Code 2.x (agent harness)
Instalace
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.
Příkazy a ukázkové prompty
/spm-build-analysisAudituje grafy Swift Package a pbxproj odkazy, aby zjistil, co skutečně zpomaluje sestavení Xcode
Skilly se spouštějí běžnými požadavky — žádné příkazy k zapamatování. Po instalaci ho aktivují prompty jako tyto (anglicky):
Why is my Xcode build so slow with these packagesFind circular dependencies in our SPM package graphCheck for duplicate module builds from config drift