| name | ai-pm-acceptance |
| description | 产品验收技能——对照 PRD 在研发测试环境逐条核实实现,AI 只给证据 + 草拟结论、绝不替判「通过」, 产出可配置格式的提单台账(缺陷/问题清单)。当用户提到「产品验收 / 验收清单 / 对照 PRD 验收 / 逐条验收 / 提单 / 验收台账 / 测试环境验收 / AI 产品验收 / 验研发实现 / 把 PRD 拿去验 / 研发做完了帮我验」 时,立即使用本技能,即使没明说「验收」二字。 与相邻技能的区别要分清:ai-pm-review 是六角色评审会(评 PRD 本身写得好不好)、ai-pm-driver 是 PM 风格 lint(查 PRD 越界/缺失)—— 这两个对象都是「PRD 文档」;本技能对象是「已经开发出来的产品」,验的是「实现跟 PRD 对不对得上」。 尤其适合 AI / Agent 产品(输出不确定、必须复现多次才能下结论)。
|
| argument-hint | [PRD或验收清单路径 | --template=模板名] |
产品验收
把 PRD 拿去对照研发在测试环境做出来的产品,逐条核实「说的和做的对不对得上」,发现的问题攒成一份提单台账交研发。
你在做什么(先立住定位)
- 你是 PM 意图层的验收,不是 QA 回归。你验「功能符不符合 PRD 的意图」,代码挂没挂、性能压测是另一套,别越界去当 QA。
- AI 只给证据 + 草拟判断,绝不替人判「通过」。每条结论是「证据 + 草拟(范围内/范围外/存疑)+ 判定列留空给人」。这是铁律——你替用户点了「通过」,验收就失去意义了。
- 这套尤其为 AI / Agent 产品设计。传统功能验收"点一下看对不对"就行;AI 产品输出每次都不一样、还时好时坏,所以有三条命门(见下),这正是本技能区别于普通 QA 的价值。
三条命门(AI 产品验收的核心,先记牢)
命门 3 · 真跑留痕(详见判断卡):每条验收 = 「主张→操作证据→断言结果」三列台账,证据列空 = 该轮无效;留痕优先 Playwright trace(每轮一个 trace.zip,收口核 action 数≥声称轮数);trace 落 14-acceptance/ 且验收后按保留期清理。
- 单次结果是假设,不是结论;判定看的是分布(3/3、1/4),不是那一次。
AI 行为本身就飘,跑一次"好了"或"坏了"都可能骗你。P0 和「改善了」这类结论,都要复现 ≥3 次再下。
- 永远别信自己脚本/工具的「✅通过」。
自动检测只查你叫它查的那几样,更糟的问题可能就摆在回复全文里。靠读全文,不靠绿勾。
这两条不是教条,是血泪——详见判断卡里的真实翻车案例。
六阶段流程
| 阶段 | 做什么 | 关键 |
|---|
| 0 拆清单 | PRD → 验收点,每条标三类验法 🖥️确定性UI / 🤖AI行为 / 📊数据真值 | 不依赖产品、纯方法论 |
| 1 连浏览器 | 打开验收浏览器、你登录测试环境、AI 接管(见下「连浏览器」) | 连不上 → 退手动验 |
| 2 先探测后驱动 | 每个产品先摸清它的入口/输入框/发送/「忙碌信号」/上传口,再驱动 | 完成检测靠「忙碌信号」,不靠文字停没停 |
| 3 三类分流验 | 🤖打 rubric 看可接受范围(不逐字对) / 🖥️截图 / 📊查真值 | 写操作(加入/删除)用测试账号,需用户授权 |
| 4 复现 | 坐实的复现 ≥3 次,分「稳定 X/X / 偶发 1/N / 通过」 | 见命门 1 |
| 5 出台账 | 发现写进提单台账(格式可配置,见下) | 判定列留空、根因簇归类 |
完整方法论(每阶段细节、三类验法怎么分、rubric 怎么打、probe checklist、根因簇怎么归)见 references/acceptance-judgment-card.md,开干前先读它。
连浏览器(傻瓜化,用户不碰任何技术)
模式是 PM 登录 + 拍板,AI 扛技术活。用户视角只有两步:
- 打开验收浏览器 — AI 跑
scripts/start-browser.sh,会自动弹出一个浏览器窗口。
- 你登录测试环境 — 在弹出的窗口里像平时一样登录(过验证码/SSO),登好说一声。
之后 AI 用 Playwright 接管这个你登录好的窗口去驱动验收。端口、协议、连接细节都藏在脚本里,用户完全不用懂。(底层用 Playwright 连接你已登录的真实页面——这是过 SSO、验真实登录态的唯一可行法,无头浏览器登不进去。)
驱动用的工具在 scripts/playwright-runner.cjs(连浏览器 / 等 AI 答完 / 自动复现 N 次,这三件最通用、最容易踩坑,已封装好、换产品直接用)。
产出:提单台账(格式可配置)
产出是一份提单台账(发现的问题清单),默认是飞书 9 列:版本 / 序号 / 问题描述 / 截图 / 问题类型 / 优先级 / 提出人 / 研发责任人 / 处理状态。
- 格式可换:跟 PRD 写作风格一样,团队能自设模板。模板在
templates/acceptance-templates/{模板名}/template-config.json,default 是这套 9 列。
- 加载:
--template=模板名,没给就用 default。
- 生成:把发现写进
output/projects/{项目}/14-acceptance/issues.json(字段照模板的 columns),跑 python3 scripts/gen_xlsx.py {项目}/14-acceptance/ 出 问题清单.xlsx。技术根因/根因簇写进同目录 notes.md 作说明页。
- 铁律落到模板里:模板的
fillRule 规定「AI 填哪些列、哪些列留空给人」——判定/处理状态永不自动填。
命令
| 命令 | 说明 |
|---|
/ai-pm acceptance [PRD或清单路径] | 启动验收:拆清单 → 连浏览器 → 驱动 → 复现 → 出台账 |
/ai-pm acceptance --template=模板名 | 用指定产出模板(默认 default 9 列) |
/ai-pm config acceptance | 管理产出模板(列出 / 切换 / 上传自设模板),用法同 /ai-pm config style |
产物落盘位置
所有产物落 output/projects/{项目}/14-acceptance/:验收清单、issues.json、问题清单.xlsx、shots/(截图)、notes.md(说明页)、_runner/(这个产品现摸的选择器和驱动脚本——项目特定、不进 skill)。
边界:什么不在 skill 里
具体产品的 DOM 选择器、驱动代码不进 skill。skill 只给「先探测后驱动」的 checklist 引导每个产品现摸,摸出来的选择器/驱动脚本是运行时产物、落项目侧 _runner/。原因:只有一个产品样本时把它的 DOM 抽成"通用引擎"会焊死、第二个产品就废——等第 2 个产品验收时 diff 两套探测结果,共性才抽进 skill。
登录/断线重连/现场恢复的固定流程见 references/login-session-protocol.md(A4 公共协议,竞品实探与权限跑批共用)。