blob: b6adc9e9b9f26056fd83bf9ed6ca791bfd85e8d6 [file] [view]
---
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.