使用开源 AI 技能扩展代码审查

发布: (2026年4月4日 GMT+8 06:42)
10 分钟阅读
原文: Dev.to

I’m unable to retrieve the full article from the link you provided. Could you please paste the text you’d like translated here? Once I have the content, I’ll translate it into Simplified Chinese while keeping the source line and formatting exactly as you requested.

AI 生成代码的崛起与合并请求过载

随着 AI 生成代码的兴起,审查合并请求变得比以前更具挑战性。

在多个项目中,我注意到同样的模式:合并请求的规模越来越大,频率也越来越高,这使得彻底审查变得日益困难。挑战不在于复杂度,而在于数量。

AI 加速了代码的产出,使这一差距变得显而易见。我们可以快速生成代码,但以同等严谨度进行审查却更为困难。

我没有尝试加快审查速度,而是选择以不同的方式审查。我提炼了自己的审查模式,并将其转化为一个AI Skill,现已开源。

背景:代码审查成为新的瓶颈

  • 代码审查过去能够随团队规模而扩展。更多的开发者意味着更多的审查者,平衡相对保持稳定。
  • 随着 AI 辅助开发,代码量大幅增长。Pull Request 更频繁且往往更大,而审查在持续的时间压力下进行。
  • 反馈往往变得表面化,架构问题可能被忽视,编码规范也会慢慢漂移。

问题不再是速度;而是 在整个代码库中保持一致的质量水平

从直觉到系统

有经验的开发者在审查代码时依赖一套 隐式规则。随着时间的推移,我们会建立一个 心智模型,了解优秀代码的样子:命名应反映行为,副作用应明确,UI 层应与业务逻辑隔离,等等。

这些规则很少被形式化;它们存在于经验之中,难以在团队中推广。

AI 技能的设计目标是将这些模式转化为 结构化且可复用 的东西。它 替代审查者;而是通过提前呈现相关问题、降低认知负荷、使期望明确来支持审查者。

设置:准备技能

该技能基于 模型上下文协议 (MCP) 构建,能够集成到任何兼容的环境,例如 Cursor

要使技能正常工作,您的编辑器必须与 GitHubGitLab 建立活跃的 MCP 连接。强烈建议使用这些平台提供的 原生 MCP,以确保在获取拉取请求数据时获得最佳的稳定性、安全性和性能。

一旦您的环境已连接到代码仓库,具体的安装步骤请参阅仓库文档:

查看安装指南

Source:

实现:技能的实际工作方式

一旦完成配置,技能即可直接嵌入您现有的工作流。它从编辑器中的一个简单指令开始:

/frontend-code-review Please review this pull request 

技能会检索该 Pull Request 并进入 发现阶段。它会检测技术栈、识别所使用的工具,并尝试了解更改的性质。此步骤至关重要,因为它使技能能够保持上下文相关,避免无关的检查。

仅根据更改的文件类型加载相关参考:

  • CSS 更改会触发 CSS‑特定的校验。
  • TypeScript 组件会在考虑前端‑架构模式的前提下进行分析。

在内部,分析依赖于 结构化审查模式。不会自动发布任何内容。开发者会审阅报告,过滤发现,并决定哪些内容真正需要在 Pull Request 中共享。

知识库:模块化参考指南

技能的强大之处在于它的 参考模块。AI 并不是使用“黑箱”逻辑,而是将每个领域的真相来源设为特定的 Markdown 文件。

您可以在仓库中查看完整的规则集,涵盖以下内容:

类别检查内容
安全性与可靠性XSS 漏洞、消毒问题、日志或存储中的 PII 保护
可访问性(WCAG)焦点管理、ARIA 角色、自定义交互元素的键盘可访问性
性能与 DOM布局抖动、内存泄漏(缺少监听器清理)、脚本加载策略
架构与逻辑关注点分离、命名语义、边界条件
现代 JS/TS类型安全、显式返回类型、现代语法
项目约定项目特定的编码风格、linter 规则、在发现过程中检测到的模块格式

这种模块化使得技能能够高度精准。如果您只想关注特定领域,只需简单指示它:

“仅审查此 PR 的可访问性和安全性方面。”

结构化反馈:降低噪声

噪声并非 AI 辅助审查所独有。即使在人类审查中,过多的评论一次性出现也会埋没重要反馈,或使优先级判断变得更困难。

此技能通过引入明确的 发现分类 来解决此问题。每条评论都标注一个级别,以帮助确定审查的优先顺序:

级别描述
Blocking安全问题、关键缺陷或逻辑破坏
Important架构、性能和可访问性方面的关注
Suggestion可读性改进
Minor成组的代码整洁项

另一个重要特性是 “需要关注” 标记。某些情况无法由 AI 可靠评估——尤其是涉及视觉冲击或复杂业务意图时。在这些情况下,技能会明确请求人工验证。

实际要点

  • AI 并未消除对人类专业知识的需求;它只是改变了工作投入的方向。
  • 使用 AI 作为检测层 而非决策者效果更佳。它能够快速呈现模式,而我们则对最终输出进行验证。这使审查过程保持可靠,并降低了扫描大量差异的认知负担。

生成(原文意外中断;如有需要请继续)。

过多的评论会削弱审查的价值

过滤和优先级排序比覆盖率更重要。在更大的前端拉取请求中,我们发现通过仅关注高层次的发现,审查速度可提升至 8 倍

开源与后续步骤

本项目最初是作为内部实验,用于自动化我自己的审稿模式。

我决定将其开源,因为向社区开放可以加速其演进。规则可以被讨论、挑战并共同改进。目标 不是 创建一个完美的审稿人,而是提供一个共享的 结构化审稿模式 基线。

所有代码和技能配置均可在我的 GitHub 上获取:

Discover the frontend code review skill on GitHub

Conclusion

代码审查必须与加速的开发保持同步。仅仅依赖人工审查已不再可持续,尤其是 AI 以空前的速度生成代码。

通过使用 结构化 AI 技能,我们可以在人工查看差异之前自动检测高级模式——包括安全性和可访问性。这恢复了必要的平衡,即 AI 负责重复且繁琐的扫描,而人类专家则专注于需要真正判断的架构决策和业务逻辑

归根结底,目标是 将我们的责任委派出去,而是在最能发挥价值的地方行使它。


资源

0 浏览
Back to Blog

相关文章

阅读更多 »