验证循环技能
用于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:安全扫描
# 检查机密信息
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:差异审查
# 查看更改内容
git diff --stat
git diff HEAD~1 --name-only
审查每个更改的文件:
- 意外更改
- 缺失的错误处理
- 潜在边界情况
输出格式
运行所有阶段后,生成验证报告:
验证报告
==================
构建: [通过/失败]
类型: [通过/失败] (X个错误)
代码: [通过/失败] (X个警告)
测试: [通过/失败] (X/Y通过, Z%覆盖率)
安全: [通过/失败] (X个问题)
差异: [X个文件已更改]
整体: [准备就绪/未准备就绪] 用于PR
待修复问题:
1. ...
2. ...
连续模式
对于长时间会话,每15分钟或重大更改后运行一次验证:
设置心理检查点:
- 完成每个函数后
- 完成组件后
- 进入下一个任务前
运行:/verify
与钩子的集成
此技能补充PostToolUse钩子,但提供更深入的验证。 钩子即时捕获问题;此技能提供全面审查。