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 级别的列出但不自动修复。| 特性 | ESLint | Biome |
|---|---|---|
| 速度 | 中等 | 极快 |
| 生态 | 极丰富 | 快速成长 |
| 配置复杂度 | 较高 | 极低 |
| 支持语言 | JS/TS | JS/TS/JSON/CSS |
2. Prettier 代码格式化 ✨
类别: 代码格式化 适用语言: 多语言支持
代码格式不统一是团队协作的噩梦。Prettier 用”有主见”的方式统一格式,消除争论。
能力说明:
- 自动格式化缩进、引号、分号、换行等
- 支持 JS/TS/CSS/HTML/Markdown/JSON/YAML 等
- 与 ESLint 配合使用(ESLint 管逻辑,Prettier 管格式)
Agent 使用场景:
# 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 使用场景:
# Agent 运行类型检查npx tsc --noEmit --strictnpx 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 中的所有导出函数编写单元测试,覆盖正常路径、边界值和错误处理三种情况。| 测试框架 | 语言 | 特点 |
|---|---|---|
| Jest | JS/TS | 全能型,生态丰富 |
| Vitest | JS/TS | 极速,Vite 生态 |
| Pytest | Python | 简洁优雅,fixture 强大 |
| Go test | Go | 内置,benchmark 支持 |
5. 安全漏洞扫描 🔒
类别: 安全 适用语言: 全语言
安全不是事后补救,而是从第一行代码就开始的。Agent 可以在编码过程中实时检测安全漏洞。
能力说明:
- 扫描依赖包的已知漏洞(npm audit / pip audit / Snyk)
- 检测代码中的安全反模式(SQL 注入、XSS、硬编码密钥)
- 提供修复建议和替代方案
Agent 使用场景:
# Node.js 项目安全扫描npm audit --json | jq '.vulnerabilities | length'
# Python 项目安全扫描pip-audit --format json
# 通用代码安全扫描npx snyk test典型指令:
检查项目的安全依赖,找出所有 high 和 critical 级别的漏洞,给出具体的升级建议。🚨 高频安全问题:
- 硬编码密钥 / API Token
- SQL 拼接未参数化
- 未验证的用户输入
- 使用已知漏洞的依赖版本
6. 代码覆盖率分析 📊
类别: 测试质量 适用语言: 全语言
测试覆盖率不是目标,但它是发现测试盲区的重要指标。Agent 可以分析覆盖率并找出未测试的关键路径。
能力说明:
- 生成行/分支/函数覆盖率报告
- 识别未覆盖的关键代码路径
- 对比不同版本的覆盖率变化
Agent 使用场景:
# 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 使用场景:
# 使用 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 + 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-commit | git commit 前 | Lint、格式化 |
| commit-msg | 写完提交信息后 | 校验格式(Conventional Commits) |
| pre-push | git push 前 | 运行测试 |
| post-merge | git 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 | 修复 Bug | fix(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 | 类别 | 难度 | 价值 |
|---|---|---|---|---|
| 1 | ESLint / Biome | 静态分析 | ⭐⭐ | ⭐⭐⭐⭐⭐ |
| 2 | Prettier | 格式化 | ⭐ | ⭐⭐⭐⭐ |
| 3 | TypeScript 类型检查 | 类型安全 | ⭐⭐ | ⭐⭐⭐⭐⭐ |
| 4 | 单元测试 | 测试 | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 5 | 安全扫描 | 安全 | ⭐⭐ | ⭐⭐⭐⭐⭐ |
| 6 | 覆盖率分析 | 测试质量 | ⭐⭐ | ⭐⭐⭐⭐ |
| 7 | 复杂度分析 | 代码质量 | ⭐⭐ | ⭐⭐⭐ |
| 8 | Git Hooks | 自动化 | ⭐⭐ | ⭐⭐⭐⭐ |
| 9 | Conventional Commits | 提交规范 | ⭐ | ⭐⭐⭐⭐ |
| 10 | PR 审查 | 代码审查 | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
核心观点: 代码审查类 Skill 是 Agent 的”基本功”。一个 Agent 如果只能写代码不能审查代码,就像一个只会进攻不会防守的球员——上限很高,但下限也很低。
系列导航
- 👈 上一篇: 无(本篇为系列开篇)
- 👉 下一篇: 第二篇:数据库与数据存储
- 📖 系列目录:
- ✅ 第一篇:代码审查与质量守护(你在这里)
- 第二篇:数据库与数据存储
- 第三篇:浏览器自动化与爬虫
- 第四篇:搜索与信息获取
- 第五篇:云服务与 DevOps
- 第六篇:知识管理与 RAG
- 第七篇:版本控制与协作
- 第八篇:文档与文件处理
- 第九篇:通信与通知集成
- 第十篇:创意与可视化
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!