chrisbanes/skills

Skills for Kotlin, Jetpack Compose and Android: state and effects, performance, Flow, testing, benchmarks, Gradle and PR workflows

  • 1,127 ★ on the repository
  • Last commit
  • Apache-2.0
Skill

Extended access

Why this level

  • run-github-project and shepherd drive a repository: they poll PRs, repair CI, and the drain --auto-merge flag allows merging
  • gradle-run runs Gradle commands on the agent's behalf
  • The Compose and Kotlin skills on their own remain instructions
All reasons and checks

chrisbanes/skills

Install

Manual install

/plugin marketplace add chrisbanes/skills
/plugin install chrisbanes-skills@chrisbanes-skills

Installs as a plugin in Claude Code.

Access and checks

How we review

Extended accessThe tool runs code or makes network calls and only reads external data.

  • run-github-project and shepherd drive a repository: they poll PRs, repair CI, and the drain --auto-merge flag allows merging
  • gradle-run runs Gradle commands on the agent's behalf
  • The Compose and Kotlin skills on their own remain instructions

This is third-party code. Review the repository files before installing.

What it does

A flat set of skills for Kotlin, Jetpack Compose and Android, also packaged as an Agent Plugins 1.0.0 plugin. For Compose there are `compose-state-and-effects` (state ownership and effect lifecycle), `compose-performance` (stability and deferred state reads from runtime evidence), `compose-component-design`, `compose-animations`, `compose-focus-navigation` for keyboard and TV, and `compose-ui-testing-patterns`. For Kotlin there are `kotlin-concurrency-and-flow`, `kotlin-control-flow` and `kotlin-api-design`. Separate skills compare Android benchmarks on physical devices, run Gradle through a compact wrapper and prepare Kotlin library releases. `using-chrisbanes-skills` routes a task to the right skill, while `deliver-spec`, `run-github-project`, `shepherd` and `implement-with-subagents` carry work from a spec to a merged PR.

Who it is for. For Android and Kotlin developers who ask Claude Code or Codex to write and review Jetpack Compose and Kotlin Flow code.

Good fit when

  • A Compose screen recomposes too often and needs a stability and deferred-read diagnosis
  • You must decide where screen state lives and how Flow collection, callbacks, navigation and snackbars tie to the lifecycle
  • You need to pick a Compose animation API for visibility, transitions and content swaps
  • You need to compare Android benchmark configurations on a physical device under controlled conditions
  • A Kotlin library release is coming: changelogs and Metalava API snapshots

Not a fit when

  • You need Java-to-Kotlin conversion or build migration: that is kotlin-agent-skills from the Kotlin team
  • You want Compose Multiplatform pitfalls from one app's experience: kotlin-footguns covers that
  • You do not want to hand PR workflows to an agent: shepherd polls open PRs and repairs CI
  • The project does not use Kotlin or Compose: the skills are tied to them

Example request

Use compose-performance and work out why the product list on this screen keeps recomposing, using profiler data

Limitations

