用途
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。