Infra, Ops & WorkflowAttention6262/100
aspire-integration__microsoft-upgrade-agent-plugins__plugins-upgrade-agent-extenders-upgrade-dotnet-upgrade-skills-scenarios-6d759f502ba3
Adds Aspire orchestration to an existing repository for inner-loop development and optional Azure deployment readiness. Use when asked to "aspirerify a project", "add Aspire to a solution", "integrate Aspire", "set up an AppHost", "add aspire init", or "orchestrate services with Aspire". Handles CLI setup, TFM compatibility gating, inter-service communication mapping, and delegates AppHost wiring to the Aspire CLI agent skills.
ou envoie-le directement à ton agent.
Installer dans ton projet
Ce skill a un score de sûreté moyen. Vérifie le rapport avant de l’installer.
$ npx arboris-cli install aspire-integration__microsoft-upgrade-agent-plugins__plugins-upgrade-agent-extenders-upgrade-dotnet-upgrade-skills-scenarios-6d759f502ba3Contenu à copier
---
name: aspire-integration
description: >
Adds Aspire orchestration to an existing repository for inner-loop development and optional Azure
deployment readiness. Use when asked to "aspirerify a project", "add Aspire to a solution",
"integrate Aspire", "set up an AppHost", "add aspire init", or "orchestrate services with Aspire".
Handles CLI setup, TFM compatibility gating, inter-service communication mapping, and delegates
AppHost wiring to the Aspire CLI agent skills.
requires-extension: upgrade-dotnet
metadata:
origin: Microsoft
discovery: scenario
importance: medium
weight: 9000
traits: .NET|CSharp|VisualBasic|DotNetCore
scenarioTraitsSet: [.NET]
---
# Aspire Integration Scenario
Add Aspire orchestration to an existing repository — unified inner-loop development with the Aspire Dashboard and optional Azure deployment readiness.
Do **not** write AppHost code, detect infrastructure dependencies, or wire services — those belong to the `aspireify` skill. This scenario's contributions are: environment gates, source control, inter-service communication mapping (context for aspireify), integration mode question, Azure publisher code, and scenario lifecycle.
## Workflow Overview
```
Phase 0 PRE-CHECK → TFM gate; detect existing Aspire artifacts; CLI/skills setup
Phase 1 WORKING BRANCH → Branch setup and source control hygiene
Phase 2 ANALYSIS → inter-service communication mapping
Phase 3 USER CONFIG → Single question: integration mode
Phase 4 PLANNING → Generate plan.md based on mode choice
Phase 5 EXECUTION → aspire init; delegate to aspireify; Azure publisher (if chosen)
Phase 6 COMPLETION → Surface final status, deferred items, next steps
```
---
## Phase 0: Pre-Check — Environment & Compatibility Gates
The cheap gates (TFM, existing artifacts) run first. CLI and skill installs only run if we're definitely continuing — so a user who hard-stops on incompatible TFM or chooses *Quit* on existing-artifact detection has nothing installed.
### 0.1: TFM Compatibility Gate
Scan every `.csproj` in the solution. For each, read `<TargetFramework>` and `<TargetFrameworks>`.
**Compatible TFMs:** `net8.0`, `net9.0`, `net10.0`, or any `net{X}.0` where X ≥ 8. Multi-targeted projects with at least one compatible TFM are compatible.
**Incompatible TFMs:** `net4*` (.NET Framework), `netstandard*`, `netcoreapp*`, `net5.0`, `net6.0`, `net7.0`.
| Result | Action |
|--------|--------|
| **All incompatible** | Hard stop — present message below. Link to .NET Version Upgrade scenario. End this scenario. |
| **Mixed** | Ask: proceed with compatible subset *(recommended)* or upgrade all first then re-run. If proceeding, carry the incompatible list as the aspireify "skip list". |
| **All compatible** | Continue silently. |
<response_template>
❌ **No Compatible Projects Found**
All projects target .NET versions that Aspire does not support (net8.0 or later required):
| Project | Current TFM |
|---------|------------|
| {project} | {tfm} |
**Options:**
1. Upgrade projects first using the **.NET Version Upgrade** scenario, then return here
2. Cancel this scenario
</response_template>
<response_template>
⚠️ **Mixed Compatibility Detected**
| Compatible (will be orchestrated by Aspire) | Incompatible (will be skipped) |
|------------------------------|-------------------------------|
| {project} ({tfm}) | {project} ({tfm} — requires net8.0+) |
**Options:**
1. **Proceed with compatible projects only** *(recommended)* — incompatible projects remain unchanged
2. **Upgrade all projects first** — use the .NET Version Upgrade scenario, then return here
</response_template>
---
### 0.2: Detect Existing Aspire Artifacts
Search for:
| Signal | Where to Look |
|--------|---------------|
| AppHost project | Any `.csproj` with `Sdk="Aspire.AppHost.Sdk"` or `#:sdk Aspire.AppHost.Sdk` in a `.cs` file |
| ServiceDefaults project | Any `.csproj` with `<IsAspireSharedProject>true</IsAspireSharedProject>` |
| Aspire hosting packages | `Aspire.Hosting.*` NuGet references in any project |
**If nothing found** → continue to 0.3. Set internal flag: `aspire_init_needed = true`.
**If artifacts found** → present options:
> **Existing Aspire support detected:**
> {list what was found with paths}
>
> **Options:**
> 1. **Quit** — no changes needed
> 2. **Fix / augment** — add missing resources or projects to the existing AppHost
> 3. **Add new AppHost** — create a separate AppHost for a different subset of projects
- **Quit** → end scenario
- **Fix/augment** → set `aspire_init_needed = false`; continue to 0.3
- **Add new AppHost** → set `aspire_init_needed = true`; continue to 0.3
---
**Load**: [aspire-cli.md](aspire-cli.md) — read before running any commands in the steps below. It defines which commands are agent-safe, which must never be run as an agent, and the correct flags for each.
### 0.3a: Verify / Install Aspire CLI
```bash
aspire --version
```
- **Present** → proceed to 0.3b.
- **Missing** → run `dotnet tool install -g aspire.cli`. If the command fails and cannot be retried automatically, **pause and ask the user to run it manually**:
> Before continuing, please run this in your terminal:
> ```
> dotnet tool install -g aspire.cli
> ```
> Reply when done.
**Hard gate**: do not proceed until `aspire --version` succeeds.
### 0.3b: Update Aspire CLI
```bash
dotnet tool update -g aspire.cli
```
Always run when CLI is present — idempotent. Ensures aspireify-required features (`--non-interactive`, `aspire init`, `aspire docs search`, `aspire list integrations`) are available.
If the command fails and cannot be retried automatically, **pause and ask the user to run it manually**:
> Please run this in your terminal:
> ```
> dotnet tool update -g aspire.cli
> ```
> Reply when done.
**Hard gate**: do not proceed with a stale CLI. The workflow depends on CLI features that may not exist in older versions.
### 0.3c: Ensure Aspire Skills Are Installed
Search the repository for existing skill files:
- `.github/skills/aspire/SKILL.md` (or `skill.md`, or any `*aspire*skill*` under `.github/skills/aspire/`)
- `.github/skills/aspireify/SKILL.md` (or `skill.md`, or any `*aspireify*skill*` under `.github/skills/aspireify/`)
- **Both found** → skills are already installed; proceed.
- **Either missing** → run:
```bash
aspire agent init --non-interactive --nologo --skills aspire,aspireify --skill-locations github
```
If the command succeeds, verify both files now exist at `.github/skills/aspire/SKILL.md` and `.github/skills/aspireify/SKILL.md`. Then read both to load the Aspire-specific context before continuing.
If the command fails and cannot be retried automatically, **pause and ask the user to run it manually**:
> Before continuing, please run this in your terminal:
> ```
> aspire agent init --non-interactive --nologo --skills aspire,aspireify --skill-locations github
> ```
> Reply when done.
**Hard gate**: do not proceed until both skill files are present. The aspireify skill is required for Phase 5 — the workflow cannot continue without it.
---
## Phase 1: Working Branch
### 1.1: Source Control Detection
Detect git repo, current branch, and pending changes. Handled during pre-initialization by the scenario-initializer worker.
### 1.2: Consolidated Pre-Init Prompt
Present branch strategy, commit approach, and flow mode in **one single prompt**. No multi-step wizard. User confirms or adjusts.
### 1.3: Apply Source Control
Commit or stash pending changes. Create/switch to working branch. The workspace must be clean and on the correct branch before analysis begins.
---
## Phase 2: Analysis
All steps in this phase are **read-only**. No file mutations.
**Load**: [assessment.md](assessment.md) — read completely before starting this phase.
The assessment file covers:
- TFM compatibility (reuse Phase 0.1 results)
- Inter-service communication mapping (unique value-add of this scenario)
- Assessment summary template
### Assessment Outputs
| Output | Used By |
|--------|---------|
| Compatible projects list (paths + TFMs) | aspireify delegation context |
| Incompatible projects skip list | aspireify delegation context |
| Inter-service communication graph | aspireify delegation context — guides `WithReference`/`WaitFor` wiring |
Present the assessment summary to the user before proceeding to Phase 3. Wait for confirmation.
---
## Phase 3: User Configuration
### 3.1: Integration Mode (single question)
> **Integration mode:**
> 1. **Inner-loop only** — AppHost for local development with Aspire Dashboard
> 2. **Inner-loop + Azure-ready** — Also configure Azure publishing so you can deploy when ready (deployment itself is not done during this scenario)
>
> *Recommended: {1 or 2}*
> - Default to **Azure-ready** if any compatible project is a Web API, Worker Service, Azure Functions, Blazor app, or gRPC service
> - Default to **inner-loop only** if all compatible projects are desktop apps or console tools
Wait for answer before proceeding.
---
## Phase 4: Planning
Follow the canonical plan.md format from your planning instructions.
### 4.1: Plan Shapes
**Inner-loop only (3 tasks):**
| Order | Task ID | Concern |
|-------|---------|---------|
| 1 | `01-environment-setup` | Verify CLI, create AppHost skeleton via `aspire init` |
| 2 | `02-aspireify` | Delegate full AppHost wiring to aspireify skill |
| 3 | `03-complete` | Surface dashboard URL, resource list, skipped projects, deferred items |
**Inner-loop + Azure-ready (4 tasks):**
| Order | Task ID | Concern |
|-------|---------|---------|
| 1 | `01-environment-setup` | Verify CLI, create AppHost skeleton via `aspire init` |
| 2 | `02-aspireify` | Delegate full AppHost wiring to aspireify skill |
| 3 | `03-azure-publisher` | Ask publisher type (ACA/AKS); add packages; write Publish* code; build AppHost |
| 4 | `04-complete` | Surface what was done + instructions to deploy when ready |
> **Completion task vs Phase 6:** The `*-complete` task generates the completion surface (templates in execution.md "Completion Surfaces") and is the last tracked unit of work in `plan.md`. Phase 6 is the scenario-lifecycle wrap-up that runs after the plan is fully done — it refreshes resource state if needed and hands off to a follow-up scenario. The completion *content* is owned by the task; Phase 6 owns the *lifecycle*.
### 4.2: Initialize Task Tracking
Initialize `tasks.md` and `scenario-instructions.md` using the standard `initialize_scenario` system skill.
### 4.3: Present Plan
Save `plan.md` and present it to the user. Wait for approval before starting execution.
---
## Phase 5: Execution
**Load**: [execution.md](execution.md) — read completely when entering this phase.
**Load**: [aspire-cli.md](aspire-cli.md) — CLI command reference.
Uses the executor's core task-execution steps for task lifecycle. The execution file supplements those steps — it does not replace them.
Execute the tasks listed in the approved `plan.md` (3 tasks for inner-loop only, 4 tasks for Azure-ready). For each task, use the matching reference section below — only the tasks present in `plan.md` should run.
| Task | Execution Reference Section | When |
|------|-----------------------------|------|
| `01-environment-setup` | Task 01: Environment Setup | Always |
| `02-aspireify` | Task 02: aspireify Delegation | Always |
| `03-azure-publisher` | Task 03: Azure Publisher Setup | Azure-ready path only |
| `03-complete` / `04-complete` | Completion Surfaces | Always (last task in plan) |
Mark each task done in `plan.md` as you complete it.
---
## Phase 6: Completion
1. Confirm all tasks in `plan.md` are marked done
2. Re-run `aspire describe` if the AppHost was stopped — get current resource status
3. Surface to the user:
- **Dashboard URL** (with full login token — from aspireify's completion summary; if missing, run `aspire start` and read the URL from its output — that is the canonical source)
- **Resource list** — name, type, status (Healthy / Skipped / Deferred)
- **Skipped incompatible projects** — each with actionable next step (link to .NET Version Upgrade)
- **Deferred items** from aspireify (e.g., OTel not wired for a service) — each with actionable next step
- *(Azure-ready path)* What was done (publisher packages + Publish* code). Instruction: *"Run `aspire deploy` in your terminal, use the Aspire CLI directly, or any preferred deployment tool when you're ready to deploy to Azure. First run will ask for Azure subscription, resource group, and region."*
4. Suggest next scenario: *"Run `aspire-version-upgrade` when you want to move to a newer Aspire version"*
---
## Build Warnings Policy
Only fix warnings introduced by Aspire integration (new AppHost code from Task 03, new package references). Do not fix pre-existing warnings in the user's projects — those are out of scope.
## Error Handling
| Problem | Resolution |
|---------|------------|
| No compatible projects (all < net8.0) | Phase 0.1 hard stop — link to .NET Version Upgrade scenario |
| Aspire CLI install fails | Check .NET SDK is installed; try `dotnet tool install -g aspire.cli --add-source https://api.nuget.org/v3/index.json` |
| `aspire agent init` fails | Check network; retry `aspire agent init --non-interactive --nologo --skills aspire,aspireify --skill-locations github` |
| `aspire init` fails | Check AppHost SDK version availability on NuGet; surface the CLI's error message to the user |
| aspireify reports an error | Read aspireify's error message; diagnose; do not retry without understanding the failure |
| Azure publisher build failure | Check package version conflicts between AppHost SDK and publisher packages; fix and rebuild |Colle ce Markdown dans ton agent ou utilise les boutons ci-dessus pour l’écrire dans ton projet.
Ce que fait aspire-integration__microsoft-upgrade-agent-plugins__plugins-upgrade-agent-extenders-upgrade-dotnet-upgrade-skills-scenarios-6d759f502ba3
**Quit** → end scenario
**Fix/augment** → set `aspire_init_needed = false`; continue to 0.3
**Add new AppHost** → set `aspire_init_needed = true`; continue to 0.3
**Present** → proceed to 0.3b.
Comment utiliser aspire-integration__microsoft-upgrade-agent-plugins__plugins-upgrade-agent-extenders-upgrade-dotnet-upgrade-skills-scenarios-6d759f502ba3
1
Copie le prompt
Un clic copie le prompt packagé (ou l'envoie à ton agent).
2
L'agent installe le skill
Il ajoute le SKILL.md et ses ressources à ton projet.
3
Activation automatique
Le skill s'active dès que le contexte correspond.
Déclencheurs pour aspire-integration__microsoft-upgrade-agent-plugins__plugins-upgrade-agent-extenders-upgrade-dotnet-upgrade-skills-scenarios-6d759f502ba3
Dis simplement à ton agent quelque chose comme :
Applique le skill aspire-integration__microsoft-upgrade-agent-plugins__plugins-upgrade-agent-extenders-upgrade-dotnet-upgrade-skills-scenarios-6d759f502ba3 à cette tâche
Utilise aspire-integration__microsoft-upgrade-agent-plugins__plugins-upgrade-agent-extenders-upgrade-dotnet-upgrade-skills-scenarios-6d759f502ba3 pour améliorer cette implémentation
Passe en revue ce sujet avec aspire-integration__microsoft-upgrade-agent-plugins__plugins-upgrade-agent-extenders-upgrade-dotnet-upgrade-skills-scenarios-6d759f502ba3
Skills liés à aspire-integration__microsoft-upgrade-agent-plugins__plugins-upgrade-agent-extenders-upgrade-dotnet-upgrade-skills-scenarios-6d759f502ba3
airunway-aks-setup__microsoft-github-copilot-for-azure__plugins-azure-skills-skills-dbb17dd8b7e9
Set up AI Runway on AKS — from bare cluster to running model. Covers cluster verification, controller install, GPU assessment, provider setup, and first deployment. WHEN: \"setup AI Runway\", \"onboard AKS cluster\", \"install AI Runway\", \"airunway setup\", \"deploy model to AKS\", \"GPU inference on AKS\", \"KAITO setup on AKS\", \"run LLM on AKS\", \"vLLM on AKS\", \"set up model serving on AKS\", \"AI Runway controller\".appinsights-instrumentation__microsoft-github-copilot-for-azure__plugins-azure-skills-skills-6c3a4797aa73
Guidance for instrumenting webapps with Azure Application Insights. Provides telemetry patterns, SDK setup, and configuration references. WHEN: how to instrument app, App Insights SDK, telemetry patterns, what is App Insights, Application Insights guidance, instrumentation examples, APM best practices.azure-ai__microsoft-github-copilot-for-azure__plugins-azure-skills-skills-4d212952b271
Use for Azure AI: Search, Speech, OpenAI, Document Intelligence. Helps with search, vector/hybrid search, speech-to-text, text-to-speech, transcription, OCR. WHEN: AI Search, query search, vector search, hybrid search, semantic search, speech-to-text, text-to-speech, transcribe, OCR, convert text to speech.