From dotnet-artisan
Routes .NET/C# queries to domain skills for API, UI, testing, devops, tooling, debugging; loads C# coding standards as baseline and detects project framework version.
npx claudepluginhub novotnyllc/dotnet-artisan --plugin dotnet-artisanThis skill uses the workspace's default tool permissions.
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.
Detects .NET/C# intent from prompts and repo files (.sln, .csproj, global.json, .cs); loads version standards and routes to dotnet-advisor before planning or coding.
Guides .NET Core/ASP.NET patterns and best practices in architecture (Clean, MediatR, DI), EF Core databases, security (JWT, Identity), FluentValidation, error handling, xUnit testing, caching, and async. Activates on .csproj, .sln, or AspNetCore projects.
Enforces opinionated C# conventions for .NET 8+: modern C# 12 features, ASP.NET Core minimal/controller APIs, Blazor, EF Core, async patterns, CQRS with MediatR.
Share bugs, ideas, or general feedback.
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