Model or dataset
chrisbanes/skills avatar
chrisbanes/skills

chrisbanes/skills: reviewed Kotlin and Jetpack Compose skills packaged for coding agents

Skills for Kotlin, Jetpack Compose, and Android development

1,041 stars51 forksPythonApache-2.0

At a glance

What is it?
chrisbanes/skills is an Apache-2.0 collection of agent skills for Kotlin, Jetpack Compose, Android benchmarking and grounded writing, shipped as an Agent Plugins v1.0.0 package with install paths for the skills CLI, Claude Code, Codex and OpenCode, a schema checked SKILL.md format and model judged evals.
Who is it for?
Take chrisbanes/skills if you run coding agents on Android or Kotlin work and want the review habits of an experienced Compose maintainer applied to your diffs: state ownership, stability, concurrency ownership, and Gradle output kept out of the transcript. Install the base set in one command and add Matt Pocock's skills separately before touching the workflow skills, because the provider matrix blocks without them.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 8 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 17, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What this repository is

Chris Banes is one of the long standing maintainers in the Android and Jetpack Compose world, and this repository turns the review habits that role produces into agent skills: instruction files a coding agent loads when the work matches the topic. The set covers Kotlin, Jetpack Compose, Android development and grounded writing. The packaging is the part worth noticing first, because the README states the repository is also a portable Agent Plugins v1.0.0 package: conforming clients discover the root plugin.json and the immediate skill directories under skills/. That means the same content installs through four different ecosystems without forking the source, and the repository carries the plumbing to prove it, including plugin.json, a .claude-plugin directory, a .codex-plugin directory and an .opencode directory at the root.

Four install paths

The shortest path is the skills CLI.

bash
npx skills add chrisbanes/skills

Claude Code treats the repository as a plugin marketplace and then a plugin.

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

Codex has the equivalent two step shape.

bash
codex plugin marketplace add chrisbanes/skills --ref main
codex plugin add chrisbanes-skills@chrisbanes-skills

OpenCode installs it by declaring the git source in its plugin list.

json
{
  "plugin": ["chrisbanes-skills@git+https://github.com/chrisbanes/skills.git"]
}

The README points to .opencode/INSTALL.md for the OpenCode details. One rule matters before you install anything: most skills here are self contained, but the workflow skills compose with skills from other repositories, and the README is explicit that installing chrisbanes/skills does not install those and the workflows never install them implicitly.

The skill catalog

The README organises the set by a start here list and then by domain. For Compose, compose-state-and-effects covers state ownership and effect lifecycle for local UI state, screen state holders, Flow collection, callbacks, cleanup, navigation, snackbar, analytics and focus requests. compose-performance diagnoses stability, deferred reads, composition contracts and cross-phase back-writing from concrete runtime evidence, which is the skill you want when a LazyColumn stutters and nobody can say why. compose-component-design handles caller placeable APIs whose variable visual regions are slots the caller fills in, compose-animations picks between the animation APIs using the official quick guide and decision tree, compose-focus-navigation designs keyboard, TV, D-pad and focus first behavior, and compose-ui-testing-patterns chooses between plain UI tests, semantics assertions, screenshot tests and integration tests. On the Kotlin side, kotlin-concurrency-and-flow reviews coroutine, raw Thread and Executor ownership, cancellation, Flow sharing, replay and one-shot delivery; kotlin-control-flow covers subject when, sealed exhaustiveness, smart casts and early returns; kotlin-api-design picks function owners, domain types and multiplatform boundaries. android-benchmark-comparison compares physical benchmark configurations with trace-backed diagnosis of unstable rankings, and grounded-writing drafts evidence led writing without inventing personal claims. A routing skill, using-chrisbanes-skills, sends work to the right one.

Workflow skills and the provider matrix

Four workflow skills sit above the domain skills. release-kotlin-library prepares and verifies library releases using gradle-maven-publish-plugin, with changelog reconciliation, Metalava API snapshots, repository checks and safe credentials. gradle-run routes every agent-initiated Gradle command through a compact-output wrapper so one read-only diagnostic owner holds the noise while parents keep edit rights. implement-with-subagents implements or reviews a task handed to it with subagents, and run-github-project runs a development loop against a GitHub Project, including backlog triage and Wayfinder planning tickets added in the 2026.8.24 release. These depend on outside skills, and the README carries a full provider matrix: the implementation mode requires Matt Pocock's implement skill with its tdd and code-review companions, run-github-project requires tdd, uses triage, wayfinder and research conditionally, and optionally pulls code-review from Matt Pocock, review-and-simplify-changes from Dimillian and ponytail-review from DietrichGebert. Each row names the source repository and the exact install command, for example the one that fetches the tdd skill.

bash
npx skills add mattpocock/skills --skill tdd

