验证循环(Verification Loop)

中级 Intermediate 纪律型 Discipline ⚡ Claude Code 专属 ⚡ Claude Code Optimized
3 min read · 160 lines

六阶段质量门禁,确保每次变更达到可发布标准

验证循环(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 钩子的补充,但提供更深层的验证:

  • 钩子:即时捕获问题
  • 验证循环:提供全面的综合审查

两者配合使用,形成多层质量保障。

相关技能 Related Skills