# 已交付合同批量质检方法 (2026-07-13)

## 触发条件
Doro要求"逐一审查已交付合同的修订有哪些问题"

## 方法

### 准备
1. 读通用 review-rules.md + 对应顾问单位特殊规则——**每次都tool call读取，不凭记忆**
2. 确认哪些是今天交付的（按任务交付目录文件的mtime筛选）
3. 一份一份做，pass一份再做下一份

### numPr断裂检查（2026-07-13 消防设施检测案教训，最易遗漏）
新增WB INS段落如果插在auto-numbered序列（原文段落有numPr）中，必须有相同numPr：
- 检查原文被插入位置前后段落是否有numPr
- 如果有（如numId=4, ilvl=0），新增段落也必须有同一numPr
- `add_clause`默认strip numPr（A类设计），在B类自动编号段落中会导致编号断裂
- **修法**：手动用zipfile+lxml克隆邻近段落的pPr（含numPr）给新增段落

### 独立段落 vs 合并到现有条款的判断
当新增内容插在有手动编号（1、2、3、）的章节中时：
- 新内容与前一条**主题紧密相关**（如数据归属+保密）→ 合并到前一条末尾，不独立编号
- 新内容是**独立主题**→ 编号为下一个序号
- 这是审查者应当自行判断的专业决定，不问Doro

### 字体修复的per-paragraph策略
同一合同中不同段落可能有不同的字体继承模式：
- 段落A: `ascii=宋体, hAnsi=宋体, cs=宋体, sz=24`（显式设置）
- 段落B: 完全无rFonts（靠docDefaults继承）
**不能全局统一处理**——必须逐段对比orig run属性，INS run匹配同段orig run

### 每份合同检查项

#### A0. 完整性检查（先于内容审查）
- **必须同时检查** tracked changes + comments.xml + footers/headers
- 用 `zipfile` 读 `word/comments.xml` 提取所有批注数量和内容
- 段落文本100%相同 ≠ 文件完全相同（可能有批注但无修订）
- 2026-07-13教训：v2被误判为"与原文完全相同"，实际有6条WB批注。python-docx的`.text`不反映批注内容

#### A. 检测重复处理
待审查文件是否已有WB修订？如果有，交付版是否产生了重复文字/重复INS。

#### B. 修订内容 vs 审查清单（10条逐条对照）
1. 主体条款：名称是否正确、是否直接改了不批注
2. 违约责任：是否有维权费用（律师费、诉讼费、保全费）
3. 争议解决：是否甲方所在地法院
4. 保密/数据：数据归属+保密存续+泄露责任
5. 知识产权：成果归甲方+终止后继续使用
6. 第三方侵权：乙方全责+全额赔偿甲方
7. 转包/分包：限制条款
8. 价款条款：金额不一致是否批注
9. 服务成果持续使用权
10. 条款逻辑

#### C. 批注合规检查
- 每个WB批注逐条对照规则：
  - 是否涉及商业条款？（日期/期限/金额/支付方式/频率/天数 → 不应有）
  - 是否能直接修订？（能改就改不批注）
  - 是否有【】标签或理由解释？（禁止）
  - 是否有"建议考虑""请考虑是否"等模糊措辞？（禁止）

#### D. 格式检查
- INS run的rPr与同段原文run逐属性对比（sz/rFonts/bold）
- 新增章节标题格式是否与原文章节标题一致
- 新增正文段落pPr（ind/spacing/numPr）是否与原文同类型段落一致
- 单段正文不加numPr（"有2才有1"规则）

#### E. 交叉引用/编号
- 新增条款后原文编号是否顺延
- 接受修订后无重复编号/无跳号

### 报告格式
每份合同列出：
- 问题1/2/3...（严重/中等/轻微）
- 格式是否OK
- 是否需要修复

### 铁律
- 先查文件再说话（不凭印象判断）
- 一份做完确认后再做下一份
- 修复时从待审查原文出发，不在被污染的交付版上修
