验证循环技能 是做什么的?
适用于 Claude Code 会话的全面验证系统。
何时使用
在以下情况调用此技能:
- 完成一个功能或重要的代码更改后
- 在创建 PR 之前
- 当您希望确保质量关口通过时
- 在重构之后
验证阶段
阶段 1:构建验证
# 检查项目是否能构建
npm run build 2>&1 | tail -20
# 或者
pnpm build 2>&1 | tail -20
如果构建失败,请停止并先修复问题。
阶段 2:类型检查
set -o pipefail
# TypeScript 项目
npx --no-install tsc --noEmit 2>&1 | head -30
# Python 项目
pyright . 2>&1 | head -30
报告所有类型错误。在继续之前修复关键错误。
阶段 3:代码检查
# 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:安全扫描
# 检查密钥
find . -name '*.ts' -o -name '*.js' 2>/dev/null | xargs grep -rn "sk-" --include='*.ts' --include='*.js' 2>/dev/null | head -10
find . -name '*.ts' -o -name '*.js' 2>/dev/null | xargs grep -rn "api_key" --include='*.ts' --include='*.js' 2>/dev/null | head -10
# 检查 console.log
find src/ -name '*.ts' -o -name '*.tsx' 2>/dev/null | xargs grep -rn "console.log" --include='*.ts' --include='*.tsx' 2>/dev/null | head -10
阶段 6:差异审查
# 显示变更内容
git diff --stat
git diff HEAD~1 --name-only
审查每个变更的文件:
- 无意的更改
- 缺少错误处理
- 潜在的边界情况
输出格式
运行所有阶段后,生成验证报告:
验证报告
==================
构建: [通过/失败]
类型: [通过/失败](X 个错误)
代码检查: [通过/失败](X 个警告)
测试: [通过/失败](X/Y 通过,Z% 覆盖率)
安全: [通过/失败](X 个问题)
差异: [X 个文件变更]
整体: [准备好/未准备好] 提交 PR
需要修复的问题:
1. ...
2. ...
持续模式
对于长时间会话,每 15 分钟或在重大更改后运行验证:
设置心理检查点:
- 完成每个函数后
- 完成每个组件后
- 在移动到下一个任务之前
运行:/verify
与钩子的集成
此技能与 PostToolUse 钩子相辅相成,但提供更深入的验证。 钩子可即时捕获问题;此技能提供全面的审查。