
When your Swift build takes forever or Xcode spits out type-checking warnings, this skill digs into build timing summaries and frontend diagnostics to find the actual bottlenecks. It runs analysis flags like warn-long-function-bodies, parses CompileSwiftSources tasks, and checks if your incremental builds are getting wrecked by module emission or planning overhead. The output is a ranked list of fixes with expected wall-clock impact, which matters because heavily parallelized builds won't always get faster just by optimizing individual files. It knows the difference between reducing compiler work and actually cutting your wait time, and it won't touch your code without asking first.
$ npx -y skills add avdlee/xcode-build-optimization-agent-skill --skill xcode-compilation-analyzer --agent claude-codeInstalls into .claude/skills of the current project.
Use this skill when compile time, not just general project configuration, looks like the bottleneck.
.build-benchmark/ artifact or raw timing-summary output.Build Timing Summary output from clean and incremental buildsCompileSwiftSources or per-file compilation tasksSwiftEmitModule time -- can reach 60s+ after a single-line change in large modules; if it dominates incremental builds, the module is likely too large or macro-heavyPlanning Swift module time -- if this category is disproportionately large in incremental builds (up to 30s per module), it signals unexpected input invalidation or macro-related rebuild cascading-Xfrontend -warn-long-expression-type-checking=<ms>-Xfrontend -warn-long-function-bodies=<ms>-Xfrontend -debug-time-compilation -- per-file compile times to rank the slowest files-Xfrontend -debug-time-function-bodies -- per-function compile times (unfiltered, complements the threshold-based warning flags)-Xswiftc -driver-time-compilation -- driver-level timing to isolate driver overhead-Xfrontend -stats-output-dir <path> -- detailed compiler statistics (JSON) per compilation unit for root-cause analysispython3 scripts/diagnose_compilation.py \
--project App.xcodeproj \
--scheme MyApp \
--configuration Debug \
--destination "platform=iOS Simulator,name=iPhone 16" \
--threshold 100 \
--output-dir .build-benchmark
This produces a ranked list of functions and expressions that exceed the millisecond threshold. Use the diagnostics artifact alongside source inspection to focus on the most expensive files first.Look for these patterns first:
AnyObject instead of a concrete protocolfinal that are never subclassedpublic/open) on internal-only symbolsbody properties that should be decomposed into subviewsFor each recommendation, include:
If the evidence points to project configuration instead of source, hand off to xcode-project-analyzer by reading its SKILL.md and applying its workflow to the same project context.
Sponsors