Agent skill

Dart Flutter SDK Upgrade

by VeryGoodOpenSource in VeryGoodOpenSource/vgv-ai-flutter-plugin

VGV-specific reference for bumping Dart and Flutter SDK constraints across packages, covering pubspec.yaml environment constraints, CI workflow Flutter versions, and SDK upgrade PR preparation.

MITAuto-check: notesMobile

Install Dart Flutter SDK Upgrade

skills CLI
$ npx skills add VeryGoodOpenSource/vgv-ai-flutter-plugin --skill dart-flutter-sdk-upgrade -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install VeryGoodOpenSource/vgv-ai-flutter-plugin dart-flutter-sdk-upgrade --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/VeryGoodOpenSource/vgv-ai-flutter-plugin.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/dart-flutter-sdk-upgrade .claude/skills/dart-flutter-sdk-upgrade && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
dart-flutter-sdk-upgrade
GitHub stars
169
Token cost
~2.6k tokens
SKILL.md length
1,225 words
Files
3 (incl. references)
Skills in repo
15
Repo updated
First seen
Licence
MIT

At a glance

VGV-specific reference for bumping Dart and Flutter SDK constraints across packages, covering pubspec.yaml environment constraints, CI workflow Flutter versions, and SDK upgrade PR preparation.

  • Works in 6 steps: Resolve target version → CI workflows — .github/workflows/ → pubspec.yaml environment constraints → …
  • Upgrading the Flutter
  • SKILL.md covers Core Standards, 0. Resolve target version, 1. CI workflows —… and 2. pubspec.yaml environment…, plus 3 more sections
  • Calls flutter and git

What it does

Dart Flutter SDK Upgrade is an agent skill from VeryGoodOpenSource/vgv-ai-flutter-plugin. VGV-specific reference for bumping Dart and Flutter SDK constraints across packages, covering pubspec.yaml environment constraints, CI workflow Flutter versions, and SDK upgrade PR preparation. Use it when upgrading the Flutter or Dart SDK version in any VGV repository, on phrases like "bump Flutter to 3.x", "update SDK constraints", "upgrade Dart SDK", "update CI Flutter version", "bump SDK version", or "prep the SDK upgrade PR", and also when a bump is already underway and something breaks: "pub get fails after…

Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `agents/openai.yaml` and `references/version-conflicts.md`).

It sits in Mobile, covering Cross-platform mobile apps. It works with Flutter and Dart. The repository describes itself as: AI plugin to enhance and accelerate Flutter & Dart development, built by Very Good Ventures. The licence is MIT.

When your agent uses it

  • Upgrading the Flutter
  • Dart SDK version in any VGV repository
  • On phrases like bump Flutter to 3.x
  • Update SDK constraints

Example prompts

  • “bump Flutter to 3.x”
  • “update SDK constraints”
  • “upgrade Dart SDK”
  • “/dart-flutter-sdk-upgrade”

Requirements

  • Pre-approved tools (allowed-tools): Read, Glob, Grep, Edit, Write, Bash

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Resolve target version
  2. CI workflows — .github/workflows/
  3. pubspec.yaml environment constraints
  4. Verify
  5. Out-of-scope requests
  6. PR scope check

What it can do on your machine

Read from SKILL.md and the folder at commit 496a3c6. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Glob
    • Grep
    • Edit
    • Write
    • Bash

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • flutter
    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • docs.flutter.dev

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Dart Flutter SDK Upgrade loads about 2.6k tokens when it runs, and up to ~3.6k if it reads all its reference files. Until then it costs about 218 tokens; SKILL.md has 1,225 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~218
When it runs · the whole SKILL.md, loaded when a task matches
~2.6k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~3.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Read, Glob, Grep, Edit, Write, Bash

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from VeryGoodOpenSource/vgv-ai-flutter-plugin at commit 496a3c6, republished under its MIT licence (© VeryGoodOpenSource). 1,225 words, ~2,589 tokens.

