# .NET Skills for VS Code Chat Plugins: Complete Guide to the dotnet/skills Repository

> Explore the dotnet/skills repository to discover nine .NET skill categories for VS Code Chat plugins, including SDK management, automated upgrades, and AI-assisted workflows. Enhance your development experience.

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

---

**The dotnet/skills repository ships nine plugin categories—including SDK management, automated upgrades, test generation, MAUI diagnostics, and AI-assisted workflows—that integrate directly with VS Code Chat through GitHub Copilot.**

The **dotnet/skills** repository provides a modular ecosystem of skill plugins designed specifically for the VS Code Chat extension. Each plugin resides under the `plugins/` directory and exposes capabilities through **SKILL.md** definitions that specify required inputs, execution logic, and VS Code-specific integration points.

## Core Development and SDK Management

### .NET SDK Setup and Acquisition

The **plugins/dotnet** plugin handles fundamental SDK operations. The `setup-local-sdk` skill enables VS Code to discover and download specific .NET SDK versions, pinning the environment for consistent builds. According to the source code in [`plugins/dotnet/skills/setup-local-sdk/SKILL.md`](https://github.com/dotnet/skills/blob/main/plugins/dotnet/skills/setup-local-sdk/SKILL.md), this skill interacts with the `dotnet.acquire` API to install exact versions required by your workspace.

### Automated Project Upgrades

The **plugins/dotnet-upgrade** plugin streamlines migration across .NET versions. It contains specialized skills for transitioning from .NET 8→9, 9→10, and 10→11, including nullable-reference type migration. The `migrate-dotnet9-to-dotnet10` skill references VS Code-specific settings in [`plugins/dotnet-upgrade/skills/migrate-dotnet9-to-dotnet10/references/containers-interop-dotnet9to10.md`](https://github.com/dotnet/skills/blob/main/plugins/dotnet-upgrade/skills/migrate-dotnet9-to-dotnet10/references/containers-interop-dotnet9to10.md), requiring explicit version pinning for VS Code users through the `dotnet.acquire` configuration.

## Testing and Quality Assurance

### Test Generation and Execution

The **plugins/dotnet-test** plugin provides comprehensive testing capabilities through the **code-testing-agent** skill. This agent explicitly targets "VS Code with GitHub Copilot extension" environments and supports MSTest, XUnit, and MTP (Microsoft Testing Platform) hot-reload scenarios. As documented in [`plugins/dotnet-test/skills/code-testing-agent/SKILL.md`](https://github.com/dotnet/skills/blob/main/plugins/dotnet-test/skills/code-testing-agent/SKILL.md), enabling nested delegation requires the `chat.subagents.allowInvocationsFromSubagents` flag in VS Code settings.

### Test Framework Migration

The **plugins/dotnet-test-migration** plugin facilitates converting between testing frameworks—XUnit to XUnit v3, XUnit to MSTest, and VSTest to MTP. The `migrate-vstest-to-mtp` skill includes validation steps that verify the VS Code Test Explorer correctly discovers migrated tests, ensuring IDE integration remains intact throughout the transition.

## Platform-Specific Development

### MAUI Diagnostics and Configuration

The **plugins/dotnet-maui** plugin includes the **dotnet-maui-doctor** skill for environment validation. This skill performs IDE-specific checks for VS Code or Visual Studio and provides configuration snippets for [`.vscode/settings.json`](https://github.com/dotnet/skills/blob/main/.vscode/settings.json). The source in [`plugins/dotnet-maui/skills/dotnet-maui-doctor/SKILL.md`](https://github.com/dotnet/skills/blob/main/plugins/dotnet-maui/skills/dotnet-maui-doctor/SKILL.md) handles safe-area calculations, shell navigation, and dependency injection setup for cross-platform applications.

### ASP.NET Core and Blazor Support

The **plugins/dotnet-aspnetcore** and **plugins/dotnet-blazor** plugins offer specialized skills for web development. The **dotnet-webapi** skill supports minimal API file uploads and JS interop patterns, with capabilities defined in [`plugins/dotnet-aspnetcore/skills/dotnet-webapi/SKILL.md`](https://github.com/dotnet/skills/blob/main/plugins/dotnet-aspnetcore/skills/dotnet-webapi/SKILL.md). These skills leverage the VS Code Chat interface to scaffold endpoints and validate routing configurations.

## Build and Advanced Workflows

### MSBuild Diagnostics

The **plugins/dotnet-msbuild** plugin exposes the **msbuild-agent** for build-performance analysis and binlog generation. Located at [`plugins/dotnet-msbuild/agents/msbuild.agent.md`](https://github.com/dotnet/skills/blob/main/plugins/dotnet-msbuild/agents/msbuild.agent.md), this agent auto-detects the host IDE and can diagnose complex build failures directly from chat commands. It supports target authoring, project-reference resolution, and property pattern analysis.

### AI-Assisted Development

The **plugins/dotnet-ai** plugin contains the **MCP C# debug** skill, which provides complete VS Code configuration guidance for Model Context Protocol servers. The skill in [`plugins/dotnet-ai/skills/mcp-csharp-debug/SKILL.md`](https://github.com/dotnet/skills/blob/main/plugins/dotnet-ai/skills/mcp-csharp-debug/SKILL.md) includes templates for [`.vscode/mcp.json`](https://github.com/dotnet/skills/blob/main/.vscode/mcp.json) and [`launch.json`](https://github.com/dotnet/skills/blob/main/launch.json), enabling debugging of C# MCP implementations within the VS Code environment.

### Advanced Capabilities

The **plugins/dotnet-advanced** plugin handles specialized scenarios including trusted NuGet publishing, P/Invoke declarations, and C# scripting. While these skills lack VS Code-specific markup, they integrate seamlessly through the standard chat plugin interface as documented in [`plugins/dotnet-advanced/skills/nuget-trusted-publishing/SKILL.md`](https://github.com/dotnet/skills/blob/main/plugins/dotnet-advanced/skills/nuget-trusted-publishing/SKILL.md).

## How VS Code Discovers .NET Skills

VS Code Chat loads these capabilities through a [`skills.json`](https://github.com/dotnet/skills/blob/main/skills.json) manifest generated by the repository's CI pipeline. This manifest lists each skill's identifier, description, required inputs, and host compatibility. When users enter requests matching a skill's intent, the extension invokes the underlying .NET binary or script and streams results back into the chat UI.

## Enabling .NET Skills in VS Code

Configure your workspace to access the full skill library by modifying [`.vscode/settings.json`](https://github.com/dotnet/skills/blob/main/.vscode/settings.json):

```json
{
  "chat.plugins.enabled": true,
  "chat.plugins.marketplaces": ["dotnet/skills"],
  "chat.subagents.allowInvocationsFromSubagents": true,
  "dotnet.acquire.sdkVersion": "8.0.400"
}

```

With this configuration, invoke skills directly from the VS Code Chat input:

```text
> dotnet upgrade project /path/to/csproj
> dotnet test generate MyProject.Tests
> dotnet maui doctor
> dotnet ai select-technology

```

## Summary

- **Nine plugin categories** cover SDK management, upgrades, testing, MAUI, ASP.NET Core, MSBuild, AI workflows, and advanced scenarios.
- **SKILL.md files** in each plugin directory define capabilities, inputs, and VS Code integration points.
- **Nested sub-agent support** requires `chat.subagents.allowInvocationsFromSubagents` for testing and complex workflows.
- **IDE auto-detection** allows skills to adapt behavior for VS Code versus Visual Studio.
- **skills.json manifest** generated by CI enables automatic discovery by VS Code Chat.

## Frequently Asked Questions

### How do I enable nested sub-agents for .NET testing skills in VS Code?

Set `chat.subagents.allowInvocationsFromSubagents` to `true` in [`.vscode/settings.json`](https://github.com/dotnet/skills/blob/main/.vscode/settings.json). The **code-testing-agent** skill in [`plugins/dotnet-test/skills/code-testing-agent/SKILL.md`](https://github.com/dotnet/skills/blob/main/plugins/dotnet-test/skills/code-testing-agent/SKILL.md) explicitly requires this flag to delegate tasks to helper agents for test generation and execution.

### What configuration is required to use the .NET SDK setup skill in VS Code?

Add `dotnet.acquire.sdkVersion` to your [`.vscode/settings.json`](https://github.com/dotnet/skills/blob/main/.vscode/settings.json) to pin a specific SDK version. The **setup-local-sdk** skill in [`plugins/dotnet/skills/setup-local-sdk/SKILL.md`](https://github.com/dotnet/skills/blob/main/plugins/dotnet/skills/setup-local-sdk/SKILL.md) uses this value when invoking the `dotnet.acquire` API to ensure VS Code installs the exact version required by your project.

### Which .NET skills support MAUI development in VS Code Chat?

The **dotnet-maui-doctor** skill provides comprehensive MAUI support, including environment checks and VS Code configuration snippets. Located in [`plugins/dotnet-maui/skills/dotnet-maui-doctor/SKILL.md`](https://github.com/dotnet/skills/blob/main/plugins/dotnet-maui/skills/dotnet-maui-doctor/SKILL.md), it validates safe-area settings, shell navigation, and dependency injection for cross-platform projects.

### How does VS Code Chat discover available .NET skills from the repository?

VS Code Chat loads a [`skills.json`](https://github.com/dotnet/skills/blob/main/skills.json) manifest file generated by the repository's continuous integration pipeline. This manifest indexes all **SKILL.md** definitions under `plugins/`, mapping skill identifiers to their execution handlers and enabling real-time invocation through the Copilot Chat interface.