# 设计文档入口 实现核对日期:2026-09-11(代码基线以 `git log -- docs/` 为准)。文档描述**目标设计**,不等于已实现;测试通过不等于现场已发布。进度与缺口在 Plane(ACM2)跟踪;文档只记录「对外主张当前是否可声明」,见 [invariants.md](invariants.md) 声明边界。 ## 1. 按读者选入口 | 你是谁 | 从哪读起 | |---|---| | 新开发者 | [invariants.md](invariants.md)(前提 / 不变量 / 声明边界)→ [design.md](design.md)(机制)→ [reference.md](reference.md)(参数 / 指标 / 模块) | | 库方 / 上游接口人 | [contracts.md](contracts.md)(条款 `C-x` 与待确认 `Q`) | | 值班主任 / 运维 | [reference.md](reference.md)(参数与指标)→ [invariants.md](invariants.md)(哪些主张当前不可声明)。执行规程在上线/切流前另立,设计阶段只保留前置条件与红线 | | 评审 / PR 作者 | [invariants.md](invariants.md) + 本文 §5 评审清单 | ## 2. 文档职责(一个事实只有一处定义) | 文档 | 唯一职责 | |---|---| | [architecture.md](architecture.md) | 系统边界、模块职责、存储归属、架构决策(D1–D4)。 | | [invariants.md](invariants.md) | 前提 `PRE-x`、不变量 `INV-x`、声明边界 `CLM-x`、验证映射。 | | [design.md](design.md) | 管道机制:收报·水位、主泵·处理·事务边界、回填、投递、作业与归档。 | | [contracts.md](contracts.md) | 对外承诺与要求(`C-x`)、待确认事项(`Q`)。 | | [reference.md](reference.md) | 参数注册表、指标与健康、模块入口、错误分类。 | | [flight-state.md](flight-state.md) | 航班域模型与合并语义。 | | [user-stories.md](user-stories.md) | US / OPS 验收目标。 | | [legacy/](legacy/) | 现役行为基线与外部协议事实([SIS 规范](legacy/SIS_AODB_RMS-V0.1.md)、[XSD](legacy/unisysaodbsis.xsd))。外部协议事实(报文结构、字段语义、上游行为)以 SIS/XSD 为准;legacy 现役行为只是基线,已知缺陷不作依据;与本系统目标设计的已知差异见 `C-25`/`C-26`,确认状态见 `Q13`/`Q14`。 | `message-lifecycle.md` 已并入 design.md,文件仅保留跳转说明。 ## 3. 事实归属表 | 事实 | 唯一归属 | 其他文档怎么写 | |---|---|---| | 水位 `W`、空洞判定与推进条件 | design「收报与水位」 | contracts 写对库方的承诺 `C-1`–`C-3`;reference 写参数 | | 保留期下界 `R_keep`、清除前置条件 | contracts「保留与清除」 | design 只引 `C-x`;执行步骤在上线前另立 | | 处理标记值集与写权限 | contracts `C-5` | design 只写行为约束「只写空标记、不回撤、不覆盖」(`INV-7`) | | 回填四结果、放弃语义、`R` 的作用 | design「回填」 | invariants 记结论与可声明性 | | 退避 / `claim-batch` / 回填期限等取值 | reference「参数」 | design 只引 `PARAM:x` | | 消费权排他、ID 不复位、报文不可变、时钟、单实例 | invariants「前提」 | 其他文档只引 `PRE-x` | | 航班身份、合并语义、`STATE_VERSION`、`OPERATION_DAY` | flight-state.md | design 只引域规则 | | 对外术语(落信 / 入站 / 库方 / 处理标记) | contracts「术语」 | — | ## 4. 引用与写作纪律 1. **引用只用稳定 ID**:`PRE-x`、`INV-x`、`CLM-x`、`C-x`、`D-x`、`OPS-x`、`PARAM:x`、`[G-x]`、`[Q-x]`、`US-xx`、`ACM2-nn`。**不再用章节号做跨文档引用。** 本条取代旧版 README 的「其他文档引用章节号」规则:章节号随增删章节腐烂,指针失效后必然被改写为复述——重构前实测有 30 处「唯一定义处」与 33 处跨文档章节引用。 2. 指针之后**不再复述**被指内容。若两处需要同一段话,说明它放错了位置。 3. 文档不记进度,只记「主张是否可对外声明」。进度在 Plane。 4. 机制段只写「是什么 / 为什么」。验收 → invariants 验证映射;前置条件、红线与库方方案 → contracts / invariants;参数默认值 → reference;操作步骤在上线/切流前另立规程,设计阶段不写。一句话一个主张;只强调关键结论,避免整段加粗。 5. 数值只有两个家:参数默认值与指标名在 reference.md;契约数值(保留期、值集、下界)在 contracts.md。 ## 5. 维护清单 **Q 答复落地(4 步)**:① 在 contracts.md 就地补结论与日期 → ② 改 reference.md 的默认值与「依据」列 → ③ 机制有变才改 design.md → ④ 在 invariants.md 的 CLM 上划掉挂起。 **PR 评审 4 问**:新事实是否已有归属?是否复述了别处?是否用了稳定 ID?是否把运维 / 验收写进了机制段? **尺寸触发器**:design.md 超过约 800 行才按子系统再拆;invariants.md 超过两页先怀疑混进了机制。 ## 6. 当前状态 - 2026-09-11 文档体系重构:新增 invariants.md / contracts.md / reference.md;design.md 由 design.md + message-lifecycle.md 合并(后者保留跳转 stub);跨文档引用由章节号改为稳定 ID。 - 不建 runbooks.md:设计阶段没有可执行的运行环境,操作步骤在上线/切流前另立(见 Plane ACM2-48);设计阶段需要的只有前置条件与红线,它们分别在 contracts(`C-7`–`C-12`)与 invariants(CLM-x)。 - 目标设计与交付状态分离:未交付、未确认、不可声明的主张见 invariants.md 的声明边界与 Plane ACM2,不在正文里逐段标注。