采购规格探测别名规则化并修正 Agent 目标规格展示 #174

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

原始需求摘要

  • 来源:用户于 2026-08-31 反馈 CG-41 在 Admin 能看到目标规格,但 Agent 看不到,并要求按分析建议“建工单,做”。
  • 代码与数据事实:CG-41 的目标规格为“玫紅色開檔連體衣 / 均碼”,规格探测仅返回尺码,颜色缺失,最终 PURCHASE_SPEC_NOT_MATCHED;Agent 历史接口只返回 mappedColor/mappedSize,Android 又将其标为“目标规格”。
  • 用户授权范围:代码、自动测试、当前 Admin 采购规则配置;不做真机采购、不重试 CG-41、不创建订单。

目标

  1. 将采购规格探测的颜色/尺码标题别名固化进采购规则快照并由 Agent 执行,兼容主规格标题“组合”。
  2. Agent 采购历史明确区分原始目标规格和已决策执行规格,即使映射失败仍能查看目标。
  3. 保持选择规格只使用服务端精确映射值,禁止使用目标规格猜测点击。

非目标

  • 不执行 CG-41 或任何真机采购。
  • 不修改创建订单、地址、支付、安全能力或不可逆门禁。
  • 不扩展三维规格模型。
  • 不改变数据库结构和任务状态机。

前置依赖与并行性

  • 复用现有 purchase_rule 单例、不可变任务规则快照、purchase.spec-probe.v1 和 PDD 采集器。
  • 与 #173 的“组合”采集证据一致,但不依赖其提交才能实现采购规则字段。
  • 当前会话未提供 Gitea MCP,按仓库规则回退 Gitea API;凭据仅从 gitea.env 读取。
  • 工作区存在 #172、#173 的并行提交和无关文档改动,必须隔离本工单文件与提交。

方案

采购规则

  • schema v1 的 probeSpecs 动作新增可选 dimensionAliases,限定 color/size 两组,每组 1~20 项、每项不超过 30 个 Unicode 字符、无首尾空白和重复。
  • dimensionAliases 仅允许出现在 probeSpecs;正式创建订单等动作继续禁止参数化。
  • 默认正式规则和当前 Admin 采购规则加入“组合”颜色别名。
  • Android 解析并使用 probeSpecs.dimensionAliases 创建只读规格探测配置;旧快照缺省时使用安全内置默认值。
  • 规格选择仍只使用 mappedColor/mappedSize。

Agent 展示

  • Agent 采购历史列表/详情增加 targetColor/targetSize。
  • Android 网络模型与本地摘要缓存保存目标字段。
  • 列表和详情分别显示“目标规格”和“执行规格”;失败映射时执行规格显示“—”。

设计证据

复用现有 Agent 采购任务卡片和详情文本布局,仅增加目标/执行两行并修正字段语义;正常、映射缺失和失败状态均使用现有卡片、状态色和错误区,不改变导航、权限或操作按钮。属于既有界面缺陷修复,不新建完整原型。

验收标准

  • 服务端与 Android 同时严格接受合法 probeSpecs.dimensionAliases,并拒绝未知位置、空数组、重复、超长和未知字段。
  • 默认及当前采购规则的颜色别名包含“组合”。
  • 采购探测使用规则别名识别“组合”为 color,并保留尺码维度。
  • Agent 历史 API 返回 targetColor/targetSize 与 mappedColor/mappedSize。
  • CG-41 类映射失败数据在 Agent 显示目标规格,执行规格为空;不得拿目标规格执行点击。
  • 服务端、Android 自动测试和 APK 构建通过。
  • 不做真机采购或订单行为。

风险

  • 采购规则可影响正式任务,但新增字段仅控制只读规格标题识别;订单、地址与支付动作权限不变。
  • 旧任务继续执行自身快照;缺省别名使用兼容默认值。
  • “组合”同时作为第三独立维度时仍不支持,需另建工单。

文档影响

有长期契约影响:更新 Android-Agent-API-Contract 的采购规则与 Agent 历史字段,以及 Business-Rules-and-Glossary 的采购规格探测规则来源。必须 Wiki-first 在线更新并回读 revision,再同步本地镜像。

