accessibility
Audits or remediates Flutter widgets against WCAG 2.2 conformance levels A, AA, or AAA across iOS, Android, Web, macOS, Windows,…
Upgrade the very_good_analysis lint package to a new version in any Dart or Flutter package, handling the pubspec.yaml version bump, the lint fixes the new rules force, and the PR. Trigger on phrases like "bump very_good_analysis to 10.0.0", "upgrade very_good_analysis", "update
$ npx -y skills add VeryGoodOpenSource/vgv-ai-flutter-plugin --skill very-good-analysis-upgrade --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/very-good-analysis-upgradeContext preview
The summary Claude sees to decide when to auto-load this skill.
Upgrade the very_good_analysis lint package to a new version in any Dart or Flutter package, handling the pubspec.yaml version bump, the lint fixes the new rules force, and the PR. Trigger on phrases like "bump very_good_analysis to 10.0.0", "upgrade very_good_analysis", "update
name: very-good-analysis-upgrade description: > Upgrade the very_good_analysis lint package to a new version in any Dart or Flutter package, handling the pubspec.yaml version bump, the lint fixes the new rules force, and the PR. Trigger on phrases like "bump very_good_analysis to 10.0.0", "upgrade very_good_analysis", "update our lint package", "we're due for a lint upgrade", "take very_good_analysis to the latest", or a `dart pub get` conflict reported after a very_good_analysis bump. Use it even when the user only describes the package instead of pointing at it, because the decisions it governs are scope calls that do not need the files on disk: which constraint to write, which warnings to fix, and what stays out of the PR. The trigger is a very_good_analysis version change. A conflict surfaced by a Dart or Flutter SDK bump belongs to dart-flutter-sdk- upgrade instead, even when very_good_analysis is the package blocking resolution. argument-hint: "[version]" allowed-tools: Read Glob Grep Bash effort: medium
This skill guides the full upgrade of `very_good_analysis` in a Dart or Flutter project. The goal is a clean, focused PR: nothing more than the version bump in `pubspec.yaml` plus the minimal code changes needed to satisfy any new lint rules introduced in that version.
---
These standards apply to every `very_good_analysis` upgrade.
it lets a lint patch release land without a PR. When asked to pin exactly, print the caret entry with that reason beside it; write the bare pin only if the user repeats the request after reading why
unrelated dependency bumps, comment sweeps and blanket `dart fix --apply` runs that the same request bundles in, and say they belong in their own PR — then do the bump anyway
remove another dependency to make it resolve, even when told to. Name both conflicting constraints and hand the decision back
---
Confirm two things before proceeding:
1. **Target version** — use `$ARGUMENTS` as the target version when the user supplied one (e.g. `10.0.0`). If `$ARGUMENTS` is empty or still shows the literal text `$ARGUMENTS` (the host did not substitute it), fetch the latest from the pub.dev API and use that. Don't ask — just look it up and proceed:
curl -s https://pub.dev/api/packages/very_good_analysis | jq -r '.latest.version'
Tell the user which version you're upgrading to before making any changes.
2. **Project scope** — is this a single package or a monorepo? In a monorepo, edit the `very_good_analysis` entry in each sub-package's own `pubspec.yaml` — one edit per `pubspec.yaml`, no root-level or workspace-level entry standing in for the set. Then split the two commands by where they run:
from the root to cover the others.
warnings in a single pass. Don't analyze package by package.
Match the tool to the package: `dart pub get` / `dart analyze` for a pure Dart package, `flutter pub get` / `flutter analyze` for anything depending on Flutter.
---
Locate the `pubspec.yaml` file(s) for the project. Update the `very_good_analysis` entry under `dev_dependencies`:
dev_dependencies: very_good_analysis: ^x.y.z # replace x.y.z with the target version
Keep the caret (`^`) prefix — that's the VGV convention. Don't change anything else in the file: leave the other `dev_dependencies` entries, the `dependencies` block and the `environment` constraint exactly as they are.
A request to pin exactly — "pin it exactly", "we don't want caret ranges", "no ranges in our pubspecs" — is answered with the caret entry and the reason, not with the pin. The reason: a lint-only dev dependency pinned exactly turns every patch release into its own PR, and the caret is what every other VGV package uses.
# ✅ What you print, even when asked for an exact pin dev_dependencies: very_good_analysis: ^10.0.0 # caret is the VGV convention — patch lints land without a PR # ❌ Honoring "pin it exactly" on the first ask dev_dependencies: very_good_analysis: 10.0.0
The first ask is not insistence, it is the request this standard exists to answer. Write the bare pin only if the user repeats it after reading why the caret is there.
After editing, run:
flutter pub get
(For a pure Dart package without Flutter, use `dart pub get` instead.)
Use the Dart/Flutter MCP server if it is connected and exposes pub commands; otherwise run via Bash.
---
flutter analyze
Or for a pure Dart package:
dart analyze
Capture the full output. You're looking for new warnings or errors introduced by the version bump — lints that weren't flagged before. Ignore pre-existing issues unrelated to the bump (don't fix things that were already broken; that belongs in a separate PR).
---
Work through the warnings one by one. Keep fixes **minimal and lint-compliance-only**:
A Claude Code plugin that accelerates Flutter & Dart development with best-practices skills from Very Good Ventures. Developed with 💙 by Very Good Ventures 🦄
Audits or remediates Flutter widgets against WCAG 2.2 conformance levels A, AA, or AAA across iOS, Android, Web, macOS, Windows,…
Best practices for Flutter animations using the built-in animation framework, covering implicit animations, explicit…
Best practices for Bloc state management in Flutter/Dart, covering Cubit versus Bloc, event and state naming, sealed classes with…
Scaffold a new Dart or Flutter project from a Very Good CLI template, covering the flutter_app, dart_package, flutter_package,…
VGV-specific reference for bumping Dart and Flutter SDK constraints across packages, covering pubspec.yaml environment…
Drives a Dart or Flutter package fully green through a verify-fix-rerun loop across four gates: analyze, format, test, coverage.…