Files
th-hotel-simple/docs/import/20260712/前端字段控件修改说明_给信息系统小伙伴Codex_2026-07-12.md
2026-07-13 10:15:19 +08:00

20 KiB
Raw Permalink Blame History

前端字段控件修改说明

给信息系统 / Adapter / Frontend Codex 的实施任务

日期2026-07-12
适用范围:任务卡展示、人工复核编辑、字段校验和同卡解阻
不适用范围Prompt、Skill、业务 references、MCP Server、Gateway、公开 JSON 业务规则重设计


0. 先读这些文件

请先从当前工作区根目录读取以下文件,再开始修改:

  1. prompt_skill_architecture_optimization_2026-07-12/README.md
  2. prompt_skill_architecture_optimization_2026-07-12/01_PLAN/compatibility_invariants.md
  3. prompt_skill_architecture_optimization_2026-07-12/03_VALIDATION/draft_validation_2026-07-12.md
  4. outputs/黄哥codex读 2/README_先读_交给Codex.md
  5. outputs/黄哥codex读 2/04_Adapter_Frontend_保持P0.1_40路由/任务卡前端字段变更与路由说明_3.0_to_current.md
  6. outputs/黄哥codex读 2/04_Adapter_Frontend_保持P0.1_40路由/任务卡前端字段变更说明_3.0_to_当前版_2026-07-11.xlsx
  7. prompt_skill_architecture_optimization_2026-07-12/02_DRAFT/working/skills/booking-desk-event/references/00-output-contract.md
  8. prompt_skill_architecture_optimization_2026-07-12/02_DRAFT/working/skills/booking-desk-event/references/90-manual-review.md
  9. prompt_skill_architecture_optimization_2026-07-12/02_DRAFT/working/skills/booking-desk-event/references/16-trace-notes.md
  10. prompt_skill_architecture_optimization_2026-07-12/02_DRAFT/working/skills/booking-desk-event/references/31-allotment-control-block.md
  11. prompt_skill_architecture_optimization_2026-07-12/02_DRAFT/working/skills/booking-desk-event/references/50-room-type-mapping.md
  12. prompt_skill_architecture_optimization_2026-07-12/02_DRAFT/working/skills/booking-desk-event/references/51-rate-code.md
  13. prompt_skill_architecture_optimization_2026-07-12/02_DRAFT/working/skills/booking-desk-event/references/52-fix-charge.md

旧文件 任务卡前端展示字段表 3.0(1).xlsx 只作为历史基线,不得作为当前字段、路由和枚举的唯一来源。

如果上述交接文件或实际 Adapter/Frontend 源码不在当前工作区,请停止代码修改并报告缺失路径;不要根据旧 Excel 猜测当前字段。


1. 任务目标

把任务卡前端从旧版“是否输入 / 是否下拉”字段说明,升级为当前项目可执行的控件注册和人工复核编辑机制:

Agent final result
  → adapter 按 event 派生任务卡
  → manual_review.missing_fields[] 指定可编辑字段
  → 前端展示对应控件
  → 用户修改
  → review_resolution.field_overrides[]
  → 重新校验依赖字段
  → Preflight

核心要求:

  • 原 Agent payload 不可变。
  • 用户覆盖值不得直接写回 Agent 原始 JSON。
  • 不因为前端编辑而改变 event_type、业务 task type、task subtype 或关系语义。
  • 不创建第二张 linked normal task。
  • 只有同一业务卡的 review_statuspending 进入 resolved 后,才允许继续 Preflight。
  • 邮件原文、附件、raw evidence、source ID、source event index 和关系索引只读。

当前项目的最新 Prompt/Skill 架构增量仍处于草案、未进入 04_RELEASE 状态;本任务只修改信息系统展示/编辑层,不把草案直接宣称为生产发布。


2. 修改范围

允许修改

  • Adapter 的字段注册表 / 字段映射层。
  • 任务卡展示组件和人工复核组件。
  • 控件类型、编辑权限和字段校验逻辑。
  • review_status / review_resolution 的前端交互。
  • Adapter/Frontend 单元测试、契约测试和验收用例。
  • 当前字段交接 MD/Excel 的控件列和实现说明。

不得修改

  • prompts/skills/booking-desk-event Skill 业务裁决逻辑。
  • 公开业务 JSON 根结构和既有五字段业务根。
  • S10、S99、infrastructure_input_error 结构。
  • 40 条 Adapter 路由数量和既有 task type/subtype 语义。
  • MCP 工具名、MCP payload mapping、一次提交生命周期。
  • source_event_index 的含义。
  • Parent Group / Allotment 业务本体。
  • 不得在前端新增 NoteAllotment Maintenance 或旧 Parent Cancel Booking 当前路由。

如果实现过程中发现必须改变上述内容,请先报告为“契约变更”,不要在前端代码中自行绕过。


