<!-- kb-doc-fragment: routing -->
# Substance — `architecture/routing`

**Output path:** `{kbFolder}/architecture/routing.md`

**Topic focus:** the API/route surface — endpoints or command surface, route
groups, HTTP methods (or CLI verbs), and the auth/authorization strategy that
gates them. Describe *how the system is entered*, not what it stores.

**Discovery input to read:** the `routing` domain findings from Phase 1 (route
definitions, controllers, handlers, middleware, auth guards).

**Required output:**
- Confidence header on line 1.
- Route/endpoint groups with methods and paths (or CLI command surface).
- Auth strategy and where it is enforced.
- Middleware / interceptors in the request path.
- No persistence or deployment content.

**Not applicable:** if the project exposes no routes or command surface (e.g. a
pure library), the topic is *absent* — a certainty, not a low-confidence guess.
Write a **confident** not-applicable stub: line 1 is
`<!-- AUTO-GENERATED by /forge:init — confidence: 100% — status: not-applicable -->`,
then the `# Routing` heading and the one-sentence absence statement `No routing
surface — this project exposes no HTTP routes or command entry points.` Do NOT lower confidence — an absent topic is known with certainty.
