Chuyển đến nội dung chính

Agent Skills for Dart and Flutter: teaching your AI the framework it keeps getting wrong

The Q2 2026 survey contains one statistic that reframes how Flutter tooling should be designed: Claude Code at 32% adoption and Antigravity at 23%, both ahead of GitHub Copilot (19%), Cursor (18%) and Codex (17%). Agentic tools have overtaken the autocomplete generation. Roughly a third of Flutter developers now have an agent writing meaningful amounts of their code.

Which creates a problem the framework itself has to solve, because Flutter moves faster than model training data. Flutter 3.47 just changed the import path for the two most-used libraries in the ecosystem. Every model trained before August 2026 will confidently write package:flutter/material.dart forever.

Agent Skills are Google’s answer.

What a Skill actually is

A Skill is a task-oriented instruction set that teaches an agent how to perform a specific development job — not reference documentation, but a procedure.

The framing from the announcement is the clearest way to hold this in your head: MCP provides the hammer and nails; a Skill provides the blueprint and the professional know-how to build the house. An MCP server gives an agent capabilities — run the analyzer, launch a simulator, read a file. A Skill tells it what good work looks like when using those capabilities.

The practical consequence is token efficiency. Skills load progressively, only when relevant to what you asked for. You are not pasting a style guide into every prompt and paying for it on every turn.

MCP serverAgent Skill
ProvidesTools and capabilitiesProcedure and judgement
AnalogyHammer and nailsBlueprint and know-how
LoadedConnected for the sessionProgressively, when relevant
Answers”What can I do?""How should I do this well?”

The ten Flutter skills

The flutter/skills repository ships these:

  • flutter-add-integration-test — configures Flutter Driver and converts interactions into permanent integration tests
  • flutter-add-widget-test — component-level testing with WidgetTester to verify rendering and interaction
  • flutter-add-widget-preview — adds interactive widget previews for UI component validation
  • flutter-apply-architecture-best-practices — structures an app along the recommended UI / Logic / Data layering
  • flutter-build-responsive-layout — adaptive layouts using LayoutBuilder, MediaQuery, or Expanded/Flexible
  • flutter-fix-layout-issues — resolves overflow and unbounded-constraint errors
  • flutter-implement-json-serialization — model classes with fromJson and toJson
  • flutter-setup-declarative-routing — configures MaterialApp.router with a package like go_router
  • flutter-setup-localization — initialises localization with flutter_localizations and intl
  • flutter-use-http-package — REST requests with the http package

The Dart skills live separately in dart-lang/skills, covering language-level work such as pattern-matching refactors and collecting LCOV coverage.

Look at that list as a set and the selection logic becomes obvious. These are not exotic tasks. They are the jobs where an agent left to its own devices produces something that compiles, runs, and is subtly wrong — a layout that works on one screen size, a router configured imperatively, a model class that silently drops a nullable field.

Installing them

Skills install through a single command per repository:

npx skills add flutter/skills --skill '*' --agent universal
npx skills add dart-lang/skills --skill '*' --agent universal

You then select the skills you want and the agent you use. The --agent universal target is what makes this portable across the tools in that survey chart rather than tied to one vendor.

Installing everything with '*' is the fast path. For a team repository, being selective is usually better — install the skills that match your actual conventions, and leave out the ones that would fight your existing architecture.

Where this pays off most

The highest-value case is exactly the situation Flutter 3.47 created. Consider what an agent with stale knowledge produces today:

// What a model trained before August 2026 writes
import 'package:flutter/material.dart';
// What Flutter 3.47 wants
import 'package:material_ui/material_ui.dart';

Both compile right now, because the SDK libraries still exist. One of them starts emitting deprecation warnings in November. An agent has no way to know which is current unless something tells it — and “something” is either a Skill, an MCP server exposing live docs, or you correcting it every single time.

The same applies to @Preview annotations, Impeller-aware performance advice, and Swift Package Manager rather than CocoaPods. Every one of those changed inside the last two releases.

Skills do not replace review

Worth stating plainly, because the survey has a relevant number: developers trust community “battle-tested” features at 41% versus 26% for Google-built features. That scepticism is healthy and should extend here.

A Skill improves the distribution of an agent’s output — fewer wrong-by-default answers, more consistency with framework conventions. It does not make the output correct. flutter-apply-architecture-best-practices will impose a layering on your codebase; whether that layering suits your app is your call, not the agent’s.

Read the generated diff. Run the tests. The Skill has made the agent a better junior, not a senior.

