engine-whats-new について
Flutter エンジンのリリース間の変更概要と差分を生成するスキルです。Dart スクリプトの実行手順と、生成物の提示方法を案内します。
主な機能
- 01Flutter エンジンのリリース比較
- 02統一形式の git 差分生成
- 03分類別 Markdown 概要の作成
- 04構造化 JSON の出力
活用シーン
- 01新しい Flutter リリースのエンジン変更確認
- 02指定したリリース間の変更比較
- 03プログラム処理向けリリースデータの作成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ flutter/ flutter --skill engine-whats-newインストール後、Claude Code で/engine-whats-newを入力して読み込まれたか確認します。
同梱ファイルscripts/generate_engine_whats_new.dartscripts/README.md
詳細
Flutter Engine の新機能と差分スキル
ワークフロー
1. 入力を特定する
ユーザーのリクエストから、以下を抽出します。
- 対象リリース(
<TARGET_RELEASE>): 分析する Flutter のリリースバージョンです(例:3.47、3.47.0、flutter-3.47-candidate.0)。 - ベースリリース(
<BASE_RELEASE>): 任意です。比較対象となる前の Flutter リリースです(例:3.44)。ユーザーが指定しない場合、スクリプトが前のリリースを自動的に計算します(例:3.47の場合は3.44が自動的に選択されます)。
2. 生成ツールを実行する
Flutter リポジトリのルートから Dart スクリプトを実行します。
dart .agents/skills/engine-whats-new/scripts/generate_engine_whats_new.dart --release <TARGET_RELEASE>
ユーザーがカスタムのベースリリースまたは出力パスを指定した場合:
dart .agents/skills/engine-whats-new/scripts/generate_engine_whats_new.dart --release <TARGET_RELEASE> --from <BASE_RELEASE> --output-diff engine_diff_<BASE_RELEASE>_to_<TARGET_RELEASE>.diff --output-summary engine_whats_new_<TARGET_RELEASE>.md
プログラムで使用できる構造化 JSON を出力する場合:
dart .agents/skills/engine-whats-new/scripts/generate_engine_whats_new.dart --release <TARGET_RELEASE> --format json
3. 生成された成果物を確認してユーザーに提示する
ツールは、リポジトリのルートに次の 2 つの主要な成果物を生成します。
- 差分ファイル(
engine_diff_<BASE_RELEASE>_to_<TARGET_RELEASE>.diff): 2 つのリリース間における //engine/src/flutter のすべての変更を含む、完全な統合 Git 差分です。 - 概要ドキュメント(
engine_whats_new_<TARGET_RELEASE>.md): 次の項目を分類してまとめた Markdown 形式の概要です。- 概要と統計: エンジンのコミット数、変更されたファイル数、追加数、削除数の合計です。
- 🚀 Impeller とグラフィックスレンダリング: Vulkan、Metal、OpenGL、シェーダー、ディスプレイリストの更新です。
- 🌐 Web エンジンと Wasm: Web SDK、CanvasKit、WebAssembly の変更です。
- 📱 Android の組み込み: Gradle/AGP の更新、Android ビューのレンダリング、Java/Kotlin による組み込みの変更です。
- 🍎 iOS と macOS の組み込み: Darwin プラットフォームビューのライフサイクル、Metal ビュー、macOS/iOS の更新です。
- 🪟 Windows と Linux デスクトップの組み込み: Win32 コンポジター、Linux GTK の組み込み、デスクトップシェルの修正です。
- 🔤 テキスト、タイポグラフィ、アクセシビリティ: セマンティクス、IME、フォントフォールバック、テキストレイアウトの改善です。
- 🔄 依存関係の更新: Skia、Dart SDK、ICU、HarfBuzz、ANGLE の更新です。
- 🛠️ ビルドシステム、CI、ツール: GN ビルドファイル、luci スクリプト、テストユーティリティです。
結果の簡潔な概要を示し、生成された差分ファイルと Markdown 概要ファイルへのリンクをユーザーに提供します。
例
-
ユーザー:「Flutter 3.47 のエンジンの新機能を生成してください。」
-
エージェント:
- 対象リリース
3.47を特定します。 dart .agents/skills/engine-whats-new/scripts/generate_engine_whats_new.dart --release 3.47を実行します。- 概要の統計(例:354 件のコミット、1179 個の変更ファイル)を報告し、生成された
engine_diff_3.44_to_3.47.diffとengine_whats_new_3.47.mdを共有します。
- 対象リリース
-
ユーザー:「Flutter 3.41 と 3.44 の間のエンジンの変更を比較してください。」
-
エージェント:
- ベースリリース
3.41と対象リリース3.44を特定します。 dart .agents/skills/engine-whats-new/scripts/generate_engine_whats_new.dart --from 3.41 --to 3.44を実行します。- エンジンの変更内容の内訳と差分ファイルを提示します。
- ベースリリース
コメント
Markdown 対応