chrisbanes-skills
NewOverview
A set of skills for Kotlin, Jetpack Compose, and Android development.
Install
With the skills CLI:
npx skills add chrisbanes/skillsOr install as a Claude Code plugin:
/plugin marketplace add chrisbanes/skills
/plugin install chrisbanes-skills@chrisbanes-skillsSkills
Start here
- •Working on Compose state or effects? Start with `compose-state-authoring`, `compose-state-hoisting`, `compose-state-holder-ui-split`, or `compose-side-effects`.
- •Investigating recomposition, stability, or jank? Start with `compose-recomposition-performance`.
- •Reviewing Flow or coroutine architecture? Start with `kotlin-flow-state-event-modeling` or `kotlin-coroutines-structured-concurrency`.
Jetpack Compose
- •`compose-state-authoring` — author Compose local mutable state and read-only composable accessors correctly.
- •`compose-state-hoisting` — decide whether Compose UI element state belongs in local remember state, hoisted parameters, a plain state holder class, or a screen-level state holder.
- •`compose-state-holder-ui-split` — split Compose state-holder wiring from plain-state UI for previewable and testable screens.
- •`compose-side-effects` — choose and key Compose effect APIs for event Flow collection, callbacks, cleanup, navigation, snackbar, analytics, and other side effects.
- •`compose-recomposition-performance` — route stability, deferred reads, and cross-phase back-writing.
- •`compose-stability-diagnostics` — diagnose Compose compiler reports, strong skipping behavior, unstable parameters, and stability fixes.
- •`compose-state-deferred-reads` — move frame-rate reads out of composition; avoid back-writing snapshot state across phases and cross-row measurement reads in composition.
- •`compose-modifier-and-layout-style` — keep Compose layout APIs caller-placeable and modifier chains readable.
- •`compose-slot-api-pattern` — design reusable Compose components whose variable visual regions are caller-provided slots.
- •`compose-animations` — choose Compose animation APIs for visibility, value targets, coordinated transitions, and content swaps; align with official quick guide and decision tree.
- •`compose-focus-navigation` — design and test keyboard, TV, D-pad, and focus-first Compose navigation behavior.
- •`compose-ui-testing-patterns` — choose between plain UI tests, semantics assertions, key/focus tests, interaction state tests with MutableInteractionSource, screenshot tests, and integration tests.
Kotlin
- •`kotlin-coroutines-structured-concurrency` — review coroutine scope ownership, init and fire-and-forget boundaries, cancellation handling, and blocking boundaries.
- •`kotlin-flow-state-event-modeling` — model
StateFlow,SharedFlow,Channel,stateIn, sharing policy, and one-shot events without lossy defaults. - •`kotlin-multiplatform-expect-actual` — design semantic expect/actual and interface boundaries for Kotlin Multiplatform platform interop.
- •`kotlin-types-value-class` — choose
@JvmInline value classover data class for single-field domain types, including Compose stability implications.
Workflows
- •`shepherd` — autonomously poll open PRs and MRs, triage review comments, detect and fix CI failures, and keep PRs moving forward.
Contributing
Skills live at skills/<skill-name>/SKILL.md, flat (no language nesting). The name: in the SKILL.md frontmatter must match the directory name.
Frontmatter is validated against `skills.schema.json` — name and description are required, name must be kebab-case.
Before pushing, lint skills (frontmatter schema + markdown):
npm install
npm run lintThis also runs on CI for all PRs.
License
[plugins]: https://docs.claude.com/en/docs/claude-code/plugins
Install & Usage
mkdir -p .claude/skillsmkdir -p .claude/skills && curl -o .claude/skills/chrisbanes-skills.md https://raw.githubusercontent.com/chrisbanes/skills/main/SKILL.md/chrisbanes-skillsFrequently Asked Questions
What is chrisbanes-skills?
How to install chrisbanes-skills?
To install chrisbanes-skills, create the .claude/skills directory in your project, then run the curl command to download the skill file. Once installed, invoke it in Claude Code with /chrisbanes-skills.
What is chrisbanes-skills best for?
chrisbanes-skills is a community categorized under General. Created by Chris Banes.