<Devsly/>
NotebookLM Watermark Remover
Remove the NotebookLM watermark from PDF slide exports — free, unlimited, and 100% in your browser.
View
NotebookLM Video Watermark Remover
Remove the NotebookLM watermark from every frame of your MP4 and auto-trim the end card — free and unlimited.
View
Gemini Watermark Remover
Remove the Gemini (Veo) sparkle watermark from every frame of your AI-generated MP4 — free and unlimited.
View
MCP https://devsly.io/mcp MCP Tools Best Skills API Docs

Keyboard Shortcuts

Navigation

Quick Search
⌘ / Ctrl + K
Toggle Dark Mode
⌘ / Ctrl + D
Close Dialogs
Esc

Tool Actions

Execute / Process
⌘ / Ctrl + Enter
Clear Input
⌘ / Ctrl + Shift + C
Copy Output
⌘ / Ctrl + Shift + X

Editor

Select All
⌘ / Ctrl + A
Undo
⌘ / Ctrl + Z
Redo
⌘ / Ctrl + Shift + Z

Updated 1d ago

by dotnet

skills

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

  • Active — Updated in the last 14 days

5.6k GitHub stars (5,647)

+160 in 20 days

Stars gained per day · daily snapshots since Sep 26
Stars gained per day, Sep 26 to Oct 16: +160 in total; the busiest day was Oct 2 with +22 stars.Sep 27: +1 starsSep 28: +7 starsSep 29: +10 starsSep 30: +10 starsOct 1: +1 starsOct 2: +22 starsOct 3: +1 starsOct 4: +7 starsOct 5: +6 starsOct 6: +9 starsOct 7: +6 starsOct 8: +6 starsOct 9: +9 starsOct 10: +11 starsOct 11: +5 starsOct 12: +6 starsOct 13: +9 starsOct 14: +8 starsOct 15: +17 starsOct 16: +9 stars
Stars gained between daily snapshots
PeriodNew stars
Sep 27+1
Sep 28+7
Sep 29+10
Sep 30+10
Oct 1+1
Oct 2+22
Oct 3+1
Oct 4+7
Oct 5+6
Oct 6+9
Oct 7+6
Oct 8+6
Oct 9+9
Oct 10+11
Oct 11+5
Oct 12+6
Oct 13+9
Oct 14+8
Oct 15+17
Oct 16+9
  • 30 skills (30 skills found in its SKILL.md files)
  • 443 forks (443 forks)
  • 1d ago last update (Last updated 1d ago)

Install

Skills CLI

npx skills add dotnet/skills

Asks which skills and agents to install. Just one: npx skills add dotnet/skills --skill authoring-github-workflows — add -g for every project.

Claude Code

git clone https://github.com/dotnet/skillscp -r "skills/.agents/skills/authoring-github-workflows" ~/.claude/skills/

Copies the authoring-github-workflows skill into ~/.claude/skills/ for every project (use .claude/skills/ for one project). Repeat for the other skills listed below.

Plugin

/plugin marketplace add dotnet/skills

Run inside Claude Code if the repository ships a plugin marketplace, then pick plugins from /plugin.

Skills can run code on your machine — read the SKILL.md first.

What it does

