# Compare Builds

Compares two Xcode build runs to identify duration regressions, cache changes, and new...

- Repository: https://github.com/tuist/tuist (5859 stars)
- Category: Mobile
- License: see repository
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add tuist/tuist --skill compare-builds -g -a claude-code -y`
Codex: `npx skills add tuist/tuist --skill compare-builds -g -a codex -y`
Cursor: `npx skills add tuist/tuist --skill compare-builds -g -a cursor -y`
Gemini CLI: `npx skills add tuist/tuist --skill compare-builds -g -a gemini-cli -y`

## Description

Compares two Xcode build runs to identify duration regressions, cache changes, and new issues. Can be invoked with build IDs, dashboard URLs, or branch names (e.g. `tuist compare-builds --base main --head feature-branch`).

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Compare Builds

## Quick Start

You'll typically receive two build identifiers (IDs, dashboard URLs, or branch names). Follow these steps:

1. Run `tuist build list --json` to find builds on each branch.
2. Run `tuist build show <build-id> --json` for both base and head builds.
3. Fetch sub-resource details: targets (`tuist build xcode target list <id> --json`), issues (`tuist build xcode issue list <id> --json`), and cache tasks (`tuist build xcode cache-task list <id> --json`).
4. Compare duration, status, cache hit rates, and other metrics.
5. Summarize regressions, improvements, and recommendations.

If only one identifier is provided, use the project's default branch as the baseline.

## Step 1: Resolve Builds

### If base/head are build IDs or dashboard URLs

Fetch each directly:

```bash
tuist build show <base-id> --json
tuist build show <head-id> --json
```

### If base/head are branch names

List recent builds on each branch and pick the latest:

```bash
tuist build list --git-branch <base-branch> --json --page-size 1
tuist build list --git-branch <head-branch> --json --page-size 1
```

Then fetch full details with `tuist build show <id> --json`.

### Defaults

- If no base is provided, use the project's default branch (usually `main`).
- If no head is provided, detect the current git branch with `git rev-parse --abbrev-ref HEAD`.

## Step 2: Fetch Sub-Resource Details

After fetching both builds with `tuist build show <id> --json`, drill down into sub-resources for a deeper comparison.

### Compare targets

```bash
tuist build xcode target list <base-id> --json
tuist build xcode target list <head-id> --json
```

Look for targets that changed status (e.g., success to failure) or had significant duration changes.

### Compare issues

```bash
tuist build xcode issue list <base-id> --json
tuist build xcode issue list <head-id> --json
```

Look for new warnings or errors introduced in the head build.

### Compare cache tasks

The rest: https://github.com/tuist/tuist/blob/HEAD/skills/skills/compare-builds/SKILL.md
