Request Path
One small `HttpServer` binds on localhost, hands every request to one handler, and routes by literal path.
• `handler` parses the URI and query string.
• `route` dispatches to HTML or JSON responses.
• `send!` writes the response and handles HEAD correctly.
State And Filesystem
The app is intentionally thin. Its only durable local state today is the repo-growth snapshot file under `.cache/repo-growth.edn`.
• `repo-growth-summary` walks the parent repo and annotates recency.
• `capture-repo-snapshot!` keeps the last 24 structure snapshots.
• `git-status-map` shells out once and decorates paths with drift.
Presentation Layer
All public surfaces are server-rendered strings with shared CSS plus route-specific style blocks.
• `html-page` provides the shared shell.
• `agency-page`, `architectural-atlas-page`, and `repo-growth-page` are route-local compositions.
• `hydra-page` is the one route with heavy client-side behavior.
Current Brittle Bits
The app is coherent enough to serve, but several seams are still narrow and hand-built.
• One namespace still owns data, routing, CSS, and HTTP.
• HTML is concatenated strings instead of templated views.
• Validation is external and shallow; there are no Clojure tests yet.