mcpField
C
code-review

code-review

github.com/getsentry测试与质量1.1k5.5k 次安装5 天前更新
代码仓库

关于 code-review

面向 Sentry 项目的代码审查技能,帮助审查者评估正确性、安全性、性能、设计、测试覆盖率和长期影响。它强调可执行且礼貌的反馈,并依据风险决定是否批准。

主要功能

  1. 01检查运行时错误和性能风险
  2. 02审查副作用与 API 兼容性
  3. 03识别安全漏洞
  4. 04评估设计与项目约定
  5. 05检查测试和边界情况
  6. 06标记需高级工程师审查的变更

适用场景

  1. 01审查 Sentry 拉取请求中的缺陷
  2. 02评估变更的安全与性能风险
  3. 03检查测试覆盖率和兼容性影响

安装

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

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

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

详细介绍

Sentry 代码审查

审查 Sentry 项目代码时,请遵循以下准则。

审查清单

识别问题

在代码变更中查找以下问题:

  • 运行时错误:潜在的异常、空指针问题、越界访问
  • 性能:无界的 O(n²) 操作、N+1 查询、不必要的内存分配
  • 副作用:影响其他组件的非预期行为变更
  • 向后兼容性:没有迁移路径的破坏性 API 变更
  • ORM 查询:查询性能出乎意料的复杂 Django ORM
  • 安全漏洞:注入、XSS、访问控制缺失、密钥泄露
设计评估
  • 组件之间的交互是否合乎逻辑?
  • 变更是否符合现有项目架构?
  • 是否与当前需求或目标存在冲突?
测试覆盖

每个 PR 都应有适当的测试覆盖:

  • 针对业务逻辑的功能测试
  • 针对组件交互的集成测试
  • 针对关键用户路径的端到端测试

验证测试是否覆盖了实际需求和边界情况。避免在测试代码中出现过多的分支或循环。

长期影响

当变更涉及以下内容时,标记出来交由资深工程师审查:

  • 数据库 schema 修改
  • API 契约变更
  • 采用新的框架或库
  • 性能关键代码路径
  • 安全敏感功能

反馈准则

语气
  • 保持礼貌和共情
  • 提供可操作的改进建议,而非含糊的批评
  • 不确定时以提问的方式表达:“你是否考虑过……?”
批准
  • 仅存在小问题时即可批准
  • 不要因风格偏好而阻塞 PR
  • 请记住:目标是降低风险,而非追求完美代码

常见需标记的模式

Python/Django
# Bad: N+1 query
for user in users:
    print(user.profile.name)  # Separate query per user

# Good: Prefetch related
users = User.objects.prefetch_related('profile')
TypeScript/React
// Bad: Missing dependency in useEffect
useEffect(() => {
  fetchData(userId);
}, []);  // userId not in deps

// Good: Include all dependencies
useEffect(() => {
  fetchData(userId);
}, [userId]);
安全
# Bad: SQL injection risk
cursor.execute(f"SELECT * FROM users WHERE id = {user_id}")

# Good: Parameterized query
cursor.execute("SELECT * FROM users WHERE id = %s", [user_id])

参考资料

评论

支持 Markdown