--- name: SX navigation single-source-of-truth description: Navigation must be defined once in nav-data.sx — no fragment URLs, no duplicated case statements, use make-page-fn for convention-based routing type: feedback --- Never use fragment URLs (#anchors) in the SX docs nav system. Every navigable item must have its own Lisp URL. **Why:** Fragment URLs don't work with the SX URL routing system — fragments are client-side only and never reach the server, so nav resolution can't identify the current page. **How to apply:** - `nav-data.sx` is the single source of truth for all navigation labels, hrefs, summaries, and hierarchy - `page-functions.sx` uses `make-page-fn` (convention-based) or `slug->component` to derive component names from slugs — no hand-written case statements for simple pages - Overview/index pages should generate link lists from nav-data variables (e.g. `reactive-examples-nav-items`) rather than hardcoding URLs - To add a new simple page: add nav item to nav-data.sx, create the component file. That's it — the naming convention handles routing. - Pages that need server-side data fetching (reference, spec, test, bootstrapper, isomorphism) still use custom functions with explicit case clauses - Legacy Python nav lists in `content/pages.py` have been removed — nav-data.sx is canonical