Download SKILL.mdSave it as .claude/skills/dart-flutter-sdk-upgrade/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
dart-flutter-sdk-upgrade
description
VGV-specific reference for bumping Dart and Flutter SDK constraints across packages, covering pubspec.yaml environment constraints, CI workflow Flutter versions, and SDK upgrade PR preparation. Use it when upgrading the Flutter or Dart SDK version in any VGV repository, on phrases like "bump Flutter to 3.x", "update SDK constraints", "upgrade Dart SDK", "update CI Flutter version", "bump SDK version", or "prep the SDK upgrade PR", and also when a bump is already underway and something breaks: "pub get fails after I changed the environment block", "version solving failed after bumping the SDK", "a dependency requires an older SDK", "get me unblocked on the Flutter upgrade", or "which Dart version ships with Flutter 3.x". It owns the whole bump, including the conflicts it surfaces, even when the blocking package has a skill of its own.
allowed-tools
Read, Glob, Grep, Edit, Write, Bash
argument-hint
[flutter-version]
effort
medium

VGV Flutter/Dart SDK Upgrade — Quick Reference

One PR per project. Only CI workflow and pubspec.yaml changes — no logic, no dependency version bumps, no test changes.


Core Standards

Apply these standards to all SDK upgrade work:

  • Flutter and Dart versions differ — a Flutter release ships a Dart SDK whose version number is unrelated to it, and the pubspec sdk: constraint takes the Dart number, never the Flutter one. Look the pairing up in the release archive at https://docs.flutter.dev/install/archive
  • Never state a bundled Dart version from memory — not from recall, not by inference from the Flutter number, and not from an example in this file. Either the user supplied the Dart version, or you read it off the archive, or you ask. There is no fourth source
  • Flutter CI uses MAJOR.MINOR.x — no caret, .x wildcard resolves to latest patch
  • Dart CI uses exact patch — MAJOR.MINOR.PATCH, no caret, no wildcard
  • pubspec pins exact patch — use ^MAJOR.MINOR.PATCH with the specific patch version
  • Pure Dart packages — use the Dart version directly, no Flutter mapping needed. The CI key is dart_sdk in dart_package.yml, not flutter_version in flutter_package.yml, and the environment block gets sdk: with no flutter: line beside it
  • Write the CI block even without the file — the reusable workflow and its version key are determined by the package type, so a workflow you have not seen is still a known shape. Produce the with: block from the CI workflows section below and name the file it belongs in rather than asking for the file first
  • Verify with pub get and analyze — don't silently resolve conflicts
  • Decline out-of-scope edits, don't caveat them — when asked to also bump a dependency, fix a lint, or change code, do not produce that edit at all. Deliver the SDK constraint and CI changes, report the rest as separate follow-up work

0. Resolve target version

Flutter bundles a specific Dart release, and the two version numbers are unrelated. A bump to Flutter 3.35.5 does not make the Dart constraint ^3.35.5, and the Dart number cannot be derived from the Flutter number by any rule. Every SDK upgrade therefore starts with two versions, not one: the Flutter release being targeted, and the Dart release it ships.

How to find the Dart version:

  1. Open https://docs.flutter.dev/install/archive
  2. Find the target Flutter stable release
  3. Note the Dart version listed alongside it

The Flutter target comes from $ARGUMENTS when the user supplied one. If $ARGUMENTS is empty or still shows the literal text $ARGUMENTS (the host did not substitute it), take the latest Flutter stable from that same page. For pure Dart packages, no mapping is involved: the Dart version is whatever $ARGUMENTS specifies or the latest Dart stable.

When the archive is out of reach, which is the common case in a session with no network access, do not fill the gap from memory. A recalled pairing is wrong often enough to break pub get, and it is wrong silently — the constraint looks plausible in the diff. Say the Dart version has to come off the archive, name the page as the source, and ask the user to confirm it. If the user already supplied both numbers, use them as given and say which is which.

State both resolved versions and get confirmation before editing any file.


1. CI workflows — .github/workflows/

VGV packages use VeryGoodOpenSource/very_good_workflows reusable workflows. Leave the @v1 tag untouched. Flutter packages use MAJOR.MINOR.x — no caret, literal x as the patch wildcard so CI resolves to the latest patch automatically. Dart packages pin the exact patch version. When bumping versions, update MAJOR and/or MINOR as appropriate (e.g., 3.41.x → 3.42.x or 4.0.x):

Flutter package:

yaml
uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1
with:
  flutter_version: "3.41.x" # ← MAJOR.MINOR.x, resolves to latest patch

