---
title: "Compose State Holder Split - Air Market"
description: "Some screen composables end up doing everything: take a ViewModel, collect state, handle navigation and snackbars, wire callbacks, and lay out the UI too. This is guidance for separating the state-ho…"
canonical: "https://airmarket.ai/app/compose-state-holder-ui-split"
---

[Air Market](/) / [Developer Tools](/category/devtools) / Compose State Holder Split

Skill by [Vitor Pamplona](/@vitorpamplona)

# Compose State Holder Split

Untangle a screen that both wires up state and draws itself

## What this does

Some screen composables end up doing everything: take a ViewModel, collect state, handle navigation and snackbars, wire callbacks, and lay out the UI too. This is guidance for separating the state-holding part from the drawing part, whether you are writing that screen or reviewing one.

### Top 3 things it does for you

- Split a screen composable that is doing too much
- Review a composable that takes a ViewModel and also renders
- Sort out where state collection and callbacks belong

## Information

**Compose State Holder Split at a glance**

|  |  |
| --- | --- |
| Kind | Skill |
| Publisher | [Vitor Pamplona](/@vitorpamplona) |
| Category | [Developer Tools](/category/devtools) |
| Works with | Agent Skills - an open standard supported by 40+ agents |
| Size | 7 KB |
| Licence | MIT |
| Repository | [vitorpamplona/amethyst](https://github.com/vitorpamplona/amethyst/tree/6cd4de51aa74398d973a36f777968d9d01c75a21/.claude/skills/compose-state-holder-ui-split) |
| GitHub stars | 1,590 (as of Nov 2026) |
| Installs | 11, counted by skills.sh (Nov 2026) |

## Security report

**Verified.** AIR scanned this exact version of Compose State Holder Split and flagged nothing. AIR's verdict: **safe**.

**What Compose State Holder Split's check was run against**

|  |  |
| --- | --- |
| Commit | 6cd4de51aa74398d973a36f777968d9d01c75a21 |
| Content hash | 2cfb0d8e1cbb8c765f90fde26fe7fa582520b2bb4a1cb7b8b2e31cd51d6e58c4 |
| Files read | [Browse the files at this exact commit](https://github.com/vitorpamplona/amethyst/blob/6cd4de51aa74398d973a36f777968d9d01c75a21/.claude/skills/compose-state-holder-ui-split/SKILL.md) |

A scan is named by the exact content it read, not by a version number. A different version is a different artifact, and nothing here applies to a version AIR has not scanned.

[Read the full security report for Compose State Holder Split](/security/compose-state-holder-ui-split)

## About Compose State Holder Split

This applies to screen-level Jetpack Compose composables that take a ViewModel, component or controller, collect state or effects, handle navigation and snackbars, and wire callbacks, all while also rendering layout.

It is a technique-layer skill, meant to complement the codebase-specific compose-expert and feed-patterns.

## What's inside

- SKILL.md - instructions

## Questions

### Is Compose State Holder Split safe to install?

AIR scanned this exact version of Compose State Holder Split and flagged nothing. AIR's verdict: safe. The verdict is named by the content that was read, at commit 6cd4de51aa74, so it cannot drift onto a version nobody scanned. The full report is at https://airmarket.ai/security/compose-state-holder-ui-split.

### How do I install Compose State Holder Split?

Open https://airmarket.ai/app/compose-state-holder-ui-split on Air Market and use the install action: Air Market hands Claude a prompt naming this exact skill, and Claude sets it up. Source, pinned to the exact commit this listing describes: https://github.com/vitorpamplona/amethyst/tree/6cd4de51aa74398d973a36f777968d9d01c75a21/.claude/skills/compose-state-holder-ui-split. Install from that link, not the branch.

## Related on Air Market

- [More Developer Tools listings](/category/devtools)
- [Everything by Vitor Pamplona](/@vitorpamplona)

---

Canonical URL: <https://airmarket.ai/app/compose-state-holder-ui-split>
