name: 验证循环 description: 针对代码变更的全面质量验证系统,包括构建、类型、代码规范、测试和安全性检查 license: MIT metadata: source: affaan-m/everything-claude-code adapted-by: ai-skills category: 质量保证
验证循环
一个全面的验证系统,用于确保代码质量跨越多个维度。
何时使用
调用此技能:
- 完成功能或重大代码变更后
- 创建拉取请求前
- 当您想要确保质量门通过时
- 重构或重大修改后
- 代码审查准备期间
验证阶段
阶段 1:构建验证
# 检查项目是否构建
npm run build 2>&1 | tail -20
# 或
pnpm build 2>&1 | tail -20
# 或其他构建系统
make build 2>&1 | tail -20
cargo build 2>&1 | tail -20
关键:如果构建失败,停止并修复后再继续。
阶段 2:类型检查
# TypeScript 项目
npx tsc --noEmit 2>&1 | head -30
# Python 项目
pyright . 2>&1 | head -30
mypy . 2>&1 | head -30
# Go 项目
go vet ./... 2>&1 | head -30
报告所有类型错误。在继续前修复关键错误。
阶段 3:代码规范检查
# JavaScript/TypeScript
npm run lint 2>&1 | head -30
eslint . 2>&1 | head -30
# Python
ruff check . 2>&1 | head-30
flake8 . 2>&1 | head -30
# Go
golint ./... 2>&1 | head -30
# Rust
cargo clippy 2>&1 | head -30
阶段 4:测试套件
# 运行测试并覆盖度
npm run test -- --coverage 2>&1 | tail -50
pytest --cov=. 2>&1 | tail -50
go test -cover ./... 2>&1 | tail -50
# 检查覆盖度阈值
# 目标:新代码至少 80% 覆盖度
报告:
- 总测试数:X
- 通过:X
- 失败:X
- 覆盖度:X%
- 新文件覆盖度:X%
阶段 5:安全性扫描
# 检查秘密
grep -rn "sk-" --include="*.ts" --include="*.js" --include="*.py" . 2>/dev/null | head -10
grep -rn "api_key" --include="*.ts" --include="*.js" --include="*.py" . 2>/dev/null | head -10
grep -rn "password.*=" --include="*.ts" --include="*.js" --include="*.py" . 2>/dev/null | head -10
# 检查调试语句
grep -rn "console.log" --include="*.ts" --include="*.tsx" --include="*.js" src/ 2>/dev/null | head -10
grep -rn "print(" --include="*.py" . 2>/dev/null | head -10
grep -rn "println!" --include="*.rs" src/ 2>/dev/null | head -10
阶段 6:差异审查
# 显示变更内容
git diff --stat
git diff HEAD~1 --name-only
git diff --shortstat
审查每个变更文件:
- 意外更改或修改
- 缺少错误处理
- 潜在边缘情况
- 需要更新的文档
输出格式
运行所有阶段后,生成验证报告:
验证报告
==================
构建: [✓ 通过 / ✗ 失败]
类型: [✓ 通过 / ✗ 失败] (X 错误)
代码规范: [✓ 通过 / ✗ 失败] (X 警告)
测试: [✓ 通过 / ✗ 失败] (X/Y 通过,Z% 覆盖度)
安全性: [✓ 通过 / ✗ 失败] (X 问题)
差异: [X 文件变更,+Y 行,-Z 行]
总体: [✓ 就绪 / ✗ 未就绪] 用于 PR
需要修复的问题:
1. [优先级] 描述
2. [可选] 描述
...
建议:
- 建议 1
- 建议 2
连续模式
对于长会话,每 15 分钟或在重大变更后运行验证:
检查点:
- 完成每个函数后
- 完成组件后
- 移动到下一个任务前
- 解决合并冲突后
集成点
此技能补充:
- testing-patterns:用于测试设计
- deployment-cicd:用于 CI 管道准备
- github-repository-standards:用于 PR 准备
- security-threat-modeler:用于安全性审查
快速验证
开发期间的快速检查:
# 最小验证(30 秒)
npm run build && npm run lint && npm test
在提交前使用完整验证。
相关技能
互补技能(一起使用)
- testing-patterns - 用于测试验证阶段的全面测试方法
- tdd-workflow - 测试驱动开发,产生准备验证的代码
- deployment-cicd - 自动化验证循环的 CI 管道
替代技能(类似目的)
- 无 - 验证循环是质量门过程,不是其他实践的替代品
先修技能(先学习)
- testing-patterns - 理解测试有助于解释验证结果