Skip to content

VeryGoodOpenSource/vgv-ai-flutter-plugin

VGV AI Flutter Plugin

Very Good Ventures Very Good Ventures

A Claude Code plugin that accelerates Flutter & Dart development with best-practices skills from Very Good Ventures.

Developed with πŸ’™ by Very Good Ventures πŸ¦„

Overview

VGV AI Flutter Plugin is a collection of contextual best-practices skills that Claude uses when helping you write Flutter and Dart code. Each skill provides opinionated, production-quality guidance covering architecture patterns, naming conventions, folder structures, code examples, testing strategies, and anti-patterns to avoid, so you get code that follows VGV standards out of the box.

Installation

One-line install from your terminal:

claude plugin marketplace add VeryGoodOpenSource/very-good-claude-code-marketplace && claude plugin install vgv-ai-flutter-plugin

Or inside an active Claude Code session, run these as two separate commands (the second only after the first completes):

  1. Add the marketplace:

    /plugin marketplace add VeryGoodOpenSource/very-good-claude-code-marketplace
    
  2. Install the plugin:

    /plugin install vgv-ai-flutter-plugin
    

For more details, see the Very Good Claude Marketplace.

Skills

Skill Description
Create Project Scaffold new Dart/Flutter projects from Very Good CLI templates β€” flutter_app, dart_package, flutter_plugin, dart_cli, flame_game, and more
Animations Flutter built-in animations β€” implicit vs explicit decision tree, Material 3 motion tokens (Durations, Easing), page transitions with GoRouter, Hero animations, staggered animations, and performance guidelines
Accessibility WCAG 2.2 compliance with A/AA/AAA conformance level selection across iOS, Android, Web, macOS, Windows, and Linux β€” semantics, screen reader support, touch targets, focus management, color contrast, text scaling, and motion sensitivity
Testing Unit, widget, and golden testing β€” mocktail mocking, pumpApp helpers, test structure & naming, coverage patterns, and dart_test.yaml configuration
Navigation GoRouter routing β€” @TypedGoRoute type-safe routes, deep linking, redirects, shell routes, and widget testing with MockGoRouter
Internationalization i18n/l10n β€” ARB files, context.l10n patterns, pluralization, RTL/LTR support with directional widgets, and backend localization strategies
Material Theming Material 3 theming β€” ColorScheme, TextTheme, component themes, spacing systems, and light/dark mode support
Bloc State management with Bloc/Cubit β€” sealed events & states, BlocProvider/BlocBuilder widgets, event transformers, and testing with blocTest() & mocktail
Layered Architecture VGV layered architecture β€” four-layer package structure (Data, Repository, Business Logic, Presentation), dependency rules, data flow, and bootstrap wiring
Security Flutter-specific static security review β€” secrets management, flutter_secure_storage, certificate pinning, Random.secure(), formz validation, dependency vulnerability scanning with osv-scanner, and OWASP Mobile Top 10 guidance
UI Package Flutter UI package creation β€” custom widget libraries with ThemeExtension-based theming, design tokens, barrel file exports, widget tests, Widgetbook catalog, and consistent API conventions
License Compliance Dependency license auditing β€” categorizes licenses (permissive, weak/strong copyleft, unknown), flags non-compliant or missing licenses, and produces a structured compliance report using Very Good CLI
Dart/Flutter SDK Upgrade Bump Dart and Flutter SDK constraints across packages β€” CI workflow versions, pubspec.yaml environment constraints, and PR preparation for SDK upgrades
Very Good Analysis Upgrade Upgrade the very_good_analysis lint package across Dart/Flutter projects β€” version bump in pubspec.yaml, minimal lint fixes for new rules, and PR preparation

Hooks

This plugin includes SessionStart, PreToolUse, and PostToolUse hooks that validate the Very Good CLI, guard against CLI bypass, and automatically run Dart analysis and formatting on .dart files.

