Browse Source

docs: 统一精准查询单号开放格式规则

jackson 1 week ago
parent
commit
94e61452d3

+ 80 - 0
docs/superpowers/specs/2026-07-14-mcp-open-number-format-guidance-design.md

@@ -0,0 +1,80 @@
+# MCP 精准订单开放单号格式引导设计
+
+## 背景
+
+`query_order_exact` 通过字段说明和示例引导 AI 选择精准查询参数。现有说明虽然要求
+单号类型不明确时先追问,但部分字段示例或说明仍可能让 AI 把 `USC`、`PC`、`SO`
+等前缀误当成固定格式,并据此猜测号码类型。
+
+实际业务中,订单号、客户参考号、快递单号、排舱单号、柜号、SO 号和
+Shipment ID 都应视为开放格式。用户明确指定业务类型后,工具按对应字段原值精准
+查询;格式、前缀、长度和字符组合不参与字段选择。
+
+## 目标
+
+- 所有单号只按用户明确指定的业务类型选择查询字段。
+- 明确所有单号格式开放,禁止根据前缀、长度、字符组合或示例猜测类型。
+- 保留含糊“单号”先追问、无结果不跨字段重试的现有规则。
+- 保持 MCP 参数、PHP 查询、数据库字段和权限逻辑不变。
+
+## 适用字段
+
+统一规则覆盖以下单值字段及其现有批量字段:
+
+- `order_number` / `order_numbers`
+- `reference_number` / `reference_numbers`
+- `tracking_number` / `tracking_numbers`
+- `outbound_number` / `outbound_numbers`
+- `container_code` / `container_codes`
+- `so_number` / `so_numbers`
+- `shipment_id`
+
+`shipment_id` 当前没有批量字段,本次不新增。
+
+## 方案
+
+### 工具级规则
+
+`query_order_exact` 总说明新增统一规则:所有单号格式均为开放格式,只能根据用户
+明确说出的业务类型选择字段,不得根据号码的前缀、长度、字符组合或示例猜测。
+
+### 字段说明
+
+- 每个单值字段说明其业务含义,并要求用户明确指定该类型时使用。
+- 批量字段继续表达“多个同类号码使用数组”,不声明固定格式。
+- `outbound_number` 保留“排舱单号、不是海外仓出库单号”的业务区分,删除
+  “以 `PC` 开头”的规则。
+- `so_number` 说明格式不固定,只有用户明确说“SO号”时使用。
+
+### 示例
+
+- 示例只展示参数类型和调用形式,不代表格式规则。
+- 排舱单号可继续使用 `PC...` 作为普通示例,但说明和测试不得把 `PC` 设为必要
+  条件。
+- SO 号单值示例使用纯数字 `97964454`;批量示例同时包含 `97964454` 和
+  `OOLU12345678`,体现格式多样性。
+- 其他现有示例可以保留,但不得用于推断或校验格式。
+
+## 查询与错误处理
+
+- 用户明确类型:直接使用对应字段精准查询。
+- 用户只说“单号”或类型含糊:先追问,不调用工具猜测。
+- 查询无结果:原样返回,不改用其他单号字段重试。
+- Gateway 不新增正则、前缀、长度或字符集校验;现有非空、字符串长度和批量数量
+  边界保持不变。
+
+## 测试
+
+元数据回归测试需要验证:
+
+1. 工具总说明包含“所有单号格式开放”和禁止按前缀、长度、字符组合、示例猜测。
+2. 排舱单号说明不再声明 `PC` 前缀规则,但仍使用正确业务名称并区分海外仓出库
+   单号。
+3. SO 号说明强调格式不固定和用户明确指定,单值/批量示例覆盖不同格式。
+4. 所有单号字段名、Schema 类型和调用转发行为保持不变。
+
+## 文档覆盖关系
+
+本文覆盖 `2026-07-14-mcp-outbound-number-label-design.md` 中关于排舱单号必须以
+`PC` 开头、示例必须全部使用 `PC` 前缀的要求。旧设计中“业务名称统一为排舱单号、
+不是海外仓出库单号、字段名和查询链不变”的结论继续有效。

+ 5 - 0
docs/superpowers/specs/2026-07-14-mcp-outbound-number-label-design.md

@@ -1,5 +1,10 @@
 # MCP 排舱单号字段文案统一设计
 
+> **部分废止:** 本文关于排舱单号“以 `PC` 开头”以及示例必须使用 `PC`
+> 前缀的要求,已被
+> `2026-07-14-mcp-open-number-format-guidance-design.md` 覆盖。保留“业务名称统一为
+> 排舱单号、不是海外仓出库单号、字段名和查询链不变”的结论。
+
 ## 背景
 
 `query_order_exact` 使用 `outbound_number` 和 `outbound_numbers` 查询