Updated 1d ago
by maxrave-dev
kotlin-footguns
Battle-tested agent skills mapping the footguns of Kotlin, Compose Multiplatform and the desktop JVM — mined from a production music app, not from documentation.
1.3k GitHub stars (1,333)
+575 in 20 days
| Period | New stars |
|---|---|
| Sep 27 | +1 |
| Sep 28 | +23 |
| Sep 29 | +39 |
| Sep 30 | +29 |
| Oct 1 | +6 |
| Oct 2 | +24 |
| Oct 3 | +21 |
| Oct 4 | +28 |
| Oct 5 | +20 |
| Oct 6 | +15 |
| Oct 7 | +29 |
| Oct 8 | +41 |
| Oct 9 | +46 |
| Oct 10 | +23 |
| Oct 11 | +32 |
| Oct 12 | +31 |
| Oct 13 | +40 |
| Oct 14 | +39 |
| Oct 15 | +45 |
| Oct 16 | +43 |
- 10 skills (10 skills found in its SKILL.md files)
- 6 forks (6 forks)
- 1d ago last update (Last updated 1d ago)
Install
Skills CLI
npx skills add maxrave-dev/kotlin-footguns
Asks which skills and agents to install. Just one: npx skills add maxrave-dev/kotlin-footguns --skill compose-screens-footguns — add -g for every project.
Claude Code
git clone https://github.com/maxrave-dev/kotlin-footgunscp -r "kotlin-footguns/skills/compose-screens-footguns" ~/.claude/skills/
Copies the compose-screens-footguns skill into ~/.claude/skills/ for every project (use .claude/skills/ for one project). Repeat for the other skills listed below.
Plugin
/plugin marketplace add maxrave-dev/kotlin-footguns
Run inside Claude Code if the repository ships a plugin marketplace, then pick plugins from /plugin.
Skills can run code on your machine — read the SKILL.md first.
What it does
In the author's own words, from each skill's SKILL.md.
-
compose-screens-footguns
Compose screen and interaction traps: navigation, adaptive layout, window insets, pagers, toolbars, sheets, list drag and selection, sliders, text fields, settings UI, one-shot effects. Use when layout, gestures or navigation misbehave.
skills/compose-screens-footguns/SKILL.md on GitHub (opens in a new tab) -
compose-visuals-footguns
Compose look-and-feel traps: theme and colour tokens, artwork palettes, gradients and scrims, shimmer, glass and particle effects, animation, image loading, charts and stats displays (percent changes, shares, buckets). Use when a visual bands, pops, freezes or misleads.
skills/compose-visuals-footguns/SKILL.md on GitHub (opens in a new tab) -
data-layer-footguns
Room/SQLite, DataStore and repository traps: migrations, NOT IN with NULLs, LIKE escaping, delete order, local-time bucketing, imports, caching, paging. Use before writing a query or migration, or when data comes back wrong.
skills/data-layer-footguns/SKILL.md on GitHub (opens in a new tab) -
desktop-and-build-footguns
Desktop JVM and build traps: JNA natives, bundling, memory, packaging, code signing, R8, deep links, Gradle and CI releases. Use when a desktop build fails packaged, signed, on another OS or arch, or in CI.
skills/desktop-and-build-footguns/SKILL.md on GitHub (opens in a new tab) -
engineering-method-footguns
Debugging-method traps: run the discriminating experiment first, read build logs bottom-up, treat an empty actual as unwritten, audit shared handles before removing a feature, read commit history critically. Use when a fix is not converging.
skills/engineering-method-footguns/SKILL.md on GitHub (opens in a new tab) -
footgun-scan
Scan a Kotlin or Compose Multiplatform diff for known footgun shapes and open the matching trap to confirm each hit. Use before committing, when reviewing a Kotlin change, or to audit a codebase.
skills/footgun-scan/SKILL.md on GitHub (opens in a new tab) -
kmp-architecture-footguns
Kotlin Multiplatform structure and language traps: module splits, expect/actual, Koin and ViewModel scoping, layers, version catalogs, erased overloads, Char and string-resource formatting limits. Use when shaping modules or DI, when a format specifier renders verbatim, or code misbehaves on one platform.
skills/kmp-architecture-footguns/SKILL.md on GitHub (opens in a new tab) -
media-playback-footguns
Media player traps on Media3/ExoPlayer and desktop engines: crossfade, audio focus, fades, loudness, DSP, queues and shuffle, position restore, service lifecycle, group listening. Use when playback state, queue or audio levels go wrong.
skills/media-playback-footguns/SKILL.md on GitHub (opens in a new tab) -
remote-api-footguns
Remote API traps in Kotlin Multiplatform: Ktor clients, defensive parsing, Resource envelopes, OK responses that dropped your data, auth callbacks, retry backoff, downloads, websockets, clock sync. Use when calls succeed but data never lands.
skills/remote-api-footguns/SKILL.md on GitHub (opens in a new tab) -
state-and-background-footguns
Reactive state and background-work traps: StateFlow conflation, flatMapLatest, job lifecycles, ViewModel bases, WorkManager, backups, crash reporting, logging, Glance widgets. Use when state lags or flips, or work runs twice or never.
skills/state-and-background-footguns/SKILL.md on GitHub (opens in a new tab)
No skill matches that filter.
Review before you install
A skill is a set of instructions and scripts your agent will follow, and it can run code on your machine. Read the SKILL.md and any scripts first — this listing is not a security review.