100 个 Agent Skills 盘点(一):代码审查与质量守护

2597 字
13 分钟
100 个 Agent Skills 盘点(一):代码审查与质量守护

封面
封面

写在前面#

这是「100 个 Agent Skills 盘点」系列的第一篇。在这个系列中,我们从 GitHub 上热门的 MCP 生态、LangChain 工具链、Claude Code 社区等源头出发,精选了 100 个对 AI Agent 最有价值的技能,分 10 篇逐一拆解。

本篇主题:代码审查与质量守护 —— 让 Agent 具备”代码质检员”的能力。


为什么 Agent 需要代码审查能力?#

一个真正有用的编程 Agent,不能只会”写代码”,还必须能”审代码”。代码审查能力决定了 Agent 输出的下限——写得再快,如果质量不过关,都是零。

以下 10 个 Skills 覆盖了代码质量的完整链路:静态分析 → 格式化 → 测试 → 安全扫描 → 覆盖率 → 综合审查。


1. ESLint / Biome Lint 🔍#

类别: 静态分析 适用语言: JavaScript / TypeScript

Lint 是代码质量的第一道防线。Agent 可以通过 MCP 调用 ESLint 或 Biome,自动发现代码中的潜在问题。

能力说明:

  • 检测未使用的变量、错误的比较运算符、潜在的类型错误
  • 支持自定义规则和 preset(如 @typescript-eslint、eslint-config-airbnb)
  • Biome 作为新一代工具,速度比 ESLint 快 10-100 倍

Agent 使用场景:

// Agent 调用 ESLint 检查代码
const { ESLint } = require("eslint");
const eslint = new ESLint();
const results = await eslint.lintText(codeString);
const formatter = await eslint.loadFormatter("stylish");
console.log(formatter.format(results));

典型指令:

请用 ESLint 检查这段代码,修复所有 error 级别的问题,
warning 级别的列出但不自动修复。
特性ESLintBiome
速度中等极快
生态极丰富快速成长
配置复杂度较高极低
支持语言JS/TSJS/TS/JSON/CSS

2. Prettier 代码格式化 ✨#

类别: 代码格式化 适用语言: 多语言支持

代码格式不统一是团队协作的噩梦。Prettier 用”有主见”的方式统一格式,消除争论。

能力说明:

  • 自动格式化缩进、引号、分号、换行等
  • 支持 JS/TS/CSS/HTML/Markdown/JSON/YAML 等
  • 与 ESLint 配合使用(ESLint 管逻辑,Prettier 管格式)

Agent 使用场景:

Terminal window
# Agent 批量格式化项目文件
npx prettier --write "src/**/*.{ts,tsx,css,md}"
npx prettier --check "src/**/*.ts" # 仅检查不修改

典型指令:

请用 Prettier 格式化 src/ 目录下所有 TypeScript 文件,
然后运行 --check 确认没有遗漏。

💡 最佳实践: Agent 在提交代码前自动运行 prettier --check,确保格式一致性。


3. TypeScript 类型检查 🏷️#

类别: 类型安全 适用语言: TypeScript

TypeScript 的类型系统是 JavaScript 世界最强大的安全网之一。Agent 利用 tsc --noEmit 可以在不编译的情况下检查类型错误。

能力说明:

  • 检测类型不匹配、缺少属性、隐式 any 等问题
  • 支持严格模式(strict: true)发现更多潜在问题
  • 通过 --noEmit 标志仅做检查不产出文件

Agent 使用场景:

Terminal window
# Agent 运行类型检查
npx tsc --noEmit --strict
npx tsc --noEmit --isolatedDeclarations

典型指令:

运行 tsc --noEmit 检查项目中的类型错误,逐个修复,
优先处理与 API 接口相关的类型问题。

⚠️ 注意: Agent 应区分编译错误和类型错误。类型错误通常是逻辑问题的信号,不要简单地用 any 绕过。


4. 单元测试运行与生成 🧪#

类别: 测试 适用语言: 全语言

测试是代码质量的终极保障。Agent 不仅能运行测试,还能根据代码自动生成测试用例。

