验证循环(Verification Loop)
概述
验证循环是一个全面的质量检查系统,用于在 Claude Code 会话中确保代码变更达到可发布标准。它按固定顺序执行构建检查、类型检查、代码检查(Lint)、测试套件、安全扫描和变更审查六个阶段,最终输出一份结构化的验证报告。
二、验证阶段
阶段 1:构建验证
# 检查项目是否能成功构建
npm run build 2>&1 | tail -20
# 或
pnpm build 2>&1 | tail -20
如果构建失败,立即停止并修复,不继续后续阶段。
阶段 2:类型检查
# TypeScript 项目
npx tsc --noEmit 2>&1 | head -30
# Python 项目
pyright . 2>&1 | head -30
报告所有类型错误。修复关键错误后再继续。
阶段 3:代码检查(Lint)
# JavaScript/TypeScript
npm run lint 2>&1 | head -30
# Python
ruff check . 2>&1 | head -30
阶段 4:测试套件
# 运行带覆盖率的测试
npm run test -- --coverage 2>&1 | tail -50
# 检查覆盖率阈值
# 目标:最低 80%
报告内容:
- 总测试数:X
- 通过数:X
- 失败数:X
- 覆盖率:X%
阶段 5:安全扫描
# 检查硬编码密钥
grep -rn "sk-" --include="*.ts" --include="*.js" . 2>/dev/null | head -10
grep -rn "api_key" --include="*.ts" --include="*.js" . 2>/dev/null | head -10
# 检查 console.log
grep -rn "console.log" --include="*.ts" --include="*.tsx" src/ 2>/dev/null | head -10
阶段 6:变更审查(Diff Review)
# 显示变更内容
git diff --stat
git diff HEAD~1 --name-only
对每个变更文件审查:
- 是否有意外变更
- 是否缺少错误处理
- 是否存在潜在边界情况
三、输出格式
所有阶段运行完成后,生成验证报告:
验证报告
==================
构建: [通过/失败]
类型: [通过/失败] (X 个错误)
Lint: [通过/失败] (X 个警告)
测试: [通过/失败] (X/Y 通过, Z% 覆盖率)
安全: [通过/失败] (X 个问题)
变更: [X 个文件变更]
总体: [就绪/未就绪] 可提交 PR
待修复问题:
1. ...
2. ...
四、命令用法
基本用法
/verify
参数模式
| 参数 | 说明 |
|---|---|
quick |
仅构建 + 类型检查 |
full |
所有检查(默认) |
pre-commit |
与提交相关的检查 |
pre-pr |
完整检查加安全扫描 |
五、持续模式
在长会话中,每 15 分钟或每次重大变更后运行验证:
设置心理检查点:
- 每完成一个函数后
- 每完成一个组件后
- 转到下一个任务之前
执行: /verify
六、与钩子(Hooks)的集成
本技能是 PostToolUse 钩子的补充,但提供更深层的验证:
- 钩子:即时捕获问题
- 验证循环:提供全面的综合审查
两者配合使用,形成多层质量保障。