关于 code-review
面向本地 CLI 代码审查的指南,供审查者按正确性、安全、测试和项目约定检查差异。它提供逐条验证问题并按优先级、文件和行号输出的格式。
主要功能
- 01差异审查检查清单
- 02涵盖安全与测试
- 03检查国际化与路由
- 04提示云端部署影响
- 05规定问题输出格式
适用场景
- 01审查本地代码差异
- 02检查修复是否有测试覆盖
- 03识别可能影响云端部署的改动
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ lobehub/ lobehub --skill code-review安装后在 Claude Code 中输入/code-review确认已加载。
详细介绍
代码审查指南
开始之前
- 阅读
/typescript和/testing技能,了解代码风格和测试约定 - 获取差异(如果上下文中已有,例如由 GitHub 审查应用注入,则跳过):
git diff或git diff origin/canary..HEAD
检查清单
正确性
- 遗留的
console.log/console.debug— 应使用debug包或将其删除 - 在 try/catch 中缺少
return await— 参阅 https://typescript-eslint.io/rules/return-await/(目前尚未纳入我们的 ESLint 配置,需要类型信息) - 修复/实现能否更简洁、高效,或兼容性更好?
安全性
- 不要在
console.*或debug()输出中暴露敏感数据(API 密钥、令牌、凭据) - 不要向终端输出 base64 内容 — 内容极长,会导致输出卡死
- 不要硬编码机密 — 使用环境变量
测试
- 修复 Bug 必须包含覆盖修复场景的测试
- 新逻辑(服务、store 操作、工具函数)应有测试覆盖
- 现有测试是否仍覆盖变更后的行为?
- 优先使用
vi.spyOn而非vi.mock(参阅/testing技能)
i18n
- 新增面向用户的字符串应使用 i18n 键,而非硬编码文本
- 在
src/locales/default/{namespace}.ts中添加键,命名格式为{feature}.{context}.{action|status} - 对于 PR:更新所有语言的
locales/翻译(pnpm i18n)
SPA / 路由
desktopRouter配对: 如果差异涉及src/spa/router/desktopRouter.config.tsx,是否也以相同的路由路径和嵌套结构更新了src/spa/router/desktopRouter.config.desktop.tsx?只修改单个文件往往会导致不一致和空白页面。
复用
- 新编写的代码是否重复了
packages/utils或共享模块中的现有工具函数? - 有细微差异的复制粘贴代码块 — 应提取为共享函数
antd导入是否可以替换为@lobehub/ui封装的组件(Input、Button、Modal、Avatar等)?- 使用
antd-style令牌系统,不要硬编码颜色;优先使用createStaticStyles+cssVar.*,而非createStyles+token,除非需要运行时计算
数据库
- 迁移脚本必须具备幂等性(使用
IF NOT EXISTS、IF EXISTS保护)
云端影响
下游云端部署依赖此仓库。请标记可能需要更新云端的变更:
- 后端路由路径变更 — 例如,重命名
src/app/(backend)/webapi/chat/route.ts或更改其导出内容 - SSR 页面路径变更 — 例如,移动或重命名
src/app/[variants]/(auth)/下的文件 - 依赖版本升级 — 例如,在
package.json中升级next或drizzle-orm @lobechat/business-*导出变更 — 例如,重命名src/business/中的函数,或更改packages/business/中的类型签名src/business/和packages/business/不得在注释或代码中暴露云端商业逻辑
输出格式
仅用于本地 CLI 审查(GitHub 审查应用会直接发布行内 PR 评论):
- 按顺序为所有发现的问题编号
- 标明优先级:
[high]/[medium]/[low] - 为每个问题注明文件路径和行号
- 只列出问题 — 不要写总结或赞扬
- 重新阅读每个问题对应的完整源代码,确认问题确实存在,然后输出“已验证所有问题。”
评论
支持 Markdown