aspnet-core
Build, debug, modernize, or review ASP.NET Core applications with correct hosting, middleware, security, configuration, logging,…
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
Claude Code
$ npx -y skills add managedcode/dotnet-skills --skill build-perf-diagnostics --agent claude-code
Codex
$ npx skills add managedcode/dotnet-skills --skill build-perf-diagnostics -a codex -y
Cursor
$ npx skills add managedcode/dotnet-skills --skill build-perf-diagnostics -a cursor -y
Gemini CLI
$ npx skills add managedcode/dotnet-skills --skill build-perf-diagnostics -a gemini-cli -y
GitHub Copilot
$ npx skills add managedcode/dotnet-skills --skill build-perf-diagnostics -a github-copilot -y
OpenCode
$ npx skills add managedcode/dotnet-skills --skill build-perf-diagnostics -a opencode -y
Windsurf
$ npx skills add managedcode/dotnet-skills --skill build-perf-diagnostics -a windsurf -y
name: build-perf-diagnostics description: "Diagnose MSBuild bottlenecks from binlog timelines and Target/Task Performance Summaries after baseline measurements. USE FOR: unknown build slowness, RAR >5s, analyzers >30% of Csc, a target >50% of build, node utilization below 80%, excessive Copy, restore overhead. DO NOT USE FOR: within-build duplicates (find-repeated-work-within-one-build), known repeated restores (eliminate-redundant-restores), initial baselines (build-perf-baseline), incremental rebuilds (incremental-build), parallelism tuning (build-parallelism), non-MSBuild builds." license: MIT
1. **Generate a binlog**: `dotnet build /bl:{} -m` 2. Use the **binlog MCP server** (`Microsoft.AITools.BinlogMcp`, exposed under the `binlog` MCP namespace) which is bundled with this plugin
If the server cannot connect, use `troubleshoot-binlog-mcp` when startup repair is wanted. If repair is blocked, declined, or unnecessary, use the replay flow below.
1. **Generate a binlog**: `dotnet build /bl:{} -m` 2. **Replay to diagnostic log with performance summary**:
dotnet msbuild build.binlog -noconlog -fl "-flp:v=diag;logfile=full.log;performancesummary"
3. **Read the performance summary** (at the end of `full.log`):
grep "Target Performance Summary\|Task Performance Summary" -A 50 full.log
4. **Find expensive targets and tasks**: The PerformanceSummary section lists all targets/tasks sorted by cumulative time 5. **Check for node utilization**: grep for scheduling and node messages
grep -i "node.*assigned\|building with\|scheduler" full.log | head -30
6. **Check analyzers**: grep for analyzer timing
grep -i "analyzer.*elapsed\|Total analyzer execution time\|CompilerAnalyzerDriver" full.log
Stop explaining .NET to your AI. Start building. We've all been there: asking Claude to use Entity Framework, only to get EF6 patterns in a .NET 8 project. Explaining to Copilot that Blazor Server and Blazor WebAssembly aren't the same thing.
Build, debug, modernize, or review ASP.NET Core applications with correct hosting, middleware, security, configuration, logging,…
Build, upgrade, and operate Aspire 13.5.x C# or TypeScript application hosts with the current CLI, AppHost, ServiceDefaults,…
Build and debug Avalonia 11/12 .NET applications with XAML, compiled bindings, MVVM, custom controls, desktop lifetimes, and…
Build, review, or migrate Azure Functions in .NET with correct execution model, isolated worker setup, bindings, DI, and Durable…
Build and review Blazor applications across server, WebAssembly, web app, and hybrid scenarios with correct component design,…
Maintain or migrate EF6-based applications with realistic guidance on what to keep, what to modernize, and when EF Core is or is…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.