docs(t213): reopen SKU and price inspection

This commit is contained in:
QiuSW
2026-07-27 23:28:24 +08:00
parent 9a8388fac6
commit 5c08d8d7f3
3 changed files with 67 additions and 51 deletions
+41 -28
View File
@@ -1,12 +1,12 @@
---
id: T-213
title: 拼多多规格弹窗只读核验
title: 拼多多候选 SKU 组合与价格核验
phase: 2
deps:
- T-212
status: BLOCKED
status: DOING
created: 2026-07-27
context_ref: edfee2c
context_ref: 9a8388f
work_branch: null
write_paths:
- android-buyer/app/build.gradle.kts
@@ -26,9 +26,10 @@ write_paths:
## 问题 / 背景
T-211 目前只用候选详情页首屏截图判断颜色和尺码。拼多多常把实际颜色、尺码选项放在
“选择规格”等弹窗内,首屏没有明确证据时只能返回 `UNKNOWN`,导致图片召回正确但自动
Top 5 为空。仅凭商品主图推断颜色或尺码不满足硬约束要求。
T-211 目前只用候选详情页首屏截图判断颜色和尺码。真机已确认拼多多 8.17.0 把完整
颜色、尺码和组合价格放在“单独购买/免拼购买”后的规格弹层,旧版只读入口策略无法
取得可靠证据。新业务流程明确要求候选阶段选择目标 SKU 并核对实际组合价格,再把
匹配候选回传 Admin;Admin 授权后的真正下单由后续独立任务实现。
## 关联需求与交互
@@ -37,38 +38,46 @@ Top 5 为空。仅凭商品主图推断颜色或尺码不满足硬约束要求
- 交互:IX-006、IX-007、IX-010 的候选检查、人工确认和安全停止。
- 架构/API:扩展 Android candidate evidence;后端沿用每个候选最多 5 个鉴权
evidence asset 的现有能力,不抓取第三方图片或商品 URL。
- 权限:本任务只实现 `DISCOVERY_INSPECT`,不是后续 `ORDER_CREATE`。
## 方案
1. 在候选详情页只允许唯一识别并打开“选择规格/颜色分类/尺码”一类只读入口;增加
规格弹窗页面分类,登录、验证码、风控、订单和支付标记优先安全停止。
2. 不点击任何颜色或尺码选项。只读取有界的可见分组标题、选项文本、选中/禁用语义,
并采集一张受控规格弹窗截图;无法确认分组完整性时标为未知。
3. 本地使用与任务 SKU 相同的颜色/尺码规范化规则核对显式选项。只有目标值在明确的
对应分组中可见且不为禁用时才能形成自动 `MATCH`;完整分组明确缺失才可
`MISMATCH`,截断、无障碍文本缺失或语义冲突一律 `UNKNOWN`。
4. 候选评估同时绑定详情证据和规格证据的 SHA-256;VLM 可解释证据,但不能覆盖本地
硬约束结果。Android outbox 支持一个候选关联详情和规格两份证据。
5. 采集后关闭规格弹窗并返回图片结果页;任一步无法唯一确认时安全停止,不尝试其他
按钮或坐标。
1. 从已验证商品详情页允许唯一识别“选择规格”等直接入口;没有直接入口时,允许按
固定优先级点击唯一“免拼购买”语义目标,仅用于进入规格弹层。不得点击“提交订单”
或支付控件。
2. 弹层必须识别颜色、尺码、当前选择、组合价格、库存/禁用语义。使用任务原始 SKU
的本地规范化结果依次选择唯一颜色和尺码选项,每次点击后重新读取并验证页面状态。
3. 目标选项缺失、重复、禁用、不可见、自绘无语义或点击后状态未改变时返回
`UNKNOWN/MISMATCH`,不得用 VLM 猜测后继续点击。VLM 只辅助解释截图和文本。
4. 两项选择完成后必须从当前规格弹层读取明确的已选组合和人民币价格;保存规范化
分值金额、原始可见价格文本、规格语义和截图。价格区间过滤在后续任务契约中使用。
5. 采集后使用全局返回关闭弹层,复核详情页,再返回原图片结果页。若购买入口直接
进入订单确认页,立即返回并把候选标为不支持;不能点击页面内任何确认按钮。
6. 候选评估同时绑定详情/规格证据 SHA-256 和所选规格、组合价格;VLM 不能覆盖本地
SKU、价格和状态结果。
## 验收要点
- [x] 页面分类测试覆盖规格弹窗、普通详情、登录、验证码、风控、购物车、订单和支付。
- [x] 自动化只点击唯一规格入口,不点击颜色/尺码选项、购买、拼单、购物车或支付控件。
- [x] 颜色、尺码分组及选项解析有数量/文本长度边界,截断或歧义不会判为 `MATCH`。
- [x] 单元测试覆盖两个目标均匹配、明确不匹配、禁用、缺失和未知。
- [x] 每个候选的详情/规格证据哈希和后端 asset ID 对应正确,离线重试不重复或串位。
- [x] Android 单元测试和 Debug 构建通过。
- [ ] PKG110、Android 16、拼多多 8.17.0 真机 smoke 完成规格弹窗打开、只读采集、
关闭和返回;记录 App/拼多多版本并确认未进入订单或支付。
- [ ] 页面分类覆盖详情、规格弹层、订单确认、订单列表、登录、验证码、风控和支付。
- [ ] `DISCOVERY_INSPECT` 只允许进入规格弹层、选择目标 SKU、读取价格和返回;代码
中不存在提交订单、支付或加入购物车动作。
- [ ] 颜色/尺码必须各自唯一匹配;依次点击后验证 selected/已选语义,禁用、重复、
缺失、截断和状态未变化均有测试。
- [ ] 组合价格使用严格人民币解析并保存分值;模糊区间价、券后条件价、多价格冲突和
无价格均不能形成自动匹配证据。
- [ ] 若购买入口直接进入订单确认页,自动化不点击任何页面控件并安全返回。
- [ ] 每个候选的详情/规格证据、所选规格和价格不会在重排/outbox 中串位。
- [ ] Android 单元测试、Debug 构建和后端回归通过。
- [ ] PKG110、Android 16、肉包/拼多多版本真机 smoke 完成进入弹层、选择测试 SKU、
读取组合价格、关闭和返回;确认未创建订单、未进入支付。
## 边界
- 第一版不点击或组合选择具体 SKU,不判断颜色与尺码组合库存。
- 允许在候选探查阶段选择具体颜色/尺码,但不加入购物车、不提交订单、不支付。
- 不滚动无界规格列表,不覆盖拼多多未提供无障碍语义的自绘控件。
- VLM 截图判断只能辅助解释;没有确定性规格证据时不得自动通过。
- 不加入购物车、不提交订单、不支付,也不实现一键连续执行。
- VLM 截图判断只能辅助解释;SKU 选择、价格解析和执行授权必须由确定性代码完成。
- 不判断优惠券、运费、地址和最终应付总额;这些属于后续订单预览任务。
- 只支持一个任务 SKU 对应一个颜色和一个尺码;多维规格和组合库存扩展后置。
## 执行记录
@@ -92,3 +101,7 @@ Top 5 为空。仅凭商品主图推断颜色或尺码不满足硬约束要求
外部解除条件是:确认允许把购买语义控件仅用于打开规格弹层,或提供不经过购买控件
的稳定规格入口/受支持数据源。重新安装后 ColorOS 也关闭了肉包无障碍服务,继续
smoke 前需采购员在系统设置手动重新启用。
- 2026-07-27:用户确认最终业务必须在 Admin 选择候选后由 Roubao 自动选 SKU、数量
并创建待付款订单,采购员最后在拼多多人工确认和付款。外部决策已解除旧阻塞,本
任务重新置为 `DOING`,权限缩小为候选阶段的 `DISCOVERY_INSPECT`;真正
`ORDER_CREATE` 仍须一次性 Admin 授权和独立任务。