mcpbeat

Engine Whats New

flutter/engine-whats-new

> 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).

6k tokens
context cost
the whole folder, loaded on every use
3
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
178160
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/flutter/flutter --skill engine-whats-new

What comes with it

18 202 bytes besides the instruction
scripts/README.md
scripts/generate_engine_whats_new.dart

The instruction itself

6 sections, as written by the author

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:

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:

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:

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:

  • 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.
  • 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:
  • Identifies target release 3.47.
  • Runs dart .agents/skills/engine-whats-new/scripts/generate_engine_whats_new.dart --release 3.47.
  • 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:
  • Identifies base release 3.41 and target release 3.44.
  • Runs dart .agents/skills/engine-whats-new/scripts/generate_engine_whats_new.dart --from 3.41 --to 3.44.
  • Presents the breakdown of engine changes and the diff file.

How to use it

Copy the folder

Take flutter/engine-whats-new from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.