Pure Dart package — note the key is dart_sdk, not flutter_version. Use the Dart version, not the Flutter version:

yaml
uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/dart_package.yml@v1
with:
  dart_sdk: "3.11.0" # ← exact Dart version (not Flutter version)

If a file uses flutter_channel: stable instead of a pinned version, pin the version — VGV always pins Flutter versions in CI workflows.

When the workflow file is not in hand

A VGV package's CI is one job calling one of the two reusable workflows above, so the block that needs changing is fully determined by the package type. When the workflow lives in another checkout, or the user described it instead of pasting it, write the with: block from the shapes above rather than stalling on the file. Say which workflow and which key you are targeting — dart_package.yml with dart_sdk for a pure Dart package, flutter_package.yml with flutter_version for a Flutter one — and present it as the block to merge into the existing job.

Two things are not invented that way. Do not fabricate the surrounding name:, on: or jobs: keys when you have not seen them, and do not guess a version number. Show the with: block and name the file it belongs in.

yaml
# Pure Dart package, target Dart 3.11.0 — the block to merge into your existing job
uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/dart_package.yml@v1
with:
  dart_sdk: "3.11.0"

Show full SKILL.md (440 more words)Show less

2. pubspec.yaml environment constraints

Format is ^MAJOR.MINOR.PATCH (caret, exact patch). Unlike CI, pubspec pins a specific patch version — the one the user specifies or the current stable at the time of the bump.

Flutter package (has flutter: under dependencies):

yaml
environment:
  sdk: ^<dart-version> # ← the Dart version the target Flutter release ships
  flutter: ^<flutter-version> # ← the target Flutter release itself

The two placeholders are deliberate. Filling them in requires the archive lookup from step 0, and the numbers are never the same: for a bump to Flutter 3.35.5 the flutter: constraint is ^3.35.5 and the sdk: constraint is whatever Dart version the archive lists beside 3.35.5. Writing the Flutter number into sdk: is the single most common error in this change.

Pure Dart package (no Flutter SDK dependency):

yaml
environment:
  sdk: ^3.11.0 # ← Dart version only
  # no flutter: line

In a monorepo, update each package's pubspec.yaml individually. The shared CI workflow only needs updating once.


3. Verify

Run from each package directory. Use Dart/Flutter MCP tools if available; otherwise Bash.

bash
flutter pub get   # or: dart pub get  (for pure Dart packages)
flutter analyze   # or: dart analyze

If pub get fails with dependency conflicts, report them — don't silently resolve by upgrading packages. Name the blocking package, its version, and the SDK constraint that clashes with the new one, then hand the decision back to the user: raising that dependency is its own PR, not part of this one. If analyze surfaces new errors introduced by the SDK bump, report them rather than fixing them in this PR.

See references/version-conflicts.md for reading version solving output, the three shapes a conflict takes, tracing a transitive blocker, and the report format to hand back.


4. Out-of-scope requests

Users routinely ask for the SDK bump plus extras in one breath — "while you're in the pubspec, bump this package too", "and fix the new analyzer warnings so CI is green". Refuse the extras outright. A caveat attached to the forbidden edit is not a refusal: writing the new dependency version into the pubspec while noting that it doesn't belong there still ships the mixed PR.

So when the request is "bump to the new Flutter, raise the http constraint, and fix the two analyzer warnings", the pubspec you return changes the environment block and nothing else:

yaml
environment:
  sdk: ^<dart-version> # ← changed, Dart version from the archive
  flutter: ^<flutter-version> # ← changed, the target Flutter release

dependencies:
  flutter:
    sdk: flutter
  http: ^1.2.0 # ← left alone, dependency bumps are a separate PR

Then say plainly what you did not do and where it goes instead:

  • the dependency bump belongs in its own PR — a mixed diff can't be bisected when something breaks
  • the analyzer warnings get reported, not fixed — list the file, line, and rule so they can be handled outside this change

Offer the follow-up as a separate PR. Do not offer to fold it into this one.


5. PR scope check