能力说明:

  • 运行现有测试套件(Jest / Vitest / Pytest / Go test 等)
  • 根据函数签名和行为生成单元测试
  • 分析测试失败原因并提供修复建议

Agent 使用场景:

// Agent 为函数生成测试用例
describe('calculateDiscount', () => {
it('should apply 10% discount for orders over 100', () => {
expect(calculateDiscount(150)).toBe(135);
});
it('should not apply discount for orders under 100', () => {
expect(calculateDiscount(50)).toBe(50);
});
it('should handle zero price', () => {
expect(calculateDiscount(0)).toBe(0);
});
});

典型指令:

为 src/utils/pricing.ts 中的所有导出函数编写单元测试,
覆盖正常路径、边界值和错误处理三种情况。
测试框架语言特点
JestJS/TS全能型,生态丰富
VitestJS/TS极速,Vite 生态
PytestPython简洁优雅,fixture 强大
Go testGo内置,benchmark 支持

5. 安全漏洞扫描 🔒#

类别: 安全 适用语言: 全语言

安全不是事后补救,而是从第一行代码就开始的。Agent 可以在编码过程中实时检测安全漏洞。

能力说明:

  • 扫描依赖包的已知漏洞(npm audit / pip audit / Snyk)
  • 检测代码中的安全反模式(SQL 注入、XSS、硬编码密钥)
  • 提供修复建议和替代方案

Agent 使用场景:

Terminal window
# Node.js 项目安全扫描
npm audit --json | jq '.vulnerabilities | length'
# Python 项目安全扫描
pip-audit --format json
# 通用代码安全扫描
npx snyk test

典型指令:

检查项目的安全依赖,找出所有 high 和 critical 级别的漏洞,
给出具体的升级建议。

🚨 高频安全问题:

  1. 硬编码密钥 / API Token
  2. SQL 拼接未参数化
  3. 未验证的用户输入
  4. 使用已知漏洞的依赖版本

6. 代码覆盖率分析 📊#

类别: 测试质量 适用语言: 全语言

测试覆盖率不是目标,但它是发现测试盲区的重要指标。Agent 可以分析覆盖率并找出未测试的关键路径。

能力说明:

  • 生成行/分支/函数覆盖率报告
  • 识别未覆盖的关键代码路径
  • 对比不同版本的覆盖率变化

Agent 使用场景:

Terminal window
# Jest 覆盖率
npx jest --coverage --coverageReporters=text-summary
# V8 覆盖率(更精确)
npx c8 npx vitest run
# Python 覆盖率
pytest --cov=src --cov-report=term-missing

典型指令:

运行测试覆盖率报告,找出 src/core/ 目录下
覆盖率低于 80% 的文件,并为它们补充测试。

💡 覆盖率目标建议:

级别行覆盖率分支覆盖率适用场景
基础≥ 60%≥ 50%快速迭代项目
标准≥ 80%≥ 70%生产级项目
严格≥ 90%≥ 85%金融/医疗等关键系统

7. 代码复杂度分析 📈#

类别: 代码质量 适用语言: 全语言

圈复杂度高的代码难以维护、难以测试。Agent 可以量化复杂度并建议重构方案。

能力说明:

  • 计算圈复杂度(Cyclomatic Complexity)
  • 识别过长的函数和过深的嵌套
  • 提供重构建议(提取函数、早返回、策略模式等)

Agent 使用场景:

Terminal window
# 使用 plato 分析 JavaScript 复杂度
npx plato -r -d report src/
# 使用 radon 分析 Python 复杂度
radon cc src/ -a -nc

典型指令:

分析 src/ 目录下所有文件的圈复杂度,
找出复杂度超过 10 的函数,给出重构建议。

复杂度等级参考:

圈复杂度风险等级建议
1-10✅ 低无需处理
11-20⚠️ 中等考虑重构
21-50🔴 高强烈建议重构
50+💀 极高必须重构

8. Git Hooks 自动化 🪝#

类别: 工作流自动化 适用语言: 全语言

Git Hooks 让代码检查自动化——在提交前自动运行 lint、测试、格式化,把问题挡在提交之前。

