SuperAPI AI 工具集

commit-review

编程与开发

查看项目

更新于 10-16 08:52

技能介绍

用途

commit-review 是一个面向微信小程序原生开发项目的代码提交评审技能,用于在代码提交前进行全面的架构和代码质量评审,确保代码符合项目的关键约束和最佳实践。

何时使用

  • 准备提交代码前(git commit 之前)
  • 代码审查时
  • 用户明确要求评审代码时

关键词:review、评审、检查、commit、提交。

主要能力

该技能提供一份评审检查清单,覆盖以下方面:

关键架构约束(必须遵守)

  1. Runtime 模块外部化:runtime 模块必须保持外部引用,绝不能被打包。检查所有 import ... from 'runtime' 或 import ... from 'runtime/...' 的引用是否正确,vite.config.ts 中是否正确配置了 runtime 外部化,没有尝试修改 runtime 的外部化配置,没有在 optimizeDeps.include 中包含 runtime。

  2. 依赖安装规则:所有新依赖必须安装为 devDependencies。检查 package.json 中是否有新增的 dependencies,所有新安装的包是否使用了 pnpm i -D 命令。正确做法:pnpm i -D package-name;错误做法:pnpm i package-name。

  3. TypeScript 强制使用:所有逻辑文件必须使用 TypeScript (.ts),禁止使用 .js。检查新增或修改的页面/组件是否使用 .ts 文件,基本类型检查,特别注意组件 props 和函数参数类型不能使用 any,没有创建新的 .js 文件(除非是配置文件),类型定义是否完整。

  4. Tailwind CSS 强制使用:所有样式必须使用 Tailwind CSS,禁止创建 .wxss 文件。检查没有创建新的 .wxss 文件,所有样式都在 .wxml 中使用 Tailwind 类名,使用了正确的 rpx 单位(Tailwind 会自动转换 rem 为 rpx)。

组件开发规范

  1. Component 配置:所有组件必须设置正确的 styleIsolation。检查组件的 .json 文件中是否包含 "styleIsolation": "apply-shared",组件是否正确声明为 "component": true。

性能最佳实践

  1. setData 优化:使用数据路径和批量更新。检查是否使用了数据路径更新(如 this.setData({ 'list[0].text': 'new' })),是否合并了多个 setData 调用,没有在循环中调用 setData。

  2. Component vs Page:优先使用 Component() 而非 Page()。检查新页面是否使用 Component() 构造器,只在必要时使用 Page()。

常见问题检查

  1. iOS 日期解析:iOS 不支持 'YYYY-MM-DD' 格式。检查日期字符串是否使用 .replace(/-/g, '/') 处理。

  2. 图标使用规范:必须使用 iconfont,禁止使用图片文件。检查图标是否使用 <text class="icon icon-xxx"></text> 格式,没有为图标创建 .png/.jpg 等图片文件。

构建和发布

  1. 构建产物检查:确保三个输出目录的正确性——dist/(主构建输出,包含 miniprogram_npm)、dist_miniprogram/(NPM 包分发,排除 pages、app.js、miniprogram_npm)、dist_plugin/(插件包,包含 plugin.json)。

  2. 插件发布准备:发布前必须清理 dist 目录。检查是否更新了 project.config.json 中的 appid,是否更新了 miniprogram/app.json 中的 provider,dist/app.json 是否替换为插件配置,dist 目录是否只保留必要文件。

安全检查

  1. 安全漏洞:检查常见安全问题,包括没有命令注入风险、没有 XSS 漏洞(用户输入是否正确转义)、没有敏感信息泄露(API key、token 等)。

代码质量

  1. 代码简洁性:避免过度工程。检查没有添加未被要求的功能,没有不必要的重构,没有为一次性操作创建工具函数,没有添加不必要的错误处理,没有添加未使用的类型定义或注释。

  2. 向后兼容性:避免兼容性黑客。检查没有重命名未使用的变量为 _var,没有为删除的代码添加 // removed 注释,没有重新导出未使用的类型,未使用的代码已完全删除。

使用方式

评审流程如下:

  1. 读取变更文件:使用 git diff --cached --name-only 和 git diff --cached 查看暂存的变更。
  2. 逐项检查清单:按照上述检查清单逐项验证,标记 🔴 关键问题(必须修复)、🟡 警告问题(建议修复)、🟢 优化建议(可选)。
  3. 生成评审报告:列出所有发现的问题,提供具体的修复建议,给出代码示例。
  4. 修复确认:如果有问题,要求修复后再次评审;如果通过,允许提交。

使用示例:

# 用户准备提交代码
git add .

# 触发评审
"请评审我的代码"
"review my changes"
"检查代码是否符合规范"

评审报告模板包含概览(变更文件数、新增行数、删除行数)、关键问题、警告问题、优化建议和评审结论。

适用场景

适用于微信小程序原生开发项目,尤其是使用 TypeScript、Tailwind CSS、Vite 构建,并涉及 runtime 模块外部化、NPM 包分发和插件发布的工程环境。

限制

  • 该技能针对特定的项目架构约束(如 runtime 外部化、Tailwind 强制使用、Component 优先等),不适用于不遵循这些约定的项目。
  • 评审基于预设检查清单,不做主观判断。
  • 关于收费、价格、平台支持范围等信息,资料中暂未提供。