← TuistCONTENT HISTORY

Update to Tuist

Snapshot Sep 30, 2026 · 23:09 UTC · version 1.0.1

Collection source: not recorded for this historical snapshot.

WHAT CHANGED · RULE-BASED ANALYSIS

First saved snapshot

No earlier snapshot is available to establish a change.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "name": "compare-bundles",
  "description": "Compares two app bundles to identify size changes, new or removed artifacts, and platform differences. Can be invoked with bundle IDs, dashboard URLs, or branch names.",
  "included_files": [],
  "skill_md_contents": "---\nname: compare-bundles\ndescription: Compares two app bundles to identify size changes, new or removed artifacts, and platform differences. Can be invoked with bundle IDs, dashboard URLs, or branch names.\n---\n\n# Compare Bundles\n\n## Quick Start\n\nYou'll typically receive two bundle identifiers. Follow these steps:\n\n1. Run `tuist bundle list --json` to find bundles on each branch.\n2. Run `tuist bundle show <bundle-id> --json` for both base and head bundles.\n3. Compare artifact trees with `tuist bundle artifact list <bundle-id> --json`.\n4. Compare install size, download size, and other metadata.\n5. Summarize size changes with actionable recommendations.\n\n## Step 1: Resolve Bundles\n\n### If base/head are bundle IDs or dashboard URLs\n\nFetch each directly:\n\n```bash\ntuist bundle show <base-id> --json\ntuist bundle show <head-id> --json\n```\n\n### If base/head are branch names\n\nList recent bundles on each branch and pick the latest:\n\n```bash\ntuist bundle list --git-branch <base-branch> --json\ntuist bundle list --git-branch <head-branch> --json\n```\n\nThen fetch full details with `tuist bundle show <id> --json`.\n\n### Defaults\n\n- If no base is provided, use the project's default branch (usually `main`).\n- If no head is provided, detect the current git branch.\n\n## Step 2: Compare Artifact Trees\n\nAfter fetching both bundles with `tuist bundle show <id> --json`, compare the individual artifacts:\n\n```bash\ntuist bundle artifact list <base-id> --json\ntuist bundle artifact list <head-id> --json\n```\n\nMatch artifacts by name across both bundles. Look for:\n- New artifacts added in the head bundle (potential size contributors)\n- Removed artifacts (explain size decreases)\n- Size changes in existing artifacts\n\n## Step 3: Compare Top-Level Metrics\n\nAfter fetching both bundles, compare:\n\n| Metric | What to check |\n|---|---|\n| `install_size` | Flag if head is >5% larger |\n| `download_size` | Flag if head is >5% larger |\n| `version` | Note version changes |\n| `supported_platforms` | Note platform changes |\n| `app_bundle_id` | Should match between base and head |\n\nCompute deltas:\n- Install size delta: `head_install_size - base_install_size`\n- Download size delta: `head_download_size - base_download_size`\n- Percentage change: `delta / base_size * 100`\n\n## Step 4: Analyze Size Changes\n\nIf size increased significantly (>5%):\n\n1. Check if `version` changed, which might explain expected size growth.\n2. Check if `supported_platforms` changed (adding a platform increases size).\n3. Look at the `artifacts` field in the bundle details for individual artifact sizes.\n\nCommon causes of size increases:\n- New frameworks or libraries added\n- Asset catalogs grew (new images, videos)\n- Unoptimized resources (large PNGs instead of compressed formats)\n- Debug symbols included in release builds\n- New localizations added\n\nCommon causes of size decreases:\n- Removed unused frameworks\n- Optimized assets\n- Tree shaking or dead code elimination improvements\n- Moved functionality to on-demand resources\n\n## Summary Format\n\nProduce a summary with:\n\n1. **Overall verdict**: Size increased, decreased, or stable.\n2. **Install size**: Absolute and percentage change.\n3. **Download size**: Absolute and percentage change.\n4. **Version**: Note if version changed.\n5. **Platforms**: Note any platform changes.\n6. **Recommendations**: Actionable next steps for size regressions.\n\nExample:\n\n```\nBundle Comparison: base (v2.1.0 on main) vs head (v2.2.0 on feature-x)\n\nInstall Size: 45.2 MB -> 52.8 MB (+16.8%) -- REGRESSION\nDownload Size: 28.1 MB -> 32.4 MB (+15.3%) -- REGRESSION\nVersion: 2.1.0 -> 2.2.0\nPlatforms: iOS, macOS (unchanged)\n\nThe install size increased by 7.6 MB. This is a significant increase\nthat may affect user download and storage experience.\n\nRecommendations:\n- Review new frameworks or assets added in this version\n- Check for uncompressed resources or oversized image assets\n- Consider using asset compression or on-demand resources\n- Run `xcrun bitcode_strip` analysis to check for unnecessary bitcode\n```\n\n## Done Checklist\n\n- Resolved both base and head bundles\n- Compared artifact trees using `tuist bundle artifact list`\n- Compared install and download sizes\n- Analyzed root causes of size changes\n- Provided actionable recommendations\n"
}

SHA-256: 5145abceb57ea9e2a69fdb0aeb8d6e263cb2915f7614c6c930f35d00f3bffeca