Review mode in implement-with-subagents, and review or setup mode in run-github-project, need none of the externals, and the run-github-project provider matrix documents lane-specific fallback and blocking behavior.

How the skills are kept honest

This is the least common part. Every SKILL.md under skills/ is linted against a JSON schema: the remark configuration in package.json applies remark-lint-frontmatter-schema with skills.schema.json to the SKILL.md files, so frontmatter that drifts from the contract fails lint.

bash
remark --frail skills/ README.md evals/README.md

Skill behavior itself is tested: the test script runs Python unittest suites for the release helper, the GitHub project ticket ranker and the gradle-run wrapper, plus a discovery pass over evals/tests. The evals have their own lifecycle, and validating them is one command.

bash
python3 evals/run.py validate

Planning an eval run pins a specific model: the package.json script uses gpt-5.6-sol with medium reasoning and the same model as a high reasoning judge, and the 2026.8.24 release notes describe recertifying changed Kotlin and Gradle skill evaluations and publishing the scores. In other words, when a skill instruction changes, its graded behavior gets re-run rather than trusted.

Limits to know before you install

First, the external skills problem: install-with-workflows without the providers and the workflow will block or fall back depending on the lane, so read the provider matrix before your first run and add mattpocock/skills up front. Second, the 2026.9.2 release made advanced workflow skills explicit-only, meaning run-github-project and implement-with-subagents no longer trigger implicitly from ordinary coding requests, which changes how you invoke them and is a deliberate scope reduction. Third, the eval infrastructure is pinned to gpt-5.6-sol as both actor and judge, so reproducing the published scores requires access to that model rather than any agent runtime you have. Fourth, the guidance carries opinions from one maintainer's practice, not an official Google or JetBrains reference, so where a skill disagrees with your team conventions, the skill wins by default and you have to override it. The domain depth is also uneven by design: Android and Compose get the deep coverage, while the writing skill is a general companion rather than the point of the repository.

Compared with rolling your own skill files

The alternative every team with agents faces is writing its own SKILL.md files or pasting the same conventions into a system prompt. That route costs nothing to start, matches your conventions exactly, and needs no marketplace. It fails in three places: nothing validates the file structure, nothing tests whether the instructions change agent behavior, and nothing routes new work to the right instruction. This repository answers all three with the schema lint, the eval harness with published scores, and the routing skill, and it has the unusual property of coming from a person whose Compose review comments are public and numerous. The trade is that his conventions replace yours until you fork. For a Compose codebase the trade is usually worth it for the performance and concurrency skills alone; for anything else, your own files will fit better.

Licence and upkeep

The repository is Apache-2.0 licensed with a LICENSE file at the root, reports 1041 stars, and its last push was on 2026-09-11. The release cadence is dense: 2026.8.19, then 2026.8.24 with the Wayfinder tickets and the grounded writing skill, then 2026.8.27 which simplified the to-plan workflow, reduced skill instruction verbosity, made the shepherd skill fully verify CI failures and restored the skill evals, and 2026.9.2 on 2026-09-02 which made the advanced workflows explicit-only and taught the concurrency skill to flag detached JVM work. The package version tracks the date at 2026.9.2. Open issues number two, and the repository also carries AGENTS.md, CLAUDE.md, a docs directory, a scripts directory and tests, which is more maintenance process than most skill collections bother with.

Editorial conclusion

Take chrisbanes/skills if you run coding agents on Android or Kotlin work and want the review habits of an experienced Compose maintainer applied to your diffs: state ownership, stability, concurrency ownership, and Gradle output kept out of the transcript. Install the base set in one command and add Matt Pocock's skills separately before touching the workflow skills, because the provider matrix blocks without them. Skip it if your agents never see Kotlin or Compose, since the depth is domain specific by design. The 2026.9.2 release making advanced workflows explicit only is the right default, and the eval harness is the reason to trust the guidance more than a typical prompt pack.

Frequently asked questions

Do the workflow skills in chrisbanes/skills run automatically?

No. The 2026.9.2 release made advanced workflow skills such as run-github-project and implement-with-subagents explicit-only, so they are invoked on purpose rather than triggered by ordinary coding requests.

Does installing chrisbanes/skills also install Matt Pocock's skills?

No. The README states that installing chrisbanes/skills does not install the external skills the workflows compose with and that the workflows never install them implicitly, so you add providers like mattpocock/skills yourself.

How is the quality of these skills checked?

SKILL.md files are linted against skills.schema.json through remark, the shipped helpers have Python unittest suites, and the evals run with gpt-5.6-sol as both the acting model and a high reasoning judge, with changed skills recertified in the 2026.8.24 release.

Official sources

  1. chrisbanes/skills on GitHub
  2. Issues
  3. License: Apache-2.0
  4. README
  5. Releases
Community notes

Community notes