Skip to content

managedcode/dotnet-skills

Repository files navigation

dotnet-skills

NuGet License: MIT Skills .NET

Stop explaining .NET to your AI. Start building.

We've all been there: asking Claude to use Entity Framework, only to get EF6 patterns in a .NET 8 project. Explaining to Copilot that Blazor Server and Blazor WebAssembly aren't the same thing. Watching Codex generate Startup.cs for a Minimal API project.

This catalog fixes that. 56 skills covering the entire .NET ecosystem—from ASP.NET Core to Orleans, from MAUI to Semantic Kernel. Install them once, and your AI agent actually knows modern .NET.

Why This Matters

  • No more outdated patterns. Skills are maintained by the community and track official Microsoft documentation.
  • Works everywhere. Same skills for Claude, Copilot, Gemini, and Codex.
  • Community-driven. Missing a skill for your favorite library? Add it and help everyone.

Your favorite .NET library deserves a skill. If you maintain an open-source project or just love a framework that's missing, contribute it. Let's make AI agents actually useful for .NET developers.

Quick Start

dotnet tool install --global dotnet-skills

dotnet skills list                          # show all skills
dotnet skills install aspire orleans        # install skills
dotnet skills install blazor --agent claude # install for specific agent

Commands

Command Description
dotnet skills list List all available skills
dotnet skills install <skill...> Install one or more skills
dotnet skills sync Download latest catalog
dotnet skills where Show install paths

Use --agent to target a specific agent, --scope to choose global or project install.

Catalog releases are published automatically from main when skills/ or catalog-generation inputs change. Automatic catalog versions use a numeric calendar-plus-run format such as 2026.3.15.42. The tool reads the newest non-draft catalog-v* release by default, and --catalog-version is only for intentional pinning.

Agent Support

Agent Global Project
Claude ~/.claude/agents/ .claude/agents/
Copilot ~/.copilot/skills/ .github/skills/
Gemini ~/.gemini/skills/ .gemini/skills/
Codex ~/.codex/skills/ .codex/skills/

When --agent is omitted, the tool auto-detects your project layout.

Skill Layout

skills/<skill-name>/
├── SKILL.md          # required
├── scripts/          # optional
├── references/       # optional
└── assets/           # optional

Catalog

This catalog currently contains 62 skills.

Core

Skill Version Description Folder
dotnet 1.0.0 Primary router skill for broad .NET work. Classify the repo by app model and cross-cutting concern first, then switch to the narrowest matching .NET skill instead of staying at a generic layer. skills/dotnet/
dotnet‑architecture 1.0.0 Design or review .NET solution architecture across modular monoliths, clean architecture, vertical slices, microservices, DDD, CQRS, and cloud-native boundaries without over-engineering. skills/dotnet-architecture/
dotnet‑code‑review 1.0.0 Review .NET changes for bugs, regressions, architectural drift, missing tests, incorrect async or disposal behavior, and platform-specific pitfalls before you approve or merge them. skills/dotnet-code-review/
dotnet‑managedcode‑communication 1.0.0 Use ManagedCode.Communication when a .NET application needs explicit result objects, structured errors, and predictable service or API boundaries instead of exception-driven control flow. skills/dotnet-managedcode-communication/
dotnet‑managedcode‑mimetypes 1.0.0 Use ManagedCode.MimeTypes when a .NET application needs consistent MIME type detection, extension mapping, and content-type decisions for uploads, downloads, or HTTP responses. skills/dotnet-managedcode-mimetypes/
dotnet‑microsoft‑extensions 1.0.0 Use the Microsoft.Extensions stack correctly across Generic Host, dependency injection, configuration, logging, options, HttpClientFactory, and other shared infrastructure patterns. skills/dotnet-microsoft-extensions/
dotnet‑project‑setup 1.0.0 Create or reorganize .NET solutions with clean project boundaries, repeatable SDK settings, and a maintainable baseline for libraries, apps, tests, CI, and local development. skills/dotnet-project-setup/

Web