In the author's own words, from each skill's SKILL.md — showing the first 30 of 108 files.

  • authoring-github-workflows

    Author and review GitHub Actions workflow YAML safely so syntactically-valid YAML can't ship a workflow that GitHub Actions refuses to run. USE FOR: editing, adding, or reviewing any file under .github/workflows/, writing run-name/name/if/env/run values that contain ${{ }} expressions, diagnosing a run that fails with 'This run likely failed because of a workflow file issue' and no jobs starting,…

    .agents/skills/authoring-github-workflows/SKILL.md on GitHub (opens in a new tab)
  • create-custom-agent

    Creates VS Code custom agent files (.agent.md) for specialized AI personas with tools, instructions, and handoffs. Use when scaffolding new custom agents, configuring agent workflows, or setting up agent-to-agent handoffs.

    .agents/skills/create-custom-agent/SKILL.md on GitHub (opens in a new tab)
  • create-skill-test

    Scaffolds eval.yaml evaluation specs for agent skills in the dotnet/skills repository. Use when creating skill tests, writing evaluation stimuli, defining graders and rubrics, sizing an eval for statistical power, or setting up test fixture files. Handles the Vally eval.yaml schema, fixture organization, and overfitting avoidance. Do not use for running or debugging existing evals (use improve-sk…

    .agents/skills/create-skill-test/SKILL.md on GitHub (opens in a new tab)
  • create-skill

    Scaffolds new agent skills for the dotnet/skills repository. Use when creating a new skill, generating SKILL.md files, writing a skill description that the runtime will actually route to, or setting up skill directory structures. Handles frontmatter generation, section templates, and validation guidance. Do not use for fixing a skill that already fails its evaluation (use improve-skill-quality) o…

    .agents/skills/create-skill/SKILL.md on GitHub (opens in a new tab)
  • improve-skill-quality

    Diagnoses and fixes skills in the dotnet/skills repository that lose to their own baseline, fail to activate, time out, or return "no credible improvement". Use when an evaluation verdict is a regression or underpowered, when a skill regressed after a change, when /evaluate reports no results, or when deciding whether a weak skill should be strengthened or retired. Do not use for scaffolding a br…

    .agents/skills/improve-skill-quality/SKILL.md on GitHub (opens in a new tab)
  • agentic-workflows

    Route gh-aw workflow design/create/debug/upgrade requests to the right prompts.

    .github/skills/agentic-workflows/SKILL.md on GitHub (opens in a new tab)
  • csharp-scripts

    Run file-based C# apps with the .NET CLI when the user explicitly wants C#/.NET code without creating a project. Use for C# language/API experiments, one-file C# apps, small multi-file C# apps composed with `#:include`/`#:exclude`, or C# file-based apps linked with `#:ref`. Do not use for language-agnostic throwaway scripts, generic computations, Python/PowerShell-style automation, full projects,…

    plugins/dotnet-advanced/skills/csharp-scripts/SKILL.md on GitHub (opens in a new tab)
  • dotnet-pinvoke

    Correctly call native (C/C++) libraries from .NET using P/Invoke and LibraryImport. Covers function signatures, string marshalling, memory lifetime, SafeHandle, and cross-platform patterns. USE FOR: writing new P/Invoke or LibraryImport declarations, reviewing or debugging existing native interop code, wrapping a C or C++ library for use in .NET, diagnosing crashes, memory leaks, or corruption at…

    plugins/dotnet-advanced/skills/dotnet-pinvoke/SKILL.md on GitHub (opens in a new tab)
  • nuget-trusted-publishing

    Set up NuGet trusted publishing (OIDC) on a GitHub Actions repo — replaces long-lived API keys with short-lived tokens. USE FOR: trusted publishing, NuGet OIDC, keyless NuGet publish, migrate from NuGet API key, NuGet/login, secure NuGet publishing. DO NOT USE FOR: publishing to private feeds or Azure Artifacts (OIDC is nuget.org only). INVOKES: shell (powershell or bash), edit, create, ask_user…

    plugins/dotnet-advanced/skills/nuget-trusted-publishing/SKILL.md on GitHub (opens in a new tab)
  • vectorization

    Design, implement, optimize, and review SIMD code in .NET. USE FOR: vectorizing scalar loops with TensorPrimitives, Vector64/128/256/512, or platform hardware intrinsics; reviewing existing SIMD code, including Vector<T>, for contract equivalence, tail handling, memory safety, portability, fallbacks, and measured performance. DO NOT USE FOR: performance work unrelated to SIMD or vectorization.

    plugins/dotnet-advanced/skills/vectorization/SKILL.md on GitHub (opens in a new tab)
  • technology-selection

    Guides technology selection and implementation of AI and ML features in .NET 8+ applications using ML.NET, Microsoft.Extensions.AI (MEAI), Microsoft Agent Framework (MAF), GitHub Copilot SDK, ONNX Runtime, and OllamaSharp. Covers the full spectrum from classic ML through modern LLM orchestration to local inference. Use when adding classification, regression, clustering, anomaly detection, recomme…

    plugins/dotnet-ai/skills/technology-selection/SKILL.md on GitHub (opens in a new tab)
  • configuring-opentelemetry-dotnet

    Configure OpenTelemetry distributed tracing, metrics, and logging in ASP.NET Core using the .NET OpenTelemetry SDK. Use when adding observability, setting up OTLP exporters, creating custom metrics/spans, or troubleshooting distributed trace correlation.

    plugins/dotnet-aspnetcore/skills/configuring-opentelemetry-dotnet/SKILL.md on GitHub (opens in a new tab)
  • convert-blazor-server-to-webapp

    Guides 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 l…

    plugins/dotnet-aspnetcore/skills/convert-blazor-server-to-webapp/SKILL.md on GitHub (opens in a new tab)
  • dotnet-webapi

    Guides creation and modification of ASP.NET Core Web API endpoints with correct HTTP semantics, OpenAPI metadata, and error handling. USE FOR: adding new API endpoints (controllers or minimal APIs), wiring up OpenAPI/Swagger, creating .http test files, setting up global error handling middleware. DO NOT USE FOR: general C# coding style, EF Core data access or query optimization (use optimizing-ef…

    plugins/dotnet-aspnetcore/skills/dotnet-webapi/SKILL.md on GitHub (opens in a new tab)
  • minimal-api-file-upload

    File upload endpoints in ASP.NET minimal APIs (.NET 8+)

    plugins/dotnet-aspnetcore/skills/minimal-api-file-upload/SKILL.md on GitHub (opens in a new tab)
  • author-component

    Create 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…

    plugins/dotnet-blazor/skills/author-component/SKILL.md on GitHub (opens in a new tab)
  • collect-user-input

    Build forms, validate data, and react to user input in Blazor. USE FOR adding forms, search boxes, filter panels, inline editing, data-entry UI, file uploads, validation (annotations or custom), handling form submissions, and binding input controls. Covers EditForm, built-in input components, DataAnnotationsValidator, custom validation, SSR form patterns (SupplyParameterFromForm, FormName, Antifo…

    plugins/dotnet-blazor/skills/collect-user-input/SKILL.md on GitHub (opens in a new tab)
  • configure-auth

    Add authentication and authorization to a Blazor Web App, accounting for the app's render mode. USE WHEN the user needs [Authorize] on pages, AuthorizeView, role or policy-based access, login/logout Identity pages, or AuthenticationStateProvider. Also USE WHEN auth state is null after WebAssembly loads, SignInManager throws in an interactive component, <NotAuthorized> content never renders in sta…

    plugins/dotnet-blazor/skills/configure-auth/SKILL.md on GitHub (opens in a new tab)
  • coordinate-components

    Share 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…

    plugins/dotnet-blazor/skills/coordinate-components/SKILL.md on GitHub (opens in a new tab)
  • create-blazor-project

    Create a new ASP.NET Core web application or web site using Blazor. USE FOR: creating a new Blazor web app, scaffolding a new web project, starting a new web site, choosing render modes (Static SSR, Interactive Server, Interactive WebAssembly, Auto), running dotnet new blazor with the right options, setting up initial project structure. DO NOT USE FOR: adding features to existing projects, changi…

    plugins/dotnet-blazor/skills/create-blazor-project/SKILL.md on GitHub (opens in a new tab)
  • fetch-and-send-data

    Call APIs, load data into components, and handle the async lifecycle in Blazor. USE FOR fetching data from a backend, submitting data to an API, displaying loading/error states, registering HttpClient, building service abstractions for Auto/WebAssembly render modes. DO NOT USE for form validation (see collect-user-input), prerendering persistence (see support-prerendering), or project scaffolding…

    plugins/dotnet-blazor/skills/fetch-and-send-data/SKILL.md on GitHub (opens in a new tab)
  • plan-ui-change

    Plan complex Blazor UI features by decomposing them into focused components. USE FOR: building a complex Blazor page with multiple sections, planning component decomposition, designing a multi-section dashboard or layout, breaking down a large UI feature into composable components, pages with sidebars and content panels, any page with 3+ distinct visual sections or multiple interacting sub-featur…

    plugins/dotnet-blazor/skills/plan-ui-change/SKILL.md on GitHub (opens in a new tab)
  • support-prerendering

    Make interactive Blazor components work correctly with prerendering. USE FOR fixing duplicate data loads, UI flicker during prerender-to-interactive handoff, null references during prerender, persisting state across prerender, disabling prerendering, excluding pages from interactive routing, or detecting whether a component is currently prerendering. DO NOT USE for choosing which render mode to u…

    plugins/dotnet-blazor/skills/support-prerendering/SKILL.md on GitHub (opens in a new tab)
  • use-igniteui-blazor

    Add, configure, or review Ignite UI for Blazor Lite component support in Blazor applications. USE FOR: installing IgniteUI.Blazor.Lite or IgniteUI.Blazor.GridLite, registering AddIgniteUIBlazor() in Blazor Server, WASM, Hybrid, or split Blazor Web App projects, adding @using IgniteUI.Blazor.Controls, wiring the theme stylesheet, picking the right host page, locating the GridLite stylesheet path,…

    plugins/dotnet-blazor/skills/use-igniteui-blazor/SKILL.md on GitHub (opens in a new tab)
  • use-js-interop

    Add, review, or fix JavaScript interop in Blazor components. USE FOR: calling JavaScript from Blazor, calling .NET from JavaScript, collocated .razor.js modules, IJSRuntime, IJSObjectReference lifecycle, DotNetObjectReference, ElementReference, timing rules for when JS is available, IAsyncDisposable disposal of JS references, server-side JS interop safety. DO NOT USE FOR: general Blazor component…

    plugins/dotnet-blazor/skills/use-js-interop/SKILL.md on GitHub (opens in a new tab)
  • create-datadriven-aspnetcore

    Generate or scaffold ASP.NET Core code — Razor Pages, Blazor components, MVC controllers, views, and Minimal API endpoints — without using ASP.NET Core CLI scaffolding/code-generation tools. Use when (1) adding CRUD pages, views, or API endpoints backed by Entity Framework (EF Core) and a database, (2) generating code to create, read, update, and delete data using a DbContext, (3) scaffolding UI…

    plugins/dotnet-data/skills/create-datadriven-aspnetcore/SKILL.md on GitHub (opens in a new tab)
  • optimizing-ef-core-queries

    Optimize and improve the performance of slow Entity Framework Core (EF Core) queries: make them generate less SQL, make fewer database round-trips, and return results faster. Use whenever an EF Core or DbContext query or data-access path is slow or should be made faster — whether or not EF Core owns the database schema. For EF Core, not Dapper or raw ADO.NET.

    plugins/dotnet-data/skills/optimizing-ef-core-queries/SKILL.md on GitHub (opens in a new tab)
  • analyzing-dotnet-performance

    Scans .NET code for ~50 performance anti-patterns across async, memory, strings, collections, LINQ, regex, serialization, and I/O with tiered severity classification. Use when analyzing .NET code for optimization opportunities, reviewing hot paths, or auditing allocation-heavy patterns.

    plugins/dotnet-diag/skills/analyzing-dotnet-performance/SKILL.md on GitHub (opens in a new tab)
  • android-tombstone-symbolication

    Symbolicate 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…

    plugins/dotnet-diag/skills/android-tombstone-symbolication/SKILL.md on GitHub (opens in a new tab)
  • apple-crash-symbolication

    Symbolicate .NET runtime frames in Apple platform .ips crash logs (iOS, tvOS, Mac Catalyst, macOS). Extracts UUIDs and addresses from the native backtrace, locates dSYM debug symbols, and runs atos to produce function names with source file and line numbers. Automatically downloads .dwarf symbols from the Microsoft symbol server using Mach-O UUIDs. USE FOR triaging a .NET MAUI or Mono app crash f…

    plugins/dotnet-diag/skills/apple-crash-symbolication/SKILL.md on GitHub (opens in a new tab)

Review before you install

A skill is a set of instructions and scripts your agent will follow, and it can run code on your machine. Read the SKILL.md and any scripts first — this listing is not a security review.