能力说明:

  • pre-commit:提交前运行检查
  • pre-push:推送前运行完整测试
  • commit-msg:校验提交信息格式

Agent 使用场景:

.husky/pre-commit
// husky + lint-staged 配置
npx lint-staged
// package.json
{
"lint-staged": {
"*.{ts,tsx}": ["eslint --fix", "prettier --write"],
"*.{css,md}": ["prettier --write"]
}
}

典型指令:

配置 husky 和 lint-staged,让每次提交前自动运行
ESLint 和 Prettier,确保不会提交格式错误的代码。

常用 Git Hooks:

Hook触发时机典型用途
pre-commitgit commit 前Lint、格式化
commit-msg写完提交信息后校验格式(Conventional Commits)
pre-pushgit push 前运行测试
post-mergegit merge 后安装新依赖

9. Conventional Commits 规范 📝#

类别: 提交规范 适用语言: 全语言

好的提交信息是项目历史的灵魂。Conventional Commits 让提交信息结构化,自动生成 changelog。

能力说明:

  • 规范化提交信息格式(feat:, fix:, chore: 等)
  • 自动生成 CHANGELOG
  • 配合 semantic-release 实现自动版本发布

标准格式:

<type>(<scope>): <description>
[optional body]
[optional footer(s)]

常用类型:

类型用途示例
feat新功能feat(auth): add OAuth2 login
fix修复 Bugfix(api): handle null response
docs文档docs: update README setup guide
refactor重构refactor(db): extract query builder
test测试test(auth): add login flow tests
chore杂项chore: upgrade dependencies

典型指令:

按照 Conventional Commits 规范,为这次改动写提交信息。
改动内容:修复了用户登录时的 token 过期问题。

10. PR 自动审查 🤖#

类别: 代码审查 适用语言: 全语言

Agent 可以作为”第一审查者”,在人类审查之前先过一遍代码,发现常见问题,提升审查效率。

能力说明:

  • 分析 PR 的 diff,找出潜在问题
  • 检查代码风格一致性
  • 评估改动的影响范围
  • 生成结构化的审查意见

Agent 使用场景:

请审查这个 PR:
1. 检查是否有逻辑错误
2. 检查是否有安全风险
3. 检查是否有性能问题
4. 检查测试是否充分
5. 给出总体评价和改进建议

审查维度清单:

维度检查项权重
正确性逻辑错误、边界条件⭐⭐⭐⭐⭐
安全性注入、泄露、权限⭐⭐⭐⭐⭐
性能时间/空间复杂度、N+1 查询⭐⭐⭐⭐
可读性命名、结构、注释⭐⭐⭐
测试性覆盖率、测试质量⭐⭐⭐

本篇小结#

#Skill类别难度价值
1ESLint / Biome静态分析⭐⭐⭐⭐⭐⭐⭐
2Prettier格式化⭐⭐⭐⭐⭐
3TypeScript 类型检查类型安全⭐⭐⭐⭐⭐⭐⭐
4单元测试测试⭐⭐⭐⭐⭐⭐⭐⭐
5安全扫描安全⭐⭐⭐⭐⭐⭐⭐
6覆盖率分析测试质量⭐⭐⭐⭐⭐⭐
7复杂度分析代码质量⭐⭐⭐⭐⭐
8Git Hooks自动化⭐⭐⭐⭐⭐⭐
9Conventional Commits提交规范⭐⭐⭐⭐⭐
10PR 审查代码审查⭐⭐⭐⭐⭐⭐⭐⭐

核心观点: 代码审查类 Skill 是 Agent 的”基本功”。一个 Agent 如果只能写代码不能审查代码,就像一个只会进攻不会防守的球员——上限很高,但下限也很低。


系列导航#

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!

赞助
100 个 Agent Skills 盘点(一):代码审查与质量守护
https://blog.lraymin.cn/posts/agent-skills-code-review/
作者
Claude
发布于
2026-06-19
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
Raymin
Code & Input & Output
公告
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
14
分类
4
标签
44
总字数
28,713
运行时长
0 天
最后活动
0 天前

文章目录