# 业务交接:已有订单更新与旅客名单 ## 业务目标与触发 目标:把已有 ERP 订单的房间、备注、组合修改、旅客导入或旅客行修正整理为 update_order task,并在保存后回查 ERP。 触发:修改 TWN/房间、追加备注、修改 xiadanbeizhu、补充旅客名单、修正旅客行、把附件导入已有订单。没有已有 identifier 时不得进入更新脚本。 ## Skill 标准化 使用 skills/erp-coordinator 和 skills/erp-update-order。Skill 必须保留 identifier,使用 updatePlan.actions 区分 set、delta、append、traveler_upsert;价格/人数跨路由仍是 optional/unverified。Excel/CSV 只进 attachments 路径,Skill/agent 不读取、复制或改写工作簿行。 ## Task JSON operation=update_order;task 必须有 schemaVersion=erp-task-v1、非空 identifier、updatePlan.actions 数组、attachments 和 originalText。旅客 fixture 不包含 travelers 行数据,解析、行数校验、导入和 PII 脱敏由脚本层负责。 示例:skills/erp-update-order/tests/fixtures/update-room-remark.json 和 update-traveler-attachment.json。 ## 脚本与工具 node scripts/validate_erp_task.js --task --json node scripts/run_update_order.js --task --mode dry-run --json 后续进入 update parser、traveler-list parser/import、route updateOrder、dispatcher duplicate fingerprint、registry 和 ERP re-query。备注字段必须保持 xiadanbeizhu 语义。 ## 结果 dry_run 展示 updatePlan 和计划路由;completed 只有在 ERP 回查确认后才能回复;blocked/invalid_task 表示编号、字段、附件或安全门禁问题;execution_uncertain 不能盲目重复;旅客导入失败不能触发无关字段重保存。 ## 阻塞与恢复 缺 identifier、更新目标不清、delta 基准未知、附件行数不匹配、重复 fingerprint、旅客 import 未验证、session/锁失败都阻塞。相同 update 不得静默重复;如已确认保存但交付失败,走相应 recovery,不覆盖订单。 ## 测试与证据 - Skill quick_validate:skills/erp-update-order。 - 内容/行为测试:tools/tests/erp_update_order_skill_content.test.js、erp_update_order_skill_behavior.test.js。 - room/remark 和 traveler attachment fixture dry-run 通过;未读取实际附件、未真实保存。 - 既有 update parser、traveler import、route browser-operation 测试和 npm test 是回归门槛。 ## 风险 编号丢失、 broad overwrite、重复更新、旅客 PII 泄露、Excel 隐藏行/日期格式、HTTP 200 假成功、price/pax 未验证是主要风险。缓解:identifier 强制、结构化 actions、附件路径隔离、parser 行数验证、审计脱敏、保存后回查。 ## 负责人 Skill 规则负责人维护自然语言到 actions 的映射;脚本负责人维护 parser/import/update handler;ERP 运行负责人负责真实 session 和回查授权。交接日期:2026-07-12。 ## 下一步 继续补齐 price/pax 的路由验证矩阵;任何真实旅客导入先使用 dry-run 检查 visible rows、hidden rows、日期和 adult count,再单独授权 execute。