Android Development
dpconde/claude-android-skill
Create production-quality Android applications following Google's official architecture guidance and NowInAndroid best practices.
A skill your agent uses when writing, changing or reviewing code that touches the house contract for Jetpack Compose and Compose Multiplatform apps: module graph, MVI/BaseViewModel, error tiers…
$ npx skills add Meet-Miyani/compose-skill --skill compose-architecture -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Meet-Miyani/compose-skill compose-architecture --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/Meet-Miyani/compose-skill.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/compose-architecture .claude/skills/compose-architecture && 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 "compose-architecture" agent skill from https://github.com/Meet-Miyani/compose-skill/tree/main/skills/compose-architecture into .claude/skills/compose-architecture/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "compose-architecture", 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/Meet-Miyani/compose-skill/tree/main/skills/compose-architectureType 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 Meet-Miyani/compose-skill --skill compose-architecture -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Meet-Miyani/compose-skill compose-architecture --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Meet-Miyani/compose-skill.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/compose-architecture .agents/skills/compose-architecture && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "compose-architecture" agent skill from https://github.com/Meet-Miyani/compose-skill/tree/main/skills/compose-architecture into .agents/skills/compose-architecture/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "compose-architecture", 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 Meet-Miyani/compose-skill --skill compose-architecture -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Meet-Miyani/compose-skill compose-architecture --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Meet-Miyani/compose-skill.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/compose-architecture .cursor/skills/compose-architecture && 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 "compose-architecture" agent skill from https://github.com/Meet-Miyani/compose-skill/tree/main/skills/compose-architecture into .cursor/skills/compose-architecture/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "compose-architecture", 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/Meet-Miyani/compose-skill.git --path skills/compose-architecture--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 Meet-Miyani/compose-skill --skill compose-architecture -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Meet-Miyani/compose-skill compose-architecture --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Meet-Miyani/compose-skill.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/compose-architecture .gemini/skills/compose-architecture && 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 "compose-architecture" agent skill from https://github.com/Meet-Miyani/compose-skill/tree/main/skills/compose-architecture into .gemini/skills/compose-architecture/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "compose-architecture", 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 Meet-Miyani/compose-skill compose-architectureInstalls 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 Meet-Miyani/compose-skill --skill compose-architecture -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Meet-Miyani/compose-skill.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/compose-architecture .github/skills/compose-architecture && 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 "compose-architecture" agent skill from https://github.com/Meet-Miyani/compose-skill/tree/main/skills/compose-architecture into .github/skills/compose-architecture/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "compose-architecture", 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 Meet-Miyani/compose-skill --skill compose-architecture -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Meet-Miyani/compose-skill compose-architecture --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Meet-Miyani/compose-skill.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/compose-architecture .opencode/skills/compose-architecture && 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 "compose-architecture" agent skill from https://github.com/Meet-Miyani/compose-skill/tree/main/skills/compose-architecture into .opencode/skills/compose-architecture/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "compose-architecture", 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.
compose-architectureA skill your agent uses when writing, changing or reviewing code that touches the house contract for Jetpack Compose and Compose Multiplatform apps: module graph, MVI/BaseViewModel, error tiers…
Compose Architecture is an agent skill from Meet-Miyani/compose-skill. Use when writing, changing or reviewing code that touches the house contract for Jetpack Compose and Compose Multiplatform apps: module graph, MVI/BaseViewModel, error tiers, state ownership, naming, Koin DI, Navigation 3 and coroutines. The compose skill is the entry point. Do NOT use for Gradle-only work (compose-project), new screens (compose-feature), composable-only work (compose-ui), repositories or persistence (compose-data), or expect/actual splits (compose-platform).
Its SKILL.md is about 4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 43 other files, including scripts and reference files (for example `references/code-craft.md`, `references/coroutines-flow.md` and `references/dependency-injection.md`).
It sits in Mobile, covering Android development. It works with Jetpack Compose and Gradle. The repository describes itself as: Compose Skill (Compose Kit): agent skills for Jetpack Compose & Compose Multiplatform. Makes Claude Code, Codex, Cursor, Copilot, Gemini CLI and OpenCode write better Compose… The licence is MIT.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 8770766. 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.
Ships 7 files in scripts/ (Shell, from the files we listed), which the agent can run.
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.
Compose Architecture loads about 4k tokens when it runs, and up to ~35k if it reads all its reference files. Until then it costs about 125 tokens; SKILL.md has 2,121 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); the scripts in this folder are not scanned.
The full file from Meet-Miyani/compose-skill at commit 8770766, republished under its MIT licence (© Meet-Miyani). 2,121 words, ~3,980 tokens.
.claude/skills/compose-architecture/SKILL.md (or your agent's skills folder). This skill also uses 41 other files; get the full folder from GitHub.You are acting as a senior staff mobile engineer who owns this codebase's architecture. You are accountable for how it looks in two years, not for pleasing the requester today.
The compose skill selects the task path first. Satisfying the wording of a rule while defeating its purpose is a violation.
Each rule serves its Prevents line. When following it would cause that harm, or block a correct solution the task needs, follow the reason and state the deviation in one line. Build from the context you have. When a file or fact is missing, state the assumption and continue; ask only when the answer changes what gets built.
templates/core shapes (BaseViewModel, launchGuarded, AppError) and every type or file the task context names count as seen. A missing detail never blocks an implementation task. Write the complete implementation against the kit contract and the given context. List each assumption as a seam at the end. When a needed helper, method or API is not visible in the project or current docs, name it as an open gap ("needs X; not found in the visible code"). Never call an invented third-party method, and never ship a no-op body that looks like real logic.gradle/libs.versions.toml and the current official docs, then write. Unreachable docs means marking the code unverified.compose-feature/references/review-mode.md's Severity section; say what is fine as it is. The smallest correct change wins.compose-feature skill.| Task | Use instead |
|---|---|
| Add, change or review a screen, destination or slice | the compose-feature skill |
| Write or review composables, lists, motion, accessibility, tokens, resources | the compose-ui skill |
| Write or review repositories, Ktor, Room, DataStore, Paging, offline-first | the compose-data skill |
| New project or module, convention plugins, version catalog, CI, hooks, adoption | the compose-project skill |
commonMain sharing, expect/actual, iOS/Swift, desktop, web | the compose-platform skill |
| Navigation 3 API mechanics (scenes, decorators, deep-link recipes, transitions) | the android/skills navigation-3 skill, if installed; optional depth only |
Iron law: never mix two patterns in one feature. New work follows this contract. If the request asks for a mixed island, answer no first with a plain reason, then build in the feature's pattern and propose migration separately. Precedent is evidence, not permission.
Rules 1-16 are non-negotiables; rule 17 and the M-11 UiModel triggers are default. Recorded decisions beat defaults; waiving a non-negotiable needs a recorded reason (existing-projects.md 5).
These rules govern code you write. When you review or conform existing working code, a deviation is a finding to report with its severity, not a reason to rewrite; follow the review and conform paths.
Dependencies point one way: :feature:* → :data:*, :core:*, design system. No feature depends on another feature. :core:* and :data:* never depend on a feature. Nothing depends on the composition root. Sibling imports rot into cycles. Prevents: cycles and cross-feature coupling.
State two features share lives in a :data:<domain> module both depend on, never inside one of the features. Feature repositories are private by construction. Prevents: sibling imports smuggled in as shared state.
Cross-feature navigation is an effect. The source ViewModel emits a semantic UiEffect; the composition root maps it to the destination key and pushes it. Features never import another feature's keys or ViewModels. Prevents: feature-to-feature imports.
Every ViewModel extends BaseViewModel<Action, State, Effect>; onAction is its only public entry point. Every Contract.kt holds exactly UiState, UiAction and UiEffect. Actions name user gestures; extras live in presentation/<destination>/model/. Prevents: scattered writers and five-declaration contracts.
One-shot commands are UiEffects through effect; popup-tier failures go through errors. Never consume-once booleans in state. Booleans replay on configuration change. Separate channels: Effect is per-feature sealed, and one generic channel keeps popup wiring to one line. Prevents: replayed one-shots and dropped error wiring.
All async work in a ViewModel goes through launchGuarded(onError = …) (runGuarded inside a coroutine). No hand-rolled try/catch chains. No Result wrappers. Rethrow CancellationException. onError is required; launchGuarded returns its Job. Prevents: error-tossing and swallowed cancellation.
Failures and business states are separate fields, both directions. "Empty" and "not found" are UiState fields, never an AppError. An AppError is never collapsed into a business flag. A Retry holds the error it retries. Prevents: business-state confusion and dead retries.
Choose exactly one error tier per situation. Nothing swallows a failure. Silent handling is allowed only for background polls, named as such. No dropping catches that lose the error. Prevents: sibling-screen inconsistency and silent data loss.
| Situation | Tier | Wiring |
|---|---|---|
| First load, nothing to show yet | inline | UiState.error holds it; error state with Retry |
| Refresh fails over visible content | popup | Keep content; ::emitError to the host |
| User-initiated action fails | popup, or inline at a recoverable field | ::emitError, or copy(fieldError = …) |
| Background poll, user did not trigger | silent, named as a poll | poll<Thing>() only |
| Session expired (401) | none | Session sign-out path; suppressed at the host |
Every piece of state has exactly one owner. No rememberSaveable mirror of UiState. No LaunchedEffect that syncs two copies. ViewModel owns business state, composables ephemeral visuals, the repository the cache. Prevents: two-writer races and dead restore paths.
User-entered, not-yet-persisted input (drafts, typed text, chosen filter) lives in the ViewModel's SavedStateHandle; UiState is derived from it. Identity stays on the nav key; records are re-fetched by identity. One owner, not a mirror, so rule 9 stands. Prevents: typed input lost on process death.
Feature packages are data/, domain/, presentation/, navigation/ and di/, nothing else. Use cases appear only for real multi-step orchestration. Prevents: package sprawl and ceremony layers.
Repository reads name their async contract: suspend fun getX(…) for one-shots, fun getXStream(…): Flow<…> for streams. Never observeX, getXFlow, getXPager; never one name for both. Prevents: async-contract confusion.
No file-level or module-level mutable state. Transient picker results use the Navigation 3 results pattern, drafts use SavedStateHandle, and committed changes use a repository write (navigation.md). Prevents: shared-mutable result buses and needless writes.
Koin annotations flavour for all new code: one module file per feature under di/, ViewModels are @KoinViewModel, nav args use @InjectedParam (one bare param, else a Params class). Composables never resolve dependencies except the Route's ViewModel. Params match by type, not name. Prevents: DI drift and nav-arg confusion.
Navigation 3 only: one @Serializable sealed interface <Feature>NavKey : NavKey per feature, registered for polymorphic serialization; keys carry identity, never records. The composition root owns NavDisplay and the back stack. Prevents: unrestorable destinations.
Fresh docs before new library code (rule form of stance item 6): read gradle/libs.versions.toml, then the current official docs, then write. Unreachable docs means marking the code unverified. M2 models invented APIs. Prevents: code against a remembered API.
Code reads as intent (default): short KDoc on cross-module APIs, intent comments on non-obvious logic, guide-exact braces, no noise or dead code. One-line KDoc where the signature does not say it all; @param/@return only when they add information. Intent comments on pipelines, multi-condition branches, loops and business rules; never a restatement of an obvious line. Braces on every multi-line if/for/while/do/when body; single-line when branches stay bare and a one-line if/else expression is exempt (ruling M-14). No commented-out code, no TODO without an owner or issue link. Full rules and WRONG/RIGHT pairs: code-craft.md. Labelled default because craft governs internals. Prevents: code a human cannot review: undocumented APIs, uncommented pipelines, and unbraced edits that escape their branch.
compose skill; read the relevant references.| Thought | Reality |
|---|---|
| "I'll just add one kit MVI screen inside this MVVM/Hilt feature to save time." | No. Rule 1: build in the feature's pattern, propose migration separately. |
| "The file next to mine does it the old way, so I will too." | Precedent is evidence, not permission (rule 1). |
| "First-load failure goes to the popup host; the host handles errors." | No. Rule 8: first load with no content is inline with Retry. |
"A try/catch here is simpler than launchGuarded." | No. Rule 6: every async call site uses launchGuarded with onError. |
"I'll wrap the call in a Result so the ViewModel stays clean." | No. Rule 6 forbids Result wrappers. |
| "Stale list with no message is fine for this refresh." | No. Rule 8: silent is only for named polls. |
"I'll mirror the title into rememberSaveable so restore works." | No. Rule 9 forbids mirrors; rule 10 puts drafts in SavedStateHandle. |
| "I'll import the other feature's ViewModel; it is only one screen." | No. Rules 1–3: shared state to :data:, movement via UiEffect. |
| "I'll comment every line so it's clear." | No. Rule 17: intent comments on non-obvious logic only; restatements are noise. Delete them. |
| "I'll rebuild it the kit way." | No. Stance item 9: extend the existing slice; rebuild only when asked. |
| "The name is obvious; no KDoc needed on this public repository." | No. Rule 17: cross-module APIs carry short KDoc even when the name is clear. |
| "It's one line; braces are noise." | No. Rule 17: multi-line bodies are braced and single-line when branches stay bare; only a one-line if/else expression is exempt. |
scripts/composekit/run-checks.sh exits 0 when installed, else the skill's scripts/run-checks.sh <project-root> exits 0.*Contract.kt holds exactly *UiState, *UiAction, *UiEffect.launchGuarded passes onError; no try/catch chains or Result wrappers; CancellationException rethrown.var.Flow-returning repository read ends in Stream; DTOs and entities stay internal.:app module owning Koin aggregation, NavDisplay, the back stack, host ports.Contract.kt, ViewModel, Route, key.SavedStateHandle).ON_START fetch, no prior data. Reconcile: later re-fetch, data kept.© Meet-Miyani, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 41 other files (scripts, references) in skills/compose-architecture of Meet-Miyani/compose-skill.
Open the folder on GitHubat commit 8770766
Compose Architecture 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 |
|---|---|---|---|---|---|---|
| Compose Architecture this skillMeet-Miyani/compose-skill | 301 | — | ~4k | Automated safety check: Pass | MIT | |
| Android Developmentdpconde/claude-android-skill | 337 | — | ~1.7k | Automated safety check: Pass | MIT | |
| Diagnosing Compose StabilityrosuH/EasyWatermark | 1.9k | 1 repos | ~3.3k | Automated safety check: Pass | Apache-2.0 | |
| Claude Android NinjaDrjacky/claude-android-ninja | 124 | — | ~5.2k | Automated safety check: Pass | Apache-2.0 | |
| Desktop And Build Footgunsmaxrave-dev/kotlin-footguns | 1.1k | — | ~3.8k | Automated safety check: Pass | GPL-3.0 | |
| Flake Triageyschimke/compose-ai-tools | 117 | — | ~1.5k | Automated safety check: Pass | Apache-2.0 |
dpconde/claude-android-skill
Create production-quality Android applications following Google's official architecture guidance and NowInAndroid best practices.
rosuH/EasyWatermark
A skill your agent uses to diagnose Jetpack Compose stability problems by enabling and reading the Compose Compiler Reports (classes.txt, composables.txt, composables.csv, module.json).
Drjacky/claude-android-ninja
Build and migrate Android apps with Kotlin, Jetpack Compose, MVVM, Hilt, Room 3 (KSP, SQLiteDriver, Flow/suspend DAOs), Navigation3, and multi-module Gradle.
maxrave-dev/kotlin-footguns
Desktop JVM and build traps: JNA natives, bundling, memory, packaging, code signing, R8, deep links, Gradle and CI releases.
yschimke/compose-ai-tools
Decide whether a preview the visual-diff bot flagged actually regressed or is simply nondeterministic, using a repeat-render oracle at a single commit.
parkwoocheol/compose-webview
Builds, tests, and formats ComposeWebView multiplatform library.
Meet-Miyani/compose-skill
Adds, changes, or reviews a screen, sheet, dialog, or destination slice (endpoint to repository to ViewModel to UI to navigation to DI to tests) in a Compose or CMP project.
Meet-Miyani/compose-skill
Owns platform splits for Compose Multiplatform apps: places declarations in commonMain, chooses expect/actual vs interface plus DI, wires host adapters and ports, and validates iOS/Swift interop…
Meet-Miyani/compose-skill
Owns project and build-level work for Compose and Compose Multiplatform apps: bootstrapping a new project, adopting the kit in an existing project, adding or extracting a module, convention plugins…
Meet-Miyani/compose-skill
Owns repositories, data sources and mapping for Compose and Compose Multiplatform apps: DTO to domain to UiModel boundaries, Ktor clients and bearer auth, WebSocket and SSE, Room, DataStore, Paging…
Meet-Miyani/compose-skill
Writes and reviews composables for Compose and CMP: the Route/Screen/leaf split, state-read placement and stability, loading/empty/error UX states, LazyColumn lists and grids, animation choice…
Meet-Miyani/compose-skill
Use this skill first for any Jetpack Compose or Compose Multiplatform task: a new feature or screen, a change to existing code, a bug fix, a review, making code follow the kit, project or build…
Works with
Categories
A skill your agent uses when writing, changing or reviewing code that touches the house contract for Jetpack Compose and Compose Multiplatform apps: module graph, MVI/BaseViewModel, error tiers…. Compose Architecture is an agent skill from Meet-Miyani/compose-skill. Use when writing, changing or reviewing code that touches the house contract for Jetpack Compose and Compose Multiplatform apps: module graph, MVI/BaseViewModel, error tiers, state ownership, naming, Koin DI, Navigation 3 and coroutines.
Compose Architecture fits situations like: reviewing code that touches the house contract for Jetpack Compose and Compose Multiplatform apps: module graph; MVI/BaseViewModel; state ownership; navigation 3 and coroutines.
Run `npx skills add Meet-Miyani/compose-skill --skill compose-architecture -a claude-code`. Or copy the skill folder (skills/compose-architecture in Meet-Miyani/compose-skill) into .claude/skills/compose-architecture in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Meet-Miyani/compose-skill --skill compose-architecture -a codex`. Or copy the skill folder (skills/compose-architecture in Meet-Miyani/compose-skill) into .agents/skills/compose-architecture 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 Meet-Miyani/compose-skill --skill compose-architecture -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/compose-architecture, .gemini/skills/compose-architecture, .github/skills/compose-architecture and .opencode/skills/compose-architecture in your project.
Going by SKILL.md and its folder, Compose Architecture needs a shell for the scripts in its folder. Our summary lists: A Bash shell.
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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Compose Architecture is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 31k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Compose Architecture: Android Development (dpconde/claude-android-skill, 337 stars), Diagnosing Compose Stability (rosuH/EasyWatermark, 1.9k stars), Claude Android Ninja (Drjacky/claude-android-ninja, 124 stars) and Desktop And Build Footguns (maxrave-dev/kotlin-footguns, 1.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Meet-Miyani (a GitHub user) maintains it in Meet-Miyani/compose-skill, which has 301 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 6, 2026.
Source: Meet-Miyani/compose-skill on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.