# Main Features of the dotnet/skills Repository: Extending AI Assistants with .NET Expertise

> Explore the dotnet/skills repository's features. Extend AI assistants like Copilot with .NET development expertise using modular AI skills and agents. Discover reusable components for enhanced coding.

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

---

**The dotnet/skills repository provides a modular collection of reusable AI skills and agents that implement the Agent Skills standard to extend coding assistants like Copilot, Claude, and Codex with comprehensive .NET development capabilities.**

The dotnet/skills project is a curated catalog of plugins designed to equip AI coding assistants with deep, actionable knowledge of the .NET ecosystem. Hosted at `github.com/dotnet/skills`, this open-source repository implements the **Agent Skills** standard ([agentskills.io](https://agentskills.io)) and delivers specialized capabilities ranging from project scaffolding and MSBuild diagnostics to polyglot test generation and automated framework migration.

## Modular Plugin Architecture

The dotnet/skills repository organizes functionality into self-contained plugins located under the `plugins/` directory. Each plugin operates as an independent module containing its own metadata, documentation, and skill definitions.

### Plugin Structure

Every plugin follows a consistent structure to ensure discoverability and interoperability:

- **[`plugin.json`](https://github.com/dotnet/skills/blob/main/plugin.json)** – Declares plugin metadata including name, version, dependencies, and entry points for LSP servers or CLI commands.
- **[`README.md`](https://github.com/dotnet/skills/blob/main/README.md)** – Provides plugin-specific documentation and usage instructions.
- **`skills/`** – Contains subdirectories for each skill, with a [`SKILL.md`](https://github.com/dotnet/skills/blob/main/SKILL.md) file defining parameters, sample prompts, and underlying commands (e.g., `dotnet test`, `dotnet msbuild`).

This architecture allows the `dotnet` plugin to expose an LSP server for core C# development, while script-based plugins like `dotnet-test` provide CLI entry points for specialized tasks.

## Core Development Plugins

The repository includes specialized plugins covering the entire .NET development lifecycle. Each plugin is documented in its respective [`README.md`](https://github.com/dotnet/skills/blob/main/README.md) under the `plugins/` directory.

### Foundation and Testing

- **dotnet** – Provides core .NET and C# development capabilities including the `setup-local-sdk` skill and LSP server integration. Source: [[`plugins/dotnet/README.md`](https://github.com/dotnet/skills/blob/main/plugins/dotnet/README.md)](https://github.com/dotnet/skills/blob/main/plugins/dotnet/README.md).

- **dotnet-test** – Comprehensive testing support including execution, generation, analysis, and coverage. Features the `run-tests` skill and advanced agents like `code-testing-generator` and `test-quality-auditor`. Source: [[`plugins/dotnet-test/README.md`](https://github.com/dotnet/skills/blob/main/plugins/dotnet-test/README.md)](https://github.com/dotnet/skills/blob/main/plugins/dotnet-test/README.md).
- **dotnet-test-migration** – Facilitates framework migrations between MSTest, xUnit, and the Microsoft Testing Platform (MTP) via skills like `migrate-mstest-v1v2-to-v3`. Source: [[`plugins/dotnet-test-migration/README.md`](https://github.com/dotnet/skills/blob/main/plugins/dotnet-test-migration/README.md)](https://github.com/dotnet/skills/blob/main/plugins/dotnet-test-migration/README.md).

### Build and Package Management

- **dotnet-msbuild** – Offers build diagnostics, performance analysis, and modernization guidance through skills such as `target-authoring`, `property-patterns`, and `eval-performance`. Source: [[`plugins/dotnet-msbuild/README.md`](https://github.com/dotnet/skills/blob/main/plugins/dotnet-msbuild/README.md)](https://github.com/dotnet/skills/blob/main/plugins/dotnet-msbuild/README.md).
- **dotnet-nuget** – Handles package restoration, version conflict resolution, and Central Package Management (CPM) conversion via `convert-to-cpm` and `upgrade-dependencies`. Source: [[`plugins/dotnet-nuget/README.md`](https://github.com/dotnet/skills/blob/main/plugins/dotnet-nuget/README.md)](https://github.com/dotnet/skills/blob/main/plugins/dotnet-nuget/README.md).

### Migration and Diagnostics

- **dotnet-upgrade** – Automates project migration across .NET versions, including nullable reference type (NRT) migration and thread-abort removal using the `migrate-project` and `enable-nrt` skills. Source: [[`plugins/dotnet-upgrade/README.md`](https://github.com/dotnet/skills/blob/main/plugins/dotnet-upgrade/README.md)](https://github.com/dotnet/skills/blob/main/plugins/dotnet-upgrade/README.md).
- **dotnet-diag** – Specializes in performance tracing and crash symbolication, including the `apple-crash-symbolication` skill. Source: [[`plugins/dotnet-diag/README.md`](https://github.com/dotnet/skills/blob/main/plugins/dotnet-diag/README.md)](https://github.com/dotnet/skills/blob/main/plugins/dotnet-diag/README.md).

### Framework-Specific and AI Plugins

- **dotnet-aspnetcore**, **dotnet-blazor**, **dotnet-maui** – Provide specialized skills for middleware configuration, component authoring, JS interop, and mobile app scaffolding.
- **dotnet-ai** – Supports LLM-driven technology selection, RAG pipelines, and MCP integration through the `technology-selection` skill. Source: [[`plugins/dotnet-ai/README.md`](https://github.com/dotnet/skills/blob/main/plugins/dotnet-ai/README.md)](https://github.com/dotnet/skills/blob/main/plugins/dotnet-ai/README.md).
- **dotnet-template-engine** – Enables template discovery and authoring via `create-template` and `template-authoring` skills. Source: [[`plugins/dotnet-template-engine/README.md`](https://github.com/dotnet/skills/blob/main/plugins/dotnet-template-engine/README.md)](https://github.com/dotnet/skills/blob/main/plugins/dotnet-template-engine/README.md).

## Agents as Orchestrators

Complex workflows in dotnet/skills are implemented as **agents** that orchestrate multiple skills in sequence. Unlike individual skills that perform atomic tasks, agents manage end-to-end processes through defined pipelines.

The **`code-testing-generator`** agent exemplifies this approach by chaining together:

1. **Researcher** – Analyzes the target API.
2. **Planner** – Designs the test suite structure.
3. **Implementer** – Generates the test code.
4. **Builder** – Compiles and validates syntax.
5. **Tester** – Executes the test suite.
6. **Fixer** – Repairs compilation or logic errors.
7. **Linter** – Ensures code quality standards.

Agents are defined in `.github/agents/` or as top-level `.md` files and can be invoked directly via CLI commands like `/agents code-testing-generator`.

## Polyglot Support and Static Analysis

While dotnet/skills is .NET-centric, several capabilities are language-agnostic. The **test-analysis** extensions allow skills like `detect-static-dependencies` to analyze codebases in multiple languages, identifying hard-to-test static calls (e.g., `DateTime.Now`) and suggesting wrapper interfaces for improved testability.

## Quality Assurance and Monitoring

The repository maintains rigorous quality standards through automated validation and monitoring infrastructure.

### Skill Validator CI

Every push triggers the **[`skill-validator.yml`](https://github.com/dotnet/skills/blob/main/skill-validator.yml)** workflow, which executes the **Skill Validator** against integration test suites. The validator source resides at [`eng/skill-validator/src/SkillValidator.csproj`](https://github.com/dotnet/skills/blob/main/eng/skill-validator/src/SkillValidator.csproj), ensuring that each skill remains reliable and performant across updates.

### Performance Dashboard

A GitHub Pages dashboard at [[`eng/dashboard/dashboard.html`](https://github.com/dotnet/skills/blob/main/eng/dashboard/dashboard.html)](https://github.com/dotnet/skills/blob/main/eng/dashboard/dashboard.html) visualizes accuracy and efficiency trends for every skill, providing transparency into plugin performance over time.

## Practical Usage Examples

### Installing and Discovering Plugins

Add the marketplace and install specific plugins using the Copilot CLI or Claude Code interface:

```bash
/plugin marketplace add dotnet/skills
/plugin install dotnet-test@dotnet-agent-skills
/skills

```

### Executing Tests

Run tests with framework auto-detection (MSTest, xUnit, NUnit, TUnit):

```bash
/run-tests --project MyApp.sln --filter "Category=Smoke"

```

### Generating Polyglot Tests

Create tests for non-.NET languages using the orchestrator agent:

```bash
/code-testing-generator --path src/my_module.py --language python

```

### Upgrading .NET Projects

Migrate projects to newer framework versions:

```bash
/migrate-project --project MyApp.csproj --target-framework net9.0

```

### Detecting Static Dependencies

Identify testability issues in C# codebases:

```bash
/detect-static-dependencies --project MyLib.csproj

```

## Summary

- **Modular Architecture** – Self-contained plugins under `plugins/` with standardized [`plugin.json`](https://github.com/dotnet/skills/blob/main/plugin.json) metadata and [`SKILL.md`](https://github.com/dotnet/skills/blob/main/SKILL.md) definitions.
- **Comprehensive Coverage** – 14+ specialized plugins spanning core .NET, testing, MSBuild, NuGet, diagnostics, MAUI, Blazor, and AI integration.
- **Agent Orchestration** – Complex multi-step workflows (e.g., `code-testing-generator`) chain skills for research, implementation, building, and fixing.
- **Standards Compliance** – Implements the Agent Skills standard ([agentskills.io](https://agentskills.io)) for interoperability with Copilot, Claude, and Codex.
- **Quality Infrastructure** – Continuous validation via [`skill-validator.yml`](https://github.com/dotnet/skills/blob/main/skill-validator.yml) and the SkillValidator project, plus public dashboards tracking skill accuracy.
- **Polyglot Capabilities** – Test generation and analysis skills support multiple languages beyond .NET through configurable extensions.

## Frequently Asked Questions

### What is the Agent Skills standard?

The **Agent Skills** standard ([agentskills.io](https://agentskills.io)) is an open specification that defines how AI coding assistants discover, install, and invoke reusable capabilities. The dotnet/skills repository implements this standard, allowing skills to be packaged as plugins with declarative metadata in [`plugin.json`](https://github.com/dotnet/skills/blob/main/plugin.json) files and executed through standardized CLI or LSP interfaces.

### How do I install skills from the dotnet/skills repository?

Install plugins through your AI assistant's CLI using marketplace commands. First add the dotnet/skills marketplace with `/plugin marketplace add dotnet/skills`, then install specific plugins like `dotnet-test` using `/plugin install dotnet-test@dotnet-agent-skills`. Once installed, list available skills with `/skills` or invoke them directly via their slash commands (e.g., `/run-tests`).

### Are dotnet/skills capabilities limited to C# and .NET?

No, while the repository focuses on .NET expertise, many skills support **polyglot** scenarios. The `dotnet-test` plugin, for example, includes the `code-testing-generator` agent that can generate tests for Python, JavaScript, and other languages by loading per-language configurations from `test-analysis-extensions`. The `detect-static-dependencies` skill also analyzes codebases to identify testability issues regardless of language.

### How does the repository ensure skill reliability?

Quality is enforced through the **Skill Validator** (source at [`eng/skill-validator/src/SkillValidator.csproj`](https://github.com/dotnet/skills/blob/main/eng/skill-validator/src/SkillValidator.csproj)) and the [`skill-validator.yml`](https://github.com/dotnet/skills/blob/main/skill-validator.yml) CI workflow. Every push triggers integration tests against all skills, while the GitHub Pages dashboard at [[`eng/dashboard/dashboard.html`](https://github.com/dotnet/skills/blob/main/eng/dashboard/dashboard.html)](https://github.com/dotnet/skills/blob/main/eng/dashboard/dashboard.html) tracks historical accuracy and performance metrics to detect regressions.