compose-multiplatform skills

362 tagged compose-multiplatform, measured the same way as everything else here.

Browse within: android 246jetpack-compose 186kmp 98ios 77codex-cli 74deepseek 74dsh-harness 74kotlin 39kotlin-multiplatform 38awesome 21copilot 21coroutines 17

npm-publish

26

kvdm-co-pilot/create-cmp

Skill Claude CodeCodex

Part of create-cmp

Publish the create-cmp CLI to npm as the create-cmp-cli package. Use this when the user asks to "publish create-cmp to npm", "release a new version", "ship create-cmp-cli", "npm publish this", "cut a release", or wants npx create-cmp-cli to work. Runs unattended when a granular npm token is installed in the user's…

not rated 0 5d ago A 150 tokens original MIT

kvdm-co-pilot/create-cmp

Skill Claude CodeCodex

Part of create-cmp

Wire a freshly scaffolded CMP/KMP app to its OWN real Firebase project — the #1 post-scaffold manual step. Use this when the user wants to connect their app to Firebase, or asks "connect my app to firebase", "set up google-services.json", "wire firebase", "create a firebase project for this app", "replace the…

not rated 0 5d ago A 170 tokens original MIT

cmp-new

28

kvdm-co-pilot/create-cmp

Skill Claude CodeCodex

Part of create-cmp

Scaffold a new MOBILE app — Android + iOS from one Kotlin/Compose Multiplatform codebase — from a bare "create a mobile app" to a green, verified build. Guardrails first: if the user already chose a different framework (React Native, Expo, Flutter, SwiftUI, native), do NOT redirect them here; if they only asked a…

not rated 0 5d ago A 478 tokens original MIT

maxrave-dev/kotlin-footguns

Skill Claude CodeCodex

A celebration burst drawn by a plain draw modifier that paints past its host's own bounds — draw modifiers are unclipped by default, so the modifier must sit before every .clip(...) in the chain, and any clipping ancestor still trims whatever leaves its edge. Covers scaling origin and reach off the host's measured…

not rated 40 5d ago A 140 tokens GPL-3.0

maxrave-dev/kotlin-footguns

Skill Claude CodeCodex

One suspend persistence body driven two ways — blocking on the shutdown path, where the write must complete before the scope dies, and fire-and-forget on periodic ticks — instead of two copies that drift apart. Use when saved state is correct while the app runs but wrong after a hard quit, when a teardown save…

not rated 40 5d ago A 86 tokens GPL-3.0

maxrave-dev/kotlin-footguns

Skill Claude CodeCodex

A UI-facing track list and the playback engine's timeline both hold the queue, so the UI list is re-derived from the engine timeline by media id after every engine-side change, refused when the sizes disagree, and mutated on both sides for user reorders. Use when the queue on screen plays in a different order than it…

not rated 40 5d ago A 94 tokens GPL-3.0

maxrave-dev/kotlin-footguns

Skill Claude CodeCodex

When the value being edited is a curve, draw a draggable curve instead of N sliders and embed it in the settings list instead of pushing a screen — with a raw pointer loop rather than a drag-gesture helper, a draft that commits once per gesture, and smoothing that never overshoots a handle the user placed. Use when…

not rated 40 5d ago A 100 tokens GPL-3.0

maxrave-dev/kotlin-footguns

Skill Claude CodeCodex

Embedding a native C media engine in a JVM desktop app — one handle per media item, a dedicated event-pump thread, pinning the output driver and creating the render context in the right order, confining every property write to the thread that also releases handles, feature-detecting optional engine options, and…

not rated 40 5d ago A 111 tokens GPL-3.0

maxrave-dev/kotlin-footguns

Skill Claude CodeCodex

Give a model a canonical empty instance on its companion object so its holders can declare the field non-null, instead of threading a nullable through every layer. Covers when this genuinely removes a whole family of null checks and when it only adds a second check beside the one already there, the emptiness predicate…

not rated 40 5d ago A 126 tokens GPL-3.0

maxrave-dev/kotlin-footguns

Skill Claude CodeCodex

Replace a populated header with an empty-state message without deleting the controls that header owned — re-supply them only in the branch that owned them, order the loading branch above the empty one, and stop reserving the artwork's height for a line of text. Use when a user reaches an empty period, filter or search…

not rated 40 5d ago A 98 tokens GPL-3.0

maxrave-dev/kotlin-footguns

Skill Claude CodeCodex

Carry locally sorted and shuffled paging through the same token slot a remote API uses, by prefixing the token with a mode tag and encoding a cursor after it — and reject an unrecognised prefix loudly, because a silently ignored token leaves the pager stuck in its in-flight state and the list never loads again. Use…

not rated 40 5d ago A 101 tokens GPL-3.0

maxrave-dev/kotlin-footguns

Skill Claude CodeCodex

One StateFlow holds a growing playback queue but has two write paths on purpose — a full setter that resets derived snapshots, and continuation appends that write the backing field directly so those snapshots survive. Use when a feature keyed on "where the queue came from" stops working once the queue auto-extends, or…

not rated 40 5d ago A 78 tokens GPL-3.0

maxrave-dev/kotlin-footguns

Skill Claude CodeCodex

Reading a type marker the remote source declares for itself — normalizing before every comparison because locally stored rows from older app versions hold labels the app invented, treating null as "the source did not say" rather than as a default, exposing an is-known predicate so callers branch on knowledge, and…

not rated 40 5d ago A 109 tokens GPL-3.0

maxrave-dev/kotlin-footguns

Skill Claude CodeCodex

Split a span into buckets of exactly equal width and let the remainder fall outside, pick the bucket unit from how many rows a person will read, and never draw a partial newest bucket at full width. Use when a bar chart's oldest or newest bar is inexplicably long or short, when a range produces thirty rows nobody…

not rated 40 5d ago A 91 tokens GPL-3.0

maxrave-dev/kotlin-footguns

Skill Claude CodeCodex

Fire a one-shot celebration effect from the click that caused it, never from the state that click produced — an effect watching a boolean for a false→true edge cannot tell a tap from data arriving a beat later, so moving to an already-marked record fires the same edge. Covers the @Stable holder that owns live effects…

not rated 40 5d ago A 136 tokens GPL-3.0

maxrave-dev/kotlin-footguns

Skill Claude CodeCodex

Clamp long text to a few lines with a more/less affordance driven by measured overflow instead of a character count, and make timestamps or URLs inside the same text tappable. Use when "more" shows on text that already fits, never shows on text that does not, gets truncated along with the text, or when tapping a link…

not rated 40 5d ago A 84 tokens GPL-3.0

maxrave-dev/kotlin-footguns

Skill Claude CodeCodex

Expose a device capability to shared Compose code as a @Composable expect function, with a full implementation on the platform that has it and a stub that returns the neutral value on the platform that does not. Covers the three shapes these take — a measurement, an effect with an undo, and a subscription read as…

not rated 40 5d ago A 133 tokens GPL-3.0

maxrave-dev/kotlin-footguns

Skill Claude CodeCodex

Suppress the "ended" playback state at a forwarding-player boundary while the underlying player is being replaced, so the media service is not torn down in the gap between one player finishing and the next starting. Use when background playback stops partway through a queue on some devices but never on your…

not rated 40 5d ago A 88 tokens GPL-3.0

maxrave-dev/kotlin-footguns

Skill Claude CodeCodex

Two independent features want entries in one engine property that holds the WHOLE chain, so writing it replaces everything — keep each feature's entries in its own field, compose them in a single writer, and let "clear" drop only its own tier. Use when a second effect is added beside an existing one, or when one of…

not rated 40 5d ago A 87 tokens GPL-3.0

maxrave-dev/kotlin-footguns

Skill Claude CodeCodex

Counting entities encountered for the first time means taking MIN over the entity's whole history and asking whether that minimum lands inside the window — the natural version, which filters to the window and then groups, calls every entity new. Covers why the wrong query passes its first test, why the window belongs…

not rated 40 5d ago A 129 tokens GPL-3.0

maxrave-dev/kotlin-footguns

Skill Claude CodeCodex

When a user setting picks between two renderings of the same control — an expensive decorative one and a plain twin — every geometry decision has to be mirrored between them (item width, bar height, indicator size, inset, and the rule that computes the width budget) so toggling changes the material and never the…

not rated 40 5d ago A 144 tokens GPL-3.0

maxrave-dev/kotlin-footguns

Skill Claude CodeCodex

Re-subscribe a downstream flow whenever a key flow changes using flatMapLatest, then collapse the resulting high-frequency stream to a composite key with distinctUntilChanged before firing expensive one-shot work. Use when a fetch re-runs on every progress tick, when it fires for the wrong item after a fast switch, or…

not rated 40 5d ago A 87 tokens GPL-3.0

maxrave-dev/kotlin-footguns

Skill Claude CodeCodex

A control floated over a scrolling column is a sibling that takes part in no measurement, so the column has to reserve the strip it covers explicitly — as a leading spacer, or as a header row whose twin spacers keep a centred title centred over the hole. Covers what the strip constant may and may not count, why every…

not rated 40 5d ago A 137 tokens GPL-3.0

At most 3 mods per repository are shown here, and a mod shipped inside a plugin is left to that plugin's page — the rest are on their repository pages: