Dart analysis server LSP for Claude Code plus Flutter/Dart workflow skills (fix-analyzer-errors loop, major package upgrades, Android Gradle/AGP/Kotlin build fixer, golden tests, Riverpod 3 and Bloc 9 state management) that complement, not duplicate, Google's official dart-flutter plugin.
Claude Code:
/plugin marketplace add brianshepardpss/plugin-creator /plugin install analyzer-loop@plugin-creator
/analyzer-loop:fix-analyzer sample
Claude copies samples/stale_app (current Riverpod 3 / go_router 18 lock, stale code) into your folder, runs flutter pub get, records the baseline, runs dart fix, fixes the rest file by file with LSP diagnostics after each edit, and checks tests. Expected result, from the bundled script:
Before -> after: 27 -> 0 issues (27 fixed) errors 17 -> 0 infos 10 -> 0 [OK guardrail] no new ignore comments; analysis_options.yaml unchanged
More demos: /analyzer-loop:android-build-doctor sample, /analyzer-loop:golden-tests sample, /analyzer-loop:pub-upgrade sample.
.lsp.json: runs dart language-server --protocol=lsp for .dart files(diagnostics after edits, go to definition, find references, hover). Uses onlyAnalyzeProjectsWithOpenFiles to keep memory down in monorepos.
dart fix, then targeted edits until dart analyze --fatal-infosis 0; before/after counts and a no-// ignore guardrail from analyze_report.py.
cross from the pub cache (changelog_slice.py), migrates, re-greens.
android_versions.py checks Gradle/AGP/Kotlin/JDK pairwise and against Flutter's own floors (re-read from your Flutter SDK), proposes a compatible set, edits only Android build files. iOS / CocoaPods notes included.
golden_diff.py measures the failing golden exactly likeflutter_test; separates OS rendering drift from real regressions; recipes for Linux-only goldens, Alchemist, or a tolerant comparator. Never runs --update-goldens unless you ask.
(plain or riverpod_generator 4) or bloc 9 code plus a test.
/analyzer-loop:doctor and a SessionStart check: warns when dart ismissing, older than your pubspec sdk: constraint, or not the SDK your .fvmrc pins.
Nothing is sent anywhere by this plugin. The scripts read local files and run local dart / flutter commands. flutter pub get and pub upgrade contact pub.dev as they always do. No telemetry.
MIT licensed, with its design brief and eval suite: github.com/brianshepardpss/analyzer-loop. Ideas or problems? Open an issue there, or ask the plugin's request skill to draft one for you.
Not affiliated with or endorsed by Google LLC. Dart and Flutter are trademarks of Google LLC. Not affiliated with or endorsed by Anthropic, the Riverpod or Bloc maintainers, or Gradle Inc.