Postpartum-genushyacinthus29/dotnet-skills/skills/dotnet-aspire/SKILL.md
dotnet-aspire
Build, upgrade, and operate .NET Aspire application hosts with current CLI, AppHost, ServiceDefaults, integrations, dashboard, testing, and Azure deployment patterns for distributed apps.
- Source repository stars
- 9
- Declared platforms
- 0
- Static risk flags
- 1
- Last source update
- 2026-08-23
- Source checked
- 2026-08-25
Decision brief
What it does: where it fits
Build, upgrade, and operate . NET Aspire application hosts with current CLI, AppHost, ServiceDefaults, integrations, dashboard, testing, and Azure deployment patterns for distributed apps.
Not for
- hardcoding service URLs or connection strings instead of using WithReference
- putting business logic, data migrations, or large configuration transforms inside the AppHost
Compatibility matrix
Platform support, with evidence labels
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
Inspect first. Install second.
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/Postpartum-genushyacinthus29/dotnet-skills --skill "skills/dotnet-aspire"Inspect the Agent Skill "dotnet-aspire" from https://github.com/Postpartum-genushyacinthus29/dotnet-skills/blob/f9c1a213bc25d95641adc3a59f8048cb5656741c/skills/dotnet-aspire/SKILL.md at commit f9c1a213bc25d95641adc3a59f8048cb5656741c. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
What the source asks the agent to do
- 01
Workflow
1. Classify the task first: new AppHost creation, existing-solution enlistment, integration wiring, testing and observability, deployment, or version upgrade. 2. Prefer the current Aspire toolchain. For greenfield or modernized work, use the Aspire CLI and current AppHost SDK in…
Classify the task first: new AppHost creation, existing-solution enlistment, integration wiring, testing and observability, deployment, or version upgrade.Prefer the current Aspire toolchain. For greenfield or modernized work, use the Aspire CLI and current AppHost SDK instead of writing new guidance around the deprecated legacy workload.Treat 13.1.x patches as servicing updates, not a new app model. Keep the Aspire CLI, Aspire.AppHost.Sdk, and closely coupled hosting or testing packages on the same patch line, then rerun the AppHost and deployment chec… - 02
Trigger On
Aspire.AppHost.Sdk, Aspire.Hosting., DistributedApplication.CreateBuilder, WithReference, WaitFor, AddProject, AddRedis, AddPostgres, aspire run, aspire init, aspire add, or aspire update
Aspire.AppHost.Sdk, Aspire.Hosting., DistributedApplication.CreateBuilder, WithReference, WaitFor, AddProject, AddRedis, AddPostgres, aspire run, aspire init, aspire add, or aspire updateAspire.Hosting.Testing, DistributedApplicationTestingBuilder, or a test harness that mixes an Aspire AppHost with WebApplicationFactoryorchestrating multiple services and resources with an AppHost for local development or cloud deployment - 03
Architecture
Review the “Architecture” section in the pinned source before continuing.
Review and apply the “Architecture” source section. - 04
Current Guidance
AppHost shape: prefer current SDK-style AppHost projects using Aspire.AppHost.Sdk/ or a file-based AppHost when that repo intentionally uses the single-file model. Recognize both as valid current patterns.
AppHost shape: prefer current SDK-style AppHost projects using Aspire.AppHost.Sdk/ or a file-based AppHost when that repo intentionally uses the single-file model. Recognize both as valid current patterns.CLI entry points: use aspire new for starter projects, aspire init to add Aspire support to an existing solution or create a single-file AppHost, aspire add to add integrations or starter pieces, aspire run for local or…Patch posture: Aspire 13.1.3 is a servicing release. Treat it as a patch-line refresh for the current CLI-first workflow, not a new topology model; align package versions, rerun aspire update, then revalidate local orch… - 05
Selection Rules
Use first-party Aspire when the package and docs exist for the resource or platform, especially for core .NET, Azure, cache, database, messaging, and standard local-container flows.
Use first-party Aspire when the package and docs exist for the resource or platform, especially for core .NET, Azure, cache, database, messaging, and standard local-container flows.Use CommunityToolkit/Aspire when you need polyglot app hosts beyond official coverage, extra dev-time tools around a resource, or community-maintained integrations such as SQLite, Java, Go, PowerShell, k6, MailPit, MinI…Prefer the smallest surface that solves the problem. Do not add a broad toolkit extension pack when an existing first-party integration plus a normal library already fits.
Permission review
Static risk signals and limitations
Writes files
The documentation asks the agent to create, modify, or delete local files.
CLI entry points: use `aspire new` for starter projects, `aspire init` to add Aspire support to an existing solution or create a single-file AppHost, `aspire add` to add integrations or starter pieces, `aspire run` for local orchestration, Evidence record
Why each signal appears
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 91/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 9 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Provenance and original SKILL.md
- Repository
- Postpartum-genushyacinthus29/dotnet-skills
- Skill path
- skills/dotnet-aspire/SKILL.md
- Commit
- f9c1a213bc25d95641adc3a59f8048cb5656741c
- License
- MIT
- Collected
- 2026-08-25
- Default branch
- main
View the original SKILL.md
.NET Aspire
Trigger On
Aspire.AppHost.Sdk,Aspire.Hosting.*,DistributedApplication.CreateBuilder,WithReference,WaitFor,AddProject,AddRedis,AddPostgres,aspire run,aspire init,aspire add, oraspire updateAspire.Hosting.Testing,DistributedApplicationTestingBuilder, or a test harness that mixes an Aspire AppHost withWebApplicationFactory- orchestrating multiple services and resources with an AppHost for local development or cloud deployment
- setting up
ServiceDefaults, service discovery, OpenTelemetry, health checks, or the Aspire Dashboard - choosing between official first-party Aspire integrations and
CommunityToolkit/Aspire - upgrading older 8.x or 9.x Aspire solutions to the current CLI and AppHost SDK model
- wiring polyglot services into an Aspire topology, especially when Go, Java, Python, or extra dev-time tools enter the picture
Workflow
- Classify the task first: new AppHost creation, existing-solution enlistment, integration wiring, testing and observability, deployment, or version upgrade.
- Prefer the current Aspire toolchain. For greenfield or modernized work, use the Aspire CLI and current AppHost SDK instead of writing new guidance around the deprecated legacy workload.
- Treat 13.1.x patches as servicing updates, not a new app model. Keep the Aspire CLI,
Aspire.AppHost.Sdk, and closely coupled hosting or testing packages on the same patch line, then rerun the AppHost and deployment checks afteraspire update. - Keep the AppHost code-first and topology-focused. Model services, resources, dependencies, endpoints, lifetimes, and parameters there; keep business logic out.
- Keep
ServiceDefaultsnarrow. It exists for telemetry, health checks, resilience, and service discovery, not shared domain models or general utility code. - Prefer official first-party Aspire integrations when they cover the requirement. Use
CommunityToolkit/Aspireonly when the capability gap is real: unsupported language hosts, extra dev infrastructure, or extension packages the official project does not provide. - Validate the whole distributed system, not one project in isolation. Local success means the AppHost starts cleanly, dependencies resolve through
WithReference, the dashboard shows the expected resource graph, and end-to-end tests can exercise the topology. - For integration tests, keep one shared AppHost fixture per test session. Use
Aspire.Hosting.Testingto boot the distributed app, createHttpClientor SignalR clients from the AppHost, and layerWebApplicationFactoryon top only when tests need direct Host DI, grains, or runtime services. - When publishing, switch from local containers or emulators to managed resources deliberately and verify which services truly need external endpoints.
Architecture
flowchart LR
A["Distributed-app task"] --> B{"Need code-first orchestration?"}
B -->|No| C["Stay in service-level skills such as ASP.NET Core, Worker, or Orleans"]
B -->|Yes| D["Create or update the AppHost"]
D --> E["Model resources and services with `WithReference` and `WaitFor`"]
E --> F{"Official Aspire integration exists?"}
F -->|Yes| G["Use first-party Aspire integration"]
F -->|No or gap remains| H["Evaluate `CommunityToolkit/Aspire`"]
G --> I["Apply `ServiceDefaults`, dashboard, and tests"]
H --> I
I --> J{"Publishing now?"}
J -->|No| K["Run locally with `aspire run` or the AppHost project"]
J -->|Yes| L["Choose `azd`, App Service, or the CLI deploy/publish pipeline"]
Current Guidance
- AppHost shape: prefer current SDK-style AppHost projects using
Aspire.AppHost.Sdk/<version>or a file-based AppHost when that repo intentionally uses the single-file model. Recognize both as valid current patterns. - CLI entry points: use
aspire newfor starter projects,aspire initto add Aspire support to an existing solution or create a single-file AppHost,aspire addto add integrations or starter pieces,aspire runfor local orchestration,aspire deployfor the current CLI deploy pipeline, andaspire updatefor version-aware upgrades.aspire publishstill exists for explicit artifact-generation flows and remains preview-sensitive. - Patch posture: Aspire
13.1.3is a servicing release. Treat it as a patch-line refresh for the current CLI-first workflow, not a new topology model; align package versions, rerunaspire update, then revalidate local orchestration and the chosen deployment path. - App model wiring: use
WithReference(...)for dependency and configuration flow, andWaitFor(...)for startup ordering. UseWithExternalHttpEndpoints()only when the resource truly needs an externally reachable endpoint for the chosen runtime or publish target. - ServiceDefaults boundaries:
AddServiceDefaults()should stay focused on OpenTelemetry, health endpoints, service discovery,HttpClientresilience, and related cross-cutting infrastructure. - Testing model: prefer Aspire closed-box testing when you need to run the distributed application as a system. Use
DistributedApplicationTestingBuilderplus a shared fixture for AppHost lifecycle,App.CreateHttpClient(...)for resource-bound clients, and aWebApplicationFactory<TEntryPoint>wrapper only when the test must resolve DI services or in-process runtime state from the hosted app. For UI flows, initialize Playwright once in the shared fixture, create a fresh browser context per test, and capture failure artifacts. - Dashboard usage: treat the Aspire Dashboard as the development observability surface. It is valuable in AppHost runs and standalone OTLP scenarios, but it is not a production monitoring replacement.
- Upgrade posture: older 8.x or 9.x solutions need explicit migration work. Current guidance favors the Aspire CLI upgrade path and the newer AppHost SDK structure on
.NET 10.
Selection Rules
- Use first-party Aspire when the package and docs exist for the resource or platform, especially for core .NET, Azure, cache, database, messaging, and standard local-container flows.
- Use
CommunityToolkit/Aspirewhen you need polyglot app hosts beyond official coverage, extra dev-time tools around a resource, or community-maintained integrations such as SQLite, Java, Go, PowerShell, k6, MailPit, MinIO, or Meilisearch. - Prefer the smallest surface that solves the problem. Do not add a broad toolkit extension pack when an existing first-party integration plus a normal library already fits.
- Treat toolkit packages as community-supported. Verify maturity, maintenance, external container images, and security or licensing assumptions before making them part of a production baseline.
Official Sources
- Aspire docs home
- AppHost
- Service defaults
- Integrations overview
- Build your first app
- Aspire CLI reference
- Upgrade Aspire
- Testing overview
- dotnet/aspire
- CommunityToolkit/Aspire
Anti-Patterns
- hardcoding service URLs or connection strings instead of using
WithReference - putting business logic, data migrations, or large configuration transforms inside the AppHost
- turning
ServiceDefaultsinto a dumping ground for shared models or helpers - adding external HTTP endpoints everywhere instead of only where runtime or publish needs them
- defaulting to
CommunityToolkit/Aspirewhen first-party Aspire already covers the requirement - assuming the dashboard or local containers automatically mean production readiness
- treating Aspire tests as a mocking framework; they run the application as a real distributed system
Deliver
- a version-aware Aspire architecture or upgrade direction
- the right AppHost, ServiceDefaults, integration, and CLI workflow
- an explicit first-party versus
CommunityToolkit/Aspirepackage decision - an end-to-end validation path for local orchestration, testing, and deployment
Validate
- the AppHost starts cleanly via
aspire runor the AppHost project - resources and projects are modeled with explicit
WithReferenceandWaitForrelationships where needed - consuming apps resolve endpoints and connection strings without hardcoded values
ServiceDefaultscontains only cross-cutting infrastructure concerns- dashboard, health checks, logs, and traces reflect the expected resource graph
- Aspire-backed integration tests reuse a shared AppHost fixture instead of booting the distributed app inside each test
- any
WebApplicationFactorylayer reuses connection strings and endpoints from the AppHost instead of duplicating local config - testing and deployment guidance matches the chosen runtime: local AppHost, standalone dashboard, ACA/App Service, or the CLI deploy/publish pipeline
References
- patterns.md - Current CLI-first setup flows, AppHost patterns,
ServiceDefaults, testing, and upgrade checkpoints - testing.md - Shared AppHost fixtures,
DistributedApplicationTestingBuilder,WebApplicationFactoryintegration, Playwright bootstrapping, and diagnostics - deployment.md - ACA, App Service, publish-mode, and manifest-oriented deployment guidance
- community-toolkit.md - Practical guide to
CommunityToolkit/Aspirepackages, capability gaps, and selection rules
Frequently asked questions
What to verify before installation and use
What does the dotnet-aspire source document cover?
Build, upgrade, and operate . NET Aspire application hosts with current CLI, AppHost, ServiceDefaults, integrations, dashboard, testing, and Azure deployment patterns for distributed apps.
How do I install dotnet-aspire?
The source record exposes this install command: npx skills add https://github.com/Postpartum-genushyacinthus29/dotnet-skills --skill "skills/dotnet-aspire". Inspect the command and pinned source before running it.
Which permission-related actions were detected?
Static rules flagged write-files in the source; the page lists the matching lines and excerpts.
Alternatives
Compare before choosing
vasilyu1983/AI-Agents-public
qa-testing-ios
Guides iOS testing with XCTest, XCUITest, Swift Testing, simctl, and xcresult. Use when choosing destinations, controlling flakes, or parsing test artifacts for native apps.
steipete/agent-scripts
one-password
REQUIRED before ANY `op` command or whenever a task needs an API key, token, password, credential, or secret (OPENAI_API_KEY, ANTHROPIC_API_KEY, deploy tokens, live-test keys). Prompt-free 1Password service-account reads; wrong invocations spam macOS dialogs.
microsoft/Sico
android-tester
Execute Android UI workflows on a sandbox device, review results, and produce a structured execution report.
mission69b/t2000
sui-publish
Publishing, upgrading, and deploying Sui Move packages. Use this skill when the user needs to publish a package, upgrade a published package, deploy to multiple networks, serialize transactions for multisig signing, run a local Sui network (localnet), prepare for Mainnet launch, monitor production deployments, or debug dry run failures. Also use when the user asks about sui client publish, sui client upgrade, UpgradeCap, upgrade policies, Published.toml, --serialize-output, localnet, mainnet lau