Skill Version Description Folder
dotnet‑aspnet‑core 1.0.0 Build, debug, modernize, or review ASP.NET Core applications with correct hosting, middleware, security, configuration, logging, and deployment patterns on current .NET. skills/dotnet-aspnet-core/
dotnet‑blazor 1.0.0 Build and review Blazor applications across server, WebAssembly, web app, and hybrid scenarios with correct component design, state flow, rendering, and hosting choices. skills/dotnet-blazor/
dotnet‑grpc 1.0.0 Build or review gRPC services and clients in .NET with correct contract-first design, streaming behavior, transport assumptions, and backend service integration. skills/dotnet-grpc/
dotnet‑minimal‑apis 1.0.0 Design and implement Minimal APIs in ASP.NET Core using handler-first endpoints, route groups, filters, and lightweight composition suited to modern .NET services. skills/dotnet-minimal-apis/
dotnet‑signalr 1.0.0 Implement or review SignalR hubs, streaming, reconnection, transport, and real-time delivery patterns in ASP.NET Core applications. skills/dotnet-signalr/
dotnet‑web‑api 1.0.0 Build or maintain controller-based ASP.NET Core APIs when the project needs controller conventions, advanced model binding, validation extensions, OData, JsonPatch, or existing API patterns. skills/dotnet-web-api/

Cloud

Skill Version Description Folder
dotnet‑aspire 1.0.0 Use .NET Aspire to orchestrate distributed .NET applications locally with service discovery, telemetry, dashboards, and cloud-ready composition for cloud-native development. skills/dotnet-aspire/
dotnet‑azure‑functions 1.0.0 Build, review, or migrate Azure Functions in .NET with correct execution model, isolated worker setup, bindings, DI, and Durable Functions patterns. skills/dotnet-azure-functions/

Distributed

Skill Version Description Folder
dotnet‑managedcode‑orleans‑graph 1.0.0 Use ManagedCode.Orleans.Graph when a distributed .NET application models graph-oriented relationships or traversal logic on top of Orleans grains and graph-aware integration patterns. skills/dotnet-managedcode-orleans-graph/
dotnet‑managedcode‑orleans‑signalr 1.0.0 Use ManagedCode.Orleans.SignalR when a distributed .NET application needs Orleans-based coordination of SignalR real-time messaging, hub delivery, and grain-driven push flows. skills/dotnet-managedcode-orleans-signalr/
dotnet‑orleans 1.0.0 Build or review distributed .NET applications with Orleans grains, silos, streams, persistence, versioning, and cloud-native hosting patterns. skills/dotnet-orleans/
dotnet‑worker‑services 1.0.0 Build long-running .NET background services with `BackgroundService`, Generic Host, graceful shutdown, configuration, logging, and deployment patterns suited to workers and daemons. skills/dotnet-worker-services/

Desktop

Skill Version Description Folder
dotnet‑winforms 1.0.0 Build, maintain, or modernize Windows Forms applications with practical guidance on designer-driven UI, event handling, data binding, and migration to modern .NET. skills/dotnet-winforms/
dotnet‑winui 1.0.0 Build or review WinUI 3 applications with the Windows App SDK, modern Windows desktop patterns, packaging decisions, and interop boundaries with other .NET stacks. skills/dotnet-winui/
dotnet‑wpf 1.0.0 Build and modernize WPF applications on .NET with correct XAML, data binding, commands, threading, styling, and Windows desktop migration decisions. skills/dotnet-wpf/

Cross-Platform UI

Skill Version Description Folder
dotnet‑maui 1.0.0 Build, review, or migrate .NET MAUI applications across Android, iOS, macOS, and Windows with correct cross-platform UI, platform integration, and native packaging assumptions. skills/dotnet-maui/
dotnet‑mvvm 1.0.0 Implement the Model-View-ViewModel pattern in .NET applications with proper separation of concerns, data binding, commands, and testable ViewModels using MVVM Toolkit. skills/dotnet-mvvm/
dotnet‑uno‑platform 1.0.0 Build cross-platform .NET applications with Uno Platform targeting WebAssembly, iOS, Android, macOS, Linux, and Windows from a single XAML/C# codebase. skills/dotnet-uno-platform/

Data

Skill Version Description Folder
dotnet‑entity‑framework‑core 1.0.0 Design, tune, or review EF Core data access with proper modeling, migrations, query translation, performance, and lifetime management for modern .NET applications. skills/dotnet-entity-framework-core/
dotnet‑entity‑framework6 1.0.0 Maintain or migrate EF6-based applications with realistic guidance on what to keep, what to modernize, and when EF Core is or is not the right next step. skills/dotnet-entity-framework6/
dotnet‑managedcode‑markitdown 1.0.0 Use ManagedCode.MarkItDown when a .NET application needs deterministic document-to-Markdown conversion for ingestion, indexing, summarization, or content-processing workflows. skills/dotnet-managedcode-markitdown/
dotnet‑managedcode‑storage 1.0.0 Use ManagedCode.Storage when a .NET application needs a provider-agnostic storage abstraction with explicit configuration, container selection, upload and download flows, and backend-specific integration kept behind one library contract. skills/dotnet-managedcode-storage/

