cloner93/expenseshare/navigation

Claude Code and agent skill by cloner93/expenseshare

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Install

npx vskill@latest install cloner93/expenseshare/navigation

SKILL.md

core/navigation — SKILL.md

Purpose

Defines all navigation route contracts for the Compose Multiplatform app using kotlinx.serialization. Routes are type-safe sealed interfaces used with Jetpack Navigation Compose.


Route Hierarchy

RootRoute → top-level: Auth or Main
├── AuthRoute → Login, Register
└── MainRoute → Dashboard, Friends, Profile

Route Definitions

kotlin
// Root navigation
sealed interface RootRoute {
@Serializable data object Auth : RootRoute
@Serializable data object Main : RootRoute
}
// Auth flow
sealed interface AuthRoute {
@Serializable data object Login : AuthRoute
@Serializable data object Register : AuthRoute
}
// Main app tabs
sealed interface MainRoute {
@Serializable data object Dashboard : MainRoute
@Serializable data object Friends : MainRoute
@Serializable data object Profile : MainRoute
}

Navigation Flow

App Start
└── RootRoute.Auth
├── AuthRoute.Login (startDestination)
└── AuthRoute.Register
→ on success → RootRoute.Main (popUpTo Auth inclusive)
RootRoute.Main
├── MainRoute.Dashboard (startDestination)
├── MainRoute.Friends
└── MainRoute.Profile
→ on logout → RootRoute.Auth (popUpTo Main inclusive)

Usage Pattern

Navigating
kotlin
// Navigate and clear back stack
navController.navigate(RootRoute.Main) {
popUpTo(RootRoute.Auth) { inclusive = true }
}
// Navigate preserving state
navController.navigate(MainRoute.Friends) {
popUpTo(navController.graph.startDestinationId) { saveState = true }
launchSingleTop = true
restoreState = true
}
Declaring composable destinations
kotlin
NavHost(startDestination = RootRoute.Auth) {
composable<RootRoute.Auth> { ... }
composable<RootRoute.Main> { ... }
}

All Transitions are None

kotlin
// Applied globally in AppEntryPoint and AuthNavHost:
enterTransition = { EnterTransition.None }
exitTransition = { ExitTransition.None }
popEnterTransition = { EnterTransition.None }
popExitTransition = { ExitTransition.None }

Do NOT add custom transitions unless explicitly requested.


Rules

  • All routes MUST be @Serializable — required by Navigation Compose type-safe API
  • All routes are data object (no parameters currently) — if adding route params, use data class
  • Do NOT define UI or ViewModels in this module — routes only
  • The NavItem enum (Dashboard/Friends/Profile) lives in core/common, not here

Module Dependencies

core/navigation → kotlinx-serialization-json

Platforms Supported

Android, iOS, JVM, wasmJs

Security

  • Security scanPassed, 90 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
46
Repository forks
5
7-day trend score
0

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/cloner93/expenseshare/navigation/badge)](https://verified-skill.com/skills/cloner93/expenseshare/navigation)

Something wrong with this skill or its page? Tell us.