docs(architecture): record T-103 purchase-entry no-go
This commit is contained in:
@@ -125,7 +125,7 @@ D:\Portable\adb\adb.exe devices -l
|
|||||||
证据不得提交 Git。T-102 已由人确认 goods_id `958756616606` 对应目标商品并完成截图/XML 隐私检查,
|
证据不得提交 Git。T-102 已由人确认 goods_id `958756616606` 对应目标商品并完成截图/XML 隐私检查,
|
||||||
设备、版本、证据路径与 SHA-256 已记录到任务执行记录。
|
设备、版本、证据路径与 SHA-256 已记录到任务执行记录。
|
||||||
|
|
||||||
### T-103 规格面板三状态只读取证(等待人工真机验收)
|
### T-103 规格面板三状态只读取证(真机结论:no-go)
|
||||||
|
|
||||||
`client/scripts/capture_sku_panel_spike.py` 只采集人已在手机上准备好的规格面板截图和完整 XML。
|
`client/scripts/capture_sku_panel_spike.py` 只采集人已在手机上准备好的规格面板截图和完整 XML。
|
||||||
它不打开链接或规格面板,不识别面板,不点击、滑动、输入或选择规格,也不读取价格;接口只暴露
|
它不打开链接或规格面板,不识别面板,不点击、滑动、输入或选择规格,也不读取价格;接口只暴露
|
||||||
@@ -147,6 +147,12 @@ fail closed;目标目录已存在、截图/XML 无效或超时均不得覆盖
|
|||||||
原始截图/XML 只能留在本机。人先核对三次截图的声明状态并完成隐私检查,再回报 manifest 路径、精确
|
原始截图/XML 只能留在本机。人先核对三次截图的声明状态并完成隐私检查,再回报 manifest 路径、精确
|
||||||
选择值和面板可见价格文本;agent 在此之前不得读取原始页面内容或编写任何规格面板判据。
|
选择值和面板可见价格文本;agent 在此之前不得读取原始页面内容或编写任何规格面板判据。
|
||||||
|
|
||||||
|
2026-08-04 的 PKG110 / Android 16 / 拼多多 8.17.0 真机验证中,人确认衣服商品
|
||||||
|
goods_id `937122477375` 的规格面板只能从详情页右下角“快要抢光”等购买语义按钮进入;通常同类入口
|
||||||
|
还包括“免拼购买 / 单独购买 / 直接拼成”。这满足任务预设的 no-go 条件:第一趟不能点击进入下单流程
|
||||||
|
的入口,因此本轮 XML 未读取、fixture 与选择器未生成,T-103 转 `BLOCKED`。只读取证脚手架保留用于
|
||||||
|
后续重新验证,但不能被解释为规格面板自动化可行。解除阻塞必须先完成新的架构决策和安全边界评审。
|
||||||
|
|
||||||
Windows 的标准入口是仓库根 `./init.ps1`。它要求 Go、两端目录及其哨兵文件存在;已有合规
|
Windows 的标准入口是仓库根 `./init.ps1`。它要求 Go、两端目录及其哨兵文件存在;已有合规
|
||||||
`client/.venv` 时,所有采购工具检查与 validator 都使用该解释器。只有 venv 不存在时,才从 `py -0p`
|
`client/.venv` 时,所有采购工具检查与 validator 都使用该解释器。只有 venv 不存在时,才从 `py -0p`
|
||||||
枚举的版本中确定性选择最高的 Python 3.11+ 创建它;没有合规版本时明确失败,绝不回退默认 `python`。
|
枚举的版本中确定性选择最高的 Python 3.11+ 创建它;没有合规版本时明确失败,绝不回退默认 `python`。
|
||||||
|
|||||||
@@ -382,6 +382,7 @@ PENDING_RETRIAL ─────────────┴─claim→ CLAIMED
|
|||||||
| 难点 | 说明 | 应对 |
|
| 难点 | 说明 | 应对 |
|
||||||
| --- | --- | --- |
|
| --- | --- | --- |
|
||||||
| 拼多多页面结构随版本变化 | 前序项目已观察到详情页无独立规格入口、价格节点拆分等变化 | **每条判据先做真机 spike 取证再写代码**;判据与 App 版本一并记录 |
|
| 拼多多页面结构随版本变化 | 前序项目已观察到详情页无独立规格入口、价格节点拆分等变化 | **每条判据先做真机 spike 取证再写代码**;判据与 App 版本一并记录 |
|
||||||
|
| 规格面板安全入口 | T-103 已在拼多多 8.17.0 真机确认衣服商品只能通过“快要抢光 / 免拼购买 / 单独购买 / 直接拼成”等购买语义入口打开规格面板 | 触发 no-go,T-103 阻塞;第一趟不点击这些入口,不生成选择器。只有先完成架构决策和安全边界评审才能继续 |
|
||||||
| 规格面板上的价格位置 | 选中 SKU 后价格显示在哪、是否含券后前缀,未取证 | **T-103 必须一并取证**,闸门一依赖它;读不到就转人工,不用详情页数字凑合 |
|
| 规格面板上的价格位置 | 选中 SKU 后价格显示在哪、是否含券后前缀,未取证 | **T-103 必须一并取证**,闸门一依赖它;读不到就转人工,不用详情页数字凑合 |
|
||||||
| 同一商品两趟结果不一致 | 第二趟价格变了、规格选项变了或商品下架 | 闸门二拦截;一律转人工,不自动放弃也不自动继续 |
|
| 同一商品两趟结果不一致 | 第二趟价格变了、规格选项变了或商品下架 | 闸门二拦截;一律转人工,不自动放弃也不自动继续 |
|
||||||
| 图搜结果含跨类目商品(V2) | 搜服装出现纸巾 | B 路径只产 goods_id 且限 5 个;后续用 VLM 看截图筛同款 |
|
| 图搜结果含跨类目商品(V2) | 搜服装出现纸巾 | B 路径只产 goods_id 且限 5 个;后续用 VLM 看截图筛同款 |
|
||||||
@@ -408,6 +409,10 @@ PENDING_RETRIAL ─────────────┴─claim→ CLAIMED
|
|||||||
**不要在 Phase 1 结论出来之前写 Phase 2 的页面**——确认页要显示什么,取决于真机上
|
**不要在 Phase 1 结论出来之前写 Phase 2 的页面**——确认页要显示什么,取决于真机上
|
||||||
究竟能读到什么。尤其是闸门一的单价,如果规格面板上读不可靠,整个确认页的设计要改。
|
究竟能读到什么。尤其是闸门一的单价,如果规格面板上读不可靠,整个确认页的设计要改。
|
||||||
|
|
||||||
|
> 2026-08-04:Phase 1 已得到负面结论。拼多多 8.17.0 的已验证衣服商品没有独立安全规格入口,
|
||||||
|
> 只能从购买语义按钮进入规格面板。按本节“第一趟不下单”边界,自动第一趟当前不可实现;Phase 2
|
||||||
|
> 保持冻结,直到项目所有者选择并评审新的架构方向。该结论不授权点击购买入口。
|
||||||
|
|
||||||
## 八、项目结构
|
## 八、项目结构
|
||||||
|
|
||||||
```text
|
```text
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
## 当前快照
|
## 当前快照
|
||||||
|
|
||||||
- 日期:2026-08-04
|
- 日期:2026-08-04
|
||||||
- 阶段:**Phase 1 · 真机可行性(T-101、T-102 已完成人工真机验收,下一步 T-103)**
|
- 阶段:**Phase 1 · 真机可行性(T-103 已在现有安全边界下判定 no-go,当前阻塞)**
|
||||||
- MVP 形态:手工填链接建单 → 批量开始试选 → 定时轮询 → **第一趟试选** → 人工确认 → **第二趟下单** → 待付款
|
- MVP 形态:手工填链接建单 → 批量开始试选 → 定时轮询 → **第一趟试选** → 人工确认 → **第二趟下单** → 待付款
|
||||||
- 技术栈:已定。采购服务(`admin/`)使用 Go 1.23+ / gin / SQLite;采购工具(`client/`)
|
- 技术栈:已定。采购服务(`admin/`)使用 Go 1.23+ / gin / SQLite;采购工具(`client/`)
|
||||||
使用 Python 3.11+ / uiautomator2 / PySide6。
|
使用 Python 3.11+ / uiautomator2 / PySide6。
|
||||||
@@ -29,16 +29,17 @@
|
|||||||
并且不覆盖低版本环境;成功后打印真实启动命令。
|
并且不覆盖低版本环境;成功后打印真实启动命令。
|
||||||
- 标准验证路径:`./init.ps1` 已实际跑通 admin 的 mod download / test / vet / build、client 的
|
- 标准验证路径:`./init.ps1` 已实际跑通 admin 的 mod download / test / vet / build、client 的
|
||||||
editable install / 包导入 / unittest / compileall,以及仓库上下文校验。可单独运行两端命令诊断。
|
editable install / 包导入 / unittest / compileall,以及仓库上下文校验。可单独运行两端命令诊断。
|
||||||
- 当前设备门禁:T-102 已证明 canonical 链接可在拼多多 8.17.0 打开到目标商品并完成人工隐私验收;
|
- 当前 blocker:人工已确认拼多多 8.17.0 的衣服商品只能通过“快要抢光 / 免拼购买 / 单独购买 /
|
||||||
T-103 的只读取证脚手架已落成,等待人工分别把安全的独立规格面板停在初始、已选一个维度、已选全部
|
直接拼成”等购买语义入口打开规格面板;这触发 T-103 的显式 no-go 条件。第一趟不得点击进入下单
|
||||||
维度三种状态并采集证据。T-103 通过前 Phase 2 仍不能抢跑。
|
流程的入口,因此不实现选择器、不读取本轮 XML,T-103 转 `BLOCKED`。解除阻塞需要项目所有者先
|
||||||
|
选择新的架构方向并更新安全边界;Phase 2 仍不能抢跑。
|
||||||
|
|
||||||
## 当前目录要点
|
## 当前目录要点
|
||||||
|
|
||||||
| 路径 | 状态 | 说明 |
|
| 路径 | 状态 | 说明 |
|
||||||
| --- | --- | --- |
|
| --- | --- | --- |
|
||||||
| `docs/` | 已有 | 项目规范化文档,本次已完整生成 |
|
| `docs/` | 已有 | 项目规范化文档,本次已完整生成 |
|
||||||
| `docs/tasks/` | 已有(T-001~T-004、T-005~T-009、T-101~T-103) | T-001~T-004、T-101~T-102 已完成;T-103 正在执行 |
|
| `docs/tasks/` | 已有(T-001~T-004、T-005~T-009、T-101~T-103) | T-001~T-004、T-101~T-102 已完成;T-103 因无安全规格入口而阻塞 |
|
||||||
| `docs/design/` | 已有(6 个原型) | web 登录 / 建单 / 工作台 / 详情,desk 采购执行 / 配置;均已人工确认 |
|
| `docs/design/` | 已有(6 个原型) | web 登录 / 建单 / 工作台 / 详情,desk 采购执行 / 配置;均已人工确认 |
|
||||||
| `scripts/` | 已有 | 上下文门禁、Vikunja 单向导出与 MCP 启动包装 |
|
| `scripts/` | 已有 | 上下文门禁、Vikunja 单向导出与 MCP 启动包装 |
|
||||||
| `admin/` | 已初始化 | Go 1.23+ / gin / SQLite,含核心模型、迁移与状态机;无真机采购执行 |
|
| `admin/` | 已初始化 | Go 1.23+ / gin / SQLite,含核心模型、迁移与状态机;无真机采购执行 |
|
||||||
@@ -54,9 +55,9 @@
|
|||||||
以及 T-001(采购服务 Go 骨架)。
|
以及 T-001(采购服务 Go 骨架)。
|
||||||
- 已完成:T-002(采购工具 Python 骨架)、T-003(双端统一初始化与验证入口)、
|
- 已完成:T-002(采购工具 Python 骨架)、T-003(双端统一初始化与验证入口)、
|
||||||
T-004(核心数据模型)、T-101(真机环境盘点与 USB/WiFi 双通道人工验收)、T-102(canonical
|
T-004(核心数据模型)、T-101(真机环境盘点与 USB/WiFi 双通道人工验收)、T-102(canonical
|
||||||
链接打开与目标商品/隐私人工验收)。下一步推进 T-103。
|
链接打开与目标商品/隐私人工验收)。
|
||||||
- T-103 是当前最高优先级和 MVP 生死线。通过前不开发依赖真机可读字段的
|
- T-103 是当前最高优先级和 MVP 生死线,现已因规格面板只有购买语义入口而 `BLOCKED`。架构决策
|
||||||
Phase 2 生产页面。
|
完成前不开发依赖真机可读字段的 Phase 2 生产页面。
|
||||||
- 已确认原型继续只作信息架构依据;原型假数据不调用真实接口、不驱动真机。真机结论改变
|
- 已确认原型继续只作信息架构依据;原型假数据不调用真实接口、不驱动真机。真机结论改变
|
||||||
可读字段时必须先回修原型与交互清单。
|
可读字段时必须先回修原型与交互清单。
|
||||||
|
|
||||||
|
|||||||
+11
-2
@@ -3,7 +3,7 @@ id: T-103
|
|||||||
title: 验证规格面板精确选择与 SKU 单价
|
title: 验证规格面板精确选择与 SKU 单价
|
||||||
phase: 1
|
phase: 1
|
||||||
deps: [T-102]
|
deps: [T-102]
|
||||||
status: DOING
|
status: BLOCKED
|
||||||
created: 2026-08-04
|
created: 2026-08-04
|
||||||
vikunja_task_id: 23
|
vikunja_task_id: 23
|
||||||
context_ref: 1dc8308
|
context_ref: 1dc8308
|
||||||
@@ -24,7 +24,7 @@ write_paths:
|
|||||||
- docs/current-state.md
|
- docs/current-state.md
|
||||||
---
|
---
|
||||||
|
|
||||||
<!-- BEGIN VIKUNJA EXPORT id=23 synced=2026-08-04T02:36:53Z sha256=4b1347bc5d566877590defca9ca760f0baeaa43c3f5c78f153ac6323987f4534 -->
|
<!-- BEGIN VIKUNJA EXPORT id=23 synced=2026-08-04T02:42:15Z sha256=d9d51a844857a5a9ffecf79c70380a559e3058a8390e14eab653d79af8a4fe7a -->
|
||||||
## 问题 / 背景
|
## 问题 / 背景
|
||||||
|
|
||||||
T-102 已在 PKG110 / Android 16 / 拼多多 8.17.0 上证明 canonical 链接可进入 goods_id `958756616606` 的目标商品,并留下截图/XML。MVP 生死线是第一趟能否在不进入下单流程的前提下打开规格面板、按维度精确选择并从面板读取该 SKU 单价。T-102 截图当前可见底部“单独购买 / 免拼购买”和“先用后付 / 0元下单”文案,这些均属于本任务禁止触碰的购买或资金入口;当前截图视口没有证明存在独立安全规格入口,不能从旧项目或推理补选择器。
|
T-102 已在 PKG110 / Android 16 / 拼多多 8.17.0 上证明 canonical 链接可进入 goods_id `958756616606` 的目标商品,并留下截图/XML。MVP 生死线是第一趟能否在不进入下单流程的前提下打开规格面板、按维度精确选择并从面板读取该 SKU 单价。T-102 截图当前可见底部“单独购买 / 免拼购买”和“先用后付 / 0元下单”文案,这些均属于本任务禁止触碰的购买或资金入口;当前截图视口没有证明存在独立安全规格入口,不能从旧项目或推理补选择器。
|
||||||
@@ -78,6 +78,15 @@ T-102 已在 PKG110 / Android 16 / 拼多多 8.17.0 上证明 canonical 链接
|
|||||||
- `initial` 截图实际仍为商品详情页,不是规格面板初始态;`one-dimension-selected` 与 `all-dimensions-selected` 截图顶部含收货区域和掩码手机号,不满足任务的无地址/手机号证据边界。
|
- `initial` 截图实际仍为商品详情页,不是规格面板初始态;`one-dimension-selected` 与 `all-dimensions-selected` 截图顶部含收货区域和掩码手机号,不满足任务的无地址/手机号证据边界。
|
||||||
- 本组证据判定不合格:不提取 fixture、不编写页面判据、不提交原始证据;T-103 保持 DOING。
|
- 本组证据判定不合格:不提取 fixture、不编写页面判据、不提交原始证据;T-103 保持 DOING。
|
||||||
- 下一步使用全新输出目录重采:人先在规格面板取消全部规格选择,并滚动到收货区域和手机号完全离开可见视口,同时保留规格面板价格与规格区域;三态逐次人工核对后再交主审。
|
- 下一步使用全新输出目录重采:人先在规格面板取消全部规格选择,并滚动到收货区域和手机号完全离开可见视口,同时保留规格面板价格与规格区域;三态逐次人工核对后再交主审。
|
||||||
|
|
||||||
|
### 2026-08-04T02:41:12Z · ila
|
||||||
|
|
||||||
|
2026-08-04 T-103 真机 no-go 结论:
|
||||||
|
|
||||||
|
- 人工确认 goods_id `937122477375` 的规格面板是通过商品详情页右下角“快要抢光”进入;通常“免拼购买 / 快要抢光 / 单独购买 / 直接拼成”等购买语义按钮才会打开规格面板。
|
||||||
|
- 这直接触发任务方案与边界中的 no-go 条件:第一趟不得点击任何购买、下单、提交或资金入口,也不得把购买按钮包装成规格入口。
|
||||||
|
- 因此不读取本轮 XML、不提取 fixture、不实现选择器;已有截图仅用于判定入口不可行,原始证据不提交 Git。
|
||||||
|
- 当前 MVP 的自动第一趟试选在现有安全边界下不可实现,T-103 转 BLOCKED。解除阻塞需要项目所有者选择新的架构方向,并先更新架构/任务边界;不得由 agent 擅自放宽。
|
||||||
<!-- END VIKUNJA EXPORT -->
|
<!-- END VIKUNJA EXPORT -->
|
||||||
|
|
||||||
## 边界
|
## 边界
|
||||||
|
|||||||
Reference in New Issue
Block a user