# 重做校区 Workflow（Maggie指出质量问题后）

> 2026-07-01 凤凰文化实证：Maggie发现OCR读取质量差→模版比对有错误→汇总表不准确，要求按workflow重做。

## 触发场景
- Maggie看了汇总表后说"有问题"/"重新做"
- 发现OCR误读导致模版比对结论错误
- 发现关键字段（费率、单位、条款内容）与原件不符

## 流程（仍走完整闸门，不跳步）

### 1. 仍然跑闸门脚本
```bash
python3 scripts/campus-workflow-gate.py <校区名>
```
即使是重做，也跑闸门。这不是形式主义——重做时更容易因为"上次做过了"而跳步。

### 2. Step 1 聚焦 vision 修正
- 不需要重跑 ocrmypdf 全篇（原始 OCR 文本已有）
- **聚焦**：对乱码区域逐页 `pdftoppm → vision_analyze`，获取真实内容
- **产出**：一份 OCR 修正说明文档（列出每处修正：原OCR读什么→实际是什么）
- 修正说明存工作目录，后续 delegate_task 要引用

### 3. Step 2 delegate_task 必须携带 vision 修正值
这是**最关键的差异**——重做时 subagent 读到的仍是同一份乱码 OCR 文件。

**错误做法**：只给 OCR 文件路径，期望 subagent 自己发现问题
```python
# ❌ subagent 会重复产出错误结论
delegate_task(context="OCR路径: /tmp/.../租赁-OCR.md", ...)
```

**正确做法**：在 context 中显式列出所有 vision 修正
```python
# ✅ subagent 会用修正值覆盖乱码
delegate_task(
    context="""
    文件路径：
    - 07模版: /tmp/.../07模版-全文.txt
    - 租赁合同OCR: /tmp/.../租赁-OCR.md
    
    关键修正信息（vision核实，OCR中这些地方有乱码需用修正版）：
    - 8.4条: 物业费为0.4元/㎡/天（不是/月），换算=12.167元/㎡/月
    - 8.5条: 水费4.2元/吨；电费=国家电价+0.53元/度服务费
    - 8.6条: 仅"物业期限=租赁期限"一句，不涉及网络电话
    - 第十条10.2: 租赁租金结算至合同解除日（无违约金条款）
    """,
    toolsets=["file", "terminal"]
)
```

### 4. Step 3-6 正常走
- 用模板脚本(single-campus-builder.py)重新建表
- 新表体现修正后的正确内容
- K/L分工自检、格式卡口、H列四检照做
- 存档时删除旧版、上传新版、files:scan

## 常见陷阱

| 陷阱 | 后果 | 防范 |
|------|------|------|
| 只改 xlsx 不重做比对 | L列仍是旧的错误内容 | 必须重新 delegate_task 做比对 |
| delegate_task 不带修正值 | subagent 重复犯同样错误 | context 写清楚每一处修正 |
| 认为"上次做过了所以快" | 跳步、漏检 | 跑闸门，贴todo，逐项打勾 |
| 修正了物业费单位但忘改K列风险分析 | K列仍引用旧数据 | 全表重建，不手动patch |
| 旧版xlsx没删 | Nextcloud有两个版本，Maggie看到旧的 | 上传新版前rm旧版 |

## 凤凰文化实证（2026-07-01）

发现的OCR问题：
- 8.4: "0.4元/㎡/天" 被误读为 "0.4 a/R 元/㎡/月"（单位吞没）
- 8.5: 严重乱码，水费4.2元/吨和电费+0.53元/度完全丢失
- 8.6: 被错误描述为"网络电话防火门"（实为物业期限=租赁期限）
- 8.7-8.8: 消防条款大段乱码
- 第五条5.3: 水电逾期违约金万分之五/日不可读

修正方法：vision逐页精读第5-8页原始PDF，获取真实文本
结果：31条模版比对差异（旧版25条），所有修正内容正确纳入
