RAGSpine
意思決定(ADR)

ADR 0005: リーンコア — 休眠中の機能を experimental/extras として隔離する

デフォルトのオフラインパスで実際に動作するものだけを出荷し、OCR、本物のセマンティックベクトル、二重チャネル検証器を、明確にラベル付けされた experimental モジュール/extras に移す。

ステータス: accepted · 日付: 2026-06-17

不変の記録。ドリフト追跡の対象外(covers なし)。編集せず、置き換え(supersede)で対応すること。

0002 のプロダクト方針の一部。0003 によってゲートされる。

コンテキスト

ほぼすべてのサブシステムに、ビルドおよびテストはされているものの実行中のパイプラインには 接続されていないコードが存在していた。すなわち、OCR によるスキャン PDF 抽出器(レビューキューに 保留されたまま、一度も呼び出されていない)、二重チャネル検証器(孤立しており、自身のテスト だけが呼び出している)、ベクトルチャネル(完全に接続されているが、唯一のオフラインバックエンドは 自称・非セマンティックな字句ハッシュであり、本物の埋め込みは GPU インフラまで先送りされている)、 カラーレジェンド検出(テスト専用)、OpenAIProvider のスタブ、そして 2 系統の並行する抽出ファミリー (レガシーな extract_factsStyledGrid)である。人々が評価対象とするライブラリにおいて、 実際には動かない、死んでいるように見えるコードは信頼の問題である。

決定

デフォルトのオフラインパスで動作するものだけを含むリーンコアを出荷する: BM25 + 構造化チャネル + agent + 捏造防止。OCR、本物のセマンティックベクトル、 二重チャネル検証器は、明確にラベル付けされた experimental モジュール / extras に移し、 「接続済みだが GPU/extra が必要で、デフォルトの保証の対象外」と文書化する。単一の稼働中の 抽出パスを維持する(レガシー/StyledGrid の重複は廃止または隔離する)。各 experimental モジュールは、CI でテストされた実際のパスを備えて初めてコアへ昇格される。

検討した代替案(却下)

  • いかなる 1.0 よりも前にすべてを接続する(オプション A): ベクトルに本物のオフライン CPU モデルを与え、OCR の CI レーンを追加し、検証器を接続する。現時点では重すぎるとして却下 (個々のモジュールが昇格に値するようになった際の、最終的な方向性ではある)。
  • 現状維持のまま正直に文書化する(オプション C): 「契約は出荷し、有効化は先送りする」 という姿勢を残し、ギャップを列挙するだけにする。却下 — 「見栄えは良いが動かないコード」 と受け取られてしまうため。

帰結

  • デフォルトの pip install 体験は正直で、エンドツーエンドに実行可能なものになるが、その代償 としてデフォルトでは非セマンティックとなる(0009 のリーンデフォルトと整合する)。
  • README の「honest gaps」は、すべての experimental モジュールを明確に示さなければならない。
  • 昇格基準を定義する: モジュールは、CI でテストされた実際のパスを持ち、(検索の場合は) 0006 のベンチマークを裏付けたときにコアに入る。

このページ