Diagnose dotnet-msbuild binlog MCP startup failures. USE FOR: CONNECTION_CLOSED, binlog server won't connect, missing binlog tools, Microsoft.AITools.BinlogMcp not found, dnx launch errors. Checks workspace SDK, feeds, and source mapping without bypassing policy. DO NOT USE FOR: errors inside a binlog (use binlog-failure-analysis), capturing binlogs (use binlog-generation), unrelated MCP servers.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Remove repeated NuGet restores from multi-step .NET builds safely. USE FOR: build/test/publish steps that each restore, Directory.Build.rsp with -restore, safe restore suppression, NETSDK1004/NETSDK1047 after --no-restore. DO NOT USE FOR: slow first restore, only one restore, version or lock errors, unranked build slowness (use build-perf-baseline).
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Assess tests for an identified code or test change, feature, PR or commit. USE FOR: review changed behavior or regression tests, prove pre-fix/missing behavior is detected, revision-bound red-green evidence. Polyglot. DO NOT USE without an identified change: hypothetical mutations or general suite blind spots (test-gap-analysis). Also exclude per-test readiness/A-F grades (grade-tests), coverage (coverage-analysis), new suites (code-testing), or mutation engines.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Use dotnet-diagnostics-mcp for MCP-driven .NET CPU, allocation, GC, and test-host profiling. USE FOR: profiling unit tests or investigating runtime bottlenecks. DO NOT USE FOR: writing test assertions, coverage collection, or precise microbenchmark timing. INVOKES: connect the MCP server, select target processes, collect bounded profiles, and attribute hotspots to source.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Provides guidance on the new System.Diagnostics.Process APIs introduced in .NET 11: Process.Run, Process.RunAndCaptureText, Process.StartAndForget, Process.ReadAllText/Bytes/Lines, KillOnParentExit, InheritedHandles, and StartDetached. USE FOR: starting, orchestrating, or capturing output from external processes in applications targeting net11.0 or later. DO NOT USE FOR: applications targeting .NET 10 or earlier, or basic pre-.NET 11 Process.Start usage without new APIs.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Inspect and update NuGet package families using ManagedCode NuGetPackageManager, the nuget-manager CLI, or its VS Code extension. USE FOR: checking outdated packages; dry-run family reviews; applying reviewed literal package and explicit project SDK version updates. DO NOT USE FOR: adding/removing packages; dependency graph resolution; authenticated private-feed setup. INVOKES: inspect declarations, preview and review exact versions, apply authorized changes, then restore and run focused regressions.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Use Roslynk for semantic inspection and edits of *.cs, *.razor and *.cshtml solution files.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Build and debug Avalonia 11/12 .NET applications with XAML, compiled bindings, MVVM, custom controls, desktop lifetimes, and platform publishing. USE FOR: Avalonia projects, bindings, commands, themes, UI dispatch, trimming, or Native AOT. DO NOT USE FOR: WPF, WinUI, MAUI, Uno, or Avalonia XPF compatibility work. INVOKES: inspect installed versions, implement, and validate on the actual target platforms.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
ALWAYS USE for test work that requires changes: write, add, generate, repair, or strengthen tests for existing code in xUnit, MSTest, NUnit, pytest, Vitest/Jest, Go, or another framework. Includes regression cases, failing or flaky tests, coverage-driven additions, and audit-then-fix requests. Focused work stays direct; broad or multi-stage work invokes test-engineer. DO NOT USE for only running tests, analysis-only audits, framework/platform migrations, a test blocked on a missing production seam (testability-obstacle), or MSTest API/configuration corrections that do not design new cases (writing-mstest-tests). Within an active test-engineer pipeline, reuse supplied guidance and do not re-enter this skill.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Route C# and .NET requests to the exact installed specialist or smallest dotnet/skills marketplace plugin. USE FOR: "which specialist should own this" or "how do I add the skill" requests involving ASP.NET Core endpoints, Blazor, MAUI binding, Windows Forms specialist selection or installation, EF Core queries, test or framework migration, runtime CPU/allocation evidence, file-based C#, editor/compiler defects, a surviving MSBuild `.binlog`, or a plugin missing from `/skills`; also use for C# semantics when no narrower specialist exists. DO NOT USE FOR: requests that already name the exact installed specialist to invoke, or work unrelated to C# or .NET.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Guide for modernizing and migrating MSBuild project files to SDK-style format. USE FOR: converting legacy .csproj/.vbproj with verbose XML to SDK-style, migrating packages.config to PackageReference, removing Properties/AssemblyInfo.cs in favor of auto-generation, eliminating explicit Compile Include lists via implicit globbing, consolidating shared settings into Directory.Build.props. Indicators of legacy projects: ToolsVersion attribute, an Import of Microsoft.CSharp.targets via $(MSBuildToolsPath), .csproj files over 50 lines for simple projects. DO NOT USE FOR: projects already in SDK-style format, non-.NET build systems (npm, Maven, CMake), .NET Framework projects that cannot move to SDK-style.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Own 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.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Own 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.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
DO NOT INVOKE when the primary request explicitly asks to convert, migrate, modernize, or rewrite a legacy/old-style project to SDK style; use msbuild-modernization. Migration prompts often mention ToolsVersion, explicit Compile/Reference entries, packages.config, or Microsoft.CSharp.targets, but merely reviewing or auditing a file that contains those patterns remains in scope here. USE FOR broad review, audit, lint, or maintainability/correctness checks of project/build files, including custom targets; prioritized cross-cutting findings; discrete anti-patterns; F# ordering/FS0039; cross-platform paths; and focused Import safety verdicts. Review/audit is analysis-only unless fixes are requested. For concrete property/item defects use property-patterns/item-management; use target-authoring for implementation and extension-points for NuGet auto-import/layout discovery. Exclude non-MSBuild systems.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Guide 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.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Guide 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.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Diagnose and fix concrete MSBuild property defects in projects and existing shared-file hierarchies. USE FOR: conditions, defaults, append versus overwrite, last-write-wins values, OS/TFM checks, portable paths, normalization, and reviews centered on those property defects. Property defects in Directory.Build.* remain in scope, including overwritten values across parent/child imports and conditions that run before TargetFramework is set, even when the fix changes import order or moves a property group to .targets. DO NOT USE FOR: placement-only or import-only requests with no concrete property defect, such as discovering shared files or choosing which file owns a target or customization (use directory-build-organization); item operations; target structure; broad reviews without a concrete property defect; non-MSBuild work.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Detects 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.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Generate MSBuild binary logs (binlogs) for build diagnostics and analysis. USE FOR: adding /bl:{} to any dotnet build, test, pack, publish, or restore command to capture a full build execution trace, prerequisite for binlog-failure-analysis and build-perf-diagnostics skills, enabling post-build investigation of errors or performance. Requires MSBuild 17.8+ / .NET 8 SDK+ for {} placeholder; PowerShell must quote the complete switch as '-bl:{}'. DO NOT USE FOR: non-MSBuild build systems (npm, Maven, CMake), analyzing an existing binlog (use binlog-failure-analysis instead), binlog MCP startup failures (use troubleshoot-binlog-mcp).
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Choosing 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.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Analyze an MSBuild solution, solution filter, or Build.proj that schedules multiple project files. USE FOR: measured idle worker nodes, `-m` that does not scale, a serial ProjectReference critical path, graph builds, or an MSBuild task that builds a Projects list. Requires at least two distinct project files whose scheduling or throughput must be analyzed. DO NOT USE for non-MSBuild build systems.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Diagnose MSBuild bottlenecks from binlog timelines and Target/Task Performance Summaries after build-perf-baseline establishes measurements. USE FOR: unknown build slowness, RAR >5s, analyzers >30% of Csc, one target >50% of build time, node utilization <80%, excessive Copy tasks, finding restore overhead. DO NOT USE FOR: known repeated-restore fixes (use eliminate-redundant-restores), initial baselines (use build-perf-baseline), incremental rebuilds (use incremental-build), parallelism tuning (use build-parallelism), non-MSBuild builds.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Guide developers through capturing diagnostic artifacts to diagnose production .NET performance issues. Use when the user needs help choosing diagnostic tools, collecting performance data, or understanding tool trade-offs across different environments (Windows/Linux, .NET Framework/modern .NET, container/non-container).
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Activate this skill when BenchmarkDotNet (BDN) is involved in the task โ creating, running, configuring, or reviewing BDN benchmarks. Also activate when microbenchmarking .NET code would be useful and BenchmarkDotNet is the likely tool. Consider activating when answering a .NET performance question requires measurement and BenchmarkDotNet may be needed. Covers microbenchmark design, BDN configuration and project setup, how to run BDN microbenchmarks efficiently and effectively, and using BDN for side-by-side performance comparisons. Do NOT use for profiling/tracing .NET code (dotnet-trace, PerfView), production telemetry, or load/stress testing (Crank, k6).
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