dotnet/skills

Repository for skills to assist AI coding agents with .NET and C#

101 skills listed · MIT · 5.8k stars · last pushed 3 Nov 2026

dotnet/skills on GitHub (opens in a new tab)

Across these 101 skills

Pattern check

Nothing flagged in 100

Items to review in 1: csharp-expert

What it can touch

  • 1 touches credentials
  • 54 run shell commands
  • 43 name web addresses
  • +2 more
    • 7 reach the network
    • 4 bundle scripts

Checked at commit 95e7d0c on 3 Nov 2026. 5 skills aren't listed while QAI reviews a check result.

Skills in dotnet/skills
SkillWhat it can touchPattern checkLicenceUpdated
  • Runs shell commands
Pattern check: Nothing flaggedMIT1 Sept 2026
android-tombstone-symbolicationSymbolicate the .NET runtime frames in an Android tombstone file. Extracts BuildIds and PC offsets from the native backtrace, downloads debug symbols from the Microsoft symbol server, and runs llvm-symbolizer to produce function names with source file and line numbers. USE FOR triaging a .NET MAUI or Mono Android app crash from a tombstone, resolving native backtrace frames in libmonosgen-2.0.so or libcoreclr.so to .NET runtime source code, or investigating SIGABRT, SIGSEGV, or other native signals originating from the .NET runtime on Android. DO NOT USE FOR pure Java/Kotlin crashes, managed .NET exceptions that are already captured in logcat, or iOS crash logs. INVOKES Symbolicate-Tombstone.ps1 script, llvm-symbolizer, Microsoft symbol server.
  • Runs shell commands
  • +3 more

Pattern check: Nothing flaggedMITUpdated 21 Apr 2026

  • Runs shell commands
  • Reaches the network
  • +2 more
Pattern check: Nothing flaggedMIT21 Apr 2026
  • Instructions only
Pattern check: Nothing flaggedMIT9 Oct 2026
author-componentCreate or review Blazor components (.razor files) with correct architecture. USE FOR: writing new Blazor components that do NOT involve JavaScript interop, implementing parameters and EventCallback, RenderFragment slots, component lifecycle (OnInitializedAsync, OnParametersSet), async patterns, IAsyncDisposable, CancellationToken, CSS isolation, code-behind. DO NOT USE FOR: creating new projects (use create-blazor-project), JavaScript interop or calling browser APIs from Blazor (use use-js-interop), forms and validation (use collect-user-input), prerendering issues (use support-prerendering), HTTP data fetching patterns (use fetch-and-send-data), coordinating state between unrelated components (use coordinate-components).
  • Instructions only

Pattern check: Nothing flaggedMITUpdated 25 May 2026

  • Instructions only
Pattern check: Nothing flaggedMIT25 May 2026
  • Runs shell commands
Pattern check: Nothing flaggedMIT20 Oct 2026
  • Runs shell commands
Pattern check: Nothing flaggedMIT20 Oct 2026
  • Instructions only
Pattern check: Nothing flaggedMIT5 Oct 2026
  • Runs shell commands
Pattern check: Nothing flaggedMIT16 Oct 2026
  • Runs shell commands
Pattern check: Nothing flaggedMIT20 Oct 2026
check-bin-obj-clashDetects MSBuild projects with conflicting OutputPath or IntermediateOutputPath. USE FOR: builds failing with 'Cannot create a file when that file already exists', 'The process cannot access the file because it is being used by another process', intermittent build failures that succeed on retry, or missing/overwritten outputs in multi-project or multi-targeting builds where bin/obj (or project.assets.json) collide. Common causes: shared OutputPath, missing AppendTargetFrameworkToOutputPath, extra global properties (e.g. PublishReadyToRun), or SetTargetFramework on a ProjectReference to a single-targeting project. DO NOT USE FOR: file access errors unrelated to MSBuild (OS-level locking), single-project single-TFM builds, non-MSBuild build systems.
  • Runs shell commands

Pattern check: Nothing flaggedMITUpdated 30 Sept 2026

  • Runs shell commands
