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