SuperAPI AI 工具集

verification-loop

测试与质量

查看项目

更新于 10-15 09:43

技能介绍

用途

Verification Loop 是一套综合性的代码质量验证系统,用于在多个维度上确保代码质量。它把验证拆分为若干阶段,从写代码之前的前置声明,到构建、类型、Lint、测试、安全与差异审查,形成一条可重复执行的质量门禁流程。

何时使用

该技能建议在以下时机调用:

  • 任务开始时——在写代码之前先声明验证面(Phase 0)
  • 完成一个功能或重大代码变更之后
  • 创建 Pull Request 之前
  • 希望确保质量门禁通过时
  • 重构或重大修改之后
  • 代码评审准备期间

验证阶段

Phase 0:声明验证面(在任何工作之前)

这一步应在写代码之前运行,而不是之后。其他阶段是对已完成工作的确认,而这一阶段决定——提前决定——该工作将如何被证明,并确保证明来自模型之外。

开始前需声明三件事:

  1. 外部信号:指明确认成功的具体命令或界面,例如 Bash 测试/Lint/类型检查命令、MCP 浏览器加载真实页面并读取 DOM/控制台、全新会话,或第二个智能体。“完成后我自己审查”不算验证面。
  2. 为何它外在于生成上下文:在产生代码的同一上下文内做自检,可能恰好确认该上下文引入的错误。信号必须来自该上下文之外——一个模型无法通过断言成功来悄悄满足的进程。
  3. 若不存在验证面,构建它就是任务的一部分:在信号接通之前不要进入实现。验证面是交付物,不是事后补充。

声明戳记:Verify-by: <command/surface> — external? Y/N — exists yet? Y/N。若 exists yet = N,则第一个构建步骤就是创建它。

这是 Phase 1–6 所假设的前向声明,属于本技能的 FRAME 阶段;Phase 1–6 属于 PROVE 阶段。

Phase 1:构建验证

# Check if project builds
npm run build 2>&1 | tail -20
# OR
pnpm build 2>&1 | tail -20
# OR for other build systems
make build 2>&1 | tail -20
cargo build 2>&1 | tail -20

关键:若构建失败,停止并在继续前修复。

Phase 2:类型检查

# TypeScript projects
npx tsc --noEmit 2>&1 | head -30

# Python projects
pyright . 2>&1 | head -30
mypy . 2>&1 | head -30

# Go projects
go vet ./... 2>&1 | head -30

报告所有类型错误。在继续前修复关键错误。

Phase 3:Lint 检查

# 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

Phase 4:测试套件

# Run tests with coverage
npm run test -- --coverage 2>&1 | tail -50
pytest --cov=. 2>&1 | tail -50
go test -cover ./... 2>&1 | tail -50

# Check coverage threshold
# Target: 80% minimum for new code

报告:总测试数、通过数、失败数、覆盖率、新文件覆盖率。

Phase 5:安全扫描

# Check for secrets
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

# Check for debug statements
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

Phase 6:差异审查

# Show what changed
git diff --stat
git diff HEAD~1 --name-only
git diff --shortstat

审查每个变更文件,关注:非预期变更或修改、缺失的错误处理、潜在边界情况、需要更新的文档。

输出格式

运行所有阶段后,生成验证报告:

VERIFICATION REPORT
==================

Build:     [✓ PASS / ✗ FAIL]
Types:     [✓ PASS / ✗ FAIL] (X errors)
Lint:      [✓ PASS / ✗ FAIL] (X warnings)
Tests:     [✓ PASS / ✗ FAIL] (X/Y passed, Z% coverage)
Security:  [✓ PASS / ✗ FAIL] (X issues)
Diff:      [X files changed, +Y lines, -Z lines]

Overall:   [✓ READY / ✗ NOT READY] for PR

Issues to Fix:
1. [Priority] Description
2. [Optional] Description
...

Recommendations:
- Suggestion 1
- Suggestion 2

连续模式

对于长时间会话,每 15 分钟或重大变更后运行验证。检查点包括:完成每个函数后、完成一个组件后、进入下一任务前、解决合并冲突后。

集成点

该技能与以下技能互补:

  • testing-patterns:用于测试设计
  • deployment-cicd:用于 CI 流水线准备
  • github-repository-standards:用于 PR 准备
  • security-threat-modeler:用于安全审查

快速验证

开发期间的快速检查:

# Minimal verification (30 seconds)
npm run build && npm run lint && npm test

提交前使用完整验证。

相关技能

互补技能(一起使用)

  • testing-patterns——用于测试验证阶段的综合测试方法
  • tdd-workflow——测试驱动开发,产出可供验证的代码
  • deployment-cicd——自动化验证循环的 CI 流水线

替代技能(相似用途)

无——verification-loop 是质量门禁流程,不是其他实践的替代品。

前置技能(先学习)

  • testing-patterns——理解测试有助于解读验证结果。