3. 前端控件类型

字段注册表至少应支持以下 control_type。名称可按现有代码风格调整,但语义必须保持一致:

control_type 用途
readonly Agent 结果、raw evidence、路由、关系和审计字段
text Group Code、Confirmation No.、备注、旧/新 Group Code
textarea 允许覆盖的业务备注;必须保留原始证据
number 房量、人数、PAX、结算价、附加费金额
date 入住日、离店日、服务日期、取消生效日期
lookup 可输入并检索当前系统目标对象的组合框
select 固定枚举或目录选择
multiselect 多部门、多标签、多项业务分类
structured_table before_after[]room_items[]fix_charge_items[]trace_items[]
workflow_state review_status、Resolve/重新校验等动作

字段注册表还应增加:

配置项 说明
edit_scope nevermanual_review_onlyworkflow_onlysystem_only
options_source 固定契约枚举、当前 PMS 目录、Rate 配置中心、无、待冻结
write_target review_resolution.field_overrides、系统状态、无
validation_rule 格式、必填、目录、依赖字段和 Preflight 前置校验
raw_readonly 是否必须保留原始值且禁止覆盖

示例:

{
  "field_pointer": "/extracted_fields/pms_room_type_code",
  "control_type": "select",
  "edit_scope": "manual_review_only",
  "options_source": "active_pms_room_type_catalog",
  "write_target": "review_resolution.field_overrides",
  "raw_readonly": true,
  "validation_rule": "catalog_value_exists_and_is_active"
}

4. 字段控件实施矩阵

4.1 目标、身份和 Group Code

字段 控件 编辑范围 实施要求
case_keys.group_code lookup manual_review_only 可输入并检索候选;校验目标存在、唯一和当前业务卡匹配
case_keys.confirmation_number lookuptext manual_review_only 不使用固定下拉;允许粘贴后执行格式/目标校验
case_keys.reservation_number lookuptext manual_review_only 与当前事件对象类型匹配后才能提交
Parent case_keys.block_code readonly never 必须与 Parent group_code 相等;禁止独立编辑
extracted_fields.old_group_code text manual_review_only 与新 Group Code 成对必填
extracted_fields.new_group_code text manual_review_only 必须表达 old → new 方向关系
extracted_fields.target_key 不再作为主控件 当前应优先使用通用 case_keys;旧字段只做兼容迁移

4.2 日期、房量和房型

字段 控件 编辑范围 实施要求
extracted_fields.arrival_date date manual_review_only 使用 YYYY-MM-DD;修改后重新校验离店日和晚数
extracted_fields.departure_date date manual_review_only 必须晚于入住日;保留原始日期证据
extracted_fields.nights readonly never 由入住日和离店日计算,不直接输入
extracted_fields.date_evidence.* readonly never hotel_date_rawtour_date_rawaction_date_rawsheet_month_year 只读
extracted_fields.room_quantity number manual_review_only 整数、非负/正数规则按现有业务字段执行
extracted_fields.child_room_items[] structured_table manual_review_only 每个 Child 的房型、房量和 PMS code 分列;禁止单行自由文本
extracted_fields.room_type_raw readonly never 原始房型文本不可被用户覆盖
extracted_fields.pms_room_type_code select manual_review_only 只能从当前有效 PMS 房型目录选择;禁止自由输入 code

Parent 原始房量汇总与 Child 房型/房量汇总可以因分配或房型重分配而不同。前端不得仅因数量不相等显示冲突、强制修改或自动创建人工复核。

4.3 业务路由和分类字段

以下字段是业务识别或 Adapter 路由判别字段,默认只读:

字段 控件 说明
event_type readonly 前端不允许 New / Update / Cancel 之间切换
booking_object_type readonly FIT、Group Block、Allotment / Control Block 由业务结果确定
cancel_object_type readonly 或同路由受控 select Cancel Booking 只接受 FIT/普通 GroupAllotment 整块取消属于 Cancel Allotment
cancel_scope readonly 或同路由受控 select 不使用自由文本;不得用前端选择跨到另一张任务卡
update_actions[] / 旧 update_subtypes[] readonly 标签 当前 Update 统一走 update_booking_amendment;动作由结果派生,不能用下拉改路由
voucher_subtype readonly lian_tai_credit_voucherPayment Evidence 分开,不跨卡选择
list_evidence_type readonly 或复核时受控 select 不允许通过它自行创建新任务类型
trace_subtype readonly trace_items[] 重新判断 extra_bed / general_request

如果 manual_review.missing_fields[] 明确指向同一业务卡的分类字段,才可以显示受控选择;选择结果不得自动改变 event_type 或 Adapter 路由,除非项目另行冻结了跨路由 resolution 契约。

4.4 Update 和 Before/After

extracted_fields.before_after[] 使用 structured_table

