关于 review-checklist
面向 LobeChat 代码贡献者的审查清单技能,涵盖正确性、安全、测试、本地化、路由、复用、数据库迁移及对下游云部署的影响。
主要功能
- 01正确性与安全检查
- 02测试覆盖和隔离指引
- 03本地化与路由检查
- 04共享 UI 和工具复用
- 05数据库迁移防护
- 06云端影响审查要点
适用场景
- 01审查缺陷修复或功能 PR
- 02检查新增数据库模型和仓库
- 03核查本地化与桌面路由
- 04评估可能影响云部署的变更
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ lobehub/ lobehub --skill review-checklist安装后在 Claude Code 中输入/review-checklist确认已加载。
详细介绍
评审检查清单
正确性
- 遗留的
console.log/console.debug—— 应使用debug包或将其删除 - 在 try/catch 中缺少
return await—— 参见 https://typescript-eslint.io/rules/return-await/(尚未纳入我们的 ESLint 配置,需要类型信息) - 修复/实现能否更加简洁、高效,或具备更好的兼容性?
安全性
console.*或debug()输出中不得包含敏感数据(API 密钥、令牌、凭据)- 不要向终端输出 base64 内容 —— 内容极长,会导致输出卡死
- 不要硬编码机密信息 —— 使用环境变量
测试
- Bug 修复必须包含覆盖已修复场景的测试
- 新增逻辑(服务、store 操作、工具函数)应有测试覆盖
- 新增数据库 Model/Repository(
packages/database/src/models/**、src/repositories/**)必须附带同级的__tests__/<name>.test.ts—— 包括用户隔离测试;BM25 搜索应使用describe.skipIf(!isServerDB)保护(参见/testing→db-model-test.md) - 现有测试是否仍覆盖变更的行为?
- 优先使用
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或共享模块中的现有工具函数? - 存在略有差异的复制粘贴代码块时,应将其提取为共享函数
- 可用
@lobehub/ui封装组件(Input、Button、Modal、Avatar等)替换antd导入 - 使用
antd-styletoken 系统,不要硬编码颜色;优先使用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/不得在注释或代码中暴露云端商业逻辑
评论
支持 Markdown