# Decisions: rag-quality-score-unify(最终版) ## Scale / process - sm-flow standard:Discover → Commit → Apply → Archive - Committed OpenSpec:`openspec/changes/rag-quality-score-unify/`(归档后见 archive 目录) - 废止:`rag-bm25-hybrid-drop-sdk` 中「dense L2 enrichment for threshold compatibility」 ## Key decisions 1. **Label**:仅 `dense` | `hybrid`;旧别名 canonicalize。 2. **Normalizer**:唯一 `toQualityScore`;dense=L2 公式;hybrid=rank 线性映射(batchSize)。 3. **Store**:hybrid 不回填 L2、不发 `bm25_only_*`;返回序即 RRF 序。 4. **Post-process**:`originalRank` ASC;L0 重叠只写 hitReasons;relevance/low-quality 只看 qualityScore;PRECISE 不要求 hint support。 5. **Mode**:hybrid 主路径;dense 同库对照(架构 §6.0)。 ## Trade-offs - hybrid quality 为序数分,跨 query 绝对值不可比;阈值可能需后续标定。 - 去掉 boost 改序后,「词面热语义冷」不再被后处理抬升;词面交给 BM25+RRF。 ## Risks accepted - `relevance_level` / unfiltered retry 分布变化(产品已接受)。 - 未做 live E2E / 人工 hybrid 对照评测(见 acceptance 未验证项)。