For agents, on top of README.md, which they read first.

  • The fact questions' wording is behaviour: it decides which rule fires, so what is refused, what is answered directly and what reaches the LLM. Change it on purpose and run op-env-run -- lmjtfy-eval facts, which is what measures it. It also changes the request, so everything kept for the old wording stops being used.
  • Prepared.request must stay the bytes Client::ask sends. The test the_request_shown_is_the_request_sent holds that.
  • A failure is free only when ClientError::nothing_billed says so. Otherwise the budget is charged the call's worst case.