Spm Build Analysis

Audita gráficos de Swift Package y enlaces pbxproj para encontrar qué ralentiza realmente las compilaciones de Xcode

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

Probado · Funciona ★ 8.4/10

Spm Build Analysis — Audita gráficos de Swift Package y enlaces pbxproj para encontrar qué ralentiza realmente las compilaciones de Xcode

Qué hace

Analiza gráficos de dependencia de Swift Package Manager, plugins de paquetes, fijaciones de rama y capas de módulos para explicar por qué las compilaciones limpias o incrementales de Xcode son lentas. Verifica que cada paquete esté realmente vinculado en project.pbxproj antes de recomendar cambios, ejecuta un script incluido que verifica las dependencias fijadas por rama en busca de etiquetas git disponibles, e informa los hallazgos con impacto en tiempo real, capacidad de acción y requisitos de aprobación. Se activa cuando un desarrollador menciona la lentitud de SPM, el tiempo de resolución de paquetes, la sobrecarga de plugins de compilación, módulos circulares o sobredimensionados, la cascada de reconstrucción de macros Swift o la modularización para el rendimiento de la compilación.

Informe de la prueba

Se obtuvo skills/spm-build-analysis/SKILL.md (92 líneas, frontmatter se analiza con name+description) y se revisaron los tres archivos referenciados más el script — references/spm-analysis-checks.md, references/recommendation-format.md, scripts/check_spm_pins.py todos HTTP 200; no curl|sh, blobs base64, exfiltración de secretos o texto de inyección en ningún lugar (el script solo ejecuta `git ls-remote --tags` en URLs leídas del propio pbxproj del proyecto). Construí un fixture sintético (Modules/Package.swift con un objetivo paraguas de estilo @_exported, una violación de capas FeatureProfile→FeatureFeed, TCA, plataformas iOS+watchOS; App.xcodeproj/project.pbxproj con una referencia remota Alamofire branch=master; y un paquete Vendor/LegacyCharts desvinculado en disco), escribí una respuesta de línea base, luego volví a ejecutar la tarea siguiendo el cuerpo de la habilidad. Deltas concretos: la línea base recomendó actuar sobre Vendor/LegacyCharts (un falso positivo — no tiene XCLocalSwiftPackageReference y contribuye con cero tiempo de compilación), mientras que el paso de verificación pbxproj de la habilidad lo excluyó explícitamente; la ejecución del script incluido produjo datos reales (`Alamofire: branch=master -> tags available (latest: 5.7.1 … 5.9.1)`) por lo que la recomendación de fijación se convirtió en "use a semver tag" en lugar de una suposición; y la ejecución de la habilidad detectó los hallazgos de test-target-depends-on-umbrella y build-multiplication de iOS/watchOS que la línea base omitió. Costo: 596 palabras vs 174. No medido: ningún delta real de tiempo de compilación — no tengo Xcode/xcodebuild aquí, por lo que todos los hallazgos se mantuvieron en benchmark_verification_status "Not yet verified", que es lo que la propia habilidad instruye. Frases de activación juzgadas — DEBERÍA activarse: (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?"; NO DEBERÍA activarse: (4) "swift build fails with 'no such module Alamofire' after I added the dependency" (error de compilación, no rendimiento de compilación) (5) "Which networking package should I pick for a new iOS app, Alamofire or URLSession?" (selección de dependencia). Los 5 juzgados correctamente contra la descripción. La documentación perdió un punto: el titular de instalación del README, la tabla de 40 verificaciones y las ganancias de tiempo de compilación de "Community Results" pertenecen al plugin orquestador de seis habilidades, no solo a este analizador, y el banner enlaza a un producto comercial.

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

Instalación

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.

Comandos y prompts de ejemplo

  • /spm-build-analysisAudita gráficos de Swift Package y enlaces pbxproj para encontrar qué ralentiza realmente las compilaciones de Xcode

Los skills se activan con peticiones en lenguaje natural, sin comandos que memorizar. Tras instalarlo, prompts como estos lo activan (en inglés):

  • 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