关于 convex-reviewer
convex-reviewer 是面向 Convex 开发者的代码审查技能。它检查安全、授权、验证器、性能和架构设计,并按严重程度列出问题、原因及修复建议。
主要功能
- 01检查安全与授权
- 02审查验证器和架构
- 03检查查询性能
- 04按严重程度提供问题与修复建议
适用场景
- 01合并前审查 Convex 代码
- 02发现授权与数据访问风险
- 03检查查询模式和验证器
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ get-convex/ agent-skills --skill convex-reviewer安装后在 Claude Code 中输入/convex-reviewer确认已加载。
详细介绍
Convex 代码审查
对 Convex 代码进行结构化审查,检查安全性、授权、验证器、性能和架构设计。按照 Convex 专属清单进行检查,并根据严重性(Critical / Important / Suggestion)标记反模式。
工作流
- 第一轮——安全性:确认所有公共函数都会检查 ctx.auth.getUserIdentity();在读取/写入前验证资源所有权;确认不会信任客户端提供的用户 ID;确认计划任务函数调用的是 internal.,而不是 api.。
- 第二轮——性能:确认数据库查询中没有使用 .filter()(必须使用 withIndex);验证所有外键字段都已建立索引;确认查询处理函数中没有 Date.now();确认不会对无界查询使用 .collect()。
- 第三轮——代码质量:确认每个公共函数都为参数和返回值定义了验证器;没有 any 类型;所有 Promise 都已 await;文档中的数组长度有限(<8192 个元素)。
- 按严重性对问题分组报告;说明每个问题的重要性,并建议修复方法。
规则
- 将缺少身份验证检查标记为 Critical——任何未经身份验证的公共 mutation 都有数据丢失风险。
- 将数据库查询中的 .filter() 标记为 Important——它会扫描整张表。
- 将查询处理函数中的 Date.now() 标记为 Important——它会破坏响应式。
- 将缺少参数或返回值验证器标记为 Important。
- 将计划任务指向 api.(而非 internal.)标记为 Important。
- 始终解释为什么需要更改,而不只是说明要更改什么。
评论
支持 Markdown