android-navigation-deeplinks
Skill14 starsChanged 8 months agoMITView on GitHub
Handle navigation graphs, back stack behavior, app links, intents, and destination ownership for Android apps.
In this repository68 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .cursor/rules/android-architecture-clean.mdcCursor rule
- .cursor/rules/android-ci-cd-release-playstore.mdcCursor rule
- .cursor/rules/android-coil-compose.mdcCursor rule
- .cursor/rules/android-compose-accessibility.mdcCursor rule
- .cursor/rules/android-compose-foundations.mdcCursor rule
- .cursor/rules/android-compose-performance.mdcCursor rule
- .cursor/rules/android-compose-state-effects.mdcCursor rule
- .cursor/rules/android-compose-xml-interoperability.mdcCursor rule
- .cursor/rules/android-coroutines-flow.mdcCursor rule
- .cursor/rules/android-di-hilt.mdcCursor rule
- .cursor/rules/android-emulator-automation.mdcCursor rule
- .cursor/rules/android-gradle-build-logic.mdcCursor rule
- .cursor/rules/android-gradle-build-performance.mdcCursor rule
- .cursor/rules/android-kotlin-core.mdcCursor rule
- .cursor/rules/android-local-persistence-datastore.mdcCursor rule
- .cursor/rules/android-material3-design-system.mdcCursor rule
- .cursor/rules/android-media-files-sharing.mdcCursor rule
- .cursor/rules/android-mobile-frontend-design.mdcCursor rule
- .cursor/rules/android-modernization-upgrade.mdcCursor rule
- .cursor/rules/android-modularization.mdcCursor rule
- .cursor/rules/android-navigation-deeplinks.mdcCursor rule
- .cursor/rules/android-networking-retrofit-okhttp.mdcCursor rule
- .cursor/rules/android-performance-observability.mdcCursor rule
- .cursor/rules/android-permissions-activity-results.mdcCursor rule
- .cursor/rules/android-room-database.mdcCursor rule
- .cursor/rules/android-rxjava-to-coroutines-migration.mdcCursor rule
- .cursor/rules/android-security-best-practices.mdcCursor rule
- .cursor/rules/android-serialization-offline-sync.mdcCursor rule
- .cursor/rules/android-state-management.mdcCursor rule
- .cursor/rules/android-testing-ui.mdcCursor rule
- .cursor/rules/android-testing-unit.mdcCursor rule
- .cursor/rules/android-ui-states-validation.mdcCursor rule
- .cursor/rules/android-viewsystem-foundations.mdcCursor rule
- .cursor/rules/android-workmanager-notifications.mdcCursor rule
- android-architecture-cleanSkill
- android-ci-cd-release-playstoreSkill
- android-coil-composeSkill
- android-compose-accessibilitySkill
- android-compose-foundationsSkill
- android-compose-performanceSkill
- android-compose-state-effectsSkill
- android-compose-xml-interoperabilitySkill
- android-coroutines-flowSkill
- android-di-hiltSkill
- android-emulator-automationSkill
- android-gradle-build-logicSkill
- android-gradle-build-performanceSkill
- android-kotlin-coreSkill
- android-local-persistence-datastoreSkill
- android-material3-design-systemSkill
- android-media-files-sharingSkill
- android-mobile-frontend-designSkill
- android-modernization-upgradeSkill
- android-modularizationSkill
- android-networking-retrofit-okhttpSkill
- android-performance-observabilitySkill
- android-permissions-activity-resultsSkill
- android-room-databaseSkill
- android-rxjava-to-coroutines-migrationSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
5 rules. About 0 are common, 5 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 17
Use this skill when the request is about: android navigation graph, deep link into android app, back stack issue in compose nav.
- Distinctive: line 31
Treat loading, empty, error, offline, and permission-denied states as first-class UI states.
- Distinctive: line 32
Do not hide navigation or permission side effects inside reusable UI components.
- Distinctive: line 33
Prefer lifecycle-aware APIs over manual callback chains.
- Distinctive: line 34
Keep deep links, intents, and permission prompts testable and observable.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Android Navigation Deep Links
When To Use
- Use this skill when the request is about: android navigation graph, deep link into android app, back stack issue in compose nav.
- Primary outcome: Handle navigation graphs, back stack behavior, app links, intents, and destination ownership for Android apps.
- Handoff skills when the scope expands:
android-permissions-activity-resultsandroid-testing-ui
Workflow
- Confirm the user-visible journey, target device behavior, and failure states that matter.
- Identify the owning screens, activities, destinations, and state holders for the flow.
- Implement the flow with explicit loading, success, empty, and error handling.
- Validate accessibility, configuration changes, and back-stack behavior in the showcase apps.
- Escalate data, architecture, or release concerns to the specialized skills called out in the handoff notes.
Guardrails
- Treat loading, empty, error, offline, and permission-denied states as first-class UI states.
- Do not hide navigation or permission side effects inside reusable UI components.
- Prefer lifecycle-aware APIs over manual callback chains.
- Keep deep links, intents, and permission prompts testable and observable.
Anti-Patterns
- Assuming the happy path is enough for product flows.
- Hard-coding request codes or route strings in multiple places.
- Triggering navigation directly from repositories or network layers.
- Shipping flows without recovery UI for denied permissions or broken state.
Remediation Examples
Centralize route ownership
sealed interface OrbitRoute {
data object Board : OrbitRoute
data class Task(val taskId: String) : OrbitRoute
}Preserve expected back-stack behavior
navController.navigate(OrbitRoute.Task(taskId)) {
launchSingleTop = true
restoreState = true
}Parse deep-link arguments in one place
val taskId = intent?.data?.getQueryParameter("taskId")
require(!taskId.isNullOrBlank()) { "Missing taskId deep-link argument" }Examples
Happy path
- Scenario: Route the Compose showcase into a task details destination from a deep link.
- Command:
cd examples/orbittasks-compose && ./gradlew :app:testDebugUnitTest
Edge case
- Scenario: Preserve expected Up and Back behavior when the XML activity is cold-started from a link.
- Command:
cd examples/orbittasks-xml && ./gradlew :app:testDebugUnitTest
Failure recovery
- Scenario: Prevent confusion with permission, state, and release prompts.
- Command:
python3 scripts/eval_triggers.py --skill android-navigation-deeplinks
Done Checklist
- The implementation path is explicit, minimal, and tied to the right Android surface.
- Relevant example commands and benchmark prompts have been exercised or updated.
- Handoffs to adjacent skills are documented when the request crosses boundaries.
- Official references cover the chosen pattern and the main migration or troubleshooting path.
Official References
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

