mcpField
R
review-dotnet

review-dotnet

github.com/nesnilnehc测试与质量873 次安装2 天前更新
代码仓库

关于 review-dotnet

面向 .NET(C#、F#)代码的语言与运行时审查技能,供代码审查流程或单独的 .NET 检查使用。它聚焦异步、可空类型、资源管理、LINQ 和可测试性,并输出带文件行号的发现。

主要功能

  1. 01检查 async/await 与取消令牌
  2. 02检查可空引用和空值处理
  3. 03评估公共 API 与版本策略
  4. 04检查 IDisposable 与资源释放
  5. 05检查集合、LINQ 和可测试性

适用场景

  1. 01审查新增的 C# 或 F# 文件
  2. 02检查 .NET 代码的异步和资源模式
  3. 03为 .NET 拉取请求进行预审

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/nesnilnehc/ai-cortex --skill review-dotnet

安装后在 Claude Code 中输入/review-dotnet确认已加载。

附带文件README.md

详细介绍

来自项目 README

技能(Skill):审查 .NET

目的 (Purpose)

仅查看 .NET 生态系统(C#、F#)中的代码的语言和运行时约定。不要定义范围(差异与代码库)或执行安全/架构分析;这些是通过范围和cognitive技能来处理的。以标准格式发出结果列表以进行聚合。重点关注 async/await 和 ConfigureAwait、可空引用类型和 NRE 避免、API 和版本控制、资源和 IDisposable、集合和 LINQ 以及可测试性。


核心目标(Core Objective)

首要目标:生成 .NET 语言/运行时结果列表,涵盖异步/等待、可空类型、API 稳定性、资源管理、LINQ 使用以及给定代码范围的可测试性。

成功标准(必须满足所有要求):

  1. ✅ 仅限 .NET 范围:仅审查 .NET (C#/F#) 语言和运行时约定;未执行范围选择、安全性或架构分析
  2. ✅ 涵盖所有六个 .NET 维度:异步/等待、可空引用类型、API/版本控制、资源/IDisposable、集合/LINQ 和可测试性(如果相关)
  3. ✅ 结果格式兼容:每个结果包括位置、类别(language-dotnet)、严重性、标题、描述和可选建议
  4. ✅ 文件:行引用:所有发现都引用带有行号的特定文件位置
  5. ✅ 排除非 .NET 代码:除非明确在范围内,否则不会分析非 .NET 文件的 .NET 特定规则

验收测试:输出是否包含以 .NET 为中心的结果列表,其中文件:行引用涵盖所有相关语言/运行时维度,而无需执行安全性、体系结构或范围分析?


范围边界(范围边界)

本技能负责:

  • async/await 正确性和ConfigureAwait 用法(库与应用程序代码)
  • 可空引用类型和 NRE 避免
  • 公共API稳定性和版本控制策略
  • IDisposable、IAsyncDisposable 和 using 语句模式
  • 集合和 LINQ 效率(多重枚举、分配、跨度/内存)
  • 可测试性(DI、密封/可重写、静态使用)

本技能不负责:

  • 范围选择——范围由调用者提供
  • 安全分析(注入、身份验证、加密)——使用“review-security”
  • 架构分析——使用“review-architecture”
  • 性能深入研究——使用“review-performance”
  • 完整编排式审查——使用“审查代码”
  • 代码库状态审查 — 使用 review-codebase

转交点:当所有 .NET 发现结果发布后,将其移交给“orchestrate-code-review”进行聚合。对于 .NET 代码中发现的安全或体系结构问题,请记下它们并建议运行适当的cognitive技能。


使用场景(用例)

  • 精心安排的审查:当 orchestrate-code-review 运行 .NET 项目的范围 → 语言 → 框架 → 库 → cognitive时,用作语言步骤。
  • 仅.NET 审查:当用户只想检查语言/运行时约定时(例如,添加新的 C# 文件后)。
  • PR .NET 预检查清单:确保异步、可空和资源模式正确。

何时使用:当正在审查的代码是.NET (C#/F#) 并且任务包括语言/运行时质量时。范围(差异与路径)由调用者或用户确定。


行为(行为)

该技能的范围
  • 分析:给定代码范围(调用者提供的文件或 diff)中的 .NET 语言和运行时约定。不决定范围;接受代码范围作为输入。
  • 不要:执行范围选择(差异与代码库)、安全审查或架构审查;除非要求忽略语言,否则不要查看非 .NET 文件。
审核清单(仅限 .NET 维度)
  1. async/await和ConfigureAwait:async的正确使用;在适当的情况下配置Await(false)(库代码);取消令牌传播;避免 async void 除了事件处理程序。
  2. 可空引用类型和NRE:可空注释;在合理的情况下进行空值检查和空值宽容;避免不必要的 null-forgiving。
  3. API和版本控制:公共API表面稳定性;重大变更;库的版本控制或弃用策略。
  4. 资源和IDisposable:正确使用IDisposable、using语句、IAsyncDisposable;没有泄漏的手柄或流。
  5. 集合和LINQ:适当使用LINQ;分配和枚举;避免多重枚举;相关的跨度/内存。
  6. 可测试性:依赖注入和可测试性;静态使用;在影响测试的地方密封/可重写。
语气和参考
  • 专业和技术:参考具体位置(文件:行)。发出包含位置、类别、严重性、标题、描述、建议的结果。

输入与输出 (Input & Output)

输入(输入)
  • 代码范围:用户或范围技能已选择的文件或目录(或差异)。该技能不决定范围;它仅检查所提供的 .NET 代码的语言约定。
输出(输出)
  • 以附录:输出合同中定义的格式发出零个或多个结果。
  • 此技能的类别是 language-dotnet。

限制(限制)

硬边界(Hard Boundaries)
  • 不要执行安全、架构或范围选择。遵守 .NET 语言和运行时约定。
  • 不要在没有具体地点或可行建议的情况下给出结论。
  • 不要检查非 .NET 代码的 .NET 特定规则,除非用户明确包含它(例如嵌入脚本)。
技能边界 (Skill Boundaries)

不要做这些(其他技能可以处理它们):

  • 不要选择或定义代码范围 - 范围由调用者或“审查代码”确定
  • 不要执行安全分析——使用“review-security”
  • 不要执行架构分析——使用“review-architecture”
  • 不要审查 .NET 约定的非 .NET 代码

何时停止并交接:

  • 当所有 .NET 发现结果发布后,将其交给“orchestrate-code-review”进行聚合
  • 当用户需要全面审查(范围+语言+cognitive)时,重定向到“审查代码”
  • 当.NET代码中发现安全问题时,记下它们并建议“审查安全性”

自检(Self-Check)

核心成功标准
  • 仅限 .NET 范围:仅审查 .NET (C#/F#) 语言和运行时约定;未执行范围选择、安全性或架构分析
  • 涵盖所有六个 .NET 维度:异步/等待、可空引用类型、API/版本控制、资源/IDisposable、集合/LINQ 和可测试性(如果相关)
  • 符合调查结果格式:每个调查结果包括位置、类别(language-dotnet)、严重性、标题、描述和可选建议
  • 文件:行引用:所有结果都引用带有行号的特定文件位置
  • 排除非 .NET 代码:除非明确在范围内,否则不会分析非 .NET 文件的 .NET 特定规则
流程质量检查
  • 是否仅审查了 .NET 语言/运行时维度(无范围/安全/架构)?
  • 是否涵盖了相关的异步、可空、IDisposable、LINQ 和可测试性?
  • 每个发现是否都包含位置、类别=language-dotnet、严重性、标题、描述和可选建议?
  • file:line 是否引用了问题?
验收测试

输出是否包含以 .NET 为中心的结果列表,其中包含文件:行引用,涵盖所有相关语言/运行时维度,而无需执行安全性、体系结构或范围分析?


示例(示例)

示例 1:异步方法
  • 输入:异步的 C# 方法,无需传递 CancellationToken 即可调用其他异步方法。
  • 预期:发出 CancellationToken 传播的发现(例如次要/建议);参考方法和参数列表。类别 = language-dotnet.
示例 2:可空和处置
  • 输入:持有 IDisposable 且不实现 IDisposable 或使用 using 的 C# 类。
  • 预期:发出资源处置的结果,如果字段可以为空,则可能可以为空。类别 = language-dotnet.
边缘情况:混合 C# 和 SQL
  • 输入:包含 C# 和嵌入式 SQL 字符串的文件。
  • 预期:仅查看 .NET 约定的 C# 部分(例如异步、可空、处置)。不要发出 SQL 注入结果;这是用于 review-security 或 review-sql。

评论

支持 Markdown