Module map: where shared code lives

A discoverability contract for the four "shared code" directories, so future growth has a rule to check against instead of regrowing a second grab-bag. Decide where a new helper goes by its dependencies and its consumers, not by vibe.

Rule of thumb: isomorphic and dependency-free → src/shared/; backend-only generic helper → src/lib/; ambient .d.ts → src/types/; core-coupled CLI/session helper → src/cli/lib/.