Skein Lite
Retrieval-augmented generation · built end to end
A shopping assistant that knows when it doesn’t know
Skein Lite is a local-first, domain-swappable RAG platform. The demo is a storefront, an apparel brand called Aster Athletics with a shopping assistant named Sara and an escalation care specialist named Tiffany, but the engine underneath knows nothing about apparel. Swap one folder and it becomes a different store.
500
tests, all green
85.9%
router accuracy, 100% escalation recall
1.0
CI eval-gate score
The interesting problem in a retrieval system is not answering, it is refusing. A model that always answers will confidently invent an order number, a price, or a color it never saw. Most of the work here is in the seams around the model: a confidence gate that abstains on thin evidence, a governed metric layer for anything numeric, a knowledge graph for relationships, and a set of deterministic guards for the things a prompt can’t be trusted to enforce, customer privacy, prompt injection, gender-correct recommendations.
The assistant is grounded in synthetic data for a fictional brand. Every product, review, and order is invented. What’s real is the machinery: the ingestion, the hybrid retrieval, the evaluation harness, and the CI that blocks a regression before it ships.
What to read next
Architecture →
The path a question takes from keypress to grounded answer: a master-orchestrator router over specialized lanes, hybrid retrieval, the reranker, the graph and metric seams, and the domain-agnostic engine.
Evaluation →
A labeled routing eval, the single-vs-multi and model-tier experiments, a prompt-optimization loop that lifts a prompt on held-out data, an offline CI gate, RAGAS, and drift monitors, with every number regenerated from a command.
Cost & the business case →
The full proof behind “430× cheaper than a human”: every assumption, the price of each stage of a turn, the session total, and the division, all regenerated from one command.
Decisions →
Why Cohere over the alternatives, why Groq for the LLM, why a graph at all, and where I’d switch if the constraints changed.
Reliability →
The failure modes I planned for: what happens when the LLM, the vector store, or the voice service is slow or down, and the fallback for each.
Try it →
How to run it locally with no API keys, and how to talk to the assistant, the things it does well and the honest edges.
Source →
The full codebase: engine, domain packs, evaluation, the Next.js storefront, and the CI that keeps it honest.
Built to be inspected. This is not a slide deck. Every claim here maps to code you can read, and the Reliability page names each failure mode, each fallback, and the two critical issues a multi-agent adversarial review caught, all now fixed with regression tests. Naming the limits is what makes the rest credible.