关于 dotnet-advisor
dotnet-artisan 的路由与索引技能,将 .NET 开发问题导向相应的专业技能。它会先检测项目目标框架,使后续指导适配检测到的 .NET 版本。
主要功能
- 01将问题路由至专业技能
- 02指导前检测目标框架
- 03索引 .NET 开发技能目录
- 04涵盖测试到部署等开发主题
适用场景
- 01为 .NET 任务选择相关技能
- 02确认框架版本对应的指导需求
- 03查找项目搭建或维护技能
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ wshaddix/ dotnet-skills --skill dotnet-advisor安装后在 Claude Code 中输入/dotnet-advisor确认已加载。
详细介绍
dotnet-advisor
dotnet-artisan 的路由与索引技能。始终加载。根据上下文,将 .NET 开发查询路由到相应的专业技能。
第一步:检测项目版本
在提供任何 .NET 指导之前,先确定项目的目标框架:
加载 [skill:dotnet-version-detection],从
.csproj、Directory.Build.props和global.json中读取 TFM。根据检测到的 .NET 版本(net8.0、net9.0、net10.0、net11.0)调整所有指导。
技能目录
1. 基础与插件基础设施 implemented
- [skill:dotnet-advisor] -- 此技能(路由器/索引)
- [skill:dotnet-version-detection] -- TFM/SDK 检测、预览功能
- [skill:dotnet-project-analysis] -- 解决方案结构、项目引用、CPM
- [skill:dotnet-file-based-apps] -- .NET 10 基于文件的应用、
#:指令、无需 .csproj
2. C# 核心与语言模式 planned
- [skill:dotnet-csharp-modern-patterns] -- C# 14/15 功能、记录、模式匹配
- [skill:dotnet-csharp-coding-standards] -- 命名、约定、文件组织
- [skill:dotnet-csharp-async-patterns] -- async/await 最佳实践、常见错误
- [skill:dotnet-csharp-nullable-reference-types] -- NRT 模式、注解、迁移
- [skill:dotnet-csharp-dependency-injection] -- MS DI、键控服务、装饰
- [skill:dotnet-csharp-configuration] -- 选项模式、功能标志、密钥
- [skill:dotnet-csharp-source-generators] -- IIncrementalGenerator、生成模式
- [skill:dotnet-csharp-code-smells] -- 代码异味、反模式、常见陷阱
- [skill:dotnet-roslyn-analyzers] -- 自定义 DiagnosticAnalyzer、CodeFixProvider、测试、NuGet 打包
- [skill:dotnet-file-io] -- FileStream、RandomAccess、FileSystemWatcher、MemoryMappedFile、路径处理
- [skill:dotnet-io-pipelines] -- System.IO.Pipelines:PipeReader/PipeWriter、背压、协议解析
- [skill:dotnet-linq-optimization] -- IQueryable 与 IEnumerable、编译查询、延迟执行
- [skill:dotnet-native-interop] -- P/Invoke、LibraryImport、封送、跨平台原生调用
3. 项目结构与脚手架 planned
- [skill:dotnet-project-structure] -- .slnx、Directory.Build.props、CPM、分析器
- [skill:dotnet-artifacts-output] -- UseArtifactsOutput、ArtifactsPath、对 CI 和 Docker 的影响
- [skill:dotnet-scaffold-project] -- 按最佳实践搭建项目脚手架
- [skill:dotnet-add-analyzers] -- Roslyn 分析器、可空性、裁剪、AOT 兼容性
- [skill:dotnet-add-ci] -- 为现有项目添加 CI/CD
- [skill:dotnet-add-testing] -- 添加测试基础设施
- [skill:dotnet-modernize] -- 分析代码以发现现代化机会
4. 架构模式 planned
- [skill:dotnet-architecture-patterns] -- Minimal API 组织、垂直切片、错误处理
- [skill:dotnet-background-services] -- BackgroundService、Channels、生产者/消费者
- [skill:dotnet-resilience] -- Polly v8 + MS.Extensions.Resilience(不是 Http.Polly)
- [skill:dotnet-http-client] -- IHttpClientFactory、类型化/命名客户端、弹性
- [skill:dotnet-observability] -- OpenTelemetry、结构化日志、运行状况检查
- [skill:dotnet-efcore-patterns] -- DbContext 生命周期、迁移、拦截器
- [skill:dotnet-efcore-architecture] -- 读/写模型、避免 N+1
- [skill:dotnet-data-access-strategy] -- EF Core、Dapper 与 ADO.NET 的选型
- [skill:dotnet-containers] -- 多阶段 Dockerfile、无根运行、运行状况检查
- [skill:dotnet-container-deployment] -- Kubernetes、Docker Compose、镜像仓库
- [skill:dotnet-messaging-patterns] -- 发布/订阅、竞争消费者、DLQ、Saga、交付保证
- [skill:dotnet-domain-modeling] -- DDD 聚合、值对象、领域事件、仓储契约
- [skill:dotnet-structured-logging] -- 日志聚合、结构化查询、采样、PII 清理
- [skill:dotnet-aspire-patterns] -- .NET Aspire:AppHost、服务发现、组件、仪表板
5. 序列化与通信 planned
- [skill:dotnet-serialization] -- AOT 源生成:STJ、Protobuf、MessagePack
- [skill:dotnet-grpc] -- 服务定义、流式传输、身份验证、运行状况检查
- [skill:dotnet-realtime-communication] -- SignalR、JSON-RPC、SSE、gRPC 流式传输
- [skill:dotnet-service-communication] -- 根据情况选择 gRPC、实时通信或 REST
6. API 开发 planned
- [skill:dotnet-minimal-apis] -- 路由组、筛选器、验证、OpenAPI 3.1
- [skill:dotnet-api-versioning] -- URL 版本控制、Asp.Versioning.Http/Mvc
- [skill:dotnet-openapi] -- OpenAPI:MS.AspNetCore.OpenApi(内置于 .NET 9+)、Swashbuckle 迁移、NSwag、转换器
- [skill:dotnet-api-security] -- Identity、OAuth/OIDC、JWT、通行密钥(WebAuthn)、CORS、CSP、速率限制
- [skill:dotnet-input-validation] -- .NET 10 AddValidation、FluentValidation、Data Annotations、终结点筛选器、ProblemDetails
- [skill:dotnet-library-api-compat] -- 二进制/源代码兼容性规则、类型转发器、SemVer 影响
- [skill:dotnet-api-surface-validation] -- PublicApiAnalyzers、Verify 快照模式、ApiCompat CI 强制检查
7. 安全 planned
- [skill:dotnet-security-owasp] -- .NET 的 OWASP Top 10
- [skill:dotnet-secrets-management] -- 用户机密、安全配置模式
- [skill:dotnet-cryptography] -- 现代密码学,包括后量子密码学(.NET 10)
8. 测试 planned
- [skill:dotnet-testing-strategy] -- 单元测试、集成测试与端到端测试的区别及组织方式
- [skill:dotnet-xunit] -- xUnit v3、理论、夹具、并行执行
- [skill:dotnet-integration-testing] -- WebApplicationFactory、Testcontainers
- [skill:dotnet-ui-testing-core] -- UI 测试核心模式
- [skill:dotnet-blazor-testing] -- 使用 bUnit 测试 Blazor 组件
- [skill:dotnet-maui-testing] -- 用于 MAUI 的 Appium、XHarness
- [skill:dotnet-uno-testing] -- 使用 Playwright 测试 Uno WASM
- [skill:dotnet-playwright] -- 浏览器自动化、端到端测试
- [skill:dotnet-snapshot-testing] -- 使用 Verify 进行快照测试
- [skill:dotnet-test-quality] -- 覆盖率、CRAP 分析、变异测试
9. 性能与基准测试 implemented
- [skill:dotnet-benchmarkdotnet] -- BenchmarkDotNet 设置、配置、CI
- [skill:dotnet-performance-patterns] -- Span、池化、零分配、密封
- [skill:dotnet-profiling] -- dotnet-counters、trace、dump、内存
- [skill:dotnet-ci-benchmarking] -- 持续基准测试、回归检测
- [skill:dotnet-gc-memory] -- GC 模式、LOH/POH、Gen0/1/2 调优、Span/Memory、ArrayPool、性能分析
10. Native AOT 与修剪 planned
- [skill:dotnet-native-aot] -- 修剪、RD.xml、无反射、大小优化
- [skill:dotnet-aot-architecture] -- 从一开始就按 AOT 进行架构设计
- [skill:dotnet-trimming] -- 修剪安全注解、链接器配置、测试
- [skill:dotnet-aot-wasm] -- 用于 Blazor 和 Uno 的 WASM AOT
11. CLI 工具开发
- [skill:dotnet-system-commandline] -- System.CommandLine、中间件、托管
- [skill:dotnet-cli-architecture] -- 分层 CLI 设计、可测试性
- [skill:dotnet-cli-distribution] -- Native AOT 与跨平台分发策略
- [skill:dotnet-cli-packaging] -- Homebrew、apt/deb、winget、Scoop、Chocolatey、dotnet tool
- [skill:dotnet-cli-release-pipeline] -- 统一的多平台 CI/CD 发布工作流
- [skill:dotnet-tool-management] -- 安装、管理、还原全局/本地 .NET 工具
12. UI 框架 planned
- [skill:dotnet-blazor-patterns] -- Server、WASM、Hybrid、自动/流式
- [skill:dotnet-blazor-components] -- 组件架构、JS 互操作
- [skill:dotnet-blazor-auth] -- 跨托管模型的身份验证
- [skill:dotnet-uno-platform] -- Extensions、MVUX、Toolkit、主题
- [skill:dotnet-uno-targets] -- Web/WASM、Mobile、Desktop、Embedded
- [skill:dotnet-uno-mcp] -- 用于实时文档的 Uno MCP 服务
- [skill:dotnet-maui-development] -- MAUI 模式、当前状态
- [skill:dotnet-maui-aot] -- iOS/Mac Catalyst 上的 MAUI Native AOT
- [skill:dotnet-winui] -- WinUI 3 / Windows App SDK、XAML、MSIX、UWP 迁移
- [skill:dotnet-wpf-modern] -- .NET 8+ 上的 WPF、Host builder、MVVM Toolkit、Fluent 主题
- [skill:dotnet-wpf-migration] -- 将 WPF/WinForms 迁移到 .NET 8+、将 WPF 迁移到 WinUI 或 Uno、UWP 迁移
- [skill:dotnet-winforms-basics] -- .NET 8+ 上的 WinForms、高 DPI、深色模式、DI
- [skill:dotnet-accessibility] -- 跨平台无障碍支持:SemanticProperties、ARIA、AutomationPeer、测试工具
- [skill:dotnet-ui-chooser] -- UI 框架选择决策树
13. 多目标与 Polyfill planned
- [skill:dotnet-multi-targeting] -- PolySharp、Polyfill、条件编译
- [skill:dotnet-version-upgrade] -- .NET 8 -> 10 -> 11 升级指南
14. 本地化与国际化 implemented
- [skill:dotnet-localization] -- i18n:.resx、IStringLocalizer、RTL、复数形式
15. 打包与发布 implemented
- [skill:dotnet-nuget-authoring] -- NuGet 包编写、签名、验证、源生成器
- [skill:dotnet-msix] -- MSIX 创建、签名、分发、自动更新
- [skill:dotnet-github-releases] -- 带有发行说明的 GitHub Releases
16. 发布管理 implemented
- [skill:dotnet-release-management] -- NBGV、变更日志、SemVer 策略
17. CI/CD implemented
- [skill:dotnet-gha-patterns] -- 可重用工作流、复合操作、矩阵
- [skill:dotnet-gha-build-test] -- .NET 构建与测试工作流
- [skill:dotnet-gha-publish] -- NuGet/容器发布工作流
- [skill:dotnet-gha-deploy] -- 部署模式(Pages、注册表)
- [skill:dotnet-ado-patterns] -- ADO YAML 管道、Environments、Gates
- [skill:dotnet-ado-build-test] -- ADO 构建与测试管道
- [skill:dotnet-ado-publish] -- ADO 发布管道
- [skill:dotnet-ado-unique] -- ADO 专属:经典管道、服务连接
18. 文档 implemented
- [skill:dotnet-documentation-strategy] -- Starlight、Docusaurus、DocFX
- [skill:dotnet-mermaid-diagrams] -- 架构图/时序图/类图
- [skill:dotnet-github-docs] -- README、CONTRIBUTING、问题模板
- [skill:dotnet-xml-docs] -- XML 文档注释
- [skill:dotnet-api-docs] -- API 文档生成、OpenAPI 规范
19. Agent 元技能 planned
- [skill:dotnet-agent-gotchas] -- 使用 .NET 时 Agent 常见的错误
- [skill:dotnet-build-analysis] -- 理解构建输出、MSBuild 错误
- [skill:dotnet-csproj-reading] -- 读取/修改 .csproj、MSBuild 属性
- [skill:dotnet-solution-navigation] -- 浏览解决方案、查找入口点
20. AI 与大模型集成
- [skill:dotnet-semantic-kernel] -- Semantic Kernel:插件、提示词模板、记忆、Agent
路由逻辑
使用此决策树,为当前任务加载合适的技能。
开始新项目
- [skill:dotnet-version-detection] -- 检测或选择目标框架
- [skill:dotnet-project-analysis] -- 了解现有解决方案(如果有)
- [skill:dotnet-project-structure]、[skill:dotnet-scaffold-project] -- 搭建项目
- [skill:dotnet-architecture-patterns] -- 设计决策
- 基于文件的应用(无 .csproj,.NET 10+)-> [skill:dotnet-file-based-apps]
- 构建输出布局(UseArtifactsOutput,.NET 8+)-> [skill:dotnet-artifacts-output]
编写或修改 C# 代码
- 现代 C# 模式 -> [skill:dotnet-csharp-modern-patterns]
- 编码规范 -> [skill:dotnet-csharp-coding-standards]
- NRT -> [skill:dotnet-csharp-nullable-reference-types]
- DI -> [skill:dotnet-csharp-dependency-injection]
- 配置 -> [skill:dotnet-csharp-configuration]
- Async/await、并发 -> [skill:dotnet-csharp-async-patterns]
- 源生成器 -> [skill:dotnet-csharp-source-generators]
- 代码审查、代码质量、反模式 -> [skill:dotnet-csharp-code-smells]
- 自定义分析器/代码修复 -> [skill:dotnet-roslyn-analyzers]
- 文件 I/O、FileStream、RandomAccess、FileSystemWatcher、MemoryMappedFile、路径处理 -> [skill:dotnet-file-io]
- IO.Pipelines、高性能网络 I/O -> [skill:dotnet-io-pipelines]
- LINQ 优化、IQueryable 陷阱 -> [skill:dotnet-linq-optimization]
- P/Invoke、本机互操作、LibraryImport、封送处理 -> [skill:dotnet-native-interop]
构建 API
- Minimal APIs(新项目的默认选择) -> [skill:dotnet-minimal-apis]
- API 版本控制 -> [skill:dotnet-api-versioning]
- OpenAPI/Swagger、Swashbuckle 迁移 -> [skill:dotnet-openapi]
- 身份验证、CORS、速率限制、CSP -> [skill:dotnet-api-security]
- 输入验证、FluentValidation、Data Annotations -> [skill:dotnet-input-validation]
- 库的二进制/源代码兼容性 -> [skill:dotnet-library-api-compat]
- API 表面跟踪、PublicApiAnalyzers -> [skill:dotnet-api-surface-validation]
- 弹性/HTTP 客户端 -> [skill:dotnet-resilience], [skill:dotnet-http-client]
使用数据
- EF Core 用法 -> [skill:dotnet-efcore-patterns], [skill:dotnet-efcore-architecture]
- 选择数据访问方式 -> [skill:dotnet-data-access-strategy]
- 序列化(JSON、Protobuf) -> [skill:dotnet-serialization]
- 领域建模、DDD 模式 -> [skill:dotnet-domain-modeling]
构建 UI
- 选择框架 -> [skill:dotnet-ui-chooser]
- 无障碍(适用于任何 UI 框架) -> [skill:dotnet-accessibility]
- Blazor -> [skill:dotnet-blazor-patterns], [skill:dotnet-blazor-components], [skill:dotnet-blazor-auth]
- Uno Platform -> [skill:dotnet-uno-platform], [skill:dotnet-uno-targets], [skill:dotnet-uno-mcp]
- MAUI -> [skill:dotnet-maui-development], [skill:dotnet-maui-aot]
- WPF -> [skill:dotnet-wpf-modern](迁移:[skill:dotnet-wpf-migration])
- WinUI -> [skill:dotnet-winui]
- WinForms -> [skill:dotnet-winforms-basics]
测试
- 策略/测试内容 -> [skill:dotnet-testing-strategy]
- xUnit v3 -> [skill:dotnet-xunit]
- 集成测试 -> [skill:dotnet-integration-testing]
- UI 测试 -> [skill:dotnet-ui-testing-core] + 框架专属 skill
- 快照测试 -> [skill:dotnet-snapshot-testing]
- 覆盖率/质量 -> [skill:dotnet-test-quality]
性能工作
- 基准测试 -> [skill:dotnet-benchmarkdotnet]
- 优化模式 -> [skill:dotnet-performance-patterns]
- 性能分析 -> [skill:dotnet-profiling]
- CI 基准测试 -> [skill:dotnet-ci-benchmarking]
- GC 调优、内存管理 -> [skill:dotnet-gc-memory]
Native AOT / 剪裁
- AOT 编译 -> [skill:dotnet-native-aot]
- 面向 AOT 的架构设计 -> [skill:dotnet-aot-architecture]
- 剪裁 -> [skill:dotnet-trimming]
- WASM AOT -> [skill:dotnet-aot-wasm]
CLI 工具
- System.CommandLine -> [skill:dotnet-system-commandline]
- CLI 设计 -> [skill:dotnet-cli-architecture]
- 分发 -> [skill:dotnet-cli-distribution], [skill:dotnet-cli-packaging], [skill:dotnet-cli-release-pipeline]
- 工具安装、清单、还原 -> [skill:dotnet-tool-management]
容器与部署
- Dockerfile -> [skill:dotnet-containers]
- Kubernetes/Compose -> [skill:dotnet-container-deployment]
安全
- OWASP 合规性 -> [skill:dotnet-security-owasp]
- 密钥管理 -> [skill:dotnet-secrets-management]
- 密码学 -> [skill:dotnet-cryptography]
通信模式
- gRPC -> [skill:dotnet-grpc]
- 实时通信(SignalR、SSE)-> [skill:dotnet-realtime-communication]
- 协议选择 -> [skill:dotnet-service-communication]
- 消息传递、事件驱动(Service Bus、RabbitMQ)-> [skill:dotnet-messaging-patterns]
CI/CD 设置
- GitHub Actions -> [skill:dotnet-gha-patterns], [skill:dotnet-gha-build-test], [skill:dotnet-gha-publish], [skill:dotnet-gha-deploy]
- Azure DevOps -> [skill:dotnet-ado-patterns], [skill:dotnet-ado-build-test], [skill:dotnet-ado-publish], [skill:dotnet-ado-unique]
打包与发布
- 发布 NuGet 包 -> [skill:dotnet-nuget-authoring]
- MSIX -> [skill:dotnet-msix]
- GitHub Releases -> [skill:dotnet-github-releases]
- 版本管理 -> [skill:dotnet-release-management]
多目标框架
- 多 TFM 构建 -> [skill:dotnet-multi-targeting]
- 版本升级 -> [skill:dotnet-version-upgrade]
本地化
- 国际化/本地化 -> [skill:dotnet-localization]
文档
- 文档策略 -> [skill:dotnet-documentation-strategy]
- 图表 -> [skill:dotnet-mermaid-diagrams]
- GitHub 文档 -> [skill:dotnet-github-docs]
- XML 文档 -> [skill:dotnet-xml-docs]
- API 文档 -> [skill:dotnet-api-docs]
Agent 辅助
- Agent 编写 .NET 代码时出错 -> [skill:dotnet-agent-gotchas]
- 构建错误 -> [skill:dotnet-build-analysis]
- 阅读 .csproj -> [skill:dotnet-csproj-reading]
- 浏览解决方案 -> [skill:dotnet-solution-navigation]
后台工作
- 后台服务、队列 -> [skill:dotnet-background-services]
- 可观测性/日志记录 -> [skill:dotnet-observability]
- 日志管道设计、聚合、PII 清理 -> [skill:dotnet-structured-logging]
云与编排
- .NET Aspire、服务发现、AppHost -> [skill:dotnet-aspire-patterns]
AI 与大模型集成
- Semantic Kernel、大模型编排、插件 -> [skill:dotnet-semantic-kernel]
专家 Agent 路由
对于受益于领域专业知识的复杂分析,请委派给专家 Agent:
- Async/await 性能、ValueTask、ConfigureAwait、IO.Pipelines -> dotnet-async-performance-specialist
- ASP.NET Core 中间件、请求管道、DI 生命周期、诊断场景 -> dotnet-aspnetcore-specialist
- 测试架构、测试类型选择、测试数据管理、微服务测试 -> dotnet-testing-specialist
- 云部署、.NET Aspire、AKS、CI/CD 管道、分布式追踪 -> dotnet-cloud-specialist
- 通用代码审查(正确性、性能、安全性、架构)-> dotnet-code-review-agent
评论
支持 Markdown