| --- |
| name: engine-whats-new |
| description: > |
| Generates the "what's new" release summary and diff file for changes in the Flutter engine (//engine/src/flutter) between two releases (e.g., 3.47 vs 3.44). |
| |
| When to use: |
| - Only activate when explicitly asked by the user to generate what's new in the engine, diff Flutter engine releases, or produce an engine release summary. |
| |
| When not to use: |
| - Do not use for general questions about commits, individual file history, or codebase searches unless explicitly requested to generate the engine release diff or summary. |
| --- |
| |
| # Flutter Engine What's New & Diff Skill |
| |
| ## Workflow |
| |
| ### 1. Identify Inputs |
| |
| Extract the following from the user's request: |
| * **Target Release (`<TARGET_RELEASE>`):** The Flutter release version to analyze (e.g., `3.47`, `3.47.0`, or `flutter-3.47-candidate.0`). |
| * **Base Release (`<BASE_RELEASE>`):** Optional. The prior Flutter release to compare against (e.g., `3.44`). If omitted by the user, the script will automatically calculate the predecessor release (e.g., for `3.47` it automatically selects `3.44`). |
| |
| ### 2. Run the Generator Tool |
| |
| Execute the Dart script from the Flutter repository root: |
| |
| ```bash |
| dart .agents/skills/engine-whats-new/scripts/generate_engine_whats_new.dart --release <TARGET_RELEASE> |
| ``` |
| |
| If the user specifies a custom base release or output paths: |
| |
| ```bash |
| 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 |
| ``` |
| |
| To output structured JSON for programmatic consumption: |
| |
| ```bash |
| dart .agents/skills/engine-whats-new/scripts/generate_engine_whats_new.dart --release <TARGET_RELEASE> --format json |
| ``` |
| |
| ### 3. Review Generated Artifacts & Present to User |
| |
| The tool produces two primary artifacts in the repository root: |
| 1. **Diff File (`engine_diff_<BASE_RELEASE>_to_<TARGET_RELEASE>.diff`):** The full unified git diff of all changes in //engine/src/flutter between the two releases. |
| 2. **Summary Document (`engine_whats_new_<TARGET_RELEASE>.md`):** A categorized Markdown summary covering: |
| * **Overview & Statistics:** Total engine commits, files changed, additions, and deletions. |
| * **🚀 Impeller & Graphics Rendering:** Vulkan, Metal, OpenGL, shaders, and display list updates. |
| * **🌐 Web Engine & Wasm:** Web SDK, CanvasKit, and WebAssembly changes. |
| * **📱 Android Embedding:** Gradle/AGP updates, Android view rendering, and Java/Kotlin embedding changes. |
| * **🍎 iOS & macOS Embeddings:** Darwin platform view lifecycle, Metal views, and macOS/iOS updates. |
| * **🪟 Windows & Linux Desktop Embeddings:** Win32 compositor, Linux GTK embedding, and desktop shell fixes. |
| * **🔤 Text, Typography & Accessibility:** Semantics, IME, font fallback, and text layout improvements. |
| * **🔄 Dependency Rolls:** Skia, Dart SDK, ICU, HarfBuzz, and ANGLE rolls. |
| * **🛠️ Build System, CI & Tooling:** GN build files, luci scripts, and testing utilities. |
| |
| Provide the user with a concise overview of the results and links to the generated diff and markdown summary files. |
| |
| ## Examples |
| |
| - **User:** "Generate what's new in the engine for Flutter 3.47." |
| - **Agent:** |
| 1. Identifies target release `3.47`. |
| 2. Runs `dart .agents/skills/engine-whats-new/scripts/generate_engine_whats_new.dart --release 3.47`. |
| 3. Reports the summary statistics (e.g., 354 commits, 1179 files changed) and shares the generated `engine_diff_3.44_to_3.47.diff` and `engine_whats_new_3.47.md`. |
| |
| - **User:** "Diff the engine changes between Flutter 3.41 and 3.44." |
| - **Agent:** |
| 1. Identifies base release `3.41` and target release `3.44`. |
| 2. Runs `dart .agents/skills/engine-whats-new/scripts/generate_engine_whats_new.dart --from 3.41 --to 3.44`. |
| 3. Presents the breakdown of engine changes and the diff file. |