Some workflows rely on external skills (triage, tdd, wayfinder and research from Matt Pocock's set): installing chrisbanes/skills does not pull them in. The author rebuilt the taxonomy, and older skills such as compose-state-hoisting are replaced by clusters, so references to the old names no longer work. The README's evaluation scores are advisory, not release gates. OpenCode V2 needs version 2.0.22 or newer, and V1 needs 1.18.29 or newer.

How to disable. For the Claude Code plugin disable or remove it from the /plugin menu, and for Codex remove the plugin through its plugin manager. If you installed through npx skills, delete the skill folders from the agent's skills directory.

FAQ

How do I install chrisbanes/skills in Claude Code?

As a plugin: /plugin marketplace add chrisbanes/skills, then /plugin install chrisbanes-skills@chrisbanes-skills. Alternatively: npx skills add chrisbanes/skills.

Which skill should I start with for Compose?

The README points to `compose-state-and-effects` for state and effects, `compose-performance` for recomposition, stability and jank, and `kotlin-concurrency-and-flow` for reviewing Flow and coroutines.

How is chrisbanes/skills different from kotlin-agent-skills?

kotlin-agent-skills from the Kotlin team covers Java-to-Kotlin conversion, build migrations and backend frameworks. This set leans on Compose, Kotlin Flow, benchmarks and PR workflows.

Do the workflows need extra skills?

Some do: deliver-spec uses triage, and implement-with-subagents and run-github-project use tdd. They come from Matt Pocock's repository and are not installed automatically.

What happened to the old skill names?

The README describes a taxonomy change: for example compose-state-authoring, compose-state-hoisting and compose-side-effects merged into compose-state-and-effects, and three recomposition skills into compose-performance.

Discussion

No questions or reviews yet.

Skills
Official

Official set of 30 skills from the Android team: Jetpack Compose, AGP 9 upgrade, R8, Perfetto profiling, Navigation 3, CameraX, Google Play policies

SkillExtended access10KRepository stars

Awesome Android Agent Skills

awesome-android-agent-skills

Skills for modern Android development for Copilot, Claude, Gemini and Cursor: Kotlin, Jetpack Compose, architecture, Hilt, Room

SkillMinimal access993Repository stars

A set of 26 skills on Jetpack Compose performance, from a measured audit to Baseline Profiles and R8

SkillMinimal access520Repository stars

A skill for Jetpack Compose and Compose Multiplatform: the agent writes UI from references and checks it against androidx source

SkillMinimal access599Repository stars

Kotlin Footguns

kotlin-footguns

Skills on the pitfalls of Kotlin, Compose Multiplatform and Android drawn from the experience of the author of the SimpMusic app. GPL-3.0 license

SkillMinimal access1.8KRepository stars

A set of skills for iOS 26+, Swift 6.3 and SwiftUI that gives the agent knowledge of modern Apple frameworks

SkillMinimal access1.3KRepository stars

Comparison with similar tools

Entries that share the main search query, and how they differ.

EntryOfficialRepository starsMain difference
chrisbanes/skills (this entry)no1,127
Compose Agent Skillno599a single skill for Compose and Compose Multiplatform with references and androidx source checks
kotlin-agent-skillsno1,101the Kotlin team's official set: Java-to-Kotlin conversion and build migrations
Kotlin Footgunsno1,759Kotlin and Compose Multiplatform pitfalls from one app's experience, GPL-3.0 license

README in short

The README presents the repository as a set of skills for Kotlin, Compose, Android and grounded writing, also a portable Agent Plugins package. It goes on to installation for Claude Code, Codex and OpenCode, a table of external skill providers, the skill catalog with start-here hints and a migration table from old names. The second half covers contribution rules, CalVer releases, running evaluations and result tables.

README badge

Original SKILL.md

---
name: compose-state-and-effects
description: Use when writing or reviewing Jetpack Compose state ownership, remember state, state hoisting, screen state holders, LaunchedEffect, DisposableEffect, SideEffect, Flow collection, navigation, snackbar, analytics, or focus requests.
---

# Compose state and effects

## Core principle

Give every piece of UI state one lowest responsible owner, then run imperative
work through the effect whose lifecycle follows that owner. Composition renders;
state and effects make rendering change safely.

A screen-ownership review is incomplete until it names the plain, previewable
content composable that receives immutable state and event callbacks separately
from app wiring and composition-owned runtime objects.

## Procedure

1. Establish the requested scope and visible behavioral requirements. Treat an
   ownership change as a finding only when code or task evidence shows a
   lifecycle, testability, business, or coordination need.
2. Inventory mutable UI state, app state, event streams, app dependencies, and
   imperative work in the affected screen or component.
3. Place each state value at its lowest necessary owner: local UI state,
   hoisted state, a plain UI state holder, or a screen state holder.
4. For a screen boundary, keep durable data and intents in the wiring owner,
   Compose runtime objects in composition or a plain UI state holder, and
   rendering in a previewable content composable that takes immutable state
   and callbacks. Read [State hoisting](references/state-hoisting.md) for the
   implementation shape; naming only state and intents is not that boundary.
   Keep this content callable with sample state and callbacks; an `@Preview`
   wrapper is optional and is not required for the state-driven boundary.
   Before adding it, confirm the module declares its tooling; do not assume
   Compose runtime or UI dependencies provide it. Respect the task's file
   scope: do not add tooling or change build files unless authorized. If
   Preview tooling is needed but unavailable within scope, omit the wrapper
   and report the setup gap.
5. Choose an effect API whose lifecycle matches the work, and key it by the
   semantic input that should restart or dispose it.

Report a problem

Foxx AIchrisbanes/skills
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.