mcpField
A
aspire-init

aspire-init

github.com/microsoft開発93751 回インストール2 週間前に更新
リポジトリ

aspire-init について

aspire-init は、リポジトリへの Aspire 導入や新規 Aspire プロジェクト作成を支援するエージェントスキルです。適切なテンプレートを選ぶか最小限の AppHost を追加し、既存リポジトリのリソース配線は aspireify に引き継ぎます。

主な機能

  1. 01既存 AppHost ファイルの確認
  2. 02aspire new と aspire init の選択
  3. 03テンプレートからのプロジェクト作成
  4. 04既存リポジトリへのスケルトン追加
  5. 05リソース配線を aspireify に引き継ぎ

活用シーン

  1. 01テンプレートから新しい Aspire プロジェクトを開始
  2. 02既存サービスと並べて AppHost スケルトンを追加
  3. 03既存ワークスペースの初期化可否を判断

MCP 対応

MCP サーバーの設定は個別に選択する必要があり、Aspire 13.6 以降の連続したエージェント設定では作成されないと説明しています。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/microsoft/aspire-skills --skill aspire-init

インストール後、Claude Code で/aspire-initを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

evals/
eval.yaml
references/
init-workflow.md
templates.md

詳細

Aspire Init

初回実行時のみ。 このスキルは、まだ Aspire AppHost が存在しないリポジトリにスケルトンを追加し、テンプレートを選択します。スケルトンを配置したら、実際のリソース接続設定を行うために aspireify に引き継ぎます。

前提条件

要件インストール
.NET 10.0 SDKhttps://dotnet.microsoft.com/download
Node.js ^20.19.0、^22.13.0、または >=24(TypeScript AppHost)https://nodejs.org
Aspire CLI(curl インストーラー)curl -sSL https://aspire.dev/install.sh | bash
Aspire CLI(npm)npm install -g @microsoft/aspire-cli
Aspire CLI(NativeAOT グローバルツール)dotnet tool install -g Aspire.Cli(.NET 10 が必要です)
不足している前提条件の診断aspire doctor

Aspire は Nix、Homebrew、WinGet、mise、curl/PowerShell インストーラーにも対応しています。 ユーザーの環境ですでに使用されているインストール方法を使ってください。

検出

Aspire AppHost がまだ存在しないワークスペースに Aspire を追加する場合のみ有効にします。aspire init を実行する前に、以下のすべてを確認してください。

シグナル検出方法意味
C# AppHost がないAspire.AppHost.Sdk を含む .csproj がないinit して問題ありません
ファイルベースの AppHost がない#:sdk Aspire.AppHost.Sdk を含む apphost.cs がないinit して問題ありません
TypeScript AppHost がないリポジトリに現行の apphost.mts または旧式の apphost.ts がないinit して問題ありません
Aspire の設定がないリポジトリのルートに aspire.config.json がないinit して問題ありません
ユーザーの意図「Aspire を追加」「Aspire をスキャフォールド」「aspire init」が明示されているinit して問題ありません

AppHost のシグナルがいずれかすでに存在する場合は、aspire init を実行しないでください。aspireify(接続設定のやり直し)または aspire-orchestration(ライフサイクル)に案内してください。

選択:aspire new と aspire init

