SuperAPI AI 工具集

dotnet-best-practices

测试与质量

查看项目

更新于 10-16 05:57

技能介绍

dotnet-best-practices 是一个面向 .NET / ASP.NET Core 代码库的微层级(micro-level)代码质量审计方案,其目标是深入分析单个类、方法与测试文件的实现质量,而非审查项目基础设施。审计过程依据标准文件进行校验,标准来源为 agent-rules/rules/dotnet/(若仓库内存在则读取本地版本,否则通过 WebFetch 从 GitHub raw 实时获取)。

用途

该方案用于执行深度的 .NET / ASP.NET Core 代码库分析,重点关注微层级代码质量,以及是否符合特定的架构、测试与编码标准。它以 .NET Micro-Code Quality Auditor 的角色运作,强调基于证据的报告方式:所有发现必须由实际代码证据支撑,若某项内容无法通过代码证据证明,则标记为 Unknown 并说明需要什么才能证明。

主要能力

审计覆盖六个分析步骤,每个步骤对应特定的标准文件:

  1. 测试质量分析(testing-unit.md、testing-integration.md):检查测试命名约定(MethodName_Scenario_ExpectedBehavior)、Arrange-Act-Assert 结构、FluentAssertions 与原始 Assert.* 的使用、Moq/NSubstitute 的 Mock 设置(仅对真正的外部依赖进行 Mock)、测试隔离与 fixture 生命周期、WebApplicationFactory 集成测试质量。

  2. 架构合规分析(module-structure.md、service-patterns.md、repository-patterns.md):检查分层边界(Domain/Application/Infrastructure/Api)、依赖注入生命周期与 captive-dependency 检测、仓储模式实现质量、服务组合与瘦控制器遵循情况。

  3. SOLID 合规与圈复杂度分析(solid-principles.md):检查 SRP(上帝对象构造函数、混杂关注的超大方法)、OCP(携带业务逻辑的类型分支链)、LSP(抛出 NotImplementedException/NotSupportedException 的重写)、ISP(部分未实现实现的臃肿接口)、DIP(在已有可注入抽象时仍使用 new ConcreteClass()),以及真实的圈复杂度(CA1502)与类耦合度(CA1506)——通过强制开启分析器的构建获得,而非仅依赖仓库自身设置。

  4. 代码标准分析(csharp.md、controller-patterns.md):检查 C# 命名约定与可空引用类型规范、Records 与 Classes 的使用、LINQ 正确性与模式匹配、async void 与控制器瘦身违规。

  5. DTO 校验分析(dto-validation.md):检查校验装饰器 / FluentValidation 覆盖、分离的 Create/Update/Response DTO、响应 DTO 中的敏感字段排除、实体到 DTO 的映射质量。

  6. 错误处理分析(error-handling.md):检查集中式异常处理(IExceptionHandler/中间件)、ProblemDetails 响应一致性、领域异常与通用异常的使用、边界处的结构化日志。

第 7 步为报告生成,将所有发现按模板汇总为最终 Markdown 报告。

使用方式

方案提供两条执行路径。其一为 CLI 路径(somnio run),按规定的规则执行顺序依次运行各参考规则文件,并指定模型层级(mid / cheap / frontier)。其二为会话内子代理调度路径,适用于 Claude Code 及兼容代理:入口为 agents/orchestrator.md(mid 层级),由编排器按依赖顺序分波次派发子代理,同一波次内通过 Agent 工具并行运行。编排器在推进到下一波次前会校验每个预期产物,产物缺失时重试一次,之后记录并跳过依赖章节。report-writer 是唯一撰写最终面向用户报告的代理。

波次计划为:Wave 1(mid)运行 testing-quality-analyzer、architecture-compliance-analyzer、solid-compliance-analyzer、code-standards-analyzer;Wave 2(cheap)运行 dto-validation-scanner、error-handling-scanner;Wave 3(frontier)运行 report-writer。各分析代理分别产出 reports/.artifacts/dotnet-best-practices/ 下的步骤产物,最终报告写入 reports/<YYYY-MM-DD>-<project>-dotnet-best-practices.md。

报告文件名必须遵循 <YYYY-MM-DD>-<project>-dotnet-best-practices.md 格式:日期为本次运行日期;project 为 git 仓库名的 kebab-case 化(来源为 origin 远程 URL,无远程时取主检出目录名,非 git 仓库时取当前目录名);末尾段为技能名,固定不变。通过 somnio run 运行时,CLI 会计算完整报告路径并在提示中传入,需严格使用其给出的路径,不可重新计算。

每份生成的报告末尾必须包含 Report Metadata 元数据块,其中 Generated by 行为 Somnio CLI v3.2.8,Skill 为 dotnet-best-practices,Date 为运行日期,Somnio AI Tools 为 https://github.com/somnio-software/somnio-ai-tools。

关键规则

始终依据标准进行校验;聚焦代码质量而非基础设施;清晰报告违规并指明所违反的标准并提供代码示例;保持 Markdown 报告模板格式一致;不得跳过标准校验;不得仅依赖仓库自身的分析器设置来判断复杂度,而应在审计运行时通过 MSBuild 命令行属性强制开启分析器(不修改文件),以确保复杂度发现真实有效。

适用场景

适用于需要对 .NET / ASP.NET Core 代码库进行细粒度质量审计的场景,尤其是关注测试质量、架构分层合规、SOLID 原则落实、C# 编码规范、DTO 校验与错误处理一致性的团队。审计对象为单个类、方法与测试文件。

限制

方案不针对项目基础设施进行分析。所有结论要求有代码证据支撑,证据缺失时仅报告 Unknown 并说明所需证据,不做假设或臆测。关于具体的收费、价格、平台支持范围等信息,资料中暂未提供。