Files
rose-ash/.claude/projects/-root-rose-ash/memory/feedback_sx_navigation.md
giles fac97883f9 Spec explorer data endpoint, spec file finder, browser render test (failing)
- Add spec-explorer-data-by-slug helper with _SPEC_SLUG_MAP
- _find_spec_file searches spec/, web/, shared/sx/ref/ directories
- defpage specs-explore-page uses :data for server-side data fetch
- test_evaluator_renders_in_browser: failing test for client-side rendering
  (client re-evaluates defpage content, find-spec unavailable — pre-existing)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 17:36:21 +00:00

1.3 KiB

name, description, type
name description type
SX navigation single-source-of-truth Navigation must be defined once in nav-data.sx — no fragment URLs, no duplicated case statements, use make-page-fn for convention-based routing 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