Files
Wyndham-RSVN-0918/docs/project/requirements/C03-v2-parser-minimal-modification-list-v1.md
T
鲨鱼辣椒 31849411a8
verify / booking-verify (push) Has been cancelled
建立5178独立项目基线
2026-09-08 15:03:45 +08:00

5.0 KiB
Raw Blame History

C03-v2 / 程序 Parser 最小修改清单 v1

项 内容
状态 DRAFT handoff;尚未实施
目标任务 019fe9ab-8674-79c0-aa8b-582f6a3a5abc
目标 将既有确定性 Parser artifact 无损适配到唯一长期契约booking-layer3-contracts-v2的当前DRAFT工作版本
边界 不修改 QBD 业务规则,不调用 Agent,不接数据库或下游

1. 最小代码改动

  1. 新增独立纯 adapter,例如 QbdLayer3V2ParserAdapter;不要原地扩大 BookingContracts、RecoveryPatchSet 或旧 EffectiveFactView。
  2. Adapter 输入只使用:
    • 系统提供的 Current message identity;
    • 单个 Current attachment identity/hash/media type;
    • 本次 Parser run identity;
    • 既有 QbdDeterministicWorkbookParser.ParseResult、ParserObservationSet、facts、issues 和 evidence。
  3. 每个 Current attachment 输出一个 ParserResultEnvelopeV2;无 Current attachment 时结果列表为空,但上层仍必须继续调用 message-level Parsing Agent。
  4. Parser 外壳必须显式给出 COMPLETE / PARTIAL / FAILED / NOT_APPLICABLE / AMBIGUOUS。现有状态无法一一映射时 fail-closed,并保留原 issue;不得把失败包装成空的 COMPLETE。
  5. 外壳回显 contract、semantic catalog、evidence schema、ID algorithm、parser、profile 和 rule bundle 版本;Agent版本使用显式 not-run。

2. 唯一公共 core 映射

Parser 必须直接生成 Layer3ContributionCoreV2,不得建立 Parser 私有 v2 字段字典。

既有 Parser 内容 v2 目标
row unit / parsed fact stable identity TargetV2.target_id,复用稳定来源身份
Tour Code target group_code + GROUP_CODE fact
FieldObservation raw/normalized/status FactContributionV2 raw/normalized/status
source row/segment/item hierarchy 稳定 fact_path
CURRENT/BEFORE/AFTER/MIXED material_state 原样映射
H/J 等动作原文 target-scoped ActionSignalV2;仅为材料 signal
row/cell/span/formatting evidence 顶层 EvidenceRefV2 registry + ID refs
parser issue/review gate IssueV2,保留 unresolved/ambiguity/conflict
Parser artifact/run ProducerProvenanceV2(PARSER_EXTRACTION)

所有贡献必须引用已登记 target/evidence;同 target 多 segment/room 使用不同 fact_path,不能合并成一个值或误报冲突。

3. QBD 必须保持的现有规则

  • 只处理合法 Current 有色业务行;非本次有色历史行不进入本次 target。
  • 划线字符支持 BEFORE,未划线字符支持 AFTER;保留单元格默认字体继承和 run 覆盖后的 formatting evidence。
  • 只有 BEFORE、没有有效 AFTER 时保留 BEFORE,并把 AFTER/当前结果设为 unresolved/review;不得产生 Cancel signal。
  • Cancel signal 只能来自 Current 明确 CANCEL、CANCEL BOOKING、CXL 或等价取消语义。
  • 同一 Current Excel 的 New、AMD、Cancel、AMD Allotment 逐行原样保留;邮件级动作不属于 Parser。
  • K 列在选中业务行有内容时,整格原文映射为 DETAIL_RAW;2300 THB 不得映射为 SOURCE_PRICE。
  • QBD F 列继续完全忽略;不得输出 Rate Code。
  • Parser 保留确定性住期、来源房型、数量、来源价格与 missing/unresolved 状态;不输出 FIT/GROUP、GRPA1 或最终事件。

4. Allotment 边界

Parser 只交付附件侧材料:

  • rows 135–141 的 7 个稳定 actual targets、group code、AMD ALLOTMENT 原始 signal、无划线 formatting 与其他确定性事实;
  • rows 118、121 的两个独立 Update targets、AMD BOOKING、完整 BEFORE/AFTER;
  • rows 135–138 的 K=2300 THB 原文,rows 139–141 不制造缺失问题。

Parser 不读取 Current 正文,不生成 source LTQ260812、DEDUCT、actual New 解释或 source→actual relationship;这些属于 Parsing Agent 对正文与 Parser facts 的组合解释。

5. 最小测试清单

  • Adapter 输出可以反序列化为 ParserResultEnvelopeV2,且 core 类型与 Agent 完全相同。
  • message/attachment/run/result/target/fact/evidence ID 稳定且引用完整。
  • 现有 QBD Parser focused tests继续通过;adapter测试不得改变任何现有业务期望。
  • rows 118/121 保留 BEFORE/AFTER,rows 135–141 保留7个独立targets。
  • K 2300 THB 只产生 DETAIL_RAW,不产生 SOURCE_PRICE。
  • 只有strike/no AFTER不产生Cancel;明确CXL才产生Cancel signal。
  • 输出中不存在 event_type、booking_type、fit_group、rate_code、任务卡、库存或PMS字段。

6. 明确不做

  • 不改 Parser 选行、日期、富文本、数量或价格算法。
  • 不读取 Current/History 正文,不读取 History附件。
  • 不调用真实 Agent,不实现 Layer 3 merger。
  • 不把旧 action_hint、booking_type 或 rate_hint 复制进 v2 core。
  • 不修改 Parsing Agent Prompt/Skill/reference。

参考验收 fixture:server/src/test/resources/booking/layer3/v2/qbd/;正式接入前仍需单独的 runtime Change Request。