- Add Dotnet Aot CommandAdd, enable, or review a dotnet CLI command or feature in the Native AOT CLI (src/Cli/dotnet-aot) and prove its compatibility. USE FOR: migrating a command or option to AOT, reviewing an AOT migration PR, defining conservative eligibility and managed fallback, changing AotSourceFiles.props or AotDependencies.props, validating AOT/managed parity, NativeAOT-publishing tests, checking binary-size impact, or using the dn harness and separated SDK layout. DO NOT USE FOR: resolving IL trim/AOT analyzedotnet/sdk3,217
- Add Net AnalyzerAdd, port, or change a .NET code analysis rule (CA####) under src/Microsoft.CodeAnalysis.NetAnalyzers. USE FOR: implementing a new CA analyzer and its code fixer, porting a rule or PR from the retired dotnet/roslyn-analyzers repo, allocating a diagnostic ID from DiagnosticCategoryAndIdRanges.txt, choosing RuleLevel/severity/category, wiring resx + xlf strings, recording the rule in AnalyzerReleases.Unshipped.md, regenerating the analyzer documentation/sarif files, and writing MSTest analyzer/coddotnet/sdk3,217
- Author Swa Integration TestAuthor end-to-end Static Web Assets integration tests that exercise MSBuild targets through build, publish, or pack. USE FOR: writing new SWA integration tests, choosing a test asset and base class, dynamically modifying projects at runtime, selecting the right manifest to assert on, verifying the full asset pipeline (primary, compressed, endpoints). DO NOT USE FOR: unit tests of individual tasks (write those directly), baseline regeneration (use swa-baseline-regeneration), troubleshooting failudotnet/sdk3,217
- Code ReviewReview code changes in dotnet/sdk for problems — either a GitHub pull request or local changes in your branch before a PR exists. Use when asked to review a PR, review local or uncommitted changes, do a code review, check a PR or branch for issues, or review pull request changes. Focuses only on identifying problems — not style nits or praise.dotnet/sdk3,217
- Dotnet Aot CompatMake .NET projects compatible with Native AOT and trimming by systematically resolving IL trim/AOT analyzer warnings. USE FOR: making projects AOT-compatible, fixing trimming warnings, resolving IL warnings (IL2026, IL2070, IL2067, IL2072, IL3050), adding DynamicallyAccessedMembers annotations, enabling IsAotCompatible. DO NOT USE FOR: publishing native AOT binaries, optimizing binary size, replacing reflection-heavy libraries with alternatives. INVOKES: no tools — pure knowledge skill.dotnet/sdk3,217
- Generate Release NotesGenerate .NET SDK release notes by comparing two git branches, investigating PRs for user-facing changes, and producing a structured markdown document with contributor acknowledgments. Use this when asked to create or draft release notes for a new .NET SDK release.dotnet/sdk3,217
- Incremental TestRun dotnet.Tests incrementally without a full build.cmd rebuild. Use after modifying source code in SDK projects to quickly build only changed projects, deploy their outputs into the redist SDK layout, and run tests against them.dotnet/sdk3,217
- Migrate Xunit To MstestMigrate .NET test projects from xUnit.net (v2 or v3) to MSTest v4. USE FOR: convert/migrate xUnit tests to MSTest, replace xunit/xunit.v3 packages, port [Fact]/[Theory]/[InlineData]/[MemberData]/[ClassData] to [TestMethod]/[DataRow]/[DynamicData], port Assert.Equal/True/Throws/ThrowsAsync to Assert.AreEqual/IsTrue/ThrowsExactly/ThrowsExactlyAsync, port IClassFixture/ ICollectionFixture/IDisposable/IAsyncLifetime/ITestOutputHelper/[Trait]/[Fact(Skip)] to MSTest equivalents, preserve xUnit paralledotnet/sdk3,217
- Run TestsSelect and run .NET SDK tests through the repository's diagnostic-preserving test entry point. REQUIRED whenever an agent will select, run, or rerun local dotnet/sdk tests, including a project, class, method, targeted test, focused test, smallest relevant test, or completed-change validation. NEVER invoke when the user says not to run tests yet.dotnet/sdk3,217
- Swa Baseline RegenerationRegenerate Static Web Assets test baselines. USE FOR: fixing "generated manifest should match the expected baseline" errors, updating baseline JSON files after legitimate build output changes, understanding the baseline comparison system.dotnet/sdk3,217
- Swa Pack FormatUnderstand and fix Static Web Assets Pack tests. USE FOR: fixing Pack test assertion failures after nupkg content changes, tracing MSBuild conditions to expected nupkg content, updating test assertions for new or changed package layouts, understanding conditional pack logic in .targets files.dotnet/sdk3,217
- Swa TroubleshootingDiagnose and fix common Static Web Assets test and build failures. USE FOR: analyzing CI failures, identifying root cause categories from error messages, fixing metadata propagation bugs, timing/ordering issues in MSBuild targets, test assertion mismatches.dotnet/sdk3,217
- Update DocsKeep dotnet/sdk contributor guidance and agent memory synchronized after code changes. Run at the end of tasks that modify code, move files, change public contracts, alter tests or workflows, establish conventions, or reveal durable repository gotchas.dotnet/sdk3,217
- Validate Static Web Asset ChangeUse this skill when you are implementing a change on src\StaticWebAssetsSdk and want to test the behavior locally to validate it works as expected.dotnet/sdk3,217
- Generate Release NotesGenerate release notes for a new stable release of the C# extension by gathering prerelease CHANGELOG entries and writing them in VS Code release notes style. Use this when asked to generate, draft, or write release notes.dotnet/vscode-csharp3,067
- Update Roslyn VersionGuide for updating the Roslyn language server version in the vscode-csharp repository. Use this when asked to update Roslyn, bump the Roslyn version, or upgrade the language server version.dotnet/vscode-csharp3,067
- Update Xamltools VersionGuide for updating the xamlTools (Microsoft.VisualStudio.DesignToolsBase) component version in the vscode-csharp repository. Use this when asked to update xamlTools, bump the xamlTools version, or upgrade the XAML/DesignTools component.dotnet/vscode-csharp3,067
- Agentic WorkflowsRoute gh-aw workflow design/create/debug/upgrade requests to the right prompts.dotnet/macios2,903
- Code ReviewReview dotnet/macios PRs against established rules. Trigger on "review this PR", a GitHub PR URL, or code review requests. Checks bindings, MSBuild, nullable, formatting, performance, testing, native runtime code, and Apple platform patterns.dotnet/macios2,903
- Fix Random Ci Test FailureInvestigate and fix flaky/random CI test failures in dotnet/macios. Trigger on GitHub issues describing intermittent test failures, CI postmortem issues, or when asked to fix a flaky test. Analyzes test code, identifies root causes (shared state, environment dependencies, race conditions), and applies fixes.dotnet/macios2,903
- Gh StackManage stacked branches and pull requests with the gh-stack GitHub CLI extension. Use when the user wants to create, push, rebase, sync, navigate, or view stacks of dependent PRs. Triggers on tasks involving stacked diffs, dependent pull requests, branch chains, or incremental code review workflows.dotnet/macios2,903
- Macios Binding CreatorCreate C# bindings for Apple frameworks in dotnet/macios. USE FOR: binding new APIs, implementing .todo file entries, creating Xcode SDK bindings, binding AVFoundation/UIKit/AppKit or any Apple framework, "bind this framework", "implement these APIs". DO NOT USE FOR: Xcode beta version bumps (use macios-xcode-beta-update skill), CI failure investigation (use macios-ci-failure-inspector skill).dotnet/macios2,903
- Macios Ci Failure InspectorInvestigate and triage CI failures for dotnet/macios from Azure DevOps build URLs. Use this skill whenever the user shares a DevOps build link, asks about CI failures, wants to understand why a build failed, or asks to investigate test failures on any platform (iOS, tvOS, macOS, Mac Catalyst). Also use when the user says things like "CI is red", "tests are failing", "build broke", or "what happened in CI".dotnet/macios2,903
- Macios Ci PostmortemPost-mortem analysis of CI failures across recent PRs in dotnet/macios. Identifies flaky tests, infrastructure issues, and shared regressions by analyzing builds from the last week. Files or updates GitHub issues for failures unrelated to any specific PR. Use when asked to "find flaky tests", "CI post-mortem", "what's been failing in CI", or "file issues for flaky failures".dotnet/macios2,903
- Macios Xcode Beta UpdateUpdate dotnet/macios to a new Xcode beta and validate it end-to-end. Use this skill when a user asks to bump Xcode beta versions, update macios SDK/version constants, run xtro-sharpie sanitization, and run introspection tests for iOS/tvOS/macOS/Mac Catalyst.dotnet/macios2,903
- Update Expected App SizeDownload updated expected app size files from Azure DevOps CI artifacts for the current branch. Use when app size tests fail in CI and the user wants to update the expected files locally. Trigger on "update app size", "download expected files", "fix app size test", or "update expected app size files".dotnet/macios2,903
- Xml Doc WriterWrite, validate, and improve XML documentation comments in C# source code. Use when asked to add, fix, review, or complete XML docs for C# APIs.dotnet/macios2,903
- Agentic WorkflowsRoute gh-aw workflow design/create/debug/upgrade requests to the right prompts.dotnet/android2,138
- Azdo Build InvestigatorInvestigate Azure DevOps (AZDO) pipeline build failures by fetching logs, downloading artifacts, and analyzing .binlog files to find the root cause of errors. Use this when users share an AZDO build URL, a GitHub PR URL, or ask about a failing pipeline, build errors, or CI failures.dotnet/android2,138
- Ci StatusCheck CI build status and investigate failures for dotnet/android PRs. ALWAYS use this skill when the user asks "check CI", "CI status", "why is CI failing", "is CI green", "why is my PR blocked", or anything about build status on a PR. Auto-detects the current PR from the git branch when no PR number is given. Covers GitHub checks and the public Azure DevOps pipeline (dnceng-public). DO NOT USE FOR: GitHub Actions workflow authoring, non-dotnet/android repos.dotnet/android2,138
- Code ReviewReview dotnet/android PRs against established rules. Trigger on "review this PR", a GitHub PR URL, or code review requests. Checks MSBuild, nullable, async, security, error handling, formatting, performance, native code, JNI interop, generator codegen, and trimmer/AOT compatibility.dotnet/android2,138
- Extract Android AssembliesLocally extract managed DLL files from .NET for Android APK, AAB, assembly-store, or compressed DLL inputs, including legacy/current store layouts and LZ4/Zstd compression. Use when investigating a customer Android package, getting assemblies for ILSpy or decompilation, unpacking assembly stores, or recovering ABI-specific managed files.dotnet/android2,138
- Gh StackManage stacked branches and pull requests with the gh-stack GitHub CLI extension. Use when the user wants to create, push, rebase, sync, navigate, or view stacks of dependent PRs. Triggers on tasks involving stacked diffs, dependent pull requests, branch chains, or incremental code review workflows.dotnet/android2,138
- Read Assembly StoreInspect and list managed assemblies in .NET for Android APK, AAB, legacy assembly blob, manifest, or libassembly-store.so files. Use for customer package investigation, assembly-store format identification, ABI-specific assembly listings, offsets, sizes, hashes, or determining what managed code an Android package contains.dotnet/android2,138
- Update Androidsdk PackagesUpdate stable Android SDK package pins (versions, revisions, URLs, SHA-256 hashes) in src/androidsdk/androidsdk.targets and Configuration.props for androidsdk.csproj. Use for requests to update/refresh Android SDK packages, tools, or archive hashes. Never for the Android NDK (out of scope) or unrelated NuGet/MSBuild SDK versions.dotnet/android2,138
- Update TpnAudit and update the THIRD-PARTY-NOTICES.TXT file. Use when the user asks to "update TPNs", "audit third-party notices", "check third-party licenses", or after adding/removing a dependency. Scans submodules, vendored code, NuGet packages, and native libraries to ensure the TPN file is complete and accurate.dotnet/android2,138
- Dotnext ConcurrencyConcurrent data structures and allocation-free async building blocks from the DotNext.Threading NuGet package - AsyncLazy, TaskCompletionPipe, reusable ValueTaskCompletionSource, CancellationTokenMultiplexer, AsyncCounter (throttling), AsyncStateTracker, distributed leases, BoundedObjectPool and the SIEVE-based RandomAccessCache. Use when replacing Lazy<T> or Lazy<Task<T>> with async initialization; when reducing allocations of TaskCompletionSource, linked CancellationTokenSource or Task.WhenEacdotnet/dotNext1,963
- Dotnext CoreCore types from the DotNext NuGet package - Optional<T> and Result<T> monads, Optional JSON serialization (PATCH DTOs with omitted fields), Timestamp, EnumType attribute lookup, ConsoleLifetimeTokenSource, TypeMap/ConcurrentTypeMap, LocalReference and UserData. Use when expressing absent values or errors without exceptions; when distinguishing undefined and null JSON fields; when measuring elapsed time or tracking deadlines; when reading attributes of enum members; when handling console app shutdotnet/dotNext1,963
- Dotnext MemoryAllocation-free memory routines from the DotNext and DotNext.Unsafe NuGet packages - SpanOwner (safe stackalloc with pooled fallback), BufferWriterSlim (stack-allocated StringBuilder/buffer replacement with string interpolation), PoolingBufferWriter, PoolingArrayBufferWriter, SparseBufferWriter, and the MemoryAllocator abstraction over ArrayPool, plain arrays and unmanaged memory. Use when reducing allocations in .NET hot paths; when stackalloc length comes from input; when replacing StringBuilddotnet/dotNext1,963
- Dotnext ThreadingAsync synchronization primitives from the DotNext.Threading NuGet package - async exclusive and reader/writer locks (with sync acquisition for mixed callers), auto/manual reset events, countdown event, barrier, AsyncTrigger, awaiting WaitHandle/CancellationToken, and custom primitives via QueuedSynchronizer<T>. Use when writing async .NET code that needs mutual exclusion or signaling without blocking threads, or that must await a WaitHandle or a CancellationToken; and when converting lock/Monitodotnet/dotNext1,963
- Wcf Csharp StyleUse this skill whenever creating, editing, reviewing, porting, modernizing, or formatting C# code or C# tests in dotnet/wcf. Applies repository code style, legacy-porting safeguards, analyzer guidance, and changed-code-only formatting. Use for implementation work, test changes, PR cleanup, code review, analyzer fixes, and .NET Framework ports. Never mass-format existing source or hand-format generated, reference, or baseline files.dotnet/wcf1,750
- Generate EF DocumentationCreate documentation PRs in the EF documentation site when new features are implemented in EF Core.dotnet/EntityFramework.Docs1,737
- Bundle Dependency PrsFix broken dependency update PRs and aggregate the ones that work into one PR.dotnet/Nerdbank.GitVersioning1,589
- Update Library TemplateMerges the latest Library.Template into this repo (at position of HEAD) and resolves conflicts.dotnet/Nerdbank.GitVersioning1,589
- Release NotesGenerate release notes for the dotnet/diagnostics repository. Use when asked to generate release notes, a release summary, or a changelog.dotnet/diagnostics1,330
- Agentic WorkflowsRoute gh-aw workflow design/create/debug/upgrade requests to the right prompts.dotnet/dotnet1,285
- Api ReviewAuthor and file a separate ASP.NET Core API review issue from an originating issue and an implementation pull request or commits. USE FOR writing API review issues, preparing api-ready-for-review proposals, filling API proposal templates, creating API review descriptions from issues and code changes, "fill out the API review", "prepare API review", or opening a pull request that changes public API. DO NOT USE FOR reviewing API design decisions, approving APIs, implementing APIs, or general code dotnet/dotnet1,285
- Assessing Breaking ChangesGuides assessment of backward compatibility for MSBuild changes. Consult when modifying behavior, adding warnings or errors, changing defaults, altering target ordering, removing or deprecating features, deciding whether a change needs a ChangeWave, reviewing blast radius of behavioral changes, or when a PR introduces user-visible output differences.dotnet/dotnet1,285
- Authoring Errors And WarningsGuides authoring of MSBuild errors, warnings, and diagnostic messages. Consult when adding new MSBxxxx codes, writing or modifying user-facing diagnostic text, deciding between error/warning/message severity, working with Strings.resx resource files, formatting paths in error output, or evaluating whether a new warning could break WarnAsError builds.dotnet/dotnet1,285
- Binlog AnalysisTriage a build / compile / restore / WarnAsError failure from its MSBuild binary log. Fetches the binlog (a local build's, or a failed dotnet/fsharp Azure DevOps PR build's published artifact) and analyzes it live via the `binlog-mcp` MCP server — structured errors, root-cause diagnosis, and an MSBuild perf X-ray. NOT for test failures or CheckCodeFormatting: a build binlog has no errors there.dotnet/dotnet1,285
- Change TrackingImplementation details for EF Core change tracking. Use when changing InternalEntityEntry, ChangeDetector, SnapshotFactoryFactory, or related entity state, snapshot, or property accessor code.dotnet/dotnet1,285
- ChangewavesManage MSBuild Change Waves: create new waves, condition features behind opt-out flags, write tests for wave-gated features, document change waves in ChangeWaves.md, and retire expired waves. Use when adding changes that need an opt-out or rotating out old change waves. Changes that introduce a user-visible behavior change should consider whether to use a changewave.dotnet/dotnet1,285
- Code CompactionUse when a code/test/comment diff is called bloated, slop, LLM slop, bullshit, WTF, crap, rubbish, embarrassing, overengineered, adhoc, or "not paid by LOC"; or when symptoms include bloated comments, superfluous planning .md / .tools / one-time setup / phase-or-sprint tags, huge-file growth instead of new-file extraction, 5 copy-pasted tests that should be 1 parametrized test, duplicated test setup, reinvented helpers, near-duplicate logic across files, low reuse, 4+ new module-level helpers fodotnet/dotnet1,285
- Code ReviewReview EF Core pull requests or local changes for concrete correctness, compatibility, performance, security, and test-coverage problems. Use when asked to review, critique, or check code changes before merge or submission.dotnet/dotnet1,285
- Cosmos ProviderImplementation details for the EF Core Azure Cosmos DB provider. Use when changing Cosmos-specific code.dotnet/dotnet1,285
- Create KbeSelect and verify a Build Insights Known Build Error matcher for one concrete ASP.NET Core CI test failure.dotnet/dotnet1,285
- Creating SkillsCreate custom agent capabilities when discovering novel tools, receiving task-agnostic tips from reviewers, or after researching specialized workflows not covered in existing instructions. Teaches structure, YAML optimization for LLM discoverability, and token efficiency.dotnet/dotnet1,285
- Cswin32 ComGuides struct-based COM interop in MSBuild using CsWin32 patterns. Consult when working with ComScope<T>, ComClassFactory, IComIID, IID.Get<T>(), delegate* unmanaged vtables, CoCreateInstance, or manually defining COM interfaces not in Win32 metadata (e.g. WMI IWbemLocator, IWbemServices).dotnet/dotnet1,285
- Cswin32 InteropGuides CsWin32 P/Invoke interop in MSBuild. Consult when working with the PInvoke class, Windows.Win32 namespaces, FEATURE_WINDOWSINTEROP, HANDLE/HMODULE/HRESULT types, BufferScope<T>, replacing [DllImport] with CsWin32, or conditioning Windows-only code for source builds.dotnet/dotnet1,285
- Deploy Msbuild To VsDeploy locally-built MSBuild binaries into a Visual Studio installation for testing and debugging. Use when you need VS itself to use your local MSBuild changes, or when debugging MSBuild as invoked by VS.dotnet/dotnet1,285