# 开发交付说明：P0 冻结基线（2026-07-11）

## 先看结论

这是当前可以交给信息系统 adapter/frontend 与 AI runtime 开发的 **P0 冻结基线包**，不是最终完整契约。

- P0-1 至 P0-6 已完成规则、交接件和样例同步。
- P1/P2 已重新评估，但尚未修改生产规则；它们仍是 OPEN 风险。
- 开发可以先完成 P0 稳定骨架和已冻结行为，但 P1 影响的字段、路由和解阻流程不得自行补规则或猜测。
- 如果本包中的开发 MD/Excel 与 AI runtime 输出发生差异，必须 fail closed，停止该事件建卡并反馈契约问题。

## 不同开发角色拿什么

### Adapter / Frontend 必读

1. `README_交付说明.md`：交付边界和暂缓项。
2. `01_Adapter_Frontend/任务卡前端字段变更与路由说明_3.0_to_current.md`：P0 数据流、42 路由、人工复核、Parent split、fail-closed 规则。
3. `01_Adapter_Frontend/任务卡前端字段变更说明_3.0_to_当前版_2026-07-10.xlsx`：字段、42 条三元组、迁移、非法组合和验收查表件。文件名保留 7 月 10 日，内部 P0 基线和最后验证时间为 7 月 11 日。
4. `03_P0_Acceptance/`：P0 executable fixtures 与轻量 validator。
5. `04_Known_Issues_非契约/prompt_skill_p1_p2_reassessment_2026-07-11.md`：当前 12 个 P1、8 个 P2；只用于识别暂缓范围，不是实现 Schema 的规则源。

### AI Runtime / Agent 部署开发

1. `02_AI_Runtime/main_agent_prompt.md`
2. `02_AI_Runtime/booking-desk-event.skill`
3. `02_AI_Runtime/核心契约_展开阅读/`：从 `.skill` 中额外展开的 5 份核心契约，方便 adapter/frontend 直接评审；内容仍以同版 `.skill` 为准。

这两个文件必须作为同一版本发布。`.skill` 已包含 SKILL 和全部 production references，但不包含 Main Prompt。

## 当前可以先实现的 P0 范围

- Gateway 在读取正文、附件、OCR、历史、系统上下文或调用 Skill 前校验 `source_message.source_message_id`。
- 缺 ID 时只返回 `infrastructure_input_error + missing_source_message_id`，材料读取与 Skill 调用均为 0。
- S10/S99 使用两个完整结构，并以 `route_code` 判别；S10 的 `manual_review=null`，S99 必须是完整 `main_agent_entry_review`。
- 业务邮件按 `message_events[]` 逐 event 处理，不能在邮件根只派生一个业务三元组。
- type-known review 保留原业务 task type/subtype；字段型复核使用 RFC 6901 pointer 和同卡 `field_overrides`。
- Parent split、行级隔离、partial-allotment S10/unhandled/Fallback 边界按开发 MD/Excel 的 P0 基线实现。
- 当前新生成的 `Note`、`Allotment Maintenance` 和 `update_allotment_control_block` 必须拒绝。
- Agent payload、邮件原文、raw evidence、source ID 和审计字段保持只读；Preflight 通过前不得写 PMS。

## 暂缓定型或必须 fail closed 的范围

以下内容属于未修复 P1/P2；开发不得自行发明字段或把某个实现当成最终契约：

- 生产级 42 路由单一权威源与重叠判别优先级。
- 完整 Main→Skill package schema，以及 `evidence_refs` 的真实索引校验。
- public `case_candidates[]`、`extraction_warnings[]`、relationship、provenance 和 `event_role` schema。
- Fallback route selection、pending/lock 等非字段型阻塞的同卡 resolution。
- Fix Charge 的 add/update/cancel 与 `TBD` schema。
- Update 与 Manual RateCode、Update 与 Trace 的窄边界。
- Voucher 业务卡型明确但文件对象丢失的边界。
- Rooming List reference 中残留的当前 Note producer；当前仍以“Note 不得新生成”为准。
- 通用日期、HNM/Honeymoon、Rate Code 渠道、Trace 短日期、Amend Group Code 组合和 FIT/Group 判别。

完整证据和例子见 `04_Known_Issues_非契约/`。如果开发输入命中上述范围，应 feature flag、阻断或进入明确的契约错误流程，不得由 adapter 复刻 AI 业务判断。

## 42 路由的使用方式

- MD/Excel 中的 42 条路由是 **版本锁定的 P0 实现和验收基线**。
- 它们当前完整存在于派生交接件中；项目已将“缺少生产级机器可读单一权威源”登记为 P1。
- 因此可以据此开发当前 P0 版本，但不能宣称它已经是长期 SSOT；未来 P1 修复后需要重新同步生成交接包。
- 任一 event 缺少明确判别字段、同时命中多条互斥路由，或与 runtime contract 不一致时，该 event 0 卡并报告 `adapter_contract_error`；siblings 继续独立处理。

## P0 样例怎么运行

在本交付目录执行：

```bash
node 03_P0_Acceptance/validate_p0_contracts.mjs
```

当前预期：32 项检查通过，9 个非法负例按预期拒绝。

该 validator 只覆盖 P0 已冻结子集，不验证全部 42 路由、public root item schema、全部 relationship/provenance 或 P1/P2 领域问题。它通过不代表 P1/P2 已关闭。

## 权威和用途

| 文件组 | 用途 | 是否可作为生产规则源 |
| --- | --- | --- |
| `02_AI_Runtime/main_agent_prompt.md` + `booking-desk-event.skill` | 当前 AI runtime 行为和部署版本 | 是；两者必须同版 |
| `02_AI_Runtime/核心契约_展开阅读/` | 方便开发查阅的 00/02/03/04/90 核心 reference 副本 | 是同版 runtime 契约的展开副本；不得单独改写 |
| `01_Adapter_Frontend/*.md` / `*.xlsx` | P0 adapter/frontend 派生实现、字段和验收基线 | 否；不得反向覆盖 runtime contract |
| `03_P0_Acceptance/` | P0 executable examples | 否；只验证已覆盖断言 |
| `04_Known_Issues_非契约/` | OPEN 风险、影响和未来修改建议 | 否；不得据此直接发明 Schema |
| `CHECKSUMS.sha256` | 接收和发布前文件完整性 | 校验用途 |

## 未放入本包的文件

- `归档.zip`：与 Main Prompt + `.skill` 内容重复，不放入最小开发包。
- `high_risk_cases.md`：仍含与 P0 type-known review 不一致的旧 Fallback 期望，不能作为当前验收源。
- 旧冲突审计、白话报告、`task_plan.md`、`findings.md`、`progress.md`、`.project-docs`：历史/过程证据，不是开发契约。
- scratch builder、validator、PNG render 和 QA JSON：内部制作/验证材料，不交开发。

## 接收检查

1. 运行 `shasum -a 256 -c CHECKSUMS.sha256`。
2. 确认 Main Prompt 和 `.skill` 同时存在。
3. 打开 Excel，确认 8 个 sheet 和 42 条唯一路由。
4. 运行 P0 validator。
5. 开发前阅读 P1/P2 已知问题；命中暂缓范围时先反馈，不自行补规则。
