An agent with no memory beyond its own thread relearns the same lessons every time it starts — which endpoint owns which data, which convention this codebase actually follows versus what it only claims to.
Domains are where that memory lives — one persistent, living document per area of your codebase, read by every agent working there before it does anything else. It grows the same way a good README does: a little more true, a little more complete, every time someone documents what they just learned.