# Common Use Cases for dotnet/skills: Automating .NET Development with Agent Skills

> Discover common use cases for dotnet/skills. Automate .NET SDK installation, framework migrations, test upgrades, and build diagnostics for AI-assisted development and boost your productivity.

- Repository: [.NET Platform/skills](https://github.com/dotnet/skills)
- Tags: getting-started
- Published: 2026-07-08

---

**The dotnet/skills repository provides Agent Skills that automate SDK installation, framework migrations, test upgrades, and build diagnostics for AI-assisted .NET development.**

The **dotnet/skills** repository is a curated collection of **Agent Skills** that extend coding agents—including Copilot, Claude Code, Cursor, and Codex CLI—with deep .NET expertise. Each plugin implements self-contained skills formatted as markdown specifications that describe tasks, inputs, and step-by-step workflows for AI assistants. By leveraging these skills, development teams can automate complex .NET workflows, enforce consistent best practices, and accelerate project modernization without context switching.

## Local .NET SDK Installation and Management

Managing local .NET SDK installations represents a foundational use case for the repository. The **`setup-local-sdk`** skill automates downloading specific .NET versions into project-local `.dotnet/` folders, configuring [`global.json`](https://github.com/dotnet/skills/blob/main/global.json) with the `paths` feature, and updating `.gitignore` to exclude the local runtime.

This skill resides in [`plugins/dotnet/skills/setup-local-sdk/SKILL.md`](https://github.com/dotnet/skills/blob/main/plugins/dotnet/skills/setup-local-sdk/SKILL.md). It guides agents through executing the official `dotnet-install` script with precise channel and quality flags, ensuring reproducible build environments across different machines.

```bash

# Add the marketplace and install the skill

/plugin marketplace add dotnet/skills
/plugin install setup-local-sdk@dotnet-agent-skills

# Verify installation

/skills

```

When invoked, the skill executes a workflow that downloads the install script, runs it with `--channel` and `--quality` flags, captures the installed version via `./.dotnet/dotnet --version`, and generates a [`global.json`](https://github.com/dotnet/skills/blob/main/global.json) file that prioritizes the local SDK.

## Framework and Language Modernization

Migrating legacy codebases to modern .NET standards is a critical use case supported by specialized upgrade skills.

### Nullable Reference Type Migration

The **`migrate-nullable-references`** skill in [`plugins/dotnet-upgrade/skills/migrate-nullable-references/SKILL.md`](https://github.com/dotnet/skills/blob/main/plugins/dotnet-upgrade/skills/migrate-nullable-references/SKILL.md) detects existing project configurations and automatically adds `#nullable enable` directives where missing. It executes `dotnet format` with nullable-specific flags to safely transition codebases to null-safe paradigms without breaking existing functionality.

### Test Framework Upgrades

For testing infrastructure modernization, the **`migrate-xunit-to-xunit-v3`** skill in [`plugins/dotnet-test-migration/skills/migrate-xunit-to-xunit-v3/SKILL.md`](https://github.com/dotnet/skills/blob/main/plugins/dotnet-test-migration/skills/migrate-xunit-to-xunit-v3/SKILL.md) handles complex transitions between testing platforms. It parses project files, updates NuGet references from xUnit v2 to v3, rewrites test attributes, and validates the new Microsoft.Testing.Platform integration.

```bash

# Run the migration skill

dotnet skill migrate-nullable-references --project MyApp.csproj

```

## Build System Diagnostics and Package Management

The repository provides deep integration with MSBuild and NuGet for troubleshooting and modernization.

### MSBuild Issue Resolution

The **`resolve-project-references`** skill in [`plugins/dotnet-msbuild/skills/resolve-project-references/SKILL.md`](https://github.com/dotnet/skills/blob/main/plugins/dotnet-msbuild/skills/resolve-project-references/SKILL.md) executes `dotnet msbuild` with diagnostic JSON output flags to identify failing targets and circular project-reference loops. It analyzes the build graph and suggests property-pattern improvements or local MSBuild server configurations for performance testing.

### Central Package Management Conversion

The **`convert-to-cpm`** skill in [`plugins/dotnet-nuget/skills/convert-to-cpm/SKILL.md`](https://github.com/dotnet/skills/blob/main/plugins/dotnet-nuget/skills/convert-to-cpm/SKILL.md) automates the transition to Central Package Management (CPM). It generates `Directory.Packages.props` at the repository root, migrates version numbers from individual `<PackageReference>` elements in project files, and runs `dotnet restore` to verify the centralized layout works correctly.

```bash

# Convert a project to CPM

dotnet skill convert-to-cpm --project MyLib.csproj

```

## Web, Mobile, and Cloud Development

Specialized skills target modern application development frameworks with scaffolding and configuration automation.

### ASP.NET Core and Blazor

The **`minimal-api-file-upload`** skill in [`plugins/dotnet-aspnetcore/skills/minimal-api-file-upload/SKILL.md`](https://github.com/dotnet/skills/blob/main/plugins/dotnet-aspnetcore/skills/minimal-api-file-upload/SKILL.md) scaffolds minimal API endpoints with file handling capabilities. It edits [`Program.cs`](https://github.com/dotnet/skills/blob/main/Program.cs), adds required package references like `Microsoft.AspNetCore.Http.Features`, and configures OpenTelemetry instrumentation when requested by the developer.

### .NET MAUI Development

For cross-platform mobile developers, the **`maui-theming`** skill in [`plugins/dotnet-maui/skills/maui-theming/SKILL.md`](https://github.com/dotnet/skills/blob/main/plugins/dotnet-maui/skills/maui-theming/SKILL.md) manages XAML resource dictionaries, configures Shell navigation patterns, and implements safe-area handling for iOS and Android platforms. It ensures platform-specific assets are present in the correct locations while updating [`MauiProgram.cs`](https://github.com/dotnet/skills/blob/main/MauiProgram.cs) to register theme resources.

## Specialized Engineering and Research

The repository includes skills for niche but critical development tasks and experimental scenarios.

### Template Engine Operations

The **`template-validation`** skill in [`plugins/dotnet-template-engine/skills/template-validation/SKILL.md`](https://github.com/dotnet/skills/blob/main/plugins/dotnet-template-engine/skills/template-validation/SKILL.md) parses `.template.config` folders, validates template definitions against naming collision rules, and automates `dotnet new --install` workflows for teams authoring custom project templates.

### AI-Assisted Technology Selection

Located in `plugins/dotnet-ai/technology-selection/`, these skills analyze project requirements to recommend appropriate machine learning approaches. They distinguish between LLM implementations, vector search solutions, or traditional ML.NET classifiers for tabular data, scaffolding starter code based on the specific use case.

### Experimental Research

The **`exp-test-maintainability`** skill in [`plugins/dotnet-experimental/skills/exp-test-maintainability/SKILL.md`](https://github.com/dotnet/skills/blob/main/plugins/dotnet-experimental/skills/exp-test-maintainability/SKILL.md) executes bespoke benchmarks to measure test code quality, SIMD vectorization opportunities, and mock usage patterns, producing JSON reports with actionable refactoring suggestions.

## Repository Structure and Validation

All skills in the repository follow the **Agent Skills** standard (agentskills.io), making them consumable by any compliant agent. The repository maintains quality through a dedicated validation system.

Key architectural files include:
- **`plugins/<plugin>/plugin.json`** – Declares plugin identifiers, versions, and entry points for agent discovery
- **`plugins/<plugin>/skills/<skill>/SKILL.md`** – Contains the canonical skill definition with structured inputs, workflows, and edge-case handling
- **[`eng/skill-validator/src/Program.cs`](https://github.com/dotnet/skills/blob/main/eng/skill-validator/src/Program.cs)** – A static analysis binary that checks skill syntax, detects missing required fields, and ensures runtime compatibility across different agent platforms

The validator guarantees that skills like `setup-local-sdk` and `convert-to-cpm` remain well-formed and produce consistent, reproducible behaviors regardless of which AI assistant executes them.

## Summary

- The **dotnet/skills** repository provides ready-to-use Agent Skills for automating complex .NET development tasks
- Primary use cases include **local SDK installation**, **framework migration**, **test framework upgrades**, and **MSBuild diagnostics**
- Skills cover **Central Package Management conversion**, **ASP.NET Core scaffolding**, and **MAUI theming**
- All skills follow the Agent Skills standard and are validated by the `eng/skill-validator` tool located in [`eng/skill-validator/src/Program.cs`](https://github.com/dotnet/skills/blob/main/eng/skill-validator/src/Program.cs)
- Developers invoke skills through natural language within Copilot, Claude Code, or compatible agents, or via CLI commands like `dotnet skill convert-to-cpm`

## Frequently Asked Questions

### What is the dotnet/skills repository used for?

The **dotnet/skills** repository provides curated Agent Skills that teach AI coding assistants how to perform complex .NET development tasks. These skills automate workflows like installing specific .NET SDK versions into local directories, migrating projects to nullable reference types, and resolving MSBuild errors through standardized markdown specifications that any compliant agent can parse and execute.

### How do I install and use a skill from dotnet/skills?

Install skills through your agent's plugin marketplace using commands like `/plugin install setup-local-sdk@dotnet-agent-skills` after adding the marketplace with `/plugin marketplace add dotnet/skills`. Once installed, invoke skills via natural language requests such as "Migrate this project to xUnit v3" or through explicit CLI patterns like `dotnet skill migrate-nullable-references --project MyApp.csproj`.

### What types of .NET projects benefit most from these skills?

Projects undergoing **modernization** (upgrading from legacy .NET Framework or early .NET Core versions), **microservices** requiring consistent SDK versions via local installation, and **enterprise codebases** adopting Central Package Management see the most immediate value. Mobile developers using MAUI and teams implementing complex testing strategies with modern xUnit or MSTest platforms also benefit significantly from the automated migration paths and validation.

### How are the skills in dotnet/skills validated for correctness?

The repository includes the **skill-validator** tool located in [`eng/skill-validator/src/Program.cs`](https://github.com/dotnet/skills/blob/main/eng/skill-validator/src/Program.cs). This utility statically analyzes [`SKILL.md`](https://github.com/dotnet/skills/blob/main/SKILL.md) files and [`plugin.json`](https://github.com/dotnet/skills/blob/main/plugin.json) manifests to ensure they contain required fields, valid syntax, and compatible structures before deployment, guaranteeing reliable behavior across different AI agent platforms including GitHub Copilot, Claude Code, and Cursor.