AI

Skill Version Description Folder
dotnet‑mcp 1.0.0 Implement Model Context Protocol (MCP) servers and clients in .NET to enable secure, standardized communication between LLM applications and external tools or data sources. skills/dotnet-mcp/
dotnet‑microsoft‑agent‑framework 1.0.0 Build agentic .NET applications with Microsoft Agent Framework using modern agent orchestration, provider abstractions, telemetry, and enterprise integration patterns. skills/dotnet-microsoft-agent-framework/
dotnet‑microsoft‑extensions‑ai 1.0.0 Use Microsoft.Extensions.AI abstractions such as `IChatClient` and embeddings cleanly in .NET applications, libraries, and provider integrations. skills/dotnet-microsoft-extensions-ai/
dotnet‑mixed‑reality 1.0.0 Work on C# and .NET-adjacent mixed-reality solutions around HoloLens, MRTK, OpenXR, Azure services, and integration boundaries where .NET participates in the stack. skills/dotnet-mixed-reality/
dotnet‑mlnet 1.0.0 Use ML.NET to train, evaluate, or integrate machine-learning models into .NET applications with realistic data preparation, inference, and deployment expectations. skills/dotnet-mlnet/
dotnet‑semantic‑kernel 1.0.0 Build AI-enabled .NET applications with Semantic Kernel using services, plugins, prompts, and function-calling patterns that remain testable and maintainable. skills/dotnet-semantic-kernel/

Legacy

Skill Version Description Folder
dotnet‑legacy‑aspnet 1.0.0 Maintain classic ASP.NET applications on .NET Framework, including Web Forms, older MVC, and legacy hosting patterns, while planning realistic modernization boundaries. skills/dotnet-legacy-aspnet/
dotnet‑wcf 1.0.0 Work on WCF services, clients, bindings, contracts, and migration decisions for SOAP and multi-transport service-oriented systems on .NET Framework or compatible stacks. skills/dotnet-wcf/
dotnet‑workflow‑foundation 1.0.0 Maintain or assess Workflow Foundation-based solutions on .NET Framework, especially where long-lived process logic or legacy designer artifacts still matter. skills/dotnet-workflow-foundation/

Testing

Skill Version Description Folder
dotnet‑coverlet 1.0.0 Use the open-source free `coverlet` toolchain for .NET code coverage. Use when a repo needs line and branch coverage, collector versus MSBuild driver selection, or CI-safe coverage commands. skills/dotnet-coverlet/
dotnet‑mstest 1.0.0 Write, run, or repair .NET tests that use MSTest. Use when a repo uses `MSTest.Sdk`, `MSTest`, `[TestClass]`, `[TestMethod]`, `DataRow`, or Microsoft.Testing.Platform-based MSTest execution. skills/dotnet-mstest/
dotnet‑nunit 1.0.0 Write, run, or repair .NET tests that use NUnit. Use when a repo uses `NUnit`, `[Test]`, `[TestCase]`, `[TestFixture]`, or NUnit3TestAdapter for VSTest or Microsoft.Testing.Platform execution. skills/dotnet-nunit/
dotnet‑reportgenerator 1.0.0 Use the open-source free `ReportGenerator` tool for turning .NET coverage outputs into HTML, Markdown, Cobertura, badges, and merged reports. Use when raw coverage files are not readable enough for CI or human review. skills/dotnet-reportgenerator/
dotnet‑stryker 1.0.0 Use the open-source free `Stryker.NET` mutation testing tool for .NET. Use when a repo needs to measure whether tests actually catch faults, especially in critical libraries or domains. skills/dotnet-stryker/
dotnet‑tunit 1.0.0 Write, run, or repair .NET tests that use TUnit. Use when a repo uses `TUnit`, `[Test]`, `[Arguments]`, source-generated test projects, or Microsoft.Testing.Platform-based execution. skills/dotnet-tunit/
dotnet‑xunit 1.0.0 Write, run, or repair .NET tests that use xUnit. Use when a repo uses `xunit`, `xunit.v3`, `[Fact]`, `[Theory]`, or `xunit.runner.visualstudio`, and you need the right CLI, package, and runner guidance for xUnit on VSTest or Microsoft.Testing.Platform. skills/dotnet-xunit/

Code Quality