子字段 控件
field 当前支持字段的受控选择;不得任意输入路径
before 只读原值/证据值
after 按字段类型使用日期、数字、文字或目录选择
evidence 只读

如果 Update 类型和 subtype 已确定,但 before/after 不可靠,保留原 Update 卡并进入同卡人工复核;不能把它改成 Fallback也不能创建第二张卡。

4.5 Rate Code 和结算价

字段 控件 实施要求
extracted_fields.rate_code_result.rate_code 配置驱动 select/lookup 不得硬编码旧 3.0 的 20+ code 全集;从当前 Rate 配置中心加载
rate_code_raw readonly 原始价格/Rate marker 只读;路径未冻结时不要自行发明公开路径
settlement_price number 单独编辑;校验币种、精度、非负和业务依赖
manual_settlement_price_required readonly AI/规则派生,不让用户直接改成 true/false
manual_price_reason_code / price_evidence readonly 用于解释和审计,不是输入项

如果 Rate Code 无法唯一确定,用户应选择当前有效目录值或填写允许的手工结算价;不能让用户输入一个未经配置的任意 Rate Code。

4.6 Fix Charge

fix_charge_items[] 必须做成 structured_table,不能压成一行输入。

子字段 控件 当前边界
charge_type select 使用当前契约枚举,如 fixed_charge;不要继续使用旧表 additional_charge
pricing_mode select 使用当前契约 unit 等已冻结值;旧 unit_price 需迁移
amount / quantity / total_amount number 不把多个金额拼成文本;不得前端自行推导未经契约支持的总价
currency select 或配置值 以当前系统货币目录为准
unit_basis selecttext 若枚举未冻结,先只读或容错,不猜选项
raw_text / evidence_source readonly 保留原文和证据
requires_followup_tool / followup_tool_name readonly 前端不得自行调用工具
additional_operations[] readonly / pending badge 只展示待处理意图,不执行实际写入

4.7 Cancel

字段 控件 实施要求
cancel_object_type 默认 readonly Cancel Booking 只显示 FIT/GroupAllotment 使用独立 Cancel Allotment 卡
cancel_scope 默认 readonly 不允许自由文本;部分配额维护当前不支持
requested_cancel_effective_date date 只有 missing_fields[] 指定时启用
cancellation_note textarea 允许覆盖时必须保留原始邮件证据并记录 field override

4.8 Voucher、Payment 和 Invoice

字段 控件 实施要求
voucher_attachment / file_reference readonly 文件展示 不允许改写输入文件引用
voucher_subtype readonly Credit Voucher 与 Payment Evidence 分开路由
department_routing[] multiselect 或只读 当前路径仍需以实际 schema 为准;默认 Finance/pending 只展示,不执行确认
post_confirmation_intent readonly 只表示待确认后的意图,不表示已确认或已执行
Invoice 专属字段 默认 readonly 当前详细 item schema 尚未完全冻结,不要自造输入字段

4.9 Trace、Parent 和关系字段

字段 控件 实施要求
extracted_fields.trace_text readonly 保留完整原文,不允许直接编辑
trace_items[].category 固定枚举 select 仅在明确 pointer/权限允许时修正
trace_items[].text_raw readonly 原始补充信息不可改
trace_items[].service_date date 只有需要且 pointer 明确时编辑
trace_items[].pax number 缺失时可为空;不因缺失自动人工复核
trace_items[].notify_departments[] multiselect 已知时可选 FO/HSK不清楚时允许空数组
related_source_event_index readonly 单一关系索引,只用于本次结果内部关联
related_source_event_indices[] readonly Parent 或跨 Child Trace 的完整关系;禁止用户编辑索引
relationship_type / related_event_type readonly 关系类型不选择任务卡 subtype
requires_downstream_hard_validation readonly badge 只展示系统硬校验要求

完整 Parent split 的全部 Child 补充请求仍使用现有 Trace 卡,通过 related_source_event_indices[] 展示全部 Child不能只绑定 E1也不能新增一个 Trace 路由。

4.10 Rooming List 和 TA Recorder

字段 控件 实施要求
Rooming List target lookup 以通用 case_keys 为主;多个目标分开处理
list_evidence_type 默认只读 由证据识别,不允许任意切换卡型
TA Recorder group_code lookup / text 只有缺失且 pointer 明确时编辑
ta_recorder_status readonly / workflow_state 由信息系统后续状态更新,不是 AI 字段输入
source_rooming_list_task_id readonly 或隐藏 仅作 linked task 上下文

4.11 Manual Review 和系统字段

