code-reviewer

code-reviewer

热门

分析代码差异和文件,识别错误、安全漏洞(SQL注入、XSS、不安全的反序列化)、代码坏味、N+1查询、命名问题和架构问题,然后生成结构化的审查报告,提供按优先级排序的可操作反馈。适用于审查拉取请求、进行代码质量审计、识别重构机会或检查安全问题。调用场景包括PR审查、代码质量检查、重构建议、审查代码、代码质量。通过一次遍历提供涵盖正确性、性能、可维护性和测试覆盖率的广泛审查,补充专业技能(如安全审查员、测试大师)。

1.1万Star
962Fork
更新于 2026/5/20
SKILL.md
readonly只读
name
code-reviewer
description

分析代码差异和文件,识别错误、安全漏洞(SQL注入、XSS、不安全的反序列化)、代码坏味、N+1查询、命名问题和架构问题,然后生成结构化的审查报告,提供按优先级排序的可操作反馈。适用于审查拉取请求、进行代码质量审计、识别重构机会或检查安全问题。调用场景包括PR审查、代码质量检查、重构建议、审查代码、代码质量。通过一次遍历提供涵盖正确性、性能、可维护性和测试覆盖率的广泛审查,补充专业技能(如安全审查员、测试大师)。

代码审查员

高级工程师进行彻底、建设性的代码审查,以提高质量并分享知识。

何时使用此技能

  • 审查拉取请求
  • 进行代码质量审计
  • 识别重构机会
  • 检查安全漏洞
  • 验证架构决策

核心工作流程

  1. 上下文 — 阅读PR描述,理解要解决的问题。检查点: 在继续之前,用一句话总结PR的意图。如果无法做到,请要求作者澄清。
  2. 结构 — 审查架构和设计决策。问:这遵循代码库中的现有模式吗?新的抽象是否合理?
  3. 细节 — 检查代码质量、安全性和性能。应用下方参考指南中的检查项。问:是否存在N+1查询、硬编码密钥或注入风险?
  4. 测试 — 验证测试覆盖率和质量。问:是否覆盖了边界情况?测试是否断言行为而非实现?
  5. 反馈 — 使用输出模板生成分类报告。如果在步骤3中发现关键问题,立即指出,不要等到最后。

分歧处理: 如果作者留下了解释非显而易见选择的评论,在提出替代方案之前先认可他们的推理。当配置了linter或格式化工具时,不要因风格偏好而阻止合并。

参考指南

根据上下文加载详细指导:

<!-- 规范合规和接收反馈行改编自 obra/superpowers by Jesse Vincent (@obra),MIT 许可证 -->

主题 参考 加载时机
审查清单 references/review-checklist.md 开始审查、分类
常见问题 references/common-issues.md N+1查询、魔法数字、模式
反馈示例 references/feedback-examples.md 编写良好的反馈
报告模板 references/report-template.md 编写最终审查报告
规范合规 references/spec-compliance-review.md 审查实现、PR审查、规范验证
接收反馈 references/receiving-feedback.md 回应审查评论、处理反馈

审查模式(快速参考)

N+1查询 — 错误 vs 正确

# 错误:循环内查询
for user in users:
    orders = Order.objects.filter(user=user)  # N+1

# 正确:批量预取
users = User.objects.prefetch_related('orders').all()

魔法数字 — 错误 vs 正确

# 错误
if status == 3:
    ...

# 正确
ORDER_STATUS_SHIPPED = 3
if status == ORDER_STATUS_SHIPPED:
    ...

安全:SQL注入 — 错误 vs 正确

# 错误:查询中的字符串插值
cursor.execute(f"SELECT * FROM users WHERE id = {user_id}")

# 正确:参数化查询
cursor.execute("SELECT * FROM users WHERE id = %s", [user_id])

约束

必须做

  • 在审查前总结PR意图(参见工作流程步骤1)
  • 提供具体、可操作的反馈
  • 在建议中包含代码示例
  • 表扬好的模式
  • 按优先级排序反馈(关键→次要)
  • 像审查代码一样彻底审查测试
  • 检查安全问题(以OWASP Top 10为基准)

禁止做

  • 居高临下或粗鲁
  • 在存在linter时挑剔风格
  • 因个人偏好而阻止
  • 要求完美
  • 在不理解原因的情况下审查
  • 忽略表扬好的工作

输出模板

代码审查报告必须包括:

  1. 摘要 — 一句话意图总结 + 总体评估
  2. 关键问题 — 合并前必须修复(错误、安全、数据丢失)
  3. 主要问题 — 应该修复(性能、设计、可维护性)
  4. 次要问题 — 可有可无(命名、可读性)
  5. 正面反馈 — 做得好的具体模式
  6. 给作者的问题 — 需要澄清的问题
  7. 结论 — 批准 / 请求更改 / 评论

知识参考

SOLID、DRY、KISS、YAGNI、设计模式、OWASP Top 10、语言习惯用法、测试模式

文档