plugins/dotnet-artisan/skills/dotnet-advisor/SKILL.md
Routes .NET/C# requests to the correct domain skill and loads coding standards as baseline for all code paths. Determines whether the task needs API, UI, testing, devops, tooling, or debugging guidance based on prompt analysis and project signals, then invokes skills in the right order. Always invoked after [skill:using-dotnet] detects .NET intent. Do not use for deep API, UI, testing, devops, tooling, or debugging implementation guidance.
npx skillsauth add novotnyllc/dotnet-artisan dotnet-advisorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Router and index skill for dotnet-artisan. Always loaded after [skill:using-dotnet] confirms .NET intent. Routes .NET development queries to the appropriate consolidated skill based on context.
Before any .NET guidance, determine the project's target framework:
Load [skill:dotnet-tooling] version detection guidance to read TFMs from
.csproj,Directory.Build.props, andglobal.json. Adapt all guidance to the detected .NET version (net8.0, net9.0, net10.0, net11.0).
For any task that may produce, change, or review C#/.NET code:
In a .NET repository, default to .NET solutions for ambiguous requests:
dotnet run, support top-level statements, and can be published as native AOT binaries. See [skill:dotnet-api] references/file-based-apps.md.Only suggest non-.NET alternatives when there's a specific reason (e.g., the user explicitly asks for Python, or the task requires a JS-only ecosystem like npm packages).
Identify the primary domain from the request, then invoke the matching skill. If the request spans multiple domains, invoke them in the order shown.
| If the request involves... | Invoke | |---------------------------|--------| | Web APIs, EF Core, gRPC, SignalR, middleware, security hardening | [skill:dotnet-api] | | Blazor, MAUI, Uno Platform, WPF, WinUI, WinForms | [skill:dotnet-ui] | | Unit tests, integration tests, E2E, Playwright, benchmarks | [skill:dotnet-testing] | | CI/CD, GitHub Actions, Azure DevOps, containers, NuGet publishing | [skill:dotnet-devops] | | Project setup, MSBuild, Native AOT, CLI apps, SDK versions | [skill:dotnet-tooling] | | Crash dumps, WinDbg, hang analysis, memory diagnostics (Windows) | [skill:dotnet-debugging] | | Crash dumps, dotnet-dump, lldb, container diagnostics (Linux/macOS) | [skill:dotnet-debugging] | | Missing .NET SDK, install dotnet, workloads | [skill:dotnet-tooling] (references/dotnet-sdk-install.md) | | Quick script, utility, single-file tool | [skill:dotnet-api] (references/file-based-apps.md) | | Excel, Word, PowerPoint, PDF, spreadsheet, document generation | [skill:dotnet-api] (references/office-documents.md) | | New project (unclear domain) | [skill:dotnet-tooling], then route to the owning domain skill |
Many tasks naturally span multiple domains. After invoking the primary domain skill, also load supporting skills when these patterns appear:
| When the task involves... | Also load | |--------------------------|-----------| | Performance optimization or profiling | [skill:dotnet-tooling] (profiling, performance-patterns references) | | Testing a specific framework (minimal API, Blazor, EF Core) | The framework's domain skill ([skill:dotnet-api] or [skill:dotnet-ui]) for context | | Authentication or security hardening in a UI app | [skill:dotnet-api] (security, auth middleware references) | | Multi-targeting or platform-specific project setup | [skill:dotnet-tooling] (project structure, TFM configuration) | | Building a new app (any "build me" request) | [skill:dotnet-tooling] (project setup) + [skill:dotnet-testing] (test strategy) | | CI/CD that runs tests | [skill:dotnet-testing] (test framework configuration) |
For broad "build me an app" requests, load comprehensively: [skill:dotnet-csharp] -> [skill:dotnet-tooling] -> primary domain -> [skill:dotnet-testing] -> [skill:dotnet-devops].
| Skill | Summary | Differentiator | |-------|---------|----------------| | [skill:using-dotnet] | Process gateway for .NET routing discipline | Must execute immediately before this skill | | [skill:dotnet-csharp] | C# language patterns, coding standards, async/await, DI, LINQ, domain modeling | Language-level guidance, always loaded as baseline | | [skill:dotnet-api] | ASP.NET Core, EF Core, gRPC, SignalR, resilience, security, Aspire | Backend services and data access | | [skill:dotnet-ui] | Blazor, MAUI, Uno Platform, WPF, WinUI, WinForms, accessibility | All UI frameworks and cross-platform targets | | [skill:dotnet-testing] | xUnit v3, integration/E2E, Playwright, snapshots, benchmarks | Test strategy, frameworks, and quality gates | | [skill:dotnet-devops] | GitHub Actions, Azure DevOps, containers, NuGet, observability | CI/CD pipelines, packaging, and operations | | [skill:dotnet-tooling] | Project setup, MSBuild, Native AOT, profiling, CLI apps, version detection | Build system, performance, and developer tools | | [skill:dotnet-debugging] | WinDbg MCP, crash dumps, hang analysis, memory diagnostics | Live and post-mortem dump analysis | | dotnet-advisor | This skill -- routes to domain skills above | Entry point, loaded after [skill:using-dotnet] |
For complex analysis that benefits from domain expertise, delegate to specialist agents. Group by concern area:
Architecture and Design
Performance and Concurrency
UI Frameworks
Infrastructure
tools
Test-only skill for verifying sibling file access in Copilot CLI
development
Detects .NET intent for any C#, ASP.NET Core, EF Core, Blazor, MAUI, Uno Platform, WPF, WinUI, SignalR, gRPC, xUnit, NuGet, or MSBuild request from prompt keywords and repository signals (.sln, .csproj, global.json, .cs files). First skill to invoke for all .NET work — loads version-specific coding standards and routes to domain skills via [skill:dotnet-advisor] before any planning or implementation. Do not use for clearly non-.NET tasks (Python, JavaScript, Go, Rust, Java).
tools
Builds .NET UI apps across Blazor (Server, WASM, Hybrid, Auto), MAUI (XAML, MVVM, Shell, Native AOT), Uno Platform (MVUX, Extensions, Toolkit), WPF (.NET 8+, Fluent theme), WinUI 3 (Windows App SDK, MSIX, Mica/Acrylic, adaptive layout), and WinForms (high-DPI, dark mode) with JS interop, accessibility (SemanticProperties, ARIA), localization (.resx, RTL), platform bindings (Java.Interop, ObjCRuntime), and framework selection. Spans 20 topic areas. Do not use for backend API design or CI/CD pipelines.
tools
Manages .NET SDK installation (dotnet-install, workloads), project setup (.slnx, Directory.Build.props, CPM), MSBuild authoring, build optimization, performance (Span, ArrayPool, stackalloc), profiling (dotnet-counters, dotnet-trace), Native AOT/trimming, GC tuning, CLI apps (System.CommandLine, Spectre.Console, Terminal.Gui), ILSpy decompilation, VS Code debug config (launch.json, coreclr, remote), C# LSP (csharp-ls, OmniSharp), and version detection/upgrade. Spans 34 topic areas. Do not use for UI implementation or API security design.