Skill Version Description Folder
dotnet‑analyzer‑config 1.0.0 Use a repo-root `.editorconfig` to configure free .NET analyzer and style rules. Use when a .NET repo needs rule severity, code-style options, section layout, or analyzer ownership made explicit. Nested `.editorconfig` files are allowed when they serve a clear subtree-specific purpose. skills/dotnet-analyzer-config/
dotnet‑code‑analysis 1.0.0 Use the free built-in .NET SDK analyzers and analysis levels. Use when a .NET repo needs first-party code analysis, `EnableNETAnalyzers`, `AnalysisLevel`, or warning policy wired into build and CI. skills/dotnet-code-analysis/
dotnet‑csharpier 1.0.0 Use the open-source free `CSharpier` formatter for C# and XML. Use when a .NET repo intentionally wants one opinionated formatter instead of a highly configurable `dotnet format`-driven style model. skills/dotnet-csharpier/
dotnet‑format 1.0.0 Use the free first-party `dotnet format` CLI for .NET formatting and analyzer fixes. Use when a .NET repo needs formatting commands, `--verify-no-changes` CI checks, or `.editorconfig`-driven code style enforcement. skills/dotnet-format/
dotnet‑meziantou‑analyzer 1.0.0 Use the open-source free `Meziantou.Analyzer` package for design, usage, security, performance, and style rules in .NET. Use when a repo wants broader analyzer coverage with a single NuGet package. skills/dotnet-meziantou-analyzer/
dotnet‑modern‑csharp 1.0.0 Write modern, version-aware C# for .NET repositories. Use when choosing language features across C# versions, especially C# 13 and C# 14, while staying compatible with the repo's target framework and `LangVersion`. skills/dotnet-modern-csharp/
dotnet‑quality‑ci 1.0.0 Set up or refine open-source .NET code-quality gates for CI: formatting, `.editorconfig`, SDK analyzers, third-party analyzers, coverage, mutation testing, architecture tests, and security scanning. Use when a .NET repo needs an explicit quality stack in `AGENTS.md`, docs, or pipeline YAML. skills/dotnet-quality-ci/
dotnet‑resharper‑clt 1.0.0 Use the free official JetBrains ReSharper Command Line Tools for .NET repositories. Use when a repo wants powerful `jb inspectcode` inspections, `jb cleanupcode` cleanup profiles, solution-level `.DotSettings` enforcement, or a stronger CLI quality gate for C# than the default SDK analyzers alone. skills/dotnet-resharper-clt/
dotnet‑roslynator 1.0.0 Use the open-source free `Roslynator` analyzer packages and optional CLI for .NET. Use when a repo wants broad C# static analysis, auto-fix flows, dead-code detection, optional CLI checks, or extra rules beyond the SDK analyzers. skills/dotnet-roslynator/
dotnet‑stylecop‑analyzers 1.0.0 Use the open-source free `StyleCop.Analyzers` package for naming, layout, documentation, and style rules in .NET projects. Use when a repo wants stricter style conventions than the SDK analyzers alone provide. skills/dotnet-stylecop-analyzers/

Architecture

Skill Version Description Folder
dotnet‑archunitnet 1.0.0 Use the open-source free `ArchUnitNET` library for architecture rules in .NET tests. Use when a repo needs richer architecture assertions than lightweight fluent rule libraries usually provide. skills/dotnet-archunitnet/
dotnet‑netarchtest 1.0.0 Use the open-source free `NetArchTest.Rules` library for architecture rules in .NET unit tests. Use when a repo wants lightweight, fluent architecture assertions for namespaces, dependencies, or layering. skills/dotnet-netarchtest/

Metrics

Skill Version Description Folder
dotnet‑cloc 1.0.0 Use the open-source free `cloc` tool for line-count, language-mix, and diff statistics in .NET repositories. Use when a repo needs C# and solution footprint metrics, branch-to-branch LOC comparison, or repeatable code-size reporting in local workflows and CI. skills/dotnet-cloc/
dotnet‑codeql 1.0.0 Use the open-source CodeQL ecosystem for .NET security analysis. Use when a repo needs CodeQL query packs, CLI-based analysis on open source codebases, or GitHub Action setup with explicit licensing caveats for private repositories. skills/dotnet-codeql/
dotnet‑complexity 1.0.0 Use free built-in .NET maintainability analyzers and code metrics configuration to find overly complex methods and coupled code. Use when a repo needs cyclomatic complexity checks, maintainability thresholds, or complexity-driven refactoring gates. skills/dotnet-complexity/
dotnet‑profiling 1.0.0 Use the free official .NET diagnostics CLI tools for profiling and runtime investigation in .NET repositories. Use when a repo needs CPU tracing, live counters, GC and allocation investigation, exception or contention tracing, heap snapshots, or startup diagnostics without GUI-only tooling. skills/dotnet-profiling/
dotnet‑quickdup 1.0.0 Use the open-source free `QuickDup` clone detector for .NET repositories. Use when a repo needs duplicate C# code discovery, structural clone detection, DRY refactoring candidates, or repeatable duplication scans in local workflows and CI. skills/dotnet-quickdup/

