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

  • The invariants for these files are one folder up, in crates/postjevsql-pg/CLAUDE.md, which loads with this one.
  • Create nothing in _PG_init. Under shared_preload_libraries it runs in the postmaster before the fork; the rustls config, TLS state and the connection are built lazily in the backend on first use.
  • Drop of futures, streams and connections must never panic. Cancellation unwinds, and a panic during unwind aborts the backend.
  • Keep row.rs's output byte-stable. It is in every cache key; a change to how any value is written abandons every stored answer for rows holding that type. The measured to_json faults it works around are in the root CLAUDE.md, Cache, "Serialization is defined".