| name | feature-acceptance |
| description | 用于功能验收、回归验证、确认修复是否生效,以及需要用真实界面、视频或日志证据判断用户流程是否正常的任务。适用于“验收一下”“测一下”“确认修复”“给我可复核证据”等请求。 |
功能验收
把验收请求转成可复现、可复核的结论。优先验证用户可观察的行为,不用代码阅读、模拟页面或单个 API 响应替代真实流程。
输出协议
每个用例和整体结论只能是 PASS / FAIL / BLOCKED / NOT RUN。
PASS:预期结果与关键断言满足,证据已经复核。
FAIL:结果、错误提示、数据变化或技术断言不符合预期。
BLOCKED:缺少明确的环境、权限、账号、数据或外部依赖。
NOT RUN:本轮未执行的非核心用例,必须说明未覆盖风险。
不要用“看起来正常”替代结论。用户明确要求的核心用例不能无理由标为 NOT RUN。
路由
- 需要新增或维护可提交、可在 CI 重跑的浏览器测试时,读取
skills/e2e-testing/SKILL.md,必要时委派 agents/e2e-runner.md。
- 需要定位失败根因时,先读取
skills/systematic-debugging/SKILL.md,不要在验收报告中猜测修复方案。
- 完成声明仍须遵守
skills/verification-before-completion/SKILL.md 的新鲜验证证据要求。
- 仅在用例相互独立、运行环境允许且任务授权并行时并发执行;共享状态、顺序依赖或无并发授权时串行执行,并说明原因。
流程
1. 定义目标
记录被测功能、真实用户入口、核心成功标准、环境前置条件和不可执行的高风险动作。没有测试前置条件时先标记 BLOCKED,不要通过注入凭据、篡改本地状态或破坏共享数据绕过。
2. 写用例矩阵
先写用例矩阵,再开始操作:
| ID | 场景 | 前置条件 | 步骤 | 期望结果 | keyNodes | evidenceMedium | 结果 |
| --- | --- | --- | --- | --- | --- | --- | --- |
| A1 | 主成功路径 | 已启动服务 | 从真实入口完成操作 | 用户可见结果正确 | 入口 / 操作 / 结果 | image | NOT RUN |
- 至少覆盖主成功路径;按风险补充错误、空状态、权限或关键分支。
keyNodes 写明名称、重要性、预期观察和证据角色。
evidenceMedium 只能是 image、video 或 log。关键节点超过 10 个或需要表达过程时用 video。
- 真实产品流程的
image 或 video 必须来自真实产品页面或应用界面;API、数据库或脚本输出只作为辅助 log 证据。
3. 采集证据
在目标项目工作区的已忽略临时目录保存需要持久复核的产物,例如 tmp/acceptance/<run-id>/。每个用例单独保存截图、视频或日志,并记录来源 URL/窗口、采集时间、采集前动作和对应的 keyNodes。
- 操作前采集基线,操作后采集结果;分支判断点不能只保留最终截图。
- 视频应覆盖触发、操作和完成信号;不要用静态图片伪装视频。
- 日志记录相关 console、网络或服务端错误,不把 token、Cookie、账号、密码、个人数据或其他敏感信息写入证据或报告。
- 无法继续时立即停止该用例,记录可复现的
failureReason 与缺失条件。
4. 二次审核
主 agent 必须二次审核每份关键证据,不能只引用执行者的自报结论。
image:确认可渲染、来源真实、URL 和关键节点正确,且不是空白页、登录页或无关页面。
video:确认时长合理,并覆盖触发、过程和完成信号。
log:确认关键断言存在,且没有与结论冲突的相关错误。
任何 image/video 用例未完成二次审核时,整体不能是 PASS。
5. 报告
报告保持简短但可复核:
结论:PASS / FAIL / BLOCKED / NOT RUN
被测功能:
被测地址 / 命令:
用例结果:
| ID | 场景 | 结果 | 原因 | 关键证据 |
二次审核:已打开的证据;改判原因
技术摘要:相关 console / 网络 / 服务端错误
未覆盖风险:
核心用例任一 FAIL 时整体为 FAIL;没有 FAIL 但核心用例 BLOCKED 时整体为 BLOCKED;核心用例全部 PASS 且证据审核完成时整体才为 PASS。
边界
- 不把 mock 页面、Storybook、历史截图、终端截图或伪造数据当作真实产品验收证据。
- 不为验收执行用户未授权的写操作、支付、删除或生产数据变更。
- 不把一次性验收替代应提交的单元测试、类型检查或 E2E 测试;它们互为补充。