Compose Data Layer Guard
A strict rulebook for designing and reviewing the data layer — repositories, Ktor, Room, DataStore, Paging — in Compose and Compose Multiplatform apps.
Dev & CodingAdvanced★ 300⑂ 25AI score 9/10Last updated: Oct 2, 2026
What it does
A dedicated data-layer contract for Compose / Compose Multiplatform projects.
- Enforces DTO → domain → UiModel boundaries (DTOs and entities stay
internal, mappers are mandatory) - Ktor client rules (
expectSuccess = true), bearer token refresh, WebSocket vs SSE selection - Room, Preferences DataStore, Paging 3, offline-first with
RemoteMediator - Failure propagation: no swallowing
catchin repositories; errors reachlaunchGuarded - Data-layer testing with
MockEngineand fakes over mocks - A closing verification gate of grep checks plus compile/test runs
Who it's for
- Android / Kotlin Multiplatform engineers building with Jetpack Compose
- Tech leads who want review standards enforced by the assistant, not a wiki page
- Teams untangling a legacy data layer that mixes network, DB and cache concerns
Examples
- "Write a repository for the orders list" → names the async contract (
getOrdersStream), places DTO/mapper, enumerates failure and lifecycle paths. - "Review the data layer in this PR" → flags public
*Dtotypes, ISO strings in domain models, and swallowedNetworkException. - "Add offline caching to the infinite-scroll feed" → proposes
RemoteMediator+ Room and keepsPagingDataout ofUiState.
· · · Install guide · · ·
Try it now, no install
Paste this into Claude to use the skill without installing anything.
Read the instructions in this file and follow them to help me: https://raw.githubusercontent.com/Meet-Miyani/compose-skill/HEAD/skills/compose-data/SKILL.md What I want: (describe your task here)
If Claude can't open the link, open it yourself and paste the contents instead.
↓ If it works for you, download the ZIP below and install it. Then it runs on its own — no pasting each time.
Install in the Claude app (no terminal)
- Download the ZIP with the button below.
- In Claude, open Settings → Capabilities and turn on 'Code execution and file creation'. (one time)
- Go to Customize → Skills → + → 'Upload a skill' and upload the ZIP.
Install in Claude Code
Let Claude do it — paste this into Claude Code
Install the skill I found on Claude Skill Mart. Copy the skills/compose-data folder from the GitHub repo Meet-Miyani/compose-skill into my ~/.claude/skills/compose-data/. When it's done, tell me in one line what this skill can do.
Install with a command instead
git clone https://github.com/Meet-Miyani/compose-skill.git /tmp/compose-skill && mkdir -p ~/.claude/skills && cp -r /tmp/compose-skill/skills/compose-data ~/.claude/skills/⚠ This is a third-party skill. Check the source repository before installing.
- Open a terminal.
- Clone the repo:
git clone https://github.com/Meet-Miyani/compose-skill.git - Create the skills directory:
mkdir -p ~/.claude/skills - Copy the skills over (copy all of them — this skill references sibling skills):
cp -r compose-skill/skills/* ~/.claude/skills/ - Restart Claude Code, then ask something like "design a repository for…" inside a Kotlin/Compose project to trigger it.
- Make sure your project has
gradle/libs.versions.tomlso the version gates and doc checks work as intended.
View source on GitHub ↗License: MIT