# 已交付合同逐份审查方法（2026-07-13 实战）

## 触发条件
Doro说"逐一审查已交付的合同"/"告诉我有什么问题"。

## 审查前必做
1. **先读review-rules.md全文**——通用规则+顾问单位特殊规则（如朱家角要审查意见、练塘要脚注）
2. 列出全部待审查文件（按时间排序）
3. 确认哪些已pass、哪些未pass

## 每份合同审查步骤

### Step 1: 打开文件确认性质
**不要凭文件名或tracked changes数量推断文件内容。** 必须实际检查：
- `w:ins`/`w:del`数量（tracked changes）
- `word/comments.xml`是否存在（批注）
- 如果ins=0 + del=0，**不要直接说"无修改"**——可能有批注(comments.xml)
- 2026-07-13教训：v2文件ins=0/del=0被误判为"原文副本"，实际有6条WB批注

### Step 2: 提取全部WB修订内容
- 遍历所有段落，列出每个WB INS/DEL的位置和文本
- 同时列出comments.xml中的所有WB批注

### Step 3: 对照审查清单逐条核查
对照review-rules.md的10项审查清单，逐条标记"✅已覆盖"/"❌缺失"/"N/A不适用"。
常见遗漏：
- 规则4保密三要素（存续+泄露赔偿+数据归属）只做了一两个
- 规则7转包连带的"连带"二字遗漏

### Step 4: 编号/numPr检查（**重点**）
**新增INS段落是否有numPr：**
1. 找到新增INS段落所在区域
2. 检查该区域的原文段落是否有numPr（自动编号）
3. 如果原文有numPr但新增INS段没有 → **编号断裂（严重问题）**
4. 2026-07-13教训：原文"十、其它事宜"下P32-P37全部有numPr(numId=4)渲染1-6编号，workflow用add_clause插入的维权费用段P39缺numPr，导致编号链断裂

**编号顺延检查：**
- 渲染接受修订版(pdftotext)，数完整编号链
- 注意markup视图的"十十二"是DEL(十)+INS(十二)叠加显示，不是错误

### Step 5: 格式/字体检查
1. 运行 `wb-ins-font-verify.py`
2. **"MISSING HINT (无同段原文可比)"是已知假阳性**——整段INS段落无法比对，不算真问题
3. 真正的mismatch：INS有显式属性但同段原文run没有（或反之）
4. **原文不同段落可能有不同字体方案**（有的段explicit ascii=宋体，有的段完全无rFonts）
   → 字体修复必须per-paragraph匹配，不能全局统一

### Step 6: 新增标题格式（ind缩进）
- 对比新增标题段的ind与原文同级标题段
- 注意原文自己可能不统一（如P28用firstLine=482，其他标题用start=420）
- 按多数原文标题的格式设置新增标题

### Step 7: 同模板一致性
- 同一顾问单位的同模板合同（条款结构一致的），修订必须保持一致
- 逐条比对：编号策略、条款结构、用语措辞、天数等商业参数

### Step 8: 特殊交付物
- 朱家角：必须有【审】审查意见文档
- 练塘：必须有脚注"法律顾问修订版"
- 缺失的标记为问题

## 报告格式
```
## 【修】合同名称

**字体验证：** PASS/FAIL
**修订内容（N处）：** 列举
**发现的问题：**
1. ...
2. ...
```

## 铁律
- **先看文件再下结论**——Doro原话"你看文件去，不是让你瞎说""文件打开阅读核实清楚再说"
- 不凭段落数量或tracked changes数量推断文件性质
- 编号问题不能只看XML结构，必须看渲染结果
