1@README.md 2 3- **The invariants for these files are one folder up**, in 4 `crates/postjevsql/CLAUDE.md`, which loads with this one; the design 5 rules are the root `CLAUDE.md`'s *SQL surface*, *Execution* and *Cache*. 6- **A judgement future must never call Postgres.** Cache reads it needs 7 mid-search go through `scan::on_backend`; writes go through `settle` 8 (receipts). The `Judge` trait in `postjevsql-pg/src/scan/mod.rs` states 9 the rule; the future is polled inside the executor's wait. 10- **Nothing is cached for a NULL.** Under `jev.on_error = unsure` a failed 11 judgment is NULL and leaves no `jev_cache` row; a `Failure` that is not a 12 failed judgment (`is_failed_judgment` false) still raises. 13- **Never hash or store a re-serialized copy of what was sent.** The key, 14 the stored `state` and `question`, and the request body all come from the 15 same bytes (`jev_protocol::question_bytes` and the row's `Json`).