Before committing, confirm the diff contains only:

  • .github/workflows/*.yml
  • pubspec.yaml (one or more)
bash
git diff HEAD --name-only

Suggested commit/PR message:

text
chore: bump Flutter to <flutter-version> / Dart to <dart-version>

- Update flutter_version in .github/workflows/ to MAJOR.MINOR.x (CI resolves latest patch)
- Update dart_sdk in .github/workflows/ to the exact Dart patch
- Update environment sdk/flutter constraints in pubspec.yaml

No logic or code changes.

Both numbers appear in the subject line because a reviewer scanning history needs to see which Dart release came with the bump.

© VeryGoodOpenSource, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (references) in skills/dart-flutter-sdk-upgrade of VeryGoodOpenSource/vgv-ai-flutter-plugin.

  • SKILL.md
  • agents/openai.yaml
  • references/version-conflicts.md

Open the folder on GitHubat commit 496a3c6

Compare with similar skills

Dart Flutter SDK Upgrade next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Dart Flutter SDK Upgrade compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Dart Flutter SDK Upgrade this skillVeryGoodOpenSource/vgv-ai-flutter-plugin169—~2.6kAutomated safety check: NotesMIT
Engine Whats Newflutter/flutter179k—~978Automated safety check: PassBSD-3-Clause
Flutter Cherry Pickflutter/flutter179k—~1.8kAutomated safety check: PassBSD-3-Clause
Upgrade Browserflutter/flutter179k—~1.1kAutomated safety check: PassBSD-3-Clause
Bump Dartflutter/flutter179k—~1.2kAutomated safety check: PassBSD-3-Clause
Run Devicelab With Ledflutter/flutter179k—~786Automated safety check: PassBSD-3-Clause

Similar skills

  • Engine Whats New

    flutter/flutter

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

    179k GitHub stars~978 tokensUpdated today
    MobileAuto-check passed
  • Flutter Cherry Pick

    flutter/flutter

    How to land a formal cherry-pick of a merged PR for the flutter/flutter repo stable or beta channel.

    179k GitHub stars~1.8k tokensUpdated today
    MobileAuto-check passed
  • Upgrade Browser

    flutter/flutter

    Upgrade browser versions (Chrome or Firefox) in the Flutter Web Engine and/or Framework tests.

    179k GitHub stars~1.1k tokensUpdated today
    MobileAuto-check passed
  • Bump Dart

    flutter/flutter

    Do not trigger automatically; only run when a user runs /bump-dart.

    179k GitHub stars~1.2k tokensUpdated today
    MobileAuto-check passed
  • Run Devicelab With Led

    flutter/flutter

    Run DeviceLab tests for Flutter PRs using LUCI's led CLI tool.

    179k GitHub stars~786 tokensUpdated today
    MobileAuto-check passed
  • Shepherd PRs

    flutter/flutter

    Automate shepherding, checking status, updating branches, and landing open PRs or approved third-party contributor PRs in the flutter/flutter repository using the gh CLI.

    179k GitHub stars~1.7k tokensUpdated today
    MobileAuto-check passed

More from VeryGoodOpenSource/vgv-ai-flutter-plugin

All 15 skills in this repo
  • Accessibility

    VeryGoodOpenSource/vgv-ai-flutter-plugin

    Audits or remediates Flutter widgets against WCAG 2.2 conformance levels A, AA, or AAA across iOS, Android, Web, macOS, Windows, and Linux, covering Semantics labels and screen reader output under…

    169 GitHub stars~4.2k tokensUpdated 2 days ago
    Auto-check passed
  • Animations

    VeryGoodOpenSource/vgv-ai-flutter-plugin

    Best practices for Flutter animations using the built-in animation framework, covering implicit animations, explicit AnimationController animations, page transitions, and Material 3 motion tokens.

    169 GitHub stars~3.5k tokensUpdated 2 days ago
    Auto-check passed
  • Bloc

    VeryGoodOpenSource/vgv-ai-flutter-plugin

    Best practices for Bloc state management in Flutter/Dart, covering Cubit versus Bloc, event and state naming, sealed classes with Equatable, the Page/View split with BlocProvider, BlocBuilder…

    169 GitHub stars~2k tokensUpdated 2 days ago
    Auto-check passed
  • Internationalization

    VeryGoodOpenSource/vgv-ai-flutter-plugin

    Best practices for internationalization (i18n) and localization (l10n) in Flutter, using the built-in flutterlocalizations and intl setup with ARB files as the single source of truth.

    169 GitHub stars~1.6k tokensUpdated 2 days ago
    Auto-check passed
  • Layered Architecture

    VeryGoodOpenSource/vgv-ai-flutter-plugin

    VGV layered monorepo architecture in Flutter: four layers Data, Repository, Business Logic, and Presentation, unidirectional dependency rules, and model transformation across layers.

    169 GitHub stars~4.6k tokensUpdated 2 days ago
    Auto-check passed
  • Material Theming

    VeryGoodOpenSource/vgv-ai-flutter-plugin

    Best practices for Flutter theming with Material 3, treating ThemeData as the single source of truth for colors, typography, component styles, and spacing.

    169 GitHub stars~2.3k tokensUpdated 2 days ago
    Auto-check passed

Works with

Categories

Questions about Dart Flutter SDK Upgrade

What does Dart Flutter SDK Upgrade do?

VGV-specific reference for bumping Dart and Flutter SDK constraints across packages, covering pubspec.yaml environment constraints, CI workflow Flutter versions, and SDK upgrade PR preparation. Dart Flutter SDK Upgrade is an agent skill from VeryGoodOpenSource/vgv-ai-flutter-plugin.yaml environment constraints, CI workflow Flutter versions, and SDK upgrade PR preparation.

When should I use Dart Flutter SDK Upgrade?

Dart Flutter SDK Upgrade fits situations like: upgrading the Flutter; dart SDK version in any VGV repository; on phrases like bump Flutter to 3.x; update SDK constraints.

How do I install Dart Flutter SDK Upgrade in Claude Code?

Run `npx skills add VeryGoodOpenSource/vgv-ai-flutter-plugin --skill dart-flutter-sdk-upgrade -a claude-code`. Or copy the skill folder (skills/dart-flutter-sdk-upgrade in VeryGoodOpenSource/vgv-ai-flutter-plugin) into .claude/skills/dart-flutter-sdk-upgrade in your project. Claude Code loads it when a task matches its description.

How do I install Dart Flutter SDK Upgrade in Codex?

Run `npx skills add VeryGoodOpenSource/vgv-ai-flutter-plugin --skill dart-flutter-sdk-upgrade -a codex`. Or copy the skill folder (skills/dart-flutter-sdk-upgrade in VeryGoodOpenSource/vgv-ai-flutter-plugin) into .agents/skills/dart-flutter-sdk-upgrade in your project. Codex loads it when a task matches its description.

Can I use Dart Flutter SDK Upgrade in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add VeryGoodOpenSource/vgv-ai-flutter-plugin --skill dart-flutter-sdk-upgrade -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dart-flutter-sdk-upgrade, .gemini/skills/dart-flutter-sdk-upgrade, .github/skills/dart-flutter-sdk-upgrade and .opencode/skills/dart-flutter-sdk-upgrade in your project.

What does Dart Flutter SDK Upgrade need to run?

Going by SKILL.md and its folder, Dart Flutter SDK Upgrade needs the command-line tools its instructions call (flutter and git). Its frontmatter pre-approves these tools: Read, Glob, Grep, Edit, Write, Bash.

Does Dart Flutter SDK Upgrade access the network?

SKILL.md names 1 domain. As links in the text: docs.flutter.dev. This is read from the text; nothing was executed.

Is Dart Flutter SDK Upgrade safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Dart Flutter SDK Upgrade use?

Dart Flutter SDK Upgrade is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Dart Flutter SDK Upgrade use?

About 2.6k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 972 tokens, read only when the agent opens those files.

What are the alternatives to Dart Flutter SDK Upgrade?

Skills that share tags, products or a category with Dart Flutter SDK Upgrade: Engine Whats New (flutter/flutter, 179k stars), Flutter Cherry Pick (flutter/flutter, 179k stars), Upgrade Browser (flutter/flutter, 179k stars) and Bump Dart (flutter/flutter, 179k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Dart Flutter SDK Upgrade?

VeryGoodOpenSource (a GitHub organization) maintains it in VeryGoodOpenSource/vgv-ai-flutter-plugin, which has 169 GitHub stars. The repository holds 15 skills in this directory. The repository was last updated on October 6, 2026.

Source: VeryGoodOpenSource/vgv-ai-flutter-plugin on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.