-
Notifications
You must be signed in to change notification settings - Fork 2k
.NET MAUI Doctor Skill #33757
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
.NET MAUI Doctor Skill #33757
Changes from 5 commits
0f572a0
0099e89
1f5a07b
e9b3603
8849603
65967da
a762f3f
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,17 @@ | ||
| { | ||
| "name": "dotnet-maui-skills", | ||
| "description": "Official Marketplace for .NET MAUI development - C#, XAML, cross-platform mobile (iOS, Android) and desktop (MacCatalyst, Windows) apps", | ||
| "owner": { | ||
| "name": "Microsoft", | ||
| "url": "https://github.com/dotnet/maui" | ||
| }, | ||
| "repository": "https://github.com/dotnet/maui", | ||
| "plugins": [ | ||
| { | ||
| "name": "dotnet-maui-skills", | ||
| "source": "./", | ||
| "version": "1.0.0", | ||
| "description": ".NET MAUI development toolkit with specialized skills agents covering C#, XAML, MVVM, UI Testing, performance optimization, and cross-platform best practices." | ||
| } | ||
| ] | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,16 @@ | ||
| { | ||
| "name": "dotnet-maui-skills", | ||
| "version": "1.0.0", | ||
| "description": ".NET MAUI development toolkit with specialized skills agents covering C#, XAML, MVVM, UI Testing, performance optimization, and cross-platform best practices.", | ||
| "author": { | ||
| "name": "Microsoft", | ||
| "url": "https://github.com/dotnet/maui" | ||
| }, | ||
| "repository": "https://github.com/dotnet/maui", | ||
| "skills": [ | ||
| "./.claude/skills/dotnet-workload-info", | ||
| "./.claude/skills/maui-doctor" | ||
| ], | ||
| "agents": [ | ||
| ] | ||
| } |
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,149 @@ | ||||||
| --- | ||||||
| name: dotnet-workload-info | ||||||
| description: Discover .NET SDK versions, workload sets, manifest versions, and workload dependencies (Xcode, JDK, Android SDK) from live NuGet APIs. Use when asked about: .NET SDK requirements/versions, workload set versions, workload manifest versions, Xcode version requirements, JDK version requirements, Android SDK packages, or MAUI NuGet package versions. Triggers on questions like "What Xcode is required for .NET 10?" or "What's the latest workload set?" | ||||||
| --- | ||||||
|
|
||||||
| # .NET Workload Info Discovery | ||||||
|
|
||||||
| Query live NuGet APIs to discover authoritative .NET SDK versions, workload sets, and dependency requirements. | ||||||
|
|
||||||
| ## Inputs | ||||||
|
|
||||||
| | Parameter | Required | Example | Notes | | ||||||
| |-----------|----------|---------|-------| | ||||||
| | dotnetVersion | yes | 9.0, 10.0 | Major.minor format | | ||||||
| | prerelease | no | true/false | Default false | | ||||||
| | workload | no | ios, android, maui | Alias or full id | | ||||||
|
|
||||||
| ## Workload Aliases | ||||||
|
|
||||||
| | Alias | Full ID | | ||||||
| |-------|---------| | ||||||
| | ios | microsoft.net.sdk.ios | | ||||||
| | android | microsoft.net.sdk.android | | ||||||
| | maccatalyst | microsoft.net.sdk.maccatalyst | | ||||||
| | macos | microsoft.net.sdk.macos | | ||||||
| | tvos | microsoft.net.sdk.tvos | | ||||||
| | maui | microsoft.net.sdk.maui | | ||||||
|
|
||||||
| --- | ||||||
|
|
||||||
| ## Discovery Process | ||||||
|
|
||||||
| ### Step 1: Get Latest SDK Version | ||||||
|
|
||||||
| ```bash | ||||||
| curl -s "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/releases-index.json" | \ | ||||||
| jq '.["releases-index"][] | select(.["channel-version"]=="{MAJOR}.0")' | ||||||
| ``` | ||||||
|
|
||||||
| Extract `latest-sdk` and derive SDK band: | ||||||
| - `10.0.102` → band `10.0.100` (hundreds digit) | ||||||
| - `10.0.205` → band `10.0.200` | ||||||
|
|
||||||
| ### Step 2: Find Workload Set Package | ||||||
|
|
||||||
| ```bash | ||||||
| curl -s "https://azuresearch-usnc.nuget.org/query?q=Microsoft.NET.Workloads.{MAJOR}.0&prerelease=false&semVerLevel=2.0.0" | ||||||
| ``` | ||||||
|
|
||||||
| Filter: Match `Microsoft.NET.Workloads.{major}.{band}`, exclude `.Msi.*`, pick highest version. | ||||||
|
|
||||||
| **Version conversion**: NuGet `10.102.0` → CLI `10.0.102` (swap middle segments) | ||||||
|
||||||
| **Version conversion**: NuGet `10.102.0` → CLI `10.0.102` (swap middle segments) | |
| **Version conversion**: NuGet `10.102.0` → CLI `10.0.102` (CLI = `parts[0] + ".0." + parts[1]`, i.e., NuGet `major.band.patch` → CLI `major.0.band`) |
Copilot
AI
Jan 29, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The curl command for downloading the workload set uses curly brace placeholders "{band}" and "{version}" which won't be expanded by the shell. These should be either: 1) replaced with actual example values, 2) changed to shell variable syntax ($band, $version), or 3) clearly marked as placeholders requiring manual substitution. The same issue appears in the Step 4 curl command.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The workload set package naming convention shows packages like "Microsoft.NET.Workloads.10.0.100" but the example shows searching with "Microsoft.NET.Workloads.10.0" (without the band). While this works for the search, it might confuse readers. Consider clarifying that the search term is intentionally broader to find all band variants, then filtered to the specific band.