Spm Build Analysis

Audytuje grafy pakietów Swift i linki pbxproj, aby znaleźć, co faktycznie spowalnia kompilacje Xcode

Autor: AvdLee · AvdLee/Xcode-Build-Optimization-Agent-Skill

Testowano · Działa ★ 8.4/10

Spm Build Analysis — Audytuje grafy pakietów Swift i linki pbxproj, aby znaleźć, co faktycznie spowalnia kompilacje Xcode

Co robi ten skill

Analizuje grafy zależności Swift Package Manager, wtyczki pakietów, przypięcia gałęzi i warstwowanie modułów, aby wyjaśnić, dlaczego czyste lub przyrostowe kompilacje Xcode są wolne. Weryfikuje, czy każdy pakiet jest faktycznie połączony w project.pbxproj przed rekomendowaniem zmian, uruchamia dołączony skrypt, który sprawdza zależności przypięte do gałęzi pod kątem dostępnych tagów git, i raportuje wyniki z wpływem na czas rzeczywisty, możliwością działania i wymaganiami zatwierdzenia. Uruchamia się, gdy deweloper wspomina o powolności SPM, czasie rozwiązywania pakietów, narzucie wtyczek kompilacji, cyklicznych lub zbyt dużych modułach, kaskadowym przebudowywaniu makr Swift lub modularizacji dla wydajności kompilacji.

Raport z testu

Pobrano skills/spm-build-analysis/SKILL.md (92 linie, frontmatter parsowany z name+description) i wyrywkowo sprawdzono wszystkie trzy pliki referencyjne plus skrypt — references/spm-analysis-checks.md, references/recommendation-format.md, scripts/check_spm_pins.py wszystkie HTTP 200; brak curl|sh, blobów base64, eksfiltracji sekretów lub tekstu iniekcji gdziekolwiek (skrypt tylko wywołuje `git ls-remote --tags` na URL-ach odczytanych z własnego pbxproj projektu). Zbudowałem syntetyczny fixture (Modules/Package.swift z docelowym @_exported-style umbrella, naruszeniem warstwowania FeatureProfile→FeatureFeed, TCA, platformami iOS+watchOS; App.xcodeproj/project.pbxproj z zdalnym refem Alamofire branch=master; i niepołączonym pakietem Vendor/LegacyCharts na dysku), napisałem bazową odpowiedź, a następnie ponownie uruchomiłem zadanie zgodnie z treścią umiejętności. Konkretne różnice: bazowa wersja zalecała działanie na Vendor/LegacyCharts (fałszywy pozytyw — nie ma XCLocalSwiftPackageReference i nie przyczynia się do czasu kompilacji), podczas gdy krok weryfikacji pbxproj umiejętności wyraźnie go wykluczył; uruchomienie dołączonego skryptu wygenerowało rzeczywiste dane (`Alamofire: branch=master -> tags available (latest: 5.7.1 … 5.9.1)`), więc rekomendacja przypięcia stała się "użyj tagu semver" zamiast zgadywania; a uruchomienie umiejętności wychwyciło zależności test-target-depends-on-umbrella i wyniki mnożenia kompilacji iOS/watchOS, które bazowa wersja pominęła. Koszt: 596 słów vs 174. Nie zmierzono: żadnej rzeczywistej delty czasu kompilacji — nie mam tutaj Xcode/xcodebuild, więc wszystkie wyniki pozostały w statusie benchmark_verification_status "Not yet verified", co jest zgodne z instrukcjami samej umiejętności. Frazy wyzwalające ocenione — POWINIEN zadziałać: (1) "Nasze czyste kompilacje trwają 9 minut i myślę, że to graf zależności SPM, czy możesz spojrzeć na Package.swift?" (2) "Każda drobna edycja przebudowuje połowę aplikacji i intensywnie używamy makr TCA — czy nasza struktura modułów jest winna?" (3) "Jak powinienem podzielić mój 400-plikowy moduł Core, aby kompilacje przyrostowe były szybsze?"; NIE POWINIEN zadziałać: (4) "swift build zawodzi z 'no such module Alamofire' po dodaniu zależności" (błąd kompilacji, nie wydajność kompilacji) (5) "Który pakiet sieciowy powinienem wybrać dla nowej aplikacji iOS, Alamofire czy URLSession?" (wybór zależności). Wszystkie 5 oceniono poprawnie względem opisu. Dokumentacja straciła jeden punkt: nagłówek instalacji w README, tabela 40-checks i wygrane w czasie kompilacji "Community Results" należą do sześciu wtyczek orkiestratora umiejętności, a nie tylko do tego analizatora, a baner linkuje do produktu komercyjnego.

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

Instalacja

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.

Komendy i przykładowe prompty

  • /spm-build-analysisAudytuje grafy pakietów Swift i linki pbxproj, aby znaleźć, co faktycznie spowalnia kompilacje Xcode

Skille uruchamiają się na zwykłe polecenia — bez komend do zapamiętania. Po instalacji aktywują go prompty takie jak te (po angielsku):

  • 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