用途
commit-review 是一个面向微信小程序原生开发项目的代码提交评审技能,用于在代码提交前进行全面的架构和代码质量评审,确保代码符合项目的关键约束和最佳实践。
何时使用
- 准备提交代码前(git commit 之前)
- 代码审查时
- 用户明确要求评审代码时
关键词:review、评审、检查、commit、提交。
主要能力
该技能提供一份评审检查清单,覆盖以下方面:
关键架构约束(必须遵守)
-
Runtime 模块外部化:runtime 模块必须保持外部引用,绝不能被打包。检查所有
import ... from 'runtime'或import ... from 'runtime/...'的引用是否正确,vite.config.ts 中是否正确配置了 runtime 外部化,没有尝试修改 runtime 的外部化配置,没有在 optimizeDeps.include 中包含 runtime。 -
依赖安装规则:所有新依赖必须安装为 devDependencies。检查 package.json 中是否有新增的 dependencies,所有新安装的包是否使用了
pnpm i -D命令。正确做法:pnpm i -D package-name;错误做法:pnpm i package-name。 -
TypeScript 强制使用:所有逻辑文件必须使用 TypeScript (.ts),禁止使用 .js。检查新增或修改的页面/组件是否使用 .ts 文件,基本类型检查,特别注意组件 props 和函数参数类型不能使用 any,没有创建新的 .js 文件(除非是配置文件),类型定义是否完整。
-
Tailwind CSS 强制使用:所有样式必须使用 Tailwind CSS,禁止创建 .wxss 文件。检查没有创建新的 .wxss 文件,所有样式都在 .wxml 中使用 Tailwind 类名,使用了正确的 rpx 单位(Tailwind 会自动转换 rem 为 rpx)。
组件开发规范
- Component 配置:所有组件必须设置正确的 styleIsolation。检查组件的 .json 文件中是否包含
"styleIsolation": "apply-shared",组件是否正确声明为"component": true。
性能最佳实践
-
setData 优化:使用数据路径和批量更新。检查是否使用了数据路径更新(如
this.setData({ 'list[0].text': 'new' })),是否合并了多个 setData 调用,没有在循环中调用 setData。 -
Component vs Page:优先使用 Component() 而非 Page()。检查新页面是否使用 Component() 构造器,只在必要时使用 Page()。
常见问题检查
-
iOS 日期解析:iOS 不支持 'YYYY-MM-DD' 格式。检查日期字符串是否使用
.replace(/-/g, '/')处理。 -
图标使用规范:必须使用 iconfont,禁止使用图片文件。检查图标是否使用
<text class="icon icon-xxx"></text>格式,没有为图标创建 .png/.jpg 等图片文件。
构建和发布
-
构建产物检查:确保三个输出目录的正确性——dist/(主构建输出,包含 miniprogram_npm)、dist_miniprogram/(NPM 包分发,排除 pages、app.js、miniprogram_npm)、dist_plugin/(插件包,包含 plugin.json)。
-
插件发布准备:发布前必须清理 dist 目录。检查是否更新了 project.config.json 中的 appid,是否更新了 miniprogram/app.json 中的 provider,dist/app.json 是否替换为插件配置,dist 目录是否只保留必要文件。
安全检查
- 安全漏洞:检查常见安全问题,包括没有命令注入风险、没有 XSS 漏洞(用户输入是否正确转义)、没有敏感信息泄露(API key、token 等)。
代码质量
-
代码简洁性:避免过度工程。检查没有添加未被要求的功能,没有不必要的重构,没有为一次性操作创建工具函数,没有添加不必要的错误处理,没有添加未使用的类型定义或注释。
-
向后兼容性:避免兼容性黑客。检查没有重命名未使用的变量为 _var,没有为删除的代码添加 // removed 注释,没有重新导出未使用的类型,未使用的代码已完全删除。
使用方式
评审流程如下:
- 读取变更文件:使用
git diff --cached --name-only和git diff --cached查看暂存的变更。 - 逐项检查清单:按照上述检查清单逐项验证,标记 🔴 关键问题(必须修复)、🟡 警告问题(建议修复)、🟢 优化建议(可选)。
- 生成评审报告:列出所有发现的问题,提供具体的修复建议,给出代码示例。
- 修复确认:如果有问题,要求修复后再次评审;如果通过,允许提交。
使用示例:
# 用户准备提交代码
git add .
# 触发评审
"请评审我的代码"
"review my changes"
"检查代码是否符合规范"
评审报告模板包含概览(变更文件数、新增行数、删除行数)、关键问题、警告问题、优化建议和评审结论。
适用场景
适用于微信小程序原生开发项目,尤其是使用 TypeScript、Tailwind CSS、Vite 构建,并涉及 runtime 模块外部化、NPM 包分发和插件发布的工程环境。
限制
- 该技能针对特定的项目架构约束(如 runtime 外部化、Tailwind 强制使用、Component 优先等),不适用于不遵循这些约定的项目。
- 评审基于预设检查清单,不做主观判断。
- 关于收费、价格、平台支持范围等信息,资料中暂未提供。