状況コマンド理由
空のディレクトリまたは新規プロジェクトaspire new <template>完全なスターターソリューションを生成します
モデル化するサービスがある既存のリポジトリaspire init既存コードの隣に最小限のスケルトンと aspire.config.json を追加します
学習用のサンプルが必要な場合aspire new aspire-starterApiService、Web、ServiceDefaults が含まれます
可能な限り小さなスキャフォールドが必要な場合aspire new aspire-empty(C#)または aspire new aspire-ts-empty(TS)リソースは事前接続されません
Python サービスを使用する場合aspire new aspire-py-starter(TypeScript AppHost が Python を制御)dotnet new ではありません — このテンプレートは 13.3 で削除されました

テンプレートの一覧とオプションについては、references/templates.md を参照してください。

ワークフロー A — aspire new <template>(新規プロジェクト)

空またはまだ存在しないディレクトリに新規プロジェクトを作成する場合:

  1. CLI のインストール状況が不確かな場合は、aspire doctor で前提条件を確認します。
  2. references/templates.md からテンプレートを選択します。
  3. テンプレートを実行します。エージェントのフローでは --non-interactive を追加します:
    aspire new aspire-starter --name MyApp --output ./MyApp --non-interactive
    
  4. 新しいディレクトリはテンプレートによって完全に接続設定されるため、aspireify への引き継ぎは不要です。
  5. 初回実行(aspire start)のために aspire-orchestration に案内します。

ワークフロー B — aspire init(既存のリポジトリ)

すでにサービス(Express API、.NET API、Python サービスなど)が含まれており、 それらと並べて AppHost を追加する必要があるリポジトリの場合:

  1. 検出の表を確認し、AppHost が存在しないことを確認します。
  2. 非対話型のフローでは言語を明示的に選択して、aspire init を実行します:
    aspire init --language csharp --non-interactive
    # or
    aspire init --language typescript --non-interactive
    
  3. aspire init によって、以下が追加されます:
    • AppHost のひな形(#:sdk ディレクティブを含む apphost.cs、または生成された .aspire/modules/ フォルダーを含む apphost.mts)
    • 言語と AppHost のパスを記述する AppHost 構成
    • プロジェクトのスキルディレクトリに aspireify エージェントスキル(aspire agent init が使用するものと同じディレクトリ)。13.6 以降では、連続したエージェントのセットアップで、aspireify を含む推奨スキルが事前に選択されます。また、Aspire MCP サーバーの構成は提示されません。正常に初期化された後に MCP 構成がない場合、それは想定どおりであり、不具合ではありません。MCP は別途、明示的に有効化する機能です。aspire ルーターの スキルと MCP に関するガイダンスを参照してください。
  4. aspireify に引き継ぎます — aspire init では、リソース、プロジェクト、インテグレーションは自動的に接続されません。
  5. aspireify による接続が完了したら、aspire start で検証します (aspire-orchestration)。

13.5 では、ルートに package.json がすでにあるリポジトリ内で TypeScript の初期化を行うと、 ネストされた aspire-apphost/ パッケージが作成され、ルートの aspire.config.json は aspire-apphost/apphost.mts を参照します。ソリューションベースの C# リポジトリには、 プロジェクトベースの AppHost を追加できます。新しい C# AppHost では、デフォルトで AspireUseCliBundle=true が有効になります。これらの生成された設定はそのまま維持してください。

aspire.config.json の内容や、aspire init が途中で失敗した場合の対処方法を含む手順全体については、 references/init-workflow.md を参照してください。

引き継ぎのルール

aspire init / aspire new の完了後...引き継ぎ先
ひな形は追加されたが、リソースの接続が必要→ aspireify スキル(プラグイン内またはプロジェクトローカル)
ひな形は追加されたが、起動することの検証が必要→ aspire-orchestration(aspire start を実行)
テンプレートから作成した新しいプロジェクトで、実行準備が完了している→ aspire-orchestration
初期化後にデプロイを求められた→ aspire-deployment
初期化後にログ/トレースを求められた→ aspire-monitoring
既存の AppHost が検出された — init を実行しない→ aspireify(再接続)または aspire-orchestration(ライフサイクル)

プロジェクトローカルのスキルによる上書き

プロジェクトローカルに .agents/skills/aspire-init/SKILL.md が存在する場合(以前の aspire init 実行によるレガシーインストール)、ユーザーに警告し、その内容を優先してください。 レガシーなプロジェクトローカルのスキルには、そのリポジトリ固有のガイダンスが含まれている可能性があり、 このプラグイン内のスキルで上書きすべきではありません。

同じ理由から、プロジェクトローカルの aspireify スキル(aspire init によってインストールされたもの)は、 このプラグイン内の aspireify より優先されます。プロジェクトローカルのコピーを優先し、警告してください。

エラー処理

症状原因対応
aspire init で AppHost がすでに存在すると報告されるリポジトリに AppHost がすでにある中止してください。aspireify(再配線)または aspire-orchestration(ライフサイクル)に引き継ぎます
aspire init が --language なしの非対話モードで失敗する複数の言語パスが利用可能--language csharp または --language typescript を指定して再実行します
aspire new が --output パスを拒否するパスが存在し、空ではない別の --output を使うか、ディレクトリを空にします
aspire コマンドが見つからないCLI がインストールされていない.NET 10 の場合は dotnet tool install -g Aspire.Cli、または curl -sSL https://aspire.dev/install.sh | bash を実行します
aspire doctor で .NET 10 がないと報告されるSDK がない再試行する前に .NET 10 SDK をインストールします
aspire init は成功したが、aspireify スキルがインストールされていないエージェントのスキルディレクトリが検出されなかった、または aspireify が選択されなかった(13.5 では事前選択されません)aspire agent init --non-interactive --skills aspireify を実行します(明示的な --skills リストがある場合は aspireify を追加し、--skill-locations はそのままにして、--mcp は追加しないでください)。その後、配線を続けます
aspire init は成功したが、MCP 設定が書き込まれていない13.6 以降では想定どおりです — 連続したエージェント設定では MCP は提示されません修復しないでください。ユーザーが明示的に求めた場合にのみ MCP を設定します(13.6 以降では aspire agent init --mcp)
スケルトンは生成されたが、リソースが配線されていない想定どおりです — aspire init は配線を行いませんaspireify に引き継ぎます
既存の TypeScript AppHost が引き続き apphost.ts を使用しているレガシーのエントリーポイントとパッケージグラフ承認と aspire update --migrate --yes --non-interactive を担当する aspire-orchestration に引き継ぎます。後続のソース作成のみ aspireify に戻します

参考資料

  • templates.md — aspire new のテンプレートとオプション
  • init-workflow.md — aspire init のフロー、aspire.config.json の レイアウト、および aspireify への引き継ぎ
  • aspire-13-5-breaking-changes.md — 13.5 の移行、CLI バンドルの動作、および影響を受けるリリース向けの修正

コメント