提交前质量检查技能Skill pre-commit-check

提交前质量检查技能(Pre-Commit Check Skill)是一个用于软件开发流程的自动化工具,旨在代码提交前快速执行轻量级质量验证。它通过检查变更文件的代码规范(Lint)、运行相关单元测试、验证编译状态,确保每次提交的代码质量。该技能专注于高效,仅处理变更部分,支持前后端并行检查,是开发过程中频繁使用的质量守护工具。关键词:代码提交前检查、自动化测试、代码规范检查、CI/CD、开发流程优化、质量保证。

DevOps 0 次安装 1 次浏览 更新于 3/3/2026

name: pre-commit-check description: 提交前质量检查技能(Lint、测试、构建的快速验证)

Pre-Commit Check Skill - 提交前质量检查技能

角色

在提交前快速执行质量检查的技能。比qa-check更轻量,适合开发过程中的频繁检查。

与 qa-check 的区别

项目 pre-commit-check qa-check
目的 开发过程中的频繁检查 PR创建前的最终检查
执行速度 高速(仅变更文件) 通常(全量检查)
测试 仅变更相关部分(可选) 全量测试执行
覆盖率 不检查 80%以上必须
构建 可跳过 必须
使用时机 提交前 PR创建前

执行流程

Phase 1: 变更文件确认

# 确认变更的文件
git status --short

# 确认已暂存的文件
git diff --cached --name-only

# 根据变更文件判断Backend/Frontend

Phase 2: Backend 检查(如有变更)

2-1. Lint执行(仅变更文件)

cd backend

# Checkstyle(仅变更文件)
./gradlew checkstyleMain checkstyleTest

# SpotBugs(仅变更文件)
./gradlew spotbugsMain spotbugsTest

2-2. 测试执行(skip_tests=false 时)

# 仅执行与变更类相关的测试
./gradlew test --tests "*[变更的类名]Test"

2-3. 编译确认

# 跳过构建,仅进行编译
./gradlew compileJava compileTestJava

Phase 3: Frontend 检查(如有变更)

3-1. Lint执行

cd frontend

# Biome Lint(全量)
pnpm run lint:check

3-2. 测试执行(skip_tests=false 时)

# 仅执行与变更文件相关的测试
pnpm run test:ci --changed

3-3. 类型检查

# TypeScript类型检查
npx tsc --noEmit

Phase 4: 结果报告

成功时

## Pre-Commit Check 完成

### Backend
- ✅ Lint: 无错误
- ✅ 测试: [执行数] 件成功
- ✅ 编译: 成功

### Frontend
- ✅ Lint: 无错误
- ✅ 测试: [执行数] 件成功
- ✅ 类型检查: 无错误

### 下一步
可以提交。

失败时

## Pre-Commit Check 失败

### Backend
- ❌ Lint: 错误 [数量] 件
  - [错误内容]
- ❌ 测试: [失败数] 件失败
  - [失败测试名]
- ✅ 编译: 成功

### Frontend
- ✅ Lint: 无错误
- ✅ 测试: 全部成功
- ✅ 类型检查: 无错误

### 需要修正的项目
1. 修正Backend Lint错误
2. 修正Backend 测试失败

### 下一步
请修正上述问题后重新检查。

加速要点

1. 仅检查变更文件

  • 使用git diff检测变更文件
  • 仅执行相关测试
  • 跳过构建

2. 并行执行

  • 并行执行Backend/Frontend检查
  • 在可能的情况下并行执行Lint/测试/类型检查

3. 活用缓存

  • 活用Gradle的构建缓存
  • 活用pnpm的缓存

使用工具

必需工具

  • Bash: 执行Lint/测试/编译、git操作

推荐工具

  • Grep: 搜索错误模式
  • Read: 查看报告文件

重要注意事项

pre-commit-check 是轻量检查

  • PR创建前必须执行 qa-check
  • pre-commit-check 用于开发过程中的频繁检查
  • 不进行覆盖率检查

跳过测试的判断

  • skip_tests=true 仅在紧急情况下使用
  • 通常应使用 skip_tests=false 执行测试
  • 跳过测试后必须补执行

参考文档

必需参考

  • documents/development/development-policy.md: 开发指南

配置文件

  • backend/config/checkstyle/checkstyle.xml: Checkstyle配置
  • backend/config/spotbugs/spotbugs-exclude.xml: SpotBugs配置
  • frontend/biome.json: Biome配置