mcpField
C
code-reviewer

code-reviewer

github.com/zhaono1测试与质量85752 次安装9 周前更新
代码仓库

关于 code-reviewer

Code Reviewer 是用于审查拉取请求和代码变更的技能,涵盖正确性、安全性、性能和可维护性。它提供分阶段审查流程、检查清单、语言专属指南和检查清单脚本。

主要功能

  1. 01检查正确性和边界情况
  2. 02审查安全性与性能
  3. 03评估代码质量和可维护性
  4. 04核查测试与文档
  5. 05参考语言专属审查指南

适用场景

  1. 01批准前审查拉取请求
  2. 02检查变更中的安全问题
  3. 03评估新功能的测试

安装

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

$npx skills add https://github.com/zhaono1/agent-playbook --skill code-reviewer

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

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

README.md
references/
checklist.md
patterns.md
security.md
scripts/
review_checklist.py

详细介绍

代码审查

一项全面的代码审查技能,可分析拉取请求和代码变更的质量、安全性、可维护性和最佳实践。

此技能的触发条件

在以下情况下,此技能会触发:

  • 请求代码审查
  • 请求审查 PR
  • 提及审查变更
  • 说“审查这个”或“检查这段代码”

审查流程

阶段 1:收集上下文
  1. 获取变更的文件

    git diff main...HEAD --name-only
    git log main...HEAD --oneline
    
  2. 获取差异

    git diff main...HEAD
    
  3. 了解项目上下文

    • 阅读相关文档
    • 检查类似文件中已有的模式
    • 确定项目特有的约定
阶段 2:分析类别
1. 正确性
  • 逻辑合理且符合要求
  • 已处理边界情况
  • 错误处理恰当
  • 没有明显的错误或拼写错误
2. 安全性
  • 没有硬编码的密钥或凭据
  • 输入验证和清理
  • 防止 SQL 注入
  • 防止 XSS(针对前端)
  • 身份验证/授权检查
  • 安全处理用户数据
3. 性能
  • 没有 N+1 查询
  • 缓存使用恰当
  • 算法高效
  • 没有不必要的计算
  • 内存使用高效
4. 代码质量
  • 遵循 DRY 原则
  • 遵循 KISS 原则
  • 抽象恰当
  • 命名规范清晰
  • 类型定义正确(如果使用 TypeScript)
  • 没有注释掉的代码
5. 测试
  • 测试覆盖了新功能
  • 测试覆盖了边界情况
  • 测试断言有意义
  • 没有脆弱的测试
6. 文档
  • 复杂逻辑有说明
  • 公共 API 有文档
  • 函数有 JSDoc/TSDoc
  • 必要时更新 README
7. 可维护性
  • 代码易于阅读
  • 风格一致
  • 设计模块化
  • 职责分离
阶段 3:输出格式

使用以下结构化格式提供审查反馈:

# Code Review

## Summary
Brief overview of the changes (2-3 sentences).

## Issues by Severity

### Critical
Must fix before merge.

- [ ] **Issue Title**: Description with file:line reference

### High
Should fix before merge unless there's a good reason.

- [ ] **Issue Title**: Description with file:line reference

### Medium
Consider fixing, can be done in follow-up.

- [ ] **Issue Title**: Description with file:line reference

### Low
Nice to have improvements.

- [ ] **Issue Title**: Description with file:line reference

## Positive Highlights
What was done well in this PR.

## Suggestions
Optional improvements that don't require immediate action.

## Approval Status
- [ ] Approved
- [ ] Approved with suggestions
- [ ] Request changes

常见问题检查项

安全问题
问题模式建议
硬编码密钥const API_KEY = "sk-"使用环境变量
SQL 注入\"SELECT * FROM...\" + user_input使用参数化查询
XSS 漏洞innerHTML = user_input清理输入或使用 textContent
缺少身份验证检查新端点没有 @RequireAuth添加身份验证中间件
性能问题
问题模式建议
N+1 查询循环中调用数据库使用预加载或批量查询
不必要的重新渲染useEffect 中缺少依赖项修正依赖项数组
内存泄漏未移除事件监听器在 useEffect 返回函数中添加清理逻辑
低效循环嵌套循环 O(n²)考虑使用哈希表或其他算法
代码质量问题
问题模式建议
重复代码重复出现的相似代码块提取为函数
魔法数字if (status === 5)使用具名常量
函数过长函数超过 50 行拆分为更小的函数
条件复杂`a && b
测试问题
问题模式建议
没有测试新功能没有测试文件添加单元测试
边界情况未测试测试只覆盖正常情况添加边界情况测试
脆弱的测试测试依赖实现细节测试行为,而非实现
缺少断言测试没有断言任何内容添加恰当的断言

特定语言指南

TypeScript
  • 对未类型化的值使用 unknown,而非 any
  • 公共 API 优先使用 interface,联合类型使用 type
  • 使用严格模式设置
  • 尽可能避免使用 as 断言
React
  • 遵循 Hooks 规则
  • 适当使用 useCallback/useMemo(不要过早使用)
  • 优先使用函数组件
  • 在列表中使用恰当的 key 属性
  • 使用 Context 避免逐层传递 props
Python
  • 遵循 PEP 8 风格指南
  • 使用类型提示
  • 使用 f-strings 进行格式化
  • 优先使用列表推导式,而非 map/filter
  • 使用上下文管理器管理资源
Go
  • 明确处理错误
  • 使用命名返回值以提高清晰度
  • 保持 goroutine 简洁
  • 使用通道进行通信
  • 避免包级状态

批准前

确认以下事项:

  • 所有关键问题都已解决
  • 测试在本地通过
  • 没有合并冲突
  • 提交消息清晰
  • 文档已更新
  • 已记录重大变更

脚本

运行审查清单脚本:

python3 scripts/review_checklist.py --base main --output review-checklist.md

参考资料

  • references/checklist.md - 完整的审查清单
  • references/security.md - 安全审查指南
  • references/patterns.md - 常见模式和反模式

评论

支持 Markdown