兼容 PDD 主规格标题“组合”的规则驱动采集 #173

Open
opened 2026-08-31 16:15:30 +08:00 by ila · 1 comment
Owner

原始需求摘要

  • 来源:用户于 2026-08-31 反馈,最新 APK 采集 PDD 商品时,主规格标题由“颜色分类”等名称变为同位置的“组合”,导致不能遍历全部主规格;希望优先写入 Admin 采集规则,尽量少改 Agent。
  • 用户确认快捷指令:建工单,做。
  • 脱敏事实:任务 CT-116 使用规则 ID 3 后为 completed_partial,missing_json 为 color;商品档案只保存“尺码”,任务规则快照的颜色别名不含“组合”。

目标

通过规则驱动兼容 PDD 主规格标题“组合”,不修改 Android Agent 生产采集算法;当前规则立即支持,新建 v2 规则默认支持,并以自动测试固定既有动态别名能力。

非目标

  • 不做真机采集。
  • 不创建采购任务、订单或支付。
  • 不扩展三维及以上规格模型。
  • 不改变采集 API、数据库、权限、状态机或 Admin 页面布局。
  • 不处理“颜色分类”和“组合”同时为两个独立维度的页面。

前置依赖与并行性

  • 依赖现有 v2 collector.dimensionAliases.color 契约、Admin 安全表单和 Agent 动态规则解析能力,均已实现。
  • 无外部阻塞;与其他工作可并行,但提交必须隔离工作区已有无关改动。
  • Gitea MCP 当前会话未提供可调用工具,因此按仓库规则回退 Gitea API;凭据仅从 gitea.env 读取,不输出、不写入工单。

方案与设计证据

  1. 将服务端内置 v2 规则模板的颜色别名加入“组合”,使以后新建规则默认携带。
  2. 通过现有 Admin 采集规则安全表单更新当前 pdd_app采集(ID 3)的颜色分类别名,保存后只影响新任务/重采时的新快照。
  3. Android 不改生产代码;新增解析/遍历自动测试,证明规则把“组合”声明为颜色别名后会识别为 role=color 并遍历其选项。
  4. 现有界面已有“颜色分类别名”可创建选项字段,本次不改变界面结构、流程、状态或文案,因此无需新增原型。

验收标准

  • 当前规则 ID 3 的 collector.dimensionAliases.color 包含唯一的“组合”。
  • 服务端内置 v2 模板的颜色别名包含唯一的“组合”。
  • 使用规则别名“组合”解析非点击规格标题时,Agent 将其识别为主规格 color,完整读取标题下的可点击选项,同时继续识别尺码。
  • 既有颜色别名和安全拒绝边界不退化。
  • 受影响 Android、服务端规则契约测试通过。
  • 不执行真机采集和任何采购动作。

风险

  • “组合”语义较泛;当前 Agent 只把非点击、精确规格标题作为维度标题,选项文本中的“组合”不会单独触发标题识别。
  • 若页面同时存在独立“颜色分类”和“组合”两个主维度,现有两角色模型不足,需另建工单,不在本次范围。
  • 已创建任务保留旧快照;只有新任务或人工重采会读取更新后的规则。

文档影响

无长期 Wiki 文档影响:本次只是向现有、已文档化的可配置规格别名集合补充一个真机页面变体,不改变规则机制、API、数据结构、状态、安全边界、入口或验证命令,因此跳过 Wiki 更新与同步。

