修复匹配的问题

This commit is contained in:
andy
2026-09-19 11:06:02 +08:00
parent 6eeaee07d4
commit ea9c4b34c6
23 changed files with 470 additions and 31 deletions

View File

@@ -0,0 +1,58 @@
# 独立团产品名称格式匹配修复
## 范围与授权
- 用户在完成截图、日志及本地复现排查后同意:保留原始名称,比较时输入与 ERP 候选使用相同归一化,选中后使用 ERP 原名执行。
- 同时修复产品匹配前置失败后继续产生联动、客户恢复和必填字段连带报错的问题。
- 本地源码、测试、版本化发布物与任务记录属于本任务;不执行真实 ERP 写入、部署、重启、插件重载、提交或推送。
## Worktree 检查
- Branch:`main`。
- Worktree:`/Users/andy/IdeaProjects/LWLT-AIBOT`。
- Base:`6eeaee07d4fdeef3d29dd7cf46ac33929699eb8b`;仅一个 worktree。
- 既有未跟踪 `.idea/` 与 `dist/ltjt-order-assistant-0.5.187.zip`;保留 `.idea/`,在发布物处理前核验 ZIP 与当前清单及源码的关系,不覆盖未知内容。
- 源码范围无既有改动;Overlap:Clear(旧 ZIP 的发布归属待哈希核验)。
- Feature 模式,仅维护本任务项目记忆;按用户项目约束不启用子 Agent。
## 已有诊断证据
- 用户提供的失败日志:Program `v1.0.13`,单个下单;客户精确匹配 1 条,产品响应 166 行但精确/包含匹配均为 0;保存未尝试。
- 产品联动请求数及表单赋值数均为 0,后续错误由未执行阶段继续校验引出。
- 本地合成复现证明括号、内部空白差异可导致相同报错;线上候选原始文本未提供,不能将具体字符差异宣称为已取得原始数据证明。
## Project Context Loaded / Planning Gate
- 已按入口读取 task、project-positioning、current-state、decision-index、system-overview、doc-update-policy、业务登记、单个/批量下单业务页、newbooking Skill/字段说明、orders_add mapping/Schema、业务规则、成功标准和证据索引;本会话前序只读诊断已完成大部分上下文加载。
- 定位:解析器提供业务事实,插件负责唯一 ERP 候选与原生联动。遵守 ARCH-001、SAFETY-001、RELEASE-001;无业务范围/架构冲突。
- canonical current-state 停留在 09-09 集成快照;当前版本以源码、清单与 09-17 任务记录为准。没有其他本地 worktree,也没有重叠源码改动。
- 既有 ZIP 已核验清单 SHA-256、20 个文件的集合与每个字节均等于当前源码,确认其为已登记的 0.5.187 发布物;可按治理规则保留原字节归档。`.idea/` 原样保留。
- Gate:Passed;Feature 模式,变更只写本任务记录及业务源/实现/契约/发布物,不提升 canonical 项目记忆。
## 实施计划
1. Program named reference 的 `keyword` 保留输入原文(仅去首尾空白);`name` 保持既有格式归一化及登记别名,避免改变其他执行器已有契约。
2. 单个下单产品对输入与 ERP 候选统一 NFKC 与空白比较,保留其他标点及业务文字。归一后精确优先、唯一包含兜底;任何歧义阻断,使用选中行的 ERP 原名联动。
3. 初始查询/校验有 blocker 时直接返回只读预检结果,后续依赖阶段标记跳过;零/多产品匹配使用明确中文错误且保留候选统计。
4. 增加真实公共预检入口的合成回归与解析器原文保留测试;同步插件 0.5.188、Program v1.0.14、mapping、业务说明、平台最低版本、清单和 ZIP。Skill 与运营输入契约不变,不重发无改动交付物。
5. 执行五项必需检查、逐文件发布物核验和最终 diff review;既有 `.idea/` 引起的根目录检查差异用完整源码临时快照验证并如实记录。
## 实施与验证
- 已完成:Program 的原文 keyword 保留;单个下单的双侧 NFKC/空白归一比较及 ERP 原名联动;归一后碰撞仍阻断;初始失败返回清晰原因并跳过后续依赖校验。
- 新增 8 项真实公共预检入口的合成测试,覆盖双向括号/空白、原名联动及拦截载荷、精确/包含优先级、归一碰撞、零/多候选、保留标点与限定词、查询/客户失败、原生联动不完整。Program 测试新增 keyword 原文保留及 DBL 解析断言。
- 当前插件/平台最低版本 `0.5.188`,Program `v1.0.14`;输入模板、五个 Skill 和 Schema 结构保持既有契约,无迁移。同步业务入口、mapping、发布门槛、版本断言、ZIP 和清单。
- 五项必需检查在当前源码和交付物的完整临时快照通过:`check:repo` 10/10、`check`、控制面 273/273、legacy 431/431、`build`。排除既有未跟踪 `.idea/` 和秘密配置,不读取或复制 `.env`;依赖沿用 node_modules。`.idea/` 原样保留。
- 首次 legacy 发现两项遗漏的旧版本正则断言及两项沙箱回环监听限制;已同步断言,并允许测试本地模拟 HTTP 端口后完整重跑通过,未跳过测试。
- 新 ZIP 全部 20 个文件逐字节与源码一致,清单哈希有效;既有 0.5.187 ZIP 在确认与旧清单及源码完全一致后按原字节归档,未覆盖未知内容。新旧发布说明均明确当前/历史边界。
- 主线程完成最终 diff 与调用方兼容核对,未启用子 Agent;任务只修改本任务项目记忆,没有提升 canonical 文件。`git diff --check` 通过。
- 验证证据:[本地合成验证摘要](../../../archive/evidence/2026-09-19/product-name-normalization-01a0b77e/README.md)。
## 交付与后续
- 源码与版本化发布物已就绪,未提交或推送。更新服务端可启用 Program v1.0.14 的原文关键词保留;产品格式匹配和前置失败提示需更新插件至 0.5.188,并同步平台最低版本、刷新 ERP 页面。
- 未进行部署、重启、插件重载或真实 ERP 保存。本次测试证明格式兼容与唯一候选门禁;线上实际原名的字符级确认及新版本 ERP 验收仍待部署方执行。
## Promotion Candidates
- 下一次 Integration 可将“单个下单产品双侧格式归一、ERP 原名联动、初始失败停止依赖校验及 Program keyword 保留原文”纳入 current-state / business-rules。依据为本任务合成回归和不可变证据;生产验收继续标记待验证,不扩大业务能力。