agent-verify 是做什么的?
让您构建的内容可通过最廉价的机制进行验证。默认通过CLI验证。模型应读取约20个令牌(PASS / FAIL: line),绝不读取DOM转储或屏幕截图。
唯一规则
使用能证明功能错误的机制中最轻量的一种。仅在其无法证实时才升级。
进程内断言 → CLI / curl + 退出码 → 数据库测试(TAP) → 无头浏览器(仅视觉,最后手段)
最便宜 最昂贵
Agent构建的90%内容(逻辑、数据、API契约、流程)无需浏览器即可验证。仅在涉及像素时使用浏览器。
循环(每个功能)
- 一次性检测。 运行
scripts/detect-stack.sh。它会用几行输出测试运行器和技术栈。不引入新框架 —— 使用已有的。 - 构建功能。
- 编写一个令牌极简检查,使用技术栈的进程内/CLI原语(参见
reference/stacks/)。检查必须输出PASS或单行FAIL:—— 绝不输出转储。 - 在
VERIFICATION_MAP.md中追加一行:功能 | 命令 | 通过信号。这是Agent下次读取的契约。 - 运行
scripts/verify.sh [功能]并仅读取结果。根据结果编辑 → 验证 → 重复,而非根据日志。
不要做的事
- 不要使用Playwright/浏览器来检查逻辑、数据或API响应。这会导致令牌泄漏,本技能旨在阻止这一点。
- 不要规定TDD仪式。指出哪个检查证明了这个功能,而非一个程序。(缺乏针对性上下文的程序会适得其反 —— 参见
reference/patterns.md。) - 不要将原始输出返回到上下文中。在沙箱中过滤,仅返回结果。(
console.log(result),而非10k行数据。) - 不要让检查增长。一个功能,一个快速的确定性检查。保持
VERIFICATION_MAP.md简短 —— 简短的映射表现更优。
输出契约(始终遵循)
PASS auth-login
FAIL create-invoice: expected 201, got 500
退出码 0 = 全部通过。非零 = 有失败项。模型只需要这些信息。
当浏览器不可避免时
仅用于真正的视觉UI(布局、样式、视觉回归),且仅在最后阶段使用。即便如此:一次无头运行,返回PASS/FAIL或差异结论 —— 绝不将完整屏幕截图或DOM放入上下文中。参见 reference/stacks/nextjs.md。
文件
scripts/detect-stack.sh— 输出技术栈和运行器,令牌极简。scripts/verify.sh— 运行映射的检查,仅输出PASS/FAIL和失败行。VERIFICATION_MAP.md— 简短的功能→命令映射(由Agent维护)。reference/stacks/— 复制粘贴配方:FastAPI(进程内TestClient)、Supabase(种子 + 重置 + pgTAP)、Next.js(路由处理器 + 最后手段视觉)。reference/patterns.md— 令牌极简验证模式及其背后的证据。reference/anti-patterns.md— 不稳定测试、假PASS、过度工程防护。templates/— 映射、FastAPI测试、Supabase种子的起点模板。