Rubric: cached answers
Written by a person. Last read by a person on 2026-09-06, 2 days ago. Its facts were checked by the eval suite on 2026-09-07.
You got an answer labeled cached and want to know what that means, or you are adding a page and the build has told you it needs a cached answer.
Enforced by check_cached_answers.
The claim
When the helper will not call a model, a reader still gets a useful answer for the page they are on, and it is labeled so they can tell.
Observable evidence
- The entries in
data/cached-answers.yaml, and whether each names a page that publishes. - Whether a default exists for pages with no entry.
- The provenance label on what the proxy returns.
The pass bar
Every entry names a page that exists. A default is present. Cached answers carry
cached-demo, distinct from generated-live.
Why this rubric exists
These are not a degraded mode. They are what every reader receives today, because no key is configured, and they remain what a reader receives whenever a rate limit or the spend ceiling is reached. A fallback that apologizes is a fallback nobody wanted to build and everybody uses.
They are written by a person rather than captured from a model. A recorded generation is a snapshot of one prompt on one day, and this is documentation.
The label carries the weight. A reader who cannot tell a cached answer from a live one cannot judge either, and the difference matters most exactly when the answer is wrong.
Ambiguous cases
An answer keyed to a page that has moved fails. It would be served to nobody and reported by nothing, which is the quietest way for content to rot.
A page with no entry passes, and gets the default. Writing an answer for every page would produce thirty-five paragraphs of the same advice, and a default that says what it is beats a specific answer that is generic.
Whether an answer is any good is out of scope here. The check counts and resolves; whether
the sentence helps a stuck reader is a fresh-eyes judgment.