mcpField
C
code-review

code-review

github.com/motormetrics测试与质量2280 次安装1 天前更新
代码仓库

关于 code-review

用于代码评审的 Skill,提供功能、质量、类型安全、测试、性能和安全检查清单。面向评审 TypeScript 项目的开发者,并附有示例命令及建设性意见的优先级标记。

主要功能

  1. 01功能与边界情况检查
  2. 02代码质量清单
  3. 03类型安全检查
  4. 04测试与覆盖率评审
  5. 05性能与安全检查
  6. 06评审意见优先级标记

适用场景

  1. 01评审 Pull Request
  2. 02合并前检查 TypeScript 变更
  3. 03提交 PR 前自我评审

安装

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

$npx skills add https://github.com/motormetrics/motormetrics --skill code-review

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

详细介绍

代码审查技能

快速检查

# Run all automated checks
pnpm biome check .
pnpm tsc --noEmit
pnpm test

# Search for common issues
grep -r "any" apps/ packages/ --include="*.ts"       # any usage
grep -r "console.log" apps/ packages/ --include="*.ts"  # debug logs
grep -r "TODO" apps/ packages/ --include="*.ts"      # TODOs

审查清单

功能: 代码可正常运行,已处理边界情况,没有明显错误
代码质量: 易于阅读,函数精简且专注,命名清晰,没有重复代码
类型安全: 不使用 any,使用恰当的 TypeScript 类型,接口定义明确
测试: 新代码附带测试,测试覆盖边界情况
性能: 没有不必要的重新渲染,查询经过优化,没有 N+1 问题
安全性: 没有 SQL 注入、XSS 或泄露的机密信息;已进行输入验证

常见反模式

// ❌ Magic numbers → ✅ Use constants
if (user.age > 18) {}          // Bad
if (user.age >= LEGAL_AGE) {}  // Good

// ❌ Deep nesting → ✅ Early returns
if (!user || !user.isActive) return;

// ❌ Using any → ✅ Proper typing
function process(data: any) {}           // Bad
function process(data: UserData) {}      // Good

// ❌ SQL injection → ✅ Parameterized queries
const query = `SELECT * FROM users WHERE id = ${userId}`;  // Bad
db.query.users.findFirst({ where: eq(users.id, userId) }); // Good

// ❌ N+1 queries → ✅ Single query with join
for (const post of posts) { post.author = await db.query.users... }  // Bad
db.query.posts.findMany({ with: { author: true } });                  // Good

// ❌ Missing memoization → ✅ useMemo for expensive ops
const data = expensiveOperation(data);          // Bad
const data = useMemo(() => expensiveOperation(data), [data]); // Good

审查评论

使用以下标记,让评论更清晰:

  • 🔴 必须修复:阻碍合并的关键问题(安全问题、错误)
  • 🟡 应当修复:重要但不阻碍合并的问题
  • 🟢 建议:锦上添花
  • 💡 学习提示:提供教育性背景
  • ❓ 问题:请求澄清

PR 前自我审查

git diff main...HEAD                    # View changes
pnpm biome check --write .              # Format/lint
pnpm tsc --noEmit                       # Type check
pnpm test                               # Run tests
git diff --stat main...HEAD             # Check PR size

特定框架检查

React: 检查 hooks 的用法、记忆化、key props、useEffect 依赖项
Next.js: 检查服务端与客户端组件、'use client' 指令、元数据
Drizzle: 检查索引是否恰当、N+1 查询、事务

最佳实践

  1. 提供建设性意见: 着眼于改进,而非批评
  2. 解释原因: 为建议提供背景
  3. 区分优先级: 标明关键问题与锦上添花的建议
  4. 及时处理: 尽快审查 PR

参考资料

  • 安全审计请参阅 security 技能
  • 性能优化请参阅 performance 技能

评论

支持 Markdown