Skip to content

refactor(nav): the footer promised what only the nav could keep - #122

Merged
github-actions[bot] merged 1 commit into
mainfrom
refactor/footer-nav-ssot
Aug 31, 2026
Merged

refactor(nav): the footer promised what only the nav could keep#122
github-actions[bot] merged 1 commit into
mainfrom
refactor/footer-nav-ssot

Conversation

@catomean

Copy link
Copy Markdown
Collaborator

NAV_ITEMS carries the comment "only routes that actually exist belong here — a nav link to a 404 is a lie". The footer carried the same sentence about itself — and then restated six of those routes as its own literal <Link>s.

Nothing tied the two lists together. Removing a page from the nav left the footer pointing at it, with no way to notice. Both files promised the same thing and only one of them could keep it.

The fix

FOOTER_SECTIONS names hrefs instead of repeating them, and the footer renders from that. A rename in NAV_ITEMS now reaches the footer for free.

Where the footer deliberately says something shorter than the nav — "Voting" not "How voting works", "API" not "Integration" — that's an explicit label override rather than an independently typed second copy. The difference is recorded as a choice instead of looking like drift.

The sibling pillars and the source-code link already came from their own SSOTs (ECOSYSTEM_PILLARS, SOLON_GITHUB_URL) and still do.

Mutation-proven

Six tests. Deleting /security from NAV_ITEMS alone — exactly the regression this prevents — fails the suite and names the orphaned footer link by path. That's the check actually discriminating, not just passing.

npm run verify green: lint, typecheck, design:check, 82 tests.

Found by a fleet-wide navigation audit across 20 repos.

🤖 Generated with Claude Code

https://claude.ai/code/session_01XeELB8b3N4JrT2asYL9WvE

NAV_ITEMS says "only routes that actually exist belong here — a nav link to a
404 is a lie". The footer carried the same sentence about itself, and then
restated six of those routes as its own literal <Link>s. Nothing tied the two
lists together, so removing a page from the nav left the footer pointing at it
with no way to notice. Both files promised the same thing and only one of them
could keep it.

FOOTER_SECTIONS now names hrefs instead of repeating them, and the footer
renders from that. A rename in NAV_ITEMS reaches the footer for free.

Where the footer deliberately says something shorter than the nav — "Voting",
not "How voting works"; "API", not "Integration" — that is now an explicit
`label` override rather than an independently typed second copy. The
difference is recorded as a choice instead of looking like drift.

The sibling pillars and the source-code link already came from their own SSOTs
(ECOSYSTEM_PILLARS, SOLON_GITHUB_URL) and still do.

Six tests, mutation-proven: deleting /security from NAV_ITEMS alone — exactly
the regression this prevents — fails the suite and names the orphaned footer
link. Verify green (lint, typecheck, design:check, 82 tests).

Found by a fleet-wide navigation audit across 20 repos.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XeELB8b3N4JrT2asYL9WvE
@github-actions
github-actions Bot merged commit 07ffa7a into main Aug 31, 2026
2 checks passed
@github-actions
github-actions Bot deleted the refactor/footer-nav-ssot branch August 31, 2026 08:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant