docs(architecture): approve controlled trial SKU entry
This commit is contained in:
+41
-29
@@ -2,8 +2,8 @@
|
||||
id: T-103
|
||||
title: 验证规格面板精确选择与 SKU 单价
|
||||
phase: 1
|
||||
deps: [T-102]
|
||||
status: BLOCKED
|
||||
deps: [T-102, T-110]
|
||||
status: DOING
|
||||
created: 2026-08-04
|
||||
vikunja_task_id: 23
|
||||
context_ref: 1dc8308
|
||||
@@ -24,35 +24,38 @@ write_paths:
|
||||
- docs/current-state.md
|
||||
---
|
||||
|
||||
<!-- BEGIN VIKUNJA EXPORT id=23 synced=2026-08-04T02:42:15Z sha256=d9d51a844857a5a9ffecf79c70380a559e3058a8390e14eab653d79af8a4fe7a -->
|
||||
<!-- BEGIN VIKUNJA EXPORT id=23 synced=2026-08-04T02:56:52Z sha256=2f5ce314d8ae55d466abe28d5d3a4c36e235e008af3a4d251b4ea362a4de1314 -->
|
||||
## 问题 / 背景
|
||||
|
||||
T-102 已在 PKG110 / Android 16 / 拼多多 8.17.0 上证明 canonical 链接可进入 goods_id `958756616606` 的目标商品,并留下截图/XML。MVP 生死线是第一趟能否在不进入下单流程的前提下打开规格面板、按维度精确选择并从面板读取该 SKU 单价。T-102 截图当前可见底部“单独购买 / 免拼购买”和“先用后付 / 0元下单”文案,这些均属于本任务禁止触碰的购买或资金入口;当前截图视口没有证明存在独立安全规格入口,不能从旧项目或推理补选择器。
|
||||
T-102 已证明 canonical 链接可进入目标商品。T-103 随后在 PKG110 / Android 16 / 拼多多 8.17.0、衣服商品 goods_id `937122477375` 上确认:规格面板只能从详情页右下角精确文案“快要抢光”进入,面板固定显示收货区域和掩码手机号。T-110 经项目所有者批准,将该已取证点击定义为可逆、能力受限的规格面板导航;这不是通用购买入口豁免,不授权其他文案、数量、确认页、提交订单或支付。
|
||||
|
||||
## 关联需求与交互
|
||||
|
||||
- 功能:F-006 第一趟试选;只覆盖 `open_sku_panel()`、`select_sku_options()`、`read_sku_unit_price()` 的真机 spike。
|
||||
- 功能:F-006 第一趟试选;覆盖自动脱敏、`open_trial_sku_panel()`、`select_sku_options()`、`read_sku_unit_price()` 的真机 spike。
|
||||
- 用户故事:US-003、US-004、US-008;本任务无生产 GUI。
|
||||
- 架构 / API:`docs/04-architecture.md` 第三、四、六节;`docs/api.md` 第三节设备自动化边界;T-104、T-105 与 Phase 2 的前置。
|
||||
- 架构 / API:`docs/04-architecture.md` 第三、四、5.4、六节;`docs/api.md` 证据上传和 `TrialSkuFlow`;T-104、T-105 与 Phase 2 的前置。
|
||||
|
||||
## 方案
|
||||
|
||||
1. 先执行证据门禁,后写页面判据。由人把手机停在同一商品的详情页,手工寻找并只通过独立的“规格 / 已选”等非购买入口打开规格面板;不得点击“单独购买”“免拼购买”“直接拼成”“现在买”“先用后付”“0元下单”或任何购买/下单入口。若拼多多 8.17.0 与当前商品没有独立安全规格入口,记录 no-go 并停止,不能为了跑通放宽第一趟边界。
|
||||
2. 人在规格面板初始态、手工选择一个维度后、全部维度选中后三个状态分别用现有只读取证能力保存 screenshot/XML;记录 goods_id、PKG110、Android 16、拼多多 8.17.0、路径与 SHA-256,并完成隐私检查。商品应具有 `颜色分类` 与 `尺码` 两个维度;当前商品不满足时由人另选 canonical 链接并记录。原始证据只留 `%LOCALAPPDATA%`。
|
||||
3. 主 agent 只在上述证据完成且经人确认隐私后分析 XML,提取最小、脱敏 fixture,并把每条面板入口、维度容器、选项、选中态和价格判据绑定到证据哈希与 PDD 8.17.0;不得复用 cmroubao/cmpdd 的节点、Activity、文本常量或结论。
|
||||
4. 实现安全的规格面板边界:版本必须精确为 8.17.0;只允许点击证据证明的独立规格入口及规格面板内选项。按维度容器隔离候选,文本等值匹配并读回选中态;缺失、重复、禁用、维度不明或选中态不唯一均停止,不点击相近项。纯函数测试必须覆盖 `红`/`粉红`、`1`/`10` 等前缀碰撞,即使真实商品未恰好包含该组合。
|
||||
5. 单价只从规格面板证据确定的节点读取,以十进制字符串返回,禁止浮点。必须记录实际文本是否含“券后”、货币符号是否拆节点、是否同时出现原价/区间价;语义不唯一、节点缺失、多个候选冲突或只能从详情页读到时返回 unreadable 并转人工,不用其他数字补。
|
||||
6. 提供离线 mock/fixture 测试与受限真机 spike CLI。第一趟模块不得导入或引用数量、订单确认、提交订单、付款函数;测试证明找不到精确值时零点击、价格不可读时停止、购买/资金入口永不可达。由人最终执行真机脚本并确认实际选中颜色/尺码与面板单价、截图/XML 隐私;agent 始终保持 DOING。
|
||||
1. 先实现本机确定性脱敏器,不先写页面判据。原始 screenshot/XML 只保存到 `%LOCALAPPDATA%\cmbuyer\artifacts\T-103\...\raw`,只允许脱敏器消费;agent、fixture、业务、日志、HTTP sink、Vikunja 与 Git 均不得读取/上传原始内容。
|
||||
2. 脱敏器绑定 PKG110 分辨率、拼多多 8.17.0、goods_id、人工声明状态和本项目证据配置,同时从 screenshot/XML 移除收货区域、地址与手机号内容,在 sibling `derived` 目录原子发布派生物。派生 XML 仍命中手机号模式、隐私区域无法确认、结构/分辨率/版本失配、哈希不一致或目标目录存在时 fail closed,不发布半成品。服务端只接收派生截图哈希和 sanitizer 版本,不接收原始文件/哈希/路径/XML。
|
||||
3. 由人运行脱敏器并本地确认派生 screenshot/XML 的 initial、one-dimension-selected、all-dimensions-selected 三态对应性;主 agent 只在派生 manifest 与人工确认齐全后读取派生证据,提取最小 fixture。首轮 `initial` 详情页截图与含隐私面板截图不得复用为 fixture。
|
||||
4. 实现 `TrialSkuFlow` 窄 capability。`open_trial_sku_panel()` 只允许拼多多 8.17.0、goods_id `937122477375` 上证据绑定、精确唯一的 `快要抢光`;缺失、重复、版本失配或打开后面板判据不唯一时零后续点击。`免拼购买 / 单独购买 / 直接拼成` 等其他文案必须分别取证,不能包含、前缀、同义、OCR 或坐标兜底。
|
||||
5. 第一趟 capability 只含打开商品、受控打开面板、在维度容器内精确选择、读面板单价、脱敏取证和返回。接口不得暴露通用 `click`、`set_quantity()`、`go_to_order_confirm()`、`submit_order()` 或支付能力;规格面板中的“提交订单”、微信支付、先用后付和 0 元下单只作为硬拒绝判据,静态调用链测试证明不可达。
|
||||
6. 在脱敏派生 XML 上按维度容器隔离候选,文本等值匹配并读回选中态;缺失、重复、禁用、维度不明或选中态不唯一均停止。纯函数测试覆盖 `红`/`粉红`、`1`/`10` 等前缀碰撞。
|
||||
7. 单价只从规格面板证据确定的唯一节点读取,以十进制字符串返回,禁止浮点。记录真实文本是否含优惠前缀、货币符号是否拆节点、是否并列原价/区间价;语义不唯一、节点缺失、候选冲突或只能从详情页读取时返回 unreadable。
|
||||
8. 人最终在真机执行受控入口、精确选择和读价脚本,确认实际选择 `颜色分类=黑色 CHA(纯棉)`、`尺码=M(建议100-115)`(以派生 XML 精确文本为准)、面板单价语义、派生证据隐私与退出行为;agent 保持 DOING 直到人工验收。
|
||||
|
||||
## 验收要点
|
||||
|
||||
- 证据先行:任务执行记录先出现规格面板三态的设备/App/goods_id/路径/SHA-256 与人工隐私结论,之后才允许出现页面判据代码。
|
||||
- 拼多多 8.17.0 上仅通过独立安全规格入口打开面板;若只能通过购买入口打开,则明确判定 MVP 当前边界下不可行,不写兜底点击。
|
||||
- `颜色分类=X`、`尺码=Y` 在各自维度内精确唯一匹配并读回;前缀碰撞、缺失、重复、禁用和选中态不唯一均 fail closed。
|
||||
- 从规格面板可靠读取选中 SKU 单价并记录真实文本语义;无法区分券后价、原价、区间价或节点拆分时返回 unreadable。
|
||||
- 测试证明 T-103 路径不点击任何购买/下单/支付入口,不引用 `set_quantity()`、`go_to_order_confirm()`、`submit_order()` 或支付动作。
|
||||
- 三组原始证据仅在本机 raw 目录;脱敏器离线测试覆盖地址/手机号移除、截图与 XML 同步处理、版本/分辨率/结构失配、手机号残留、原子性、异常脱敏和已有目录不覆盖。
|
||||
- 派生 manifest 记录 source/derived 本机哈希、sanitizer 版本、设备/App/goods_id/人工状态;原始页面正文、serial、地址和手机号不进入 manifest、日志、错误或上传。
|
||||
- 只从人工验收通过的派生证据编写页面判据与最小 fixture;判据绑定拼多多 8.17.0 和证据哈希。
|
||||
- `快要抢光` 精确唯一时才打开面板;其他文案、入口缺失/重复、面板不唯一、规格缺失/碰撞/禁用、价格不唯一均 fail closed。
|
||||
- 静态 API/导入测试证明 T-103 第一趟无通用点击、数量、确认页、提交订单或支付能力,“提交订单”及资金控件不可达。
|
||||
- 从规格面板可靠读取选中 SKU 单价为十进制字符串;无法唯一解释优惠价/原价/区间价时返回 unreadable。
|
||||
- client 全部单测、compileall、wheel metadata、上下文校验、完整 `init.ps1` 与 diff-check 通过。
|
||||
- `needs_device=true`:只有人完成安全入口、精确选择、单价读取、页面对应性和隐私验收后才能 DONE。
|
||||
- `needs_device=true`:只有人完成受控入口、精确选择、单价读取、派生证据对应性/隐私和安全退出验收后才能 DONE。
|
||||
|
||||
## 执行记录
|
||||
|
||||
@@ -87,17 +90,21 @@ T-102 已在 PKG110 / Android 16 / 拼多多 8.17.0 上证明 canonical 链接
|
||||
- 这直接触发任务方案与边界中的 no-go 条件:第一趟不得点击任何购买、下单、提交或资金入口,也不得把购买按钮包装成规格入口。
|
||||
- 因此不读取本轮 XML、不提取 fixture、不实现选择器;已有截图仅用于判定入口不可行,原始证据不提交 Git。
|
||||
- 当前 MVP 的自动第一趟试选在现有安全边界下不可实现,T-103 转 BLOCKED。解除阻塞需要项目所有者选择新的架构方向,并先更新架构/任务边界;不得由 agent 擅自放宽。
|
||||
|
||||
### 2026-08-04T02:56:36Z · ila
|
||||
|
||||
2026-08-04:T-110 已获项目所有者授权并同步架构契约。T-103 方案已重写为“先自动脱敏派生证据,再实现受控 `快要抢光` 入口与精确规格/价格判据”;T-110 完成并转 Done 后,本任务恢复 Doing。
|
||||
<!-- END VIKUNJA EXPORT -->
|
||||
|
||||
## 边界
|
||||
|
||||
- 任何规格面板入口、维度容器、选项、选中态和价格判据都必须来自本项目新采集且已由人完成
|
||||
隐私检查的拼多多 8.17.0 screenshot/XML;T-102 详情页证据只能证明已到目标商品,不能证明
|
||||
规格面板结构。证据路径、SHA-256、goods_id、设备、Android 与 App 版本写入执行记录之前,
|
||||
不得提交页面判据代码。
|
||||
- 第一趟绝不点击“单独购买”“免拼购买”“直接拼成”“现在买”“先用后付”“0元下单”或任何
|
||||
购买、下单、提交、付款入口。只有真机证据证明存在独立的“规格 / 已选”等非购买入口时才允许
|
||||
自动打开面板;没有安全入口即判定 no-go 并停止,不能把购买按钮改名包装成规格入口。
|
||||
- 任何规格面板入口、维度容器、选项、选中态和价格判据都必须来自本项目新采集、自动复检通过的
|
||||
拼多多 8.17.0 **脱敏派生** screenshot/XML;T-102 详情页证据只能证明已到目标商品,不能证明
|
||||
规格面板结构。派生证据路径、SHA-256、goods_id、设备、Android、App 与 sanitizer 版本写入
|
||||
执行记录之前,不得提交页面判据代码。
|
||||
- 第一趟只允许 T-110 批准的 `open_trial_sku_panel()` 窄能力点击证据/版本绑定、精确唯一的
|
||||
`快要抢光`;当前事实仅覆盖 goods_id `937122477375`、拼多多 `8.17.0`。不得把“免拼购买 /
|
||||
单独购买 / 直接拼成”等其他文案加入包含、前缀、同义或坐标兜底,分别取证前一律拒绝。
|
||||
- 规格选项只能在已确认的面板及对应维度容器内按文本精确唯一匹配;缺失、重复、禁用、维度不明、
|
||||
选中态无法唯一读回或页面版本不符均 fail closed。不得前缀、包含、模糊、相似或跨维度匹配,
|
||||
不得用 OCR / 坐标兜底猜选项。
|
||||
@@ -105,10 +112,15 @@ T-102 已在 PKG110 / Android 16 / 拼多多 8.17.0 上证明 canonical 链接
|
||||
搜索卡片或其他页面的数字补值。券后价、原价、区间价、货币符号拆分或多个候选的语义无法唯一
|
||||
证明时必须返回 unreadable 并转人工。
|
||||
- T-103 代码路径不得引用或实现 `set_quantity()`、`go_to_order_confirm()`、`submit_order()`、
|
||||
创建订单、授权、提交围栏或任何支付能力;不得进入订单确认页,不得创建待付款订单。
|
||||
通用 `click`、创建订单、授权、提交围栏或任何支付能力;不得进入订单确认页,不得创建待付款订单。
|
||||
规格面板中的“提交订单”、微信支付、先用后付、0 元下单只可作为硬拒绝判据,不能返回可点击对象。
|
||||
- 不把 `/mnt/d/chengma/cmroubao`、`/mnt/d/chengma/cmpdd` 或任何旧版本的节点、Activity、选择器、
|
||||
坐标、文本形态和页面结论当作事实;前序项目只可用于理解为什么必须 fail closed。
|
||||
- 原始 screenshot/XML 只保存在 `%LOCALAPPDATA%\cmbuyer\artifacts\T-103`,不得提交 Git 或 Vikunja;
|
||||
只有最小脱敏 fixture、路径、SHA-256 与非敏感结论可入库。未由人确认隐私前 agent 不读取原始证据。
|
||||
- 原始 screenshot/XML 只保存在 `%LOCALAPPDATA%\cmbuyer\artifacts\T-103\...\raw`,只允许本机
|
||||
确定性脱敏器消费,不得由 agent、业务、fixture、HTTP sink、Vikunja 或 Git 读取/上传。脱敏器必须
|
||||
校验设备分辨率、页面/App 版本和预期隐私区域,同时移除 screenshot/XML 中的地址与手机号内容;
|
||||
派生 XML 仍命中手机号模式、结构/版本/分辨率失配或哈希不一致时不得发布 `derived`。
|
||||
- 只有自动复检通过的最小脱敏 fixture、派生路径/哈希、sanitizer 版本与非敏感结论可入库;服务端
|
||||
不接收原始文件、原始路径或原始哈希。
|
||||
- `needs_device: true`:agent 只能完成离线实现并保持 `DOING`;只有人完成安全入口、精确规格选择、
|
||||
SKU 单价语义、页面对应性与隐私验收后才能标 `DONE`。
|
||||
SKU 单价语义、页面对应性与派生证据验收后才能标 `DONE`。
|
||||
|
||||
+12
-2
@@ -3,7 +3,7 @@ id: T-110
|
||||
title: 调整第一趟受控规格入口与隐私脱敏边界
|
||||
phase: 1
|
||||
deps: [T-102]
|
||||
status: DOING
|
||||
status: DONE
|
||||
created: 2026-08-04
|
||||
vikunja_task_id: 24
|
||||
context_ref: abeefbb
|
||||
@@ -21,7 +21,7 @@ write_paths:
|
||||
- docs/current-state.md
|
||||
---
|
||||
|
||||
<!-- BEGIN VIKUNJA EXPORT id=24 synced=2026-08-04T02:49:01Z sha256=11514e934382208eaf97934c91f0820427db8a87fddd4eb31c15c8b3b6fe4695 -->
|
||||
<!-- BEGIN VIKUNJA EXPORT id=24 synced=2026-08-04T02:58:59Z sha256=8145a304e810ace55879b5053b8730a512ef13dcb8d85a727e86dd94e461bdae -->
|
||||
## 问题 / 背景
|
||||
|
||||
T-103 在 PKG110 / Android 16 / 拼多多 8.17.0 真机确认:衣服商品 goods_id `937122477375` 的规格面板只能从详情页右下角“快要抢光”等购买语义按钮进入,不存在原架构假设的独立“规格 / 已选”入口。与此同时,规格面板固定展示收货区域与掩码手机号。项目所有者已批准调整第一趟入口边界,但“不付款、第一趟不可达提交订单、价格只从规格面板读取、敏感信息不进入业务数据/日志/上传/Git”等边界不变。
|
||||
@@ -54,6 +54,16 @@ T-103 在 PKG110 / Android 16 / 拼多多 8.17.0 真机确认:衣服商品 goo
|
||||
### 2026-08-04T02:48:25Z · ila
|
||||
|
||||
2026-08-04:项目所有者明确批准受控规格面板入口方案;PDD 页面不可避免显示地址/手机号的事实被接受,但系统仍按本机原始证据隔离、自动脱敏派生物消费的方式收紧传播边界。任务已认领,分支 `task/t-110-trial-sku-boundary`,基线 `abeefbb`。
|
||||
|
||||
### 2026-08-04T02:58:44Z · ila
|
||||
|
||||
2026-08-04 完成记录:
|
||||
|
||||
- 已同步 `docs/02-requirements.md`、`03-tech-stack.md`、`04-architecture.md`、`05-coding-rules.md`、`api.md`、`current-state.md` 与 T-103。
|
||||
- 第一趟只批准证据/版本绑定、精确唯一的 `快要抢光`;其他购买文案不泛化。`TrialSkuFlow` 不暴露通用点击、数量、确认页、提交订单或支付能力。
|
||||
- 原始 screenshot/XML 只留本机隔离目录;服务端只接收自动复检通过的派生截图哈希与 sanitizer 版本,不接收原始文件、哈希、路径或 XML。
|
||||
- Phase 1 已拆分第一趟规格 spike 与第二趟数量/确认页 spike;T-103 已增加 T-110 依赖并按新边界恢复 DOING。
|
||||
- `validate_agent_context.py` 与 `git diff --check` 通过;本任务没有实现或运行任何真机点击代码。
|
||||
<!-- END VIKUNJA EXPORT -->
|
||||
|
||||
## 边界
|
||||
|
||||
Reference in New Issue
Block a user