Loading...
Loading...
**WORKFLOW SKILL** - First-run flow for adding Aspire to a repo. Picks `aspire new` (greenfield) or `aspire init` (existing repo), drops the AppHost skeleton, then hands off to `aspireify` for resource wiring. USE FOR: aspire init, aspire new, aspire-starter, aspire-ts-starter, aspire-py-starter, add Aspire to existing repo, scaffold Aspire app, bootstrap Aspire, no AppHost detected, install aspireify, apphost.mts, generated .aspire/modules. DO NOT USE FOR: AppHost wiring on an existing AppHost (use aspireify), start/stop/wait (use aspire-orchestration), deploy/publish (use aspire-deployment), logs/traces (use aspire-monitoring), repo that already has an AppHost. INVOKES: aspire CLI (init, new, doctor), aspireify (handoff after skeleton drop). FOR SINGLE OPERATIONS: Run `aspire init` or `aspire new TEMPLATE` directly.
npx skill4agent add microsoft/aspire-skills aspire-initFirst-run only. This skill owns the skeleton drop and template choice for repositories that do not yet have an Aspire AppHost. Once the skeleton is in place, hand off tofor the actual resource wiring.aspireify
| Requirement | Install |
|---|---|
| .NET 10.0 SDK | https://dotnet.microsoft.com/download |
Node.js | https://nodejs.org |
| Aspire CLI (curl installer) | |
| Aspire CLI (npm) | |
| Aspire CLI (NativeAOT global tool) | |
| Diagnose missing prerequisites | |
Aspire also supports Nix, Homebrew, WinGet, mise, and the curl/PowerShell installers. Use the installation method already owned by the user's environment.
aspire init| Signal | How to Detect | Meaning |
|---|---|---|
| No C# AppHost | No | OK to init |
| No file-based AppHost | No | OK to init |
| No TypeScript AppHost | No current | OK to init |
| No Aspire config | No | OK to init |
| User intent | Explicit "add Aspire", "scaffold Aspire", "aspire init" | OK to init |
aspire initaspireifyaspire-orchestrationaspire newaspire init| Situation | Command | Why |
|---|---|---|
| Empty directory or brand-new project | | Generates a full starter solution |
| Existing repo with services to model | | Drops minimal skeleton + |
| User wants a sample to learn from | | Includes ApiService + Web + ServiceDefaults |
| User wants the smallest possible scaffold | | No resources pre-wired |
| User wants Python services | | Not |
aspire new <template>aspire doctor--non-interactiveaspire new aspire-starter --name MyApp --output ./MyApp --non-interactiveaspire-orchestrationaspire startaspire initaspire initaspire init --language csharp --non-interactive
# or
aspire init --language typescript --non-interactiveaspire initapphost.cs#:sdkapphost.mts.aspire/modules/aspireifyaspire agent initaspireifyaspire initaspireifyaspire startaspire-orchestrationpackage.jsonaspire-apphost/aspire.config.jsonaspire-apphost/apphost.mtsAspireUseCliBundle=trueaspire.config.jsonaspire initAfter | Route To |
|---|---|
| Skeleton dropped, resources need wiring | → |
| Skeleton dropped, validate it starts | → |
| New project from template, ready to run | → |
| User asks to deploy after init | → |
| User asks for logs/traces after init | → |
| Existing AppHost detected — do NOT run init | → |
.agents/skills/aspire-init/SKILL.mdaspire initaspireifyaspire initaspireify| Symptom | Cause | Action |
|---|---|---|
| Repo already has an AppHost | Stop. Route to |
| Multiple language paths available | Re-run with |
| Path exists and is non-empty | Use a different |
| CLI not installed | |
| SDK missing | Install .NET 10 SDK before retrying |
| Agent skill directory not detected | Run |
| Skeleton dropped but resources not wired | Expected — | Hand off to |
Existing TypeScript AppHost still uses | Legacy entry point and package graph | Hand off to |
aspire newaspire initaspire.config.jsonaspireify