mcpField
C
create-project

create-project

github.com/verygoodopensourceDevelopment17555 installsUpdated today
Repository

About create-project

create-project is a skill for developers scaffolding Dart or Flutter projects from Very Good CLI templates. It infers an appropriate template from the requested project, gathers missing details, creates the project through the Very Good CLI MCP server, and installs dependencies.

Key features

  1. 01Infer a project template from the request
  2. 02Ask for missing project parameters
  3. 03Create projects through the Very Good CLI MCP server
  4. 04Install dependencies after creation
  5. 05Handle Dart package naming and organization requirements

Use cases

  1. 01Bootstrap a Dart package or Flutter app from a template
  2. 02Create data-layer or repository-layer packages for layered architecture
  3. 03Install dependencies after scaffolding a project

MCP support

The skill uses the Very Good CLI MCP server to create projects and install dependencies. If the server is unavailable, it can use the equivalent very_good commands.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/verygoodopensource/vgv-ai-flutter-plugin --skill create-project

After installing, type/create-projectin Claude Code to confirm it loaded.

Bundled filesagents/openai.yaml

Details

From the project README

Create Project

Scaffold a new Dart or Flutter project using Very Good CLI templates.

Cross-harness fallbacks. This skill drives the Very Good CLI MCP server and asks the user structured questions. On a host without this plugin's Bash hooks and without that MCP server connected, run the equivalent very_good create … and very_good packages get commands directly. On a host without AskUserQuestion, invoke whatever equivalent user-question tool the host provides; if it has none, ask the same questions as plain numbered text.


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 AskUserQuestion only 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.

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 for what you cannot infer, in one call. Leave optional parameters (description, output directory, application ID) at their defaults unless the user raises them.

Step 3: Create and Set Up
  1. Create the project using the Very Good CLI MCP server
  2. Install dependencies using the Very Good CLI MCP server — pass directory: '<path-to-created-project>' to packages_get so it runs against the new project, not the workspace root

Key Domain Knowledge

  • Use dart_package (not flutter_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
  • If packages_get fails after creation, check that directory points at the new project and that the Dart SDK is on PATH

Anti-Patterns

Anti-PatternProblemCorrect Approach
Asking user to pick a template nameUsers think in terms of what they're building, not CLI subcommandsInfer the template from context
Over-asking for optional parametersSlows down the workflowOnly ask for what you cannot infer
Using flutter_package for a data layerAdds unnecessary Flutter SDK dependencyUse dart_package for data and repository layer packages
Skipping organization name for apps/pluginsDefaults to a placeholder valueAsk when the template requires it

Comments

Markdown supported