create-project について
create-projectは、Very Good CLIのテンプレートからDartまたはFlutterプロジェクトを作成する開発者向けスキルです。要望からテンプレートを判断し、不足情報を確認したうえでVery Good CLI MCPサーバー経由で作成し、依存関係をインストールします。
主な機能
- 01要望に基づくプロジェクトテンプレートの推定
- 02不足しているプロジェクト情報の確認
- 03Very Good CLI MCPサーバー経由のプロジェクト作成
- 04作成後の依存関係インストール
- 05Dartパッケージ名と組織名要件への対応
活用シーン
- 01テンプレートからDartパッケージやFlutterアプリを作成
- 02レイヤードアーキテクチャのデータ層・リポジトリ層パッケージを作成
- 03プロジェクト作成後に依存関係をインストール
MCP 対応
このスキルはVery Good CLI MCPサーバーを使ってプロジェクト作成と依存関係のインストールを行います。サーバーを利用できない場合は、対応するvery_goodコマンドを実行できます。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ verygoodopensource/ vgv-ai-flutter-plugin --skill create-projectインストール後、Claude Code で/create-projectを入力して読み込まれたか確認します。
同梱ファイルagents/openai.yaml
詳細
プロジェクトを作成する
Very Good CLI テンプレートを使用して、新しい Dart または Flutter プロジェクトをスキャフォールドします。
異なるハーネスでの代替手段。 このスキルは Very Good CLI MCP サーバーを操作し、ユーザーに構造化された質問をします。このプラグインの Bash フックがなく、MCP サーバーにも接続されていないホストでは、同等の
very_good create …コマンドとvery_good packages getコマンドを直接実行してください。AskUserQuestionがないホストでは、ホストが提供する同等のユーザー質問ツールを呼び出してください。そのようなツールがなければ、同じ質問を番号付きのプレーンテキストで尋ねてください。
基本的な基準
- プロジェクトのスキャフォールドと依存関係のインストールには、Very Good CLI MCP サーバーを使用します
- コンテキストからテンプレートを推測します — ユーザーが作りたいものに基づいて適切なテンプレートを判断し、サブコマンド名を選ぶよう求めないでください
- 推測できない情報にのみ
AskUserQuestionを使用します — プロジェクト名と組織名が不足していることがよくあります - 作成後に依存関係をインストールします
ワークフロー
ステップ 1:ユーザーが作りたいものを把握する
ユーザーの説明からサブコマンドを推測します — 使用可能なサブコマンドとその説明は、Very Good CLI MCP サーバーで定義されています。
意図が曖昧な場合は、どのサブコマンドを使いたいかではなく、何を作ろうとしているのかについて大まかな質問をして、AskUserQuestion で明確にします。
ステップ 2:不足しているパラメーターを確認する
推測できない情報について、1 回の呼び出しで AskUserQuestion を使用します。省略可能なパラメーター(説明、出力ディレクトリ、アプリケーション ID)は、ユーザーから指定がない限りデフォルトのままにします。
ステップ 3:作成してセットアップする
- Very Good CLI MCP サーバーを使用してプロジェクトを作成します
- Very Good CLI MCP サーバーを使用して依存関係をインストールします —
packages_getにdirectory: '<path-to-created-project>'を渡し、ワークスペースのルートではなく新しいプロジェクトに対して実行されるようにします
重要なドメイン知識
- レイヤードアーキテクチャパターンのデータレイヤーとリポジトリレイヤーのパッケージには、
flutter_packageではなくdart_packageを使用します — これらは Flutter SDK に依存してはいけません - ユーザーがハイフン付きのプロジェクト名を指定した場合は、アンダースコアに変換します — Dart のパッケージ名で使用できるのは小文字、数字、アンダースコアのみです
- アプリ、プラグイン、ゲームを生成するテンプレートには組織名が必要です — 省略するとプレースホルダー値が設定されるため、省略しないでください
- 作成後に
packages_getが失敗した場合は、directoryが新しいプロジェクトを指していること、および Dart SDK がPATH上にあることを確認します
アンチパターン
| アンチパターン | 問題 | 正しい方法 |
|---|---|---|
| ユーザーにテンプレート名を選ばせる | ユーザーは CLI のサブコマンドではなく、作りたいものを考えているため | コンテキストからテンプレートを推測する |
| 省略可能なパラメーターを過剰に尋ねる | ワークフローが遅くなる | 推測できない情報のみ尋ねる |
データレイヤーに flutter_package を使う | 不要な Flutter SDK 依存関係が追加される | データレイヤーとリポジトリレイヤーのパッケージには dart_package を使用する |
| アプリ/プラグインの組織名を省略する | プレースホルダー値がデフォルトで設定される | テンプレートで必要な場合は尋ねる |