$npx -y skills add wshaddix/dotnet-skills --skill dotnet-advisorWorking with .NET, C#, ASP.NET Core, or related frameworks. Routes to specialist skills.
| 1 | # dotnet-advisor |
| 2 | |
| 3 | Router and index skill for **dotnet-artisan**. Always loaded. Routes .NET development queries to the appropriate specialist skills based on context. |
| 4 | |
| 5 | ## First Step: Detect Project Version |
| 6 | |
| 7 | Before any .NET guidance, determine the project's target framework: |
| 8 | |
| 9 | > Load [skill:dotnet-version-detection] to read TFMs from `.csproj`, `Directory.Build.props`, and `global.json`. Adapt all guidance to the detected .NET version (net8.0, net9.0, net10.0, net11.0). |
| 10 | |
| 11 | --- |
| 12 | |
| 13 | ## Skill Catalog |
| 14 | |
| 15 | ### 1. Foundation & Plugin Infrastructure `implemented` |
| 16 | - [skill:dotnet-advisor] -- this skill (router/index) |
| 17 | - [skill:dotnet-version-detection] -- TFM/SDK detection, preview features |
| 18 | - [skill:dotnet-project-analysis] -- solution structure, project refs, CPM |
| 19 | - [skill:dotnet-file-based-apps] -- .NET 10 file-based apps, `#:` directives, no .csproj |
| 20 | |
| 21 | ### 2. Core C# & Language Patterns `planned` |
| 22 | - [skill:dotnet-csharp-modern-patterns] -- C# 14/15 features, records, pattern matching |
| 23 | - [skill:dotnet-csharp-coding-standards] -- naming, conventions, file organization |
| 24 | - [skill:dotnet-csharp-async-patterns] -- async/await best practices, common mistakes |
| 25 | - [skill:dotnet-csharp-nullable-reference-types] -- NRT patterns, annotations, migration |
| 26 | - [skill:dotnet-csharp-dependency-injection] -- MS DI, keyed services, decoration |
| 27 | - [skill:dotnet-csharp-configuration] -- options pattern, feature flags, secrets |
| 28 | - [skill:dotnet-csharp-source-generators] -- IIncrementalGenerator, emit patterns |
| 29 | - [skill:dotnet-csharp-code-smells] -- code smells, anti-patterns, common pitfalls |
| 30 | - [skill:dotnet-roslyn-analyzers] -- custom DiagnosticAnalyzer, CodeFixProvider, testing, NuGet packaging |
| 31 | - [skill:dotnet-file-io] -- FileStream, RandomAccess, FileSystemWatcher, MemoryMappedFile, path handling |
| 32 | - [skill:dotnet-io-pipelines] -- System.IO.Pipelines: PipeReader/PipeWriter, backpressure, protocol parsing |
| 33 | - [skill:dotnet-linq-optimization] -- IQueryable vs IEnumerable, compiled queries, deferred execution |
| 34 | - [skill:dotnet-native-interop] -- P/Invoke, LibraryImport, marshalling, cross-platform native calls |
| 35 | |
| 36 | ### 3. Project Structure & Scaffolding `planned` |
| 37 | - [skill:dotnet-project-structure] -- .slnx, Directory.Build.props, CPM, analyzers |
| 38 | - [skill:dotnet-artifacts-output] -- UseArtifactsOutput, ArtifactsPath, impact on CI and Docker |
| 39 | - [skill:dotnet-scaffold-project] -- project scaffolding with best practices |
| 40 | - [skill:dotnet-add-analyzers] -- Roslyn analyzers, nullable, trimming, AOT compat |
| 41 | - [skill:dotnet-add-ci] -- add CI/CD to existing project |
| 42 | - [skill:dotnet-add-testing] -- add test infrastructure |
| 43 | - [skill:dotnet-modernize] -- analyze code for modernization opportunities |
| 44 | |
| 45 | ### 4. Architecture Patterns `planned` |
| 46 | - [skill:dotnet-architecture-patterns] -- minimal API org, vertical slices, error handling |
| 47 | - [skill:dotnet-background-services] -- BackgroundService, Channels, producer/consumer |
| 48 | - [skill:dotnet-resilience] -- Polly v8 + MS.Extensions.Resilience (NOT Http.Polly) |
| 49 | - [skill:dotnet-http-client] -- IHttpClientFactory, typed/named clients, resilience |
| 50 | - [skill:dotnet-observability] -- OpenTelemetry, structured logging, health checks |
| 51 | - [skill:dotnet-efcore-patterns] -- DbContext lifecycle, migrations, interceptors |
| 52 | - [skill:dotnet-efcore-architecture] -- read/write models, avoiding N+1 |
| 53 | - [skill:dotnet-data-access-strategy] -- EF Core vs Dapper vs ADO.NET decision |
| 54 | - [skill:dotnet-containers] -- multi-stage Dockerfiles, rootless, health checks |
| 55 | - [skill:dotnet-container-deployment] -- Kubernetes, Docker Compose, registries |
| 56 | - [skill:dotnet-messaging-patterns] -- pub/sub, competing consumers, DLQ, sagas, delivery guarantees |
| 57 | - [skill:dotnet-domain-modeling] -- DDD aggregates, value objects, domain events, repository contracts |
| 58 | - [skill:dotnet-structured-logging] -- log aggregation, structured queries, sampling, PII scrubbing |
| 59 | - [skill:dotnet-aspire-patterns] -- .NET Aspire: AppHost, service discovery, components, dashboard |
| 60 | |
| 61 | ### 5. Serialization & Communication `planned` |
| 62 | - [skill:dotnet-serialization] -- AOT source-gen: STJ, Protobuf, MessagePack |
| 63 | - [skill:dotnet-grpc] -- service definition, streaming, auth, health checks |
| 64 | - [skill:dotnet-realtime-communication] -- SignalR, JSON-RPC, SSE, gRPC streaming |
| 65 | - [skill:dotnet-service-communication] -- routes to gRPC, real-time, or REST |
| 66 | |
| 67 | ### 6. API Development `planned` |
| 68 | - [skill:dotnet-minimal-apis] -- route groups, filters, validation, OpenAPI 3.1 |
| 69 | - [skill:dotnet-api-versioning] -- URL versioning, Asp.Versioning.Http/Mvc |
| 70 | - [skill:dotnet-openapi] -- OpenAPI: MS.AspNetCore.OpenApi (built-in .NET 9+), Swashbuckle migration, NSwag, transformers |
| 71 | - [skill:dotnet-api-security] -- Identity, OAuth/OIDC, JWT, passkeys (WebAuthn), CORS, CSP, rate limiting |
| 72 | - [skill:dotnet-input-validation] -- .NET 10 AddValidation, FluentValidation, Data Annotations, endpoint filters, ProblemDetails |
| 73 | - [skill:dotnet-library-api-com |