Guides upgrading Dart and Flutter SDK versions in VGV repositories: resolves bundled Dart versions, updates pubspec.yaml with exact patches (^MAJOR.MINOR.PATCH), sets CI workflows to ^MAJOR.MINOR.x.
npx claudepluginhub verygoodopensource/very_good_claude_code_marketplace --plugin vgv-ai-flutter-pluginThis skill is limited to using the following tools:
One PR per project. Only CI workflow and `pubspec.yaml` changes — no logic, no dependency
Upgrades very_good_analysis lint package in Dart/Flutter projects: bumps pubspec.yaml version, fixes new lint warnings from flutter/dart analyze, creates focused PR.
Provides knowledge patch for Flutter 3.29–3.41 and Dart 3.7–3.11 changes: dot shorthands, squircles, null-aware elements, predictive back, platform assets. Use before recent Flutter/Dart projects.
Guides framework and language migrations: version upgrades, breaking changes, dependency audits, codemods, rollbacks for React 19, Vue 3, Next.js, Laravel 11, Python 3.12, Node 22.
Share bugs, ideas, or general feedback.
One PR per project. Only CI workflow and pubspec.yaml changes — no logic, no dependency
version bumps, no test changes.
Apply these standards to ALL SDK upgrade work:
^MAJOR.MINOR.x — wildcard patch so CI always gets the latest patch^MAJOR.MINOR.PATCH with the specific patch versionpub get and analyze — don't silently resolve conflictsFlutter bundles a specific Dart release — their version numbers do not match. For example, Flutter 3.41.0 ships with Dart 3.11.0. You must look up the correct Dart version for the target Flutter release before editing any files.
How to find the Dart version:
If the user has not specified a Flutter version, look up the latest Flutter stable release from that same page. For pure Dart packages (no Flutter dependency), the Dart version is whatever the user specifies or the latest stable — no Flutter mapping needed.
Confirm both resolved versions with the user before editing files.
.github/workflows/VGV packages use VeryGoodOpenSource/very_good_workflows reusable workflows. Leave the
@v1 tag untouched. Use ^MAJOR.MINOR.x — caret with literal x as the patch wildcard
so CI always resolves to the latest release patch automatically. When bumping versions,
update MAJOR and/or MINOR as appropriate (e.g., ^3.41.x → ^3.42.x or ^4.0.x):
Flutter package:
uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1
with:
flutter_version: "^3.41.x" # ← caret + 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:
uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/dart_package.yml@v1
with:
dart_sdk: "^3.11.x" # ← 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.
pubspec.yaml environment constraintsFormat 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):
environment:
sdk: ^3.11.0 # ← Dart version bundled with the target Flutter release
flutter: ^3.41.0 # ← Flutter version
Pure Dart package (no Flutter SDK dependency):
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.
Run from each package directory. Use Dart/Flutter MCP tools if available; otherwise 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. If analyze surfaces new errors introduced by the SDK bump, report
them rather than fixing them in this PR.
Before committing, confirm the diff contains only:
.github/workflows/*.ymlpubspec.yaml (one or more)git diff HEAD --name-only
Suggested commit/PR message:
chore: bump Flutter to 3.41.0 / Dart to 3.11.0
- Update flutter_version in .github/workflows/ to ^3.41.x (CI resolves latest patch)
- Update environment sdk/flutter constraints in pubspec.yaml
No logic or code changes.