For agents, on top of README.md, which they read first.
- One protocol layer, one retry policy:
jev-protocolandjev-client. A second copy of either in a consumer, or a retry loop injev-httporjev-worker, is the duplication this repo exists to remove. - The split is the I/O line. Add a crate only when a consumer needs one part without the rest, or the parts differ in dependencies or platform.
- Consumers carry this repo as a git submodule (
third-party/jevcrates; jevsnes atthird-party/rust/jevcrates, built through reindeer) and depend on its crates by path. A change here reaches a consumer when it moves its submodule pin. Work in~/jevcrates, not in a consumer's submodule checkout. - The remote is the private
deizel/jevcrates. Pushing still needs the owner's yes each time. - Every README is a chapter of lmjtfy's book (Chapter 16 is this root;
Chapter 21½ is
jev-mock/src), ending in a Previous / Up / Next line in the reading order root, jev-protocol, jev-client, jev-worker, jev-http, jev-mock, each crate'ssrc/(and its subfolders, thentests/) right after the crate. A new folder gets its README and CLAUDE.md, and its neighbours' navigation lines move with it.