Hook Trigger Behavior
Warn Missing MCP (warn-missing-mcp.sh) SessionStart Warns if the Very Good CLI is missing or older than 1.2.0; non-blocking
Check VGV CLI (check-vgv-cli.sh) PreToolUse (mcp__very-good-cli__.*) Validates the Very Good CLI is installed and β‰₯ 1.2.0; exits 2 on failure (blocking)
Block CLI Workarounds (block-cli-workarounds.sh) PreToolUse (Bash) Blocks direct CLI bypass of Very Good CLI commands through the Bash tool; exits 2 on failure (blocking)
Analyze (analyze.sh) PostToolUse (Edit/Write) Runs dart analyze on the modified .dart file; exits 2 on failure (blocking β€” Claude must fix issues before continuing)
Format (format.sh) PostToolUse (Edit/Write) Runs dart format on the modified .dart file; always exits 0 (non-blocking β€” formatting is applied silently)

Prerequisites

  • Dart SDK β€” must be available on your PATH
  • jq β€” used to parse the hook payload; hooks are skipped gracefully if jq is not installed

Usage

Skills activate automatically when Claude detects relevant context in your conversation. Simply ask Claude to help with a Flutter or Dart task, and the appropriate skill's guidance will be applied.

For example:

You: Create a new Bloc for user authentication with login and logout events.

Claude: (applies the Bloc skill β€” uses sealed classes for events and states, follows the Page/View separation pattern, generates blocTest() tests with mocktail mocks, and follows VGV naming conventions)

You can also invoke skills directly as slash commands:

/create-project
/animations
/accessibility
/bloc
/internationalization
/layered-architecture
/material-theming
/navigation
/static-security
/testing
/ui-package
/license-compliance
/dart-flutter-sdk-upgrade
/very-good-analysis-upgrade

What Each Skill Provides

Every skill includes:

  • Core Standards β€” recommended conventions (e.g., mocktail over mockito, sealed classes for Bloc events)
  • Architecture patterns β€” folder structures and layered architecture guidance
  • Code examples β€” ready-to-adapt snippets following best practices
  • Testing strategies β€” unit, widget, and integration testing patterns
  • Common workflows β€” step-by-step guides for tasks like "adding a new feature" or "adding a new route"
  • Anti-patterns β€” what to avoid and why

MCP Integration

This plugin includes a .mcp.json configuration that connects Claude Code to two MCP servers β€” the Dart and Flutter MCP server (dart mcp-server) and the Very Good CLI MCP server (very_good mcp). This gives Claude the ability to execute Dart, Flutter, and Very Good CLI actions directly, complementing the skills which provide architectural guidance and best practices.

Dart and Flutter MCP server (dart)

The Dart and Flutter MCP server ships with the Dart SDK and exposes core Dart/Flutter development actions to Claude.

Available MCP tools:

Tool What it does
Error analysis & fixing Analyze the project for static errors and apply fixes
Symbol resolution Resolve symbols to elements and fetch documentation and signature information
App introspection Introspect and interact with a running Dart or Flutter application
Package search Search pub.dev for packages that fit a given use case
Dependency management Add, remove, and update dependencies in pubspec.yaml files
Test execution Run tests and analyze the results
Code formatting Format code using the same formatter and config as dart format

Prerequisites:

  • Dart SDK installed with dart on your PATH (the MCP server is provided by dart mcp-server)

Very Good CLI MCP server (very-good-cli)

The Very Good CLI MCP server exposes Very Good CLI commands to Claude.

Available MCP tools:

Tool What it does
create Scaffold projects from templates (flutter_app, dart_cli, dart_package, flutter_package, flutter_plugin, flame_game, docs_site)
test Run tests with coverage enforcement
packages_check_licenses Audit dependency licenses against an allowed list
packages_get Get dependencies for a single package or recursively across a monorepo

Prerequisites:

  • Very Good CLI v1.2.0+ installed: dart pub global activate very_good_cli
  • very_good must be on your PATH

How it works:

The .mcp.json file at the project root registers the dart and very-good-cli MCP servers using stdio transport. When Claude Code detects this configuration, it connects to both servers and gains access to the tools above. The skills continue to provide knowledge and best practices while the MCP tools handle execution.