xcode-build
Skill0 starsChanged 2 months agoMITView on GitHub
Optimize Xcode build times end-to-end -- benchmark clean/incremental/cached-clean builds, diagnose slow compilation and Swift type-checking, audit project configuration/build settings/schemes/script phases, and apply approved fixes with re-benchmarking to prove the win. This is the single entrypoint for ALL Xcode build-speed work -- use it whenever a developer wants a full build optimization pass, asks to speed up Xcode builds, wants to benchmark or measure build performance, asks "how long do my builds take" or wants before/after numbers, reports slow compilation, expensive type-checking, long CompileSwiftSources/SwiftEmitModule/"Planning Swift module" tasks, wants a build settings or scheme/script-phase audit, or has an approved optimization plan ready to implement. Always reach for this skill first for Xcode build-performance work rather than improvising ad hoc fixes.
2 other projects use a version of this.
Adopted by
Most recently taken up by
- pzep1/xcode-build-skilltheir own version, first seen Oct 9, 2026
- fiveonecode/agent-skillstheir own version, first seen Sep 6, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- pzep1/xcode-build-skill★ 138same name
- fiveonecode/agent-skills★ 20same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository21 other files it gives its agents.
- animateSkill
- composable-architectureSkill
- find-animation-opportunitiesSkill
- generating-swift-package-docsSkill
- hapticsSkill
- improve-animationsSkill
- ios-26-platformSkill
- ios-higSkill
- ios-simulator-skillSkill
- localizationSkill
- review-animationsSkill
- spm-build-analysisSkill
- storekitSkill
- swift-concurrencySkill
- swift-dataSkill
- swift-diagnosticsSkill
- swift-networkingSkill
- swift-styleSkill
- swift-testingSkill
- swiftuiSkill
- write-swiftSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
18 rules. About 0 are common, 14 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈14
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Use this skill as the recommend-first entrypoint for end-to-end Xcode build optimization work.
- Distinctive: line 13
Start in recommendation mode.
- Distinctive: line 15
Do not modify project files, source files, packages, or scripts without explicit developer approval.
- Very specific: line 29
Verify the benchmark artifact has non-empty timing_summary_categories.
- Distinctive: line 33
Run the specialist analyses that fit the evidence:
- Distinctive: line 39
Stop and present the plan to the developer for review.
- Distinctive: line 45
Run this phase in agent mode after the developer has reviewed and approved recommendations from the plan.
- Very specific: line 47
Read .build-benchmark/optimization-plan.md and identify the approved items from the approval checklist.
- Distinctive: line 58
If the sum of all timing-summary category seconds is 2x+ the wall-clock median, most work is parallelized.
- Very specific: line 59
If a single serial category (e.g.
- Very specific: line 60
If Planning Swift module or SwiftEmitModule dominates incremental builds, the cause is likely invalidation or module size, not individual …
- Distinctive: line 64
Prefer changes that are measurable, reversible, and low-risk.
- Distinctive: line 68
Every recommendation presented to the developer must include one of these impact statements:
- Distinctive: line 76
Never quote cumulative task-time savings as the headline impact.
- Distinctive: line 80
Before implementing anything, present a short approval list that includes:
- Distinctive: line 88
Wait for explicit developer approval.
- Distinctive: line 92
After approval, apply changes by following references/fixer.md:
- Distinctive: line 109
if cumulative task metrics improved but wall-clock did not, say plainly: "Compiler workload decreased but build wait time did not improve.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Xcode Build
Use this skill as the recommend-first entrypoint for end-to-end Xcode build optimization work. It is the single entry point for benchmarking, diagnosing, and fixing slow Xcode builds -- it routes to bundled reference playbooks for each specialty rather than requiring separate skills.
Non-Negotiable Rules
- Wall-clock build time (how long the developer waits) is the primary success metric. Every recommendation must state its expected impact on the developer's actual wait time.
- Start in recommendation mode.
- Benchmark before making changes.
- Do not modify project files, source files, packages, or scripts without explicit developer approval.
- Preserve the evidence trail for every recommendation.
- Re-benchmark after approved changes and report the wall-clock delta.
Two-Phase Workflow
The workflow is designed as two distinct phases separated by developer review.
Phase 1 -- Analyze (recommend-only)
Run this phase in agent mode because the agent needs to execute builds, run benchmark scripts, write benchmark artifacts, and generate the optimization report. However, treat Phase 1 as recommend-only: do not modify any project files, source files, packages, or build settings. The only files the agent creates during this phase are benchmark artifacts and the optimization plan inside .build-benchmark/.
- Collect the build target context: workspace or project, scheme, configuration, destination, and current pain point. When both
.xcworkspaceand.xcodeprojexist, prefer.xcodeprojunless the workspace contains sub-projects required for the build. Workspaces that reference external projects may fail if those projects are not checked out. - Establish a baseline benchmark if no fresh one exists -- follow references/benchmark.md for the full measurement contract (clean, cached-clean, zero-change, and incremental runs). The benchmark script auto-detects
COMPILATION_CACHE_ENABLE_CACHING = YESand includes cached clean builds that measure the realistic developer experience (warm cache). If the build fails to compile, checkgit logfor a recent buildable commit. When working in a worktree, cherry-picking a targeted build fix from a feature branch is acceptable to reach a buildable state. If SPM packages reference gitignored directories in theirexclude:paths (e.g.,__Snapshots__), create those directories before building -- worktrees do not contain gitignored content andxcodebuild -resolvePackageDependencieswill crash otherwise. - Verify the benchmark artifact has non-empty
timing_summary_categories. If empty, the timing summary parser may have failed -- re-parse the raw logs or inspect them manually. IfCOMPILATION_CACHE_ENABLE_CACHINGis enabled, also verify the artifact includescached_cleanruns.- Benchmark confidence check: For each build type (clean, cached clean, incremental), compare the min and max values. If the spread (max - min) exceeds 20% of the median, flag the benchmark as having high variance and recommend running additional repetitions (5+ runs) before drawing conclusions. High variance makes it difficult to distinguish real improvements from noise. After applying changes, only claim an improvement if the post-change median falls outside the baseline's min-max range.
- If incremental builds are the primary pain point and Xcode 16.4+ is available, recommend the developer enable Task Backtraces (Scheme Editor > Build tab > Build Debugging > "Task Backtraces"). This reveals why each task re-ran, which is critical for diagnosing unexpected replanning or input invalidation. Include any Task Backtrace evidence in the analysis.
- Determine whether compile tasks are likely blocking wall-clock progress or just consuming parallel CPU time. Compare the sum of all timing-summary category seconds against the wall-clock median: if the sum is 2x+ the median, most work is parallelized and compile hotspot fixes are unlikely to reduce wait time. If
SwiftCompile,CompileC,SwiftEmitModule, orPlanning Swift moduledominate the timing summary and appear likely to be on the critical path, rundiagnose_compilation.pyto capture type-checking hotspots. If they are parallelized, still run diagnostics but label findings as "parallel efficiency improvements" rather than "build time improvements." - Run the specialist analyses that fit the evidence:
- Source-level compile hotspots and Swift type-checking -- see references/compilation-analysis.md
- Project configuration, build settings, schemes, script phases -- see references/project-analysis.md
- Package graph and build plugin overhead -- see
spm-build-analysis(a separate, standalone skill; read its SKILL.md and apply its workflow to the same project context)
- Merge findings into a single prioritized improvement plan.
- Generate the markdown optimization report using
generate_optimization_report.pyand save it to.build-benchmark/optimization-plan.md. This report includes the build settings audit, timing analysis, prioritized recommendations, and an approval checklist. - Stop and present the plan to the developer for review.
The developer reviews .build-benchmark/optimization-plan.md, checks the approval boxes for the recommendations they want implemented, and then triggers phase 2.
Phase 2 -- Execute and verify (agent mode)
Run this phase in agent mode after the developer has reviewed and approved recommendations from the plan. Apply all implementation work by following references/fixer.md.
- Read
.build-benchmark/optimization-plan.mdand identify the approved items from the approval checklist. - Apply the approved plan per references/fixer.md: apply each approved change, verify compilation, and re-benchmark.
- Append verification results to the optimization plan: post-change medians, absolute and percentage deltas, and confidence notes.
- Report before and after results, plus any remaining follow-up opportunities.
Prioritization Rules
The goal is to reduce how long the developer waits for builds to finish.
- Identify the developer's primary pain (clean build, incremental build, or both) and the measured wall-clock median.
- Determine what is likely blocking wall-clock progress:
- If the sum of all timing-summary category seconds is 2x+ the wall-clock median, most work is parallelized. Compile hotspot fixes are unlikely to reduce wait time.
- If a single serial category (e.g.
PhaseScriptExecution,CompileAssetCatalog,CodeSign) accounts for a large fraction of wall-clock, that is the real bottleneck. - If
Planning Swift moduleorSwiftEmitModuledominates incremental builds, the cause is likely invalidation or module size, not individual file compile speed.
- Rank recommendations by likely wall-time savings, not cumulative task reduction.
- Source-level compile fixes should not outrank project/graph/configuration fixes unless evidence suggests they are on the critical path.
Prefer changes that are measurable, reversible, and low-risk.
Recommendation Impact Language
Every recommendation presented to the developer must include one of these impact statements:
- "Expected to reduce your [clean/incremental] build by approximately X seconds."
- "Reduces parallel compile work but is unlikely to reduce your build wait time because other tasks take equally long."
- "Impact on wait time is uncertain -- re-benchmark after applying to confirm."
- "No wait-time improvement expected. The benefit is [deterministic builds / faster branch switching / reduced CI cost]."
- For COMPILATION_CACHE_ENABLE_CACHING specifically: "Measured 5-14% faster clean builds across tested projects. The benefit compounds in real workflows where the cache persists between builds -- branch switching, pulling changes, and CI with persistent DerivedData."
Never quote cumulative task-time savings as the headline impact. If a change reduces 5 seconds of parallel compile work but another equally long task still runs, the developer's wait time does not change.
Approval Gate
Before implementing anything, present a short approval list that includes:
- recommendation name
- expected wait-time impact (using the impact language above)
- evidence summary
- affected files or settings
- whether the change is low, medium, or high risk
Wait for explicit developer approval.
Post-Approval Execution
After approval, apply changes by following references/fixer.md:
- implement only the approved items
- apply changes atomically and keep them scoped
- note any deviations from the original recommendation plan
- re-benchmark with the same benchmark contract
Final Report
Lead with the wall-clock result in plain language, e.g.: "Your clean build now takes 82s (was 86s) -- 4s faster." Then include:
- baseline clean and incremental wall-clock medians
- post-change clean and incremental wall-clock medians
- absolute and percentage wall-clock deltas
- what changed
- what was intentionally left unchanged
- confidence notes if noise prevents a strong conclusion -- if benchmark variance is high (min-to-max spread exceeds 20% of median), say so explicitly rather than presenting noisy numbers as definitive improvements or regressions
- if cumulative task metrics improved but wall-clock did not, say plainly: "Compiler workload decreased but build wait time did not improve. This is expected when Xcode runs these tasks in parallel with other equally long work."
- a ready-to-paste community results row and a link to open a PR (see the report template)
Preferred Command Paths
Benchmark
python3 scripts/benchmark_builds.py \
--project App.xcodeproj \
--scheme MyApp \
--configuration Debug \
--destination "platform=iOS Simulator,name=iPhone 16" \
--output-dir .build-benchmarkFor macOS apps use --destination "platform=macOS". For watchOS use --destination "platform=watchOS Simulator,name=Apple Watch Series 10". For tvOS use --destination "platform=tvOS Simulator,name=Apple TV". Omit --destination to use the scheme's default.
To measure real incremental builds (file-touched rebuild) instead of zero-change builds, add --touch-file path/to/SomeFile.swift.
Compilation Diagnostics
python3 scripts/diagnose_compilation.py \
--project App.xcodeproj \
--scheme MyApp \
--configuration Debug \
--destination "platform=iOS Simulator,name=iPhone 16" \
--threshold 100 \
--output-dir .build-benchmarkOptimization Report
python3 scripts/generate_optimization_report.py \
--benchmark .build-benchmark/<artifact>.json \
--project-path App.xcodeproj \
--diagnostics .build-benchmark/<diagnostics>.json \
--output .build-benchmark/optimization-plan.mdSpecialist Reference Playbooks
These are loaded on demand -- open the relevant file only when that phase of work is active:
- references/benchmark.md -- full measurement contract: inputs to collect, clean/cached-clean/zero-change/incremental run rules, required output, and the benchmark artifact format.
- references/compilation-analysis.md -- source-level compile hotspot and Swift type-checking analysis: what to inspect, diagnostic flags, Apple-derived checks, and source citations.
- references/project-analysis.md -- project/target/scheme configuration audit: build settings best practices, script phase checks, zero-change overhead analysis, CocoaPods migration guidance.
- references/fixer.md -- how to apply approved fixes: build settings, script phases, source-level patterns, SPM restructuring, regression evaluation, and the execution report format.
- references/orchestration-report-template.md -- the full
.build-benchmark/optimization-plan.mdreport template thatgenerate_optimization_report.pyproduces automatically.
The shared recommendation structure (fields every recommendation must include) is embedded in each of references/compilation-analysis.md, references/project-analysis.md, and references/fixer.md. Build settings best practices are embedded in references/project-analysis.md and references/fixer.md.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

