avdlee/xcode-compilation-analyzer
Analyze Swift and mixed-language compile hotspots using build timing summaries and Swift frontend diagnostics, then produce a recommend-first source-level optimization plan. Use when a developer reports slow compilation, type-checking warnings, expensive clean-build compile phases, long CompileSwiftSources tasks, warn-long-function-bodies output, or wants to speed up Swift type checking.
npx skills add https://github.com/AvdLee/Xcode-Build-Optimization-Agent-Skill --skill xcode-compilation-analyzer
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 analysis python3 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.
Take avdlee/xcode-compilation-analyzer from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.