Skip to content
Agentmart
Submit a tool

android-appshell-error-handling

Defines Android app-shell common-error handling where feature ViewModels notify common errors and AppShell owns global UI, root navigation, Navigation3 back…

Skill by chonamdoo

IndexedMIT
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/chonamdoo-android-appshell-error-handling

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Defines Android app-shell common-error handling where feature ViewModels notify common errors and AppShell owns global UI, root navigation, Navigation3 back stack resets, SessionExpired handling, and Retrofit CallAdapter error mapping. Use when implementing or reviewing Android Kotlin Compose app-wide error handling.

Use cases: design

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/android-appshell-error-handling

What's inside

Skill name
android-appshell-error-handling
Description
Defines Android app-shell common-error handling where feature ViewModels notify common errors and AppShell owns global UI, root navigation, Navigation3 back stack resets, SessionExpired handling, and Retrofit CallAdapter error mapping. Use when implementing or reviewing Android Kotlin Compose app-wide error handling.
License
MIT
Instructions
96 lines in SKILL.md · view on GitHub

Files (2)

  • SKILL.md
  • openai.yaml · agents/

SKILL.md (first lines)

# Android AppShell Error Handling

Use this with `code-generation-discipline` for Android app-wide error handling
implementation or review.

## Quick start

1. Use this for common errors whose UI or side effects must be owned above feature screens: `SessionExpired`, `Maintenance`, `Forbidden`, and server-wide business codes.
2. Apply the required shared contract below before the Android-specific rules.
3. If the task is ordinary screen `UiState`, ViewModel DI, `UiModel` mapping, or stateless Compose rendering without global hosts/root reset, use the selected contract's presentation guidance (`android-clean-presentation-architecture` in Clean mode) instead.


## When To Use

- App-wide common error dialog, snackbar, toast, or maintenance UI work.
- `SessionExpired`, `Maintenance`, `Forbidden`, or server-wide business code
  handling.
- Navi3 root back stack ownership, root flow reset, or login redirect work.
- Retrofit CallAdapter, mapper, ViewModel, or AppShell common error review.

## Do not use for

- Feature-local validation or fetch errors that should render inline as screen `UiState`.
- General ViewModel, Compose screen, DI, or presentation mapper design without AppShell-owned global error UI/root navigation; use the selected contract's presentation guidance (`android-clean-presentation-architecture` in Clean mode).


## Shared Error Contract

Read [`app-shell-error-contract`](../app-shell-error-contract/SKILL.md) before the platform rules below. It is the source of truth for classification, queue identity, acknowledgement, retry, and metadata preservation.

## Core Contract

Keep app-wide error UI and root navigation above feature screens:

- `Activity` applies the theme and calls `AppShell` or the app composable.
- `AppShell` owns the Navi3 root back stack, top-level navigation, and full-screen
  `NavDisplay`.
- `AppShell` hosts app-wide common error dialogs, snackbars, toasts, and other
  shared app dialogs.
- Feature routes and screens render local UI only.

Feature ViewModels notify common errors. They do not own `NavController`,
`Context`, dialogs, toasts, snackbar hosts, or login-flow stack resets.


## Development Checklist

- Observe pending common errors from AppShell with lifecycle-aware Compose state.
- For `SessionExpired`, clear the root back stack and add the login route after
  the user confirms.
- For maintenance mode, clear the root back stack and add the maintenance route
  after confirmation when that flow exists.
- Use Navi3 for post-confirm navigation only. Do not put common error dialogs in
  the Navi3 back stack.

## Boundary Checklist

- Retrofit CallAdapters may normalize API failures into the project's established
  failure representation.
- Remote data sources and repositories stay free of dialog, navigation, toast,
  snackbar, and Android UI concerns.
- Do not add a `BaseViewModel` solely to centralize common error display.
- Do not use an OkHttp Interceptor as a UI or navigation boundary.

## Platform-Specific Forbidden Patterns

- Do not let feature ViewModels own Navi3 root back stack mutation for common
  errors.
- Do not put global common error dialogs in feature screens.
- Do not put common error dialog entries in the Navi3 back stack.
- Do not display Android UI from Repository, RemoteDataSource, Retrofit
  CallAdapter, or OkHttp Interceptor code.

## Review Checklist

Request changes when any of these are true:

- A feature ViewModel stores or calls `NavController`, `Context`, Android dialog,
  toast, snackbar host, or root login navigation for common errors.
- Feature screens host session-expired or server-wide common dialogs instead of
  AppShell.
- Navi3 routes are used as common error dialog entries.
- `SessionExpired` can be confirmed without clearing the root back stack to the
  login flow.

## Tests To Expect

- The common-error UI displays the queued failure, accepts confirmation, and drives Android AppShell recovery.
- `SessionExpired` confirmation clears the root back stack and adds the login
  route.
- Apply the shared feature-classification test contract in ViewModel tests.
- Mapper and CallAdapter tests cover non-2xx responses, connectivity failures,
  serialization failures, canceled calls, and metadata preservation.

From chonamdoo/agent-flow, MIT.

More from chonamdoo/agent-flow

Signals

Stars
0
Forks
0
Open issues
21
Last commit (this folder)
Oct 21, 2026 (9 days ago)
Last release
Oct 21, 2026 (8 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from chonamdoo

Cite this page

android-appshell-error-handling skill. Agent Mart. https://agentmart.dev/skills/chonamdoo-android-appshell-error-handling (last updated 2026-10-24)