架构决策(ADR)
ADR 0005: 精简核心——把休眠能力隔离为 experimental/extras
只交付在默认离线路径上真正运行的部分;把 OCR、真实语义向量和双通道校验器移入清晰标注的实验模块/extras。
状态:accepted · 日期:2026-06-17
不可变记录。免于漂移追踪(无
covers)。取代,而不是编辑。
背景
几乎每个子系统都带着已建成、已测试却未接入运行流水线的代码:OCR 扫描版 PDF 抽取器(停在审核队列里,从未被调用)、双通道校验器(孤儿代码,只有它自己的测试在调用)、向量通道(完全接线,但唯一的离线后端是一个自我声明非语义的词法哈希;真实 embedding 推迟到 GPU 基础设施)、颜色图例检测(仅测试使用)、一个 OpenAIProvider 桩,以及两套并行的抽取家族(遗留的 extract_facts vs StyledGrid)。对一个供人评估的库来说,看似死掉、实际不运行的代码是信任问题。
决策
交付一个精简核心,只包含在默认离线路径上真正运行的部分:BM25 + 结构化通道 + agent + 防编造机制。把 OCR、真实语义向量和双通道校验器移入清晰标注的实验模块 / extras,在文档中说明为"已接线、需要 GPU/extra、不在默认保证范围内"。保留一条在用的抽取路径(淘汰或隔离遗留/StyledGrid 的重复)。每个实验模块只有在拥有真实、经 CI 测试的路径后,才提升进核心。
曾考虑的备选方案(已否决)
- 在任何 1.0 之前全部接入(方案 A):给向量配一个真实的离线 CPU 模型、增加 OCR CI 通道、连上校验器。因当下过重而否决(对逐个赢得提升资格的模块而言,这是最终方向)。
- 保持现状、诚实记录(方案 C):维持"交付契约、推迟激活"的姿态,只把差距列出来。否决——读起来就是"看着唬人却不运行的代码"。