explaingit

haidrrrry/compose-kotlin-agent-skills

18MarkdownAudience · developerComplexity · 2/5ActiveLicenseSetup · easy

TLDR

Markdown skill pack you drop into an AI coding agent so it writes better Jetpack Compose and Kotlin code, with banned antipatterns and 13 reference docs.

Mindmap

mindmap
  root((compose-kotlin-agent-skills))
    Inputs
      Agent skills folder
      SKILL.md files
      Toolchain pins
    Outputs
      Better Compose code
      Fewer antipatterns
      Lockfile entries
    Use Cases
      Guide Cursor on Compose
      Guide Claude Code on Kotlin
      Reference for KMP
      Release checklist
    Tech Stack
      Markdown
      Kotlin
      Compose
      GitHub Actions

Things people build with this

USE CASE 1

Drop the skill pack into a Cursor or Claude Code skills folder to steer Compose code generation

USE CASE 2

Block common Kotlin antipatterns like _state.value updates or GlobalScope launches in ViewModels

USE CASE 3

Reference 13 docs covering Hilt, Room, Navigation 3, KMP, and the Compose BOM 2026 toolchain

USE CASE 4

Validate SKILL.md frontmatter and links with the skill-lint GitHub Actions workflow

Tech stack

KotlinComposeMarkdownPython

Getting it running

Difficulty · easy Time to first run · 5min

Setup is a two-minute clone into the agent skills folder, no Gradle or Android build needed.

MIT license, so you can copy, modify, and use the skill pack commercially as long as you keep the copyright notice.

In plain English

compose-kotlin-agent-skills is a pack of markdown documents that you drop into the skills folder of an AI coding agent so that the agent writes better Jetpack Compose and Kotlin code. It is not a library you install with Gradle, not an Android app, not a voice-assistant skill, and not an on-device LLM runtime. It is pure markdown plus a Python validator. The agent reads it before generating code for your project. The README opens with a list of mistakes that AI agents tend to make in Kotlin and Compose: setting StateFlow with _state.value instead of the atomic update block, calling collectAsState instead of collectAsStateWithLifecycle, hardcoding UI strings instead of using stringResource, leaving LazyColumn without stable keys, launching from GlobalScope inside ViewModels, and so on. The skill kit exists to push the agent away from those choices. The content is organised into layers. A root SKILL.md sets the toolchain (Kotlin 2.x with the K2 compiler, AGP 9, Compose BOM 2026, Navigation 3) and lists banned antipatterns. Three sub-skills sit under skills/ for architecture, Compose, and testing, loaded only when the agent is doing that kind of work. Beneath those live thirteen reference documents covering architecture, Compose UI, animations, coroutines and flow, Hilt dependency injection, Room database, navigation, Kotlin Multiplatform and Compose Multiplatform, networking, performance, testing, camera and ML Kit, and a release checklist. The project targets Android, Kotlin Multiplatform, and Compose Multiplatform code, but the documents themselves are read on any operating system where the agent runs. There are 27 separate per-agent install guides under agents/ for Cursor, Claude Code, Codex, Copilot, Gemini, and others. Every SKILL.md file is checked by a GitHub Actions workflow called skill-lint that validates the frontmatter, checks links, and registers the file in api/skills.lock on every push. The license is MIT and setup is described as a two-minute clone-into-skills-folder step.

Copy-paste prompts

Prompt 1
Clone compose-kotlin-agent-skills into my Cursor skills folder and confirm the agent picks it up
Prompt 2
Show me the list of banned Kotlin antipatterns in the root SKILL.md and why each is banned
Prompt 3
Generate a Jetpack Compose screen that uses collectAsStateWithLifecycle and stable LazyColumn keys following these skills
Prompt 4
Walk me through the architecture sub-skill and how it lays out ViewModels and StateFlow
Prompt 5
Run the skill-lint workflow locally with the Python validator to check my new SKILL.md
Open on GitHub → Explain another repo

Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.