# 验证矩阵

结构稳定验证分为两层：第一层检查 DOCX package 和全局对象计数，第二层检查未触达对象的 XML hash。默认策略是阻断任何未授权变化。

| 验证项 | 当前实现 | Production 强化 | 失败处理 |
|---|---:|---:|---|
| DOCX ZIP 可打开 | 已实现 | 必须 | 阻断 |
| 源文件 `source_sha256` 检查 | 已实现 | 必须 | 阻断 |
| 输出文件默认不覆盖 | 已实现 | 必须 | 阻断/审批 |
| candidate 先写后验证 | 已实现 | 必须 | 阻断 |
| part add/remove/change allow-list | 已实现 | 必须 | 阻断 |
| `styles.xml` 不变 | 已覆盖于 part hash | 必须 | 阻断 |
| `numbering.xml` 不变 | 已覆盖于 part hash | 必须 | 阻断 |
| `settings.xml` 不变 | 已覆盖于 part hash | 必须 | 阻断 |
| relationships 默认不变 | 已覆盖于 part hash；批注例外需授权 | 必须 | 阻断/审批 |
| media/images 默认不变 | 已实现 | 必须 | 阻断 |
| 表格数量不变 | 已实现 | 必须 | 阻断/审批 |
| 表格维度变化 | `append_table_row` 显式授权 | 必须 | 阻断/审批 |
| 图片数量不变 | 已实现 | 必须 | 阻断 |
| 字段数量不变 | 已实现 | 必须 | 阻断/审批 |
| 批注数量不变 | 已实现；`add_comment` 显式授权 | 必须 | 阻断/审批 |
| 修订数量不变 | 已实现 | 必须 | 阻断/审批 |
| 内容控件 tag 集合不变 | 已实现；`wrap_paragraph_with_content_control` 显式授权 | 必须 | 阻断/审批 |
| 未触达内容控件 hash 不变 | 已实现 | 必须 | 阻断 |
| 未触达表格 hash 不变 | 已实现 | 必须 | 阻断 |
| 未触达 `w14:paraId` 段落 hash 不变 | 已实现 | 必须 | 阻断 |
| OpenXmlValidator | 已通过 .NET Open XML 后端接入，并比较源/目标新增 schema 错误 | 必须 | 阻断 |
| Word 打开无修复提示 | 手工/渲染间接验证 | CI 自动化 | 阻断 |
| 目录/字段刷新 | 不自动刷新 | Word COM/Aspose/Syncfusion | 标记待刷新 |
| 渲染页数一致 | 示例已渲染检查 | CI 必须 | 阻断/人工复核 |
| render diff 阈值 | 待接入 | 必须 | 人工复核 |
| 审计 JSON | 已实现 | 必须 | 阻断 |

## 风险等级

### 低风险

- 内容控件内纯文本替换。
- 内容控件内短语替换。
- 单个表格单元格内文本替换。

### 中风险

- 段落文本替换。
- 在已知段落前后插入新段落。
- 表格新增行。
- 添加批注。
- 为现有段落包装内容控件。

### 高风险

- 修改编号体系。
- 修改目录、REF、PAGEREF、SEQ 等字段代码。
- 修改交叉引用目标和书签结构。
- 移动图片、图题或 drawing anchor。
- 删除、合并、拆分表格单元格。
- 修改分节符、页眉页脚、页码。
- 接受/拒绝修订痕迹或批量生成修订痕迹。

高风险操作必须进入人工审批或 Word 原生自动化/商业文档引擎模式。
