docs(acm2-74): 补齐 FLOP 逐类语义、静态参考数据与数据结构

自洽与精简:

- specification 补第四种状态词 [我们自证]、验证映射补 INV-14 两行、去 CLM-7/CLM-9 的进度语、补编号空缺说明
- architecture/requirements/implementation 去除逐字复述(领域决策三写句、时间常数排序、C-25/C-26、INV-12/21/22)与参数值重复
- README 与新文档对齐:收报谓词改 ID>W、删不存在的 reference/ 包与 lua/、删 msgx.phase 与 MSGX_REDIS_URI、设计权威口径改 docs/、进度段改指 Plane

内容补齐:

- 新增 implementation.md「动态运行事件(FLOP)」:按 SIS 3.19–3.43 的 25 类逐类映射与空标签语义(含 CNCL 空标签为撤销等),补 RMS→AODB 方向拒绝、ROUT 只保留 4 条、VIPP 忽略等约束;厘清 legacy 29 类与 SIS 25 类的差集
- 新增 implementation.md「静态参考数据」章:13 类参考数据与资源状态的 RTYPE/RKEY、list 与增量合并语义、删除只由 DEL 表达、SLST/REMT/RSTA 机位与登机桥映射
- §11.3 数据结构改为标量分组表与集合明细表(元素键、条数上限、SIS 锚点)
- specification 新增 G-FLOP-DIRECTION / G-FLOP-UNMAPPED / G-REF-DATA;Q8 收窄为真实报文分布与 admin-api 清单
This commit is contained in:
windyboy
2026-09-14 07:34:17 +08:00
parent cedd859bdf
commit 5b7938ac4b
6 changed files with 206 additions and 98 deletions
+12 -4
View File
@@ -13,6 +13,8 @@
编号稳定不变;条款被取代时标 `[作废 by C-y]` 并保留原文,不静默改写。不变量变更用「追加 + 作废」(`INV-7 → [作废 by INV-7b]`)。机制与领域规则见 [implementation.md](implementation.md),参数取值见 [reference.md](reference.md)。
**编号空缺**:本文件成形前已作废的旧条款未随迁移保留原文,其号码空缺且不再复用(契约段缺第 17~19 号,声明边界段缺第 1、2 号)。
## 1. 术语
| 术语 | 含义 |
@@ -29,7 +31,7 @@
管道内部术语(`W`、队头、终态、回填意图)定义在 [implementation.md](implementation.md)「术语与持久化记录」。
条款状态词只有种:`[待确认 Qn]`(未取得对方书面确认)、`[已确认 YYYY-MM-DD]`(对方书面确认且已回写)、`[我们单方承诺]`(不依赖对方,已生效)。
条款状态词只有种:`[待确认 Qn]`(未取得对方书面确认)、`[已确认 YYYY-MM-DD]`(对方书面确认且已回写)、`[我们单方承诺]`对外承诺,不依赖对方,已生效)`[我们自证]`(本系统自身的架构或部署事实,无需对方确认)
## 2. 契约
@@ -136,7 +138,7 @@
| CLM-4 | 回填不会被短暂故障放弃:最终打标,或进入可对账的放弃清单 | INV-8、`C-5``C-8` | **可声明(有条件)** | 条件:`R` 之前不放弃;`MISSING_ROW` 立即放弃并告警;放弃行须经人工对账才可用于清除判定(`C-8`)。原文保留另见 CLM-5 |
| CLM-5 | 重放窗口内原文仍可读 | `C-6``C-7``Q7``Q9` | **不可** | 清除语义与保留期未确认;「打标即清除」下无补救 |
| CLM-6 | 单实例内严格 FIFO | PRE-5、INV-3 | **可**(限于单活动实例) | — |
| CLM-7 | 事件投递在同一 `FLID` 内保序 | INV-10、投递设计 | **可**(跨 `FLID` 不承诺) | 实现当前按目标级全序投递,收敛到按 `FLID` 属投递改造 |
| CLM-7 | 事件投递在同一 `FLID` 内保序 | INV-10、投递设计 | **可**(跨 `FLID` 不承诺) | 只声明同一 `FLID` 内保序;按 `FLID` 的隔离边界与 `Q4` 定案、`G-DELIVERY-ORDER` 闭合一致 |
| CLM-8 | 出站交付承诺只到「落信」 | `C-24``Q10` | **可**(仅落信语义) | 消费方与 ACK 列语义未确认 |
| CLM-9 | 处理标记延迟由调度周期决定 | — | **不可** | 扫描周期不等于完成时限;批次积压、单行超时与历史作业都会延长实际延迟 |
| CLM-10 | 容量量级假设(单实例、入站日消息量千级到万级、单报文 ≤ 10⁴ 字节) | — | **不可** | 未实测,无生产负载数据;解除条件:取得现役信箱日量、峰值与单报文上限后重估 |
@@ -165,6 +167,8 @@
| INV-11 | 权威唯一 | 需断言展示视图与缓存不得成为写入或对账来源 |
| INV-12 / INV-13 | PG 事务失败、快照重复或迟到 | 整体回滚重试、不重复推进版本、不回退状态、不误删增量航班 |
| INV-12 | 运营日冲突 | 整包 `DEAD(PROTOCOL)`,既有状态与版本不变 |
| INV-14 | 未携带字段保留、显式清空才清除;集合按完整合并结果写入 | `FlightStateEngineTest`「day plan merges scalars overwriting overlaps retaining absent and clearing on explicit empty」「flop merge retains absent scalars and collections」;`FdelAndAdftProcessorTest`「ADFT merge does not clear absent scalars」 |
| INV-14 | FLOP 逐类空标签语义(清除、撤销、集合清空)与「未携带不清空」的区分 | 逐类用例见 [implementation.md](implementation.md)「动态运行事件」;`G-FLOP-DIRECTION``G-FLOP-UNMAPPED` |
| INV-15 | 缺席不删除 | 需分别断言 FDEL 与清理路径 |
| INV-16 | 外部副作用失败后本地结果不变 | 需用例 |
| INV-17 | 业务型终态四件套同事务 | 需真实 PG 用例 |
@@ -178,7 +182,7 @@
上表首列是**引用**`INV-x` 的定义见本文件「不变量」);同一行可覆盖多个 `INV`,例如 `INV-20 / CLM-3`
声明边界的证据指针:`CLM-4` 断言放弃行不写标记、不被当作已打标;`CLM-9` 的指标已就位(`msgx.pipeline.job.heartbeat_age_seconds` / `ticks.total` / `failures.total` / `last_sweep_selected``msgx.pipeline.backfill.oldest_unmarked_seconds`),实际延迟仍需现场数据。
声明边界的证据指针:`CLM-4` 断言放弃行不写标记、不被当作已打标;`CLM-9` 由作业心跳与回填年龄指标提供观测(指标名见 [reference.md](reference.md)「指标与健康」),实际延迟仍需现场数据。
## 7. 当前已知偏差
@@ -198,6 +202,10 @@
| `G-HST-RETENTION` | 归档目标(`PROC_STATE_HST` 及后续归档表)的保留期与清除作业未定义 | 归档只转移不减少容量占用;`G-PROC-HST` |
| `G-FLIGHT-HIST-RETENTION` | 航班历史存储(外部)的保留期与容量上限未定义 | `D1``FLIGHT_SCHD` 物理清除后历史存储是唯一副本 |
| `G-REQ-TRACK-RETENTION` | `REQ_TRACK` 关闭态行(`DONE`/`EXPIRED`)的保留期与清除作业未定义 | 自有 PG 无界增长;`US-08` |
| `G-DELIVERY-ORDER` | 投递按目标级全序推进:一个 `FLID` 的队头失败会阻塞同目标其他 `FLID`,尚未收敛到按 `FLID` 隔离的保序边界 | 投递吞吐;`CLM-7``C-29` |
| `G-FLOP-DIRECTION` | 柜台、转盘、滑槽、登机门、计划机位五类的 FLOP 报文按 AODB→RMS 接收并落库,SIS 要求收到即拒绝(这些资源在 AODB 方向只随日计划下发) | `US-05``SIS:3.24``SIS:3.25``SIS:3.26``SIS:3.34``SIS:3.38` |
| `G-FLOP-UNMAPPED` | `XSD` `FLOP` 段的 `FFID``UNCL``CKOP``GTOP``CKCL``BDOP``LCTM``BDCL``FRET``FDIV``FLAB``RUNW``PXNO``FLBG``CKPB``BDPB` 未解码,解码即丢弃;其中 `FRET``FDIV``BDPB` 在 legacy 有对应处理 | `US-05`;无损字段保存 |
| `G-REF-DATA` | 参考数据入站(`SIS:3.1``SIS:3.14`)与 admin-api 刷新均未实现,`REF_MASTER` 只有目标表定义 | `US-13``US-14` |
## 8. 待确认事项台账
@@ -210,7 +218,7 @@
| Q5 | 请求匹配:回显字段可靠性与降级匹配 | `RQFD` 60 秒 / `RQRD` 30 秒超时 | 请求跟踪闭环 | 未确认 |
| Q6 | 重放期限与人工处置期限的取值(唯一作用是决定 `R_keep` 下界) | `R` = 30 天;重放/处置期限未定 | `R_keep` 取值 | 未确认 |
| Q7 | 处理标记值集与写权限、原文保留期、处理时间语义 | 写入 `PROCESSED` | 回填值集、保留期下界 | 未确认 |
| Q8 | 逐类覆盖清单(积压摸底的类型分布依据) | — | 积压处置与逐类矩阵 | 暂缓(现阶段不处理) |
| Q8 | 逐类覆盖清单:真实报文的子类型分布、SIS 未定义的 legacy 子类型(`ABTM`/`DELY`/`PADT`/`FTSS`/`STND`/`BDPB`/`REMC`)的报文形态、admin-api 21 类清单与字段映射、逐类 golden | 航班动态的字段语义与空标签规则已由 SIS `SIS:3.19``SIS:3.43` 给出,参考数据类别由 `SIS:3.1``SIS:3.14` 给出;`VIPP` 的忽略口径 SIS 未写明 | 积压处置与逐类矩阵的差异标注 | 暂缓(现阶段不处理) |
| Q9 | 清除执行方与 DDL 授权、方案 A/B 选型、分区能力 | 首选方案 A | `R_keep` 与清除边界 | 未确认 |
| Q10 | 出站消费方、ACK 列语义、出站清理与去重契约 | — | 出站信箱 | 未确认 |
| Q11 | 上游 `SEQN` 重置周期与业务身份的日期边界 | 不含日期边界 | 身份算法 | 未确认 |