How Updates Are Tracked

This repository does not guess what to monitor.

It watches only the sources explicitly listed in .github/upstream-watch.json. That file is the human-maintained source of truth for:

  • GitHub release streams that should trigger skill review
  • documentation pages that should trigger skill review
  • which dotnet-* skills are affected by each upstream change

The file has exactly two lists:

  • github_releases
  • documentation

High-level flow:

flowchart LR
  A["Edit .github/upstream-watch.json"] --> B["Run scripts/upstream_watch.py --validate-config"]
  B --> C["Run dry-run and sync-state-only once"]
  C --> D["Scheduled upstream-watch.yml runs upstream_watch.py daily"]
  D --> E["GitHub release or documentation change is detected"]
  E --> F["Automation opens or updates an upstream issue"]
  F --> G["A human or agent updates skills/ and docs"]
  G --> H["Changes merge to main"]
  H --> I["publish-catalog.yml releases a new catalog-v..."]
Loading

Use this shape:

{
  "github_releases": [
    {
      "source": "https://github.com/managedcode/Storage",
      "skills": [
        "dotnet-managedcode-storage"
      ]
    }
  ],
  "documentation": [
    {
      "source": "https://learn.microsoft.com/dotnet/aspire/",
      "skills": [
        "dotnet-aspire"
      ]
    }
  ]
}

That is enough for normal maintenance. scripts/upstream_watch.py derives the watch kind, ids, source coordinates, display names, and default notes at runtime. Use optional fields only when you really need them, for example match_tag_regex for mixed release streams or id for a stable legacy key.

If you add a new library or framework and want this repo to keep watching it, the actual how-to is in CONTRIBUTING.md.

Contributing

This catalog is community-driven. If you maintain a .NET library, framework, or tool:

  1. Add your project as a skill in skills/
  2. Write clear guidance on what it is, why to use it, and how to wire it up
  3. Add upstream watch so we know when your project releases updates

See CONTRIBUTING.md for the full guide.

Credits

This catalog builds on the work of many open-source projects and their authors:

Test Frameworks

Tool/Library Authors License
xUnit Brad Wilson, James Newkirk Apache-2.0
NUnit Charlie Poole, NUnit team MIT
MSTest Microsoft MIT
TUnit Tom Longhurst MIT

Code Coverage & Mutation Testing

Tool/Library Authors License
Coverlet Toni Solarin-Sodara, Marco Rossignoli MIT
ReportGenerator Daniel Palme Apache-2.0
Stryker.NET Stryker Mutator team Apache-2.0

Analyzers & Formatters

Tool/Library Authors License
Roslynator Josef Pihrt, .NET Foundation Apache-2.0
StyleCop.Analyzers .NET Analyzers team MIT
Meziantou.Analyzer Gérald Barré MIT
CSharpier Bela VanderVoort MIT
ReSharper CLT JetBrains Proprietary (free)

Architecture Testing

Tool/Library Authors License
NetArchTest Ben Morris MIT
ArchUnitNET TNG Technology Consulting Apache-2.0

Metrics & Analysis

Tool/Library Authors License
cloc Al Danial GPL-2.0
CodeQL GitHub, Semmle MIT (queries)
QuickDup Roger Johansson, Asynkron MIT

Frameworks & Libraries

Tool/Library Authors License
CommunityToolkit.Mvvm Microsoft, .NET Foundation MIT
MCP C# SDK Anthropic, Microsoft Apache-2.0
Uno Platform nventive, Uno Platform Apache-2.0
Orleans Microsoft MIT
Semantic Kernel Microsoft MIT
Entity Framework Core Microsoft, .NET Foundation MIT
ML.NET Microsoft, .NET Foundation MIT

Want your project credited? Add a skill and include yourself in this list!

About

set of skills for dotnet

Resources

License

Contributing

Stars

Watchers

Forks

Contributors