name: gitcode-dev-quality description: | 本地代码质量关卡:构建验证、全量单元测试执行、覆盖率检查、代码格式化、 静态分析、pre-commit 检查。在提交 PR 之前作为最后一道质量门禁。
TRIGGER when: 用户要检查代码质量、跑测试、构建验证、lint检查、 覆盖率检查、提交前检查、或说 "质量检查"、"跑一下测试"、"check quality"、 "pre-commit check"、"验证构建"、"跑覆盖率"、"代码规范检查"。
本地代码质量门禁
PR 提交前的最后一道防线:构建 → 测试 → 覆盖率 → lint → 分析,全绿才能提交。
质量管道
构建验证 ──→ 全量单元测试 ──→ 覆盖率检查 ──→ 代码格式化 ──→ 静态分析 ──→ 通过
↓ fail ↓ fail ↓ fail ↓ fail ↓ fail
立即停止 立即停止 立即停止 立即停止 立即停止
任何一步失败都不允许进入下一步,更不允许提交 PR。
检查步骤
1. 构建验证
确保代码能编译通过:
# Go
go build ./...
# Java / Maven
mvn compile -q
# Python
python -m compileall src/ -q
# Node.js / TypeScript
npm run build 2>/dev/null || npx tsc --noEmit
判断标准:exit code = 0 且无 error 输出。
2. 全量单元测试
不只是当前变更的测试,是全部测试:
# Go(含 race 检测)
go test ./... -race -count=1
# Java / Maven
mvn test
# Python
python -m pytest --tb=short
# Node.js
npm test
检查项:
- 全部测试通过(exit code = 0)
- 无 skipped 测试(除非有明确理由)
- 无 panic / segfault / timeout
3. 覆盖率检查
# Go
go test ./... -coverprofile=coverage.out
go tool cover -func=coverage.out | grep total
# Java / Maven (需 jacoco 插件)
mvn verify -Pcoverage
# Python
python -m pytest --cov=src/ --cov-report=term-missing
判断标准:
- 新增代码的增量覆盖率 ≥ 80%
- 整体覆盖率不下降(相比上次运行)
4. 代码格式化
# Go
gofmt -l . # 检查是否有未格式化的文件
gofmt -w . # 自动修复
# Java
mvn spotless:check 2>/dev/null || mvn formatter:format
# Python
ruff format --check . 2>/dev/null || black --check .
# 通用
pre-commit run --all-files 2>/dev/null
5. 静态分析
# Go
go vet ./...
golangci-lint run ./... 2>/dev/null || staticcheck ./...
# Java
mvn pmd:check 2>/dev/null || mvn spotbugs:check
# Python
ruff check . 2>/dev/null || pylint src/
# 通用:检查 TODO/FIXME 残留
grep -rn "TODO\|FIXME\|HACK" --include="*.go" --include="*.java" --include="*.py" . \
| grep -v "_test\|test_" | grep -v "vendor/"
6. Pre-commit 检查(如项目已配置)
# 运行项目的 pre-commit 配置
pre-commit run --all-files 2>/dev/null
# 或手动检查 .pre-commit-config.yaml
cat .pre-commit-config.yaml 2>/dev/null
输出报告
## Quality Gate Report
### 构建
- 状态: ✅/❌
- 耗时: <time>
- 错误: <errors if any>
### 全量单元测试
- 通过: N / 总计: N
- 耗时: <time>
- 失败: <list if any>
### 覆盖率
- 当前: X%
- 增量: Y%
- 状态: ✅/⚠️/❌
### 格式化
- 状态: ✅/❌
- 未格式化文件: <count>
### 静态分析
- 状态: ✅/⚠️/❌
- Warnings: <count>
- Errors: <count>
### 最终判定
[ ] 全部通过 — 可提交 PR
[ ] 有警告 — 建议修复后提交
[ ] 有错误 — 必须修复才能提交
注意事项
- 质量门禁是本地操作,不涉及远端仓库
- 任何一项失败就停止,不要跳到下一项
- 如果项目没有配置某个检查工具,标记为 N/A 而不是强制安装
- 覆盖率目标是 80%(增量),不是绝对值(旧项目可能整体覆盖率低)
- 通过质量门禁后,下一步是
gitcode-pr-create - 本 skill 是
gitcode-dev-workflow中开发阶段→交付阶段的必过关卡