Ask the library

Ask a question. Get an answer with its sources.

On any document, the Ask button opens an assistant that answers from the whole library you can see, not only the page in front of you. Every answer cites the passages it came from.

Illustration: a library reference desk with an open book and a small brass bell under a brass lamp, tall bookshelves and a rolling ladder behind.
How it answers

Grounded, cited, and streamed.

The open document is a hint for the search, never a limit. The assistant retrieves passages from across the library, shows its sources above the answer while the answer is still being written, and marks each claim with a numbered citation.

It is told never to invent a document, section, decision, or number, and to say plainly when the library does not contain the answer. Answers render the formats the library is written in: Markdown, highlighted code, tables, Mermaid diagrams, and math.

Lectern's viewer with the Ask the library panel open beside a runbook: the question, a row of numbered source chips, and an answer that quotes the runbook with citation markers.Lectern's viewer with the Ask the library panel open beside a runbook: the question, a row of numbered source chips, and an answer that quotes the runbook with citation markers.
An answer about rolling back a release, with the runbook cited. Enlarge to see the full screen.
The rules it keeps

Your access decides what it can say.

It sees only what you can open
Retrieval uses the same visibility rule as the catalog, search, and content fetches, applied inside the database query. An answer can never draw on a document you cannot open, because the passage is never retrieved.
Your conversations are yours
You can list, reopen, rename, and delete your own threads. A thread is invisible to every other reader, and there is no admin override. Your question is saved before generation starts, so a failed answer never loses your words.
Built from the Markdown
The index reads each document's Markdown rendition and nothing else, so it indexes the words and not the markup around them. Publishing refreshes the index for just the documents it touched.
It says what it can do
Search and generation are independent. If a deployment has one without the other, the panel says which, and with no model configured, asking still returns the relevant passages.
Under the hood

Two kinds of search, fused.

Retrieval combines Postgres full-text search with embedding similarity and fuses the two rankings by reciprocal rank. Building the index is an admin action, not a reader write: it rebuilds the passages for the whole library, so it sits behind the admin key.