Agent skill

Very Good Analysis Upgrade

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

Upgrade the verygoodanalysis 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.

MITAuto-check: notesMobile

Install Very Good Analysis Upgrade

skills CLI
$ npx skills add VeryGoodOpenSource/vgv-ai-flutter-plugin --skill very-good-analysis-upgrade -a claude-code

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

GitHub CLI
$ gh skill install VeryGoodOpenSource/vgv-ai-flutter-plugin very-good-analysis-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/very-good-analysis-upgrade .claude/skills/very-good-analysis-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
very-good-analysis-upgrade
GitHub stars
170
Token cost
~2.6k tokens
SKILL.md length
1,287 words
Files
3 (incl. references)
Skills in repo
15
Repo updated
First seen
Licence
MIT

At a glance

Upgrade the verygoodanalysis 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.

  • Works in 4 steps: Bump the version in pubspec.yaml → Run flutter analyze → Fix the lint warnings → …
  • Phrases like bump verygoodanalysis to 10.0.0
  • SKILL.md covers Core Standards, Before You Start, Step 1 — Bump the version in… and Step 2 — Run flutter analyze, plus 4 more sections
  • Calls flutter, dart and curl; reaches pub.dev

What it does

Very Good Analysis Upgrade is an agent skill from VeryGoodOpenSource/vgv-ai-flutter-plugin. Upgrade the verygoodanalysis 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 verygoodanalysis to 10.0.0", "upgrade verygoodanalysis", "update our lint package", "we're due for a lint upgrade", "take verygoodanalysis to the latest", or a dart pub get conflict reported after a verygoodanalysis bump. Use it even when the user only describes the package instead of pointing at it, because…

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/lint-fixes.md`).

It sits in Mobile, covering Cross-platform mobile apps and Linting and formatting. 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

  • Phrases like bump verygoodanalysis to 10.0.0
  • Upgrade verygoodanalysis
  • Update our lint package
  • Were due for a lint upgrade

Example prompts

  • “bump verygoodanalysis to 10.0.0”
  • “upgrade verygoodanalysis”
  • “update our lint package”
  • “/very-good-analysis-upgrade”

Requirements

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

Workflow steps

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

  1. Bump the version in pubspec.yaml
  2. Run flutter analyze
  3. Fix the lint warnings
  4. Create the PR

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
    • Bash

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • flutter
    • dart
    • curl
    • jq
    • git

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

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • pub.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

Very Good Analysis Upgrade loads about 2.6k tokens when it runs, and up to ~3.8k if it reads all its reference files. Until then it costs about 232 tokens; SKILL.md has 1,287 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~232
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.8k

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, 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,287 words, ~2,608 tokens.

Download SKILL.mdSave it as .claude/skills/very-good-analysis-upgrade/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
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.
allowed-tools
Read, Glob, Grep, Bash
argument-hint
[version]
effort
medium

Upgrade very_good_analysis

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.


Core Standards

These standards apply to every very_good_analysis upgrade.

  • Keep the caret — write very_good_analysis: ^x.y.z. A caret is the VGV convention: 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
  • Keep the PR focused — include only the version bump and required lint fixes. Decline 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
  • Fix only new warnings — do not address pre-existing issues in the same PR
  • Never force resolution — if pub get fails after the bump, do not upgrade, loosen or remove another dependency to make it resolve, even when told to. Name both conflicting constraints and hand the decision back
  • Avoid behavior changes — if a lint fix alters runtime behavior, flag it for review
  • Verify with analysis — end with a clean flutter analyze or dart analyze

Before You Start

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:

    bash
    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:

    • pub get runs inside each package. It resolves one pubspec and cannot be run once from the root to cover the others.
    • analyze runs once from the repository root, which surfaces every package's new 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.


Step 1 — Bump the version in pubspec.yaml

Locate the pubspec.yaml file(s) for the project. Update the very_good_analysis entry under dev_dependencies:

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

yaml
# ✅ 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:

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


Step 2 — Run flutter analyze

bash
flutter analyze

Or for a pure Dart package:

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


Step 3 — Fix the lint warnings

Work through the warnings one by one. Keep fixes minimal and lint-compliance-only:

  • Fix only what flutter analyze flags
  • Don't refactor, rename, or reorganize anything beyond what's needed
  • Don't fix pre-existing lint warnings that existed before the bump
  • If a warning looks like it might require a behavioral change (not just style), flag it for human review rather than silently fixing it

Re-run flutter analyze. Expected: No issues found!, or only pre-existing issues you did not touch. If warnings persist, list them and ask the user how to proceed.


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

Step 4 — Create the PR

Stage only the changed files:

bash
git add pubspec.yaml pubspec.lock   # always include these
# plus any .dart files you edited for lint fixes

Commit with a clear message following the project's conventions. A good default:

text
chore: upgrade very_good_analysis to x.y.z

Bump very_good_analysis from <old> to <new> and resolve
lint warnings introduced by newly enabled rules.

Then push and open a PR. The PR should contain nothing else — no feature work, no unrelated refactors, no extra cleanup. Reviewers should be able to see at a glance that this is purely a lint compliance update.

If the project uses a PR template, fill it in. Mention specifically which rules were newly enabled if any warnings required code changes.


Tips and edge cases

Monorepos: Each package that depends on very_good_analysis needs its own pubspec.yaml bump. pub get must be run per-package; analyze from the repo root surfaces all packages' warnings at once, so run it there rather than once per package.

Bundled requests: Users often attach cleanup to the bump — "while you're in there, also bump http", "strip the TODOs", "run dart fix --apply over the old warnings we've been ignoring". Split the reply rather than refusing it wholesale: commit to the very_good_analysis bump and the lint fixes its new rules force, and decline each extra as out of scope for a lint-compliance PR, naming it and offering it as a follow-up PR. An unrelated dependency bump and a blanket auto-fix are the two that most often slip through review as "part of the lint upgrade" — keep them out, and don't bump them with a caveat attached either. Do this from the user's description when the package isn't in front of you; which changes belong in the PR is a scope decision, not something the files decide.

analysis_options.yaml: very_good_analysis ships its own analysis_options.yaml that is included by the project's own options file. You generally don't need to touch the project's analysis_options.yaml — the bump in pubspec.yaml is sufficient to pull in the new rules.

Breaking rule changes: Occasionally a new version disables a rule that was previously enabled, or changes its severity. That might cause previously-flagged issues to disappear, which is fine — don't re-introduce them.

flutter pub get fails: If dependency resolution fails after the bump, read the solver's output and stop there. Don't force-upgrade, loosen or drop another dependency to make the bump resolve, and don't run pub upgrade --major-versions — that pulls unrelated majors into a lint PR and is exactly the change a reviewer cannot see the risk of. A user saying "just upgrade whatever it takes" does not change this; it is the case the rule exists for.

Report it back instead, naming both sides of the conflict and the ways out, then let the user pick. For a solver failure like build_runner depends on analyzer ^6.4.1 against very_good_analysis 10.0.0 depends on analyzer ^7.0.0, that reads:

build_runner ^2.4.0 pins analyzer ^6.4.1 and very_good_analysis 10.0.0 requires analyzer ^7.0.0. Both cannot hold at once, so this bump can't land on its own. Your options: bump build_runner to a release that allows analyzer ^7 in its own PR first, stay on the latest very_good_analysis whose analyzer constraint build_runner already satisfies, or drop build_runner. Which do you want?

Naming only "there is a conflict" is not enough — name the two constraints.


Additional Resources

See references/lint-fixes.md for a quick-reference table of common lint rules introduced by very_good_analysis upgrades, their typical fixes, and which ones carry behavior risk (prefer_const_constructors, use_super_parameters, unnecessary_late, avoid_dynamic_calls, require_trailing_commas, unnecessary_null_checks) — plus the Dart 3.13 constructor rules that very_good_analysis 11.0.0 adds (unnecessary_type_name_in_constructor, use_declaring_parameters, unnecessary_primary_constructor_body, empty_container_bodies).

© 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/very-good-analysis-upgrade of VeryGoodOpenSource/vgv-ai-flutter-plugin.

  • SKILL.md
  • agents/openai.yaml
  • references/lint-fixes.md

Open the folder on GitHubat commit 496a3c6

Compare with similar skills

Very Good Analysis 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.

Very Good Analysis Upgrade compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Very Good Analysis Upgrade this skillVeryGoodOpenSource/vgv-ai-flutter-plugin170—~2.6kAutomated safety check: NotesMIT
Frb Lintfzyzcjy/flutter_rust_bridge5.4k—~152Automated safety check: PassMIT
Bump VersionVeryGoodOpenSource/very_good_analysis477—~2.6kAutomated safety check: PassMIT
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

Similar skills

  • Frb Lint

    fzyzcjy/flutter_rust_bridge

    A skill your agent uses when you need to run lint, format, or clippy checks in flutterrustbridge

    5.4k GitHub stars~152 tokensUpdated today
    MobileAuto-check passed
  • Bump Version

    VeryGoodOpenSource/very_good_analysis

    Bumps the verygoodanalysis package to a new version. An agent skill from VeryGoodOpenSource/very_good_analysis.

    477 GitHub stars~2.6k tokensUpdated today
    DevelopmentAuto-check passed
  • 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

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…

    170 GitHub stars~4.2k tokensUpdated 4 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.

    170 GitHub stars~3.5k tokensUpdated 4 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…

    170 GitHub stars~2k tokensUpdated 4 days ago
    Auto-check passed
  • Dart Flutter SDK Upgrade

    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.

    170 GitHub stars~2.6k tokensUpdated 4 days ago
    Auto-check: notes
  • 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.

    170 GitHub stars~1.6k tokensUpdated 4 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.

    170 GitHub stars~4.6k tokensUpdated 4 days ago
    Auto-check passed

Works with

Categories

Questions about Very Good Analysis Upgrade

What does Very Good Analysis Upgrade do?

Upgrade the verygoodanalysis 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. Very Good Analysis Upgrade is an agent skill from VeryGoodOpenSource/vgv-ai-flutter-plugin.yaml version bump, the lint fixes the new rules force, and the PR.

When should I use Very Good Analysis Upgrade?

Very Good Analysis Upgrade fits situations like: phrases like bump verygoodanalysis to 10.0.0; upgrade verygoodanalysis; update our lint package; were due for a lint upgrade.

How do I install Very Good Analysis Upgrade in Claude Code?

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

How do I install Very Good Analysis Upgrade in Codex?

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

Can I use Very Good Analysis 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 very-good-analysis-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/very-good-analysis-upgrade, .gemini/skills/very-good-analysis-upgrade, .github/skills/very-good-analysis-upgrade and .opencode/skills/very-good-analysis-upgrade in your project.

What does Very Good Analysis Upgrade need to run?

Going by SKILL.md and its folder, Very Good Analysis Upgrade needs the command-line tools its instructions call (flutter, dart, curl, jq and git). Its frontmatter pre-approves these tools: Read, Glob, Grep, Bash.

Does Very Good Analysis Upgrade access the network?

SKILL.md names 1 domain. In commands or code: pub.dev; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Very Good Analysis 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 Very Good Analysis Upgrade use?

Very Good Analysis 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 Very Good Analysis 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 1.2k tokens, read only when the agent opens those files.

What are the alternatives to Very Good Analysis Upgrade?

Skills that share tags, products or a category with Very Good Analysis Upgrade: Frb Lint (fzyzcjy/flutter_rust_bridge, 5.4k stars), Bump Version (VeryGoodOpenSource/very_good_analysis, 477 stars), Engine Whats New (flutter/flutter, 179k stars) and Flutter Cherry Pick (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 Very Good Analysis Upgrade?

VeryGoodOpenSource (a GitHub organization) maintains it in VeryGoodOpenSource/vgv-ai-flutter-plugin, which has 170 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.