## 原始需求摘要 - 来源:用户于 2026-08-31 反馈 CG-41 在 Admin 能看到目标规格,但 Agent 看不到,并要求按分析建议“建工单,做”。 - 代码与数据事实:CG-41 的目标规格为“玫紅色開檔連體衣 / 均碼”,规格探测仅返回尺码,颜色缺失,最终 PURCHASE_SPEC_NOT_MATCHED;Agent 历史接口只返回 mappedColor/mappedSize,Android 又将其标为“目标规格”。 - 用户授权范围:代码、自动测试、当前 Admin 采购规则配置;不做真机采购、不重试 CG-41、不创建订单。 ## 目标 1. 将采购规格探测的颜色/尺码标题别名固化进采购规则快照并由 Agent 执行,兼容主规格标题“组合”。 2. Agent 采购历史明确区分原始目标规格和已决策执行规格,即使映射失败仍能查看目标。 3. 保持选择规格只使用服务端精确映射值,禁止使用目标规格猜测点击。 ## 非目标 - 不执行 CG-41 或任何真机采购。 - 不修改创建订单、地址、支付、安全能力或不可逆门禁。 - 不扩展三维规格模型。 - 不改变数据库结构和任务状态机。 ## 前置依赖与并行性 - 复用现有 purchase_rule 单例、不可变任务规则快照、purchase.spec-probe.v1 和 PDD 采集器。 - 与 #173 的“组合”采集证据一致,但不依赖其提交才能实现采购规则字段。 - 当前会话未提供 Gitea MCP,按仓库规则回退 Gitea API;凭据仅从 gitea.env 读取。 - 工作区存在 #172、#173 的并行提交和无关文档改动,必须隔离本工单文件与提交。 ## 方案 ### 采购规则 - schema v1 的 probeSpecs 动作新增可选 dimensionAliases,限定 color/size 两组,每组 1~20 项、每项不超过 30 个 Unicode 字符、无首尾空白和重复。 - dimensionAliases 仅允许出现在 probeSpecs;正式创建订单等动作继续禁止参数化。 - 默认正式规则和当前 Admin 采购规则加入“组合”颜色别名。 - Android 解析并使用 probeSpecs.dimensionAliases 创建只读规格探测配置;旧快照缺省时使用安全内置默认值。 - 规格选择仍只使用 mappedColor/mappedSize。 ### Agent 展示 - Agent 采购历史列表/详情增加 targetColor/targetSize。 - Android 网络模型与本地摘要缓存保存目标字段。 - 列表和详情分别显示“目标规格”和“执行规格”;失败映射时执行规格显示“—”。 ## 设计证据 复用现有 Agent 采购任务卡片和详情文本布局,仅增加目标/执行两行并修正字段语义;正常、映射缺失和失败状态均使用现有卡片、状态色和错误区,不改变导航、权限或操作按钮。属于既有界面缺陷修复,不新建完整原型。 ## 验收标准 - 服务端与 Android 同时严格接受合法 probeSpecs.dimensionAliases,并拒绝未知位置、空数组、重复、超长和未知字段。 - 默认及当前采购规则的颜色别名包含“组合”。 - 采购探测使用规则别名识别“组合”为 color,并保留尺码维度。 - Agent 历史 API 返回 targetColor/targetSize 与 mappedColor/mappedSize。 - CG-41 类映射失败数据在 Agent 显示目标规格,执行规格为空;不得拿目标规格执行点击。 - 服务端、Android 自动测试和 APK 构建通过。 - 不做真机采购或订单行为。 ## 风险 - 采购规则可影响正式任务,但新增字段仅控制只读规格标题识别;订单、地址与支付动作权限不变。 - 旧任务继续执行自身快照;缺省别名使用兼容默认值。 - “组合”同时作为第三独立维度时仍不支持,需另建工单。 ## 文档影响 有长期契约影响:更新 Android-Agent-API-Contract 的采购规则与 Agent 历史字段,以及 Business-Rules-and-Glossary 的采购规格探测规则来源。必须 Wiki-first 在线更新并回读 revision,再同步本地镜像。
Author
Owner

实施完成,待验收

实现:

  • probeSpecs.dimensionAliases 已支持服务端严格校验和 Android 解析,仅用于只读规格维度探测;selectSpec 仍只执行服务端下发的精确映射规格。
  • 默认与当前 Admin 采购规则的颜色标题别名已包含“组合”,数据库回读确认规则 ID 1 已生效。
  • Agent 采购历史 API、缓存和界面分开显示目标规格 targetColor/targetSize 与执行规格 mappedColor/mappedSize。
  • 旧规则快照缺省该字段时继续使用 Agent 内置兼容别名。

验证:

  • go test ./app/goauto/...:通过。
  • android\gradlew.bat testDebugUnitTest:BUILD SUCCESSFUL。
  • android\gradlew.bat assembleDebug:BUILD SUCCESSFUL。
  • Wiki sync 与 sync --check:通过。
  • Wiki revisions:API 8b0d54fcaa649f9b5b4eebabba8f02ff6128a431;业务规则 61b266de8fe17554a736e9a084b15c7f9eb777c2。

交付:

  • 提交并推送:4343ab5。
  • APK SHA-256:3CFEBD53CC57A72B8C557354C3D3FFF9A2A9C45801F16AC1D5FB3C43F60600E6。
  • 安装前设备 5 活动采集/采购任务均为 0;CG41 保持 failed / PURCHASE_SPEC_NOT_MATCHED,未重试。
  • ADB 覆盖安装到设备 3B65BD02H7F00000 成功,版本 0.9.35 (versionCode 48)。

未执行真机采购、创建订单或支付。工单保持开启,等待用户验收。

## 实施完成,待验收 实现: - `probeSpecs.dimensionAliases` 已支持服务端严格校验和 Android 解析,仅用于只读规格维度探测;`selectSpec` 仍只执行服务端下发的精确映射规格。 - 默认与当前 Admin 采购规则的颜色标题别名已包含“组合”,数据库回读确认规则 ID 1 已生效。 - Agent 采购历史 API、缓存和界面分开显示目标规格 `targetColor/targetSize` 与执行规格 `mappedColor/mappedSize`。 - 旧规则快照缺省该字段时继续使用 Agent 内置兼容别名。 验证: - `go test ./app/goauto/...`:通过。 - `android\gradlew.bat testDebugUnitTest`:BUILD SUCCESSFUL。 - `android\gradlew.bat assembleDebug`:BUILD SUCCESSFUL。 - Wiki `sync` 与 `sync --check`:通过。 - Wiki revisions:API `8b0d54fcaa649f9b5b4eebabba8f02ff6128a431`;业务规则 `61b266de8fe17554a736e9a084b15c7f9eb777c2`。 交付: - 提交并推送:`4343ab5`。 - APK SHA-256:`3CFEBD53CC57A72B8C557354C3D3FFF9A2A9C45801F16AC1D5FB3C43F60600E6`。 - 安装前设备 5 活动采集/采购任务均为 0;CG41 保持 `failed / PURCHASE_SPEC_NOT_MATCHED`,未重试。 - ADB 覆盖安装到设备 `3B65BD02H7F00000` 成功,版本 `0.9.35 (versionCode 48)`。 未执行真机采购、创建订单或支付。工单保持开启,等待用户验收。
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/goauto#174