Exarch’s modules form a DAG
Exarch’s top-level modules form a directed acyclic graph: a crate:: reference from a module to one that already reaches it, outside tests and comments, is a build break.
The layers, leaves first (see exarch-architecture and exarch):
clock,latch,cancel,card,app,skill,libraryproviderrecordbusscheduleenquiryshell_evalagentboottui,headlesscli,lib
Each boundary says what the lower layer is spared:
providerknows norecord: a provider speaks the wire and nothing of the session’s durable log.recordknows nobus: it publishes through itsPublishtrait, never to a concrete bus.busknows noagent: the inbox’sStampandcancel::Tokensuffice.shell_evalknows noagent: the desk is reached throughral_core::carrier::Host.promptandenquiryknow noagent: both are read by the agent, never the converse.
Pinned by exarch/tests/layering.rs.