# 检测已审查文件重复处理（Workflow产出双版本问题）

## 2026-07-13 消防设施检测合同教训

### 现象
同一份合同在任务交付目录出现两个文件：
- v1: 有WB tracked changes（正确交付物）
- v2: 无tracked changes + 有WB批注（纯批注版）

### 诊断方法
```python
# 快速判断文件性质
with zipfile.ZipFile(filepath, 'r') as z:
    doc_xml = z.read('word/document.xml')
    # 检查tracked changes
    ins_count = doc_xml.count(b'w:ins')
    del_count = doc_xml.count(b'w:del')
    # 检查批注
    has_comments = 'word/comments.xml' in z.namelist()
    if has_comments:
        comments = z.read('word/comments.xml')
        comment_count = comments.count(b'w:comment ')

print(f"INS: {ins_count}, DEL: {del_count}, Comments: {comment_count}")
```

### 判断标准
| 文件状态 | 性质 | 应否保留 |
|----------|------|----------|
| 有INS/DEL + 无comments | 标准修订版 | ✅ 正确交付物 |
| 有INS/DEL + 有comments | 修订+批注版 | ✅ 正确 |
| 无INS/DEL + 有comments | 纯批注版 | ⚠️ 需审查批注合规性 |
| 无INS/DEL + 无comments | 原文副本 | ❌ 不应在交付目录 |

### 纯批注版的审查要点
- 是否违反"能改就不批注"原则
- 批注立场是否正确（站甲方）
- 是否属于"提醒性批注"（禁止）
- **严重错误示例**：Comment 203建议"违约金偏高，建议设上限"——这是在帮乙方限制甲方的违约金权利，立场完全反了

### python-docx的.text陷阱
`paragraph.text`不反映批注内容。两份文件的`.text`可能100%相同但实际一份有6条批注。**判断文件是否相同必须检查comments.xml**。
