material-3-skill
A comprehensive skill for AI coding assistants that can load SKILL.md files, covering Google's Material Design 3 (Material You) UI system.
A strict, evidence-based audit skill for Android Jetpack Compose repositories.
> /plugin marketplace add hamen/compose_skill
compose-agent 4.4.0 · 2026-07-07 — Authoring guidance so the coding-agent skill warns while you write — Never Back-Write Across Phases and Optimizations That Do Nothing — now backed by its own write-mode acceptance evals (CI-enforced to track the audit's rules). The 4.3.0 audit catches these after the fact; compose-agent stops you writing them.
jetpack-compose-audit 4.3.2 · 2026-07-07 — Cross-phase back-write detection (axis 3: layout callbacks writing state read in composition), a related composition-phase self-invalidation check (snapshot collections mutated in a composable body), and a False Leads scoring guard so the auditor stops crediting no-op "recomposition fixes." Adapted from chrisbanes/skills (Apache-2.0).
Version 4.2.0 · 2026-06-17 — Paging 3 in Compose: new paging.md reference (LLM guardrails, not API tour), audit hooks under existing Performance/State categories, planning doc at docs/paging-skill-plan.md. Validated through multi-agent cross-review. Both skills ship as 4.2.0.
Find out where your Compose app is burning frames, by how much, and what to change to win them back — measured against real compiler data, not vibes.
A strict, evidence-based audit for Android Jetpack Compose repositories. Point it at a repo, let it run the build once, and get back a 0-100 score, a 0-10 score per category, an actionable top-three fix list, and a full Markdown report with every deduction cited against an official developer.android.com page.
Built for Claude Code, Codex, Cursor, and any agent that loads the Anthropic skill format.
Authored and cross-reviewed with every frontier model — Claude Opus 4.8, GPT-5.5, and Gemini 3.5 Flash — each used to pressure-test the rubric, prompts, and references so the audit holds up regardless of which model ends up running it.
compose-agent — write-mode acceptance evals. New skills/compose-agent/evals/evals.json: five cases that ask the skill to write Compose and grade the output (cross-phase back-write avoidance, Strong Skipping false leads, snapshot self-invalidation, phase-correct reads, lifecycle-aware Flow collection). bin/ci now validates every eval suite's structure and asserts the compose-agent cases keep covering the 4.3.x authoring rules — so the authoring path can't drift from the audit path. compose-agent → 4.4.0; jetpack-compose-audit stays 4.3.2.
For release detail, see docs/release-notes-4.4.0.md.
Patch. Fixed one Strong Skipping caveat in jetpack-compose-audit/scoring.md that the 4.3.1 sweep missed (its "opt-out path" wording dodged the string match): @NonSkippableComposable opts a composable out of skipping but does not disable lambda memoization — only @DontMemoize / SSM-off does. Both skills → 4.3.2.
compose-agent — authoring guidance for cross-phase back-writes + false leads.
performance.md. New Never Back-Write Across Phases section (layout callbacks writing composition-read state; snapshot-collection mutation in a @Composable body, with good/bad Kotlin) and Optimizations That Do Nothing (the false leads). Grep triggers extended for onSizeChanged / onGloballyPositioned / onPlaced and snapshot-collection mutation.SKILL.md. New Core Instruction, review-checklist line, and Review Process step 4 names cross-phase back-writes.@DontMemoize.compose-agent → 4.3.1, jetpack-compose-audit → 4.3.1.For release detail, see docs/release-notes-4.3.1.md.
jetpack-compose-audit — cross-phase back-writes + false-lead guard.
onSizeChanged / onGloballyPositioned / onPlaced writing state a sibling reads in composition. New heuristic in search-playbook.md, matching Performance deduction in scoring.md, triage step 7 in diagnostics.md. Findings cite writer and reader file:line.SnapshotStateMap / SnapshotStateList mutated inside a @Composable body that also reads it. Deduped against the same-body backwards-write rule so it never double-counts.scoring.md: plausible recomposition "fixes" that change nothing. The auditor no longer rewards them and will not suggest them in Prioritized Fixes.developer.android.com) from chrisbanes/skills compose-recomposition-performance (Apache-2.0). Axes 1–2 were already covered by this suite.jetpack-compose-audit → 4.3.0. compose-agent unchanged at 4.2.1.For release detail, see docs/release-notes-4.3.0.md. Full history: CHANGELOG.md.
compose-agent — Navigation 3 decision table.
navigation.md: Nav3 vs Nav2 type-safe vs plain state, argument passing, ViewModel-triggered navigation (the route mutates the back stack — not a screen ViewModel), results via Nav3's ResultEventBus, per-entry ViewModel scope, BackHandler, deep links, and ListDetailSceneStrategy vs SinglePaneSceneStrategy. Mirrors the paging.md pattern. From android/skills#50. API shapes verified against android/nav3-recipes.compose-agent → 4.2.1. jetpack-compose-audit unchanged at 4.2.0.Paging 3 in Compose — guardrails for paged lazy lists.
skills/compose-agent/references/paging.md — decision table, golden path, stable keys, LoadState, hard nos. Targets LLM mistakes, not PagingSource implementation.compose-agent; scoped entry compose-agent focus on paging.docs/paging-skill-plan.md includes the multi-agent validation checklist.compose-agent → 4.2.0. jetpack-compose-audit → 4.2.0.For release detail, see docs/release-notes-4.2.0.md. Full history: CHANGELOG.md.
Run the skill on a Compose repo and you walk away with:
COMPOSE-AUDIT-REPORT.md written at the target root — per-category scoring, evidence file paths, line numbers, and prioritized fixes.skippable%, named-only skippable%, the unstable-class list, and the per-module Strong Skipping state inferred from compiler version plus explicit flags.drawable-v31 animated-vector wrapper is missing.Four categories, weighted for an app repo. Each scored 0-10; overall on 0-100.
| Category | Weight | What it covers |
|---|---|---|
| Performance | 35% | Work in composition, lazy-list keys, state-read timing, stability, Strong Skipping, backwards writes, cross-phase back-writes, animation phase correctness, baseline profiles |
| State management | 25% | Hoisting, single source of truth, rememberSaveable, lifecycle-aware collection, observable collections, ViewModel placement, type-safe navigation |
| Side effects | 20% | Effect API choice, keys, stale captures, cleanup, composition-time work, animation driving via LaunchedEffect |
| Composable API quality | 20% | Modifier conventions, parameter order, slot APIs, CompositionLocal usage, Modifier.Node, animationSpec exposure, @Preview coverage, hardcoded strings / magic numbers |
Score bands: 0-3 fail · 4-6 needs work · 7-8 solid · 9-10 excellent.
Adjacent, non-scored coverage includes UI tests/previews, focus/keyboard, KMP/CMP, and Android Launch UX resources. Those findings do not change the 0-100 score, but they can still show up in Critical Findings and Prioritized Fixes when they are concrete and user-visible.
Concrete smells the rubric targets, with realistic wins:
| Smell | Expected gain after fix |
|---|---|
Unstable or repeatedly recreated params (List, domain models, ArrayList-backed state, listOf(...), fresh UI models) | On older compiler tracks, can lift named-only skippable% and the Performance ceiling. Under Strong Skipping, usually removes instance-recreation churn or expensive equals() work that was still forcing re-runs despite high skippability. |
Lazy-list items(...) without stable key = | Fewer reallocated compositions on reorder, smoother scroll, fewer IllegalArgumentException: Key already used crashes |
| Rapidly-changing state read high in the tree | Recompositions collapse from "per frame, whole screen" to "per frame, single modifier" |
Animated .value piped into Modifier.offset(x.dp) / Modifier.alpha(a) | Moving to Modifier.graphicsLayer { ... } / Modifier.offset { ... } defers per-frame reads to layout/draw — same animation, fraction of the recomposition cost |
A comprehensive skill for AI coding assistants that can load SKILL.md files, covering Google's Material Design 3 (Material You) UI system.
compose-skill is a Claude Code plugin with 2 hand-picked skills, indexed on Flowy in the Mobile category. Install it with the command on its page. It includes compose-agent, jetpack-compose-audit. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.
Is this plugin yours?
Claim it with GitHubSubmit a pluginPromote it