See-thru gameboy
Architecture
Two layers, both visible. The corpus graph below is the symbolic structure the chat reasons over, derived from case-study frontmatter at request time. The pipeline at the bottom is the neural side, the actual stages a query passes through.
Hover a project for its frontmatter. The lines between projects are lateral edges, drawn where two projects share at least two technologies. Anchors sit in the inner ring; stubs and shorter engagements sit further out.
Pipeline
A turn starts with cheap safety checks, then moves through retrieval, generation, streaming polish, follow-up extraction, and a final faithfulness pass. The point is not one clever model call. It is a small chain of checks that makes the answer useful, bounded, and inspectable.
- 01
rate limit
rateLimit.checkRateLimit
IP-keyed Redis bucket, 12 req/min, runs before any parsing or model call
Keeps one visitor or bot from hammering the chat.
- 02
RAG retrieval
rag.buildSystemBlocks
MiniLM-L6-v2 hybrid (semantic + lexical), top-K chunks plus optional project-anchored chunks. Citations emitted ahead of the model stream.
Finds the case-study chunks that should ground the answer.
- 03
Anthropic Haiku 4.5
streamText (temp 0, prompt cache on static + history)
one model call per turn. System prompt carries voice, redaction rules, length guidance. Cached at the static breakpoint, second breakpoint on the most recent prior message so multi-turn hits cache.
Writes the answer from the retrieved material and the site voice.
- 04
voice filter
voiceFilterTransform
deterministic stream pass. Em-dashes restructured. Defence in depth on top of the prompt constraint.
Cleans up awkward phrasing while the answer streams.
- 05
sentence cadence
sentenceCadenceTransform
70ms hold at sentence boundaries. Synthetic pacing, makes the stream read as composed thought.
Lets the response arrive in readable beats.
- 06
faithfulness validator
validateFaithfulness
LLM-as-judge (Haiku) post-hoc. Atomic claim check vs retrieved chunks, 4s timeout, fail-soft. The response earns its badge.
Checks the final answer against its sources before showing trust labels.
- 07
citation backfill
rag.buildMentionedProjectCitations
when the answer mentions a project the retrieval pass missed, pull that project's summary chunk and append a pill. Keeps the cite row honest about what the answer references.
Adds project pills for any project named in the answer that retrieval did not surface.