ADR 0003: Audience — a general-purpose OSS library for others to build on
The primary audience is developers building their own RAG on top of RAGSpine; finance becomes one example domain, not the identity.
Status: accepted · Date: 2026-06-17
Immutable record. Exempt from drift tracking (no
covers). Supersede, don't edit.
Part of the 0002 product direction.
Context
RAGSpine carried three conflicting audience signals at once: OSS-library (Apache 2.0, PyPI name, "contributions welcome", Protocol extension points), internal enterprise tool (RESTRICTED isolation, SME review queue, pervasive financial-reporting DNA), and portfolio/reference showcase (fictional ACME demo, 943-test badge, "honest gaps" roadmap). The audience was never stated, yet it gates every downstream decision.
Decision
The primary audience is other developers building their own RAG on top of
RAGSpine — a general-purpose OSS library. Optimize for: a clean Protocol
extension surface, demonstrated (not asserted) generality, packaged CLIs, and
contributor-facing documentation. Finance becomes one example domain, not the identity.
Alternatives considered (rejected)
- Reference implementation / portfolio piece + OSS library (the originally recommended, more conservative option): optimize for legible rigor and reproducibility, treat a contributor community as out of scope. Rejected — the user wants real external users, not a showcase.
- Production internal enterprise tool: wire in the dormant code, add auth, target a deployment. Rejected as the primary identity, though the codebase plausibly originated this way.
Consequences
- "General-purpose" must be proven, forcing 0004 (full generalization) and a second-domain example.
- Dormant/half-wired code becomes a credibility liability → 0005.
- The
service/layer is reframed as a reference deployment example, not a product. - Contributor surface matters: locale packs (0007), a "how to add a backend/locale" guide, CONTRIBUTING/governance.
ADR 0002: Product direction — a general-purpose, license-clean, framework-unlocked RAG library
The umbrella north star — separate hard invariants from soft, config-/Protocol-driven flexibility — indexing the eight per-decision ADRs 0003–0010.
ADR 0004: Full generality — DomainProfile and arbitrary-dimension facts
Generalize fully — CompanyProfile becomes DomainProfile and the structured channel becomes a typed-fact store with arbitrary user-defined dimensions.