SuperAPI AI 工具集

ac-criteria-validator

测试与质量

查看项目

更新于 10-15 09:59

技能介绍

用途

AC Criteria Validator 用于验证已实现的功能是否满足其验收标准(Acceptance Criteria),并据此判定功能是否完成。它的核心作用是确定功能的 passes 字段何时可以从 false 转变为 true。

主要能力

工具提供多种验证方法:

  • 测试执行:运行关联的测试文件,检查所有测试是否通过,验证覆盖率阈值,并捕获测试输出。
  • 代码分析:检查实现是否存在,验证函数签名,校验错误处理,检查文档。
  • 人工标准:处理 UI/UX 要求、性能基准、安全要求和可访问性标准等无法完全自动化的判定项。

验证结果以结构化 JSON 形式返回,包含功能 ID、passes 状态、每条标准的判定结果(含证据与判定方法)、测试汇总(总数、通过数、失败数、覆盖率)以及验证时间。

使用方式

通过 Python 脚本调用:

from scripts.criteria_validator import CriteriaValidator

validator = CriteriaValidator(project_dir)
result = await validator.validate_feature("auth-001")
print(result.passes)  # True/False
print(result.criteria_results)

工作流程为:加载功能与标准 → 发现相关测试 → 执行测试套件 → 分析每条标准 → 返回验证结果。

可通过配置定义验证规则,例如:

validation:
  require_all_tests_pass: true
  minimum_coverage: 80
  require_no_lint_errors: true
  require_type_checks: true

  custom_rules:
    - name: "no_console_logs"
      pattern: "console\\.log"
      severity: "warning"

适用场景

适用于在功能开发完成后,需要自动或半自动地核对其验收标准是否达成、测试是否全部通过、覆盖率是否达标,并据此更新功能完成状态的场景。常与 ac-state-tracker(提供功能输入)和 ac-test-generator(提供测试文件)配合使用。

限制

状态流转有严格约束:passes 只能从 false 转为 true,不允许从 true 回退为 false。部分标准(如 UI/UX、性能、安全、可访问性)属于人工判定范畴,无法完全自动验证。完整实现细节需参见 scripts/criteria_validator.py。