>- **WORKFLOW SKILL** - Top-level router for Aspire 13.4 distributed apps. Detects the AppHost, enforces safety guardrails, and routes to the right sub-skill. aspire start, aspire stop, aspire resource, aspire deploy, aspire destroy, aspire publish, aspire init, aspire new, aspire add, aspire integration list/search, aspire wait, aspire describe, aspire ps, aspire dashboard run, aspire doctor, aspire update, aspire logs, aspire otel, aspire agent init, --include-hidden, aspireify, WithBrowserLogs, custom dashboard/resource commands, .aspire/modules recovery, Playwright URL discovery. without Aspire (use azure-prepare), container-only repos with no AppHost, ordinary build/test tasks.
npx skills add https://github.com/microsoft/aspire-skills --skill aspire
Use this skill when the task involves an Aspire distributed application — operating the
AppHost or its resources through the Aspire CLI rather than falling back to ad-hoc dotnet,
docker, or shell workflows.
Two intents are commonly misread — resolve them before doing anything else:
my Aspire app" → recommend running aspire agent init**, which generates project-local
Aspire agent skills with richer, scenario-based guidance (deeper coverage for C# AppHost
editing, TypeScript AppHosts, and investigation workflows). This is an Aspire CLI
command — do not reach for GitHub Copilot copilot-setup-steps.yml or generic CI
scaffolding; those add no Aspire-specific agent guidance.
runtime state first: route to aspire-monitoring
and use aspire describe for resource state, then aspire logs / aspire otel logs /
aspire otel traces. Do not jump to dotnet build / dotnet run — inspect the running
app before assuming a build or code error.
Activate when ANY signal is present. Use the Scope column to decide whether to route to
the bootstrap skills (aspire-init / aspireify) or to a runtime sub-skill:
| Signal | How to Detect | Confidence | Scope |
|--------|---------------|------------|-------|
| C# AppHost | .csproj containing Aspire.AppHost.Sdk | ✅ Definitive | AppHost present → orchestration / deployment / monitoring |
| File-based C# AppHost | apphost.cs with #:sdk Aspire.AppHost.Sdk | ✅ Definitive | AppHost present → orchestration / deployment / monitoring |
| TypeScript AppHost | apphost.ts file in project | ✅ Definitive | AppHost present → orchestration / deployment / monitoring |
| Aspire config without AppHost | aspire.config.json present and no AppHost above | High | Bootstrap → aspireify (skeleton dropped, needs wiring) |
| Aspire config with AppHost | aspire.config.json present and AppHost above | High | AppHost present → orchestration / deployment / monitoring |
| Aspire settings | .aspire/ directory present | High | AppHost present (usually) |
| Generated TS modules | .aspire/modules/ directory present | High | AppHost present (TS) |
| Service defaults | Aspire.ServiceDefaults in project references | Medium | AppHost present |
| No AppHost, no aspire.config.json | None of the above and user asks to add Aspire | n/a | Bootstrap → aspire-init (skeleton drop) |
aspire-init for the skeleton drop. If an AppHost stub exists
but is unwired (no resources declared), route to aspireify.
Only continue with the steps below once a wired AppHost is present.
aspire start (or aspire start --isolated in worktrees or whenever shared local state is risky)aspire wait <resource> before interacting with any resourceaspire describe, aspire otel logs, aspire logs, aspire otel traces, and aspire export before making code changesaspire integration search <query> when the package is unknown, then aspire add <package> when ready to mutate the AppHostaspire start after AppHost changes; otherwise prefer resource commands, runtime watch/HMR, dashboard actions, or IDE-managed debugging as appropriate.aspire start, never dotnet run on AppHostsaspire wait <resource>, never manual HTTP pollingaspire resource <resource-name> <command> for resource operations such as stop, start, or rebuild when availablefeatures.defaultWatchEnabled only for Aspire default watch; do not treat it as per-resource rebuild, restart, or hot reloadaspire docs search <topic> before editing unfamiliar AppHost APIsaspire docs api search <query> --language csharp|typescript for API reference before editing AppHost code--non-interactive for agent executionaspire integration list --format Json and aspire integration search <query> --format Json for read-only integration discovery.aspire/modules/ directly in TypeScript AppHosts| Task | Route To |
|------|----------|
| Start, stop, wait, restart, rebuild | → aspire-orchestration |
| Create a new Aspire project from a template (aspire new) | → aspire-init (in-plugin) |
| Add Aspire to an existing repo (aspire init, drop skeleton) | → aspire-init (in-plugin) |
| Wire AppHost / scaffold resource graph / add integrations after aspire init | → aspireify (in-plugin) |
| Deploy, publish, destroy, pipeline steps | → aspire-deployment |
| Logs, traces, metrics, dashboard, browser logs | → aspire-monitoring |
| Diagnose a running app — "something's wrong", "show me what's happening", investigate errors / health / unexpected behavior | → aspire-monitoring — start with aspire describe for resource state, then aspire logs / aspire otel logs / aspire otel traces; investigate before editing code |
| Improve AI agent support / generate project-local Aspire agent skills | → run aspire agent init (see below) |
| Deployed app monitoring (Azure) | → azure-diagnostics skill (azure-skills plugin) |
aspire agent init)When the user asks for better AI agent support for their Aspire project (or to
set up / refresh project-local agent guidance), recommend running **`aspire agent
init`**. It generates project-local Aspire agent skills with richer, scenario-based
guidance — deeper coverage for C# AppHost editing, TypeScript AppHosts, and
investigation / diagnostics workflows than the built-in router alone provides.
First-run flow only. Owns the skeleton drop for repos that do not yet have an AppHost —
picks aspire new <template> (greenfield) or aspire init (existing repo), runs the CLI,
and hands off to aspireify for the actual wiring. Self-deactivates once the skeleton is in
place. Do not use it on a repo that already contains an AppHost.
Agentic AppHost wiring after aspire init lands the skeleton. Scans the repo, proposes a
resource graph (Postgres / Redis / Rabbit / etc.), edits the AppHost (C#, file-based C#, or
TypeScript), wires Aspire.ServiceDefaults + OTel, validates with aspire start, then
self-deactivates. Owns current AppHost authoring patterns (AddNextJsApp, AddViteApp,
WithBrowserLogs(), generated .aspire/modules/, unified TS withEnvironment,
endpoint references, and config/secret migration).
Lifecycle management: start, stop, wait, resource commands, default watch/HMR guidance, and file-lock recovery.
Safety guardrails that prevent agent self-harm. Owns aspire ps / aspire describe /
--include-hidden inspection and CLI upgrades (aspire update --self). Does not edit
AppHost code — defers to aspireify for wiring.
Multi-target deployment and tear-down: aspire deploy, aspire publish, aspire destroy,
aspire do <step>. Targets: Azure Container Apps, App Service, AKS, Kubernetes (Helm),
Docker Compose. Owns current deployment surfaces (Front Door, NSP, AKS hosting, Foundry
AddPromptAgent, JS PublishAs*, --pipeline-log-level) and 13.4 API naming.
Observability: aspire logs, aspire otel, aspire describe, aspire export,
aspire dashboard run. Routes between local Aspire CLI diagnostics, AKS workload tooling,
and deployed-Azure platform tools. Surfaces dashboard features (notification center,
Rebuild command, browser-logs telemetry).
If any of the following exist project-locally (from aspire agent init or Aspire
aspire init), warn the user and defer to the project-local copy — repo-specific
guidance there should not be overridden by the in-plugin sibling:
| Project-local file | Precedence |
|--------------------|-----------|
| .agents/skills/aspire/SKILL.md | This file (top-level router) defers to it for deeper C# / TS AppHost editing, Playwright handoff, investigation workflows. |
| .agents/skills/aspireify/SKILL.md | The in-plugin aspireify sibling defers to it for AppHost wiring. |
| .agents/skills/aspire-init/SKILL.md | The in-plugin aspire-init sibling defers to it for the skeleton/first-run flow. |
Safety guardrails from this plugin always apply even when project-local skills are
active.
| Requirement | Install |
|-------------|---------|
| .NET 10.0 SDK | https://dotnet.microsoft.com/download |
| Aspire CLI (curl/PowerShell) | curl -sSL https://aspire.dev/install.sh \| bash |
| Aspire CLI (NativeAOT global tool, .NET 10) | dotnet tool install -g Aspire.Cli |
Either install method works. The dotnet tool install path produces a NativeAOT binary
(instant startup, no JIT warmup) and is recommended when .NET 10 is already present.
breaking change to scrub from agent-generated code, scripts, and CI snippets (rename of
--log-level, dashboard MCP removal, NameOutput → NameOutputReference,
AddAndPublishPromptAgent removal, TS withEnvironment* deprecation, and the full
13.2 → 13.3 migration checklist).
This skill should be used when working with LaminDB, an open-source data framework for biology that makes data queryable, traceable, reproducible, and FAIR. Use when managing biological datasets (scRNA-seq, spatial, flow cytometry, etc.), tracking computational workflows, curating and validating data with biological ontologies, building data lakehouses, or ensuring data lineage and reproducibility in biological research. Covers data management, annotation, ontologies (genes, cell types, diseases, tissues), schema validation, integrations with workflow managers (Nextflow, Snakemake) and MLOps platforms (W&B, MLflow), and deployment strategies.
Latch platform for bioinformatics workflows. Build pipelines with Latch SDK, @workflow/@task decorators, deploy serverless workflows, LatchFile/LatchDir, Nextflow/Snakemake integration.
Run Python code in the cloud with serverless containers, GPUs, and autoscaling. Use when deploying ML models, running batch processing jobs, scheduling compute-intensive tasks, or serving APIs that require GPU acceleration or dynamic scaling.
Comprehensive healthcare AI toolkit for developing, testing, and deploying machine learning models with clinical data. This skill should be used when working with electronic health records (EHR), clinical prediction tasks (mortality, readmission, drug recommendation), medical coding systems (ICD, NDC, ATC), physiological signals (EEG, ECG), healthcare datasets (MIMIC-III/IV, eICU, OMOP), or implementing deep learning models for healthcare applications (RETAIN, SafeDrug, Transformer, GNN).
Advanced GitHub Actions workflow automation with AI swarm coordination, intelligent CI/CD pipelines, and comprehensive repository management
This skill should be used when working with LaminDB, an open-source data framework for biology that makes data queryable, traceable, reproducible, and FAIR. Use when managing biological datasets (scRNA-seq, spatial, flow cytometry, etc.), tracking computational workflows, curating and validating data with biological ontologies, building data lakehouses, or ensuring data lineage and reproducibility in biological research. Covers data management, annotation, ontologies (genes, cell types, diseases, tissues), schema validation, integrations with workflow managers (Nextflow, Snakemake) and MLOps platforms (W&B, MLflow), and deployment strategies.
Build end-to-end MLOps pipelines from data preparation through model training, validation, and production deployment. Use when creating ML pipelines, implementing MLOps practices, or automating model training and deployment workflows.
Comprehensive healthcare AI toolkit for developing, testing, and deploying machine learning models with clinical data. This skill should be used when working with electronic health records (EHR), clinical prediction tasks (mortality, readmission, drug recommendation), medical coding systems (ICD, NDC, ATC), physiological signals (EEG, ECG), healthcare datasets (MIMIC-III/IV, eICU, OMOP), or implementing deep learning models for healthcare applications (RETAIN, SafeDrug, Transformer, GNN).
Take microsoft/aspire-skills-aspire from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.