Aspire InitSAFE
An Aspire reference architecture for cloud-native microservices and agentic AI with MCP, A2A & AG-UI
Overview
An Aspire reference architecture for cloud-native microservices and agentic AI with MCP, A2A & AG-UI
07c2bf555f06OBSERVED · 2026-10-14What it tells the agent
The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.
--- 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, 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. license: MIT metadata: author: Microsoft version: "0.0.3" --- # 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`](https://github.com/microsoft/aspire-skills/blob/main/skills/aspireify/SKILL.md) for the actual resource wiring. ## Prerequisites | Requirement | Install | | -------------------------------------------------------------- | ------------------------------------------------------ | | .NET 10.0 SDK | https://dotnet.microsoft.com/download | | Node.js `^20.19.0`, `^22.13.0`, or `>=24` (TypeScript AppHost) | https://nodejs.org | | Aspire CLI (curl installer) | `curl -sSL https://aspire.dev/install.sh \| bash` | | Aspire CLI (npm) | `npm install -g @microsoft/aspire-cli` | | Aspire CLI (NativeAOT global tool) | `dotnet tool install -g Aspire.Cli` (.NET 10 required) | | Diagnose missing prerequisites | `aspire doctor` | > Aspire also supports Nix, Homebrew, WinGet, mise, and the curl/PowerShell installers. > Use the installation method already owned by the user's environment. ## 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 current `apphost.mts` or legacy `apphost.ts` in the repo | 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`](https://github.com/microsoft/aspire-skills/blob/main/skills/aspireify/SKILL.md) (re-wire) or [`aspire-orchestration`](https://github.com/microsoft/aspire-skills/blob/main/skills/aspire-orchestration/SKILL.md) (lifecycle). ## Decision: `aspire new` vs `aspire init` | Situation | Command | Why | | ----------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | | Empty directory or brand-new project | `aspire new <template>` | Generates a full starter solution | | Existing repo with services to model | `aspire init` | Drops minimal skeleton + `aspire.config.json` next to existing code | | User wants a sample to learn from | `aspire new aspire-starter` | Includes ApiService + Web + ServiceDefaults | | User wants the smallest possible scaffold | `aspire new aspire-empty` (C#) or `aspire new aspire-ts-empty` (TS) | No resources pre-wired | | User wants Python services | `aspire new aspire-py-starter` (TypeScript AppHost drives Python) | **Not** `dotnet new` — that template was removed in 13.3 | See [references/templates.md](references/templates.md) for the complete template list and options. ## Workflow A — `aspire new <template>` (new project) For brand-new projects in an empty or non-existent directory: 1. Confirm prerequisites with `aspire doctor` if the CLI install is uncertain. 2. Pick a template from [references/templates.md](references/templates.md). 3. Run the template, append `--non-interactive` for agent flows: ```bash aspire new aspire-starter --name MyApp --output ./MyApp --non-interactive ``` 4. The new directory is fully wired by the template — **no aspireify handoff needed**. 5. Route to [`aspire-orchestration`](https://github.com/microsoft/aspire-skills/blob/main/skills/aspire-orchestration/SKILL.md) for first run (`aspire start`). ## Workflow B — `aspire init` (existing repo) For repositories that already contain services (Express API, .NET API, Python service, etc.) and need an AppHost added alongside them: 1. Verify the [Detection](#detection) table — confir
Trust audit
SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | NA |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- none-observed
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (2)
| Aspire CLI (curl installer) | `curl -sSL https://aspire.dev/install.sh \| bash` |
| `aspire` command not found | CLI not installed | `dotnet tool install -g Aspire.Cli` (.NET 10) or `curl -sSL https://aspire.dev/install.sh
Gates applied: no_behavioural_pass.
07c2bf555f06full audit observations/trust-audit/skill/foxminchan__aspire-init.json · Report an issue / request a re-scanAudit history
Every audit this skill has had.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-14 | 07c2bf555f06 | SAFE | B | 89 | first audit |
Questions
What does the Aspire Init skill do?
An Aspire reference architecture for cloud-native microservices and agentic AI with MCP, A2A & AG-UI
Is Aspire Init safe to install?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean skill reads B.
What can Aspire Init access on my machine?
The audit observed no filesystem, network or shell use at all in its source.
How current is this page?
The grade is for one exact copy of the source (07c2bf555f06), read on 2026-10-14. The repository is watched, and a new audit runs when it changes — this is the first audit.