Pattern check: Nothing flaggedMIT30 Sept 2026
  • Runs shell commands
Pattern check: Nothing flaggedMIT31 Aug 2026
  • Instructions only
Pattern check: Nothing flaggedMIT9 Oct 2026
  • Instructions only
Pattern check: Nothing flaggedMIT8 Oct 2026
  • Runs shell commands
  • Reaches the network
  • +1 more
Pattern check: Nothing flaggedMIT9 Oct 2026
  • Instructions only
Pattern check: Nothing flaggedMIT25 May 2026
  • Instructions only
Pattern check: Nothing flaggedMIT5 Oct 2026
convert-blazor-server-to-webappGuides conversion of a pre-.NET 8 Blazor Server app into a .NET 8+ Blazor Web App. USE FOR: migrating apps that use AddServerSideBlazor and MapBlazorHub to the AddRazorComponents/MapRazorComponents model, converting _Host.cshtml to an App.razor root component, replacing blazor.server.js with blazor.web.js, migrating CascadingAuthenticationState to a service, adopting new Blazor Web App features like enhanced navigation and streaming rendering. DO NOT USE FOR: apps that are already Blazor Web Apps (already use AddRazorComponents and MapRazorComponents), Blazor WebAssembly or hosted Blazor WebAssembly apps (different migration path), apps that should stay on the Blazor Server hosting model without converting, or apps still targeting .NET Framework.
  • Names web addresses

Pattern check: Nothing flaggedMITUpdated 8 Jun 2026

  • Names web addresses
Pattern check: Nothing flaggedMIT8 Jun 2026
convert-to-cpmConvert .NET projects and solutions (.sln, .slnx) to NuGet Central Package Management (CPM) using Directory.Packages.props. USE FOR: converting to CPM, centralizing or aligning NuGet package versions across multiple projects, inlining MSBuild version properties from Directory.Build.props into Directory.Packages.props, resolving version conflicts or mismatches across a solution or repository, updating or bumping or syncing package versions across projects. Also activate when packages are out of sync, drifting, or inconsistent -- even without the user mentioning CPM. Provides baseline build capture, version conflict resolution, build validation with binlog comparison, and a structured post-conversion report. DO NOT USE FOR: packages.config projects (must migrate to PackageReference first) or repositories that already have CPM fully enabled.
  • Runs shell commands
  • +1 more

Pattern check: Nothing flaggedMITUpdated 14 Aug 2026

  • Runs shell commands
  • Names web addresses
Pattern check: Nothing flaggedMIT14 Aug 2026
coordinate-componentsShare state between components that don't have a direct parent-child parameter relationship, using cascading values, scoped services with change events, or CascadingValueSource via DI. USE WHEN the user needs a CascadingParameter or CascadingValue that works across render mode boundaries, a shopping cart or notification count accessible from multiple pages, a theme or user preference cascaded app-wide, or when components in different parts of the tree must react when shared data changes. Also USE WHEN cascading values aren't reaching interactive children in per-page interactivity mode, or when the user needs to understand scoped vs singleton service lifetime for state on Blazor Server. DO NOT USE for direct parent-child parameter passing or EventCallback (see author-component), for persisting state across prerender-to-interactive transitions (see support-prerendering), or for service abstractions for data fetching in Auto/WebAssembly (see fetch-and-send-data).
  • Instructions only

Pattern check: Nothing flaggedMITUpdated 25 May 2026

  • Instructions only
Pattern check: Nothing flaggedMIT25 May 2026
  • Instructions only
Pattern check: Nothing flaggedMIT16 Jul 2026
coverage-analysisActivation requires either supplied .NET coverage reports/percentages/line, branch, or condition metrics, or an explicit request to collect .NET coverage for analysis. USE FOR: interpreting that evidence, including Cobertura data, partial conditions, plateaus, target arithmetic, project-wide coverage-backed CRAP, and coverage-backed refactoring safety. Analyze supplied reports directly without rerunning tests or installing tools. DO NOT USE FOR: requests with neither coverage evidence nor explicit coverage-collection intent, including hypothetical change-survival questions (use test-gap-analysis); CRAP or refactoring safety for one named target (use crap-score); or requests owned by test-tagging, find-untested-sources, test-anti-patterns, run-tests, or code-testing.
  • Runs shell commands
  • +1 more

