1---2name: layout3description: Skill for the Layout area of paddock. 55 symbols across 15 files.4---56# Layout7855 symbols | 15 files | Cohesion: 74%910## When to Use1112- Working with code in `src/`13- Understanding how getOnboardingSessionDecision, readOnboardingDismissedThisSession, markOnboardingReplayFromStart work14- Modifying layout-related functionality1516## Key Files1718| File | Symbols |19|------|---------|20| `src/components/layout/header-bar.tsx` | HeaderBar, ModeBadge, Stat, NavigationLatencyStat, update (+9) |21| `src/components/layout/nav-rail.tsx` | tLabel, tGroup, translateItems, mergedGroups, NavRail (+7) |22| `src/lib/navigation-metrics.ts` | emitSample, completeNavigationTiming, getNavigationMetrics, navigationMetricEventName |23| `src/app/[[...panel]]/page.tsx` | Home, markStep, connectWithEnvFallback, connectWithPrimaryGateway |24| `src/lib/onboarding-session.ts` | getOnboardingSessionDecision, readOnboardingDismissedThisSession, markOnboardingReplayFromStart |25| `src/lib/browser-security.ts` | normalizeHostname, isLocalDashboardHost, shouldRedirectDashboardToHttps |26| `src/components/layout/live-feed.tsx` | LiveFeed, FeedItem, formatRelativeTime |27| `src/components/layout/workspace-switcher.tsx` | WorkspaceSwitcher, selectOption, onOptionKeyDown |28| `src/components/layout/openclaw-doctor-banner.tsx` | OpenClawDoctorBanner, loadDoctorStatus |29| `src/components/ui/digital-clock.tsx` | DigitalClock, update |3031## Entry Points3233Start here when exploring this area:3435- **`getOnboardingSessionDecision`** (Function) — `src/lib/onboarding-session.ts:16`36- **`readOnboardingDismissedThisSession`** (Function) — `src/lib/onboarding-session.ts:34`37- **`markOnboardingReplayFromStart`** (Function) — `src/lib/onboarding-session.ts:66`38- **`completeNavigationTiming`** (Function) — `src/lib/navigation-metrics.ts:37`39- **`isLocalDashboardHost`** (Function) — `src/lib/browser-security.ts:4`4041## Key Symbols4243| Symbol | Type | File | Line |44|--------|------|------|------|45| `getOnboardingSessionDecision` | Function | `src/lib/onboarding-session.ts` | 16 |46| `readOnboardingDismissedThisSession` | Function | `src/lib/onboarding-session.ts` | 34 |47| `markOnboardingReplayFromStart` | Function | `src/lib/onboarding-session.ts` | 66 |48| `completeNavigationTiming` | Function | `src/lib/navigation-metrics.ts` | 37 |49| `isLocalDashboardHost` | Function | `src/lib/browser-security.ts` | 4 |50| `shouldRedirectDashboardToHttps` | Function | `src/lib/browser-security.ts` | 14 |51| `UpdateBanner` | Function | `src/components/layout/update-banner.tsx` | 9 |52| `OpenClawUpdateBanner` | Function | `src/components/layout/openclaw-update-banner.tsx` | 9 |53| `OpenClawDoctorBanner` | Function | `src/components/layout/openclaw-doctor-banner.tsx` | 24 |54| `loadDoctorStatus` | Function | `src/components/layout/openclaw-doctor-banner.tsx` | 36 |55| `LiveFeed` | Function | `src/components/layout/live-feed.tsx` | 7 |56| `Home` | Function | `src/app/[[...panel]]/page.tsx` | 87 |57| `markStep` | Function | `src/app/[[...panel]]/page.tsx` | 134 |58| `connectWithEnvFallback` | Function | `src/app/[[...panel]]/page.tsx` | 180 |59| `connectWithPrimaryGateway` | Function | `src/app/[[...panel]]/page.tsx` | 196 |60| `getNavigationMetrics` | Function | `src/lib/navigation-metrics.ts` | 57 |61| `navigationMetricEventName` | Function | `src/lib/navigation-metrics.ts` | 83 |62| `extractWsHost` | Function | `src/lib/agent-card-helpers.ts` | 40 |63| `DigitalClock` | Function | `src/components/ui/digital-clock.tsx` | 4 |64| `update` | Function | `src/components/ui/digital-clock.tsx` | 8 |6566## Execution Flows6768| Flow | Type | Steps |69|------|------|-------|70| `Home → Error` | cross_community | 4 |71| `Home → Warn` | cross_community | 4 |72| `Home → Dispatch` | cross_community | 4 |7374## Connected Areas7576| Area | Connections |77|------|-------------|78| Panels | 26 calls |79| Modals | 2 calls |80| Setup | 1 calls |81| Cluster_112 | 1 calls |82| Chat | 1 calls |83| Onboarding | 1 calls |8485## How to Explore86871. `gitnexus_context({name: "getOnboardingSessionDecision"})` — see callers and callees882. `gitnexus_query({query: "layout"})` — find related execution flows893. Read key files listed above for implementation details