mcpField
C
compare-bundles

compare-bundles

github.com/tuist開発35279 回インストール31 週間前に更新
リポジトリ

compare-bundles について

2つのTuist bundleを比較するスキルです。開発者がアーティファクトツリー、インストールサイズとダウンロードサイズを調べ、サイズ差の要因を確認できます。

主な機能

  1. 01IDまたはブランチからbundleを特定
  2. 02アーティファクトツリーを比較
  3. 03インストールとダウンロードサイズの変化を測定
  4. 04バージョンとプラットフォームの差を確認
  5. 05サイズ削減策を提示

活用シーン

  1. 01ブランチ間のbundleサイズを確認
  2. 02サイズ増加の原因となるアーティファクトを特定
  3. 03バージョンやプラットフォーム変更の影響を評価

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/tuist/agent-skills --skill compare-bundles

インストール後、Claude Code で/compare-bundlesを入力して読み込まれたか確認します。

詳細

バンドルを比較する

クイックスタート

通常、2つのバンドル識別子を受け取ります。以下の手順に従ってください。

  1. tuist bundle list --json を実行して、各ブランチのバンドルを確認します。
  2. ベースとヘッドの両方のバンドルに対して、tuist bundle show <bundle-id> --json を実行します。
  3. tuist bundle artifact list <bundle-id> --json でアーティファクトツリーを比較します。
  4. インストールサイズ、ダウンロードサイズ、その他のメタデータを比較します。
  5. サイズの変化を、実行可能な推奨事項とともにまとめます。

手順 1:バンドルを特定する

ベース/ヘッドがバンドル ID またはダッシュボード URL の場合

それぞれを直接取得します。

tuist bundle show <base-id> --json
tuist bundle show <head-id> --json
ベース/ヘッドがブランチ名の場合

各ブランチの最近のバンドルを一覧表示し、最新のものを選びます。

tuist bundle list --git-branch <base-branch> --json
tuist bundle list --git-branch <head-branch> --json

次に、tuist bundle show <id> --json で詳細情報を取得します。

デフォルト
  • ベースが指定されていない場合は、プロジェクトのデフォルトブランチ(通常は main)を使用します。
  • ヘッドが指定されていない場合は、現在の git ブランチを検出します。

手順 2:アーティファクトツリーを比較する

tuist bundle show <id> --json で両方のバンドルを取得した後、個々のアーティファクトを比較します。

tuist bundle artifact list <base-id> --json
tuist bundle artifact list <head-id> --json

両方のバンドル間で名前を基準にアーティファクトを照合します。次の点を確認してください。

  • ヘッドのバンドルに追加された新しいアーティファクト(サイズ増加の要因となる可能性があります)
  • 削除されたアーティファクト(サイズ減少の理由を説明します)
  • 既存アーティファクトのサイズ変化

手順 3:トップレベルのメトリクスを比較する

両方のバンドルを取得した後、以下を比較します。

メトリクス確認事項
install_sizeヘッドが 5% を超えて大きい場合は注意します
download_sizeヘッドが 5% を超えて大きい場合は注意します
versionバージョンの変更を記録します
supported_platformsプラットフォームの変更を記録します
app_bundle_idベースとヘッドで一致している必要があります

差分を計算します。

  • インストールサイズの差分:head_install_size - base_install_size
  • ダウンロードサイズの差分:head_download_size - base_download_size
  • 変化率:delta / base_size * 100

手順 4:サイズの変化を分析する

サイズが大幅に増加した場合(>5%):

  1. version が変更されたか確認します。予想されるサイズ増加の理由になる可能性があります。
  2. supported_platforms が変更されたか確認します(プラットフォームを追加するとサイズが増加します)。
  3. バンドルの詳細にある artifacts フィールドで、個々のアーティファクトのサイズを確認します。

サイズ増加の一般的な原因:

  • 新しいフレームワークやライブラリの追加
  • アセットカタログの増加(新しい画像や動画)
  • 最適化されていないリソース(圧縮形式ではなくサイズの大きい PNG)
  • リリースビルドへのデバッグシンボルの含有
  • 新しいローカライズの追加

サイズ減少の一般的な原因:

  • 未使用のフレームワークの削除
  • アセットの最適化
  • ツリーシェイキングやデッドコード除去の改善
  • 機能をオンデマンドリソースに移動

まとめの形式

以下を含むまとめを作成します。

  1. 全体の評価:サイズが増加、減少、または安定しているか。
  2. インストールサイズ:絶対値と変化率。
  3. ダウンロードサイズ:絶対値と変化率。
  4. バージョン:バージョンが変更されたかを記載します。
  5. プラットフォーム:プラットフォームの変更を記載します。
  6. 推奨事項:サイズの悪化に対する実行可能な次のステップ。

例:

Bundle Comparison: base (v2.1.0 on main) vs head (v2.2.0 on feature-x)

Install Size: 45.2 MB -> 52.8 MB (+16.8%) -- REGRESSION
Download Size: 28.1 MB -> 32.4 MB (+15.3%) -- REGRESSION
Version: 2.1.0 -> 2.2.0
Platforms: iOS, macOS (unchanged)

The install size increased by 7.6 MB. This is a significant increase
that may affect user download and storage experience.

Recommendations:
- Review new frameworks or assets added in this version
- Check for uncompressed resources or oversized image assets
- Consider using asset compression or on-demand resources
- Run `xcrun bitcode_strip` analysis to check for unnecessary bitcode

完了チェックリスト

  • ベースとヘッドの両方のバンドルを特定した
  • tuist bundle artifact list を使ってアーティファクトツリーを比較した
  • インストールサイズとダウンロードサイズを比較した
  • サイズ変化の根本原因を分析した
  • 実行可能な推奨事項を提示した

コメント