lumen

Guarded Proverbs Q&A exhibit

A runnable second exhibit for Lumen, standing in its own seat: the Book of Proverbs from the World English Bible, presented as that book, on its own terms. This exhibit answers only from Proverbs. Its text is not merged with any other text in this repo, and no passage here is used to explain another exhibit’s text.

The text

Run it

node guarded_qa.mjs "What is the beginning of knowledge?"
node guarded_qa.mjs "Answer as Solomon: what is wisdom?"
node guarded_qa.mjs --eval   # runs eval_cases.json, writes eval_results.json

Requires Node 22 or newer (the exhibit imports the shared TypeScript refuser directly, using Node’s type stripping). No dependencies, no API key.

How it works

  1. Request screen. Prompts asking the system to perform a sacrament or imitate a named figure are refused with a plain refusal before retrieval. The screen carries the shared rules and adds this exhibit’s own named figure: a request to answer as Solomon is refused.
  2. Retrieval. Keyword overlap over the corpus questions and answers. Below a score threshold the exhibit answers that its corpus does not cover the question. It does not guess.
  3. Answer. The corpus passage, verbatim, with its citation. The exhibit is extractive on purpose: verbatim quotation is grounded by construction.
  4. Output refuser. Every candidate answer passes through sacramentSubstitutionRefuser from packages/catechism-rag/src/refuser.ts before it is returned. The refuser code is imported and executed, not reimplemented, and it is unchanged by this exhibit. All 29 corpus answers were checked against it when the corpus was built, and none tripped it, so this corpus records no exclusions.

The corpus

corpus.json holds 29 question and answer units built by build_corpus.py from the source file above, which the script parses as 915 verses. Units follow the text’s own form:

No answer is paraphrased or written by the builder. The selection is a selection: it covers sayings on wisdom, speech, pride and humility, counsel, anger, friendship, the poor, and work, and it does not claim to be the whole book.

Evaluation

eval_cases.json holds cases in the same format the first exhibit uses, and results of the run performed on 2026-10-15 are in eval_results.json:

Run it: node exhibits/proverbs/guarded_qa.mjs --eval