skills

Project Url: chrisbanes/skills
Introduction: Skills for Kotlin, Jetpack Compose, and Android development
More: Author   ReportBugs   
Tags:

A set of skills for Kotlin, Jetpack Compose, and Android development.

Install

With the skills CLI:

npx skills add chrisbanes/skills

Or install as a Claude Code plugin:

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

Skills

Start here

Jetpack Compose

State and side effects

  • 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.

Performance

UI API design and layout

  • 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.

Testing

  • 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

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.jsonname and description are required, name must be kebab-case.

Before pushing, lint skills (frontmatter schema + markdown):

npm install
npm run lint

This also runs on CI for all PRs.

License

Apache 2.0

Apps
About Me
GitHub: Trinea
Facebook: Dev Tools
AI Daily Digest