vgv-create-project
Create Project
Scaffold a new Dart or Flutter project using Very Good CLI templates.
Core Standards
- Use the Very Good CLI MCP server to scaffold projects and install dependencies
- Infer the template from context — determine the right template based on what the user wants to build, not by asking them to pick a subcommand name
- Use
AskUserQuestiononly for information you cannot infer — project name and organization are the most common missing pieces - Install dependencies after creation
Workflow
Step 1: Understand What the User Wants to Build
Infer the subcommand from the user's description — the available subcommands and their descriptions are defined by the Very Good CLI MCP server. Do NOT ask users to pick a subcommand name — figure it out from context.
If the intent is ambiguous, use AskUserQuestion to clarify with a high-level question about what they're building — not which subcommand they want.
Step 2: Gather Missing Parameters
Use AskUserQuestion to collect only what you cannot infer. Batch questions into a single call when possible. Do NOT ask for optional parameters (description, output directory, application ID, etc.) unless the user brings them up.
Step 3: Create and Set Up
- Create the project using the Very Good CLI MCP server
- Install dependencies using the Very Good CLI MCP server
Key Domain Knowledge
- Use
dart_package(notflutter_package) for data layer and repository layer packages in the layered-architecture pattern — these must not depend on Flutter SDK - If a user provides a project name with dashes, convert to underscores — Dart package names only allow lowercase letters, numbers, and underscores
- Templates that produce apps, plugins, or games require an organization name — do not skip this or it defaults to a placeholder value
Examples
User says "Create a new Flutter app"
- Infer:
flutter_app - Ask for project name and organization
- Create and install dependencies
User says "I need a package for my weather API client, put it in packages/"
- Infer: "API client" → pure Dart →
dart_package, nameweather_api_client, outputpackages/ - Everything is clear — no questions needed
- Create and install dependencies
User says "I want to build something for iOS and Android with bluetooth"
- Ambiguous: app or plugin? Ask to clarify
- Gather remaining parameters based on answer
- Create and install dependencies
User says "Create a new package"
- Ambiguous: Flutter or pure Dart? Ask to clarify
- Ask for project name
- Create and install dependencies
Troubleshooting
Invalid project name error
- Names must be valid Dart package names: lowercase letters, numbers, underscores only
- Dashes are not allowed — convert
my-apptomy_app
Dependencies fail to install after creation
- Verify the Dart SDK is installed and on PATH
- Try running from the project root directory
Anti-Patterns
| Anti-Pattern | Problem | Correct Approach |
|---|---|---|
| Asking user to pick a template name | Users think in terms of what they're building, not CLI subcommands | Infer the template from context |
| Over-asking for optional parameters | Slows down the workflow | Only ask for what you cannot infer |
Using flutter_package for a data layer |
Adds unnecessary Flutter SDK dependency | Use dart_package for data and repository layer packages |
| Skipping organization name for apps/plugins | Defaults to a placeholder value | Ask when the template requires it |
More from verygoodopensource/very_good_ai_flutter_plugin
vgv-layered-architecture
Best practices for VGV layered monorepo architecture in Flutter. Use when structuring a multi-package Flutter app, creating data or repository packages, defining layer boundaries, or wiring dependencies between packages.
4vgv-accessibility
Flutter accessibility auditing and remediation with WCAG 2.1 level selection (A, AA, AAA) across mobile, desktop, and web platforms. Use when building, auditing, or reviewing widgets for screen reader support, touch targets, focus management, color contrast, text scaling, or motion sensitivity. Begins by asking the WCAG conformance level and target platform(s) before applying level-appropriate, platform-aware criteria.
4vgv-material-theming
Best practices for Flutter theming using Material 3. Use when creating, modifying, or reviewing ThemeData, ColorScheme, TextTheme, component themes, spacing systems, or light/dark mode support.
4vgv-license-compliance
>
4vgv-internationalization
Best practices for internationalization (i18n) and localization (l10n) in Flutter. Use when adding, modifying, or reviewing ARB translations, locale setup, BuildContext l10n extensions, or RTL/directional layout support.
4