# Devlog · 会话总结(第三场):定位修订 → 光栅基建 → 版面 enhancer 全弧(含两次自我纠错)

> 日期:2026-06-10(续 [上午](2026-06-10-session-summary.md)/[下午 N3](2026-06-10-session2-n3-arc.md)) · 主题:Phase 4 开工——G2 版面 enhancer 从 spike 到落地到更正
> 全弧 commit:e036373(定位)→ 23daeba(spike)→ 8e75f97(落地)→ eee9356(守卫)→ 0ff0e21(更正)→ 54e4ede(路由研究)

## 一、战略决策(用户)

1. **铁律"不渲染像素"退役**,改述为:"主流程不渲染像素(该快的地方照样快);难页请 AI 帮忙时用纯 Rust 工具按需画那一页(默认关闭)"——产品定位定为"**速度快、质量好**",不为教条牺牲质量。
2. 光栅来源选型(带实测的分析文档):**hayro**(纯 Rust,typst 作者)获批,独立 `docparse-raster` crate。
3. Phase 4 计划两次扩容:G8 五项语义增强(VLM 经 **OpenAI 兼容服务**:vLLM/Ollama)、G1 格式平齐(含长尾)。

## 二、G2 交付(全部 opt-in,默认关,零回归)

`docparse-raster`(hayro 渲染 + 坏渲染守卫)→ DocLayout-YOLO on tract(spike 门控通过,CJK 页区域识别正确)→ IR 0.5.0 阅读组(`TextChunk.group`:模型管宏观序、XY-cut 管组内微观序)→ CLI `--layout`。顺带:`TextChunk.font` 改存 PostScript 真名(关老 TODO,为 G8a 铺路)。二进制 23.46MB(体积门如实上调 20→30MB 并注明依据)。

## 三、两次自我纠错(本场最重要的内容)

初版 devlog 写了两个"负结果",**全错**,真凶都是自家 bug:

1. "hayro 渲染坏 2206" → 实为我们没设背景色(hayro 默认 TRANSPARENT,premultiplied alpha 在 RGB 视图全黑);设白底后渲染完美,hayro 平反;
2. "分组无效、宏观序本就一致" → 实为 reconstruct_lines 的分组代码**被一次静默失败的字符串替换吞掉**,从未生效。

修正后真实结果:**设计感版面大赢**(amt 0.660→0.840、韩文信息图 0.580→0.708),**clean 学术双栏倒退**(2203 0.945→0.656)——两位"专家"各有禁区。

**流程教训(已立规)**:结构性代码改动一律精确 Edit + grep 验证落盘;"分数可疑先怀疑管线"今天第三次应验。

## 四、自动路由判据研究:三个几何假设全部试败

行填充率(双栏并宽不可分)、读序歧义分(子词级行隙天然小于切割阈值,clean 页也 0.93+;实现-测量-回退三步留痕)、左缘对齐度(赢家落在输家区间内)。**结论:单一几何特征分不开两类页面**。`--layout` 保持文档级手动 opt-in(本身是合理产品面);下一候选:多特征组合分类器,或 G8b VLM 顺带判页型。

## 五、终态与工作池

87 单测、clippy 零 warning、三件套+默认记分牌零回归;`--layout` 手动开启时设计感文档 +0.13~0.18。
工作池:**G8a 代码块**(确定性,字体名已就绪)→ **G8b VLM 服务接入**(五项增强+CJK 正解+页型判官)→ MCP/REST layout 透传 → G1a 格式 → G4/G7。
