--- name: aspire-init description: >- **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, 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. license: MIT metadata: author: Microsoft version: "0.0.1" --- # Aspire Init > **First-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 to > [`aspireify`](../aspireify/SKILL.md) for the actual resource wiring. ## Prerequisites | Requirement | Install | |-------------|---------| | .NET 10.0 SDK | https://dotnet.microsoft.com/download | | Aspire CLI (curl installer) | `curl -sSL https://aspire.dev/install.sh \| bash` | | Aspire CLI (NativeAOT global tool) | `dotnet tool install -g Aspire.Cli` (.NET 10 required) | | Diagnose missing prerequisites | `aspire doctor` | > Aspire ships the CLI as a NativeAOT .NET global tool — instant startup, no JIT warmup. > The curl/PowerShell installer remains supported for environments without .NET 10. ## Detection Activate **only** when adding Aspire to a workspace that does not yet have one. Confirm ALL of the following before running `aspire init`: | Signal | How to Detect | Meaning | |--------|---------------|---------| | No C# AppHost | No `.csproj` containing `Aspire.AppHost.Sdk` | OK to init | | No file-based AppHost | No `apphost.cs` with `#:sdk Aspire.AppHost.Sdk` | OK to init | | No TypeScript AppHost | No `apphost.ts` in repo root | OK to init | | No Aspire config | No `aspire.config.json` in repo root | OK to init | | User intent | Explicit "add Aspire", "scaffold Aspire", "aspire init" | OK to init | If **any** AppHost signal is already present, **do not run `aspire init`**. Route to [`aspireify`](../aspireify/SKILL.md) (re-wire) or [`aspire-orchestration`](../aspire-orchestration/SKILL.md) (lifecycle). ## Decision: `aspire new` vs `aspire init` | Situation | Command | Why | |-----------|---------|-----| | Empty directory or brand-new project | `aspire new