mcpField
R
review-checklist

review-checklist

github.com/lobehub测试与质量83.6k51 次安装今天更新
代码仓库

关于 review-checklist

面向 LobeChat 代码贡献者的审查清单技能,涵盖正确性、安全、测试、本地化、路由、复用、数据库迁移及对下游云部署的影响。

主要功能

  1. 01正确性与安全检查
  2. 02测试覆盖和隔离指引
  3. 03本地化与路由检查
  4. 04共享 UI 和工具复用
  5. 05数据库迁移防护
  6. 06云端影响审查要点

适用场景

  1. 01审查缺陷修复或功能 PR
  2. 02检查新增数据库模型和仓库
  3. 03核查本地化与桌面路由
  4. 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-style token 系统,不要硬编码颜色;优先使用 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