compose-skill: source-backed Compose guidance for AI coding agents
Jetpack Compose Agent Skill — AI-powered coding guidance with actual androidx/androidx source code receipts. Works with Claude Code, Codex CLI, Gemini CLI, Cursor, Copilot, Windsurf, and more.
At a glance
- What is it?
- aldefy/compose-skill is a plugin that injects 24 Compose reference guides and six files of real androidx source into AI coding tools. It targets one narrow failure mode: assistants that write Compose code which compiles but gets state, modifiers, and navigation wrong.
- Who is it for?
- Adopt it if your team already uses an agent host that supports plugins and you spend review time correcting remember versus rememberSaveable, modifier order, or deprecated string routes. Skip it if you are on Compose versions older than 1.7, if your host only supports manual install and nobody owns the update step, or if you need a documented licence before internal redistribution, since the repository reports NOASSERTION despite the README badge.
- Can I use it commercially?
- Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
- Is it still maintained?
- Yes. The repository last received commits 55 days ago.
- What is it written in?
- Mainly Kotlin, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
The failure mode compose-skill was built around
Compose code fails in a specific way. It compiles, it previews, and it still misbehaves, because the mistakes live in semantics rather than syntax. The README lists the categories it targets: remember used where derivedStateOf or rememberSaveable belongs, modifier ordering that breaks clickable targets, string-based navigation routes that are deprecated, and APIs the model invents because it has no source to check against.
The audience is narrow and identifiable. You are writing Jetpack Compose, Compose Multiplatform, or TV Compose, and you already run an AI coding tool in the loop. The skill assumes you have a host that can load plugins: Claude Code, Copilot CLI, Codex CLI, Gemini CLI, Cursor, or Windsurf. If you write Compose by hand and never prompt a model, nothing here applies to you. The value proposition is not better Compose documentation. It is a smaller diff in review, in the categories listed above.
What the skill actually ships: 24 guides and 6 source files
The package has two layers. The first is 24 reference guides, described in the README as covering state management, view composition, performance, navigation, animation, lists and scrolling, side effects, modifiers, theming, accessibility, CompositionLocals, deprecated patterns, the experimental Styles API, design-to-code, a production crash playbook, Compose Multiplatform, platform specifics for Desktop, iOS and Web/WASM, TV Compose, M3 motion, atomic design, Paging 3, and a Nav 2 to Nav 3 migration path.
The second layer is the part that distinguishes this from a prompt pack. Six source code files are pulled from androidx/androidx and compose-multiplatform-core so the agent can check how something works before suggesting it. The README frames this as the fix for hallucinated APIs: the model consults actual source rather than pattern-matching from training data. That is the mechanism worth evaluating. A guide tells the model what the convention is. A source file lets it confirm that a parameter exists.
Coverage is broad, and breadth is also the risk. Twenty-four guides is a lot of surface for a model to select from, and the README does not describe how the agent chooses between them or how conflicts are resolved when a guide and a source file disagree.
Install paths per host, and the update command that matters
Distribution is as a plugin, with per-host instructions in docs/INSTALL.md. The README gives two concrete paths. For Claude Code, run /plugin marketplace add aldefy/compose-skill, then /plugin install compose-expert. For Copilot CLI, run copilot plugin install aldefy/compose-skill. Codex CLI is a manual install, with details deferred to INSTALL.md.
Updates are published as GitHub Releases with migration notes. The documented commands are /plugin update for Claude Code and copilot plugin update aldefy/compose-skill for Copilot. Anyone who installed manually is pointed at docs/MIGRATION.md.
The version history shows why the update path is not cosmetic. v2.3.0 and v2.3.1 landed the same day in May 2026, and v2.4.0 followed in July 2026. A skill that tracks androidx source will drift as Compose changes, so staying on an old release means the source files and the guides describe an older API surface. The README badges Compose 1.7+, Compose Multiplatform 1.8+, and Kotlin 2.0+ as the supported range. Those are the floors to check before installing.
The eight behaviour changes the README claims
The README includes a comparison table of behaviour without and with the skill. Read as claims rather than measurements, since no benchmark or test methodology is published. State selection moves from reflexive remember { mutableStateOf() } to choosing between derivedStateOf, rememberSaveable, and plain remember. Performance guidance shifts toward stability annotations, deferred reads, and key {} on list items. Navigation moves from string routes to type-safe routes with @Serializable route classes. Modifier ordering gets corrected, including the clickable-before-padding case. Side effects get the right coroutine scope and lifecycle-aware keys. Multiplatform code uses expect/actual and Res.* resources instead of Android-only APIs. Crash-safety patterns guard against zero-size DrawScope, duplicate keys, and stale derivedStateOf.
Two of these are more actionable than the rest. Modifier ordering and type-safe navigation both produce failures that are easy to spot in review but tedious to explain repeatedly. If your review comments cluster there, the skill targets your actual cost. The performance row is the weakest, because recomposition behaviour depends on your data model and the README offers no way to confirm the improvement.
Where the source-file approach breaks down
Six source files cannot cover Compose. The library is large, and the README does not say which six files were selected or how they were chosen. That matters, because the agent can only verify an API against source it actually has. Ask about a composable in a module outside those six files and the verification step does not run. The model falls back to whatever the guides say, or to guessing.
There is a second boundary. The source files are snapshots. They were pulled at some point and shipped with a release. If you are on a Compose version newer than the snapshot, the agent may correct you toward an API that has since changed, and it will do so with the confidence of someone citing source. The README does not describe a mechanism for detecting that mismatch or warning about it.
The third limitation is host support. The README lists Claude Code and Copilot CLI as plugin installs and Codex CLI as manual. It names Gemini CLI, Cursor, and Windsurf in the description but does not give their install commands in the material available here. If you are on one of those, confirm the path in INSTALL.md before assuming parity.
Licence status: the badge and the repository disagree
The README displays an MIT licence badge linking to LICENSE. The repository metadata reports NOASSERTION, which means the platform could not map the licence file to a known identifier. These two signals conflict, and the conflict is not resolved by anything in the material available here.
This is not a hypothetical concern for a plugin that gets redistributed into developer machines and CI environments. If the actual LICENSE file contains MIT text, the badge is correct and the metadata is just an unparsed file. If it contains something else, or a modified MIT, the terms differ from what the badge implies. Open the LICENSE file and read it before you mirror the plugin internally or bundle it into a shared toolchain image. No legal advice here, just the observation that the two published signals point in different directions and only one of them is the source of truth.
The alternative: teaching the agent your own conventions
The obvious comparison is a hand-written rules file for your agent, whether that is a CLAUDE.md, a .cursorrules, or a system prompt. The difference in approach is where the knowledge lives. A rules file encodes your team's decisions: which state primitive you standardise on, how you structure navigation, which modules own which composables. It is short, it is yours, and it goes stale only when you change your mind.
compose-skill encodes upstream convention instead. It carries 24 guides and six androidx source files, which is far more Compose surface than most teams would write by hand. It also carries the maintenance burden of tracking androidx releases. The two are not mutually exclusive, and the honest framing is that they answer different questions. The skill answers what does Compose actually do. A rules file answers what does this codebase do. If your failures come from the second question, a skill that answers the first will not fix much, and you will still be writing the same review comments.
Maintenance cost and who should wait
The cost of running this is the cost of the update loop. Releases arrive with migration notes, and the documented commands are /plugin update and copilot plugin update aldefy/compose-skill. Someone has to run them. The same-day v2.3.0 and v2.3.1 releases in May 2026 suggest the cadence is not slow, and a skill that cites androidx source has a real reason to move quickly.
Skip it if you are below Compose 1.7, Compose Multiplatform 1.8, or Kotlin 2.0, since the badges mark those as the supported floor. Skip it if your host is one of the ones listed without documented install commands and you have not confirmed the path in INSTALL.md. Wait if you need a settled licence before internal distribution, because NOASSERTION is not a settled answer.
Adopt it if you are on a supported host, your review time is going into the eight categories the README names, and one person will own the update commands. The first thing to check is not the guide count. It is which six source files shipped in your release, because that set defines the boundary of what the agent can actually verify.
Editorial conclusion
Adopt it if your team already uses an agent host that supports plugins and you spend review time correcting remember versus rememberSaveable, modifier order, or deprecated string routes. Skip it if you are on Compose versions older than 1.7, if your host only supports manual install and nobody owns the update step, or if you need a documented licence before internal redistribution, since the repository reports NOASSERTION despite the README badge. Verify two things first: that your host's plugin path works with your Compose and Kotlin versions, and what the LICENSE file actually contains.
Community notes