用途
final-verification 是 SAM 流水线的第七阶段,充当最终验证认证者。它的职责是判定已实现的功能是否达成第一阶段发现(Stage 1 Discovery)所定义的原始目标。核心原则是“目标反向验证”:不是从已经构建出的东西出发问“这够好吗”,而是从“本应成立的内容”出发,去验证它确实成立。
适用的时机
- 所有任务已在第六阶段取证审查中获得 COMPLETE 裁决之后
- 作为宣布功能可提交或创建 PR 之前的最后关口
- 在 NOT_CERTIFIED 缺口被处理之后进行重新认证
主要能力与流程
-
提取原始目标:通过 artifact_read(item_id={issue}, artifact_type="feature-context") 读取功能上下文制品,提取 Goals、Anti-Goals、功能需求与非功能需求。这些是认证的唯一标准,原发现之外的功能不在此次验证范围内。
-
识别必须成立的事实:针对每个目标,枚举代码库中必须为真的条件。例如目标“用户可通过 OAuth2 认证”对应的必需事实可能包括:OAuth2 客户端配置存在、认证端点处理 OAuth2 流程、令牌校验中间件已集成、错误场景返回合适的 HTTP 状态码、会话管理保存认证状态。
-
逐条验证事实:通过直接观察验证,包括阅读相关文件确认实现存在、运行相关测试确认通过、检查集成点确认已接通、确认反目标未被违反(无范围蔓延),并为每条事实记录证据(文件路径、测试输出、观察到的行为)。
-
检查验收测试:通过 artifact_read(item_id={issue}, artifact_type="architect") 读取架构师制品,提取 Given/When/Then 形式的验收测试,逐条验证前置条件可建立、动作可行、结果可观察且正确。
-
运行质量门禁:运行项目质量门禁以确认整体功能通过,包括格式检查、Lint 检查、类型检查(如适用)、完整测试套件,以及 pre-commit 配置或 CI 工作流运行的其它门禁。可激活 dh:dh-meta-docs 以使用角色解析协议的质量门禁发现序列来查找每条命令;质量门禁协议参考 /dh:validation-protocol。
输入与输出
输入包括:通过 plan read --address {plan_id}/{task_id} 逐任务读取的审查结果(审查内容作为任务段落存储,读取时不加 --attempt,因为本阶段对其读取的任务不持有 attempt,指定不持有的 attempt 会被视为 stale-attempt 而拒绝)、feature-context 制品、architect 制品,以及对代码库的读取权限。
输出通过 SAM CLI 追加到任务:
<sam_cli/> plan update \
--plan-address {plan_id} --task-id {task_id} \
--append-section "Final Verification" --section-content "{verification_markdown}"
Final Verification 不属于运行器的报告段落,因此无需 --attempt;它会以任务当前的 attempt 计数打标签。验证结果按 ARTIFACT:VERIFICATION 模板输出,包含:裁决(CERTIFIED / NOT_CERTIFIED)、功能名、目标验证表(必需事实 / 是否验证 / 证据)、反目标合规表、验收测试结果表(测试 / Given / When / Then / 结果)、质量门禁表(格式 / Lint / 类型检查 / 测试及结果与输出摘要)、非功能需求验证表、缺口列表、修复路径与认证声明。
未通过时的循环
若裁决为 NOT_CERTIFIED,则记录具体缺口、为缺口创建新任务,回到第四阶段(任务分解),再到第五阶段执行、第六阶段审查,最后第七阶段重新认证;若再次未通过则继续循环,直至 CERTIFIED。
行为规则与成功标准
非功能需求必须被测量而非假定(例如“延迟 < 200ms”需要实际测量)。CERTIFIED 要求所有目标都被验证,不存在部分认证。成功标准是认证声明(或缺口列表)完整且基于证据。
限制
具体依赖的命令、脚本与工具(如 sam_cli、dh_scripts)需按文中说明先加载 dh:dh-cli-usage;其余安装步骤、平台要求、收费与价格信息暂未提供。