Pattern check: Nothing flaggedMITUpdated 12 Oct 2026

  • Runs shell commands
  • Bundles scripts
Pattern check: Nothing flaggedMIT12 Oct 2026
  • Instructions only
Pattern check: Nothing flaggedMIT8 Oct 2026
  • Runs shell commands
Pattern check: Nothing flaggedMIT25 May 2026
  • Runs shell commands
  • Names web addresses
Pattern check: Nothing flaggedMIT28 Jul 2026
  • Runs shell commands
  • Names web addresses
Pattern check: 1 item to reviewMIT8 Oct 2026
csharp-refactoringSafely refactors C#/.NET code without changing behavior. USE FOR any request to refactor, rename, move, extract, inline, merge, consolidate, deduplicate, split, or modernize C# code, including partial/generated declarations, wrappers, public APIs, serialization/reflection/configuration names, friend assemblies, conditional compilation, and multi-targeted projects. Also use when a request calls a feature, bug fix, package/framework upgrade, or public nullability change a refactor and the behavior-changing part must be separated or declined. DO NOT USE FOR ordinary feature or bug fixes not presented as refactoring; standalone upgrades after reclassification (use dotnet-upgrade); adding tests; or formatting-only work.
  • Runs shell commands
  • +1 more

Pattern check: Nothing flaggedMITUpdated 16 Sept 2026

  • Runs shell commands
  • Names web addresses
Pattern check: Nothing flaggedMIT16 Sept 2026
  • Runs shell commands
  • Names web addresses
Pattern check: Nothing flaggedMIT29 Jun 2026
  • Instructions only
Pattern check: Nothing flaggedMIT8 Sept 2026
directory-build-organizationUSE ONLY for (1) two or more projects with repeated MSBuild policy, targets, or package versions, or (2) an existing Directory.Build.props/targets/rsp hierarchy with an import, placement, or layering defect. A one-project repo without an existing Directory.Build file is outside scope; do not load this skill. Covers centralizing shared policy and targets, Directory.Packages.props across projects, parent hierarchy/import structure, props-versus-targets placement, and folder/project exceptions. An existing hierarchy defect remains in scope when only one project is affected. For property value or condition semantics use property-patterns. Exclude legacy-to-SDK migration and non-MSBuild systems.
  • Runs shell commands
  • +1 more

Pattern check: Nothing flaggedMITUpdated 1 Oct 2026

  • Runs shell commands
  • Names web addresses
Pattern check: Nothing flaggedMIT1 Oct 2026
  • Runs shell commands
  • Names web addresses
Pattern check: Nothing flaggedMIT21 Apr 2026
  • Runs shell commands
  • Names web addresses
Pattern check: Nothing flaggedMIT19 Oct 2026
  • Runs shell commands
  • Names web addresses
Pattern check: Nothing flaggedMIT8 Jun 2026
  • Touches credentials
  • Runs shell commands
  • +2 more
Pattern check: Nothing flaggedMIT21 Apr 2026
  • Runs shell commands
Pattern check: Nothing flaggedMIT16 Oct 2026
eval-performanceGuide for diagnosing and improving MSBuild project evaluation performance. USE FOR: builds slow before any compilation starts, high evaluation time in binlog analysis, expensive glob patterns walking large directories (node_modules, .git, bin/obj), deep import chains (>20 levels), preprocessed output >10K lines indicating heavy evaluation, property functions with file I/O ($([System.IO.File]::ReadAllText(...))), multiple evaluations per project. Covers the 5 MSBuild evaluation phases, glob optimization via DefaultItemExcludes, import chain analysis with /pp preprocessing. DO NOT USE FOR: compilation-time slowness (use build-perf-diagnostics), incremental build issues (use incremental-build), non-MSBuild build systems.
  • Names web addresses

