Frontend Maestro
nekomangaorg/Neko
Orchestrates macro-level UI architecture, complex Jetpack Compose structures, and screen-to-screen flows.
Implement navigation in Jetpack Compose using Navigation 3. An agent skill from new-silvermoon/awesome-android-agent-skills.
$ npx skills add new-silvermoon/awesome-android-agent-skills --skill navigation3 -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install new-silvermoon/awesome-android-agent-skills navigation3 --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/new-silvermoon/awesome-android-agent-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/ui/compose-navigation .claude/skills/navigation3 && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "navigation3" agent skill from https://github.com/new-silvermoon/awesome-android-agent-skills/tree/main/.github/skills/ui/compose-navigation into .claude/skills/navigation3/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "navigation3", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/new-silvermoon/awesome-android-agent-skills/tree/main/.github/skills/ui/compose-navigationType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add new-silvermoon/awesome-android-agent-skills --skill navigation3 -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install new-silvermoon/awesome-android-agent-skills navigation3 --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/new-silvermoon/awesome-android-agent-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.github/skills/ui/compose-navigation .agents/skills/navigation3 && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "navigation3" agent skill from https://github.com/new-silvermoon/awesome-android-agent-skills/tree/main/.github/skills/ui/compose-navigation into .agents/skills/navigation3/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "navigation3", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add new-silvermoon/awesome-android-agent-skills --skill navigation3 -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install new-silvermoon/awesome-android-agent-skills navigation3 --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/new-silvermoon/awesome-android-agent-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.github/skills/ui/compose-navigation .cursor/skills/navigation3 && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "navigation3" agent skill from https://github.com/new-silvermoon/awesome-android-agent-skills/tree/main/.github/skills/ui/compose-navigation into .cursor/skills/navigation3/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "navigation3", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/new-silvermoon/awesome-android-agent-skills.git --path .github/skills/ui/compose-navigation--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add new-silvermoon/awesome-android-agent-skills --skill navigation3 -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install new-silvermoon/awesome-android-agent-skills navigation3 --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/new-silvermoon/awesome-android-agent-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.github/skills/ui/compose-navigation .gemini/skills/navigation3 && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "navigation3" agent skill from https://github.com/new-silvermoon/awesome-android-agent-skills/tree/main/.github/skills/ui/compose-navigation into .gemini/skills/navigation3/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "navigation3", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install new-silvermoon/awesome-android-agent-skills navigation3Installs for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add new-silvermoon/awesome-android-agent-skills --skill navigation3 -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/new-silvermoon/awesome-android-agent-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/.github/skills/ui/compose-navigation .github/skills/navigation3 && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "navigation3" agent skill from https://github.com/new-silvermoon/awesome-android-agent-skills/tree/main/.github/skills/ui/compose-navigation into .github/skills/navigation3/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "navigation3", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add new-silvermoon/awesome-android-agent-skills --skill navigation3 -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install new-silvermoon/awesome-android-agent-skills navigation3 --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/new-silvermoon/awesome-android-agent-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.github/skills/ui/compose-navigation .opencode/skills/navigation3 && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "navigation3" agent skill from https://github.com/new-silvermoon/awesome-android-agent-skills/tree/main/.github/skills/ui/compose-navigation into .opencode/skills/navigation3/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "navigation3", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
navigation3Implement navigation in Jetpack Compose using Navigation 3. An agent skill from new-silvermoon/awesome-android-agent-skills.
Navigation3 is an agent skill from new-silvermoon/awesome-android-agent-skills. Implement navigation in Jetpack Compose using Navigation 3. Use when asked to build state-driven navigation, manage back stacks, scope ViewModels, implement adaptive layouts, or migrate from Navigation Compose.
Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Mobile, covering Android development and Responsive design. It works with Jetpack Compose. The repository describes itself as: A collection of standardized Agent Skills to teach GitHub Copilot, Claude, Gemini and Cursor about modern Android development (Kotlin, Jetpack Compose, etc.). The licence is Apache-2.0.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 82900ea. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are kotlin).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Navigation3 loads about 1.9k tokens when it runs. Until then it costs about 56 tokens; SKILL.md has 377 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from new-silvermoon/awesome-android-agent-skills at commit 82900ea, republished under its Apache-2.0 licence (© new-silvermoon). 377 words, ~1,932 tokens.
.claude/skills/navigation3/SKILL.md (or your agent's skills folder).Implement state-driven navigation in Jetpack Compose using Navigation 3. Unlike Navigation Compose, Navigation 3 models navigation as application state rather than through a NavController. This skill covers navigation keys, back stack management, ViewModel scoping, entry decorators, adaptive layouts, deep links, animations, state restoration, and testing.
Add the Navigation 3 dependencies:
// build.gradle.kts
dependencies {
implementation("androidx.navigation3:navigation3-runtime:1.0.0-alpha08")
implementation("androidx.navigation3:navigation3-ui:1.0.0-alpha08")
// Lifecycle integration
implementation("androidx.lifecycle:lifecycle-viewmodel-navigation3:2.9.2")
// Serialization
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1")
}
// Enable serialization plugin
plugins {
kotlin("plugin.serialization") version "2.2.0"
}Navigation destinations are represented by immutable serializable objects.
import kotlinx.serialization.Serializable
@Serializable
data object Home
@Serializable
data class Profile(
val userId: String
)
@Serializable
data class Product(
val productId: String,
val showReviews: Boolean = false
)
@Serializable
data object SettingsKeys become your navigation state.
Navigation 3 replaces NavController with a mutable state back stack.
@Composable
fun MyApp() {
val backStack = remember {
mutableStateListOf<Any>(Home)
}
AppNavDisplay(backStack)
}@Composable
fun AppNavDisplay(
backStack: SnapshotStateList<Any>
) {
NavDisplay(
backStack = backStack,
onBack = {
if (backStack.size > 1) {
backStack.removeLast()
}
}
) { key ->
when (key) {
Home ->
HomeScreen(
onProfileClick = {
backStack += Profile(it)
}
)
is Profile ->
ProfileScreen(
userId = key.userId
)
is Product ->
ProductScreen(
productId = key.productId,
showReviews = key.showReviews
)
Settings ->
SettingsScreen()
}
}
}backStack += Profile("user123")backStack.removeLast()backStack[backStack.lastIndex] = HomebackStack.clear()
backStack += Homewhile (backStack.size > 1) {
backStack.removeLast()
}Arguments already exist inside the navigation key.
when (val key = currentKey) {
is Profile -> {
ProfileScreen(
userId = key.userId
)
}
is Product -> {
ProductScreen(
productId = key.productId
)
}
}// CORRECT
backStack += Profile(user.id)
// Fetch object inside ViewModel
class ProfileViewModel(
savedStateHandle: SavedStateHandle,
repository: UserRepository
) : ViewModel() {
val profile = savedStateHandle.toRoute<Profile>()
val user =
repository.getUser(profile.userId)
}// INCORRECT
backStack += User(...)
backStack += ProductRepository(...)
backStack += ProductViewModel(...)Navigation 3 scopes ViewModels using entry decorators.
NavDisplay(
backStack = backStack,
entryDecorators = listOf(
rememberSceneSetupNavEntryDecorator(),
rememberSavedStateNavEntryDecorator(),
rememberViewModelStoreNavEntryDecorator()
)
) { key ->
// destinations
}class ProfileViewModel(
savedStateHandle: SavedStateHandle
) : ViewModel() {
val profile =
savedStateHandle.toRoute<Profile>()
}Navigation 3 uses decorators to attach lifecycle functionality.
rememberSceneSetupNavEntryDecorator()Creates the navigation scene for each entry.
rememberSavedStateNavEntryDecorator()Automatically restores destination state after process recreation.
rememberViewModelStoreNavEntryDecorator()Scopes ViewModels to each navigation entry.
Navigation 3 integrates with Material Adaptive layouts.
NavDisplay(
backStack = backStack,
sceneStrategy = rememberListDetailSceneStrategy()
)Use adaptive scene strategies to automatically switch between:
Deep links should resolve into navigation keys.
fun handleDeepLink(uri: Uri) {
val userId =
uri.lastPathSegment ?: return
backStack += Profile(userId)
}Avoid manually constructing route strings.
Navigation transitions are defined using scene transitions.
NavDisplay(
backStack = backStack,
transitionSpec = {
fadeIn() togetherWith fadeOut()
}
)Navigation 3 animation APIs may evolve while in alpha.
Navigation keys are serializable and automatically restored.
val backStack = rememberSaveable(
saver = navBackStackSaver()
) {
mutableStateListOf(Home)
}Always ensure keys are serializable.
Navigation becomes simple because it is state-driven.
@Test
fun navigateToProfile() {
val backStack =
mutableStateListOf<Any>(Home)
backStack += Profile("123")
assertEquals(
Profile("123"),
backStack.last()
)
}Compose UI tests can verify screen rendering by inspecting the current back stack.
| Navigation Compose | Navigation 3 |
|---|---|
NavController | Mutable back stack |
NavHost | NavDisplay |
navigate() | backStack += Key |
popBackStack() | removeLast() |
| String routes | Serializable keys |
composable() | when(key) |
| Navigation graph | State-driven destinations |
navigation/
AppNavigation.kt
NavigationKeys.kt
NavigationDisplay.kt
feature/
home/
profile/
settings/rememberSaveable for state restoration© new-silvermoon, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .github/skills/ui/compose-navigation of new-silvermoon/awesome-android-agent-skills.
Open the folder on GitHubat commit 82900ea
Navigation3 next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Navigation3 this skillnew-silvermoon/awesome-android-agent-skills | 972 | — | ~1.9k | Automated safety check: Pass | Apache-2.0 | |
| Frontend Maestronekomangaorg/Neko | 2.8k | — | ~1.3k | Automated safety check: Pass | Apache-2.0 | |
| Compose Screens Footgunsmaxrave-dev/kotlin-footguns | 1.1k | — | ~5.5k | Automated safety check: Pass | GPL-3.0 | |
| Android Compose Patternsmakifbaysal/tasktrooper | 112 | — | ~1.9k | Automated safety check: Pass | Apache-2.0 | |
| Android Material Guidelineszoonk/zoonk | 157 | — | ~1.1k | Automated safety check: Pass | MIT | |
| Android Designhashgraph-online/awesome-codex-plugins | 1.3k | — | ~2.5k | Automated safety check: Pass | Apache-2.0 |
nekomangaorg/Neko
Orchestrates macro-level UI architecture, complex Jetpack Compose structures, and screen-to-screen flows.
maxrave-dev/kotlin-footguns
Compose screen and interaction traps: navigation, adaptive layout, window insets, pagers, toolbars, sheets, list drag and selection, sliders, text fields, settings UI, one-shot effects.
makifbaysal/tasktrooper
A skill your agent uses when building native Android with Jetpack Compose - stateless composables, state hoisting, ViewModel-owned state, edge-to-edge, predictive back, adaptive layout, atomic…
zoonk/zoonk
A skill your agent uses when designing, reviewing, or implementing Android UI or features for phones, tablets, foldables, ChromeOS, desktop windowing, Wear OS, Android TV, Android for Cars, Android…
hashgraph-online/awesome-codex-plugins
A skill your agent uses when the user asks for an Android app, Compose UI, Material 3, Material You, Material 3 Expressive, Pixel-style app, foldable/adaptive layout, Play Store deliverable, React…
hamen/material-3-skill
Implement Google's Material Design 3 (Material You) UI system.
new-silvermoon/awesome-android-agent-skills
Best practices for implementing Android ViewModels using Kotlin 2.3+ Explicit Backing Fields, StateFlow for UI state, and SharedFlow for one-off events.
Works with
Categories
Implement navigation in Jetpack Compose using Navigation 3. An agent skill from new-silvermoon/awesome-android-agent-skills. Navigation3 is an agent skill from new-silvermoon/awesome-android-agent-skills. Implement navigation in Jetpack Compose using Navigation 3.
Navigation3 fits situations like: asked to build state-driven navigation; manage back stacks; scope ViewModels; implement adaptive layouts.
Run `npx skills add new-silvermoon/awesome-android-agent-skills --skill navigation3 -a claude-code`. Or copy the skill folder (.github/skills/ui/compose-navigation in new-silvermoon/awesome-android-agent-skills) into .claude/skills/navigation3 in your project. Claude Code loads it when a task matches its description.
Run `npx skills add new-silvermoon/awesome-android-agent-skills --skill navigation3 -a codex`. Or copy the skill folder (.github/skills/ui/compose-navigation in new-silvermoon/awesome-android-agent-skills) into .agents/skills/navigation3 in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add new-silvermoon/awesome-android-agent-skills --skill navigation3 -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/navigation3, .gemini/skills/navigation3, .github/skills/navigation3 and .opencode/skills/navigation3 in your project.
SKILL.md names no scripts, command-line tools or credentials: Navigation3 is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Navigation3 is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.9k tokens (SKILL.md is roughly 7.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Navigation3: Frontend Maestro (nekomangaorg/Neko, 2.8k stars), Compose Screens Footguns (maxrave-dev/kotlin-footguns, 1.1k stars), Android Compose Patterns (makifbaysal/tasktrooper, 112 stars) and Android Material Guidelines (zoonk/zoonk, 157 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
new-silvermoon (a GitHub user) maintains it in new-silvermoon/awesome-android-agent-skills, which has 972 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on July 27, 2026.
Source: new-silvermoon/awesome-android-agent-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.