Getting set up

  1. Check which agent you actually use. VS Code (66%) and Android Studio (40%) remain where most Flutter work happens; install for the agent running inside your editor.
  2. Run both npx skills add commands for flutter/skills and dart-lang/skills.
  3. Start selective. Install flutter-fix-layout-issues and flutter-add-widget-test first — the two with the least architectural opinion.
  4. Test on a known task. Ask the agent to write a widget test for an existing component and compare against what you would have written.
  5. Add the opinionated ones — architecture, routing — only after you have confirmed they match your conventions.
  6. Pin your framework version in the prompt when working on migration-sensitive code. Skills help; explicit context helps more.
  7. Re-run the install after major releases so the skill definitions track the framework.

The bottom line

The interesting thing about Agent Skills is not that Google shipped an AI feature. It is the admission behind it: a third of the user base now writes code through an agent, and the framework’s release cadence has outrun the models’ knowledge cutoffs. Skills are infrastructure for that gap. They will not make your agent a senior Flutter engineer, but they will stop it confidently importing a library that gets deprecated in November — and on a codebase of any size, that is worth the two commands.


Originally published on FlutterCook. Read the latest version there — that copy is the one kept up to date.

Nhận xét

Bài đăng phổ biến từ blog này

Thiết kế giao diện với DotNetBar (Phần 1)

Đây là phiên bản DotNetBar hỗ trợ C# và Visual Basic https://www.dropbox.com/s/wx80jpvgnlrmtux/DotNetBar.rar  , phiên bản này hỗ trợ giao diện Metro cực kỳ “dễ thương” Các bạn load về và cài đặt, khi cài đặt xong sẽ có source code mẫu của tất cả các control. Để sử dụng được các control của DotNetBar các bạn nhớ add item vào controls box. Thiết kế giao diện với DotNetBar, giao diện sẽ rất đẹp. Link các video hướng dẫn chi tiết cách sử dụng và coding: http://www.devcomponents.com/dotnetbar/movies.aspx Hiện tại DotNetBar có rất nhiều công cụ cực mạnh, trong đó có 3 công cụ dưới đây: DotNetBar for Windows Forms Requires with Visual Studio 2003, 2005, 2008, 2010 or 2012.   DotNetBar for WPF Requires with Visual Studio 2010 or 2012 and Windows Presentation Foundation.   DotNetBar for Silverlight Requires with Visual Studio 2010 or 2012 and Silverlight. Dưới đây là một số hình ảnh về các control trong DotnetBar.   Metro User Interface  controls with Metro Tiles, toolba...

5 concepts every Flutter dev should know

  Phụ lục: State management architecture Testing IDE Shortcuts Platform channel Maintaining a project Tôi đã làm việc với Flagship trong một thời gian dài, và đây là những điều mà tôi phát hiện ra là điều cần phải có đối với bất kỳ nhà phát triển Flagship nào, về tổng thể nó sẽ khiến bạn trở thành một nhà phát triển Flagship giỏi trong thời gian dài. 1. State management architecture Đây là một trong những chủ đề quan trọng nhất trong cộng đồng thiết bị rung, nó khá quan trọng nếu bạn muốn duy trì một dự án rung kích thước trung bình hoặc lớn. Nó sẽ giúp tạo một dự án suôn sẻ và thêm các tính năng mới một cách hoàn hảo.  2. Testing Đây là một chủ đề duy nhất mà tôi không hiểu tại sao nó lại quan trọng trước đó trong sự nghiệp của tôi, nhưng khi tôi tiến lên trong sự nghiệp của mình và có kinh nghiệm với nhiều dự án và vấn đề xảy ra trong môi trường sản xuất. Tôi đã nhận ra một cách khó khăn, tại sao điều này lại quan trọng như vậy. Nếu bạn vẫn muốn có thêm lý do để cân nhắc thử...

Announcing Flutter 2

  Phụ lục: Flutter on the web Flutter 2 on desktops, foldables, and embedded devices The growing Flutter ecosystem Dart: The secret sauce behind Flutter Flutter 2: Available now Hôm nay, chúng tôi sẽ công bố Flutter 2: một bản nâng cấp lớn cho Flutter cho phép các nhà phát triển tạo các ứng dụng đẹp, nhanh chóng và di động cho bất kỳ nền tảng nào. Với Flutter 2, bạn có thể sử dụng cùng một cơ sở mã để gửi các ứng dụng gốc cho năm hệ điều hành: IOS, Android, Windows, macOS và Linux; cũng như trải nghiệm web nhắm mục tiêu các trình duyệt như Chrome, Firefox, Safari hoặc Edge. Flutter thậm chí có thể được nhúng vào ô tô, TV và thiết bị gia dụng thông minh, mang đến trải nghiệm di động và lan tỏa nhất cho thế giới điện toán xung quanh. Mục tiêu của chúng tôi là thay đổi cơ bản cách các nhà phát triển nghĩ về việc xây dựng ứng dụng, bắt đầu không phải với nền tảng bạn đang nhắm mục tiêu mà là với trải nghiệm bạn muốn tạo. Flutter cho phép bạn tạo ra những trải nghiệm tuyệt đẹp trong đó ...