MainTabShell(title="클럽", headerRight=ClubJoinHeaderAction — a "초대 코드" HeaderTextAction since 2026-09-17) → PillNav 내 클럽/둘러보기. 내 클럽 = MyClubListControls "가입한 클럽" SectionHeader (renamed 2026-09-17 from "내 클럽") → GroupedFeedList (title-less 멤버 section, ClubCard TRACKING anatomy) + conditional 게스트 section (SAME rows, GLIMPSE anatomy — isMember=false); BottomCtaBand "클럽 만들기" pins under this tab only. 둘러보기 = ClubDiscoveryControls (search + expandable filter panel) → FeedList of ClubCard GLIMPSE cards, no bottom CTA. 초대코드 = its own DetailShell route, an inline (not pinned) full-width CTA.
route · apps/mobile/app/(tabs)/clubs.tsx → club-list-screen.tsx; /clubs?tab=discover → the same screen DiscoverTab pane (/clubs/discover redirects there; the standalone screen was retired 2026-09-08); /join-club → join-club-screen.tsx
grounded in 7 source file(s)
packages/features/clubs/src/club-list-screen.tsxpackages/features/clubs/src/join-club-screen.tsxpackages/features/clubs/src/shared/club-card.tsxpackages/features/clubs/src/shared/club-discovery-controls.tsxpackages/features/clubs/src/shared/discover-filters.tsxpackages/features/clubs/src/shared/my-club-list-controls.tsxpackages/features/clubs/src/shared/club-join-header-action.tsx