Pattern check: Nothing flaggedMITUpdated 30 Sept 2026

  • Names web addresses
Pattern check: Nothing flaggedMIT30 Sept 2026
  • Instructions only
Pattern check: Nothing flaggedMIT21 Apr 2026
exp-test-maintainabilityDetects duplicate boilerplate, copy-paste tests, and structural maintainability issues across .NET test suites. Use when the user asks to reduce repetition, consolidate similar test methods, convert copy-paste tests to data-driven parameterized tests, suggest a better test structure, or identify refactoring opportunities. Identifies repeated construction, assertion patterns, copy-paste methods convertible to DataRow/Theory/TestCase, redundant setup/teardown, and shared infrastructure. Produces an analysis report with concrete before/after suggestions. Works with MSTest, xUnit, NUnit, and TUnit. DO NOT USE FOR: writing new tests (use writing-mstest-tests), reviewing test quality or anti-patterns (use test-anti-patterns), or deep mock auditing (use exp-mock-usage-analysis).
  • Instructions only

Pattern check: Nothing flaggedMITUpdated 1 Jul 2026

  • Instructions only
Pattern check: Nothing flaggedMIT1 Jul 2026
extension-pointsOwn MSBuild import and hook discovery. USE FOR: CustomBefore/CustomAfter hooks, ordered wildcard and NuGet auto-imports, control properties, build/buildTransitive packed layout, package ID and file-name matching, per-TFM forwarders, and tracing why assets or hooks are missing, broken, or replaced. An import guard remains in scope when it is one defect in a broader hook/import flow. DO NOT USE for a focused safety verdict on whether one specific Import needs Exists or is an intentionally unguarded package contract; use msbuild-antipatterns. NEVER INVOKE when imports and hook placement already work and the request is only target Inputs/Outputs, incremental skipping, or FileWrites clean tracking; use incremental-build or target-authoring. Exclude props-versus-targets placement and non-MSBuild systems.
  • Instructions only

Pattern check: Nothing flaggedMITUpdated 30 Sept 2026

  • Instructions only
Pattern check: Nothing flaggedMIT30 Sept 2026
  • Instructions only
Pattern check: Nothing flaggedMIT25 May 2026
  • Runs shell commands
  • Names web addresses
Pattern check: Nothing flaggedMIT26 Aug 2026
  • Runs shell commands
  • Reaches the network
  • +1 more
Pattern check: Nothing flaggedMIT12 Oct 2026
generate-testability-wrappersDO NOT USE when the target already consumes an injected interface or built-in abstraction such as IFileSystem or TimeProvider, even if the request says "generate a wrapper"; no new wrapper is needed. Use only when C# source calls an ambient/static dependency and no injectable seam exists: first-time TimeProvider, IHttpClientFactory, or System.IO.Abstractions adoption; minimal Environment/Console/Process wrappers; IProcessRunner; DI registration; or an ambient seam that preserves a static API. Exclude static detection (detect-static-dependencies), migration to an existing/registered abstraction (migrate-static-to-wrapper), one blocked behavior plus deterministic tests (testability-obstacle), and general interface design.
  • Instructions only

Pattern check: Nothing flaggedMITUpdated 3 Sept 2026

  • Instructions only
Pattern check: Nothing flaggedMIT3 Sept 2026
  • Instructions only
Pattern check: Nothing flaggedMIT13 Oct 2026
  • Names web addresses
Pattern check: Nothing flaggedMIT30 Sept 2026
incremental-buildGuide for optimizing MSBuild incremental builds. USE FOR: builds slower than expected on subsequent runs, 'nothing changed but it rebuilds anyway', diagnosing why targets re-execute unnecessarily, fixing broken no-op builds. Covers 8 common causes: missing Inputs/Outputs on custom targets, volatile properties in output paths (timestamps/GUIDs), file writes outside tracked Outputs, missing FileWrites registration, glob changes, Visual Studio Fast Up-to-Date Check (FUTDC) issues. Key diagnostic: look for 'Building target completely' vs 'Skipping target' in binlog. DO NOT USE FOR: first-time build slowness (use build-perf-baseline), parallelism issues (use build-parallelism), evaluation-phase slowness (use eval-performance), non-MSBuild build systems.
  • Runs shell commands

Pattern check: Nothing flaggedMITUpdated 2 Oct 2026

  • Runs shell commands
Pattern check: Nothing flaggedMIT2 Oct 2026
item-managementOwn concrete MSBuild ItemGroup and item-expression questions. USE FOR: Include, Remove, Update, item identity and metadata, transforms, filtering, batching, duplicate or overlapping items, and reviews that verify whether those operations are correct. Generated items stay in scope when the central defect is item identity, metadata, batching, duplicate declarations, or glob/Remove/Update semantics. For a generated artifact missing from compilation or output, wrong target timing/path, or FileWrites clean tracking without a broader item-semantics defect, use including-generated-files. The item operation may be broken, suspected, or already correct. Exclude property-only issues, general incrementality with no item question, broad reviews with no concrete item concern, and non-MSBuild systems.
  • Instructions only

Pattern check: Nothing flaggedMITUpdated 30 Sept 2026

  • Instructions only
Pattern check: Nothing flaggedMIT30 Sept 2026
  • Instructions only
Pattern check: Nothing flaggedMIT26 Jul 2026
maui-collectionviewGuidance for implementing CollectionView in .NET MAUI apps — data display, layouts (list & grid), selection, grouping, scrolling, empty views, templates, incremental loading, swipe actions, and pull-to-refresh. USE FOR: "CollectionView", "list view", "grid layout", "data template", "item template", "grouping", "pull to refresh", "incremental loading", "swipe actions", "empty view", "selection mode", "scroll to item", displaying scrollable data, replacing ListView. DO NOT USE FOR: simple static layouts without scrollable data (use Grid or StackLayout), map pin lists (use Microsoft.Maui.Controls.Maps), table-based data entry forms, non-MAUI list controls, CarouselView or BindableLayout questions, platform-specific handler or renderer customization, diagnosing CollectionView bugs in the MAUI framework itself, or general MVVM/binding questions that merely happen to mention a list (use maui-data-binding).
  • Runs shell commands
  • +1 more

Pattern check: Nothing flaggedMITUpdated 28 Jul 2026

  • Runs shell commands
  • Names web addresses
Pattern check: Nothing flaggedMIT28 Jul 2026
maui-data-bindingGuidance for .NET MAUI XAML and C# data bindings — compiled bindings, INotifyPropertyChanged / ObservableObject, value converters, binding modes, multi-binding, relative bindings, fallbacks, and MVVM best practices. USE FOR: setting up compiled bindings with x:DataType, implementing INotifyPropertyChanged or CommunityToolkit ObservableObject, creating IValueConverter / IMultiValueConverter, choosing binding modes, configuring BindingContext, relative bindings, binding fallbacks, StringFormat, code-behind SetBinding with lambdas, and enforcing XC0022/XC0025 warnings. DO NOT USE FOR: CollectionView item templates and layouts (use maui-collectionview), Shell navigation data passing (use maui-shell-navigation), dependency injection (use maui-dependency-injection), or animations triggered by property changes (use .NET MAUI animation APIs).
  • Names web addresses

Pattern check: Nothing flaggedMITUpdated 28 Jul 2026

  • Names web addresses
Pattern check: Nothing flaggedMIT28 Jul 2026
  • Names web addresses
Pattern check: Nothing flaggedMIT28 Jul 2026

Not listed from this repo

6 project-internal skills and 2 test fixtures.

Repo facts from GitHub on 3 Nov 2026. Files read at commit 95e7d0c (opens in a new tab).

QAI did not write these skills and is not affiliated with their authors unless a page says so. Logos and icons belong to their owners and are not a mark of approval. How we check