RAGSpine
意思決定(ADR)

ADR 0002: プロダクトの方向性 — 汎用・ライセンスクリーンでフレームワークにロックインされない RAG ライブラリ

包括的な北極星 — ハードな不変条件と、config/Protocol 駆動によるソフトな柔軟性を分離する — 決定ごとの 8 本の ADR 0003–0010 への索引。

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

不変の記録。ADR はドリフト追跡の対象外です(covers なし)。決定を覆す場合は、 古い ADR を編集するのではなく、それを置き換える新しい ADR を追加してください。

これは包括 ADR です。北極星を記録し、2026-06-17 の構造化された設計インタビューで 確定した決定ごとの 8 本の ADR(0003–0010)への索引を提供します。

コンテキスト

RAGSpine には、コードで強制される強固な厳密性(捏造防止、出典追跡、RESTRICTED 分離、プライバシーに配慮したトレース)がありましたが、戦略は未選択のままでした。 対象ユーザー、スコープ、金融特化か汎用かという賭けはいずれも未決定であり、 多くの機能が構築されたものの、実行中のパイプラインには組み込まれていませんでした。 私たちは、基盤的な分岐点から順にトップダウンで戦略を確定しました。

決定

北極星: 決定的でライセンスクリーン、かつフレームワークにロックインされない RAG のスパイン — 素の Python で組み立てるライブラリであり、捏造防止/出典追跡/ソース分離が プロンプトによる提案ではなく、コードで強制される不変条件であること。 config によるドメイン非依存、ロケールパックによる多言語対応、あらゆるバックエンドは Protocol 経由で差し替え可能。

8 つの決定すべてを貫く共通線: 保証柔軟性 を分離すること。不変条件 (捏造防止、出典追跡、分離、依存関係のライセンス、セキュリティゲート)はハードで、 決定的であり、プラグイン化できません。それ以外のすべて(ドメイン、言語、LLM、 埋め込み、リランカー、パース戦略)はソフトであり、config または Protocol 駆動です。

#決定ADR
1対象ユーザー = 他者がその上に構築するための汎用 OSS ライブラリ0003
2DomainProfile による完全な汎用性;金融は同梱される一例にすぎない0004
3リーンなコア + experimental/extras の分離;コアに休眠コードを置かない0005
4品質 = プロパティテストとしての不変条件 + 実データの検索ベンチマーク 1 本0006
5多言語 = 5 言語を見据えた設計、2 言語で出荷(中国語 + 英語)、ロケールパック0007
6プロンプト = PromptRegistry の背後にパッケージ化された ragspine/prompts/<locale>/0008
7フレームワーク非依存 = フレームワークロックインなし + 寛容ライセンスのみ;リーンなデフォルト0009
8インテント解析 = 決定的なセキュリティゲート + プラグイン可能な IntentParser0010

帰結

ここから導かれる短期のワークストリーム(これ以上の決定は不要):

  • CompanyProfileDomainProfile;ハードコードされたメトリック語彙を common/glossary.py から config へ移動する。
  • 構造化チャネルのスキーマ: fact_metric の 4 タプル → ユーザー定義の任意の次元へ。
  • インテントパーサーから決定的な SecurityGate を抽出する;IntentParser を Protocol にする。
  • PromptRegistry + ragspine/prompts/<locale>/
  • ロケールの継ぎ目: トークナイザーレジストリ + メッセージカタログ + LocaleProfile
  • CI: 依存関係ライセンスゲート;scripts/check_doc_drift.py を組み込む。
  • 金融以外の第 2 ドメインの例 1 つ + 実データの検索ベンチマーク 1 本 (「汎用」と「hybrid > BM25」を主張から証拠へ変える)。
  • README/ポジショニングの文言を書き直す。

派生的な立場(個別にはインタビューしていない;誤りがあれば指摘を):

  • FastAPI + RQ の service/ レイヤーはリファレンスデプロイの例であり、コアの 保証ではない(0003 + 0005 から導かれる)。したがって、その認証の欠如は、サービスを 第一級の成果物に昇格させない限り、短期の優先事項ではない。
  • 完全な config 駆動の振る舞いは DomainProfile(0004)に包含される。

リスク:

  • 完全な汎用化(0004)は最も重い賭けである — 本物のリファクタリングであり、元の 金融制約 から生まれた 厳密性を薄めてしまうリスクがある。実装では一線を守ら なければならない: いかなる不変条件も弱めることなく汎用化すること。
  • 8 つの決定を合わせると、単独著者による新規の v0.1 にしては大きな表面積を描くことになる。 作業は「まずリーンなコアを信頼に足るものにし、その後 experimental モジュールを 一つずつ昇格させる」という順序で進めること。一度にすべてを行わないこと。

このページ