# 质量证据与决定模型

> **领导速读：** 这份模型统一规定什么算事实、什么算证据、门禁何时失效，以及如何形成最终质量决定。

## 一、管理视角

- **管理目标：** 让每项质量结论都能追溯到当前候选版本和可复核证据。
- **核心机制：** 证据分级、门禁生命周期、严重度分级和三类终态结果。
- **关键底线：** 陈旧证据、实质未知项或未解决 P0/P1 都必须阻断。

## 二、详细规则

### 证据类别

- `FACT`：由权威产物或已复现命令直接支撑。
- `INFERENCE`：从已陈述事实推导，必须展示推理。
- `ASSUMPTION`：临时接受的前提，必须注明负责人和验证路径。
- `UNKNOWN`：信息缺失或冲突；影响安全、契约、验收或门禁结果时阻断。

证据强度从弱到强：

1. `E0`：未经验证的断言。
2. `E1`：已检查且位置稳定的产物。
3. `E2`：绑定候选版本字节的可复现可执行证据。
4. `E3`：具有来源信息的独立证据或生产代表性证据。

`E0` 永远不能关闭发现。已消费来源或实现字节变化后，证据即为陈旧。

### 门禁生命周期

交付使用依赖图，不使用一次性清单。每次门禁运行都记录稳定标识、阶段、适用理由、候选版本身份、已消费产物哈希、依赖、决定和证据。

门禁生命周期状态：

- `PLANNED`：适用但尚未执行。
- `RUNNING`：已针对当前候选版本开始执行。
- `PASS`、`PASS WITH FOLLOW-UP`、`BLOCKED`：当前专业决定。
- `STALE`：已消费产物、依赖、策略或候选版本发生变化。
- `SKIPPED`：不适用，且已记录理由和证据。

`STALE` 和 `SKIPPED` 不是成功决定。提交前准入门禁只能消费冻结候选版本的当前决定。

从最早受影响边界开始失效：

| 变化范围 | 需要失效的决定 |
| --- | --- |
| 规格或验收规则 | 规格、受影响的系统/架构、设计实现映射、代码或开发者测试证据、持续集成验证、准入 |
| 架构、接口、数据或所有权 | 系统/架构、受影响实现和开发者测试评审、设计实现证据、持续集成验证、准入 |
| 实现 | 受影响代码或开发者测试评审、设计实现证据、持续集成验证、准入 |
| 测试或夹具 | 开发者测试评审、相关验证、持续集成验证、准入 |
| 流水线或门禁策略 | 持续集成计划或验证及准入 |
| 候选版本字节或引用 | 记录哈希已不匹配的所有候选版本绑定结果 |

### 严重度

- `P0`：正在发生的灾难性安全、数据、生命安全或服务风险。
- `P1`：很可能造成契约、隔离、可用性或交付失败，阻断准入。
- `P2`：存在边界明确的规避措施或后续计划的实质质量债务。
- `P3`：局部可维护性或清晰度改进。

### 发现记录

记录：标识、领域、严重度、声明、准确位置、证据类别与引用、失败或影响、必要动作、已知负责人和状态。

### 门禁规则

- `PASS`：所有强制证据当前有效；没有未解决 P0/P1；没有实质未知项。
- `PASS WITH FOLLOW-UP`：只剩边界明确的 P2/P3，且有负责人、到期条件和验证方式。
- `BLOCKED`：强制证据缺失或陈旧，存在实质未知项，或 P0/P1 未解决。

豁免是显式记录，不能抹除发现。豁免必须包含权限、范围、理由、有效期、负责人、补偿控制和验证。

保持三项结果独立：

- `consistencyStatus`：实现是否与已确认设计一致。
- `qualityStatus`：全部适用专业质量门禁是否当前有效。
- `admissionStatus`：冻结候选版本是否允许提交。

从三项结果派生交付决定；不得改写其中一项来让另一项显示为绿色。