## 原始需求摘要 - 来源:用户于 2026-08-31 反馈,最新 APK 采集 PDD 商品时,主规格标题由“颜色分类”等名称变为同位置的“组合”,导致不能遍历全部主规格;希望优先写入 Admin 采集规则,尽量少改 Agent。 - 用户确认快捷指令:建工单,做。 - 脱敏事实:任务 CT-116 使用规则 ID 3 后为 completed_partial,missing_json 为 color;商品档案只保存“尺码”,任务规则快照的颜色别名不含“组合”。 ## 目标 通过规则驱动兼容 PDD 主规格标题“组合”,不修改 Android Agent 生产采集算法;当前规则立即支持,新建 v2 规则默认支持,并以自动测试固定既有动态别名能力。 ## 非目标 - 不做真机采集。 - 不创建采购任务、订单或支付。 - 不扩展三维及以上规格模型。 - 不改变采集 API、数据库、权限、状态机或 Admin 页面布局。 - 不处理“颜色分类”和“组合”同时为两个独立维度的页面。 ## 前置依赖与并行性 - 依赖现有 v2 collector.dimensionAliases.color 契约、Admin 安全表单和 Agent 动态规则解析能力,均已实现。 - 无外部阻塞;与其他工作可并行,但提交必须隔离工作区已有无关改动。 - Gitea MCP 当前会话未提供可调用工具,因此按仓库规则回退 Gitea API;凭据仅从 gitea.env 读取,不输出、不写入工单。 ## 方案与设计证据 1. 将服务端内置 v2 规则模板的颜色别名加入“组合”,使以后新建规则默认携带。 2. 通过现有 Admin 采集规则安全表单更新当前 pdd_app采集(ID 3)的颜色分类别名,保存后只影响新任务/重采时的新快照。 3. Android 不改生产代码;新增解析/遍历自动测试,证明规则把“组合”声明为颜色别名后会识别为 role=color 并遍历其选项。 4. 现有界面已有“颜色分类别名”可创建选项字段,本次不改变界面结构、流程、状态或文案,因此无需新增原型。 ## 验收标准 - 当前规则 ID 3 的 collector.dimensionAliases.color 包含唯一的“组合”。 - 服务端内置 v2 模板的颜色别名包含唯一的“组合”。 - 使用规则别名“组合”解析非点击规格标题时,Agent 将其识别为主规格 color,完整读取标题下的可点击选项,同时继续识别尺码。 - 既有颜色别名和安全拒绝边界不退化。 - 受影响 Android、服务端规则契约测试通过。 - 不执行真机采集和任何采购动作。 ## 风险 - “组合”语义较泛;当前 Agent 只把非点击、精确规格标题作为维度标题,选项文本中的“组合”不会单独触发标题识别。 - 若页面同时存在独立“颜色分类”和“组合”两个主维度,现有两角色模型不足,需另建工单,不在本次范围。 - 已创建任务保留旧快照;只有新任务或人工重采会读取更新后的规则。 ## 文档影响 无长期 Wiki 文档影响:本次只是向现有、已文档化的可配置规格别名集合补充一个真机页面变体,不改变规则机制、API、数据结构、状态、安全边界、入口或验证命令,因此跳过 Wiki 更新与同步。
Author
Owner

实施进度(推送前阻塞)

已完成:

  • 当前 Admin 规则 ID 3 已通过安全表单加入颜色别名“组合”;数据库回读确认别名为 6 项。
  • 服务端内置 v2 模板默认加入“组合”。
  • Android Agent 生产代码未修改;新增规则驱动解析回归测试,覆盖“组合”主规格与“尺码”并存。
  • go test ./app/goauto/rulecontract ./app/goauto/task 通过。
  • Android testDebugUnitTest:233 tests,0 failures,0 errors。
  • 本地提交:f30be44 fix(collection): recognize combination spec heading (#173)。
  • 未执行真机采集,未触发采购。

推送阻塞:

  • 本地 main 在 #173 之前已有尚未推送的无关提交 21b38c4(#172)。
  • 为避免代替另一工单发布无关改动,暂未执行会同时推送 #172 和 #173 的 git push。
  • 无长期 Wiki 文档影响,按工单方案跳过 Wiki 更新和同步。
## 实施进度(推送前阻塞) 已完成: - 当前 Admin 规则 ID 3 已通过安全表单加入颜色别名“组合”;数据库回读确认别名为 6 项。 - 服务端内置 v2 模板默认加入“组合”。 - Android Agent 生产代码未修改;新增规则驱动解析回归测试,覆盖“组合”主规格与“尺码”并存。 - go test ./app/goauto/rulecontract ./app/goauto/task 通过。 - Android testDebugUnitTest:233 tests,0 failures,0 errors。 - 本地提交:f30be44 fix(collection): recognize combination spec heading (#173)。 - 未执行真机采集,未触发采购。 推送阻塞: - 本地 main 在 #173 之前已有尚未推送的无关提交 21b38c4(#172)。 - 为避免代替另一工单发布无关改动,暂未执行会同时推送 #172 和 #173 的 git push。 - 无长期 Wiki 文档影响,按工单方案跳过 Wiki 更新和同步。
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/goauto#173