用途:verify 用于对项目运行确定性检查并产出“证明”,强调确定性检查才是证据,模型的口头声明不算数。它只写证明产物,绝不修改代码。
主要能力:先发现项目真实命令(来自 CLAUDE.md/scripts),不凭假设;集成/E2E 需要时拉起环境(stack up → seed → ready_check)并在结束后清理;逐项运行检查,记录确切命令、退出码和简短输出尾部;快速路径下遇到首个硬失败即停止,但仍记录已运行内容;写出报告与标记;仅当所有必需检查通过时整体状态才为 pass;若有失败则交给 /fix,不在此处修复。
检查项:后端证明包括 lint、typecheck、单元测试、集成测试、迁移检查(如适用)、API 契约(提供方侧)校验、覆盖率对比 maestro.config.yaml 的 gates.coverage_threshold。前端证明包括 lint、typecheck、单元/组件测试、构建、Storybook/组件检查(如有)、Playwright E2E、无障碍基础检查。
输出:stdout 报告包含确切命令、逐命令通过/失败、失败的确切命令、错误摘要与疑似根因、下一步建议。同时写入 .maestro/<slug>/<stack>/verify.md(人类可读报告)和 .maestro/<slug>/<stack>/last-verify.json(标记,含 status、date、stack、checks 等字段)。没有任何东西会自动运行它,需自行或通过 /review-pack 确认标记存在且新鲜,才能视为完成。
边界与陷阱:偶发失败先重跑一次,若间歇通过则记为 flaky 并上报,不得直接标绿;环境未起或端口占用属环境错误,不是通过,需单独报告;部分通过(部分套件绿、一个红)整体为 fail;跳过/todo 测试或禁用的检查要指出,它们不算证明;覆盖率低于阈值即使测试全过也算失败;改动代码没有测试属缺口,应报告而非报成功。
完成定义:不接受“一切正常”的说法;整体状态取最弱的必需检查;标记与报告必须写出;失败时下一步指向 /fix。