字段 控件 实施要求
manual_review.reason_code readonly badge 不能由用户随意改原因
manual_review.visible_reason readonly 只读说明
manual_review.blocking_points readonly list 只读说明
manual_review.conflicting_points readonly list 只读说明
manual_review.suggested_human_actions readonly list 可转成页面操作提示,但不能直接当字段输入
manual_review.evidence_to_check readonly list 引导查看证据
manual_review.known_fields readonly 不直接编辑对象文本
manual_review.missing_fields[] 内部 pointer 驱动控件,不作为普通输入框展示
review_status workflow_state pending → resolved;只能通过完成字段校验后 Resolve
review_resolution 系统生成、只读审计 保存 field overrides、用户和时间不允许页面直接覆盖历史记录

4.12 只读字段

以下字段不得提供普通编辑控件:

  • source_messagesource_message_id、邮件主题、发件人、接收时间。
  • message_events[].event_typeevent_rolecurrent_or_historysource_event_index
  • attachments[]file_references[]context_used、QBD sheet/row/highlight/raw evidence。
  • relevant_message_excerpttext_rawroom_type_raw、价格 raw marker。
  • unhandled_current_intents[] 的原文和可见说明。
  • S10、S99 和 infrastructure_input_error 的 route/status/error 字段。

5. 必须修正的旧 3.0 字段/枚举

请不要直接复制旧 Excel 的以下定义:

  1. Cancel Booking.cancel_object_type 不再包含 allotment_control_block;整块 Parent/Allotment 取消使用 Cancel Allotment
  2. Voucher Received.voucher_subtype 不再包含 bank_transfer_slip;银行/现金/交易回执使用 Payment Evidence
  3. Update Booking.extracted_fields.update_subtypes[] 的旧长下拉不再作为路由选择;当前 Update 统一为 update_booking_amendment,动作只展示为结果标签。
  4. room_type 不可作为自由修改后的唯一值;必须保留 raw并用 PMS 目录选择 pms_room_type_code
  5. Rate Code 不得硬编码旧表中的完整 code 列表。
  6. Trace Text 不得直接编辑原文。
  7. Fix Charge 的旧 additional_charge / unit_price 与当前 fixed_charge / unit 语义不一致,必须以当前契约和实际 schema 为准。
  8. target_keyparent_source_event_indexpost_confirm_action 是旧字段/旧命名,需迁移到当前 case_keysrelated_source_event_index(es)post_confirmation_intent
  9. 不得继续生成或路由 NoteAllotment MaintenanceCancel Booking + linked_parent_release_after_child_split

6. 必须通过的验收用例

至少增加或复用以下测试:

编号 场景 必须验证
UI-01 generic SUITE 房型 raw 只读PMS code 使用当前目录下拉;未选时保留 manual review
UI-02 入住/离店日期修改 日期控件有效;nights 自动重算;非法日期阻止 Resolve
UI-03 Rate Code 不读取旧硬编码全集;使用配置目录;手工价独立数字输入
UI-04 Fix Charge fixed_charge/unit 枚举正确;金额/数量为数字raw/evidence 只读
UI-05 Cancel 路由 Cancel Booking 不出现 AllotmentAllotment 使用 Cancel Allotment
UI-06 Voucher/Payment bank slip 不可从 Voucher 卡下拉选择Payment Evidence 单独显示
UI-07 Update 不允许用 update_subtypes 下拉切换业务卡型before/after 结构化展示
UI-08 Parent key Parent group_code=block_code;用户不能单独改 block_code
UI-09 Parent split 房量差异 Parent/Child 数量不等不自动显示冲突或人工复核
UI-10 全 Child Trace 使用现有 Trace 卡;展示完整 related_source_event_indices[];不压缩到 E1
UI-11 raw evidence 用户编辑后 raw 原文、附件引用和原 Agent payload 不变
UI-12 同卡解阻 只创建一张卡;pending → resolved → Preflight;不创建第二张 normal task
UI-13 未知字段路径 pointer 无法映射时 fail closed不能临时创建任意输入控件
UI-14 S10/S99/基础设施错误 全部只读,不显示业务编辑控件

7. 交付要求

完成后请报告:

  1. 实际修改的 Adapter/Frontend 文件。
  2. 新增或更新的字段注册表及控件类型。
  3. missing_fields[] → control → field_overrides[] 的实现位置。
  4. 日期、房型、Rate Code、Fix Charge、Parent/Trace 关系校验位置。
  5. 测试命令和测试结果。
  6. 是否保持公开 JSON、40 路由和 MCP mapping 不变。
  7. 未实现字段、路径不确定项和需要产品/业务确认的事项。

如果发现当前字段路径、item schema 或 Rate/Fix Charge 枚举仍未冻结,请保留只读/容错策略并报告,不要在前端自行发明新的公开字段。


最终边界

本任务的正确结果是:

信息系统可以正确展示当前业务结果
信息系统只允许修改被 manual_review pointer 指定的业务字段
用户修改可审计、可校验、可回退到同一业务卡
原始 Agent 结果和证据不被覆盖
不新增业务路由、不改变 Prompt/Skill/MCP 契约