.NET (Microsoft)
- 366 skills
- 0 followers
- 4k repo stars
- 114 verified
- last week last updated
- ▌ Aspire Deployment · dotnet bundle**WORKFLOW SKILL** — Deploy Aspire apps from AppHost models to Docker Compose, Kubernetes, Azure, or AWS. WHEN: "deploy Aspire app", "publish Aspire artifacts", "deploy to Azure Container Apps", "generate Kubernetes artifacts", "tear down Aspire deployment". INVOKES: aspire CLI, Aspire docs, target cloud/container CLIs. FOR SINGLE OPERATIONS: use generic Azure, Kubernetes, Docker, or AWS tools only when no Aspire AppHost exists.
- ▌ Aspire Monitoring · dotnet bundle**ANALYSIS SKILL** - Observe Aspire apps: logs, traces, metrics, resource state, telemetry export, browser telemetry, and the standalone dashboard. Routes between local Aspire CLI, AKS workload diagnostics, and deployed Azure resource health. USE FOR: aspire logs, aspire otel logs, aspire otel traces, aspire otel spans, aspire describe, aspire ps, aspire export, aspire dashboard run, --include-hidden, browser logs in dashboard, WithBrowserLogs, App Insights query, AKS pod logs, container app logs. DO NOT USE FOR: start/stop/wait (use aspire-orchestration), deploy/publish/destroy (use aspire-deployment), AppHost code edits like WithBrowserLogs() (use aspireify), Azure provisioning (use azure-prepare). INVOKES: aspire CLI, azure-diagnostics (deployed Azure), kubectl + Container Insights. FOR SINGLE OPERATIONS: Run the aspire CLI command directly for quick log or describe lookups.
- ▌ Aspire Orchestration · dotnet bundle**WORKFLOW SKILL** — Manage Aspire AppHost lifecycle and recover from file locks, port conflicts, and orphaned processes. WHEN: "start my Aspire app", "aspire start", "aspire stop", "aspire wait", "restart the API service", "file lock error", "MSB3491", "CS2012", "port already in use", "upgrade Aspire CLI", "aspire update --self", "proxies missing in aspire ps", "--include-hidden", "aspire integration list", "aspire integration search", "default watch", "hot reload". INVOKES: aspire CLI (start, stop, wait, ps, resource, integration, add, init, doctor, update, restore). FOR SINGLE OPERATIONS: Run the aspire CLI command directly.
- ▌ Verify Releases · dotnet bundleValidate releases and release links: URL liveness, file hashes, CDN latest.version files, and aka.ms redirect targets. Uses release-notes verify and generate commands against the local release-notes directory. USE FOR: validate the latest release, validate release links, validating that all download links return HTTP 200, verifying SHA512 hashes match downloaded content, checking CDN latest.version files match releases.json, checking aka.ms redirects point to the correct download URLs, regenerating releases-index.json and releases.md after source data changes. DO NOT USE FOR: editing releases.json or release.json (edit source data directly), graph regeneration (use update-release-graph skill), supported-os changes (use update-supported-os skill).
- ▌ Generate Changes · dotnetGenerate `changes.json` for a .NET release milestone by selecting the correct VMR base/head refs and running `release-notes generate changes`. Handles preview-only multi-branch targeting (`main` vs release branches vs tags) and emits the authoritative manifest of what shipped. DO NOT USE FOR: API diffs (use api-diff), API verification (use api-diff-validation), feature scoring (use generate-features), or writing markdown release notes (use release-notes).
- ▌ Editorial Scoring · dotnetApply the shared reader-centric rubric used to rank candidate features for release notes, blog posts, and docs. Use this when you need scoring and cut guidance independent of any one output format or task.
- ▌ Generate Features · dotnetGenerate `features.json` from `changes.json` by ranking and annotating shipped changes. `features.json` keeps the same schema as `changes.json` and adds optional scoring fields so release notes, docs, and blog posts can apply different cutoffs. Uses the shared `editorial-scoring` rubric. DO NOT USE FOR: regenerating VMR diffs (use generate-changes) or writing final markdown (use release-notes).
- ▌ Update Os Packages · dotnet bundleAudit and update os-packages.json/md files that document required Linux packages for each .NET release. Uses the release-notes tool to verify package names against distro archives and regenerate markdown. USE FOR: adding packages for new distro versions, fixing incorrect package names, periodic package audits. DO NOT USE FOR: supported-os.json changes (use update-supported-os skill), editing os-packages.md directly (it is generated from JSON).
- ▌ API Diff Validation · dotnetValidate that a generated API diff matches the APIs actually shipped in a .NET build, and that every new API traces to a real change. Uses dotnet-inspect to query the build's ref packs and cross-references new APIs against candidate PRs to catch missed reverts, renames, and kept-internal APIs before they reach release notes. Distinct from the pure api-diff skill, which only generates the diff reports.
- ▌ Update Supported Os · dotnet bundleAudit and update supported-os.json/md files to reflect current OS version support. Uses the release-notes tool for automated verification against upstream lifecycle data and markdown regeneration. USE FOR: adding new OS versions, moving EOL versions to unsupported, periodic support matrix audits. DO NOT USE FOR: os-packages.json changes (use update-os-packages skill), editing supported-os.md directly (it is generated from JSON).
- ▌ Review Release Notes · dotnetReview `features.json` scores and draft release notes against the editorial examples and the shared `editorial-scoring` rubric. Use it to identify over-scored, under-scored, or missing features before publishing release notes. DO NOT USE FOR: generating `changes.json` or writing the first draft.
- ▌ Update Release Graph · dotnetUpdate the HAL+JSON release information graph when new .NET releases ship. Regenerates index files across the version hierarchy (root → major → patch), timeline hierarchy (timeline → year → month), llms.json, and downloads using graph generator tools. USE FOR: adding a new patch release to the graph, adding a new major version, updating timeline entries after a release, refreshing the graph after source data changes. DO NOT USE FOR: supported-os.json changes (use update-supported-os skill), querying the graph (use dotnet-releases skill on release-index branch), editing generated graph files by hand (update source data and regenerate).
- ▌ Update Distro Packages · dotnetCreate and update per-distro package files in release-notes/{version}/distros/ that document .NET runtime dependencies and package availability for each Linux distribution. USE FOR: setting up distros/ for a new .NET version, updating dependency package names when distro versions change, auditing package data. DO NOT USE FOR: supported-os.json changes (use update-supported-os skill), os-packages.json (legacy format).
- ▌ Update Existing Branch · dotnetRefresh an existing .NET release-notes milestone branch set incrementally. Checks whether the VMR ref moved, regenerates `changes.json` only when needed, merges the delta into `features.json`, integrates new material into existing markdown clusters across the per-component branches, and responds to review feedback. USE FOR: reruns on a populated release-notes branch set. DO NOT USE FOR: first-pass generation of a new milestone (use generate-changes, generate-features, and release-notes).
- ▌ Publish Release Announcements · dotnetCreate the GitHub release discussion in dotnet/core and the locked mirror announcement issue in dotnet/announcements for a .NET preview, RC, or GA release. USE FOR: publishing release discussions after release notes exist, mirroring a newly created discussion into dotnet/announcements, verifying an existing post, and re-running a partially completed publication safely. DO NOT USE FOR: writing release notes, generating changes/features.json, or retrying create commands blindly after cancellation.
- ▌ API Diff · dotnetGenerate before/after .NET public API diff reports for a release milestone with `RunApiDiff.ps1`. Pure report generation only; to verify the diff against the shipped build (dotnet-inspect, revert detection) use the api-diff-validation skill.
- ▌ Release Notes · dotnet bundleGenerate and maintain .NET release notes from `features.json`. Uses `generate-changes` for authoritative shipped-change data, `generate-features` for scoring/triage, `update-existing-branch` for incremental reruns on populated branches, `editorial-scoring` for the shared rubric, `api-diff` to generate API diff reports and `api-diff-validation` for API verification, and a multi-model `review-release-notes` pass for final editorial QA.
- ▌ Hex1b · dotnetCLI tool for automating any terminal application — TUI apps, shells, CLI tools, REPLs, and more. Use when you need to launch a process in a virtual terminal, capture its screen output, inject keystrokes or mouse input, take screenshots, record sessions, or assert on what's visible.
- ▌ Create Pr · dotnetCreate a pull request using the repository PR template. Use when asked to: create PR, open PR, push and create PR, submit PR, open pull request, send changes for review.
- ▌ API Review · dotnetReviews .NET API surface area PRs for design guideline violations. Analyzes api/*.cs file diffs, applies review rules from .NET Framework Design Guidelines and Aspire conventions, and attributes findings to the developer who introduced each API (via git blame). Use this when asked to review API surface area changes.
- ▌ Pr Testing · dotnet bundleUse when asked to test a microsoft/aspire pull request, including CLI, hosting, dashboard, component, template, and VS Code extension changes. Also covers testing PRs that change CI infrastructure — GitHub Actions (workflows, actions, gh-aw agentic workflows, CI scripts under .github/ and eng/) and Azure DevOps pipelines (eng/pipelines, eng/common).
- ▌ Hosting Integration Authoring · dotnet bundleGuides authoring and reviewing Aspire.Hosting integration APIs. Classifies integration archetypes, then applies self-contained best practices for naming, resource shape, run/publish/deploy behavior, eventing, connection properties, security, endpoint semantics, polyglot exports, READMEs, and tests.
- ▌ Reviewing Aspire Architecture · dotnetUse only when the user explicitly requests a deep Aspire architectural or pattern review of an existing PR or diff, or when a generic reviewer escalates a named Aspire-domain question it cannot resolve. Do not use for ordinary review, implementation, debugging, explanation, or design discussion—even when a PR is referenced—and never select it from changed file paths alone.
- ▌ Backport Pr · dotnetBackports a merged PR to a release branch by triggering the /backport bot, waiting for the bot-created PR, and filling in the shiproom template (Customer Impact, Testing, Risk, Regression?). Use when asked to: backport a PR, port a fix to a release branch, fill in a backport template, prepare a backport for shiproom review.
- ▌ Code Review · dotnetReview a GitHub pull request for problems. Use when asked to review a PR, do a code review, check a PR for issues, or review pull request changes. Focuses only on identifying problems — not style nits or praise.
- ▌ Startup Perf · dotnetMeasures Aspire startup profiling with CLI self-profile capture and dashboard export traces.
- ▌ Azdo Internal · dotnetExpert knowledge for triggering, monitoring, and validating changes to the Aspire internal Azure DevOps pipeline (microsoft-aspire, definition 1602) on dnceng/internal. Use when asked to trigger an internal/AzDO build, check pipeline/build status, push to the internal mirror, or validate eng/ pipeline (eng/pipelines/azure-pipelines.yml / release pipeline) changes for the microsoft/aspire repository.
- ▌ Fix Flaky Test · dotnet bundleReproduces and fixes flaky or quarantined tests. Tries local reproduction first (fast), then falls back to CI reproduce workflow (reproduce-flaky-tests.yml). Use this when asked to investigate, reproduce, debug, or fix a flaky test, a quarantined test, or an intermittently failing test.
- ▌ CLI E2e Testing · dotnet bundleUse when creating, modifying, debugging, or reviewing Aspire CLI end-to-end tests that use Hex1b terminal automation under tests/Aspire.Cli.EndToEnd.Tests/.
- ▌ Test Management · dotnetQuarantines or disables flaky/problematic tests using the QuarantineTools utility
- ▌ CI Test Failures · dotnetGuide for diagnosing GitHub Actions test failures, extracting failed tests from runs, and creating or updating failing-test issues. Use this when asked to investigate GitHub Actions test failures, download failure logs, create failing-test issues, or debug CI issues.
- ▌ Vscode Extension · dotnetUse when investigating, developing, debugging, testing, or reviewing Aspire VS Code extension behavior under extension/, including extension UI, command, debugger, RPC, DCP, MCP, and CLI-integration issues or features.
- ▌ Dashboard Testing · dotnetGuide for writing tests for the Aspire Dashboard. Use this when asked to create, modify, or debug dashboard unit tests or Blazor component tests.
- ▌ Dependency Update · dotnet bundleGuides dependency version updates by checking nuget.org for latest versions, triggering the dotnet-migrate-package Azure DevOps pipeline, and monitoring runs. Use this when asked to update external NuGet dependencies.
- ▌ Issue Investigation · dotnetInvestigates GitHub issues in microsoft/aspire by gathering issue context, routing to specialized skills, preparing the right reproduction environment, reproducing behavior, and drafting evidence-backed findings or insufficient-info comments for user approval. Use when asked to investigate, reproduce, validate, debug, triage, or root-cause an Aspire issue.
- ▌ CLI Channel Debugging · dotnet bundleEmulates any Aspire CLI build identity (channel, version, commit, package source) from a locally built CLI using ASPIRE_CLI_* environment variables and the install sidecar, so a reported bug can be reproduced and fixed locally without going through the install/PR loop. Use this when asked to reproduce channel/version/quality-specific CLI behavior, simulate a daily/staging/stable/PR build locally, or decide which override knobs to set for a given scenario.
- ▌ Connection Properties · dotnetSpecialized agent for creating and improving Connection Properties in Aspire resource and README files
- ▌ Deprecate Integration · dotnetSunsets (soft-deprecates) a shipped Aspire hosting integration: marks its public API [Obsolete], adds a README warning banner, hides the package from `aspire add`, removes integration-specific automation, suppresses the resulting warnings in first-party consumers, and ships one final obsolete release. Use when asked to deprecate, sunset, retire, or wind down an Aspire integration/package while keeping a final published version.
- ▌ Deployment E2e Testing · dotnetGuide for writing Aspire deployment end-to-end tests. Use this when asked to create, modify, or debug deployment E2E tests that deploy to Azure.
- ▌ Update Container Images · dotnet bundleUpdates Docker container image tags used by Aspire hosting integrations. Queries registries for newer tags, uses LLM to determine version-compatible updates, and applies changes. Use this when asked to update container image versions.
- ▌
- ▌ Merge Main To Nightly · dotnet bundleCreate a PR to merge main into the nightly branch after a .NET containers release. Use only when specifically asked to "merge main to nightly".
- ▌ Dockerfile And Readme Templating · dotnetModify Cottle templates that generate Dockerfiles and READMEs in dotnet/dotnet-docker.
- ▌ Porting Changes · dotnet bundlePlan and move changes between branches in dotnet/dotnet-docker. Use when asked to port or backport changes.
- ▌ Image Management · dotnetManages .NET Docker images including adding images for new .NET versions, new Linux distros (Alpine, Ubuntu, Azure Linux), and new Windows versions. Handles Dockerfile templates, manifest updates, test data, and README generation.
- ▌ Validate Sdk · dotnetInstall and validate a .NET SDK from an Azure DevOps internal build. Use this when asked to install, validate, or set up a .NET SDK from a dnceng/internal Azure DevOps build link or build ID.
- ▌ CI Analysis · dotnetAnalyze CI build and test status from Azure DevOps and Helix for dotnet repository PRs. Use when checking CI status, investigating failures, determining if a PR is ready to merge, or given URLs containing dev.azure.com or helix.dot.net. Also use when asked "why is CI red", "test failures", "retry CI", "rerun tests", "is CI green", "build failed", "checks failing", or "flaky tests".
- ▌ Snap · dotnetPerform a branch snap (release branch cut) for dotnet repos like dotnet/roslyn. Use when: snapping a branch, cutting a release branch, creating a release branch, merging main into release, updating VS insertion config, updating darc subscriptions for a snap, moving milestones, or asked about snap workflow.
- ▌ Integration Test Analysis · dotnetInvestigate Visual Studio integration test failures from Azure DevOps builds. Use when investigating integration test timeouts, crashes, or failures in the roslyn-integration-CI pipeline. Also use when asked "why are integration tests failing", "integration test timeout", "VS integration tests", or given AzDO build URLs from the roslyn-integration-CI pipeline.
- ▌ New Compiler Feature · dotnetSet up tracking for a new C# compiler feature: create test plan issue, feature label, update Language Feature Status page, and link related PRs. Use when: setting up a new language feature, creating a test plan, tracking a new csharplang proposal in roslyn, or asked to 'set up feature tracking'.
- ▌ Vmr Codeflow Status · dotnetAnalyze VMR codeflow PR status for dotnet repositories. Use when investigating stale codeflow PRs, checking if fixes have flowed through the VMR pipeline, debugging dependency update issues in PRs authored by dotnet-maestro[bot], checking overall flow status for a repo, or diagnosing why backflow PRs are missing or blocked.
- ▌ Merge Into Branch · dotnetCreate a merge branch from a chosen base, merge a chosen source/upstream branch into it, resolve common Roslyn conflicts (`.xlf`, `.resx`, compiler codegen), and summarize the resolutions.
- ▌ Run Toolset Tests · dotnetRun the razor-toolset-ci pipeline to validate the current branch against large third-party repositories (MudBlazor, OrchardCore, ASP.NET Core, etc.). Use when asked to run toolset tests, ecosystem tests, or third-party validation.
- ▌ Update Agent Docs · dotnetUpdate the agent knowledge base after making code changes in the Roslyn repo. Run at the end of every task that modifies code, adds files, changes public APIs or diagnostics, or establishes new patterns. Keeps .github/memory/ fresh and reliable.
- ▌ Analyzer Codefix · dotnetCreate or modify Roslyn IDE analyzers, code fixes, and code refactorings. Use when: adding a new IDE diagnostic (IDE0xxx), implementing a CodeFixProvider, implementing a CodeRefactoringProvider, writing analyzer/fixer tests, or working with AbstractBuiltInCodeStyleDiagnosticAnalyzer. Also use for: diagnostic analyzer, code action, FixAllProvider, TestInRegularAndScriptAsync, TestMissingInRegularAndScriptAsync.
- ▌ Formatting Log · dotnetImport Razor formatting log zips that the user has already downloaded from Azure DevOps feedback tickets or GitHub issues into FormattingLogTest, validate whether the captured problem still reproduces, and if needed drive a minimal repro plus fix workflow.
- ▌ Vectorization · dotnetDesign, 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.
- ▌ Testability Obstacle · dotnetMUST USE for C#/.NET deterministic tests that require the smallest production seam for DateTime/Task.Delay/File/Environment/Guid/Random, static API preservation, nested/parallel overrides, or no real I/O. USE ONLY when the target workspace contains C# source plus a .csproj or .sln. DO NOT USE for audits, bulk migration, code that already has an injectable seam, or an explicit migration to a user-named existing abstraction (migrate-static-to-wrapper). Use instead of general test generation when the requested test is impossible without a production edit and seam selection is still open.
- ▌ Copy To Output Directory · dotnetChoosing an MSBuild CopyToOutputDirectory / CopyToPublishDirectory mode: Never, PreserveNewest, Always, and IfDifferent (MSBuild 17.13+), plus $(SkipUnchangedFilesOnCopyAlways). USE FOR: removing the per-build Always copy perf hit; resetting output files mutated between builds. DO NOT USE FOR: general incremental-build diagnosis (use incremental-build); non-MSBuild build systems.
- ▌ Create Datadriven Aspnetcore · dotnetGenerate 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 components that match the project's existing CSS framework and coding patterns, or (4) creating data-driven forms, tables, and navigation for a model class. Do not use for non-ASP.NET projects or when CLI-based scaffolding is preferred.
- ▌ Scaffold Dotnet Test Project · dotnetMUST USE when an existing .NET test project was excluded from a .slnf/CI solution filter, disappeared from .sln/.slnx discovery, or lost its production ProjectReference; also for requests to set up, create, reuse, add, register, include, or repair a test project. Handles "tests pass directly but CI discovers zero", exact solution wiring, xUnit/NUnit/MSTest, and central packages. DO NOT USE to only author tests in an already-wired project (code-testing-agent), run tests, migrate, or correct MSTest syntax/configuration without changing project or CI files (writing-mstest-tests).
- ▌ Improve Skill Quality · dotnet bundleDiagnoses 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 brand-new skill (use create-skill) or a brand-new eval (use create-skill-test).
- ▌ Test Analysis Extensions · dotnet bundleProvides file paths to language-specific reference files for polyglot test analysis skills, enabling framework-aware detection of test markers, assertions, and patterns across .NET, Python, TypeScript, Java, Go, Ruby, Rust, Swift, Kotlin, PowerShell, and C++.
- ▌ Migrate Xunit To Xunit V3 · dotnetMigrates .NET test projects from xUnit.net v2 to xUnit.net v3, updating package references, project files, and code to compile and pass tests.
- ▌ Convert Blazor Server To Webapp · dotnetConverts a pre-.NET 8 Blazor Server app into a .NET 8+ Blazor Web App by updating project files, migrating entry points, and adopting new render modes.
- ▌ Configuring Opentelemetry Dotnet · dotnetConfigure OpenTelemetry distributed tracing, metrics, and logging in ASP.NET Core using the .NET OpenTelemetry SDK.
- ▌ Dotnet Trace Collect · dotnet bundleGuides developers through capturing diagnostic artifacts to diagnose production .NET performance issues, including tool selection and data collection across Windows, Linux, containers, and Kubernetes.
- ▌ Incremental Build · dotnetDiagnose and fix slow MSBuild incremental builds by identifying why targets re-execute unnecessarily, covering common causes like missing Inputs/Outputs, volatile properties, and FileWrites registration.
- ▌ Property Patterns · dotnetProvides canonical MSBuild property definition patterns including conditional defaults, composition, path normalization, target framework detection, and evaluation order for diagnosing and fixing property issues in .props and .csproj files.
- ▌ Test Smell Detection · dotnet bundleAudits test code in any language using the academic testsmells.org 19-smell catalog, producing a severity-ranked report with specific locations and actionable fixes.
- ▌ Writing Mstest Tests · dotnetWrite, create, modernize, or fix comprehensive MSTest unit tests with MSTest 3.x/4.x APIs, covering assertions, data-driven tests, lifecycle, and async patterns.
- ▌ Dotnet Aot Compat · dotnet bundleResolve IL trim and AOT analyzer warnings in .NET projects to make them compatible with Native AOT and trimming.
- ▌ Fetch And Send Data · dotnetCall APIs, load data into components, and handle the async lifecycle in Blazor.
- ▌ Maui Shell Navigation · dotnet bundleImplement Shell-based navigation in .NET MAUI apps, including AppShell setup, URI-based navigation with GoToAsync, route registration, query parameters, flyout and tab configuration, and navigation guards.
- ▌ Find Untested Sources · dotnet bundleParse source files to find which ones have no test file referencing their declared types, producing a prioritized worklist of untested files.
- ▌ Support Prerendering · dotnetFix interactive Blazor components that break during prerender: duplicate data loads, null references, UI flicker, and state loss. Persist state across the prerender-to-interactive handoff, disable prerendering, exclude pages from interactive routing, and detect prerender vs interactive at runtime.
- ▌ Build Perf Baseline · dotnetMeasure and optimize .NET build performance by establishing baselines, enabling MSBuild Server, using artifacts output, and trimming dependency graphs.
- ▌ Check Bin Obj Clash · dotnetDetects MSBuild projects with conflicting OutputPath or IntermediateOutputPath to diagnose build failures.
- ▌ Coordinate Components · dotnetShare state between Blazor components across render mode boundaries using cascading values, scoped services with change events, or CascadingValueSource via DI.
- ▌ Create Blazor Project · dotnet bundleScaffolds new Blazor web applications with the correct render mode, project structure, and authentication setup.
- ▌ Msbuild Antipatterns · dotnet bundleDetects and fixes common MSBuild anti-patterns in .csproj, .vbproj, .fsproj, .props, .targets, and .proj files, covering Exec misuse, unquoted conditions, hardcoded paths, and more.
- ▌ Code Testing Extensions · dotnet bundleProvides file paths to language-specific extension files for the code-testing pipeline, enabling discovery of guidance for .NET, Python, TypeScript, and other languages.
- ▌ Clr Activation Debugging · dotnet bundleAnalyzes .NET Framework CLR activation logs to diagnose runtime loading failures, version selection issues, and Feature-on-Demand dialog behavior.
- ▌ Msbuild Modernization · dotnetMigrate legacy MSBuild project files to SDK-style format, reducing .csproj complexity and enabling modern .NET features.
- ▌ Apple Crash Symbolication · dotnet bundleSymbolicate .NET runtime frames in Apple platform .ips crash logs by extracting UUIDs and addresses, locating dSYM debug symbols, and running atos to produce function names with source file and line numbers.
- ▌ Maui Dependency Injection · dotnet bundleConfigure dependency injection in .NET MAUI apps — service registration in MauiProgram.cs, lifetime selection, constructor injection, Shell navigation auto-resolution, platform-specific registrations, and testability patterns.
- ▌ Build Perf Diagnostics · dotnetDiagnose MSBuild build performance bottlenecks using binary log analysis, covering timeline analysis, performance summary interpretation, and seven common bottleneck categories.
- ▌ Migrate Static To Wrapper · dotnetMechanically replace static dependency call sites with wrapper or built-in abstraction calls across a bounded scope, such as migrating DateTime.UtcNow to TimeProvider.GetUtcNow() or File.ReadAllText to IFileSystem.
- ▌ Thread Abort Migration · dotnetMigrates .NET Framework code using Thread.Abort to cooperative cancellation with CancellationToken in modern .NET 6+.
- ▌ Optimizing Ef Core Queries · dotnetOptimize Entity Framework Core queries by fixing N+1 problems, choosing correct tracking modes, using compiled queries, and avoiding common performance traps.
- ▌ Binlog Failure Analysis · dotnetDiagnose MSBuild build failures by analyzing .binlog files using an MCP server or text-log replay.
- ▌ Detect Static Dependencies · dotnetScan C# source files for hard-to-test static dependencies and produce a ranked report of static call sites by frequency.
- ▌ Nuget Trusted Publishing · dotnet bundleSet up NuGet trusted publishing (OIDC) on a GitHub Actions repo, replacing long-lived API keys with short-lived tokens.
- ▌ Analyzing Dotnet Performance · dotnet bundleScans C#/.NET code for ~50 performance anti-patterns across async, memory, strings, collections, LINQ, regex, serialization, and I/O with tiered severity classification.
- ▌ Including Generated Files · dotnetFix MSBuild targets so generated files are compiled, copied to output, and cleaned properly.
- ▌ Minimal API File Upload · dotnetImplement file upload endpoints in ASP.NET Core minimal APIs (.NET 8+) with size limits, content validation, and streaming.
- ▌ Resolve Project References · dotnetPrevents misguided optimization of MSBuild's ResolveProjectReferences target by explaining that its reported time is wall-clock wait time, not CPU work, and redirects to task self-time analysis.
- ▌ Template Authoring · dotnetGuides creation and validation of custom dotnet new templates from existing projects, including template.json authoring and packaging for NuGet distribution.
- ▌ Template Discovery · dotnetFinds, inspects, and compares .NET project templates by resolving natural-language descriptions to ranked template matches with pre-filled parameters.
- ▌ Generate Testability Wrappers · dotnetGenerate wrapper interfaces, default implementations, and DI registration code to make hard-to-test static dependencies in C# testable, using built-in abstractions like TimeProvider or custom wrappers.